google-agents-cli-scaffold
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
story-validate
Load after /audit has completed to verify spec compliance, execute acceptance tests, run runtime LARP, declare a readiness state (NO-SHIP/IMPL-GREEN/UX-RC/COMMERCIAL-RC/SHIP-RC/SHIP), and produce validation-report.md. Required before story-retrospective. Use when user says 'is this done?', 'valid...
Full skill instructions
The user input to you can be provided directly by the agent or as a command argument - you MUST consider it before proceeding with the prompt (if not empty).
User input:
$ARGUMENTS
Before any other action — read this template now:
.speck/templates/story/validation-report-template.md
The v7 template centers on readiness state declaration. Validation does NOT produce PASS/FAIL — it produces one of:
NO-SHIP — blockers remainIMPL-GREEN — tests/lint/types passUX-RC — primary flows pass in target runtime with LARP evidenceCOMMERCIAL-RC — billing/entitlements/legal pass (paid products)SHIP-RC — all gates pass against launch buildSHIP — post-deploy proof completeCheckpoint: After reading, note the v7 frontmatter fields (readiness_state_claimed, readiness_state_verified, build_sha, build_artifact, audit_report, larp_evidence).
Before doing ANY validation work, verify:
/audit was run for this story and produced audit-report.md (in story dir)
/audit first — story-validate requires the audit report as input."audit-report.md shows P0 findings: STOP. Tell user "P0 findings in audit-report.md must be fixed before validation."Check Project Archetype & UI Presence:
.speck/project.json → project_archetype (and play_level).project_archetype is infra_service or backend_api, or if the story is backend-only / non-UI: Bypass /larp requirement. Proceed directly.consumer_product, b2b_saas, internal_tool with active UI components): /larp MUST have been run producing larp-recordings/<sha>-<persona>-findings.md
/larp [persona] first — UI story validation requires LARP evidence per evidence-contract.md."evidence-contract.md exists at the project root
/project-evidence-contract first — validation needs the gate criteria definition."The user (or skill caller) has declared a claimed readiness state
IMPL-GREEN or OPERATIONAL-RC for infra/backend; SHIP-RC / SHIP for release candidates).--claim IMPL-GREEN / --claim UX-RC / --claim API-RC / --claim OPERATIONAL-RC / etc.If any pre-gate fails: refuse to proceed. Surface what's missing.
audit-report.md — if any P0, mark as BLOCKED for the claimed stateevidence-contract.md gate criteria for the claimed statedevice-walk (or always-manual).device-walk criteria exist, the AI agent CANNOT autonomously verify them; they must be marked as ⚠️ Manual or ❌ Ungrounded in the report unless a valid human attestation file exists at larp-recordings/<sha>-human-attestation.md.device-walk criteria are present and larp-recordings/<sha>-human-attestation.md is missing, the AI agent MUST cap the verified state at UX-RC (agent-verified) and refuse to claim SHIP-RC or higher, detailing that the story is "Awaiting human device walk" to complete SHIP-RC+.
4b. Evaluate Keystone dependencies:evidence-contract.md or spec.md.skip-with-reason message (not silent).⚠️ Skipped (Awaiting Keystone) and cap the maximum claimable state at UX-RC (allowing the story to pass green for IMPL-GREEN and UX-RC).
4c. Verify Deferrals / What this validation did NOT verify section:## 🔬 What this validation did NOT verify / Deferrals. If left blank or containing boilerplate, fail the validation.bash .speck/scripts/validation/validate-readme.sh --strict and bash .speck/scripts/profile-drift-check.sh. Block SHIP-RC+ if any PROFILE_DRIFT.P1 finding.regenerate-project-readme.sh --check before UX-RC+ claim./project-state regenerationThe legacy v6 validation algorithm follows below (use it for tests/lint/quality details, but the verdict MUST be a readiness state, not PASS/FAIL).
Goal: Comprehensively validate that the implementation fulfills the specification, meets non-functional requirements, adheres to constitutional principles, AND is verified at the claimed readiness state per evidence-contract.md.
This command benefits from parallel speck-auditor execution for independent validation aspects:
├── [Parallel] speck-auditor: "Check all FR-XXX requirements are implemented with tests"
├── [Parallel] speck-auditor: "Run test suite and verify all tests pass"
├── [Parallel] speck-auditor: "Validate performance against spec targets"
├── [Parallel] speck-auditor: "Verify constitution principle compliance"
├── [Parallel] speck-auditor: "Check Cursor rules compliance for changed files"
├── [Parallel] speck-auditor: "Run linters and type checks"
├── [Parallel] speck-auditor: "Code review for security and maintainability"
├── [Parallel] speck-auditor: "Check documentation completeness"
└── [Wait] → Synthesize into validation-report.md
Each auditor returns: PASS | FAIL | PARTIAL with evidence
Speedup: 6-8x compared to sequential validation.
Locate the active story directory (STORY_DIR):
contracts/)spec.mdspec.md found: instruct user to cd into the story directory or run /speck to route{STORY_DIR}/spec.md{STORY_DIR}/plan.md{STORY_DIR}/tasks.mdLoad artifacts and extract validation criteria:
specs/projects/<PROJECT_ID>/constitution.md (optional){EPIC_DIR}/constitution.md (optional)Load Visual Testing Configuration (for UI stories):
specs/projects/<PROJECT_ID>/project.md frontmatter for _active_recipe: field.speck/recipes/[recipe-name]/recipe.yamlvisual_testing: section:
visual_testing:
platform: [web|mobile-flutter|mobile-rn|desktop-electron|desktop-tauri|extension|api|cli]
strategy: [browser-mcp|golden-tests|maestro|playwright|playwright-electron|webdriverio|puppeteer|none]
# Varies by platform (see `.cursor/skills/` e.g. visual-testing-web, visual-testing-mobile-flutter), e.g.:
# - web: "visual-testing/web-visual-testing.md"
# - mobile-flutter: "visual-testing/mobile-flutter-visual-testing.md"
# - mobile-rn: "visual-testing/mobile-react-native-visual-testing.md"
pattern_file: "visual-testing/web-visual-testing.md"
breakpoints: {...}
devices: {...}
tools: {...}
agent_commands: {...}
.cursor/skills/visual-testing-web/SKILL.md (or visual-testing-mobile-flutter, etc. per pattern_file)platform: api or platform: cli: Skip visual validation (no UI)Task completion verification:
--allow-incomplete flag if iteratingFunctional requirements traceability:
traceability-matrix.md and find the PRM-NNN rows whose Discharge column names THIS story (e.g. S0NN / AC-x). For each, confirm the acceptance criterion actually passed with evidence in this validation, then record the PRM-id + the evidence that discharges it in the report's ## 📋 Spec Coverage (Requirements Traceability) section (e.g. "Discharges PRM-014, PRM-021 — see LARP step 3 + axe JSON"). If an assigned PRM row's AC did NOT pass, the row stays mapped (not discharged) and the story cannot claim it. Do not silently drop an assigned promise.Execute quickstart scenarios (if quickstart.md exists):
Run test suite validation:
pytest (or as specified in Technical Context)npm test or npm run test:cicargo testgo test ./...--force flag)Performance validation (if targets specified in spec.md):
Constitution compliance verification:
Cursor rules compliance check:
.cursor/rules/ directory exists*.mdc or *.md rule files.tsx files → frontend rules apply)## Cursor Rules Compliance
Rules Evaluated: [X total, Y applicable to this story]
| Rule | Applicability | Status | Findings |
|------|---------------|--------|----------|
| design-system-enforcement.mdc | ✅ Applies (frontend files changed) | ✅ PASS | All components use design system |
| migrations-safety.mdc | ❌ Not applicable (no migrations) | N/A | - |
| testing.mdc | ✅ Applies (all stories) | ⚠️ WARN | 2 tests marked .skip() |
.cursor/rules/ directory: Note "No project-specific rules found"Code quality gates (run from repository root):
10.5. Visual/UX Validation (if ui-spec.md exists OR story has UI components):
SKIP if: visual_testing.platform is api or cli (loaded in step 2)
Use Recipe Configuration (loaded in step 2):
Platform: {visual_testing.platform}
Strategy: {visual_testing.strategy}
Pattern: .cursor/skills/{skill_from_pattern_file}/SKILL.md (e.g. visual-testing-web for web)
Breakpoints: {visual_testing.breakpoints}
Devices: {visual_testing.devices}
Agent Commands: {visual_testing.agent_commands}
Reference: Load .cursor/skills/visual-testing-web/SKILL.md (or visual-testing-mobile-flutter, etc. per platform) for platform-specific guidance.
Load Design Specifications:
specs/projects/[PROJECT_ID]/design-system.md → tokens, breakpointsspecs/projects/[PROJECT_ID]/ux-strategy.md → voice/tone, accessibility{STORY_DIR}/ui-spec.md → component specs, Testing Checklist{EPIC_DIR}/wireframes.md → layouts (if exists)Define Visual Test Scope (fast loop):
git diff --name-only + ui-spec/wireframes, list the 1–3 screens/components most impactedLOCAL-FIRST MULTI-MODAL VISUAL REVIEW (CRITICAL FOR AGENTS):
larp-recordings/*.png, and you are a multi-modal AI agent, you MUST use the Read tool on these image files to visually inspect the actual rendered UI.Execute Platform Pattern (recipe-driven):
.cursor/skills/visual-testing-web/SKILL.md (or platform-specific skill) and follow itvisual_testing.agent_commands as the source of truth for what to run (Playwright/Maestro/goldens/WebdriverIO/etc.)visual_testing.breakpoints / visual_testing.devices / visual_testing.window_sizes to drive captureSpeed Defaults (only expand if something looks off):
mobile + desktop; add tablet/wide only if responsive behavior is in scopenormal window size; add small/large + dark-mode only if specifiedstandard; add compact/wide only if specifiedIf automation is unavailable:
Design Token Compliance Check (ALL platforms):
#[0-9A-Fa-f]{6}px instead of tokensVoice/Tone Compliance (load ux-strategy.md):
ui-spec.md Testing Checklist (if exists):
Aesthetic Quality Gate (REQUIRED for all UI stories):
Beyond token compliance — judge the DESIGN QUALITY of the implementation:
Load from design-system.md:
Evaluate each screen/component against:
| Dimension | Question | Rating |
|---|---|---|
| Design Philosophy | Does the UI express the project's core design principle? | ✅/⚠️/❌ |
| Bold Choices | Are ALL non-negotiable design rules honored? (Check each) | ✅/⚠️/❌ |
| Feel Test | Would this pass the "What Success Looks Like" description? | ✅/⚠️/❌ |
| Visual Personality | Is this intentionally designed or generic/boilerplate? | ✅/⚠️/❌ |
| Typography Hierarchy | Is it dramatic/intentional or flat/boring? | ✅/⚠️/❌ |
| Negative Space | Active and deliberate or cramped/random? | ✅/⚠️/❌ |
| Interactive States | Do hover/focus/active feel designed or browser-default? | ✅/⚠️/❌ |
| Motion | Matches the motion philosophy or random/jarring/missing? | ✅/⚠️/❌ |
| Texture & Depth | Does the UI have surface quality or is it flat/lifeless? | ✅/⚠️/❌ |
| Component Character | Do buttons/cards/inputs have personality or feel generic? | ✅/⚠️/❌ |
First-Time User Comprehension Rubric (REQUIRED for all UI stories):
Evaluate whether a first-time user can instantly understand and navigate this view:
| Dimension | Question | Rating | Evidential Rationale |
|---|---|---|---|
| Clutter | Is the screen free of technical jargon, system details, or redundant elements? | ✅/⚠️/❌ | |
| Visual Dominance | Is there a single, clear visual focal point on landing? | ✅/⚠️/❌ | |
| Direct Value Signal | Does the screen display a concrete, immediate signal of value? | ✅/⚠️/❌ | |
| Obvious Handoff | Is the primary call to action (or continuation path) clear and distinct? | ✅/⚠️/❌ |
If any First-Time Comprehension dimension is ❌: First-Time Comprehension is FAIL.
Aesthetic Grade:
If NEEDS_WORK or UGLY: Flag as validation issue and CAP maximum verified state at IMPL-GREEN (refuse to grant UX-RC or higher):
Evaluative Change Explanation (If applicable): If this evaluation changes a previous rating, state, or recommendation, you MUST include an explicit section detailing exactly what changed, what has been updated in code or specifications, and the logical reasons for the new verdict.
Store Screenshots:
{STORY_DIR}/screenshots/ directory{screen}-{breakpoint|state|device}.pngGenerate Visual Validation Section:
FEEDBACK LOOP (Critical for methodology improvement):
10.7. User Reachability Check (REQUIRED for stories with any UI):
This prevents the "feature exists but nobody can use it" problem.
SKIP ONLY if: story is pure backend, API-only, CLI-only, migration, or infrastructure.
| Check | Question | How to Verify | FAIL if |
|---|---|---|---|
| Discoverability | Can a user find this feature from navigation? | Trace the path from app entry/home to this feature | No navigation path exists to the feature |
| Auth | Can a user authenticate to reach this? | Check if real auth flow (login page, session) exists | Feature requires dev-mode headers, hardcoded tokens, or UUIDs |
| Scaffolding | Are dev shortcuts still in the UI? | Inspect inputs, forms, API calls | UUID text fields, debug headers, x-user-id inputs remain |
| End-to-end | Can a user complete this workflow? | Attempt the user story from spec.md as a real user | Workflow requires developer knowledge to operate |
| Feedback | Does every action have user feedback? | Check success/error/loading states | Silent failures, missing confirmations, no loading states |
Generate User Reachability Section in validation-report.md:
## User Reachability
| Check | Status | Evidence |
|-------|--------|----------|
| Navigation path exists | ✅/❌ | [How user reaches this feature] |
| Real auth (no dev shortcuts) | ✅/❌ | [Auth method used] |
| No scaffolding in UI | ✅/❌ | [Any dev-mode elements found] |
| User can complete workflow | ✅/❌ | [End-to-end result] |
| Action feedback present | ✅/❌ | [Loading/success/error states] |
**Reachability**: [REACHABLE / PARTIAL / UNREACHABLE]
If UNREACHABLE: Validation is FAIL — the feature works but users can't use it. If PARTIAL: Validation is CONDITIONAL_PASS — list what's missing.
git diff --name-only and git diff for the story’s branch)Documentation completeness check:
Generate validation report in {STORY_DIR}/validation-report.md:
CRITICAL: Load and follow the template exactly:
.speck/templates/story/validation-report-template.md
The template is self-documenting - follow all sections and guidelines within it.
Project Truth Update Prompt (if PASS):
After successful validation, prompt user to update project-level docs:
✅ Validation PASSED!
Before completing this story, consider updating project-level truth:
Project-level docs that MAY need updates based on this story:
- [ ] `project.md` → If scope/vision expanded
- [ ] `PRD.md` → If new features delivered or requirements changed
- [ ] `architecture.md` → If new patterns introduced
- [ ] `context.md` → If new constraints discovered
- [ ] `design-system.md` → If new UI patterns added
- [ ] `ux-strategy.md` → If UX principles validated/changed
To update:
1. Review validation-report.md for actual changes
2. Update relevant project docs with "(Added in Story [ID])"
3. Commit updates with "docs: update project truth after [story-id]"
Skip with: --skip-truth-update
Include in validation-report.md:
## Project Truth Update Checklist
This story delivered features that may require project-level documentation updates:
- [ ] `project.md` → [Relevant? Y/N] - [What changed]
- [ ] `PRD.md` → [Relevant? Y/N] - [What changed]
- [ ] `architecture.md` → [Relevant? Y/N] - [What changed]
- [ ] `context.md` → [Relevant? Y/N] - [What changed]
- [ ] `design-system.md` → [Relevant? Y/N] - [What changed]
- [ ] `ux-strategy.md` → [Relevant? Y/N] - [What changed]
**Note**: Project-level docs are the source of truth for "what exists now".
Stories are proposals; after validation, project docs must reflect new reality.
Report completion to user:
/story-validate (after fixes)Behavior rules:
--force)--allow-incomplete, --force, --skip-perf, --skip-quickstartError handling:
Context: $ARGUMENTS
This process skill is fully supported across all primary AI runtimes (Claude, Cursor, Codex) with identical evidence requirements.
| Capability | Claude Code | Cursor | Codex |
|---|---|---|---|
| Execution | Interactive skill command | Interactive skill command | Interactive skill command |
| Automation | Full lifecycle hooks, /goal | afterFileEdit hooks | Manual or CI-driven checks |
| Parallelization | Spawns parallel speck-auditor | Fallback to sequential main context | Fallback to sequential main context |
speck-auditor / speck-scanner) is a Claude-only feature. If running on Cursor or Codex, execute the checklist sequentially in your main context./story-validate executions and local validators (.speck/scripts/validation/) run with --strict.Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
Set up tracing, logging, and monitoring for deployed ADK agents across Cloud Trace, BigQuery, and third-party platforms.
Enterprise Azure infrastructure architect generating Bicep or Terraform from workload descriptions.
Plan and configure production-ready Azure Kubernetes Service clusters with Day-0 and Day-1 best practices.
Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics. Rigid grids, extreme type scale contrast, utilitarian color, analog degradation effects. For data-heavy dashboards, portfolios, or editorial sites that need to feel like declassified blueprints.
Web search, scraping, extraction, crawling, and monitoring via ScrapeGraph AI CLI.
Skill for working with Firebase Hosting (Classic). Use this when you want to deploy static web apps, Single Page Apps (SPAs), or simple microservices. Do NOT use for Firebase App Hosting.
Deploy and manage web apps with Firebase App Hosting. Use this skill when deploying Next.js/Angular apps with backends.
Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".
Build SEO-optimized pages at scale using templates, data, and proven playbook patterns.
Design and build isolated, reusable Convex backend components with clear boundaries and app-facing wrappers.
Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".
Opus.ai: Revolutionize Your Web Experience
Build a no-code AI app in minutes.
An IDE for code migration from legacy to modern frameworks through coding agents.
Automate CGI animation in live-action scenes
Branded artistic QR-code concepts
Launch a website in seconds with AI.
Streamline Your Coding Experience with AI Code Helper
Convert any screenshot or design to clean code.