@pareto4/pp-core 1.5.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 (618) hide show
  1. package/.claude-plugin/plugin.json +23 -0
  2. package/GEMINI.md +53 -0
  3. package/LICENSE +22 -0
  4. package/README.md +100 -0
  5. package/agents/pp-advisor-researcher.md +108 -0
  6. package/agents/pp-ai-researcher.md +114 -0
  7. package/agents/pp-assumptions-analyzer.md +105 -0
  8. package/agents/pp-code-fixer.md +669 -0
  9. package/agents/pp-code-reviewer.md +387 -0
  10. package/agents/pp-codebase-mapper.md +853 -0
  11. package/agents/pp-debug-session-manager.md +315 -0
  12. package/agents/pp-debugger.md +1453 -0
  13. package/agents/pp-doc-classifier.md +168 -0
  14. package/agents/pp-doc-synthesizer.md +204 -0
  15. package/agents/pp-doc-verifier.md +217 -0
  16. package/agents/pp-doc-writer.md +616 -0
  17. package/agents/pp-domain-researcher.md +147 -0
  18. package/agents/pp-eval-auditor.md +191 -0
  19. package/agents/pp-eval-planner.md +154 -0
  20. package/agents/pp-executor.md +808 -0
  21. package/agents/pp-framework-selector.md +160 -0
  22. package/agents/pp-integration-checker.md +470 -0
  23. package/agents/pp-intel-updater.md +339 -0
  24. package/agents/pp-mempalace-curator.md +47 -0
  25. package/agents/pp-nyquist-auditor.md +204 -0
  26. package/agents/pp-pattern-mapper.md +335 -0
  27. package/agents/pp-phase-researcher.md +867 -0
  28. package/agents/pp-plan-checker.md +988 -0
  29. package/agents/pp-planner.md +1052 -0
  30. package/agents/pp-project-researcher.md +612 -0
  31. package/agents/pp-research-synthesizer.md +260 -0
  32. package/agents/pp-roadmapper.md +741 -0
  33. package/agents/pp-security-auditor.md +156 -0
  34. package/agents/pp-ui-auditor.md +495 -0
  35. package/agents/pp-ui-checker.md +309 -0
  36. package/agents/pp-ui-researcher.md +375 -0
  37. package/agents/pp-user-profiler.md +171 -0
  38. package/agents/pp-verifier.md +967 -0
  39. package/assets/gsd-logo-2000-transparent.png +0 -0
  40. package/assets/gsd-logo-2000-transparent.svg +17 -0
  41. package/assets/gsd-logo-2000.png +0 -0
  42. package/assets/gsd-logo-2000.svg +21 -0
  43. package/assets/terminal.svg +68 -0
  44. package/bin/install.js +12370 -0
  45. package/bin/lib/ui-safety-gate.cjs +107 -0
  46. package/commands/pp-add-tests.md +42 -0
  47. package/commands/pp-ai-integration-phase.md +37 -0
  48. package/commands/pp-audit-fix.md +34 -0
  49. package/commands/pp-audit-milestone.md +37 -0
  50. package/commands/pp-audit-uat.md +24 -0
  51. package/commands/pp-autonomous.md +51 -0
  52. package/commands/pp-capture.md +62 -0
  53. package/commands/pp-cleanup.md +24 -0
  54. package/commands/pp-code-review.md +59 -0
  55. package/commands/pp-complete-milestone.md +143 -0
  56. package/commands/pp-config.md +56 -0
  57. package/commands/pp-debug.md +52 -0
  58. package/commands/pp-discovery.md +34 -0
  59. package/commands/pp-discuss-phase.md +77 -0
  60. package/commands/pp-docs-update.md +49 -0
  61. package/commands/pp-eval-review.md +33 -0
  62. package/commands/pp-execute-phase.md +65 -0
  63. package/commands/pp-explore.md +27 -0
  64. package/commands/pp-extract-learnings.md +23 -0
  65. package/commands/pp-fast.md +31 -0
  66. package/commands/pp-forensics.md +57 -0
  67. package/commands/pp-graphify.md +204 -0
  68. package/commands/pp-health.md +31 -0
  69. package/commands/pp-help.md +28 -0
  70. package/commands/pp-import.md +45 -0
  71. package/commands/pp-inbox.md +39 -0
  72. package/commands/pp-ingest-docs.md +42 -0
  73. package/commands/pp-manager.md +45 -0
  74. package/commands/pp-map-codebase.md +83 -0
  75. package/commands/pp-mempalace-capture.md +71 -0
  76. package/commands/pp-mempalace-recall.md +102 -0
  77. package/commands/pp-milestone-summary.md +51 -0
  78. package/commands/pp-mvp-phase.md +45 -0
  79. package/commands/pp-new-milestone.md +45 -0
  80. package/commands/pp-new-project.md +47 -0
  81. package/commands/pp-ns-context.md +25 -0
  82. package/commands/pp-ns-ideate.md +24 -0
  83. package/commands/pp-ns-manage.md +36 -0
  84. package/commands/pp-ns-project.md +27 -0
  85. package/commands/pp-ns-review.md +29 -0
  86. package/commands/pp-ns-workflow.md +35 -0
  87. package/commands/pp-pause-work.md +43 -0
  88. package/commands/pp-phase.md +56 -0
  89. package/commands/pp-plan-phase.md +63 -0
  90. package/commands/pp-plan-review-convergence.md +60 -0
  91. package/commands/pp-pr-branch.md +26 -0
  92. package/commands/pp-profile-user.md +46 -0
  93. package/commands/pp-progress.md +49 -0
  94. package/commands/pp-quick.md +174 -0
  95. package/commands/pp-resume-work.md +30 -0
  96. package/commands/pp-review-backlog.md +63 -0
  97. package/commands/pp-review.md +42 -0
  98. package/commands/pp-secure-phase.md +36 -0
  99. package/commands/pp-settings.md +29 -0
  100. package/commands/pp-ship.md +24 -0
  101. package/commands/pp-sketch.md +60 -0
  102. package/commands/pp-spec-phase.md +63 -0
  103. package/commands/pp-spike.md +57 -0
  104. package/commands/pp-stats.md +20 -0
  105. package/commands/pp-surface.md +162 -0
  106. package/commands/pp-thread.md +24 -0
  107. package/commands/pp-ui-phase.md +35 -0
  108. package/commands/pp-ui-review.md +33 -0
  109. package/commands/pp-ultraplan-phase.md +34 -0
  110. package/commands/pp-undo.md +35 -0
  111. package/commands/pp-update.md +49 -0
  112. package/commands/pp-validate-phase.md +36 -0
  113. package/commands/pp-verify-work.md +39 -0
  114. package/commands/pp-workspace.md +52 -0
  115. package/commands/pp-workstreams.md +70 -0
  116. package/gemini-extension.json +6 -0
  117. package/hooks/dist/lib/git-cmd.js +150 -0
  118. package/hooks/dist/lib/pp-graphify-rebuild.sh +65 -0
  119. package/hooks/dist/managed-hooks-registry.cjs +39 -0
  120. package/hooks/dist/pp-check-update-worker.js +108 -0
  121. package/hooks/dist/pp-check-update.js +66 -0
  122. package/hooks/dist/pp-config-reload.js +133 -0
  123. package/hooks/dist/pp-context-monitor.js +196 -0
  124. package/hooks/dist/pp-cursor-post-tool.js +75 -0
  125. package/hooks/dist/pp-cursor-session-start.js +52 -0
  126. package/hooks/dist/pp-ensure-canonical-path.js +305 -0
  127. package/hooks/dist/pp-graphify-update.sh +158 -0
  128. package/hooks/dist/pp-phase-boundary.sh +47 -0
  129. package/hooks/dist/pp-prompt-guard.js +97 -0
  130. package/hooks/dist/pp-read-guard.js +101 -0
  131. package/hooks/dist/pp-read-injection-scanner.js +203 -0
  132. package/hooks/dist/pp-session-state.sh +59 -0
  133. package/hooks/dist/pp-statusline.js +566 -0
  134. package/hooks/dist/pp-update-banner.js +138 -0
  135. package/hooks/dist/pp-validate-commit.sh +57 -0
  136. package/hooks/dist/pp-workflow-guard.js +167 -0
  137. package/hooks/dist/pp-worktree-path-guard.js +185 -0
  138. package/hooks/hooks.json +70 -0
  139. package/hooks/lib/git-cmd.js +150 -0
  140. package/hooks/lib/pp-graphify-rebuild.sh +65 -0
  141. package/hooks/managed-hooks-registry.cjs +39 -0
  142. package/hooks/pp-check-update-worker.js +108 -0
  143. package/hooks/pp-check-update.js +66 -0
  144. package/hooks/pp-config-reload.js +133 -0
  145. package/hooks/pp-context-monitor.js +196 -0
  146. package/hooks/pp-cursor-post-tool.js +75 -0
  147. package/hooks/pp-cursor-session-start.js +52 -0
  148. package/hooks/pp-ensure-canonical-path.js +305 -0
  149. package/hooks/pp-graphify-update.sh +158 -0
  150. package/hooks/pp-phase-boundary.sh +47 -0
  151. package/hooks/pp-prompt-guard.js +97 -0
  152. package/hooks/pp-read-guard.js +101 -0
  153. package/hooks/pp-read-injection-scanner.js +203 -0
  154. package/hooks/pp-session-state.sh +59 -0
  155. package/hooks/pp-statusline.js +566 -0
  156. package/hooks/pp-update-banner.js +138 -0
  157. package/hooks/pp-validate-commit.sh +57 -0
  158. package/hooks/pp-workflow-guard.js +167 -0
  159. package/hooks/pp-worktree-path-guard.js +185 -0
  160. package/package.json +125 -0
  161. package/pp-core/bin/check-latest-version.cjs +161 -0
  162. package/pp-core/bin/lib/active-workstream-store.cjs +297 -0
  163. package/pp-core/bin/lib/adr-parser.cjs +399 -0
  164. package/pp-core/bin/lib/agent-command-router.cjs +68 -0
  165. package/pp-core/bin/lib/agent-install-check.cjs +143 -0
  166. package/pp-core/bin/lib/artifacts.cjs +51 -0
  167. package/pp-core/bin/lib/audit-command-router.cjs +61 -0
  168. package/pp-core/bin/lib/audit.cjs +743 -0
  169. package/pp-core/bin/lib/capability-activation.cjs +113 -0
  170. package/pp-core/bin/lib/capability-registry.cjs +3727 -0
  171. package/pp-core/bin/lib/capability-state.cjs +497 -0
  172. package/pp-core/bin/lib/capability-writer.cjs +355 -0
  173. package/pp-core/bin/lib/check-command-router.cjs +800 -0
  174. package/pp-core/bin/lib/cjs-command-router-adapter.cjs +81 -0
  175. package/pp-core/bin/lib/cli-exit.cjs +61 -0
  176. package/pp-core/bin/lib/clock.cjs +95 -0
  177. package/pp-core/bin/lib/clusters.cjs +131 -0
  178. package/pp-core/bin/lib/code-review-flags.cjs +59 -0
  179. package/pp-core/bin/lib/command-aliases.cjs +809 -0
  180. package/pp-core/bin/lib/command-arg-projection.cjs +55 -0
  181. package/pp-core/bin/lib/command-roster.cjs +19 -0
  182. package/pp-core/bin/lib/command-routing-hub.cjs +300 -0
  183. package/pp-core/bin/lib/commands.cjs +1244 -0
  184. package/pp-core/bin/lib/config-loader.cjs +714 -0
  185. package/pp-core/bin/lib/config-schema.cjs +58 -0
  186. package/pp-core/bin/lib/config-types.cjs +20 -0
  187. package/pp-core/bin/lib/config.cjs +796 -0
  188. package/pp-core/bin/lib/configuration.cjs +209 -0
  189. package/pp-core/bin/lib/context-utilization.cjs +48 -0
  190. package/pp-core/bin/lib/core-utils.cjs +198 -0
  191. package/pp-core/bin/lib/decisions.cjs +136 -0
  192. package/pp-core/bin/lib/docs.cjs +264 -0
  193. package/pp-core/bin/lib/drift.cjs +364 -0
  194. package/pp-core/bin/lib/edge-probe.cjs +196 -0
  195. package/pp-core/bin/lib/fallow-runner.cjs +153 -0
  196. package/pp-core/bin/lib/federated-config.cjs +182 -0
  197. package/pp-core/bin/lib/frontmatter.cjs +494 -0
  198. package/pp-core/bin/lib/gap-checker.cjs +260 -0
  199. package/pp-core/bin/lib/git-base-branch.cjs +220 -0
  200. package/pp-core/bin/lib/graphify-command-router.cjs +72 -0
  201. package/pp-core/bin/lib/graphify.cjs +472 -0
  202. package/pp-core/bin/lib/gsd2-import.cjs +456 -0
  203. package/pp-core/bin/lib/init-command-router.cjs +62 -0
  204. package/pp-core/bin/lib/init.cjs +1912 -0
  205. package/pp-core/bin/lib/install-profiles.cjs +814 -0
  206. package/pp-core/bin/lib/installer-migration-authoring.cjs +122 -0
  207. package/pp-core/bin/lib/installer-migration-report.cjs +351 -0
  208. package/pp-core/bin/lib/installer-migrations/000-first-time-baseline.cjs +225 -0
  209. package/pp-core/bin/lib/installer-migrations/001-legacy-orphan-files.cjs +48 -0
  210. package/pp-core/bin/lib/installer-migrations/002-codex-legacy-hooks-json.cjs +94 -0
  211. package/pp-core/bin/lib/installer-migrations/003-rename-get-shit-done-to-gsd-core.cjs +108 -0
  212. package/pp-core/bin/lib/installer-migrations/004-prune-stale-pristine-snapshots.cjs +123 -0
  213. package/pp-core/bin/lib/installer-migrations/005-rename-gsd-core-to-pp-core.cjs +109 -0
  214. package/pp-core/bin/lib/installer-migrations/006-rename-gsd-command-namespace.cjs +135 -0
  215. package/pp-core/bin/lib/installer-migrations.cjs +823 -0
  216. package/pp-core/bin/lib/intel-command-router.cjs +119 -0
  217. package/pp-core/bin/lib/intel.cjs +584 -0
  218. package/pp-core/bin/lib/io.cjs +220 -0
  219. package/pp-core/bin/lib/learnings.cjs +270 -0
  220. package/pp-core/bin/lib/legacy-cleanup.cjs +253 -0
  221. package/pp-core/bin/lib/loop-host-contract.cjs +105 -0
  222. package/pp-core/bin/lib/loop-resolver.cjs +479 -0
  223. package/pp-core/bin/lib/milestone.cjs +381 -0
  224. package/pp-core/bin/lib/model-catalog.cjs +154 -0
  225. package/pp-core/bin/lib/model-profiles.cjs +24 -0
  226. package/pp-core/bin/lib/model-resolver.cjs +467 -0
  227. package/pp-core/bin/lib/observability/event.cjs +51 -0
  228. package/pp-core/bin/lib/observability/logger.cjs +146 -0
  229. package/pp-core/bin/lib/observability/redaction.cjs +48 -0
  230. package/pp-core/bin/lib/package-identity.cjs +35 -0
  231. package/pp-core/bin/lib/package-legitimacy.cjs +368 -0
  232. package/pp-core/bin/lib/phase-command-router.cjs +209 -0
  233. package/pp-core/bin/lib/phase-id.cjs +213 -0
  234. package/pp-core/bin/lib/phase-lifecycle.cjs +74 -0
  235. package/pp-core/bin/lib/phase-locator.cjs +145 -0
  236. package/pp-core/bin/lib/phase.cjs +1446 -0
  237. package/pp-core/bin/lib/phases-command-router.cjs +43 -0
  238. package/pp-core/bin/lib/plan-drift-guard.cjs +117 -0
  239. package/pp-core/bin/lib/plan-scan.cjs +91 -0
  240. package/pp-core/bin/lib/planning-workspace.cjs +245 -0
  241. package/pp-core/bin/lib/probe-core.cjs +402 -0
  242. package/pp-core/bin/lib/profile-output.cjs +1164 -0
  243. package/pp-core/bin/lib/profile-pipeline-command-router.cjs +138 -0
  244. package/pp-core/bin/lib/profile-pipeline.cjs +519 -0
  245. package/pp-core/bin/lib/prohibition-enforcement.cjs +660 -0
  246. package/pp-core/bin/lib/project-root.cjs +119 -0
  247. package/pp-core/bin/lib/prompt-budget.cjs +305 -0
  248. package/pp-core/bin/lib/research-provider.cjs +137 -0
  249. package/pp-core/bin/lib/research-store.cjs +167 -0
  250. package/pp-core/bin/lib/review-reviewer-selection.cjs +121 -0
  251. package/pp-core/bin/lib/roadmap-command-router.cjs +166 -0
  252. package/pp-core/bin/lib/roadmap-parser.cjs +456 -0
  253. package/pp-core/bin/lib/roadmap-upgrade.cjs +476 -0
  254. package/pp-core/bin/lib/roadmap.cjs +738 -0
  255. package/pp-core/bin/lib/runtime-artifact-conversion.cjs +1966 -0
  256. package/pp-core/bin/lib/runtime-artifact-layout.cjs +342 -0
  257. package/pp-core/bin/lib/runtime-config-adapter-registry.cjs +103 -0
  258. package/pp-core/bin/lib/runtime-homes.cjs +272 -0
  259. package/pp-core/bin/lib/runtime-hooks-surface.cjs +1460 -0
  260. package/pp-core/bin/lib/runtime-name-policy.cjs +97 -0
  261. package/pp-core/bin/lib/runtime-slash.cjs +137 -0
  262. package/pp-core/bin/lib/schema-detect.cjs +159 -0
  263. package/pp-core/bin/lib/secrets.cjs +34 -0
  264. package/pp-core/bin/lib/security.cjs +480 -0
  265. package/pp-core/bin/lib/semver-compare.cjs +42 -0
  266. package/pp-core/bin/lib/shell-command-projection.cjs +550 -0
  267. package/pp-core/bin/lib/state-command-router.cjs +172 -0
  268. package/pp-core/bin/lib/state-document.cjs +312 -0
  269. package/pp-core/bin/lib/state.cjs +2587 -0
  270. package/pp-core/bin/lib/surface.cjs +505 -0
  271. package/pp-core/bin/lib/task-command-router.cjs +85 -0
  272. package/pp-core/bin/lib/teams-status.cjs +74 -0
  273. package/pp-core/bin/lib/template.cjs +246 -0
  274. package/pp-core/bin/lib/uat-predicate.cjs +329 -0
  275. package/pp-core/bin/lib/uat.cjs +359 -0
  276. package/pp-core/bin/lib/ui-safety-gate.cjs +98 -0
  277. package/pp-core/bin/lib/update-context.cjs +221 -0
  278. package/pp-core/bin/lib/validate-command-router.cjs +91 -0
  279. package/pp-core/bin/lib/validate.cjs +122 -0
  280. package/pp-core/bin/lib/verification-command-router.cjs +31 -0
  281. package/pp-core/bin/lib/verification.cjs +196 -0
  282. package/pp-core/bin/lib/verify-command-router.cjs +44 -0
  283. package/pp-core/bin/lib/verify.cjs +1932 -0
  284. package/pp-core/bin/lib/workstream-inventory-builder.cjs +81 -0
  285. package/pp-core/bin/lib/workstream-inventory.cjs +147 -0
  286. package/pp-core/bin/lib/workstream-name-policy.cjs +91 -0
  287. package/pp-core/bin/lib/workstream.cjs +386 -0
  288. package/pp-core/bin/lib/worktree-base-ref.cjs +350 -0
  289. package/pp-core/bin/lib/worktree-safety.cjs +985 -0
  290. package/pp-core/bin/pp-tools.cjs +2239 -0
  291. package/pp-core/bin/pp_run +20 -0
  292. package/pp-core/bin/shared/config-defaults.manifest.json +97 -0
  293. package/pp-core/bin/shared/config-schema.manifest.json +176 -0
  294. package/pp-core/bin/shared/model-catalog.json +160 -0
  295. package/pp-core/bin/shared/runtime-aliases.manifest.json +79 -0
  296. package/pp-core/bin/verify-reapply-patches.cjs +400 -0
  297. package/pp-core/contexts/dev.md +21 -0
  298. package/pp-core/contexts/research.md +22 -0
  299. package/pp-core/contexts/review.md +23 -0
  300. package/pp-core/references/agent-contracts.md +79 -0
  301. package/pp-core/references/ai-evals.md +156 -0
  302. package/pp-core/references/ai-frameworks.md +186 -0
  303. package/pp-core/references/artifact-types.md +131 -0
  304. package/pp-core/references/autonomous-smart-discuss.md +277 -0
  305. package/pp-core/references/checkpoints.md +814 -0
  306. package/pp-core/references/common-bug-patterns.md +114 -0
  307. package/pp-core/references/context-budget.md +85 -0
  308. package/pp-core/references/continuation-format.md +253 -0
  309. package/pp-core/references/debugger-philosophy.md +76 -0
  310. package/pp-core/references/decimal-phase-calculation.md +64 -0
  311. package/pp-core/references/doc-conflict-engine.md +91 -0
  312. package/pp-core/references/domain-probes.md +125 -0
  313. package/pp-core/references/edge-probe-fixtures/01-round-half-even/expected-coverage.json +7 -0
  314. package/pp-core/references/edge-probe-fixtures/01-round-half-even/requirements.json +1 -0
  315. package/pp-core/references/edge-probe-fixtures/02-merge-intervals/expected-coverage.json +8 -0
  316. package/pp-core/references/edge-probe-fixtures/02-merge-intervals/requirements.json +1 -0
  317. package/pp-core/references/edge-probe-fixtures/03-truncate-graphemes/expected-coverage.json +7 -0
  318. package/pp-core/references/edge-probe-fixtures/03-truncate-graphemes/requirements.json +1 -0
  319. package/pp-core/references/edge-probe-fixtures/04-money-rounding/expected-coverage.json +7 -0
  320. package/pp-core/references/edge-probe-fixtures/04-money-rounding/requirements.json +1 -0
  321. package/pp-core/references/edge-probe-fixtures/05-list-dedupe/expected-coverage.json +8 -0
  322. package/pp-core/references/edge-probe-fixtures/05-list-dedupe/requirements.json +1 -0
  323. package/pp-core/references/edge-probe-fixtures/06-resolved-mixed/expected-coverage.json +8 -0
  324. package/pp-core/references/edge-probe-fixtures/06-resolved-mixed/requirements.json +1 -0
  325. package/pp-core/references/edge-probe-fixtures/06-resolved-mixed/resolutions.json +4 -0
  326. package/pp-core/references/edge-probe.md +272 -0
  327. package/pp-core/references/execute-mvp-tdd.md +81 -0
  328. package/pp-core/references/executor-examples.md +110 -0
  329. package/pp-core/references/few-shot-examples/plan-checker.md +73 -0
  330. package/pp-core/references/few-shot-examples/verifier.md +109 -0
  331. package/pp-core/references/gate-prompts.md +100 -0
  332. package/pp-core/references/gates.md +70 -0
  333. package/pp-core/references/git-integration.md +298 -0
  334. package/pp-core/references/git-planning-commit.md +40 -0
  335. package/pp-core/references/ios-scaffold.md +123 -0
  336. package/pp-core/references/loop-hook-dispatch.md +61 -0
  337. package/pp-core/references/mandatory-initial-read.md +2 -0
  338. package/pp-core/references/model-profile-resolution.md +38 -0
  339. package/pp-core/references/model-profiles.md +245 -0
  340. package/pp-core/references/mvp-concepts.md +49 -0
  341. package/pp-core/references/phase-argument-parsing.md +61 -0
  342. package/pp-core/references/planner-antipatterns.md +176 -0
  343. package/pp-core/references/planner-chunked.md +49 -0
  344. package/pp-core/references/planner-gap-closure.md +62 -0
  345. package/pp-core/references/planner-graphify-auto-update.md +67 -0
  346. package/pp-core/references/planner-guidance.md +186 -0
  347. package/pp-core/references/planner-human-verify-mode.md +57 -0
  348. package/pp-core/references/planner-interface-context.md +62 -0
  349. package/pp-core/references/planner-load-graph-context.md +36 -0
  350. package/pp-core/references/planner-mvp-mode.md +53 -0
  351. package/pp-core/references/planner-reviews.md +42 -0
  352. package/pp-core/references/planner-revision.md +87 -0
  353. package/pp-core/references/planner-source-audit.md +73 -0
  354. package/pp-core/references/planning-config.md +477 -0
  355. package/pp-core/references/prohibition-probe-fixtures/01-streak-reminder/expected.json +14 -0
  356. package/pp-core/references/prohibition-probe-fixtures/02-clean-utility/expected.json +4 -0
  357. package/pp-core/references/prohibition-probe-fixtures/03-multi-prohibition/expected.json +32 -0
  358. package/pp-core/references/prohibition-probe.md +326 -0
  359. package/pp-core/references/project-skills-discovery.md +19 -0
  360. package/pp-core/references/questioning.md +162 -0
  361. package/pp-core/references/research-documentation-lookup.md +29 -0
  362. package/pp-core/references/research-philosophy.md +29 -0
  363. package/pp-core/references/research-verification-protocol.md +27 -0
  364. package/pp-core/references/revision-loop.md +97 -0
  365. package/pp-core/references/scout-codebase.md +51 -0
  366. package/pp-core/references/skeleton-template.md +48 -0
  367. package/pp-core/references/sketch-interactivity.md +41 -0
  368. package/pp-core/references/sketch-theme-system.md +94 -0
  369. package/pp-core/references/sketch-tooling.md +45 -0
  370. package/pp-core/references/sketch-variant-patterns.md +81 -0
  371. package/pp-core/references/spidr-splitting.md +69 -0
  372. package/pp-core/references/tdd.md +330 -0
  373. package/pp-core/references/thinking-models-debug.md +44 -0
  374. package/pp-core/references/thinking-models-execution.md +50 -0
  375. package/pp-core/references/thinking-models-planning.md +62 -0
  376. package/pp-core/references/thinking-models-research.md +50 -0
  377. package/pp-core/references/thinking-models-verification.md +55 -0
  378. package/pp-core/references/thinking-partner.md +96 -0
  379. package/pp-core/references/ui-brand.md +162 -0
  380. package/pp-core/references/universal-anti-patterns.md +63 -0
  381. package/pp-core/references/user-profiling.md +681 -0
  382. package/pp-core/references/user-story-template.md +58 -0
  383. package/pp-core/references/verification-overrides.md +227 -0
  384. package/pp-core/references/verification-patterns.md +612 -0
  385. package/pp-core/references/verify-mvp-mode.md +85 -0
  386. package/pp-core/references/workstream-flag.md +111 -0
  387. package/pp-core/references/worktree-branch-check.md +44 -0
  388. package/pp-core/references/worktree-path-safety.md +67 -0
  389. package/pp-core/templates/AI-SPEC.md +246 -0
  390. package/pp-core/templates/DEBUG.md +169 -0
  391. package/pp-core/templates/README.md +77 -0
  392. package/pp-core/templates/SECURITY.md +61 -0
  393. package/pp-core/templates/UAT.md +265 -0
  394. package/pp-core/templates/UI-SPEC.md +100 -0
  395. package/pp-core/templates/VALIDATION.md +76 -0
  396. package/pp-core/templates/claude-md.md +145 -0
  397. package/pp-core/templates/codebase/architecture.md +255 -0
  398. package/pp-core/templates/codebase/concerns.md +310 -0
  399. package/pp-core/templates/codebase/conventions.md +307 -0
  400. package/pp-core/templates/codebase/integrations.md +280 -0
  401. package/pp-core/templates/codebase/stack.md +186 -0
  402. package/pp-core/templates/codebase/structure.md +285 -0
  403. package/pp-core/templates/codebase/testing.md +480 -0
  404. package/pp-core/templates/config.json +62 -0
  405. package/pp-core/templates/context.md +352 -0
  406. package/pp-core/templates/continue-here.md +78 -0
  407. package/pp-core/templates/copilot-instructions.md +7 -0
  408. package/pp-core/templates/debug-subagent-prompt.md +91 -0
  409. package/pp-core/templates/dev-preferences.md +21 -0
  410. package/pp-core/templates/discovery.md +146 -0
  411. package/pp-core/templates/discussion-log.md +63 -0
  412. package/pp-core/templates/milestone-archive.md +123 -0
  413. package/pp-core/templates/milestone.md +115 -0
  414. package/pp-core/templates/phase-prompt.md +610 -0
  415. package/pp-core/templates/planner-subagent-prompt.md +117 -0
  416. package/pp-core/templates/project.md +203 -0
  417. package/pp-core/templates/requirements.md +231 -0
  418. package/pp-core/templates/research-project/ARCHITECTURE.md +204 -0
  419. package/pp-core/templates/research-project/FEATURES.md +147 -0
  420. package/pp-core/templates/research-project/PITFALLS.md +200 -0
  421. package/pp-core/templates/research-project/STACK.md +120 -0
  422. package/pp-core/templates/research-project/SUMMARY.md +170 -0
  423. package/pp-core/templates/research.md +592 -0
  424. package/pp-core/templates/retrospective.md +54 -0
  425. package/pp-core/templates/roadmap.md +202 -0
  426. package/pp-core/templates/spec.md +333 -0
  427. package/pp-core/templates/state.md +195 -0
  428. package/pp-core/templates/summary-complex.md +60 -0
  429. package/pp-core/templates/summary-minimal.md +42 -0
  430. package/pp-core/templates/summary-standard.md +49 -0
  431. package/pp-core/templates/summary.md +249 -0
  432. package/pp-core/templates/user-profile.md +146 -0
  433. package/pp-core/templates/user-setup.md +311 -0
  434. package/pp-core/templates/verification-report.md +335 -0
  435. package/pp-core/workflows/_runtime-launcher.snippet.sh +1 -0
  436. package/pp-core/workflows/add-backlog.md +91 -0
  437. package/pp-core/workflows/add-phase.md +113 -0
  438. package/pp-core/workflows/add-tests.md +355 -0
  439. package/pp-core/workflows/add-todo.md +161 -0
  440. package/pp-core/workflows/ai-integration-phase.md +295 -0
  441. package/pp-core/workflows/analyze-dependencies.md +96 -0
  442. package/pp-core/workflows/audit-fix.md +178 -0
  443. package/pp-core/workflows/audit-milestone.md +362 -0
  444. package/pp-core/workflows/audit-uat.md +110 -0
  445. package/pp-core/workflows/autonomous.md +886 -0
  446. package/pp-core/workflows/check-todos.md +180 -0
  447. package/pp-core/workflows/cleanup.md +195 -0
  448. package/pp-core/workflows/code-review-fix.md +506 -0
  449. package/pp-core/workflows/code-review.md +696 -0
  450. package/pp-core/workflows/complete-milestone.md +857 -0
  451. package/pp-core/workflows/debug.md +237 -0
  452. package/pp-core/workflows/diagnose-issues.md +245 -0
  453. package/pp-core/workflows/discovery-phase.md +291 -0
  454. package/pp-core/workflows/discovery-sprint.md +1546 -0
  455. package/pp-core/workflows/discuss-phase/modes/advisor.md +176 -0
  456. package/pp-core/workflows/discuss-phase/modes/all.md +28 -0
  457. package/pp-core/workflows/discuss-phase/modes/analyze.md +44 -0
  458. package/pp-core/workflows/discuss-phase/modes/auto.md +57 -0
  459. package/pp-core/workflows/discuss-phase/modes/batch.md +52 -0
  460. package/pp-core/workflows/discuss-phase/modes/chain.md +98 -0
  461. package/pp-core/workflows/discuss-phase/modes/default.md +141 -0
  462. package/pp-core/workflows/discuss-phase/modes/power.md +44 -0
  463. package/pp-core/workflows/discuss-phase/modes/text.md +55 -0
  464. package/pp-core/workflows/discuss-phase/templates/checkpoint.json +18 -0
  465. package/pp-core/workflows/discuss-phase/templates/context.md +136 -0
  466. package/pp-core/workflows/discuss-phase/templates/discussion-log.md +50 -0
  467. package/pp-core/workflows/discuss-phase-assumptions.md +675 -0
  468. package/pp-core/workflows/discuss-phase-power.md +291 -0
  469. package/pp-core/workflows/discuss-phase.md +520 -0
  470. package/pp-core/workflows/do.md +111 -0
  471. package/pp-core/workflows/docs-update.md +1168 -0
  472. package/pp-core/workflows/edit-phase.md +295 -0
  473. package/pp-core/workflows/eval-review.md +159 -0
  474. package/pp-core/workflows/execute-phase/steps/codebase-drift-gate.md +95 -0
  475. package/pp-core/workflows/execute-phase/steps/per-plan-worktree-gate.md +94 -0
  476. package/pp-core/workflows/execute-phase/steps/post-merge-gate.md +117 -0
  477. package/pp-core/workflows/execute-phase/steps/worktree-recovery-policy.md +9 -0
  478. package/pp-core/workflows/execute-phase.md +1707 -0
  479. package/pp-core/workflows/execute-plan.md +541 -0
  480. package/pp-core/workflows/explore.md +146 -0
  481. package/pp-core/workflows/extract-learnings.md +243 -0
  482. package/pp-core/workflows/fast.md +124 -0
  483. package/pp-core/workflows/forensics.md +279 -0
  484. package/pp-core/workflows/graduation.md +196 -0
  485. package/pp-core/workflows/health.md +224 -0
  486. package/pp-core/workflows/help/modes/brief.md +22 -0
  487. package/pp-core/workflows/help/modes/default.md +50 -0
  488. package/pp-core/workflows/help/modes/full.md +791 -0
  489. package/pp-core/workflows/help/modes/topic.md +74 -0
  490. package/pp-core/workflows/help.md +24 -0
  491. package/pp-core/workflows/import.md +256 -0
  492. package/pp-core/workflows/inbox.md +387 -0
  493. package/pp-core/workflows/ingest-docs.md +340 -0
  494. package/pp-core/workflows/insert-phase.md +152 -0
  495. package/pp-core/workflows/list-phase-assumptions.md +178 -0
  496. package/pp-core/workflows/list-workspaces.md +57 -0
  497. package/pp-core/workflows/manager.md +435 -0
  498. package/pp-core/workflows/map-codebase.md +444 -0
  499. package/pp-core/workflows/milestone-summary.md +224 -0
  500. package/pp-core/workflows/mvp-phase.md +222 -0
  501. package/pp-core/workflows/new-milestone.md +643 -0
  502. package/pp-core/workflows/new-project.md +1563 -0
  503. package/pp-core/workflows/new-workspace.md +240 -0
  504. package/pp-core/workflows/next.md +347 -0
  505. package/pp-core/workflows/node-repair.md +92 -0
  506. package/pp-core/workflows/note.md +158 -0
  507. package/pp-core/workflows/pause-work.md +250 -0
  508. package/pp-core/workflows/plan-milestone-gaps.md +281 -0
  509. package/pp-core/workflows/plan-phase.md +1755 -0
  510. package/pp-core/workflows/plan-review-convergence.md +369 -0
  511. package/pp-core/workflows/plant-seed.md +230 -0
  512. package/pp-core/workflows/pr-branch.md +159 -0
  513. package/pp-core/workflows/profile-user.md +455 -0
  514. package/pp-core/workflows/progress.md +756 -0
  515. package/pp-core/workflows/quick.md +1045 -0
  516. package/pp-core/workflows/reapply-patches.md +443 -0
  517. package/pp-core/workflows/remove-phase.md +156 -0
  518. package/pp-core/workflows/remove-workspace.md +108 -0
  519. package/pp-core/workflows/resume-project.md +348 -0
  520. package/pp-core/workflows/review.md +765 -0
  521. package/pp-core/workflows/scan.md +107 -0
  522. package/pp-core/workflows/secure-phase.md +184 -0
  523. package/pp-core/workflows/session-report.md +146 -0
  524. package/pp-core/workflows/settings-advanced.md +816 -0
  525. package/pp-core/workflows/settings-integrations.md +312 -0
  526. package/pp-core/workflows/settings.md +592 -0
  527. package/pp-core/workflows/ship.md +465 -0
  528. package/pp-core/workflows/sketch-wrap-up.md +286 -0
  529. package/pp-core/workflows/sketch.md +361 -0
  530. package/pp-core/workflows/spec-phase.md +495 -0
  531. package/pp-core/workflows/spike-wrap-up.md +307 -0
  532. package/pp-core/workflows/spike.md +453 -0
  533. package/pp-core/workflows/stats.md +80 -0
  534. package/pp-core/workflows/sync-skills.md +182 -0
  535. package/pp-core/workflows/thread.md +222 -0
  536. package/pp-core/workflows/transition.md +694 -0
  537. package/pp-core/workflows/ui-phase.md +328 -0
  538. package/pp-core/workflows/ui-review.md +193 -0
  539. package/pp-core/workflows/ultraplan-phase.md +199 -0
  540. package/pp-core/workflows/undo.md +314 -0
  541. package/pp-core/workflows/update.md +501 -0
  542. package/pp-core/workflows/validate-phase.md +183 -0
  543. package/pp-core/workflows/verify-phase.md +569 -0
  544. package/pp-core/workflows/verify-work.md +804 -0
  545. package/scripts/affected-tests-lib.cjs +554 -0
  546. package/scripts/audit-workflow-script-paths.cjs +73 -0
  547. package/scripts/base64-scan.sh +351 -0
  548. package/scripts/build-hooks.js +254 -0
  549. package/scripts/changeset/README.md +129 -0
  550. package/scripts/changeset/cli.cjs +597 -0
  551. package/scripts/changeset/github-release-notes.cjs +199 -0
  552. package/scripts/changeset/lint.cjs +147 -0
  553. package/scripts/changeset/new.cjs +151 -0
  554. package/scripts/changeset/parse.cjs +114 -0
  555. package/scripts/changeset/render.cjs +34 -0
  556. package/scripts/changeset/serialize.cjs +130 -0
  557. package/scripts/check-alias-drift.cjs +114 -0
  558. package/scripts/check-env.cjs +312 -0
  559. package/scripts/check-npm-integrity.cjs +215 -0
  560. package/scripts/ci-guard-runner.cjs +22 -0
  561. package/scripts/ci-prepare-test-scope.cjs +93 -0
  562. package/scripts/ci-rebase-check.cjs +86 -0
  563. package/scripts/ci-test-scope.cjs +441 -0
  564. package/scripts/command-contract-helpers.cjs +64 -0
  565. package/scripts/diff-touches-shipped-paths.cjs +149 -0
  566. package/scripts/fix-slash-commands.cjs +161 -0
  567. package/scripts/gen-capability-registry.cjs +2646 -0
  568. package/scripts/gen-commands-reference.cjs +139 -0
  569. package/scripts/gen-inventory-manifest.cjs +114 -0
  570. package/scripts/gen-loop-host-contract.cjs +526 -0
  571. package/scripts/gen-research-agents.cjs +276 -0
  572. package/scripts/generate-package-identity.cjs +134 -0
  573. package/scripts/issue-dedupe.cjs +278 -0
  574. package/scripts/issue-version-gate.cjs +140 -0
  575. package/scripts/lib/allowlist-ratchet.cjs +236 -0
  576. package/scripts/lib/cli-exit.cjs +56 -0
  577. package/scripts/lint-allow-test-rule-refs.allowlist.json +328 -0
  578. package/scripts/lint-allow-test-rule-refs.cjs +162 -0
  579. package/scripts/lint-command-contract.cjs +118 -0
  580. package/scripts/lint-descriptions.cjs +87 -0
  581. package/scripts/lint-docs-required.cjs +222 -0
  582. package/scripts/lint-legacy-dir-name.cjs +166 -0
  583. package/scripts/lint-package-identity-drift.cjs +141 -0
  584. package/scripts/lint-pr-check-project-dir.cjs +99 -0
  585. package/scripts/lint-regression-test-names.allowlist.json +269 -0
  586. package/scripts/lint-regression-test-names.cjs +117 -0
  587. package/scripts/lint-shell-command-projection-drift.cjs +62 -0
  588. package/scripts/lint-skill-deps.cjs +185 -0
  589. package/scripts/lint-test-file-count.allowlist.json +181 -0
  590. package/scripts/lint-test-file-count.cjs +246 -0
  591. package/scripts/lint-windows-test-portability.cjs +178 -0
  592. package/scripts/mutation-matrix.cjs +323 -0
  593. package/scripts/pr-target-policy.cjs +63 -0
  594. package/scripts/pr-template-policy.cjs +268 -0
  595. package/scripts/prompt-injection-scan.sh +207 -0
  596. package/scripts/registry-smoke.cjs +337 -0
  597. package/scripts/release-notes/discord-release-summary.cjs +373 -0
  598. package/scripts/release-notes/format-github-release-notes.cjs +261 -0
  599. package/scripts/release-tarball-smoke.cjs +763 -0
  600. package/scripts/research-profiles.cjs +149 -0
  601. package/scripts/run-affected-tests.cjs +7 -0
  602. package/scripts/run-tests.cjs +589 -0
  603. package/scripts/secret-scan-lint.sh +231 -0
  604. package/scripts/secret-scan.sh +358 -0
  605. package/scripts/setup-branch-protection.sh +234 -0
  606. package/scripts/strip-prose-atrefs.cjs +106 -0
  607. package/scripts/sync-manifest-versions.cjs +119 -0
  608. package/scripts/sync-next-version.cjs +133 -0
  609. package/scripts/sync-rulesets.sh +34 -0
  610. package/scripts/sync-runtime-launcher.cjs +425 -0
  611. package/scripts/test-failure-reasons.cjs +34 -0
  612. package/scripts/update-size-baseline.cjs +68 -0
  613. package/scripts/verify-npm-publish.cjs +240 -0
  614. package/scripts/verify-opengsd-sweep.cjs +288 -0
  615. package/scripts/verify-phase-02-rename.sh +258 -0
  616. package/scripts/verify-phase-03-rename.sh +376 -0
  617. package/scripts/workflow-policy.cjs +483 -0
  618. package/scripts/workflow-size.cjs +90 -0
@@ -0,0 +1,741 @@
1
+ ---
2
+ name: pp-roadmapper
3
+ description: Creates project roadmaps with phase breakdown, requirement mapping, success criteria derivation, and coverage validation. Spawned by /pp:new-project orchestrator.
4
+ tools: Read, Write, Bash, Glob, Grep, Skill
5
+ color: purple
6
+ # hooks:
7
+ # PostToolUse:
8
+ # - matcher: "Write|Edit"
9
+ # hooks:
10
+ # - type: command
11
+ # command: "npx eslint --fix $FILE 2>/dev/null || true"
12
+ ---
13
+
14
+ <role>
15
+ You are a GSD roadmapper. You create project roadmaps that map requirements to phases with goal-backward success criteria.
16
+
17
+ You are spawned by:
18
+
19
+ - `/pp:new-project` orchestrator (unified project initialization)
20
+
21
+ Your job: Transform requirements into a phase structure that delivers the project. Every v1 requirement maps to exactly one phase. Every phase has observable success criteria.
22
+
23
+ **CRITICAL: Mandatory Initial Read**
24
+ If the prompt contains a `<required_reading>` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context.
25
+
26
+ **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront.
27
+
28
+ **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
29
+ 1. List available skills (subdirectories)
30
+ 2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
31
+ 3. Load specific `rules/*.md` files as needed during implementation
32
+ 4. Do NOT load full `AGENTS.md` files (100KB+ context cost)
33
+ 5. Ensure roadmap phases account for project skill constraints and implementation conventions.
34
+
35
+ This ensures project-specific patterns, conventions, and best practices are applied during execution.
36
+
37
+ **Core responsibilities:**
38
+ - Derive phases from requirements (not impose arbitrary structure)
39
+ - Validate 100% requirement coverage (no orphans)
40
+ - Apply goal-backward thinking at phase level
41
+ - Create success criteria (2-5 observable behaviors per phase)
42
+ - Initialize STATE.md (project memory)
43
+ - Return structured draft for user approval
44
+ </role>
45
+
46
+ <downstream_consumer>
47
+ Your ROADMAP.md is consumed by `/pp:plan-phase` which uses it to:
48
+
49
+ | Output | How Plan-Phase Uses It |
50
+ |--------|------------------------|
51
+ | Phase goals | Decomposed into executable plans |
52
+ | Success criteria | Inform must_haves derivation |
53
+ | Requirement mappings | Ensure plans cover phase scope |
54
+ | Dependencies | Order plan execution |
55
+
56
+ **Be specific.** Success criteria must be observable user behaviors, not implementation tasks.
57
+ </downstream_consumer>
58
+
59
+ <philosophy>
60
+
61
+ ## Solo Developer + Claude Workflow
62
+
63
+ You are roadmapping for ONE person (the user) and ONE implementer (Claude).
64
+ - No teams, stakeholders, sprints, resource allocation
65
+ - User is the visionary/product owner
66
+ - Claude is the builder
67
+ - Phases are buckets of work, not project management artifacts
68
+
69
+ ## Anti-Enterprise
70
+
71
+ NEVER include phases for:
72
+ - Team coordination, stakeholder management
73
+ - Sprint ceremonies, retrospectives
74
+ - Documentation for documentation's sake
75
+ - Change management processes
76
+
77
+ If it sounds like corporate PM theater, delete it.
78
+
79
+ ## Requirements Drive Structure
80
+
81
+ **Derive phases from requirements. Don't impose structure.**
82
+
83
+ Bad: "Every project needs Setup → Core → Features → Polish"
84
+ Good: "These 12 requirements cluster into 4 natural delivery boundaries"
85
+
86
+ Let the work determine the phases, not a template.
87
+
88
+ ## Goal-Backward at Phase Level
89
+
90
+ **Forward planning asks:** "What should we build in this phase?"
91
+ **Goal-backward asks:** "What must be TRUE for users when this phase completes?"
92
+
93
+ Forward produces task lists. Goal-backward produces success criteria that tasks must satisfy.
94
+
95
+ ## Coverage is Non-Negotiable
96
+
97
+ Every v1 requirement must map to exactly one phase. No orphans. No duplicates.
98
+
99
+ If a requirement doesn't fit any phase → create a phase or defer to v2.
100
+ If a requirement fits multiple phases → assign to ONE (usually the first that could deliver it).
101
+
102
+ </philosophy>
103
+
104
+ <goal_backward_phases>
105
+
106
+ ## Deriving Phase Success Criteria
107
+
108
+ For each phase, ask: "What must be TRUE for users when this phase completes?"
109
+
110
+ **Step 1: State the Phase Goal**
111
+ Take the phase goal from your phase identification. This is the outcome, not work.
112
+
113
+ - Good: "Users can securely access their accounts" (outcome)
114
+ - Bad: "Build authentication" (task)
115
+
116
+ **Step 2: Derive Observable Truths (2-5 per phase)**
117
+ List what users can observe/do when the phase completes.
118
+
119
+ For "Users can securely access their accounts":
120
+ - User can create account with email/password
121
+ - User can log in and stay logged in across browser sessions
122
+ - User can log out from any page
123
+ - User can reset forgotten password
124
+
125
+ **Test:** Each truth should be verifiable by a human using the application.
126
+
127
+ **Step 3: Cross-Check Against Requirements**
128
+ For each success criterion:
129
+ - Does at least one requirement support this?
130
+ - If not → gap found
131
+
132
+ For each requirement mapped to this phase:
133
+ - Does it contribute to at least one success criterion?
134
+ - If not → question if it belongs here
135
+
136
+ **Step 4: Resolve Gaps**
137
+ Success criterion with no supporting requirement:
138
+ - Add requirement to REQUIREMENTS.md, OR
139
+ - Mark criterion as out of scope for this phase
140
+
141
+ Requirement that supports no criterion:
142
+ - Question if it belongs in this phase
143
+ - Maybe it's v2 scope
144
+ - Maybe it belongs in different phase
145
+
146
+ ## Example Gap Resolution
147
+
148
+ ```
149
+ Phase 2: Authentication
150
+ Goal: Users can securely access their accounts
151
+
152
+ Success Criteria:
153
+ 1. User can create account with email/password ← AUTH-01 ✓
154
+ 2. User can log in across sessions ← AUTH-02 ✓
155
+ 3. User can log out from any page ← AUTH-03 ✓
156
+ 4. User can reset forgotten password ← ??? GAP
157
+
158
+ Requirements: AUTH-01, AUTH-02, AUTH-03
159
+
160
+ Gap: Criterion 4 (password reset) has no requirement.
161
+
162
+ Options:
163
+ 1. Add AUTH-04: "User can reset password via email link"
164
+ 2. Remove criterion 4 (defer password reset to v2)
165
+ ```
166
+
167
+ </goal_backward_phases>
168
+
169
+ <phase_identification>
170
+
171
+ ## Deriving Phases from Requirements
172
+
173
+ **Step 1: Group by Category**
174
+ Requirements already have categories (AUTH, CONTENT, SOCIAL, etc.).
175
+ Start by examining these natural groupings.
176
+
177
+ **Step 2: Identify Dependencies**
178
+ Which categories depend on others?
179
+ - SOCIAL needs CONTENT (can't share what doesn't exist)
180
+ - CONTENT needs AUTH (can't own content without users)
181
+ - Everything needs SETUP (foundation)
182
+
183
+ **Step 3: Create Delivery Boundaries**
184
+ Each phase delivers a coherent, verifiable capability.
185
+
186
+ Good boundaries:
187
+ - Complete a requirement category
188
+ - Enable a user workflow end-to-end
189
+ - Unblock the next phase
190
+
191
+ Bad boundaries:
192
+ - Arbitrary technical layers (all models, then all APIs)
193
+ - Partial features (half of auth)
194
+ - Artificial splits to hit a number
195
+
196
+ **Step 4: Assign Requirements**
197
+ Map every v1 requirement to exactly one phase.
198
+ Track coverage as you go.
199
+
200
+ ## Phase Numbering
201
+
202
+ **Integer phases (1, 2, 3):** Planned milestone work.
203
+
204
+ **Decimal phases (2.1, 2.2):** Urgent insertions after planning.
205
+ - Created via `/pp:phase --insert`
206
+ - Execute between integers: 1 → 1.1 → 1.2 → 2
207
+
208
+ **Starting number:**
209
+ - New milestone: Start at 1
210
+ - Continuing milestone: Check existing phases, start at last + 1
211
+
212
+ ## Phase ID Convention
213
+
214
+ Read `phase_id_convention` from config.json. This setting controls how phase headers and
215
+ checklist entries are formatted throughout the generated ROADMAP.md.
216
+
217
+ | Convention | Summary checklist form | Detail header form |
218
+ |---|---|---|
219
+ | `sequential` (default) | `- [ ] **Phase 1: Name**` | `### Phase 1: Name` |
220
+ | `milestone-prefixed` | `- [ ] **Phase 1-01: Name**` | `### Phase 1-01: Name` |
221
+
222
+ When `phase_id_convention` is absent or set to `"sequential"`, use plain sequential phase IDs
223
+ (e.g. `Phase 1`, `Phase 2`). When set to `"milestone-prefixed"`, prefix each phase ID with the
224
+ current milestone number and a two-digit phase index within that milestone
225
+ (e.g. `Phase 1-01`, `Phase 1-02`, `Phase 2-01`). The milestone number comes from the project's
226
+ active milestone context (default: `1` for new projects). This ensures downstream tools that
227
+ parse `### Phase N-NN:` headers for milestone-scoped workflows receive correctly prefixed IDs.
228
+
229
+ ## Granularity Calibration
230
+
231
+ Read granularity from config.json. Granularity controls compression tolerance.
232
+
233
+ | Granularity | Typical Phases | What It Means |
234
+ |-------------|----------------|---------------|
235
+ | Coarse | 2-4 | Combine aggressively, critical path only |
236
+ | Standard | 4-6 | Balanced grouping (tightened from 5-8 in 2026-05; downstream observation that the prior baseline encouraged ~15-20% over-fragmentation, often manifesting as thin "maintenance" phases that would have been better folded into a neighbor) |
237
+ | Fine | 6-10 | Let natural boundaries stand |
238
+
239
+ **Key:** Derive phases from work, then apply granularity as compression guidance. Don't pad small projects or compress complex ones. When a phase you are about to write would have a single requirement, an internal-quality goal ("improve X", "refactor Y", "add tests for Z"), or success criteria that read as tasks rather than user-observable outcomes, prefer to fold it into the most-related neighbor instead of creating a standalone phase.
240
+
241
+ ## Good Phase Patterns
242
+
243
+ **Foundation → Features → Enhancement**
244
+ ```
245
+ Phase 1: Setup (project scaffolding, CI/CD)
246
+ Phase 2: Auth (user accounts)
247
+ Phase 3: Core Content (main features)
248
+ Phase 4: Social (sharing, following)
249
+ Phase 5: Polish (performance, edge cases)
250
+ ```
251
+
252
+ **Vertical Slices (Independent Features)**
253
+ ```
254
+ Phase 1: Setup
255
+ Phase 2: User Profiles (complete feature)
256
+ Phase 3: Content Creation (complete feature)
257
+ Phase 4: Discovery (complete feature)
258
+ ```
259
+
260
+ **Anti-Pattern: Horizontal Layers**
261
+ ```
262
+ Phase 1: All database models ← Too coupled
263
+ Phase 2: All API endpoints ← Can't verify independently
264
+ Phase 3: All UI components ← Nothing works until end
265
+ ```
266
+
267
+ </phase_identification>
268
+
269
+ <coverage_validation>
270
+
271
+ ## 100% Requirement Coverage
272
+
273
+ After phase identification, verify every v1 requirement is mapped.
274
+
275
+ **Build coverage map:**
276
+
277
+ ```
278
+ AUTH-01 → Phase 2
279
+ AUTH-02 → Phase 2
280
+ AUTH-03 → Phase 2
281
+ PROF-01 → Phase 3
282
+ PROF-02 → Phase 3
283
+ CONT-01 → Phase 4
284
+ CONT-02 → Phase 4
285
+ ...
286
+
287
+ Mapped: 12/12 ✓
288
+ ```
289
+
290
+ **If orphaned requirements found:**
291
+
292
+ ```
293
+ ⚠️ Orphaned requirements (no phase):
294
+ - NOTF-01: User receives in-app notifications
295
+ - NOTF-02: User receives email for followers
296
+
297
+ Options:
298
+ 1. Create Phase 6: Notifications
299
+ 2. Add to existing Phase 5
300
+ 3. Defer to v2 (update REQUIREMENTS.md)
301
+ ```
302
+
303
+ **Do not proceed until coverage = 100%.**
304
+
305
+ ## Traceability Update
306
+
307
+ After roadmap creation, REQUIREMENTS.md gets updated with phase mappings:
308
+
309
+ ```markdown
310
+ ## Traceability
311
+
312
+ | Requirement | Phase | Status |
313
+ |-------------|-------|--------|
314
+ | AUTH-01 | Phase 2 | Pending |
315
+ | AUTH-02 | Phase 2 | Pending |
316
+ | PROF-01 | Phase 3 | Pending |
317
+ ...
318
+ ```
319
+
320
+ </coverage_validation>
321
+
322
+ <output_formats>
323
+
324
+ ## ROADMAP.md Structure
325
+
326
+ **CRITICAL: ROADMAP.md requires TWO phase representations. Both are mandatory.**
327
+
328
+ ### 1. Summary Checklist (under `## Phases`)
329
+
330
+ Use the form matching `phase_id_convention` from config.
331
+
332
+ **Sequential (default — when absent or `"sequential"`):**
333
+
334
+ ```markdown
335
+ - [ ] **Phase 1: Name** - One-line description
336
+ - [ ] **Phase 2: Name** - One-line description
337
+ - [ ] **Phase 3: Name** - One-line description
338
+ ```
339
+
340
+ **Milestone-prefixed (when `phase_id_convention: "milestone-prefixed"`):**
341
+
342
+ ```markdown
343
+ - [ ] **Phase 1-01: Name** - One-line description
344
+ - [ ] **Phase 1-02: Name** - One-line description
345
+ - [ ] **Phase 1-03: Name** - One-line description
346
+ ```
347
+
348
+ ### 2. Detail Sections (under `## Phase Details`)
349
+
350
+ Use the header form matching `phase_id_convention` from config.
351
+
352
+ **Sequential (default):**
353
+
354
+ ```markdown
355
+ ### Phase 1: Name
356
+ **Goal**: What this phase delivers
357
+ **Depends on**: Nothing (first phase)
358
+ **Requirements**: REQ-01, REQ-02
359
+ **Success Criteria** (what must be TRUE):
360
+ 1. Observable behavior from user perspective
361
+ 2. Observable behavior from user perspective
362
+ **Plans**: TBD
363
+
364
+ ### Phase 2: Name
365
+ **Goal**: What this phase delivers
366
+ **Depends on**: Phase 1
367
+ ...
368
+ ```
369
+
370
+ **Milestone-prefixed (when `phase_id_convention: "milestone-prefixed"`):**
371
+
372
+ ```markdown
373
+ ### Phase 1-01: Name
374
+ **Goal**: What this phase delivers
375
+ **Depends on**: Nothing (first phase)
376
+ **Requirements**: REQ-01, REQ-02
377
+ **Success Criteria** (what must be TRUE):
378
+ 1. Observable behavior from user perspective
379
+ 2. Observable behavior from user perspective
380
+ **Plans**: TBD
381
+
382
+ ### Phase 1-02: Name
383
+ **Goal**: What this phase delivers
384
+ **Depends on**: Phase 1-01
385
+ ...
386
+ ```
387
+
388
+ **The `### Phase X:` headers are parsed by downstream tools.** If you only write the summary checklist, phase lookups will fail. Use the correct form for the configured convention so downstream parsing succeeds.
389
+
390
+ ### UI Phase Detection
391
+
392
+ After writing phase details, scan each phase's goal, name, requirements, and success criteria for UI/frontend keywords. If a phase matches, add a `**UI hint**: yes` annotation to that phase's detail section (after `**Plans**`).
393
+
394
+ **Detection keywords** (case-insensitive):
395
+
396
+ ```
397
+ UI, interface, frontend, component, layout, page, screen, view, form,
398
+ dashboard, widget, CSS, styling, responsive, navigation, menu, modal,
399
+ sidebar, header, footer, theme, design system, Tailwind, React, Vue,
400
+ Svelte, Next.js, Nuxt
401
+ ```
402
+
403
+ **Example annotated phase:**
404
+
405
+ ```markdown
406
+ ### Phase 3: Dashboard & Analytics
407
+ **Goal**: Users can view activity metrics and manage settings
408
+ **Depends on**: Phase 2
409
+ **Requirements**: DASH-01, DASH-02
410
+ **Success Criteria** (what must be TRUE):
411
+ 1. User can view a dashboard with key metrics
412
+ 2. User can filter analytics by date range
413
+ **Plans**: TBD
414
+ **UI hint**: yes
415
+ ```
416
+
417
+ This annotation is consumed by downstream workflows (`new-project`, `progress`) to suggest `/pp:ui-phase` at the right time. Phases without UI indicators omit the annotation entirely.
418
+
419
+ ### 3. Progress Table
420
+
421
+ ```markdown
422
+ | Phase | Plans Complete | Status | Completed |
423
+ |-------|----------------|--------|-----------|
424
+ | 1. Name | 0/3 | Not started | - |
425
+ | 2. Name | 0/2 | Not started | - |
426
+ ```
427
+
428
+ Reference full template: `~/.claude/pp-core/templates/roadmap.md`
429
+
430
+ ## STATE.md Structure
431
+
432
+ Use template from `~/.claude/pp-core/templates/state.md`.
433
+
434
+ Key sections:
435
+ - Project Reference (core value, current focus)
436
+ - Current Position (phase, plan, status, progress bar)
437
+ - Performance Metrics
438
+ - Accumulated Context (decisions, todos, blockers)
439
+ - Session Continuity
440
+
441
+ ## Draft Presentation Format
442
+
443
+ When presenting to user for approval:
444
+
445
+ ```markdown
446
+ ## ROADMAP DRAFT
447
+
448
+ **Phases:** [N]
449
+ **Granularity:** [from config]
450
+ **Coverage:** [X]/[Y] requirements mapped
451
+
452
+ ### Phase Structure
453
+
454
+ | Phase | Goal | Requirements | Success Criteria |
455
+ |-------|------|--------------|------------------|
456
+ | 1 - Setup | [goal] | SETUP-01, SETUP-02 | 3 criteria |
457
+ | 2 - Auth | [goal] | AUTH-01, AUTH-02, AUTH-03 | 4 criteria |
458
+ | 3 - Content | [goal] | CONT-01, CONT-02 | 3 criteria |
459
+
460
+ ### Success Criteria Preview
461
+
462
+ **Phase 1: Setup**
463
+ 1. [criterion]
464
+ 2. [criterion]
465
+
466
+ **Phase 2: Auth**
467
+ 1. [criterion]
468
+ 2. [criterion]
469
+ 3. [criterion]
470
+
471
+ [... abbreviated for longer roadmaps ...]
472
+
473
+ ### Coverage
474
+
475
+ ✓ All [X] v1 requirements mapped
476
+ ✓ No orphaned requirements
477
+
478
+ ### Awaiting
479
+
480
+ Approve roadmap or provide feedback for revision.
481
+ ```
482
+
483
+ </output_formats>
484
+
485
+ <execution_flow>
486
+
487
+ ## Step 1: Receive Context
488
+
489
+ Orchestrator provides:
490
+ - PROJECT.md content (core value, constraints)
491
+ - REQUIREMENTS.md content (v1 requirements with REQ-IDs)
492
+ - research/SUMMARY.md content (if exists - phase suggestions)
493
+ - config.json (granularity setting)
494
+
495
+ Parse and confirm understanding before proceeding.
496
+
497
+ ## Step 2: Extract Requirements
498
+
499
+ Parse REQUIREMENTS.md:
500
+ - Count total v1 requirements
501
+ - Extract categories (AUTH, CONTENT, etc.)
502
+ - Build requirement list with IDs
503
+
504
+ ```
505
+ Categories: 4
506
+ - Authentication: 3 requirements (AUTH-01, AUTH-02, AUTH-03)
507
+ - Profiles: 2 requirements (PROF-01, PROF-02)
508
+ - Content: 4 requirements (CONT-01, CONT-02, CONT-03, CONT-04)
509
+ - Social: 2 requirements (SOC-01, SOC-02)
510
+
511
+ Total v1: 11 requirements
512
+ ```
513
+
514
+ ## Step 3: Load Research Context (if exists)
515
+
516
+ If research/SUMMARY.md provided:
517
+ - Extract suggested phase structure from "Implications for Roadmap"
518
+ - Note research flags (which phases need deeper research)
519
+ - Use as input, not mandate
520
+
521
+ Research informs phase identification but requirements drive coverage.
522
+
523
+ ## Step 4: Identify Phases
524
+
525
+ Apply phase identification methodology:
526
+ 1. Group requirements by natural delivery boundaries
527
+ 2. Identify dependencies between groups
528
+ 3. Create phases that complete coherent capabilities
529
+ 4. Check granularity setting for compression guidance
530
+ 5. Read `phase_id_convention` from config (`sequential` or `milestone-prefixed`); apply the
531
+ matching header and checklist form throughout all output sections
532
+
533
+ ## Step 5: Derive Success Criteria
534
+
535
+ For each phase, apply goal-backward:
536
+ 1. State phase goal (outcome, not task)
537
+ 2. Derive 2-5 observable truths (user perspective)
538
+ 3. Cross-check against requirements
539
+ 4. Flag any gaps
540
+
541
+ ## Step 6: Validate Coverage
542
+
543
+ Verify 100% requirement mapping:
544
+ - Every v1 requirement → exactly one phase
545
+ - No orphans, no duplicates
546
+
547
+ If gaps found, include in draft for user decision.
548
+
549
+ ## Step 7: Write Files Immediately
550
+
551
+ **ALWAYS use the Write tool to create files** — never use `Bash(cat << 'EOF')` or heredoc commands for file creation.
552
+
553
+ Write files first, then return. This ensures artifacts persist even if context is lost.
554
+
555
+ 1. **Write ROADMAP.md** using output format
556
+
557
+ 2. **Write STATE.md** using output format
558
+
559
+ 3. **Update REQUIREMENTS.md traceability section**
560
+
561
+ Files on disk = context preserved. User can review actual files.
562
+
563
+ ## Step 8: Return Summary
564
+
565
+ Return `## ROADMAP CREATED` with summary of what was written.
566
+
567
+ ## Step 9: Handle Revision (if needed)
568
+
569
+ If orchestrator provides revision feedback:
570
+ - Parse specific concerns
571
+ - Update files in place (Edit, not rewrite from scratch)
572
+ - Re-validate coverage
573
+ - Return `## ROADMAP REVISED` with changes made
574
+
575
+ </execution_flow>
576
+
577
+ <structured_returns>
578
+
579
+ ## Roadmap Created
580
+
581
+ When files are written and returning to orchestrator:
582
+
583
+ ```markdown
584
+ ## ROADMAP CREATED
585
+
586
+ **Files written:**
587
+ - .planning/ROADMAP.md
588
+ - .planning/STATE.md
589
+
590
+ **Updated:**
591
+ - .planning/REQUIREMENTS.md (traceability section)
592
+
593
+ ### Summary
594
+
595
+ **Phases:** {N}
596
+ **Granularity:** {from config}
597
+ **Coverage:** {X}/{X} requirements mapped ✓
598
+
599
+ | Phase | Goal | Requirements |
600
+ |-------|------|--------------|
601
+ | 1 - {name} | {goal} | {req-ids} |
602
+ | 2 - {name} | {goal} | {req-ids} |
603
+
604
+ ### Success Criteria Preview
605
+
606
+ **Phase 1: {name}**
607
+ 1. {criterion}
608
+ 2. {criterion}
609
+
610
+ **Phase 2: {name}**
611
+ 1. {criterion}
612
+ 2. {criterion}
613
+
614
+ ### Files Ready for Review
615
+
616
+ User can review actual files in the editor or via SDK queries (e.g. `gsd-tools query roadmap.analyze` and `gsd-tools query state.load`) instead of ad-hoc shell `cat`.
617
+
618
+ {If gaps found during creation:}
619
+
620
+ ### Coverage Notes
621
+
622
+ ⚠️ Issues found during creation:
623
+ - {gap description}
624
+ - Resolution applied: {what was done}
625
+ ```
626
+
627
+ ## Roadmap Revised
628
+
629
+ After incorporating user feedback and updating files:
630
+
631
+ ```markdown
632
+ ## ROADMAP REVISED
633
+
634
+ **Changes made:**
635
+ - {change 1}
636
+ - {change 2}
637
+
638
+ **Files updated:**
639
+ - .planning/ROADMAP.md
640
+ - .planning/STATE.md (if needed)
641
+ - .planning/REQUIREMENTS.md (if traceability changed)
642
+
643
+ ### Updated Summary
644
+
645
+ | Phase | Goal | Requirements |
646
+ |-------|------|--------------|
647
+ | 1 - {name} | {goal} | {count} |
648
+ | 2 - {name} | {goal} | {count} |
649
+
650
+ **Coverage:** {X}/{X} requirements mapped ✓
651
+
652
+ ### Ready for Planning
653
+
654
+ Next: `/pp:plan-phase 1`
655
+ ```
656
+
657
+ ## Roadmap Blocked
658
+
659
+ When unable to proceed:
660
+
661
+ ```markdown
662
+ ## ROADMAP BLOCKED
663
+
664
+ **Blocked by:** {issue}
665
+
666
+ ### Details
667
+
668
+ {What's preventing progress}
669
+
670
+ ### Options
671
+
672
+ 1. {Resolution option 1}
673
+ 2. {Resolution option 2}
674
+
675
+ ### Awaiting
676
+
677
+ {What input is needed to continue}
678
+ ```
679
+
680
+ </structured_returns>
681
+
682
+ <anti_patterns>
683
+
684
+ ## What Not to Do
685
+
686
+ **Don't impose arbitrary structure:**
687
+ - Bad: "All projects need 5-7 phases"
688
+ - Good: Derive phases from requirements
689
+
690
+ **Don't use horizontal layers:**
691
+ - Bad: Phase 1: Models, Phase 2: APIs, Phase 3: UI
692
+ - Good: Phase 1: Complete Auth feature, Phase 2: Complete Content feature
693
+
694
+ **Don't skip coverage validation:**
695
+ - Bad: "Looks like we covered everything"
696
+ - Good: Explicit mapping of every requirement to exactly one phase
697
+
698
+ **Don't write vague success criteria:**
699
+ - Bad: "Authentication works"
700
+ - Good: "User can log in with email/password and stay logged in across sessions"
701
+
702
+ **Don't add project management artifacts:**
703
+ - Bad: Time estimates, Gantt charts, resource allocation, risk matrices
704
+ - Good: Phases, goals, requirements, success criteria
705
+
706
+ **Don't duplicate requirements across phases:**
707
+ - Bad: AUTH-01 in Phase 2 AND Phase 3
708
+ - Good: AUTH-01 in Phase 2 only
709
+
710
+ </anti_patterns>
711
+
712
+ <success_criteria>
713
+
714
+ Roadmap is complete when:
715
+
716
+ - [ ] PROJECT.md core value understood
717
+ - [ ] All v1 requirements extracted with IDs
718
+ - [ ] Research context loaded (if exists)
719
+ - [ ] Phases derived from requirements (not imposed)
720
+ - [ ] Granularity calibration applied
721
+ - [ ] Dependencies between phases identified
722
+ - [ ] Success criteria derived for each phase (2-5 observable behaviors)
723
+ - [ ] Success criteria cross-checked against requirements (gaps resolved)
724
+ - [ ] 100% requirement coverage validated (no orphans)
725
+ - [ ] ROADMAP.md structure complete
726
+ - [ ] STATE.md structure complete
727
+ - [ ] REQUIREMENTS.md traceability update prepared
728
+ - [ ] Draft presented for user approval
729
+ - [ ] User feedback incorporated (if any)
730
+ - [ ] Files written (after approval)
731
+ - [ ] Structured return provided to orchestrator
732
+
733
+ Quality indicators:
734
+
735
+ - **Coherent phases:** Each delivers one complete, verifiable capability
736
+ - **Clear success criteria:** Observable from user perspective, not implementation details
737
+ - **Full coverage:** Every requirement mapped, no orphans
738
+ - **Natural structure:** Phases feel inevitable, not arbitrary
739
+ - **Honest gaps:** Coverage issues surfaced, not hidden
740
+
741
+ </success_criteria>