@williambeto/ai-workflow 1.19.1 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +56 -838
- package/PUBLISH_MANIFEST.json +34 -0
- package/README.md +78 -148
- package/{packages/ai-workflow/bin → bin}/ai-workflow.js +0 -0
- package/dist-assets/AGENTS.md +27 -0
- package/dist-assets/agents/astra.md +63 -0
- package/dist-assets/agents/atlas.md +169 -0
- package/dist-assets/agents/nexus.md +42 -0
- package/dist-assets/agents/orion.md +44 -0
- package/dist-assets/agents/phoenix.md +42 -0
- package/dist-assets/agents/sage.md +54 -0
- package/dist-assets/commands/README.md +14 -0
- package/dist-assets/commands/atlas.md +12 -0
- package/dist-assets/commands/audit.md +10 -0
- package/dist-assets/commands/deploy.md +12 -0
- package/dist-assets/commands/discover.md +10 -0
- package/dist-assets/commands/implement.md +28 -0
- package/dist-assets/commands/optimize-tokens.md +10 -0
- package/dist-assets/commands/plan.md +10 -0
- package/dist-assets/commands/release.md +12 -0
- package/dist-assets/commands/run.md +26 -0
- package/dist-assets/commands/spec-create.md +10 -0
- package/dist-assets/commands/spec-implement.md +10 -0
- package/dist-assets/commands/spec-review.md +10 -0
- package/dist-assets/commands/update-memory.md +10 -0
- package/dist-assets/commands/validate.md +12 -0
- package/dist-assets/docs/INDEX.md +21 -0
- package/dist-assets/docs/QUICKSTART.md +23 -0
- package/dist-assets/docs/adr/ADR-0000.md +19 -0
- package/dist-assets/docs/adr/ADR-0001.md +45 -0
- package/dist-assets/docs/adr/ADR-0002.md +62 -0
- package/dist-assets/docs/adr/ADR-0003.md +60 -0
- package/dist-assets/docs/adr/ADR-0004.md +71 -0
- package/dist-assets/docs/adr/ADR-0005.md +22 -0
- package/dist-assets/docs/adr/ADR-0006.md +82 -0
- package/dist-assets/docs/adr/ADR-0007.md +78 -0
- package/dist-assets/docs/api-engine-reference.md +7 -0
- package/{docs → dist-assets/docs}/architecture-policy.md +1 -1
- package/dist-assets/docs/cli-reference.md +27 -0
- package/dist-assets/docs/compatibility/provider-usage.md +38 -0
- package/dist-assets/docs/compatibility/runtime-matrix.md +30 -0
- package/dist-assets/docs/consumer-onboarding.md +17 -0
- package/dist-assets/docs/contributing-guide.md +11 -0
- package/{docs → dist-assets/docs}/design-patterns-policy.md +2 -2
- package/dist-assets/docs/full-documentation.md +113 -0
- package/{docs → dist-assets/docs}/npm-consumer-quickstart.md +18 -46
- package/dist-assets/docs/opencode-readme.md +8 -0
- package/dist-assets/docs/policies/01-BRANCH_GATE.md +63 -0
- package/dist-assets/docs/policies/02-SDD_METHODOLOGY.md +95 -0
- package/dist-assets/docs/policies/03-QUALITY_GATE.md +22 -0
- package/dist-assets/docs/policies/05-AGENT_CONTRACT.md +7 -0
- package/dist-assets/docs/policies/06-FINAL_EVIDENCE_CONTRACT.md +31 -0
- package/dist-assets/docs/policies/07-RELEASE_GATE.md +47 -0
- package/dist-assets/docs/policies/08-PRODUCT_TRUTHFULNESS_AND_PROJECT_DOCS.md +18 -0
- package/dist-assets/docs/policies/09-SPEC_VISIBILITY_AND_PUBLICATION.md +28 -0
- package/dist-assets/docs/policies/10-BEHAVIORAL_CONTRACT_HARDENING.md +9 -0
- package/dist-assets/docs/policies/11-EXECUTABLE_DELEGATION_AND_TRUTHFULNESS.md +7 -0
- package/dist-assets/docs/policies/ORCHESTRATION_PROTOCOL.md +15 -0
- package/dist-assets/docs/policies/PROCEDURE_DELIVERY_ARTIFACTS.md +21 -0
- package/dist-assets/docs/policies/PROCEDURE_DOCUMENTATION_CHECKLIST.md +24 -0
- package/dist-assets/docs/policies/PROCEDURE_UI_CHECKLIST.md +54 -0
- package/dist-assets/docs/profiles/README.md +19 -0
- package/dist-assets/docs/profiles/backend-api.md +5 -0
- package/dist-assets/docs/profiles/documentation.md +3 -0
- package/dist-assets/docs/profiles/frontend-product.md +19 -0
- package/dist-assets/docs/profiles/frontend-utility.md +19 -0
- package/dist-assets/docs/profiles/refactor.md +3 -0
- package/dist-assets/docs/profiles/security-review.md +3 -0
- package/dist-assets/docs/references/frontend-quality/landing-page-quality-checklist.md +11 -0
- package/dist-assets/docs/references/frontend-quality/product-copy-truthfulness.md +7 -0
- package/dist-assets/docs/references/frontend-quality/quality-failure-examples.md +20 -0
- package/dist-assets/docs/references/frontend-quality/visual-composition-patterns.md +10 -0
- package/dist-assets/docs/specs/runtime-operational-contract.md +39 -0
- package/dist-assets/docs/troubleshooting-guide.md +21 -0
- package/dist-assets/docs/visual-validation-guide.md +76 -0
- package/dist-assets/examples/README.md +10 -0
- package/dist-assets/examples/autopilot-cycle/00-CONTEXT.md +3 -0
- package/dist-assets/examples/autopilot-cycle/01-requirement.md +16 -0
- package/dist-assets/examples/autopilot-cycle/02-gate-a-check.md +23 -0
- package/dist-assets/examples/autopilot-cycle/03-orion-planning.md +20 -0
- package/dist-assets/examples/autopilot-cycle/04-astra-implementation.md +17 -0
- package/dist-assets/examples/autopilot-cycle/05-sage-validation.md +15 -0
- package/dist-assets/examples/autopilot-cycle/06-phoenix-healing.md +12 -0
- package/dist-assets/examples/autopilot-cycle/07-orchestration-report.md +18 -0
- package/dist-assets/examples/backend-api/00-CONTEXT.md +12 -0
- package/dist-assets/examples/backend-api/01-requirement.md +19 -0
- package/dist-assets/examples/backend-api/02-functional-spec.md +20 -0
- package/dist-assets/examples/backend-api/03-technical-plan.md +15 -0
- package/dist-assets/examples/backend-api/04-pr-breakdown.md +10 -0
- package/dist-assets/examples/backend-api/05-execution-handoff.md +13 -0
- package/dist-assets/examples/backend-api/06-validation-report.md +11 -0
- package/dist-assets/examples/backend-api/07-orchestration-report.md +7 -0
- package/dist-assets/examples/blocked-scenarios/00-CONTEXT.md +9 -0
- package/dist-assets/examples/blocked-scenarios/01-branch-gate-block.md +12 -0
- package/dist-assets/examples/blocked-scenarios/02-quality-gate-block.md +13 -0
- package/dist-assets/examples/blocked-scenarios/03-scope-creep-block.md +13 -0
- package/dist-assets/examples/blocked-scenarios/04-unblock-resolution.md +9 -0
- package/dist-assets/examples/blocked-scenarios/05-orchestration-decision-log.md +11 -0
- package/dist-assets/examples/bugfix-critical/00-CONTEXT.md +12 -0
- package/dist-assets/examples/bugfix-critical/01-bug-report.md +11 -0
- package/dist-assets/examples/bugfix-critical/02-diagnosis-hypothesis.md +11 -0
- package/dist-assets/examples/bugfix-critical/03-technical-plan.md +12 -0
- package/dist-assets/examples/bugfix-critical/04-implementation-handoff.md +8 -0
- package/dist-assets/examples/bugfix-critical/05-validation-report.md +10 -0
- package/dist-assets/examples/bugfix-critical/06-orchestration-report.md +7 -0
- package/dist-assets/examples/cli-package/00-CONTEXT.md +9 -0
- package/dist-assets/examples/cli-package/01-requirement.md +14 -0
- package/dist-assets/examples/cli-package/02-technical-spec.md +16 -0
- package/dist-assets/examples/cli-package/03-technical-plan.md +12 -0
- package/dist-assets/examples/cli-package/04-pr-breakdown.md +9 -0
- package/dist-assets/examples/cli-package/05-release-report.md +15 -0
- package/dist-assets/examples/docs-only-repo/01-requirement.md +31 -0
- package/dist-assets/examples/docs-only-repo/02-functional-spec.md +25 -0
- package/dist-assets/examples/docs-only-repo/03-technical-plan.md +21 -0
- package/dist-assets/examples/docs-only-repo/04-pr-breakdown.md +13 -0
- package/dist-assets/examples/docs-only-repo/05-execution-handoff.md +17 -0
- package/dist-assets/examples/docs-only-repo/06-validation-report.md +16 -0
- package/dist-assets/examples/docs-only-repo/README.md +26 -0
- package/dist-assets/examples/full-stack-checkout/00-CONTEXT.md +9 -0
- package/dist-assets/examples/full-stack-checkout/01-requirement.md +12 -0
- package/dist-assets/examples/full-stack-checkout/02-functional-spec.md +15 -0
- package/dist-assets/examples/full-stack-checkout/03-technical-plan.md +15 -0
- package/dist-assets/examples/full-stack-checkout/04-pr-breakdown.md +8 -0
- package/dist-assets/examples/full-stack-checkout/05-execution-handoff.md +14 -0
- package/dist-assets/examples/full-stack-checkout/06-validation-report.md +12 -0
- package/dist-assets/examples/healing-cycle/00-CONTEXT.md +15 -0
- package/dist-assets/examples/healing-cycle/01-broken-implementation.md +10 -0
- package/dist-assets/examples/healing-cycle/02-sage-fails.md +14 -0
- package/dist-assets/examples/healing-cycle/03-phoenix-diagnosis.md +17 -0
- package/dist-assets/examples/healing-cycle/04-phoenix-fix.md +18 -0
- package/dist-assets/examples/healing-cycle/05-sage-revalidation.md +12 -0
- package/dist-assets/examples/healing-cycle/06-orchestration-log.md +14 -0
- package/dist-assets/examples/infra-deploy/00-CONTEXT.md +9 -0
- package/dist-assets/examples/infra-deploy/01-operational-goal.md +12 -0
- package/dist-assets/examples/infra-deploy/02-architecture-specs.md +15 -0
- package/dist-assets/examples/infra-deploy/03-implementation-plan.md +14 -0
- package/dist-assets/examples/infra-deploy/04-step-breakdown.md +9 -0
- package/dist-assets/examples/infra-deploy/05-execution-handoff.md +13 -0
- package/dist-assets/examples/infra-deploy/06-operational-report.md +11 -0
- package/dist-assets/examples/multi-pr-release/00-CONTEXT.md +9 -0
- package/dist-assets/examples/multi-pr-release/01-requirement.md +13 -0
- package/dist-assets/examples/multi-pr-release/02-strategic-plan.md +13 -0
- package/dist-assets/examples/multi-pr-release/03-pr-breakdown.md +14 -0
- package/dist-assets/examples/multi-pr-release/04-release-plan.md +12 -0
- package/dist-assets/examples/multi-pr-release/05-orchestration-report.md +7 -0
- package/dist-assets/examples/nuxt-dashboard/01-requirement.md +81 -0
- package/dist-assets/examples/nuxt-dashboard/02-functional-spec.md +88 -0
- package/dist-assets/examples/nuxt-dashboard/03-technical-plan.md +76 -0
- package/dist-assets/examples/nuxt-dashboard/04-pr-breakdown.md +219 -0
- package/dist-assets/examples/nuxt-dashboard/05-execution-handoff.md +88 -0
- package/dist-assets/examples/nuxt-dashboard/06-validation-report.md +56 -0
- package/dist-assets/examples/nuxt-dashboard/07-orchestration-report.md +79 -0
- package/dist-assets/examples/nuxt-dashboard/README.md +52 -0
- package/dist-assets/examples/react-dashboard/01-requirement.md +84 -0
- package/dist-assets/examples/react-dashboard/02-functional-spec.md +88 -0
- package/dist-assets/examples/react-dashboard/03-technical-plan.md +76 -0
- package/dist-assets/examples/react-dashboard/04-pr-breakdown.md +218 -0
- package/dist-assets/examples/react-dashboard/05-execution-handoff.md +13 -0
- package/dist-assets/examples/react-dashboard/06-validation-report.md +12 -0
- package/dist-assets/examples/react-dashboard/07-orchestration-report.md +7 -0
- package/dist-assets/examples/react-dashboard/README.md +70 -0
- package/dist-assets/examples/refactoring-service/00-CONTEXT.md +9 -0
- package/dist-assets/examples/refactoring-service/01-debt-report.md +12 -0
- package/dist-assets/examples/refactoring-service/02-behavior-spec.md +11 -0
- package/dist-assets/examples/refactoring-service/03-technical-plan.md +13 -0
- package/dist-assets/examples/refactoring-service/04-pr-breakdown.md +9 -0
- package/dist-assets/examples/refactoring-service/05-execution-handoff.md +14 -0
- package/dist-assets/examples/refactoring-service/06-stability-report.md +12 -0
- package/dist-assets/examples/sdd-cycle/00-CONTEXT.md +12 -0
- package/dist-assets/examples/sdd-cycle/01-raw-request.md +13 -0
- package/dist-assets/examples/sdd-cycle/02-spec-creation.md +18 -0
- package/dist-assets/examples/sdd-cycle/03-spec-review.md +12 -0
- package/dist-assets/examples/sdd-cycle/04-technical-plan.md +16 -0
- package/dist-assets/examples/sdd-cycle/05-pr-breakdown.md +9 -0
- package/dist-assets/examples/sdd-cycle/06-spec-implement.md +13 -0
- package/dist-assets/examples/sdd-cycle/07-validation-against-spec.md +13 -0
- package/dist-assets/examples/wordpress-theme/01-requirement.md +29 -0
- package/dist-assets/examples/wordpress-theme/02-functional-spec.md +22 -0
- package/dist-assets/examples/wordpress-theme/03-technical-plan.md +22 -0
- package/dist-assets/examples/wordpress-theme/04-pr-breakdown.md +14 -0
- package/dist-assets/examples/wordpress-theme/05-execution-handoff.md +17 -0
- package/dist-assets/examples/wordpress-theme/06-validation-report.md +16 -0
- package/dist-assets/examples/wordpress-theme/README.md +32 -0
- package/{harness → dist-assets/harness}/handoffs/HANDOFF.template.md +2 -2
- package/{harness → dist-assets/harness}/workflows/agent-evaluation-checklist.md +5 -5
- package/{harness → dist-assets/harness}/workflows/implement-review-validate.md +24 -0
- package/{harness → dist-assets/harness}/workflows/multi-agent-handoff.md +4 -4
- package/{harness → dist-assets/harness}/workflows/planner-executor-workflow.md +5 -5
- package/{harness → dist-assets/harness}/workflows/requirement-to-pr.md +1 -1
- package/dist-assets/runbooks/agent-delegation-workflow.md +50 -0
- package/dist-assets/runbooks/apply-starter-to-real-project.md +45 -0
- package/dist-assets/runbooks/commands-cheatsheet.md +44 -0
- package/dist-assets/runbooks/how-to-use-skills.md +44 -0
- package/dist-assets/runbooks/private-spec-publication-safety.md +35 -0
- package/{runbooks → dist-assets/runbooks}/spec-driven-development.md +3 -6
- package/dist-assets/runbooks/tutorial-walkthroughs.md +23 -0
- package/dist-assets/runbooks/use-linear-for-operational-planning.md +45 -0
- package/dist-assets/runbooks/use-napkin-project-memory.md +33 -0
- package/dist-assets/skills/architecture/SKILL.md +166 -0
- package/dist-assets/skills/backend-development/SKILL.md +166 -0
- package/dist-assets/skills/deployment/SKILL.md +166 -0
- package/dist-assets/skills/design-principles/SKILL.md +166 -0
- package/dist-assets/skills/documentation/SKILL.md +171 -0
- package/dist-assets/skills/frontend-development/SKILL.md +225 -0
- package/dist-assets/skills/full-stack-development/SKILL.md +166 -0
- package/dist-assets/skills/optimize-tokens/SKILL.md +166 -0
- package/dist-assets/skills/pr-workflow/SKILL.md +166 -0
- package/dist-assets/skills/product-discovery/SKILL.md +166 -0
- package/dist-assets/skills/product-planning/SKILL.md +166 -0
- package/dist-assets/skills/project-memory/SKILL.md +166 -0
- package/dist-assets/skills/prompt-engineer/SKILL.md +166 -0
- package/dist-assets/skills/qa-workflow/SKILL.md +186 -0
- package/dist-assets/skills/refactoring/SKILL.md +166 -0
- package/dist-assets/skills/release-workflow/SKILL.md +166 -0
- package/dist-assets/skills/spec-driven-development/SKILL.md +166 -0
- package/dist-assets/skills/technical-leadership/SKILL.md +166 -0
- package/dist-assets/skills/ui-ux-design/SKILL.md +202 -0
- package/dist-assets/templates/.geminiignore.template +8 -0
- package/dist-assets/templates/CLAUDE.md.template +20 -0
- package/dist-assets/templates/CODEX.md.template +20 -0
- package/dist-assets/templates/GEMINI.md.template +20 -0
- package/dist-assets/templates/HANDOFF.template.md +45 -0
- package/dist-assets/templates/SPEC.template.md +38 -0
- package/dist-assets/templates/change-proposal.template.md +14 -0
- package/dist-assets/templates/owner-evidence/astra-implementation.json +10 -0
- package/dist-assets/templates/owner-evidence/phoenix-remediation.json +8 -0
- package/dist-assets/templates/owner-evidence/sage-revalidation.json +8 -0
- package/dist-assets/templates/owner-evidence/sage-validation.json +8 -0
- package/dist-assets/templates/specs/deep.md +48 -0
- package/dist-assets/templates/specs/standard.md +38 -0
- package/dist-assets/templates/specs/tiny.md +19 -0
- package/package.json +43 -47
- package/src/adapters/index.js +3 -0
- package/src/adapters/platforms/claude.js +126 -0
- package/src/adapters/platforms/codex.js +100 -0
- package/src/adapters/platforms/gemini.js +232 -0
- package/src/cli.js +114 -0
- package/src/commands/collect-evidence.js +61 -0
- package/src/commands/doctor.js +186 -0
- package/src/commands/execute.js +172 -0
- package/{packages/ai-workflow/src → src}/commands/init.js +119 -20
- package/src/commands/run.js +112 -0
- package/src/core/completion-contract.js +35 -0
- package/src/core/execution-planner.js +59 -0
- package/src/core/gates/branch-gate.js +146 -0
- package/src/core/handoff/handoff-engine.js +104 -0
- package/src/core/healing/cli-remediation-executor.js +151 -0
- package/src/core/healing/healer-engine.js +179 -0
- package/src/core/identity.js +43 -0
- package/{packages/ai-workflow/src → src}/core/install-plan.js +3 -3
- package/src/core/opencode-merge.js +149 -0
- package/{packages/ai-workflow/src → src}/core/package-assets.js +29 -10
- package/src/core/request-classifier.js +58 -0
- package/src/core/runtime/opencode-adapter.js +94 -0
- package/src/core/sdd/validator.js +67 -0
- package/src/core/statuses.js +29 -0
- package/src/core/symlink-layout.js +93 -0
- package/src/core/templates.js +221 -0
- package/src/core/validation/canonical-finalization.js +43 -0
- package/src/core/validation/evidence-collector.js +109 -0
- package/src/core/validation/quality-guard.js +243 -0
- package/src/core/workflow-profiles.js +107 -0
- package/src/core/workflow-state-machine.js +46 -0
- package/.agents/napkin.md +0 -89
- package/.agents/skills/backend-implementer/SKILL.md +0 -490
- package/.agents/skills/build-and-validate/SKILL.md +0 -442
- package/.agents/skills/deploy-engineer/SKILL.md +0 -541
- package/.agents/skills/docs-writer/SKILL.md +0 -430
- package/.agents/skills/frontend-implementer/SKILL.md +0 -488
- package/.agents/skills/interface-design/SKILL.md +0 -428
- package/.agents/skills/interface-design/references/critique.md +0 -67
- package/.agents/skills/interface-design/references/example.md +0 -86
- package/.agents/skills/interface-design/references/principles.md +0 -235
- package/.agents/skills/interface-design/references/validation.md +0 -48
- package/.agents/skills/minimal-context/SKILL.md +0 -177
- package/.agents/skills/napkin/SKILL.md +0 -84
- package/.agents/skills/opencode-agent-design/SKILL.md +0 -77
- package/.agents/skills/playwright-cli/SKILL.md +0 -62
- package/.agents/skills/pr-orchestrator/SKILL.md +0 -366
- package/.agents/skills/product-manager/SKILL.md +0 -519
- package/.agents/skills/seo-audit/SKILL.md +0 -176
- package/.agents/skills/stack-variant-creator/SKILL.md +0 -265
- package/.agents/skills/tech-lead/SKILL.md +0 -453
- package/.agents/skills/tester/SKILL.md +0 -399
- package/.agents/skills/token-economy/SKILL.md +0 -137
- package/.agents/skills/vue-nuxt/SKILL.md +0 -102
- package/.agents/skills/wordpress-engineer/SKILL.md +0 -75
- package/.codex/prompts/README.md +0 -44
- package/.codex/prompts/autopilot.md +0 -50
- package/.codex/prompts/deploy.md +0 -33
- package/.codex/prompts/execute-selected-pr.md +0 -35
- package/.codex/prompts/fix-issue.md +0 -34
- package/.codex/prompts/minimal-context-mode.md +0 -55
- package/.codex/prompts/orchestrate-next.md +0 -33
- package/.codex/prompts/plan-from-requirement.md +0 -37
- package/.codex/prompts/review-implementation.md +0 -33
- package/.codex/prompts/roadmap-audit.md +0 -22
- package/.codex/prompts/specs/create-spec-from-requirement.md +0 -26
- package/.codex/prompts/specs/review-spec.md +0 -29
- package/.codex/prompts/specs/spec-to-pr-breakdown.md +0 -23
- package/.codex/prompts/specs/spec-to-technical-plan.md +0 -28
- package/.codex/prompts/start-project.md +0 -29
- package/.codex/prompts/token-economy-mode.md +0 -48
- package/.codex/prompts/validate-work.md +0 -28
- package/checklists/change-spec-readiness-checklist.md +0 -34
- package/docs/full-documentation.md +0 -661
- package/docs/setup-codex-opencode.md +0 -313
- package/harness/README.md +0 -106
- package/opencode/README.md +0 -84
- package/opencode/agents/README.md +0 -113
- package/opencode/agents/atlas.md +0 -127
- package/opencode/agents/discovery.md +0 -61
- package/opencode/agents/fixer.md +0 -51
- package/opencode/agents/implementer.md +0 -61
- package/opencode/agents/orchestrator.md +0 -145
- package/opencode/agents/planner.md +0 -60
- package/opencode/agents/prompt-engineer.md +0 -50
- package/opencode/agents/release-manager.md +0 -50
- package/opencode/agents/reviewer.md +0 -51
- package/opencode/agents/spec-engineer.md +0 -85
- package/opencode/agents/validator.md +0 -50
- package/opencode/agents/wordpress-engineer.md +0 -49
- package/opencode/commands/README.md +0 -48
- package/opencode/commands/autopilot.md +0 -50
- package/opencode/commands/deploy.md +0 -35
- package/opencode/commands/execute.md +0 -47
- package/opencode/commands/orchestrate.md +0 -37
- package/opencode/commands/plan.md +0 -39
- package/opencode/commands/review.md +0 -33
- package/opencode/commands/roadmap-audit.md +0 -30
- package/opencode/commands/ship.md +0 -48
- package/opencode/commands/specs/create-spec-from-request.md +0 -27
- package/opencode/commands/specs/create-spec-from-requirement.md +0 -25
- package/opencode/commands/specs/review-spec.md +0 -26
- package/opencode/commands/specs/spec-to-pr-breakdown.md +0 -19
- package/opencode/commands/specs/spec-to-tasks.md +0 -26
- package/opencode/commands/specs/spec-to-technical-plan.md +0 -27
- package/opencode/commands/start.md +0 -45
- package/opencode/commands/token-economy.md +0 -29
- package/opencode/commands/validate.md +0 -33
- package/opencode.jsonc +0 -235
- package/packages/ai-workflow/README.md +0 -82
- package/packages/ai-workflow/src/cli.js +0 -70
- package/packages/ai-workflow/src/commands/codex.js +0 -37
- package/packages/ai-workflow/src/commands/doctor.js +0 -168
- package/packages/ai-workflow/src/commands/guide.js +0 -194
- package/packages/ai-workflow/src/core/opencode-merge.js +0 -172
- package/packages/ai-workflow/src/core/symlink-layout.js +0 -54
- package/packages/ai-workflow/src/core/templates.js +0 -276
- package/runbooks/agent-delegation-workflow.md +0 -111
- package/runbooks/apply-starter-to-real-project.md +0 -445
- package/runbooks/commands-cheatsheet.md +0 -71
- package/runbooks/how-to-use-skills.md +0 -713
- package/runbooks/quick-start-guide.md +0 -213
- package/runbooks/tutorial-walkthroughs.md +0 -416
- package/runbooks/use-linear-for-operational-planning.md +0 -185
- package/runbooks/use-napkin-project-memory.md +0 -77
- package/templates/AGENTS.template.md +0 -397
- package/templates/DESIGN.template.md +0 -484
- package/templates/PR-PLAN.template.md +0 -172
- package/templates/README.template.md +0 -293
- package/templates/REQUIREMENT.template.md +0 -165
- package/templates/SPEC.template.md +0 -397
- package/templates/TECH-PLAN.template.md +0 -244
- package/templates/change-proposal.template.md +0 -97
- /package/{checklists/spec-readiness-checklist.md → dist-assets/docs/policies/SPEC_READINESS.md} +0 -0
- /package/{prompts → dist-assets/prompts}/00-bootstrap-project.md +0 -0
- /package/{prompts → dist-assets/prompts}/01-create-requirement.md +0 -0
- /package/{prompts → dist-assets/prompts}/02-create-spec.md +0 -0
- /package/{prompts → dist-assets/prompts}/03-create-tech-plan.md +0 -0
- /package/{prompts → dist-assets/prompts}/04-breakdown-prs.md +0 -0
- /package/{prompts → dist-assets/prompts}/05-implement-pr.md +0 -0
- /package/{prompts → dist-assets/prompts}/06-review-and-fix.md +0 -0
- /package/{prompts → dist-assets/prompts}/07-apply-design.md +0 -0
- /package/{prompts → dist-assets/prompts}/08-validate.md +0 -0
- /package/{prompts → dist-assets/prompts}/09-deploy.md +0 -0
- /package/{prompts → dist-assets/prompts}/commands/implement.md +0 -0
- /package/{prompts → dist-assets/prompts}/commands/requirement.md +0 -0
- /package/{prompts → dist-assets/prompts}/commands/spec.md +0 -0
- /package/{prompts → dist-assets/prompts}/commands/tech-plan.md +0 -0
- /package/{prompts → dist-assets/prompts}/commands/validate.md +0 -0
- /package/{runbooks → dist-assets/runbooks}/branch-cleanup.md +0 -0
- /package/{runbooks → dist-assets/runbooks}/deploy-checklist.md +0 -0
- /package/{runbooks → dist-assets/runbooks}/publication-readiness-checklist.md +0 -0
- /package/{runbooks → dist-assets/runbooks}/publish-package-checklist.md +0 -0
- /package/{runbooks → dist-assets/runbooks}/team-governance-pr-readiness.md +0 -0
- /package/{runbooks → dist-assets/runbooks}/validate-starter-in-real-project.md +0 -0
- /package/{runbooks → dist-assets/runbooks}/validation-checklist.md +0 -0
- /package/{schemas → dist-assets/schemas}/README.md +0 -0
- /package/{schemas → dist-assets/schemas}/functional-spec.schema.json +0 -0
- /package/{schemas → dist-assets/schemas}/handoff.schema.json +0 -0
- /package/{schemas → dist-assets/schemas}/pr-breakdown.schema.json +0 -0
- /package/{schemas → dist-assets/schemas}/requirement.schema.json +0 -0
- /package/{schemas → dist-assets/schemas}/technical-plan.schema.json +0 -0
- /package/{schemas → dist-assets/schemas}/validation-report.schema.json +0 -0
- /package/{packages/ai-workflow/src → src}/core/backup.js +0 -0
- /package/{packages/ai-workflow/src → src}/core/filesystem.js +0 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Functional Specification: Products Dashboard Area
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
The dashboard will include a protected products section backed by DummyJSON. Users can browse products, search by keyword, paginate results, open product details, and see create/edit/delete controls that are explicitly placeholders.
|
|
6
|
+
|
|
7
|
+
## User Stories
|
|
8
|
+
|
|
9
|
+
- As an authenticated dashboard user, I want to view products so I can inspect available catalog data.
|
|
10
|
+
- As an authenticated dashboard user, I want to search products so I can find relevant records quickly.
|
|
11
|
+
- As an authenticated dashboard user, I want to paginate products so large result sets remain manageable.
|
|
12
|
+
- As an authenticated dashboard user, I want to open a product detail page so I can inspect one product.
|
|
13
|
+
- As a developer, I want CRUD placeholders so I can see where future persistence work belongs without implementing it now.
|
|
14
|
+
|
|
15
|
+
## Functional Requirements
|
|
16
|
+
|
|
17
|
+
- The products area must live under the protected dashboard route group.
|
|
18
|
+
- The list page must fetch products from DummyJSON.
|
|
19
|
+
- The list page must display product title, price, category, stock, and thumbnail when present.
|
|
20
|
+
- The list page must support keyword search.
|
|
21
|
+
- The list page must support pagination.
|
|
22
|
+
- Search and pagination state must be understandable to the user.
|
|
23
|
+
- The detail page must fetch and display one product by ID.
|
|
24
|
+
- Create, edit, and delete controls must be visible but non-persistent.
|
|
25
|
+
- Loading states must appear while product data is being fetched.
|
|
26
|
+
- Empty states must appear when no products match the current query.
|
|
27
|
+
- Error states must appear when the product request fails.
|
|
28
|
+
|
|
29
|
+
## Screens And States
|
|
30
|
+
|
|
31
|
+
### Products List
|
|
32
|
+
|
|
33
|
+
- Default state with paginated products.
|
|
34
|
+
- Search state with filtered results.
|
|
35
|
+
- Loading state during fetch.
|
|
36
|
+
- Empty state when no results match the query.
|
|
37
|
+
- Error state when DummyJSON fails or returns an unexpected response.
|
|
38
|
+
|
|
39
|
+
### Product Detail
|
|
40
|
+
|
|
41
|
+
- Default state with product summary and key attributes.
|
|
42
|
+
- Loading state during fetch.
|
|
43
|
+
- Not found state for an invalid product ID.
|
|
44
|
+
- Error state for request failures.
|
|
45
|
+
|
|
46
|
+
### Placeholder Actions
|
|
47
|
+
|
|
48
|
+
- Create action appears from the products list.
|
|
49
|
+
- Edit action appears from the detail page or row action.
|
|
50
|
+
- Delete action appears where destructive actions are expected.
|
|
51
|
+
- Placeholder actions must not send real mutation requests.
|
|
52
|
+
|
|
53
|
+
## Errors
|
|
54
|
+
|
|
55
|
+
- Network request fails.
|
|
56
|
+
- DummyJSON returns an unexpected response shape.
|
|
57
|
+
- Product ID is missing, invalid, or not found.
|
|
58
|
+
- Search returns no products.
|
|
59
|
+
- Pagination points beyond the available result range.
|
|
60
|
+
|
|
61
|
+
## Edge Cases
|
|
62
|
+
|
|
63
|
+
- Empty search query should return the default product list.
|
|
64
|
+
- Fast search changes should not leave stale loading indicators.
|
|
65
|
+
- Pagination should reset or remain coherent when the search query changes.
|
|
66
|
+
- Missing thumbnails should not break the product card or row layout.
|
|
67
|
+
- Long product names should not overflow the layout.
|
|
68
|
+
- API errors should not break dashboard navigation.
|
|
69
|
+
|
|
70
|
+
## Acceptance Criteria
|
|
71
|
+
|
|
72
|
+
- The list route is protected by existing dashboard auth behavior.
|
|
73
|
+
- Product list data loads from DummyJSON and renders key fields.
|
|
74
|
+
- Search changes the displayed product results.
|
|
75
|
+
- Pagination changes the displayed product page.
|
|
76
|
+
- Product detail navigation works for a valid product.
|
|
77
|
+
- Invalid product IDs show a not found or error state.
|
|
78
|
+
- Loading, empty, and error states are implemented for list and detail views.
|
|
79
|
+
- CRUD placeholders are visible and clearly non-persistent.
|
|
80
|
+
- Validation commands are run and reported for each PR.
|
|
81
|
+
|
|
82
|
+
## Out Of Scope
|
|
83
|
+
|
|
84
|
+
- Real create, update, or delete API calls.
|
|
85
|
+
- Custom backend API routes (use server actions or route handlers only for demo data).
|
|
86
|
+
- Authentication redesign.
|
|
87
|
+
- Persistent filters (URL params are acceptable but not required).
|
|
88
|
+
- Advanced table features such as sorting, column customization, exports, and bulk selection.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Technical Plan: Products Dashboard Area
|
|
2
|
+
|
|
3
|
+
## Architecture Summary
|
|
4
|
+
|
|
5
|
+
Add a small products domain that isolates DummyJSON access from dashboard pages using Next.js App Router conventions. Dashboard pages should consume typed product contracts and repository functions or server actions instead of calling fetch directly in every component.
|
|
6
|
+
|
|
7
|
+
The UI should reuse the existing dashboard shell, middleware, UI primitives (e.g., shadcn/ui), and Tailwind CSS conventions. The plan assumes a Next.js app may use `app/dashboard/products/page.tsx`, `app/dashboard/products/[id]/page.tsx`, `lib/products/`, shared API utilities, middleware for auth, and a componentized dashboard shell.
|
|
8
|
+
|
|
9
|
+
## Proposed Folders And Files
|
|
10
|
+
|
|
11
|
+
| Path | Purpose |
|
|
12
|
+
| ---- | ------- |
|
|
13
|
+
| `lib/products/types.ts` | Product and product list contracts |
|
|
14
|
+
| `lib/products/repository.ts` | DummyJSON product fetch functions or server actions |
|
|
15
|
+
| `lib/products/mappers.ts` | Optional response normalization if needed |
|
|
16
|
+
| `app/dashboard/products/page.tsx` | Products list route (RSC or client component as needed) |
|
|
17
|
+
| `app/dashboard/products/[id]/page.tsx` | Product detail route |
|
|
18
|
+
| `components/dashboard/products/` | Product-specific UI components if page files become too large |
|
|
19
|
+
| `lib/api/` | Existing shared API utilities if already present |
|
|
20
|
+
|
|
21
|
+
Do not assume all paths exist. Inspect the target repository before editing and follow the local folder pattern.
|
|
22
|
+
|
|
23
|
+
## Implementation Steps
|
|
24
|
+
|
|
25
|
+
1. Inspect the existing dashboard routes, auth middleware, component structure, and data-fetching helpers.
|
|
26
|
+
2. Add products domain types and repository functions or server actions for list, search, pagination, and detail fetches.
|
|
27
|
+
3. Implement the products list page using existing dashboard layout conventions.
|
|
28
|
+
4. Wire search and pagination state with clear loading, empty, and error states.
|
|
29
|
+
5. Add the product detail page using the products detail fetch.
|
|
30
|
+
6. Add create, edit, and delete placeholders without real mutation calls.
|
|
31
|
+
7. Add or update focused tests where the project already has test infrastructure (e.g., Vitest, React Testing Library, Playwright).
|
|
32
|
+
8. Run typecheck, lint, tests, and build before reporting completion.
|
|
33
|
+
|
|
34
|
+
## Dependencies
|
|
35
|
+
|
|
36
|
+
- Existing Next.js 14+ and React 18+ app.
|
|
37
|
+
- Existing TypeScript configuration.
|
|
38
|
+
- Existing shadcn/ui and Tailwind setup.
|
|
39
|
+
- Existing middleware for protected dashboard pages.
|
|
40
|
+
- DummyJSON product endpoints.
|
|
41
|
+
- Existing test and validation commands, when available.
|
|
42
|
+
|
|
43
|
+
No new runtime dependency is required for this plan.
|
|
44
|
+
|
|
45
|
+
## Risks
|
|
46
|
+
|
|
47
|
+
- DummyJSON response fields may need mapping before UI use.
|
|
48
|
+
- Product list search and pagination can produce stale results if query state is not handled carefully.
|
|
49
|
+
- Page files can become too large if list, empty, error, and placeholder action UI are all inline.
|
|
50
|
+
- Placeholder actions can be mistaken for real persistence if labels are unclear.
|
|
51
|
+
- Tests may not exist yet in the target project.
|
|
52
|
+
|
|
53
|
+
## Trade-Offs
|
|
54
|
+
|
|
55
|
+
- A small repository layer adds one extra file but keeps DummyJSON details out of pages.
|
|
56
|
+
- Keeping placeholders non-persistent limits scope but still shows intended CRUD workflow.
|
|
57
|
+
- URL query synchronization improves shareability but may be deferred if it increases PR size.
|
|
58
|
+
- Component extraction should happen only when page complexity justifies it.
|
|
59
|
+
- Server Components vs Client Components: default to Server Components for data fetching; use "use client" only when interactivity is needed.
|
|
60
|
+
|
|
61
|
+
## Validation Plan
|
|
62
|
+
|
|
63
|
+
- Run `npm run typecheck` or `tsc --noEmit`.
|
|
64
|
+
- Run `npm run lint`.
|
|
65
|
+
- Run `npm test` or `vitest` if the target project defines it.
|
|
66
|
+
- Run `npm run build`.
|
|
67
|
+
- Manually verify protected route behavior.
|
|
68
|
+
- Manually verify list loading, search, pagination, empty state, error state, and detail navigation.
|
|
69
|
+
- Confirm CRUD placeholders do not send mutation requests.
|
|
70
|
+
|
|
71
|
+
## Rollback Plan
|
|
72
|
+
|
|
73
|
+
- Revert the selected PR if validation fails and the fix is not small.
|
|
74
|
+
- Remove added product routes from dashboard navigation if navigation was modified.
|
|
75
|
+
- Remove the products domain files added by the failing PR.
|
|
76
|
+
- Keep unrelated dashboard routes and auth middleware unchanged.
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# PR Breakdown: Products Dashboard Area
|
|
2
|
+
|
|
3
|
+
## Strategy
|
|
4
|
+
|
|
5
|
+
Build the products area through small PRs that separate data contracts, list behavior, detail behavior, placeholder actions, and validation hardening. Each PR should preserve existing dashboard behavior and avoid implementing future PR scope.
|
|
6
|
+
|
|
7
|
+
## PR 1 — Products Domain Contracts And Repository
|
|
8
|
+
|
|
9
|
+
Goal:
|
|
10
|
+
|
|
11
|
+
Create the typed products domain boundary for DummyJSON access.
|
|
12
|
+
|
|
13
|
+
Scope:
|
|
14
|
+
|
|
15
|
+
- Define product and product list types.
|
|
16
|
+
- Add repository functions or server actions for list/search/pagination and detail fetches.
|
|
17
|
+
- Add response mapping only if DummyJSON fields need normalization.
|
|
18
|
+
|
|
19
|
+
Likely files:
|
|
20
|
+
|
|
21
|
+
- `lib/products/types.ts`
|
|
22
|
+
- `lib/products/repository.ts`
|
|
23
|
+
- `lib/products/mappers.ts`
|
|
24
|
+
- Existing shared API utility files if already present
|
|
25
|
+
|
|
26
|
+
Validation:
|
|
27
|
+
|
|
28
|
+
- Run `npm run typecheck` or `tsc --noEmit`.
|
|
29
|
+
- Run `npm run lint`.
|
|
30
|
+
- Add or run focused repository tests if the project has test infrastructure.
|
|
31
|
+
|
|
32
|
+
Risks:
|
|
33
|
+
|
|
34
|
+
- Response contracts may not match DummyJSON exactly.
|
|
35
|
+
- Repository helpers may duplicate existing API utilities.
|
|
36
|
+
|
|
37
|
+
Dependencies:
|
|
38
|
+
|
|
39
|
+
- Existing API utility conventions.
|
|
40
|
+
|
|
41
|
+
Estimated size:
|
|
42
|
+
|
|
43
|
+
```txt
|
|
44
|
+
small
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## PR 2 — Products List Page With Search And Pagination
|
|
48
|
+
|
|
49
|
+
Goal:
|
|
50
|
+
|
|
51
|
+
Add the protected products list page with search, pagination, and core list states.
|
|
52
|
+
|
|
53
|
+
Scope:
|
|
54
|
+
|
|
55
|
+
- Add the products list dashboard route.
|
|
56
|
+
- Render product cards or rows using existing dashboard components.
|
|
57
|
+
- Wire search and pagination to the products repository.
|
|
58
|
+
- Show loading, empty, and error states.
|
|
59
|
+
|
|
60
|
+
Likely files:
|
|
61
|
+
|
|
62
|
+
- `app/dashboard/products/page.tsx`
|
|
63
|
+
- `components/dashboard/products/ProductList.tsx`
|
|
64
|
+
- `components/dashboard/products/ProductSearch.tsx`
|
|
65
|
+
- `lib/products/repository.ts`
|
|
66
|
+
|
|
67
|
+
Validation:
|
|
68
|
+
|
|
69
|
+
- Run `npm run typecheck` or `tsc --noEmit`.
|
|
70
|
+
- Run `npm run lint`.
|
|
71
|
+
- Run `npm test` if available.
|
|
72
|
+
- Run `npm run build`.
|
|
73
|
+
- Manually verify protected route access, search, pagination, loading, empty, and error states.
|
|
74
|
+
|
|
75
|
+
Risks:
|
|
76
|
+
|
|
77
|
+
- Query state may become inconsistent when search changes.
|
|
78
|
+
- Long product names or missing thumbnails may affect layout.
|
|
79
|
+
|
|
80
|
+
Dependencies:
|
|
81
|
+
|
|
82
|
+
- PR 1.
|
|
83
|
+
|
|
84
|
+
Estimated size:
|
|
85
|
+
|
|
86
|
+
```txt
|
|
87
|
+
medium
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## PR 3 — Product Detail Page
|
|
91
|
+
|
|
92
|
+
Goal:
|
|
93
|
+
|
|
94
|
+
Add a protected product detail route for individual product inspection.
|
|
95
|
+
|
|
96
|
+
Scope:
|
|
97
|
+
|
|
98
|
+
- Add the product detail page.
|
|
99
|
+
- Fetch product by ID through the products repository.
|
|
100
|
+
- Render key product attributes and navigation back to the list.
|
|
101
|
+
- Handle loading, not found, and error states.
|
|
102
|
+
|
|
103
|
+
Likely files:
|
|
104
|
+
|
|
105
|
+
- `app/dashboard/products/[id]/page.tsx`
|
|
106
|
+
- `components/dashboard/products/ProductDetail.tsx`
|
|
107
|
+
- `lib/products/repository.ts`
|
|
108
|
+
|
|
109
|
+
Validation:
|
|
110
|
+
|
|
111
|
+
- Run `npm run typecheck` or `tsc --noEmit`.
|
|
112
|
+
- Run `npm run lint`.
|
|
113
|
+
- Run `npm test` if available.
|
|
114
|
+
- Run `npm run build`.
|
|
115
|
+
- Manually verify valid, invalid, and failing product detail states.
|
|
116
|
+
|
|
117
|
+
Risks:
|
|
118
|
+
|
|
119
|
+
- Dynamic route pattern may differ from the target project.
|
|
120
|
+
- Invalid IDs may show a generic error instead of a useful not found state.
|
|
121
|
+
|
|
122
|
+
Dependencies:
|
|
123
|
+
|
|
124
|
+
- PR 1.
|
|
125
|
+
- PR 2 for list-to-detail navigation.
|
|
126
|
+
|
|
127
|
+
Estimated size:
|
|
128
|
+
|
|
129
|
+
```txt
|
|
130
|
+
small
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## PR 4 — Create, Edit, Delete Placeholders And UX States
|
|
134
|
+
|
|
135
|
+
Goal:
|
|
136
|
+
|
|
137
|
+
Expose CRUD-style entry points without implementing persistence.
|
|
138
|
+
|
|
139
|
+
Scope:
|
|
140
|
+
|
|
141
|
+
- Add create entry point from the list page.
|
|
142
|
+
- Add edit and delete entry points from detail or list actions.
|
|
143
|
+
- Make placeholder behavior explicit and non-persistent.
|
|
144
|
+
- Refine empty and error state copy if needed.
|
|
145
|
+
|
|
146
|
+
Likely files:
|
|
147
|
+
|
|
148
|
+
- `app/dashboard/products/page.tsx`
|
|
149
|
+
- Product detail route file selected in PR 3
|
|
150
|
+
- `components/dashboard/products/`
|
|
151
|
+
|
|
152
|
+
Validation:
|
|
153
|
+
|
|
154
|
+
- Run `npm run typecheck` or `tsc --noEmit`.
|
|
155
|
+
- Run `npm run lint`.
|
|
156
|
+
- Run `npm test` if available.
|
|
157
|
+
- Confirm no mutation requests are sent.
|
|
158
|
+
- Manually verify placeholder copy is clear.
|
|
159
|
+
|
|
160
|
+
Risks:
|
|
161
|
+
|
|
162
|
+
- Users may mistake placeholder actions for real persistence.
|
|
163
|
+
- Delete controls may look destructive even though no mutation exists.
|
|
164
|
+
|
|
165
|
+
Dependencies:
|
|
166
|
+
|
|
167
|
+
- PR 2.
|
|
168
|
+
- PR 3.
|
|
169
|
+
|
|
170
|
+
Estimated size:
|
|
171
|
+
|
|
172
|
+
```txt
|
|
173
|
+
small
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## PR 5 — Tests And Validation Hardening
|
|
177
|
+
|
|
178
|
+
Goal:
|
|
179
|
+
|
|
180
|
+
Strengthen confidence that the products workflow is stable and ready for future backend integration.
|
|
181
|
+
|
|
182
|
+
Scope:
|
|
183
|
+
|
|
184
|
+
- Add missing tests for repository behavior, list states, and detail states where the project supports tests.
|
|
185
|
+
- Confirm build, lint, typecheck, and existing tests pass.
|
|
186
|
+
- Document validation evidence and remaining risks.
|
|
187
|
+
|
|
188
|
+
Likely files:
|
|
189
|
+
|
|
190
|
+
- Existing test folders used by the target project
|
|
191
|
+
- `lib/products/`
|
|
192
|
+
- `components/dashboard/products/`
|
|
193
|
+
- PR validation notes or pull request description
|
|
194
|
+
|
|
195
|
+
Validation:
|
|
196
|
+
|
|
197
|
+
- Run `npm run typecheck` or `tsc --noEmit`.
|
|
198
|
+
- Run `npm run lint`.
|
|
199
|
+
- Run `npm test` or `vitest`.
|
|
200
|
+
- Run `npm run build`.
|
|
201
|
+
|
|
202
|
+
Risks:
|
|
203
|
+
|
|
204
|
+
- The target project may not have test infrastructure yet.
|
|
205
|
+
- Tests may need to mock DummyJSON to stay deterministic.
|
|
206
|
+
|
|
207
|
+
Dependencies:
|
|
208
|
+
|
|
209
|
+
- PR 1.
|
|
210
|
+
- PR 2.
|
|
211
|
+
- PR 3.
|
|
212
|
+
- PR 4.
|
|
213
|
+
|
|
214
|
+
Estimated size:
|
|
215
|
+
|
|
216
|
+
```txt
|
|
217
|
+
medium
|
|
218
|
+
```
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 05 - Execution Handoff
|
|
2
|
+
|
|
3
|
+
**Agent**: Astra (Developer)
|
|
4
|
+
**Task**: Initial setup of React Dashboard.
|
|
5
|
+
|
|
6
|
+
## Actions
|
|
7
|
+
- Initialized Vite + React + Tailwind project.
|
|
8
|
+
- Configured React Router.
|
|
9
|
+
- Implemented `AuthLayout` and `Login` page mock.
|
|
10
|
+
|
|
11
|
+
## Verification
|
|
12
|
+
- `npm run dev` starts correctly.
|
|
13
|
+
- Lint: [PASS].
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# 06 - Validation Report (Sage)
|
|
2
|
+
|
|
3
|
+
**Target**: React Dashboard Boilerplate.
|
|
4
|
+
|
|
5
|
+
## Audit findings
|
|
6
|
+
- **Component Structure**: [PASS] - Follows Atomic Design principles.
|
|
7
|
+
- **Tailwind Config**: [PASS] - Consistent with design specs.
|
|
8
|
+
- **Accessibility**: [PASS] - Aria labels present on interactive elements.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
## Gate C Verdict
|
|
12
|
+
**[APPROVED]**
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# React Dashboard Example
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Project:
|
|
6
|
+
|
|
7
|
+
```txt
|
|
8
|
+
React Dashboard Boilerplate
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Stack:
|
|
12
|
+
|
|
13
|
+
```txt
|
|
14
|
+
Next.js 14+
|
|
15
|
+
React 18+
|
|
16
|
+
TypeScript
|
|
17
|
+
shadcn/ui
|
|
18
|
+
Tailwind CSS
|
|
19
|
+
DummyJSON
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Objective:
|
|
23
|
+
|
|
24
|
+
Evolve a controlled dashboard boilerplate through small PRs, using the OpenCode-first workflow to plan, implement, review, and validate one scoped change at a time.
|
|
25
|
+
|
|
26
|
+
## Workflow
|
|
27
|
+
|
|
28
|
+
Read the files in order:
|
|
29
|
+
|
|
30
|
+
```txt
|
|
31
|
+
01-requirement.md
|
|
32
|
+
02-functional-spec.md
|
|
33
|
+
03-technical-plan.md
|
|
34
|
+
04-pr-breakdown.md
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The example follows this path:
|
|
38
|
+
|
|
39
|
+
```txt
|
|
40
|
+
requirement
|
|
41
|
+
→ functional spec
|
|
42
|
+
→ technical plan
|
|
43
|
+
→ PR breakdown
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
This is not a Next.js starter project. It is a workflow example for planning and validating dashboard work in a real React/Next.js repository.
|
|
47
|
+
|
|
48
|
+
## Stack Conventions Used
|
|
49
|
+
|
|
50
|
+
| Convention | Example |
|
|
51
|
+
|---|---|
|
|
52
|
+
| App Router | `app/dashboard/products/page.tsx` |
|
|
53
|
+
| Dynamic routes | `app/dashboard/products/[id]/page.tsx` |
|
|
54
|
+
| Domain layer | `lib/products/types.ts`, `lib/products/repository.ts` |
|
|
55
|
+
| Components | `components/dashboard/products/ProductList.tsx` |
|
|
56
|
+
| Server Components | Default for data fetching |
|
|
57
|
+
| Client Components | `"use client"` only when interactivity needed |
|
|
58
|
+
| Validation | `tsc --noEmit`, `npm run lint`, `npm run build` |
|
|
59
|
+
|
|
60
|
+
## Reference Variants
|
|
61
|
+
|
|
62
|
+
This example mirrors the pattern established by:
|
|
63
|
+
|
|
64
|
+
```txt
|
|
65
|
+
examples/nuxt-dashboard/ — Nuxt/Vue stack variant
|
|
66
|
+
examples/wordpress-theme/ — WordPress/PHP stack variant
|
|
67
|
+
examples/docs-only-repo/ — Non-code stack variant
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Use `stack-variant-creator` skill when creating new variants.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Refactoring Service - Technical Debt Removal
|
|
2
|
+
|
|
3
|
+
## 0. Context
|
|
4
|
+
This example demonstrates how to perform a large-scale refactoring task (extracting a service) while preserving existing behavioral contracts, using the `Refactoring-Specialist` agent.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## The Request
|
|
9
|
+
**User**: "The payment logic in my routes file is getting too complex. I want to extract it into a dedicated `PaymentService` to improve maintainability and testability."
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# 01 - Technical Debt Report
|
|
2
|
+
|
|
3
|
+
## 1. Description
|
|
4
|
+
The `payment.routes.ts` file contains over 500 lines of business logic, including tax calculation, third-party API calls, and database updates.
|
|
5
|
+
|
|
6
|
+
## 2. Identified Risks
|
|
7
|
+
- **Testing Difficulty**: Hard to unit test logic without spinning up the entire route.
|
|
8
|
+
- **Duplication**: Similar logic is being copied to other routes.
|
|
9
|
+
- **Fragility**: High risk of breaking payments during minor UI changes.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
*Status: [REFACTORING_APPROVED]*
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# 02 - Behavioral Contract Specification
|
|
2
|
+
|
|
3
|
+
**Agent**: Nexus (Spec Architect)
|
|
4
|
+
|
|
5
|
+
## 1. Existing Behavior (MUST PRESERVE)
|
|
6
|
+
- `POST /pay`: Accepts amount and method. Returns transaction ID.
|
|
7
|
+
- Success Scenario: Returns 200 and triggers email confirmation.
|
|
8
|
+
- Error Scenario: Returns 400 for insufficient funds.
|
|
9
|
+
|
|
10
|
+
## 2. Refactoring Goal
|
|
11
|
+
Move logic to `PaymentService.ts`. No changes allowed in external API signatures.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 03 - Technical Plan: Safe Migration
|
|
2
|
+
|
|
3
|
+
**Agent**: Refactoring-Specialist
|
|
4
|
+
|
|
5
|
+
## 1. Safety Strategy
|
|
6
|
+
1. Create `PaymentService` class.
|
|
7
|
+
2. Write unit tests for the NEW service based on EXISTING behavior.
|
|
8
|
+
3. Replace route logic with service call.
|
|
9
|
+
4. Run integration tests on the route.
|
|
10
|
+
|
|
11
|
+
## 2. Refactoring Patterns
|
|
12
|
+
- **Extract Class**: Move methods to the new service.
|
|
13
|
+
- **Dependency Injection**: Inject service into the route handler.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# 05 - Execution Handoff
|
|
2
|
+
|
|
3
|
+
**Agent**: Refactoring-Specialist
|
|
4
|
+
**Task**: Extract Payment Service.
|
|
5
|
+
|
|
6
|
+
## Actions
|
|
7
|
+
- Created `src/services/PaymentService.ts`.
|
|
8
|
+
- Migrated 450 lines of code.
|
|
9
|
+
- Reduced `payment.routes.ts` from 580 to 30 lines.
|
|
10
|
+
|
|
11
|
+
## Verification
|
|
12
|
+
- Unit tests for `PaymentService`: [PASS].
|
|
13
|
+
- Integration tests for `/pay`: [PASS].
|
|
14
|
+
- Manual regression: [SUCCESS].
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# 06 - Stability Report
|
|
2
|
+
|
|
3
|
+
**Task**: Technical Debt Removal (Payment Service).
|
|
4
|
+
**Outcome**: 100% Behavioral Parity maintained.
|
|
5
|
+
|
|
6
|
+
## Metrics
|
|
7
|
+
- Code removed from routes: 95%.
|
|
8
|
+
- Test coverage of new service: 98%.
|
|
9
|
+
- Performance impact: Neutral.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
*Maintained by Atlas — The Quality Partner*
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# SDD Full Cycle - Spec-Driven Development
|
|
2
|
+
|
|
3
|
+
## 0. Context
|
|
4
|
+
This example demonstrates the complete Spec-Driven Development (SDD) process of the AI Workflow Kit, from an ambiguous user request to a validated implementation.
|
|
5
|
+
|
|
6
|
+
## The Goal
|
|
7
|
+
Show how the agents (Nexus, Orion, Astra, Sage) work together using formal specifications to ensure 100% compliance.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## The Request
|
|
12
|
+
**User**: "I want JWT authentication for my API. It needs to be secure and use environment variables for the secret."
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 01 - Raw Requirement
|
|
2
|
+
|
|
3
|
+
**Source**: User Request.
|
|
4
|
+
**Priority**: High.
|
|
5
|
+
|
|
6
|
+
## Description
|
|
7
|
+
Implement JWT-based authentication for the backend API.
|
|
8
|
+
|
|
9
|
+
## High-Level Desires
|
|
10
|
+
- Use `jsonwebtoken` library.
|
|
11
|
+
- Secret must be in `.env`.
|
|
12
|
+
- Middleware to protect private routes.
|
|
13
|
+
- Login endpoint returns a token.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# 02 - Functional Specification (STANDARD)
|
|
2
|
+
|
|
3
|
+
**Agent**: Nexus (Spec Architect)
|
|
4
|
+
**Status**: [DRAFT]
|
|
5
|
+
|
|
6
|
+
## 1. Goal
|
|
7
|
+
Implement a robust JWT authentication system to protect private resources.
|
|
8
|
+
|
|
9
|
+
## 2. Requirements
|
|
10
|
+
- **R1**: Provide a `/auth/login` endpoint that accepts credentials and returns a signed JWT.
|
|
11
|
+
- **R2**: Implement a `verifyToken` middleware for route protection.
|
|
12
|
+
- **R3**: Tokens must expire in 1 hour.
|
|
13
|
+
- **R4**: The JWT secret MUST be loaded from `JWT_SECRET` environment variable.
|
|
14
|
+
|
|
15
|
+
## 3. Acceptance Criteria
|
|
16
|
+
- [ ] `/auth/login` returns 200 with `{ token: string }` on success.
|
|
17
|
+
- [ ] Middleware returns 401 if header `Authorization: Bearer <token>` is missing or invalid.
|
|
18
|
+
- [ ] Secret is NOT hardcoded in source code.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# 03 - Spec Review Report
|
|
2
|
+
|
|
3
|
+
**Agent**: Nexus (Spec Architect)
|
|
4
|
+
**Audit Date**: 2026-05-29
|
|
5
|
+
|
|
6
|
+
## Quality Check
|
|
7
|
+
- **Completeness**: [PASS] - Covers login, middleware, and config.
|
|
8
|
+
- **Ambiguity**: [PASS] - Clear error codes and header requirements.
|
|
9
|
+
- **Feasibility**: [PASS] - Uses standard libraries.
|
|
10
|
+
|
|
11
|
+
## Verdict
|
|
12
|
+
**[APPROVED]** - Ready for technical planning.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# 04 - Technical Plan
|
|
2
|
+
|
|
3
|
+
**Agent**: Orion (Strategist)
|
|
4
|
+
|
|
5
|
+
## 1. Architecture
|
|
6
|
+
- Use `jsonwebtoken` for signing and verification.
|
|
7
|
+
- Create `AuthService` to encapsulate logic.
|
|
8
|
+
- Create `AuthMiddleware` for Fastify/Express.
|
|
9
|
+
|
|
10
|
+
## 2. Security Patterns
|
|
11
|
+
- **Secret Management**: Use `dotenv` to load `JWT_SECRET`.
|
|
12
|
+
- **Payload**: Minimal data (user ID only).
|
|
13
|
+
|
|
14
|
+
## 3. Testing Strategy
|
|
15
|
+
- Unit tests for `AuthService` (valid/invalid tokens).
|
|
16
|
+
- Integration tests for middleware using mock tokens.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 06 - Implementation Handoff
|
|
2
|
+
|
|
3
|
+
**Agent**: Astra (Developer)
|
|
4
|
+
**Task**: Complete JWT Cycle.
|
|
5
|
+
|
|
6
|
+
## Actions
|
|
7
|
+
- Implemented `AuthService` with `sign` and `verify`.
|
|
8
|
+
- Created middleware to validate Bearer tokens.
|
|
9
|
+
- Secured the `/private` routes.
|
|
10
|
+
|
|
11
|
+
## Verification
|
|
12
|
+
- `npm run test:unit` [PASS].
|
|
13
|
+
- `npm run test:integration` [PASS].
|