@williambeto/ai-workflow 1.19.1 → 2.1.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.
Files changed (391) hide show
  1. package/CHANGELOG.md +56 -838
  2. package/PUBLISH_MANIFEST.json +34 -0
  3. package/README.md +70 -149
  4. package/{packages/ai-workflow/bin → bin}/ai-workflow.js +0 -0
  5. package/dist-assets/AGENTS.md +27 -0
  6. package/dist-assets/agents/astra.md +63 -0
  7. package/dist-assets/agents/atlas.md +169 -0
  8. package/dist-assets/agents/nexus.md +42 -0
  9. package/dist-assets/agents/orion.md +44 -0
  10. package/dist-assets/agents/phoenix.md +42 -0
  11. package/dist-assets/agents/sage.md +54 -0
  12. package/dist-assets/commands/README.md +14 -0
  13. package/dist-assets/commands/atlas.md +12 -0
  14. package/dist-assets/commands/audit.md +10 -0
  15. package/dist-assets/commands/deploy.md +12 -0
  16. package/dist-assets/commands/discover.md +10 -0
  17. package/dist-assets/commands/implement.md +28 -0
  18. package/dist-assets/commands/optimize-tokens.md +10 -0
  19. package/dist-assets/commands/plan.md +10 -0
  20. package/dist-assets/commands/release.md +12 -0
  21. package/dist-assets/commands/run.md +26 -0
  22. package/dist-assets/commands/spec-create.md +10 -0
  23. package/dist-assets/commands/spec-implement.md +10 -0
  24. package/dist-assets/commands/spec-review.md +10 -0
  25. package/dist-assets/commands/update-memory.md +10 -0
  26. package/dist-assets/commands/validate.md +12 -0
  27. package/dist-assets/docs/INDEX.md +21 -0
  28. package/dist-assets/docs/QUICKSTART.md +23 -0
  29. package/dist-assets/docs/adr/ADR-0000.md +19 -0
  30. package/dist-assets/docs/adr/ADR-0001.md +45 -0
  31. package/dist-assets/docs/adr/ADR-0002.md +62 -0
  32. package/dist-assets/docs/adr/ADR-0003.md +60 -0
  33. package/dist-assets/docs/adr/ADR-0004.md +71 -0
  34. package/dist-assets/docs/adr/ADR-0005.md +22 -0
  35. package/dist-assets/docs/adr/ADR-0006.md +82 -0
  36. package/dist-assets/docs/adr/ADR-0007.md +78 -0
  37. package/dist-assets/docs/api-engine-reference.md +7 -0
  38. package/{docs → dist-assets/docs}/architecture-policy.md +1 -1
  39. package/dist-assets/docs/cli-reference.md +27 -0
  40. package/dist-assets/docs/compatibility/provider-usage.md +38 -0
  41. package/dist-assets/docs/compatibility/runtime-matrix.md +30 -0
  42. package/dist-assets/docs/consumer-onboarding.md +17 -0
  43. package/dist-assets/docs/contributing-guide.md +11 -0
  44. package/{docs → dist-assets/docs}/design-patterns-policy.md +2 -2
  45. package/dist-assets/docs/full-documentation.md +113 -0
  46. package/{docs → dist-assets/docs}/npm-consumer-quickstart.md +18 -46
  47. package/dist-assets/docs/opencode-readme.md +8 -0
  48. package/dist-assets/docs/policies/01-BRANCH_GATE.md +63 -0
  49. package/dist-assets/docs/policies/02-SDD_METHODOLOGY.md +95 -0
  50. package/dist-assets/docs/policies/03-QUALITY_GATE.md +22 -0
  51. package/dist-assets/docs/policies/05-AGENT_CONTRACT.md +7 -0
  52. package/dist-assets/docs/policies/06-FINAL_EVIDENCE_CONTRACT.md +31 -0
  53. package/dist-assets/docs/policies/07-RELEASE_GATE.md +47 -0
  54. package/dist-assets/docs/policies/08-PRODUCT_TRUTHFULNESS_AND_PROJECT_DOCS.md +18 -0
  55. package/dist-assets/docs/policies/09-SPEC_VISIBILITY_AND_PUBLICATION.md +28 -0
  56. package/dist-assets/docs/policies/10-BEHAVIORAL_CONTRACT_HARDENING.md +9 -0
  57. package/dist-assets/docs/policies/11-EXECUTABLE_DELEGATION_AND_TRUTHFULNESS.md +7 -0
  58. package/dist-assets/docs/policies/ORCHESTRATION_PROTOCOL.md +15 -0
  59. package/dist-assets/docs/policies/PROCEDURE_DELIVERY_ARTIFACTS.md +21 -0
  60. package/dist-assets/docs/policies/PROCEDURE_DOCUMENTATION_CHECKLIST.md +24 -0
  61. package/dist-assets/docs/policies/PROCEDURE_UI_CHECKLIST.md +54 -0
  62. package/dist-assets/docs/profiles/README.md +19 -0
  63. package/dist-assets/docs/profiles/backend-api.md +5 -0
  64. package/dist-assets/docs/profiles/documentation.md +3 -0
  65. package/dist-assets/docs/profiles/frontend-product.md +19 -0
  66. package/dist-assets/docs/profiles/frontend-utility.md +19 -0
  67. package/dist-assets/docs/profiles/refactor.md +3 -0
  68. package/dist-assets/docs/profiles/security-review.md +3 -0
  69. package/dist-assets/docs/references/frontend-quality/landing-page-quality-checklist.md +11 -0
  70. package/dist-assets/docs/references/frontend-quality/product-copy-truthfulness.md +7 -0
  71. package/dist-assets/docs/references/frontend-quality/quality-failure-examples.md +20 -0
  72. package/dist-assets/docs/references/frontend-quality/visual-composition-patterns.md +10 -0
  73. package/dist-assets/docs/specs/runtime-operational-contract.md +39 -0
  74. package/dist-assets/docs/troubleshooting-guide.md +21 -0
  75. package/dist-assets/examples/README.md +10 -0
  76. package/dist-assets/examples/autopilot-cycle/00-CONTEXT.md +3 -0
  77. package/dist-assets/examples/autopilot-cycle/01-requirement.md +16 -0
  78. package/dist-assets/examples/autopilot-cycle/02-gate-a-check.md +23 -0
  79. package/dist-assets/examples/autopilot-cycle/03-orion-planning.md +20 -0
  80. package/dist-assets/examples/autopilot-cycle/04-astra-implementation.md +17 -0
  81. package/dist-assets/examples/autopilot-cycle/05-sage-validation.md +15 -0
  82. package/dist-assets/examples/autopilot-cycle/06-phoenix-healing.md +12 -0
  83. package/dist-assets/examples/autopilot-cycle/07-orchestration-report.md +18 -0
  84. package/dist-assets/examples/backend-api/00-CONTEXT.md +12 -0
  85. package/dist-assets/examples/backend-api/01-requirement.md +19 -0
  86. package/dist-assets/examples/backend-api/02-functional-spec.md +20 -0
  87. package/dist-assets/examples/backend-api/03-technical-plan.md +15 -0
  88. package/dist-assets/examples/backend-api/04-pr-breakdown.md +10 -0
  89. package/dist-assets/examples/backend-api/05-execution-handoff.md +13 -0
  90. package/dist-assets/examples/backend-api/06-validation-report.md +11 -0
  91. package/dist-assets/examples/backend-api/07-orchestration-report.md +7 -0
  92. package/dist-assets/examples/blocked-scenarios/00-CONTEXT.md +9 -0
  93. package/dist-assets/examples/blocked-scenarios/01-branch-gate-block.md +12 -0
  94. package/dist-assets/examples/blocked-scenarios/02-quality-gate-block.md +13 -0
  95. package/dist-assets/examples/blocked-scenarios/03-scope-creep-block.md +13 -0
  96. package/dist-assets/examples/blocked-scenarios/04-unblock-resolution.md +9 -0
  97. package/dist-assets/examples/blocked-scenarios/05-orchestration-decision-log.md +11 -0
  98. package/dist-assets/examples/bugfix-critical/00-CONTEXT.md +12 -0
  99. package/dist-assets/examples/bugfix-critical/01-bug-report.md +11 -0
  100. package/dist-assets/examples/bugfix-critical/02-diagnosis-hypothesis.md +11 -0
  101. package/dist-assets/examples/bugfix-critical/03-technical-plan.md +12 -0
  102. package/dist-assets/examples/bugfix-critical/04-implementation-handoff.md +8 -0
  103. package/dist-assets/examples/bugfix-critical/05-validation-report.md +10 -0
  104. package/dist-assets/examples/bugfix-critical/06-orchestration-report.md +7 -0
  105. package/dist-assets/examples/cli-package/00-CONTEXT.md +9 -0
  106. package/dist-assets/examples/cli-package/01-requirement.md +14 -0
  107. package/dist-assets/examples/cli-package/02-technical-spec.md +16 -0
  108. package/dist-assets/examples/cli-package/03-technical-plan.md +12 -0
  109. package/dist-assets/examples/cli-package/04-pr-breakdown.md +9 -0
  110. package/dist-assets/examples/cli-package/05-release-report.md +15 -0
  111. package/dist-assets/examples/docs-only-repo/01-requirement.md +31 -0
  112. package/dist-assets/examples/docs-only-repo/02-functional-spec.md +25 -0
  113. package/dist-assets/examples/docs-only-repo/03-technical-plan.md +21 -0
  114. package/dist-assets/examples/docs-only-repo/04-pr-breakdown.md +13 -0
  115. package/dist-assets/examples/docs-only-repo/05-execution-handoff.md +17 -0
  116. package/dist-assets/examples/docs-only-repo/06-validation-report.md +16 -0
  117. package/dist-assets/examples/docs-only-repo/README.md +26 -0
  118. package/dist-assets/examples/full-stack-checkout/00-CONTEXT.md +9 -0
  119. package/dist-assets/examples/full-stack-checkout/01-requirement.md +12 -0
  120. package/dist-assets/examples/full-stack-checkout/02-functional-spec.md +15 -0
  121. package/dist-assets/examples/full-stack-checkout/03-technical-plan.md +15 -0
  122. package/dist-assets/examples/full-stack-checkout/04-pr-breakdown.md +8 -0
  123. package/dist-assets/examples/full-stack-checkout/05-execution-handoff.md +14 -0
  124. package/dist-assets/examples/full-stack-checkout/06-validation-report.md +12 -0
  125. package/dist-assets/examples/healing-cycle/00-CONTEXT.md +15 -0
  126. package/dist-assets/examples/healing-cycle/01-broken-implementation.md +10 -0
  127. package/dist-assets/examples/healing-cycle/02-sage-fails.md +14 -0
  128. package/dist-assets/examples/healing-cycle/03-phoenix-diagnosis.md +17 -0
  129. package/dist-assets/examples/healing-cycle/04-phoenix-fix.md +18 -0
  130. package/dist-assets/examples/healing-cycle/05-sage-revalidation.md +12 -0
  131. package/dist-assets/examples/healing-cycle/06-orchestration-log.md +14 -0
  132. package/dist-assets/examples/infra-deploy/00-CONTEXT.md +9 -0
  133. package/dist-assets/examples/infra-deploy/01-operational-goal.md +12 -0
  134. package/dist-assets/examples/infra-deploy/02-architecture-specs.md +15 -0
  135. package/dist-assets/examples/infra-deploy/03-implementation-plan.md +14 -0
  136. package/dist-assets/examples/infra-deploy/04-step-breakdown.md +9 -0
  137. package/dist-assets/examples/infra-deploy/05-execution-handoff.md +13 -0
  138. package/dist-assets/examples/infra-deploy/06-operational-report.md +11 -0
  139. package/dist-assets/examples/multi-pr-release/00-CONTEXT.md +9 -0
  140. package/dist-assets/examples/multi-pr-release/01-requirement.md +13 -0
  141. package/dist-assets/examples/multi-pr-release/02-strategic-plan.md +13 -0
  142. package/dist-assets/examples/multi-pr-release/03-pr-breakdown.md +14 -0
  143. package/dist-assets/examples/multi-pr-release/04-release-plan.md +12 -0
  144. package/dist-assets/examples/multi-pr-release/05-orchestration-report.md +7 -0
  145. package/dist-assets/examples/nuxt-dashboard/01-requirement.md +81 -0
  146. package/dist-assets/examples/nuxt-dashboard/02-functional-spec.md +88 -0
  147. package/dist-assets/examples/nuxt-dashboard/03-technical-plan.md +76 -0
  148. package/dist-assets/examples/nuxt-dashboard/04-pr-breakdown.md +219 -0
  149. package/dist-assets/examples/nuxt-dashboard/05-execution-handoff.md +88 -0
  150. package/dist-assets/examples/nuxt-dashboard/06-validation-report.md +56 -0
  151. package/dist-assets/examples/nuxt-dashboard/07-orchestration-report.md +79 -0
  152. package/dist-assets/examples/nuxt-dashboard/README.md +52 -0
  153. package/dist-assets/examples/react-dashboard/01-requirement.md +84 -0
  154. package/dist-assets/examples/react-dashboard/02-functional-spec.md +88 -0
  155. package/dist-assets/examples/react-dashboard/03-technical-plan.md +76 -0
  156. package/dist-assets/examples/react-dashboard/04-pr-breakdown.md +218 -0
  157. package/dist-assets/examples/react-dashboard/05-execution-handoff.md +13 -0
  158. package/dist-assets/examples/react-dashboard/06-validation-report.md +12 -0
  159. package/dist-assets/examples/react-dashboard/07-orchestration-report.md +7 -0
  160. package/dist-assets/examples/react-dashboard/README.md +70 -0
  161. package/dist-assets/examples/refactoring-service/00-CONTEXT.md +9 -0
  162. package/dist-assets/examples/refactoring-service/01-debt-report.md +12 -0
  163. package/dist-assets/examples/refactoring-service/02-behavior-spec.md +11 -0
  164. package/dist-assets/examples/refactoring-service/03-technical-plan.md +13 -0
  165. package/dist-assets/examples/refactoring-service/04-pr-breakdown.md +9 -0
  166. package/dist-assets/examples/refactoring-service/05-execution-handoff.md +14 -0
  167. package/dist-assets/examples/refactoring-service/06-stability-report.md +12 -0
  168. package/dist-assets/examples/sdd-cycle/00-CONTEXT.md +12 -0
  169. package/dist-assets/examples/sdd-cycle/01-raw-request.md +13 -0
  170. package/dist-assets/examples/sdd-cycle/02-spec-creation.md +18 -0
  171. package/dist-assets/examples/sdd-cycle/03-spec-review.md +12 -0
  172. package/dist-assets/examples/sdd-cycle/04-technical-plan.md +16 -0
  173. package/dist-assets/examples/sdd-cycle/05-pr-breakdown.md +9 -0
  174. package/dist-assets/examples/sdd-cycle/06-spec-implement.md +13 -0
  175. package/dist-assets/examples/sdd-cycle/07-validation-against-spec.md +13 -0
  176. package/dist-assets/examples/wordpress-theme/01-requirement.md +29 -0
  177. package/dist-assets/examples/wordpress-theme/02-functional-spec.md +22 -0
  178. package/dist-assets/examples/wordpress-theme/03-technical-plan.md +22 -0
  179. package/dist-assets/examples/wordpress-theme/04-pr-breakdown.md +14 -0
  180. package/dist-assets/examples/wordpress-theme/05-execution-handoff.md +17 -0
  181. package/dist-assets/examples/wordpress-theme/06-validation-report.md +16 -0
  182. package/dist-assets/examples/wordpress-theme/README.md +32 -0
  183. package/{harness → dist-assets/harness}/handoffs/HANDOFF.template.md +2 -2
  184. package/{harness → dist-assets/harness}/workflows/agent-evaluation-checklist.md +5 -5
  185. package/{harness → dist-assets/harness}/workflows/implement-review-validate.md +24 -0
  186. package/{harness → dist-assets/harness}/workflows/multi-agent-handoff.md +4 -4
  187. package/{harness → dist-assets/harness}/workflows/planner-executor-workflow.md +5 -5
  188. package/{harness → dist-assets/harness}/workflows/requirement-to-pr.md +1 -1
  189. package/dist-assets/runbooks/agent-delegation-workflow.md +50 -0
  190. package/dist-assets/runbooks/apply-starter-to-real-project.md +45 -0
  191. package/dist-assets/runbooks/commands-cheatsheet.md +44 -0
  192. package/dist-assets/runbooks/how-to-use-skills.md +44 -0
  193. package/dist-assets/runbooks/private-spec-publication-safety.md +35 -0
  194. package/{runbooks → dist-assets/runbooks}/spec-driven-development.md +3 -6
  195. package/dist-assets/runbooks/tutorial-walkthroughs.md +23 -0
  196. package/dist-assets/runbooks/use-linear-for-operational-planning.md +45 -0
  197. package/dist-assets/runbooks/use-napkin-project-memory.md +33 -0
  198. package/dist-assets/skills/architecture/SKILL.md +166 -0
  199. package/dist-assets/skills/backend-development/SKILL.md +166 -0
  200. package/dist-assets/skills/deployment/SKILL.md +166 -0
  201. package/dist-assets/skills/design-principles/SKILL.md +166 -0
  202. package/dist-assets/skills/documentation/SKILL.md +171 -0
  203. package/dist-assets/skills/frontend-development/SKILL.md +225 -0
  204. package/dist-assets/skills/full-stack-development/SKILL.md +166 -0
  205. package/dist-assets/skills/optimize-tokens/SKILL.md +166 -0
  206. package/dist-assets/skills/pr-workflow/SKILL.md +166 -0
  207. package/dist-assets/skills/product-discovery/SKILL.md +166 -0
  208. package/dist-assets/skills/product-planning/SKILL.md +166 -0
  209. package/dist-assets/skills/project-memory/SKILL.md +166 -0
  210. package/dist-assets/skills/prompt-engineer/SKILL.md +166 -0
  211. package/dist-assets/skills/qa-workflow/SKILL.md +186 -0
  212. package/dist-assets/skills/refactoring/SKILL.md +166 -0
  213. package/dist-assets/skills/release-workflow/SKILL.md +166 -0
  214. package/dist-assets/skills/spec-driven-development/SKILL.md +166 -0
  215. package/dist-assets/skills/technical-leadership/SKILL.md +166 -0
  216. package/dist-assets/skills/ui-ux-design/SKILL.md +202 -0
  217. package/dist-assets/templates/.geminiignore.template +8 -0
  218. package/dist-assets/templates/CLAUDE.md.template +20 -0
  219. package/dist-assets/templates/CODEX.md.template +20 -0
  220. package/dist-assets/templates/GEMINI.md.template +20 -0
  221. package/dist-assets/templates/HANDOFF.template.md +45 -0
  222. package/dist-assets/templates/SPEC.template.md +38 -0
  223. package/dist-assets/templates/change-proposal.template.md +14 -0
  224. package/dist-assets/templates/owner-evidence/astra-implementation.json +10 -0
  225. package/dist-assets/templates/owner-evidence/phoenix-remediation.json +8 -0
  226. package/dist-assets/templates/owner-evidence/sage-revalidation.json +8 -0
  227. package/dist-assets/templates/owner-evidence/sage-validation.json +8 -0
  228. package/dist-assets/templates/specs/deep.md +48 -0
  229. package/dist-assets/templates/specs/standard.md +38 -0
  230. package/dist-assets/templates/specs/tiny.md +19 -0
  231. package/package.json +42 -47
  232. package/src/adapters/index.js +3 -0
  233. package/src/adapters/platforms/claude.js +126 -0
  234. package/src/adapters/platforms/codex.js +100 -0
  235. package/src/adapters/platforms/gemini.js +232 -0
  236. package/src/cli.js +96 -0
  237. package/src/commands/collect-evidence.js +61 -0
  238. package/src/commands/doctor.js +186 -0
  239. package/{packages/ai-workflow/src → src}/commands/init.js +119 -20
  240. package/src/commands/run.js +111 -0
  241. package/src/core/completion-contract.js +35 -0
  242. package/src/core/gates/branch-gate.js +113 -0
  243. package/src/core/handoff/handoff-engine.js +78 -0
  244. package/src/core/healing/cli-remediation-executor.js +151 -0
  245. package/src/core/healing/healer-engine.js +179 -0
  246. package/src/core/identity.js +43 -0
  247. package/{packages/ai-workflow/src → src}/core/install-plan.js +3 -3
  248. package/src/core/opencode-merge.js +149 -0
  249. package/{packages/ai-workflow/src → src}/core/package-assets.js +29 -10
  250. package/src/core/sdd/validator.js +67 -0
  251. package/src/core/statuses.js +29 -0
  252. package/src/core/symlink-layout.js +93 -0
  253. package/src/core/templates.js +218 -0
  254. package/src/core/validation/canonical-finalization.js +43 -0
  255. package/src/core/validation/evidence-collector.js +109 -0
  256. package/src/core/validation/quality-guard.js +243 -0
  257. package/src/core/workflow-profiles.js +107 -0
  258. package/.agents/napkin.md +0 -89
  259. package/.agents/skills/backend-implementer/SKILL.md +0 -490
  260. package/.agents/skills/build-and-validate/SKILL.md +0 -442
  261. package/.agents/skills/deploy-engineer/SKILL.md +0 -541
  262. package/.agents/skills/docs-writer/SKILL.md +0 -430
  263. package/.agents/skills/frontend-implementer/SKILL.md +0 -488
  264. package/.agents/skills/interface-design/SKILL.md +0 -428
  265. package/.agents/skills/interface-design/references/critique.md +0 -67
  266. package/.agents/skills/interface-design/references/example.md +0 -86
  267. package/.agents/skills/interface-design/references/principles.md +0 -235
  268. package/.agents/skills/interface-design/references/validation.md +0 -48
  269. package/.agents/skills/minimal-context/SKILL.md +0 -177
  270. package/.agents/skills/napkin/SKILL.md +0 -84
  271. package/.agents/skills/opencode-agent-design/SKILL.md +0 -77
  272. package/.agents/skills/playwright-cli/SKILL.md +0 -62
  273. package/.agents/skills/pr-orchestrator/SKILL.md +0 -366
  274. package/.agents/skills/product-manager/SKILL.md +0 -519
  275. package/.agents/skills/seo-audit/SKILL.md +0 -176
  276. package/.agents/skills/stack-variant-creator/SKILL.md +0 -265
  277. package/.agents/skills/tech-lead/SKILL.md +0 -453
  278. package/.agents/skills/tester/SKILL.md +0 -399
  279. package/.agents/skills/token-economy/SKILL.md +0 -137
  280. package/.agents/skills/vue-nuxt/SKILL.md +0 -102
  281. package/.agents/skills/wordpress-engineer/SKILL.md +0 -75
  282. package/.codex/prompts/README.md +0 -44
  283. package/.codex/prompts/autopilot.md +0 -50
  284. package/.codex/prompts/deploy.md +0 -33
  285. package/.codex/prompts/execute-selected-pr.md +0 -35
  286. package/.codex/prompts/fix-issue.md +0 -34
  287. package/.codex/prompts/minimal-context-mode.md +0 -55
  288. package/.codex/prompts/orchestrate-next.md +0 -33
  289. package/.codex/prompts/plan-from-requirement.md +0 -37
  290. package/.codex/prompts/review-implementation.md +0 -33
  291. package/.codex/prompts/roadmap-audit.md +0 -22
  292. package/.codex/prompts/specs/create-spec-from-requirement.md +0 -26
  293. package/.codex/prompts/specs/review-spec.md +0 -29
  294. package/.codex/prompts/specs/spec-to-pr-breakdown.md +0 -23
  295. package/.codex/prompts/specs/spec-to-technical-plan.md +0 -28
  296. package/.codex/prompts/start-project.md +0 -29
  297. package/.codex/prompts/token-economy-mode.md +0 -48
  298. package/.codex/prompts/validate-work.md +0 -28
  299. package/checklists/change-spec-readiness-checklist.md +0 -34
  300. package/docs/full-documentation.md +0 -661
  301. package/docs/setup-codex-opencode.md +0 -313
  302. package/harness/README.md +0 -106
  303. package/opencode/README.md +0 -84
  304. package/opencode/agents/README.md +0 -113
  305. package/opencode/agents/atlas.md +0 -127
  306. package/opencode/agents/discovery.md +0 -61
  307. package/opencode/agents/fixer.md +0 -51
  308. package/opencode/agents/implementer.md +0 -61
  309. package/opencode/agents/orchestrator.md +0 -145
  310. package/opencode/agents/planner.md +0 -60
  311. package/opencode/agents/prompt-engineer.md +0 -50
  312. package/opencode/agents/release-manager.md +0 -50
  313. package/opencode/agents/reviewer.md +0 -51
  314. package/opencode/agents/spec-engineer.md +0 -85
  315. package/opencode/agents/validator.md +0 -50
  316. package/opencode/agents/wordpress-engineer.md +0 -49
  317. package/opencode/commands/README.md +0 -48
  318. package/opencode/commands/autopilot.md +0 -50
  319. package/opencode/commands/deploy.md +0 -35
  320. package/opencode/commands/execute.md +0 -47
  321. package/opencode/commands/orchestrate.md +0 -37
  322. package/opencode/commands/plan.md +0 -39
  323. package/opencode/commands/review.md +0 -33
  324. package/opencode/commands/roadmap-audit.md +0 -30
  325. package/opencode/commands/ship.md +0 -48
  326. package/opencode/commands/specs/create-spec-from-request.md +0 -27
  327. package/opencode/commands/specs/create-spec-from-requirement.md +0 -25
  328. package/opencode/commands/specs/review-spec.md +0 -26
  329. package/opencode/commands/specs/spec-to-pr-breakdown.md +0 -19
  330. package/opencode/commands/specs/spec-to-tasks.md +0 -26
  331. package/opencode/commands/specs/spec-to-technical-plan.md +0 -27
  332. package/opencode/commands/start.md +0 -45
  333. package/opencode/commands/token-economy.md +0 -29
  334. package/opencode/commands/validate.md +0 -33
  335. package/opencode.jsonc +0 -235
  336. package/packages/ai-workflow/README.md +0 -82
  337. package/packages/ai-workflow/src/cli.js +0 -70
  338. package/packages/ai-workflow/src/commands/codex.js +0 -37
  339. package/packages/ai-workflow/src/commands/doctor.js +0 -168
  340. package/packages/ai-workflow/src/commands/guide.js +0 -194
  341. package/packages/ai-workflow/src/core/opencode-merge.js +0 -172
  342. package/packages/ai-workflow/src/core/symlink-layout.js +0 -54
  343. package/packages/ai-workflow/src/core/templates.js +0 -276
  344. package/runbooks/agent-delegation-workflow.md +0 -111
  345. package/runbooks/apply-starter-to-real-project.md +0 -445
  346. package/runbooks/commands-cheatsheet.md +0 -71
  347. package/runbooks/how-to-use-skills.md +0 -713
  348. package/runbooks/quick-start-guide.md +0 -213
  349. package/runbooks/tutorial-walkthroughs.md +0 -416
  350. package/runbooks/use-linear-for-operational-planning.md +0 -185
  351. package/runbooks/use-napkin-project-memory.md +0 -77
  352. package/templates/AGENTS.template.md +0 -397
  353. package/templates/DESIGN.template.md +0 -484
  354. package/templates/PR-PLAN.template.md +0 -172
  355. package/templates/README.template.md +0 -293
  356. package/templates/REQUIREMENT.template.md +0 -165
  357. package/templates/SPEC.template.md +0 -397
  358. package/templates/TECH-PLAN.template.md +0 -244
  359. package/templates/change-proposal.template.md +0 -97
  360. /package/{checklists/spec-readiness-checklist.md → dist-assets/docs/policies/SPEC_READINESS.md} +0 -0
  361. /package/{prompts → dist-assets/prompts}/00-bootstrap-project.md +0 -0
  362. /package/{prompts → dist-assets/prompts}/01-create-requirement.md +0 -0
  363. /package/{prompts → dist-assets/prompts}/02-create-spec.md +0 -0
  364. /package/{prompts → dist-assets/prompts}/03-create-tech-plan.md +0 -0
  365. /package/{prompts → dist-assets/prompts}/04-breakdown-prs.md +0 -0
  366. /package/{prompts → dist-assets/prompts}/05-implement-pr.md +0 -0
  367. /package/{prompts → dist-assets/prompts}/06-review-and-fix.md +0 -0
  368. /package/{prompts → dist-assets/prompts}/07-apply-design.md +0 -0
  369. /package/{prompts → dist-assets/prompts}/08-validate.md +0 -0
  370. /package/{prompts → dist-assets/prompts}/09-deploy.md +0 -0
  371. /package/{prompts → dist-assets/prompts}/commands/implement.md +0 -0
  372. /package/{prompts → dist-assets/prompts}/commands/requirement.md +0 -0
  373. /package/{prompts → dist-assets/prompts}/commands/spec.md +0 -0
  374. /package/{prompts → dist-assets/prompts}/commands/tech-plan.md +0 -0
  375. /package/{prompts → dist-assets/prompts}/commands/validate.md +0 -0
  376. /package/{runbooks → dist-assets/runbooks}/branch-cleanup.md +0 -0
  377. /package/{runbooks → dist-assets/runbooks}/deploy-checklist.md +0 -0
  378. /package/{runbooks → dist-assets/runbooks}/publication-readiness-checklist.md +0 -0
  379. /package/{runbooks → dist-assets/runbooks}/publish-package-checklist.md +0 -0
  380. /package/{runbooks → dist-assets/runbooks}/team-governance-pr-readiness.md +0 -0
  381. /package/{runbooks → dist-assets/runbooks}/validate-starter-in-real-project.md +0 -0
  382. /package/{runbooks → dist-assets/runbooks}/validation-checklist.md +0 -0
  383. /package/{schemas → dist-assets/schemas}/README.md +0 -0
  384. /package/{schemas → dist-assets/schemas}/functional-spec.schema.json +0 -0
  385. /package/{schemas → dist-assets/schemas}/handoff.schema.json +0 -0
  386. /package/{schemas → dist-assets/schemas}/pr-breakdown.schema.json +0 -0
  387. /package/{schemas → dist-assets/schemas}/requirement.schema.json +0 -0
  388. /package/{schemas → dist-assets/schemas}/technical-plan.schema.json +0 -0
  389. /package/{schemas → dist-assets/schemas}/validation-report.schema.json +0 -0
  390. /package/{packages/ai-workflow/src → src}/core/backup.js +0 -0
  391. /package/{packages/ai-workflow/src → src}/core/filesystem.js +0 -0
@@ -0,0 +1,219 @@
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 for list/search/pagination and detail fetches.
17
+ - Add response mapping only if DummyJSON fields need normalization.
18
+
19
+ Likely files:
20
+
21
+ - `domains/products/types.ts`
22
+ - `domains/products/repository.ts`
23
+ - `domains/products/mappers.ts`
24
+ - Existing shared HTTP utility files if already present
25
+
26
+ Validation:
27
+
28
+ - Run `npm run typecheck`.
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 HTTP utilities.
36
+
37
+ Dependencies:
38
+
39
+ - Existing HTTP helper 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 rows or cards 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/pages/dashboard/products/index.vue`
63
+ - `components/dashboard/products/ProductList.vue`
64
+ - `components/dashboard/products/ProductSearch.vue`
65
+ - `domains/products/repository.ts`
66
+
67
+ Validation:
68
+
69
+ - Run `npm run typecheck`.
70
+ - Run `npm run lint`.
71
+ - Run `npm run 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/pages/dashboard/products/[id].vue`
106
+ - `app/pages/dashboard/products/[id]/index.vue`
107
+ - `components/dashboard/products/ProductDetail.vue`
108
+ - `domains/products/repository.ts`
109
+
110
+ Validation:
111
+
112
+ - Run `npm run typecheck`.
113
+ - Run `npm run lint`.
114
+ - Run `npm run test` if available.
115
+ - Run `npm run build`.
116
+ - Manually verify valid, invalid, and failing product detail states.
117
+
118
+ Risks:
119
+
120
+ - Dynamic route pattern may differ from the target project.
121
+ - Invalid IDs may show a generic error instead of a useful not found state.
122
+
123
+ Dependencies:
124
+
125
+ - PR 1.
126
+ - PR 2 for list-to-detail navigation.
127
+
128
+ Estimated size:
129
+
130
+ ```txt
131
+ small
132
+ ```
133
+
134
+ ## PR 4 — Create, Edit, Delete Placeholders And UX States
135
+
136
+ Goal:
137
+
138
+ Expose CRUD-style entry points without implementing persistence.
139
+
140
+ Scope:
141
+
142
+ - Add create entry point from the list page.
143
+ - Add edit and delete entry points from detail or list actions.
144
+ - Make placeholder behavior explicit and non-persistent.
145
+ - Refine empty and error state copy if needed.
146
+
147
+ Likely files:
148
+
149
+ - `app/pages/dashboard/products/index.vue`
150
+ - Product detail route file selected in PR 3
151
+ - `components/dashboard/products/`
152
+
153
+ Validation:
154
+
155
+ - Run `npm run typecheck`.
156
+ - Run `npm run lint`.
157
+ - Run `npm run test` if available.
158
+ - Confirm no mutation requests are sent.
159
+ - Manually verify placeholder copy is clear.
160
+
161
+ Risks:
162
+
163
+ - Users may mistake placeholder actions for real persistence.
164
+ - Delete controls may look destructive even though no mutation exists.
165
+
166
+ Dependencies:
167
+
168
+ - PR 2.
169
+ - PR 3.
170
+
171
+ Estimated size:
172
+
173
+ ```txt
174
+ small
175
+ ```
176
+
177
+ ## PR 5 — Tests And Validation Hardening
178
+
179
+ Goal:
180
+
181
+ Strengthen confidence that the products workflow is stable and ready for future backend integration.
182
+
183
+ Scope:
184
+
185
+ - Add missing tests for repository behavior, list states, and detail states where the project supports tests.
186
+ - Confirm build, lint, typecheck, and existing tests pass.
187
+ - Document validation evidence and remaining risks.
188
+
189
+ Likely files:
190
+
191
+ - Existing test folders used by the target project
192
+ - `domains/products/`
193
+ - `components/dashboard/products/`
194
+ - PR validation notes or pull request description
195
+
196
+ Validation:
197
+
198
+ - Run `npm run typecheck`.
199
+ - Run `npm run lint`.
200
+ - Run `npm run test`.
201
+ - Run `npm run build`.
202
+
203
+ Risks:
204
+
205
+ - The target project may not have test infrastructure yet.
206
+ - Tests may need to mock DummyJSON to stay deterministic.
207
+
208
+ Dependencies:
209
+
210
+ - PR 1.
211
+ - PR 2.
212
+ - PR 3.
213
+ - PR 4.
214
+
215
+ Estimated size:
216
+
217
+ ```txt
218
+ medium
219
+ ```
@@ -0,0 +1,88 @@
1
+ # Handoff: PR 2 Products List Page
2
+
3
+ ## Source Agent
4
+
5
+ Planner
6
+
7
+ ## Target Agent
8
+
9
+ Executor
10
+
11
+ ## Objective
12
+
13
+ Implement PR 2: add the protected products list page with search, pagination, and core list states.
14
+
15
+ ## Context
16
+
17
+ The Nuxt Dashboard Boilerplate already has a protected dashboard area, a dashboard shell, and products domain contracts from PR 1. The products list should use DummyJSON through the products repository instead of calling the API directly from unrelated UI code.
18
+
19
+ This handoff covers only the list page. Product detail and real CRUD behavior are separate PRs.
20
+
21
+ ## Decisions Already Made
22
+
23
+ - Use DummyJSON as the demo product data source.
24
+ - Keep product API access behind `domains/products/`.
25
+ - Reuse existing dashboard layout, route middleware, Nuxt UI, and Tailwind conventions.
26
+ - Implement create, edit, and delete behavior in a later PR.
27
+ - Keep search and pagination simple unless the existing app already has a query-state convention.
28
+
29
+ ## Files In Scope
30
+
31
+ - `app/pages/dashboard/products/index.vue` — add or update the protected products list route.
32
+ - `components/dashboard/products/` — add small list, search, pagination, empty, or error components only if the page becomes too large.
33
+ - `domains/products/repository.ts` — use or lightly adjust list/search/pagination fetch functions from PR 1.
34
+ - `domains/products/types.ts` — use existing product contracts and adjust only if PR 1 missed a required list field.
35
+ - Existing dashboard navigation file — add a products link only if navigation is centrally configured.
36
+
37
+ ## Files Out Of Scope
38
+
39
+ - `app/pages/dashboard/products/[id].vue` — product detail belongs to PR 3.
40
+ - `app/pages/dashboard/products/[id]/index.vue` — product detail belongs to PR 3.
41
+ - Authentication middleware files — existing protected route behavior should be reused.
42
+ - Global design system files — layout rules should be followed, not redesigned.
43
+ - Backend API routes — DummyJSON access should remain client or repository level for this example.
44
+
45
+ ## Constraints
46
+
47
+ - Preserve existing behavior unless explicitly changed.
48
+ - Keep the change small and reviewable.
49
+ - Do not implement future PRs.
50
+ - Do not introduce unrelated dependencies or tooling.
51
+ - Follow existing repository patterns.
52
+ - Do not add real create, edit, or delete mutation behavior.
53
+ - Keep DummyJSON-specific code inside the products domain or existing shared HTTP utility.
54
+
55
+ ## Validation Required
56
+
57
+ - Run `npm run typecheck` and record the result.
58
+ - Run `npm run lint` and record the result.
59
+ - Run `npm run test` if the target project defines it.
60
+ - Run `npm run build`.
61
+ - Manually verify authenticated access to the products route.
62
+ - Manually verify list loading, search, pagination, empty state, and error state.
63
+ - Confirm the list page does not call real mutation endpoints.
64
+
65
+ ## Known Risks
66
+
67
+ - Search and pagination state can become inconsistent if the query changes while a page request is pending.
68
+ - Missing thumbnails or long product names can break compact dashboard layouts.
69
+ - DummyJSON response shape may require a small mapper update.
70
+ - The target project may not have test infrastructure for page-level states.
71
+
72
+ ## Stop Conditions
73
+
74
+ - Stop if the dashboard route protection pattern cannot be identified.
75
+ - Stop if PR 1 products repository contracts are missing or incompatible.
76
+ - Stop if implementing list behavior requires changing auth, global layout, or unrelated navigation architecture.
77
+ - Stop if new dependencies appear necessary.
78
+ - Stop if DummyJSON is unavailable and no approved mock strategy exists.
79
+
80
+ ## Expected Output
81
+
82
+ - Summary of implemented list behavior.
83
+ - Files changed.
84
+ - Behavior preserved and behavior changed.
85
+ - Validation commands with results.
86
+ - Manual checks performed.
87
+ - Untested areas and remaining risks.
88
+ - Final recommendation using the repository approval labels.
@@ -0,0 +1,56 @@
1
+ # Validation Report: PR 2 Products List Page
2
+
3
+ ## Status
4
+
5
+ ```txt
6
+ Example expected validation report, not actual results from this repository.
7
+ ```
8
+
9
+ The target Nuxt project should run these checks after implementing PR 2. This repository does not contain the Nuxt application, so the commands below are illustrative expected commands for that project.
10
+
11
+ ## Commands Run
12
+
13
+ | Command | Result | Evidence |
14
+ | ------- | ------ | -------- |
15
+ | `npm run typecheck` | Example expected pass | Confirms products list types, repository contracts, and page usage are valid |
16
+ | `npm run lint` | Example expected pass | Confirms the changed Vue and TypeScript files follow project lint rules |
17
+ | `npm run test` | Example expected pass or not configured | Confirms product list behavior if the target project has tests |
18
+ | `npm run build` | Example expected pass | Confirms the Nuxt app can build with the products list route |
19
+
20
+ ## Checks
21
+
22
+ | Check | Result | Evidence |
23
+ | ----- | ------ | -------- |
24
+ | Protected route behavior | Example expected pass | Authenticated user can open `/dashboard/products`; unauthenticated behavior follows existing middleware |
25
+ | Product list rendering | Example expected pass | Products show title, price, category, stock, and thumbnail when available |
26
+ | Search | Example expected pass | Search input updates product results and handles empty query |
27
+ | Pagination | Example expected pass | Next and previous page controls update displayed results |
28
+ | Loading state | Example expected pass | Loading indicator appears while product data is requested |
29
+ | Empty state | Example expected pass | Empty message appears when no product matches the query |
30
+ | Error state | Example expected pass | Request failure shows a recoverable error message |
31
+ | Scope control | Example expected pass | Detail page and CRUD mutations are not implemented in PR 2 |
32
+
33
+ ## Issues
34
+
35
+ No confirmed issues in this example report.
36
+
37
+ Potential observations to record in a real PR:
38
+
39
+ - If `npm run test` is not configured, mark tests as not run and explain the project gap.
40
+ - If DummyJSON cannot be reached during manual validation, record the network failure and use a deterministic mock only if the project already supports one.
41
+ - If URL query synchronization is deferred, list it as a follow-up rather than expanding PR 2.
42
+
43
+ ## Remaining Risks
44
+
45
+ - DummyJSON availability can affect manual validation.
46
+ - Search and pagination behavior may need more automated coverage in a later PR.
47
+ - Missing thumbnail and long text layout should be checked across common viewport widths.
48
+ - Placeholder CRUD actions are not covered until PR 4.
49
+
50
+ ## Recommendation
51
+
52
+ ```txt
53
+ Approved with notes
54
+ ```
55
+
56
+ PR 2 can move forward when the target project records passing typecheck, lint, build, relevant tests, and manual evidence for protected access, search, pagination, loading, empty, and error states.
@@ -0,0 +1,79 @@
1
+ # Orchestration Report
2
+
3
+ ## Purpose
4
+
5
+ Demonstrate that gate-based automatic orchestration works for both success and blocked transitions.
6
+
7
+ References:
8
+
9
+ ```txt
10
+ harness/workflows/multi-agent-handoff.md
11
+ opencode/commands/Atlas.md
12
+ harness/handoffs/HANDOFF.template.md
13
+ ```
14
+
15
+ ## Scenario A — PASS path
16
+
17
+ ### Context
18
+
19
+ - Selected PR: `PR-1 — Add products list page`
20
+ - Existing artifacts: requirement, functional spec, technical plan, PR breakdown, execution handoff
21
+ - Expected chain: `Orion -> Astra -> Sage -> Orion`
22
+
23
+ ### Gate results
24
+
25
+ | Gate | Input status | Result | Next agent |
26
+ | ---- | ------------ | ------ | ---------- |
27
+ | A (`Orion -> Astra`) | Selected PR scope + handoff complete | Pass | `Astra` |
28
+ | B (`Astra -> Sage`) | Scoped implementation + branch gate evidence + validation notes present | Pass | `Sage` |
29
+ | C (`Sage -> Orion`) | Findings severity-ranked; no unresolved High/Medium blockers | Pass | `Orion` |
30
+
31
+ ### Autopilot output sample
32
+
33
+ ```md
34
+ Current workflow step: Sage
35
+ Gate result: Pass
36
+ Next agent to run: Orion
37
+ Required handoff packet:
38
+ - validation report with commands and evidence
39
+ - merge recommendation
40
+ - remaining risks (if any)
41
+ ```
42
+
43
+ ## Scenario B — BLOCKED path
44
+
45
+ ### Context
46
+
47
+ - Selected PR: `PR-2 — Add product filters`
48
+ - Implementation manager delivered implementation notes but omitted branch gate evidence
49
+ - Current branch during execution was not proven outside `main`
50
+
51
+ ### Gate result
52
+
53
+ | Gate | Block reason | Result | Return owner |
54
+ | ---- | ------------ | ------ | ------------ |
55
+ | B (`Astra -> Sage`) | Missing branch gate evidence (`git status -sb` before edits) | Blocked | `Astra` |
56
+
57
+ ### Autopilot output sample
58
+
59
+ ```md
60
+ Current workflow step: Astra
61
+ Gate result: Blocked
62
+ Blocking reason: branch gate evidence missing for execution step
63
+ Next agent to run: Astra
64
+ Required input packet for retry:
65
+ - execution summary including branch evidence
66
+ - explicit note that implementation was not performed on `main`
67
+ - updated validation evidence
68
+ ```
69
+
70
+ ## Expected behavior confirmed
71
+
72
+ - Orchestrator advances only when gate criteria are satisfied.
73
+ - Orchestrator blocks escalation when required evidence is missing.
74
+ - Blocked transitions return to the previous owner with a smallest safe fix request.
75
+ - Validation gate is mandatory before release recommendation.
76
+
77
+ ## Final note
78
+
79
+ This report is a workflow proof artifact. It does not claim application deployment or production behavior.
@@ -0,0 +1,52 @@
1
+ # Nuxt Dashboard Example
2
+
3
+ ## Context
4
+
5
+ Project:
6
+
7
+ ```txt
8
+ Nuxt Dashboard Boilerplate
9
+ ```
10
+
11
+ Stack:
12
+
13
+ ```txt
14
+ Nuxt 4
15
+ Vue 3
16
+ TypeScript
17
+ Nuxt 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
+ 05-execution-handoff.md
36
+ 06-validation-report.md
37
+ 07-orchestration-report.md
38
+ ```
39
+
40
+ The example follows this path:
41
+
42
+ ```txt
43
+ requirement
44
+ → functional spec
45
+ → technical plan
46
+ → PR breakdown
47
+ → handoff
48
+ → validation report
49
+ → orchestration report
50
+ ```
51
+
52
+ This is not a Nuxt starter project. It is a workflow example for planning and validating dashboard work in a real Nuxt repository.
@@ -0,0 +1,84 @@
1
+ # Requirement: Products Dashboard Area
2
+
3
+ ## Problem
4
+
5
+ The dashboard boilerplate needs a realistic protected products area so developers can exercise authenticated data workflows, list filtering, navigation, and CRUD-style UI decisions without connecting to a production backend.
6
+
7
+ ## Goal
8
+
9
+ Build a protected products CRUD-style dashboard area backed by DummyJSON, with list, search, pagination, product detail, create/edit/delete placeholders, loading states, empty states, error states, and a layout aligned with the existing dashboard design rules.
10
+
11
+ ## Users
12
+
13
+ - Authenticated dashboard users who need to browse product records.
14
+ - Developers extending the dashboard boilerplate.
15
+ - Reviewers validating that dashboard workflows stay scoped and consistent.
16
+
17
+ ## Scope
18
+
19
+ - Add a protected products list page.
20
+ - Fetch product data from DummyJSON.
21
+ - Support search and pagination on the list page.
22
+ - Add a product detail page.
23
+ - Add create, edit, and delete entry points as placeholders.
24
+ - Show loading, empty, and error states.
25
+ - Keep the layout consistent with the existing dashboard shell.
26
+ - Preserve authentication behavior.
27
+
28
+ ## Out Of Scope
29
+
30
+ - Real product persistence.
31
+ - Real create, edit, or delete mutations.
32
+ - Role-based product permissions.
33
+ - Offline caching.
34
+ - Bulk actions.
35
+ - Analytics dashboards.
36
+ - Replacing the existing dashboard design system.
37
+ - Replacing existing auth or layout patterns.
38
+
39
+ ## Assumptions
40
+
41
+ - The Next.js app already has an authenticated dashboard shell.
42
+ - Middleware already protects dashboard routes.
43
+ - DummyJSON is acceptable for demo data.
44
+ - Existing components or UI primitives (e.g., shadcn/ui, Tailwind CSS) should be reused before adding new abstractions.
45
+ - Product mutations can be represented as disabled or non-persistent placeholders.
46
+ - Standard Next.js App Router conventions apply (`app/dashboard/products/page.tsx`, `app/dashboard/products/[id]/page.tsx`).
47
+
48
+ ## Constraints
49
+
50
+ - Keep changes split into small PRs.
51
+ - Do not introduce new frontend frameworks.
52
+ - Do not add a backend service.
53
+ - Do not store secrets or credentials.
54
+ - Preserve existing dashboard navigation and layout behavior.
55
+ - Keep DummyJSON-specific code inside the products domain or API layer.
56
+ - Use React Server Components and client components appropriately.
57
+
58
+ ## Acceptance Criteria
59
+
60
+ - Authenticated users can open a products list route under the dashboard.
61
+ - The list displays product title, price, category, stock, and thumbnail when available.
62
+ - Users can search products and see updated results.
63
+ - Users can move through paginated results.
64
+ - Users can open a product detail route from the list.
65
+ - Loading, empty, and error states are visible and understandable.
66
+ - Create, edit, and delete controls are present as placeholders without claiming persistence.
67
+ - Unauthenticated users remain blocked by existing dashboard protection.
68
+ - Validation evidence is recorded before each PR is considered complete.
69
+
70
+ ## Risks
71
+
72
+ | Risk | Impact | Mitigation |
73
+ | ---- | ------ | ---------- |
74
+ | DummyJSON behavior differs from a real API | Future backend migration may require data mapping changes | Keep API access behind a small products repository or server actions |
75
+ | Search and pagination can become coupled to page UI | Harder to test or reuse | Keep query state and fetch behavior simple and explicit |
76
+ | Placeholder CRUD actions may mislead users | Users may think data is persisted | Label placeholders clearly in UI and validation notes |
77
+ | Dashboard design may drift | Boilerplate becomes inconsistent | Reuse existing shell and component conventions |
78
+
79
+ ## Open Questions
80
+
81
+ - Should product search update the URL query string (`?q=keyword`)?
82
+ - Should pagination default to 10, 12, or 20 items per page?
83
+ - Should product detail pages use `app/dashboard/products/[id]/page.tsx`?
84
+ - Should placeholder create and edit routes exist, or should actions open disabled dialogs?
@@ -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.