mindforge-cc 11.8.2 → 11.9.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 (361) hide show
  1. package/.agent/mindforge/wf-orchestrate-review.md +35 -0
  2. package/.agent/mindforge/wf-verification-loop.md +45 -0
  3. package/.agent/mindforge/wf-workflow-optimizer.md +51 -0
  4. package/.agent/skills/article-illustrator/SKILL.md +7 -7
  5. package/.agent/skills/arxiv/SKILL.md +6 -6
  6. package/.agent/skills/code-wiki/SKILL.md +11 -11
  7. package/.agent/skills/concept-diagrams/SKILL.md +6 -6
  8. package/.agent/skills/concept-diagrams/examples/apartment-floor-plan-conversion.md +244 -0
  9. package/.agent/skills/concept-diagrams/examples/automated-password-reset-flow.md +276 -0
  10. package/.agent/skills/concept-diagrams/examples/autonomous-llm-research-agent-flow.md +240 -0
  11. package/.agent/skills/concept-diagrams/examples/banana-journey-tree-to-smoothie.md +161 -0
  12. package/.agent/skills/concept-diagrams/examples/commercial-aircraft-structure.md +209 -0
  13. package/.agent/skills/concept-diagrams/examples/cpu-ooo-microarchitecture.md +236 -0
  14. package/.agent/skills/concept-diagrams/examples/electricity-grid-flow.md +182 -0
  15. package/.agent/skills/concept-diagrams/examples/feature-film-production-pipeline.md +172 -0
  16. package/.agent/skills/concept-diagrams/examples/hospital-emergency-department-flow.md +165 -0
  17. package/.agent/skills/concept-diagrams/examples/ml-benchmark-grouped-bar-chart.md +114 -0
  18. package/.agent/skills/concept-diagrams/examples/place-order-uml-sequence.md +325 -0
  19. package/.agent/skills/concept-diagrams/examples/smart-city-infrastructure.md +173 -0
  20. package/.agent/skills/concept-diagrams/examples/smartphone-layer-anatomy.md +154 -0
  21. package/.agent/skills/concept-diagrams/examples/sn2-reaction-mechanism.md +247 -0
  22. package/.agent/skills/concept-diagrams/examples/wind-turbine-structure.md +338 -0
  23. package/.agent/skills/concept-diagrams/templates/template.html +174 -0
  24. package/.agent/skills/domain-intel/SKILL.md +7 -7
  25. package/.agent/skills/duckduckgo-search/SKILL.md +17 -17
  26. package/.agent/skills/github-auth/scripts/gh-env.sh +66 -0
  27. package/.agent/skills/github-code-review/SKILL.md +9 -9
  28. package/.agent/skills/github-pr-workflow/SKILL.md +3 -3
  29. package/.agent/skills/godmode/SKILL.md +8 -8
  30. package/.agent/skills/jupyter-live-kernel/SKILL.md +3 -3
  31. package/.agent/skills/kanban-orchestrator/SKILL.md +10 -10
  32. package/.agent/skills/kanban-worker/SKILL.md +6 -6
  33. package/.agent/skills/llm-wiki/SKILL.md +7 -7
  34. package/.agent/skills/mindforge-autonomous/SKILL.md +1 -1
  35. package/.agent/skills/mindforge-complete-milestone/SKILL.md +1 -1
  36. package/.agent/skills/mindforge-discuss-phase/SKILL.md +1 -1
  37. package/.agent/skills/mindforge-do/SKILL.md +1 -1
  38. package/.agent/skills/mindforge-execute-phase/SKILL.md +1 -1
  39. package/.agent/skills/mindforge-list-workspaces/SKILL.md +1 -1
  40. package/.agent/skills/mindforge-manager/SKILL.md +1 -1
  41. package/.agent/skills/mindforge-neural-orchestrator/SKILL.md +1 -1
  42. package/.agent/skills/mindforge-new-milestone/SKILL.md +4 -4
  43. package/.agent/skills/mindforge-new-project/SKILL.md +4 -4
  44. package/.agent/skills/mindforge-new-workspace/SKILL.md +1 -1
  45. package/.agent/skills/mindforge-note/SKILL.md +1 -1
  46. package/.agent/skills/mindforge-plan-phase/SKILL.md +1 -1
  47. package/.agent/skills/mindforge-profile-user/SKILL.md +1 -1
  48. package/.agent/skills/mindforge-remove-workspace/SKILL.md +1 -1
  49. package/.agent/skills/mindforge-research-phase/SKILL.md +1 -1
  50. package/.agent/skills/mindforge-ui-phase/SKILL.md +1 -1
  51. package/.agent/skills/mindforge-ui-review/SKILL.md +1 -1
  52. package/.agent/skills/mindforge-verify-work/SKILL.md +1 -1
  53. package/.agent/skills/mindforge-workspace-isolated/SKILL.md +1 -1
  54. package/.agent/skills/node-inspect-debugger/SKILL.md +1 -1
  55. package/.agent/skills/obsidian/SKILL.md +15 -15
  56. package/.agent/skills/osint-investigation/SKILL.md +3 -2
  57. package/.agent/skills/osint-investigation/references/sources/courtlistener.md +98 -0
  58. package/.agent/skills/osint-investigation/references/sources/gdelt.md +104 -0
  59. package/.agent/skills/osint-investigation/references/sources/icij-offshore.md +104 -0
  60. package/.agent/skills/osint-investigation/references/sources/nyc-acris.md +90 -0
  61. package/.agent/skills/osint-investigation/references/sources/ofac-sdn.md +92 -0
  62. package/.agent/skills/osint-investigation/references/sources/opencorporates.md +103 -0
  63. package/.agent/skills/osint-investigation/references/sources/sec-edgar.md +83 -0
  64. package/.agent/skills/osint-investigation/references/sources/senate-ld.md +89 -0
  65. package/.agent/skills/osint-investigation/references/sources/usaspending.md +97 -0
  66. package/.agent/skills/osint-investigation/references/sources/wayback.md +93 -0
  67. package/.agent/skills/osint-investigation/references/sources/wikipedia.md +107 -0
  68. package/.agent/skills/osint-investigation/scripts/_http.py +82 -0
  69. package/.agent/skills/osint-investigation/scripts/_normalize.py +67 -0
  70. package/.agent/skills/osint-investigation/scripts/build_findings.py +221 -0
  71. package/.agent/skills/osint-investigation/scripts/entity_resolution.py +228 -0
  72. package/.agent/skills/osint-investigation/scripts/fetch_courtlistener.py +149 -0
  73. package/.agent/skills/osint-investigation/scripts/fetch_gdelt.py +161 -0
  74. package/.agent/skills/osint-investigation/scripts/fetch_icij_offshore.py +234 -0
  75. package/.agent/skills/osint-investigation/scripts/fetch_nyc_acris.py +203 -0
  76. package/.agent/skills/osint-investigation/scripts/fetch_ofac_sdn.py +175 -0
  77. package/.agent/skills/osint-investigation/scripts/fetch_opencorporates.py +191 -0
  78. package/.agent/skills/osint-investigation/scripts/fetch_sec_edgar.py +184 -0
  79. package/.agent/skills/osint-investigation/scripts/fetch_senate_ld.py +146 -0
  80. package/.agent/skills/osint-investigation/scripts/fetch_usaspending.py +170 -0
  81. package/.agent/skills/osint-investigation/scripts/fetch_wayback.py +142 -0
  82. package/.agent/skills/osint-investigation/scripts/fetch_wikipedia.py +266 -0
  83. package/.agent/skills/osint-investigation/scripts/timing_analysis.py +252 -0
  84. package/.agent/skills/oss-forensics/SKILL.md +10 -9
  85. package/.agent/skills/oss-forensics/scripts/evidence-store.py +313 -0
  86. package/.agent/skills/parallel-cli/SKILL.md +2 -2
  87. package/.agent/skills/pinggy-tunnel/SKILL.md +3 -3
  88. package/.agent/skills/pixel-art/SKILL.md +2 -2
  89. package/.agent/skills/plan/SKILL.md +10 -10
  90. package/.agent/skills/requesting-code-review/SKILL.md +4 -6
  91. package/.agent/skills/research-paper-writing/SKILL.md +32 -32
  92. package/.agent/skills/rest-graphql-debug/SKILL.md +31 -32
  93. package/.agent/skills/s6-container-supervision/SKILL.md +1 -1
  94. package/.agent/skills/scrapling/SKILL.md +1 -1
  95. package/.agent/skills/sherlock/SKILL.md +1 -1
  96. package/.agent/skills/simplify-code/SKILL.md +5 -7
  97. package/.agent/skills/skill-authoring/SKILL.md +4 -4
  98. package/.agent/skills/spike/SKILL.md +11 -13
  99. package/.agent/skills/subagent-driven-development/SKILL.md +7 -11
  100. package/.agent/skills/systematic-debugging/SKILL.md +13 -14
  101. package/.agent/skills/test-driven-development/SKILL.md +6 -7
  102. package/.agent/skills/video-orchestrator/SKILL.md +1 -1
  103. package/.agent/skills/web-pentest/SKILL.md +7 -7
  104. package/.mindforge/config.json +3 -2
  105. package/.mindforge/dynamic-workflows/REGISTRY.md +4 -1
  106. package/.mindforge/dynamic-workflows/index.json +910 -840
  107. package/.mindforge/dynamic-workflows/scripts/accessibility-audit.js +88 -90
  108. package/.mindforge/dynamic-workflows/scripts/ai-model-eval.js +59 -61
  109. package/.mindforge/dynamic-workflows/scripts/api-contract-test.js +87 -85
  110. package/.mindforge/dynamic-workflows/scripts/api-migration.js +120 -122
  111. package/.mindforge/dynamic-workflows/scripts/architecture-modernization.js +84 -86
  112. package/.mindforge/dynamic-workflows/scripts/code-audit.js +75 -77
  113. package/.mindforge/dynamic-workflows/scripts/code-explainer.js +99 -101
  114. package/.mindforge/dynamic-workflows/scripts/competitive-analysis.js +62 -64
  115. package/.mindforge/dynamic-workflows/scripts/competitive-teardown.js +106 -108
  116. package/.mindforge/dynamic-workflows/scripts/cost-analysis.js +78 -80
  117. package/.mindforge/dynamic-workflows/scripts/data-pipeline-validate.js +47 -49
  118. package/.mindforge/dynamic-workflows/scripts/database-migration.js +85 -87
  119. package/.mindforge/dynamic-workflows/scripts/debug-detective.js +97 -99
  120. package/.mindforge/dynamic-workflows/scripts/dependency-health.js +81 -83
  121. package/.mindforge/dynamic-workflows/scripts/design-system-audit.js +84 -86
  122. package/.mindforge/dynamic-workflows/scripts/documentation-gen.js +65 -67
  123. package/.mindforge/dynamic-workflows/scripts/feature-planner.js +78 -80
  124. package/.mindforge/dynamic-workflows/scripts/incident-response.js +81 -83
  125. package/.mindforge/dynamic-workflows/scripts/multi-repo-sync.js +49 -51
  126. package/.mindforge/dynamic-workflows/scripts/mutation-testing.js +113 -115
  127. package/.mindforge/dynamic-workflows/scripts/onboard-codebase.js +79 -81
  128. package/.mindforge/dynamic-workflows/scripts/orchestrate-review.js +115 -0
  129. package/.mindforge/dynamic-workflows/scripts/perf-optimize.js +97 -99
  130. package/.mindforge/dynamic-workflows/scripts/pr-review.js +61 -63
  131. package/.mindforge/dynamic-workflows/scripts/refactor-plan.js +88 -90
  132. package/.mindforge/dynamic-workflows/scripts/release-prep.js +79 -81
  133. package/.mindforge/dynamic-workflows/scripts/security-hardening.js +117 -119
  134. package/.mindforge/dynamic-workflows/scripts/security-threat-model.js +119 -121
  135. package/.mindforge/dynamic-workflows/scripts/tdd-sprint.js +80 -82
  136. package/.mindforge/dynamic-workflows/scripts/tech-evaluation.js +50 -52
  137. package/.mindforge/dynamic-workflows/scripts/test-coverage-gap.js +68 -70
  138. package/.mindforge/dynamic-workflows/scripts/ux-heuristic-audit.js +89 -91
  139. package/.mindforge/dynamic-workflows/scripts/verification-loop.js +138 -0
  140. package/.mindforge/dynamic-workflows/scripts/workflow-optimizer.js +136 -0
  141. package/.mindforge/dynamic-workflows/scripts/writer-reviewer.js +63 -65
  142. package/.mindforge/memory/sync-manifest.json +1 -1
  143. package/.mindforge/personas/advisor-researcher.md +2 -2
  144. package/.mindforge/personas/api-load-tester.md +1 -1
  145. package/.mindforge/personas/authentication-architect.md +1 -1
  146. package/.mindforge/personas/backup-recovery-specialist.md +1 -1
  147. package/.mindforge/personas/build-optimizer.md +1 -1
  148. package/.mindforge/personas/caching-strategist.md +1 -1
  149. package/.mindforge/personas/chaos-engineer.md +1 -1
  150. package/.mindforge/personas/compliance-auditor.md +1 -1
  151. package/.mindforge/personas/config-management-expert.md +1 -1
  152. package/.mindforge/personas/coverage-specialist.md +1 -1
  153. package/.mindforge/personas/debug-specialist.md +2 -2
  154. package/.mindforge/personas/debugger.md +2 -2
  155. package/.mindforge/personas/dependency-auditor.md +1 -1
  156. package/.mindforge/personas/developer.md +1 -1
  157. package/.mindforge/personas/devops-engineer.md +1 -1
  158. package/.mindforge/personas/executor.md +1 -1
  159. package/.mindforge/personas/go-specialist.md +1 -1
  160. package/.mindforge/personas/incident-commander.md +1 -1
  161. package/.mindforge/personas/java-specialist.md +1 -1
  162. package/.mindforge/personas/kubernetes-debugger.md +1 -1
  163. package/.mindforge/personas/logging-architect.md +1 -1
  164. package/.mindforge/personas/mf-planner.md +1 -1
  165. package/.mindforge/personas/mf-researcher.md +1 -1
  166. package/.mindforge/personas/mf-reviewer.md +1 -1
  167. package/.mindforge/personas/nyquist-auditor.md +1 -1
  168. package/.mindforge/personas/observability-engineer.md +1 -1
  169. package/.mindforge/personas/performance-optimizer.md +1 -1
  170. package/.mindforge/personas/phase-researcher.md +5 -5
  171. package/.mindforge/personas/planner.md +1 -1
  172. package/.mindforge/personas/project-researcher.md +2 -2
  173. package/.mindforge/personas/python-specialist.md +1 -1
  174. package/.mindforge/personas/qa-engineer.md +1 -1
  175. package/.mindforge/personas/release-manager.md +1 -1
  176. package/.mindforge/personas/research-agent.md +4 -4
  177. package/.mindforge/personas/roadmapper-extend.md +1 -1
  178. package/.mindforge/personas/rust-specialist.md +1 -1
  179. package/.mindforge/personas/security-reviewer.md +1 -1
  180. package/.mindforge/personas/tech-writer.md +1 -1
  181. package/.mindforge/personas/typescript-wizard.md +1 -1
  182. package/.mindforge/personas/ui-researcher.md +1 -1
  183. package/.mindforge/skills/accessibility/SKILL.md +3 -3
  184. package/.mindforge/skills/agent-architecture-audit/SKILL.md +11 -0
  185. package/.mindforge/skills/agent-loops/SKILL.md +1 -1
  186. package/.mindforge/skills/arxiv/SKILL.md +6 -6
  187. package/.mindforge/skills/arxiv/scripts/search_arxiv.py +114 -0
  188. package/.mindforge/skills/code-tour/SKILL.md +2 -2
  189. package/.mindforge/skills/code-wiki/SKILL.md +11 -11
  190. package/.mindforge/skills/code-wiki/templates/README.md +31 -0
  191. package/.mindforge/skills/code-wiki/templates/architecture.md +30 -0
  192. package/.mindforge/skills/code-wiki/templates/getting-started.md +47 -0
  193. package/.mindforge/skills/code-wiki/templates/module.md +38 -0
  194. package/.mindforge/skills/concept-diagrams/SKILL.md +6 -6
  195. package/.mindforge/skills/concept-diagrams/examples/apartment-floor-plan-conversion.md +244 -0
  196. package/.mindforge/skills/concept-diagrams/examples/automated-password-reset-flow.md +276 -0
  197. package/.mindforge/skills/concept-diagrams/examples/autonomous-llm-research-agent-flow.md +240 -0
  198. package/.mindforge/skills/concept-diagrams/examples/banana-journey-tree-to-smoothie.md +161 -0
  199. package/.mindforge/skills/concept-diagrams/examples/commercial-aircraft-structure.md +209 -0
  200. package/.mindforge/skills/concept-diagrams/examples/cpu-ooo-microarchitecture.md +236 -0
  201. package/.mindforge/skills/concept-diagrams/examples/electricity-grid-flow.md +182 -0
  202. package/.mindforge/skills/concept-diagrams/examples/feature-film-production-pipeline.md +172 -0
  203. package/.mindforge/skills/concept-diagrams/examples/hospital-emergency-department-flow.md +165 -0
  204. package/.mindforge/skills/concept-diagrams/examples/ml-benchmark-grouped-bar-chart.md +114 -0
  205. package/.mindforge/skills/concept-diagrams/examples/place-order-uml-sequence.md +325 -0
  206. package/.mindforge/skills/concept-diagrams/examples/smart-city-infrastructure.md +173 -0
  207. package/.mindforge/skills/concept-diagrams/examples/smartphone-layer-anatomy.md +154 -0
  208. package/.mindforge/skills/concept-diagrams/examples/sn2-reaction-mechanism.md +247 -0
  209. package/.mindforge/skills/concept-diagrams/examples/wind-turbine-structure.md +338 -0
  210. package/.mindforge/skills/concept-diagrams/references/dashboard-patterns.md +43 -0
  211. package/.mindforge/skills/concept-diagrams/references/infrastructure-patterns.md +144 -0
  212. package/.mindforge/skills/concept-diagrams/references/physical-shape-cookbook.md +42 -0
  213. package/.mindforge/skills/concept-diagrams/templates/template.html +174 -0
  214. package/.mindforge/skills/creative-ideation/references/full-prompt-library.md +110 -0
  215. package/.mindforge/skills/documentation/SKILL.md +1 -1
  216. package/.mindforge/skills/domain-intel/SKILL.md +7 -7
  217. package/.mindforge/skills/domain-intel/scripts/domain_intel.py +397 -0
  218. package/.mindforge/skills/duckduckgo-search/SKILL.md +17 -17
  219. package/.mindforge/skills/duckduckgo-search/scripts/duckduckgo.sh +28 -0
  220. package/.mindforge/skills/environment-management/SKILL.md +1 -1
  221. package/.mindforge/skills/github-code-review/SKILL.md +9 -9
  222. package/.mindforge/skills/github-code-review/references/review-output-template.md +74 -0
  223. package/.mindforge/skills/github-issues/templates/bug-report.md +35 -0
  224. package/.mindforge/skills/github-issues/templates/feature-request.md +31 -0
  225. package/.mindforge/skills/github-pr-workflow/SKILL.md +3 -3
  226. package/.mindforge/skills/github-pr-workflow/references/ci-troubleshooting.md +183 -0
  227. package/.mindforge/skills/github-pr-workflow/references/conventional-commits.md +71 -0
  228. package/.mindforge/skills/github-pr-workflow/templates/pr-body-bugfix.md +35 -0
  229. package/.mindforge/skills/github-pr-workflow/templates/pr-body-feature.md +33 -0
  230. package/.mindforge/skills/incident-response/SKILL.md +1 -1
  231. package/.mindforge/skills/jupyter-live-kernel/SKILL.md +3 -3
  232. package/.mindforge/skills/kanban-orchestrator/SKILL.md +10 -10
  233. package/.mindforge/skills/kanban-worker/SKILL.md +6 -6
  234. package/.mindforge/skills/meme-generation/SKILL.md +1 -1
  235. package/.mindforge/skills/meme-generation/scripts/generate_meme.py +470 -0
  236. package/.mindforge/skills/meme-generation/scripts/templates.json +97 -0
  237. package/.mindforge/skills/obsidian/SKILL.md +15 -15
  238. package/.mindforge/skills/orch-pipeline/SKILL.md +2 -2
  239. package/.mindforge/skills/osint-investigation/SKILL.md +3 -2
  240. package/.mindforge/skills/osint-investigation/references/sources/courtlistener.md +98 -0
  241. package/.mindforge/skills/osint-investigation/references/sources/gdelt.md +104 -0
  242. package/.mindforge/skills/osint-investigation/references/sources/icij-offshore.md +104 -0
  243. package/.mindforge/skills/osint-investigation/references/sources/nyc-acris.md +90 -0
  244. package/.mindforge/skills/osint-investigation/references/sources/ofac-sdn.md +92 -0
  245. package/.mindforge/skills/osint-investigation/references/sources/opencorporates.md +103 -0
  246. package/.mindforge/skills/osint-investigation/references/sources/sec-edgar.md +83 -0
  247. package/.mindforge/skills/osint-investigation/references/sources/senate-ld.md +89 -0
  248. package/.mindforge/skills/osint-investigation/references/sources/usaspending.md +97 -0
  249. package/.mindforge/skills/osint-investigation/references/sources/wayback.md +93 -0
  250. package/.mindforge/skills/osint-investigation/references/sources/wikipedia.md +107 -0
  251. package/.mindforge/skills/osint-investigation/scripts/_http.py +82 -0
  252. package/.mindforge/skills/osint-investigation/scripts/_normalize.py +67 -0
  253. package/.mindforge/skills/osint-investigation/scripts/build_findings.py +221 -0
  254. package/.mindforge/skills/osint-investigation/scripts/entity_resolution.py +228 -0
  255. package/.mindforge/skills/osint-investigation/scripts/fetch_courtlistener.py +149 -0
  256. package/.mindforge/skills/osint-investigation/scripts/fetch_gdelt.py +161 -0
  257. package/.mindforge/skills/osint-investigation/scripts/fetch_icij_offshore.py +234 -0
  258. package/.mindforge/skills/osint-investigation/scripts/fetch_nyc_acris.py +203 -0
  259. package/.mindforge/skills/osint-investigation/scripts/fetch_ofac_sdn.py +175 -0
  260. package/.mindforge/skills/osint-investigation/scripts/fetch_opencorporates.py +191 -0
  261. package/.mindforge/skills/osint-investigation/scripts/fetch_sec_edgar.py +184 -0
  262. package/.mindforge/skills/osint-investigation/scripts/fetch_senate_ld.py +146 -0
  263. package/.mindforge/skills/osint-investigation/scripts/fetch_usaspending.py +170 -0
  264. package/.mindforge/skills/osint-investigation/scripts/fetch_wayback.py +142 -0
  265. package/.mindforge/skills/osint-investigation/scripts/fetch_wikipedia.py +266 -0
  266. package/.mindforge/skills/osint-investigation/scripts/timing_analysis.py +252 -0
  267. package/.mindforge/skills/osint-investigation/templates/source-template.md +59 -0
  268. package/.mindforge/skills/oss-forensics/SKILL.md +6 -6
  269. package/.mindforge/skills/oss-forensics/references/evidence-types.md +89 -0
  270. package/.mindforge/skills/oss-forensics/references/github-archive-guide.md +184 -0
  271. package/.mindforge/skills/oss-forensics/references/investigation-templates.md +131 -0
  272. package/.mindforge/skills/oss-forensics/references/recovery-techniques.md +164 -0
  273. package/.mindforge/skills/oss-forensics/scripts/evidence-store.py +313 -0
  274. package/.mindforge/skills/oss-forensics/templates/forensic-report.md +151 -0
  275. package/.mindforge/skills/oss-forensics/templates/malicious-package-report.md +43 -0
  276. package/.mindforge/skills/pixel-art/SKILL.md +2 -2
  277. package/.mindforge/skills/pixel-art/references/palettes.md +49 -0
  278. package/.mindforge/skills/plan/SKILL.md +10 -10
  279. package/.mindforge/skills/requesting-code-review/SKILL.md +4 -6
  280. package/.mindforge/skills/research-paper-writing/SKILL.md +32 -32
  281. package/.mindforge/skills/research-paper-writing/references/autoreason-methodology.md +394 -0
  282. package/.mindforge/skills/research-paper-writing/references/checklists.md +434 -0
  283. package/.mindforge/skills/research-paper-writing/references/citation-workflow.md +563 -0
  284. package/.mindforge/skills/research-paper-writing/references/experiment-patterns.md +728 -0
  285. package/.mindforge/skills/research-paper-writing/references/human-evaluation.md +476 -0
  286. package/.mindforge/skills/research-paper-writing/references/paper-types.md +481 -0
  287. package/.mindforge/skills/research-paper-writing/references/reviewer-guidelines.md +433 -0
  288. package/.mindforge/skills/research-paper-writing/references/sources.md +191 -0
  289. package/.mindforge/skills/research-paper-writing/references/writing-guide.md +474 -0
  290. package/.mindforge/skills/research-paper-writing/templates/README.md +251 -0
  291. package/.mindforge/skills/scrapling/SKILL.md +1 -1
  292. package/.mindforge/skills/security-review/SKILL.md +1 -1
  293. package/.mindforge/skills/sherlock/SKILL.md +1 -1
  294. package/.mindforge/skills/simplify-code/SKILL.md +5 -7
  295. package/.mindforge/skills/spike/SKILL.md +11 -13
  296. package/.mindforge/skills/subagent-driven-development/SKILL.md +7 -11
  297. package/.mindforge/skills/subagent-driven-development/references/context-budget-discipline.md +53 -0
  298. package/.mindforge/skills/subagent-driven-development/references/gates-taxonomy.md +93 -0
  299. package/.mindforge/skills/systematic-debugging/SKILL.md +13 -14
  300. package/.mindforge/skills/test-driven-development/SKILL.md +7 -8
  301. package/.mindforge/skills/testing-standards/SKILL.md +1 -1
  302. package/.mindforge/skills/web-pentest/SKILL.md +2 -2
  303. package/.mindforge/skills/web-pentest/references/bypass-techniques.md +133 -0
  304. package/.mindforge/skills/web-pentest/references/exploitation-techniques.md +204 -0
  305. package/.mindforge/skills/web-pentest/references/scope-enforcement.md +110 -0
  306. package/.mindforge/skills/web-pentest/references/vuln-taxonomy.md +81 -0
  307. package/.mindforge/skills/web-pentest/templates/authorization.md +69 -0
  308. package/.mindforge/skills/web-pentest/templates/pentest-report.md +178 -0
  309. package/.mindforge/skills/writing-skills/SKILL.md +4 -3
  310. package/CHANGELOG.md +35 -0
  311. package/MINDFORGE.md +3 -3
  312. package/README.md +9 -7
  313. package/RELEASENOTES.md +65 -2
  314. package/SECURITY.md +5 -3
  315. package/bin/autonomous/auto-runner.js +5 -2
  316. package/bin/engine/skill-loader.js +4 -0
  317. package/bin/governance/rbac.js +4 -0
  318. package/bin/memory/eis-client.js +1 -0
  319. package/bin/mindforge-cli.js +5 -0
  320. package/bin/models/bedrock-provider.js +192 -0
  321. package/bin/models/model-client.js +19 -0
  322. package/bin/spawn-agent.js +9 -2
  323. package/docs/commands-reference.md +68 -6
  324. package/docs/faq.md +38 -1
  325. package/docs/getting-started.md +27 -12
  326. package/docs/sdk-reference.md +36 -3
  327. package/docs/troubleshooting.md +59 -1
  328. package/docs/user-guide.md +7 -4
  329. package/package.json +3 -3
  330. package/.claude/commands/mindforge/skill-tdd.md +0 -53
  331. package/.claude/commands/mindforge/skills-index.md +0 -118
  332. package/.claude/commands/mindforge/systematic-debug.md +0 -60
  333. package/.claude/commands/mindforge/wf-accessibility-audit.md +0 -31
  334. package/.claude/commands/mindforge/wf-ai-model-eval.md +0 -31
  335. package/.claude/commands/mindforge/wf-api-migration.md +0 -31
  336. package/.claude/commands/mindforge/wf-architecture-modernization.md +0 -32
  337. package/.claude/commands/mindforge/wf-catalog.md +0 -59
  338. package/.claude/commands/mindforge/wf-code-audit.md +0 -31
  339. package/.claude/commands/mindforge/wf-code-explainer.md +0 -31
  340. package/.claude/commands/mindforge/wf-competitive-analysis.md +0 -31
  341. package/.claude/commands/mindforge/wf-competitive-teardown.md +0 -31
  342. package/.claude/commands/mindforge/wf-cost-analysis.md +0 -31
  343. package/.claude/commands/mindforge/wf-data-pipeline-validate.md +0 -31
  344. package/.claude/commands/mindforge/wf-database-migration.md +0 -31
  345. package/.claude/commands/mindforge/wf-debug-detective.md +0 -32
  346. package/.claude/commands/mindforge/wf-design-system-audit.md +0 -31
  347. package/.claude/commands/mindforge/wf-documentation-gen.md +0 -31
  348. package/.claude/commands/mindforge/wf-feature-planner.md +0 -31
  349. package/.claude/commands/mindforge/wf-incident-response.md +0 -31
  350. package/.claude/commands/mindforge/wf-multi-repo-sync.md +0 -31
  351. package/.claude/commands/mindforge/wf-mutation-testing.md +0 -31
  352. package/.claude/commands/mindforge/wf-onboard-codebase.md +0 -31
  353. package/.claude/commands/mindforge/wf-perf-optimize.md +0 -31
  354. package/.claude/commands/mindforge/wf-pr-review.md +0 -31
  355. package/.claude/commands/mindforge/wf-refactor-plan.md +0 -31
  356. package/.claude/commands/mindforge/wf-release-prep.md +0 -31
  357. package/.claude/commands/mindforge/wf-security-threat-model.md +0 -31
  358. package/.claude/commands/mindforge/wf-tdd-sprint.md +0 -31
  359. package/.claude/commands/mindforge/wf-tech-evaluation.md +0 -31
  360. package/.claude/commands/mindforge/wf-ux-heuristic-audit.md +0 -31
  361. package/.claude/commands/mindforge/wf-writer-reviewer.md +0 -30
@@ -10,106 +10,104 @@ export const meta = {
10
10
  ],
11
11
  };
12
12
 
13
- export default async function run({ agent, parallel, pipeline, phase, log, args, budget }) {
14
- const INVENTORY_SCHEMA = {
15
- type: 'object',
16
- properties: {
17
- stylingApproach: { type: 'string' },
18
- tokenFiles: { type: 'array', items: { type: 'string' } },
19
- componentFiles: { type: 'array', items: { type: 'string' } },
20
- designSystem: { type: 'string' },
21
- },
22
- required: ['stylingApproach', 'componentFiles'],
23
- };
13
+ const INVENTORY_SCHEMA = {
14
+ type: 'object',
15
+ properties: {
16
+ stylingApproach: { type: 'string' },
17
+ tokenFiles: { type: 'array', items: { type: 'string' } },
18
+ componentFiles: { type: 'array', items: { type: 'string' } },
19
+ designSystem: { type: 'string' },
20
+ },
21
+ required: ['stylingApproach', 'componentFiles'],
22
+ };
24
23
 
25
- const DIM_SCHEMA = {
26
- type: 'object',
27
- properties: {
28
- dimension: { type: 'string' },
29
- score: { type: 'number' },
30
- violations: {
31
- type: 'array',
32
- items: {
33
- type: 'object',
34
- properties: {
35
- file: { type: 'string' },
36
- severity: { type: 'string', enum: ['critical', 'high', 'medium', 'low'] },
37
- description: { type: 'string' },
38
- fix: { type: 'string' },
39
- },
40
- required: ['severity', 'description', 'fix'],
24
+ const DIM_SCHEMA = {
25
+ type: 'object',
26
+ properties: {
27
+ dimension: { type: 'string' },
28
+ score: { type: 'number' },
29
+ violations: {
30
+ type: 'array',
31
+ items: {
32
+ type: 'object',
33
+ properties: {
34
+ file: { type: 'string' },
35
+ severity: { type: 'string', enum: ['critical', 'high', 'medium', 'low'] },
36
+ description: { type: 'string' },
37
+ fix: { type: 'string' },
41
38
  },
39
+ required: ['severity', 'description', 'fix'],
42
40
  },
43
- positives: { type: 'array', items: { type: 'string' } },
44
41
  },
45
- required: ['dimension', 'score', 'violations'],
46
- };
42
+ positives: { type: 'array', items: { type: 'string' } },
43
+ },
44
+ required: ['dimension', 'score', 'violations'],
45
+ };
47
46
 
48
- const REPORT_SCHEMA = {
49
- type: 'object',
50
- properties: {
51
- overallScore: { type: 'number' },
52
- summary: { type: 'string' },
53
- dimensionScores: {
54
- type: 'array',
55
- items: {
56
- type: 'object',
57
- properties: {
58
- dimension: { type: 'string' },
59
- score: { type: 'number' },
60
- topIssue: { type: 'string' },
61
- },
62
- required: ['dimension', 'score', 'topIssue'],
47
+ const REPORT_SCHEMA = {
48
+ type: 'object',
49
+ properties: {
50
+ overallScore: { type: 'number' },
51
+ summary: { type: 'string' },
52
+ dimensionScores: {
53
+ type: 'array',
54
+ items: {
55
+ type: 'object',
56
+ properties: {
57
+ dimension: { type: 'string' },
58
+ score: { type: 'number' },
59
+ topIssue: { type: 'string' },
63
60
  },
61
+ required: ['dimension', 'score', 'topIssue'],
64
62
  },
65
- topFixes: { type: 'array', items: { type: 'string' } },
66
- tokenizationGaps: { type: 'array', items: { type: 'string' } },
67
63
  },
68
- required: ['overallScore', 'summary', 'dimensionScores', 'topFixes'],
69
- };
64
+ topFixes: { type: 'array', items: { type: 'string' } },
65
+ tokenizationGaps: { type: 'array', items: { type: 'string' } },
66
+ },
67
+ required: ['overallScore', 'summary', 'dimensionScores', 'topFixes'],
68
+ };
70
69
 
71
- const target = args || 'current codebase (run from repo root)';
70
+ const target = args || 'current codebase (run from repo root)';
72
71
 
73
- phase('Inventory');
74
- log(`Design system audit target: ${target}`);
75
- const inventory = await agent(
76
- `Inventory the design system foundations of: "${target}". Identify: (1) styling approach (CSS modules, Tailwind, styled-components, CSS-in-JS, etc.), (2) design token files (variables, theme files, constants), (3) component files (UI components, primitives), (4) which design system library is used if any (shadcn, MUI, Chakra, etc.).`,
77
- { schema: INVENTORY_SCHEMA, label: 'inventory' }
78
- );
79
- if (!inventory) { log('Warning: agent returned null for inventory, skipping'); return { target, error: 'agent-null' }; }
80
- log(`Styling: ${inventory.stylingApproach}, ${inventory.componentFiles.length} component files`);
72
+ phase('Inventory');
73
+ log(`Design system audit target: ${target}`);
74
+ const inventory = await agent(
75
+ `Inventory the design system foundations of: "${target}". Identify: (1) styling approach (CSS modules, Tailwind, styled-components, CSS-in-JS, etc.), (2) design token files (variables, theme files, constants), (3) component files (UI components, primitives), (4) which design system library is used if any (shadcn, MUI, Chakra, etc.).`,
76
+ { schema: INVENTORY_SCHEMA, label: 'inventory' }
77
+ );
78
+ if (!inventory) { log('Warning: agent returned null for inventory, skipping'); return { target, error: 'agent-null' }; }
79
+ log(`Styling: ${inventory.stylingApproach}, ${inventory.componentFiles.length} component files`);
81
80
 
82
- phase('Audit');
83
- const ctx = `Styling: ${inventory.stylingApproach}. Design system: ${inventory.designSystem || 'custom'}. Token files: ${(inventory.tokenFiles || []).join(', ')}`;
81
+ phase('Audit');
82
+ const ctx = `Styling: ${inventory.stylingApproach}. Design system: ${inventory.designSystem || 'custom'}. Token files: ${(inventory.tokenFiles || []).join(', ')}`;
84
83
 
85
- const DIMENSIONS = [
86
- { label: 'spacing', prompt: `Audit SPACING CONSISTENCY in: "${target}". ${ctx}. Check: Are spacing values taken from a defined scale (4px/8px/16px etc.)? Are there magic numbers (arbitrary pixel values)? Is padding/margin/gap consistent for similar components? Are layout spacings reusing tokens? Score 0-100 (100=perfectly consistent) and list all violations with fixes.` },
87
- { label: 'color', prompt: `Audit COLOR USAGE in: "${target}". ${ctx}. Check: Are colors from the defined palette/tokens only? Are there hardcoded hex values that bypass tokens? Is color used for meaning (red=error, green=success) consistently? Are brand colors consistent? Score 0-100 and list all violations.` },
88
- { label: 'typography', prompt: `Audit TYPOGRAPHY SCALE in: "${target}". ${ctx}. Check: Are font sizes from a defined type scale? Are font weights consistent for similar hierarchy levels? Are line-heights defined? Is the heading hierarchy (h1>h2>h3) visually consistent? Score 0-100 and list violations.` },
89
- { label: 'icons', prompt: `Audit ICON CONSISTENCY in: "${target}". ${ctx}. Check: Is a single icon library used consistently? Are icon sizes consistent for the same context (nav icons vs inline icons)? Are icon meanings consistent (same icon for same action everywhere)? Are there mixed icon styles (outline vs filled)? Score 0-100 and list violations.` },
90
- { label: 'accessibility', prompt: `Audit ACCESSIBILITY in the design system of: "${target}". ${ctx}. Check: Do color combinations meet WCAG AA contrast ratio (4.5:1 for normal text, 3:1 for large)? Are interactive elements at least 44x44px touch targets? Are focus states visible? Are disabled states visually distinct? Score 0-100 and list violations.` },
91
- ];
84
+ const DIMENSIONS = [
85
+ { label: 'spacing', prompt: `Audit SPACING CONSISTENCY in: "${target}". ${ctx}. Check: Are spacing values taken from a defined scale (4px/8px/16px etc.)? Are there magic numbers (arbitrary pixel values)? Is padding/margin/gap consistent for similar components? Are layout spacings reusing tokens? Score 0-100 (100=perfectly consistent) and list all violations with fixes.` },
86
+ { label: 'color', prompt: `Audit COLOR USAGE in: "${target}". ${ctx}. Check: Are colors from the defined palette/tokens only? Are there hardcoded hex values that bypass tokens? Is color used for meaning (red=error, green=success) consistently? Are brand colors consistent? Score 0-100 and list all violations.` },
87
+ { label: 'typography', prompt: `Audit TYPOGRAPHY SCALE in: "${target}". ${ctx}. Check: Are font sizes from a defined type scale? Are font weights consistent for similar hierarchy levels? Are line-heights defined? Is the heading hierarchy (h1>h2>h3) visually consistent? Score 0-100 and list violations.` },
88
+ { label: 'icons', prompt: `Audit ICON CONSISTENCY in: "${target}". ${ctx}. Check: Is a single icon library used consistently? Are icon sizes consistent for the same context (nav icons vs inline icons)? Are icon meanings consistent (same icon for same action everywhere)? Are there mixed icon styles (outline vs filled)? Score 0-100 and list violations.` },
89
+ { label: 'accessibility', prompt: `Audit ACCESSIBILITY in the design system of: "${target}". ${ctx}. Check: Do color combinations meet WCAG AA contrast ratio (4.5:1 for normal text, 3:1 for large)? Are interactive elements at least 44x44px touch targets? Are focus states visible? Are disabled states visually distinct? Score 0-100 and list violations.` },
90
+ ];
92
91
 
93
- const auditResults = await parallel(
94
- DIMENSIONS.map(d => () => agent(d.prompt, { schema: DIM_SCHEMA, label: `audit:${d.label}`, phase: 'Audit' }))
95
- );
92
+ const auditResults = await parallel(
93
+ DIMENSIONS.map(d => () => agent(d.prompt, { schema: DIM_SCHEMA, label: `audit:${d.label}`, phase: 'Audit' }))
94
+ );
96
95
 
97
- phase('Score');
98
- const validAudits = auditResults.filter(Boolean);
99
- const avgScore = validAudits.length > 0
100
- ? Math.round(validAudits.reduce((sum, a) => sum + (a.score || 0), 0) / validAudits.length)
101
- : 0;
102
- log(`Dimension scores: ${validAudits.map(a => `${a.dimension}=${a.score}`).join(', ')} | Overall: ${avgScore}`);
96
+ phase('Score');
97
+ const validAudits = auditResults.filter(Boolean);
98
+ const avgScore = validAudits.length > 0
99
+ ? Math.round(validAudits.reduce((sum, a) => sum + (a.score || 0), 0) / validAudits.length)
100
+ : 0;
101
+ log(`Dimension scores: ${validAudits.map(a => `${a.dimension}=${a.score}`).join(', ')} | Overall: ${avgScore}`);
103
102
 
104
- phase('Report');
105
- const dimSummary = validAudits.map(a => `${a.dimension}: ${a.score}/100, top issue: ${(a.violations[0] || {}).description || 'none'}`).join('\n');
106
- const allViolations = validAudits.flatMap(a => a.violations.map(v => `[${a.dimension}/${v.severity}] ${v.description}`)).slice(0, 15).join('\n');
103
+ phase('Report');
104
+ const dimSummary = validAudits.map(a => `${a.dimension}: ${a.score}/100, top issue: ${(a.violations[0] || {}).description || 'none'}`).join('\n');
105
+ const allViolations = validAudits.flatMap(a => a.violations.map(v => `[${a.dimension}/${v.severity}] ${v.description}`)).slice(0, 15).join('\n');
107
106
 
108
- const report = await agent(
109
- `Generate a design system health report for: "${target}"\n\nDimension scores:\n${dimSummary}\n\nTop violations:\n${allViolations}\n\nOverall consistency score: ${avgScore}/100\n\nProvide: executive summary, dimension score table with top issue each, top 5 priority fixes, and which values should be tokenized but aren't.`,
110
- { schema: REPORT_SCHEMA, label: 'report' }
111
- );
112
- if (!report) { return { target, inventory, audits: validAudits, error: 'report-agent-null' }; }
107
+ const report = await agent(
108
+ `Generate a design system health report for: "${target}"\n\nDimension scores:\n${dimSummary}\n\nTop violations:\n${allViolations}\n\nOverall consistency score: ${avgScore}/100\n\nProvide: executive summary, dimension score table with top issue each, top 5 priority fixes, and which values should be tokenized but aren't.`,
109
+ { schema: REPORT_SCHEMA, label: 'report' }
110
+ );
111
+ if (!report) { return { target, inventory, audits: validAudits, error: 'report-agent-null' }; }
113
112
 
114
- return { target, inventory, audits: validAudits, report };
115
- }
113
+ return { target, inventory, audits: validAudits, report };
@@ -10,82 +10,80 @@ export const meta = {
10
10
  ],
11
11
  };
12
12
 
13
- export default async function run({ agent, parallel, pipeline, phase, log, args, budget }) {
14
- const FILE_LIST_SCHEMA = {
15
- type: 'object',
16
- properties: {
17
- files: {
18
- type: 'array',
19
- items: {
20
- type: 'object',
21
- properties: {
22
- path: { type: 'string' },
23
- type: { type: 'string', enum: ['module', 'class', 'function', 'api-route', 'config', 'util'] },
24
- priority: { type: 'string', enum: ['high', 'medium', 'low'] },
25
- currentDocStatus: { type: 'string', enum: ['none', 'partial', 'outdated', 'current'] },
26
- },
27
- required: ['path', 'type', 'priority', 'currentDocStatus'],
13
+ const FILE_LIST_SCHEMA = {
14
+ type: 'object',
15
+ properties: {
16
+ files: {
17
+ type: 'array',
18
+ items: {
19
+ type: 'object',
20
+ properties: {
21
+ path: { type: 'string' },
22
+ type: { type: 'string', enum: ['module', 'class', 'function', 'api-route', 'config', 'util'] },
23
+ priority: { type: 'string', enum: ['high', 'medium', 'low'] },
24
+ currentDocStatus: { type: 'string', enum: ['none', 'partial', 'outdated', 'current'] },
28
25
  },
26
+ required: ['path', 'type', 'priority', 'currentDocStatus'],
29
27
  },
30
28
  },
31
- required: ['files'],
32
- };
29
+ },
30
+ required: ['files'],
31
+ };
33
32
 
34
- const DOC_SCHEMA = {
35
- type: 'object',
36
- properties: {
37
- path: { type: 'string' },
38
- summary: { type: 'string' },
39
- description: { type: 'string' },
40
- parameters: { type: 'array', items: { type: 'object', properties: { name: { type: 'string' }, type: { type: 'string' }, description: { type: 'string' }, required: { type: 'boolean' } }, required: ['name', 'type', 'description'] } },
41
- returns: { type: 'string' },
42
- examples: { type: 'array', items: { type: 'string' } },
43
- sideEffects: { type: 'array', items: { type: 'string' } },
44
- },
45
- required: ['path', 'summary', 'description'],
46
- };
33
+ const DOC_SCHEMA = {
34
+ type: 'object',
35
+ properties: {
36
+ path: { type: 'string' },
37
+ summary: { type: 'string' },
38
+ description: { type: 'string' },
39
+ parameters: { type: 'array', items: { type: 'object', properties: { name: { type: 'string' }, type: { type: 'string' }, description: { type: 'string' }, required: { type: 'boolean' } }, required: ['name', 'type', 'description'] } },
40
+ returns: { type: 'string' },
41
+ examples: { type: 'array', items: { type: 'string' } },
42
+ sideEffects: { type: 'array', items: { type: 'string' } },
43
+ },
44
+ required: ['path', 'summary', 'description'],
45
+ };
47
46
 
48
- const PUBLISH_SCHEMA = {
49
- type: 'object',
50
- properties: {
51
- readmeSection: { type: 'string' },
52
- apiReference: { type: 'string' },
53
- quickStart: { type: 'string' },
54
- changelogEntries: { type: 'array', items: { type: 'string' } },
55
- },
56
- required: ['readmeSection', 'apiReference', 'quickStart'],
57
- };
47
+ const PUBLISH_SCHEMA = {
48
+ type: 'object',
49
+ properties: {
50
+ readmeSection: { type: 'string' },
51
+ apiReference: { type: 'string' },
52
+ quickStart: { type: 'string' },
53
+ changelogEntries: { type: 'array', items: { type: 'string' } },
54
+ },
55
+ required: ['readmeSection', 'apiReference', 'quickStart'],
56
+ };
58
57
 
59
- const target = args || 'current codebase (run from repo root)';
58
+ const target = args || 'current codebase (run from repo root)';
60
59
 
61
- phase('Scope');
62
- log(`Scoping documentation for: ${target}`);
63
- const fileList = await agent(
64
- `Discover all files in: "${target}" that need documentation. Focus on: public APIs, exported functions/classes, route handlers, configuration modules. For each file note its type (module/class/function/api-route/config/util), documentation priority (high=public API, medium=internal, low=util), and current doc status (none/partial/outdated/current). Skip test files and auto-generated files.`,
65
- { schema: FILE_LIST_SCHEMA, label: 'scope' }
66
- );
60
+ phase('Scope');
61
+ log(`Scoping documentation for: ${target}`);
62
+ const fileList = await agent(
63
+ `Discover all files in: "${target}" that need documentation. Focus on: public APIs, exported functions/classes, route handlers, configuration modules. For each file note its type (module/class/function/api-route/config/util), documentation priority (high=public API, medium=internal, low=util), and current doc status (none/partial/outdated/current). Skip test files and auto-generated files.`,
64
+ { schema: FILE_LIST_SCHEMA, label: 'scope' }
65
+ );
67
66
 
68
- const highAndMedium = ((fileList || {}).files || []).filter(f => f.priority === 'high' || f.priority === 'medium').slice(0, 15);
69
- log(`Generating docs for ${highAndMedium.length} priority files`);
67
+ const highAndMedium = ((fileList || {}).files || []).filter(f => f.priority === 'high' || f.priority === 'medium').slice(0, 15);
68
+ log(`Generating docs for ${highAndMedium.length} priority files`);
70
69
 
71
- phase('Generate');
72
- const docs = await parallel(
73
- highAndMedium.map(f => () => agent(
74
- `Generate complete documentation for the file at "${f.path}" in codebase: "${target}". It is a ${f.type}. Write: (1) one-line summary, (2) full description with purpose and usage context, (3) all parameters with types and descriptions, (4) return value description, (5) 1-2 concrete usage examples, (6) any side effects or important caveats.`,
75
- { schema: DOC_SCHEMA, label: `doc:${f.path.split('/').pop().replace('.', '-')}`, phase: 'Generate' }
76
- ))
77
- );
70
+ phase('Generate');
71
+ const docs = await parallel(
72
+ highAndMedium.map(f => () => agent(
73
+ `Generate complete documentation for the file at "${f.path}" in codebase: "${target}". It is a ${f.type}. Write: (1) one-line summary, (2) full description with purpose and usage context, (3) all parameters with types and descriptions, (4) return value description, (5) 1-2 concrete usage examples, (6) any side effects or important caveats.`,
74
+ { schema: DOC_SCHEMA, label: `doc:${f.path.split('/').pop().replace('.', '-')}`, phase: 'Generate' }
75
+ ))
76
+ );
78
77
 
79
- phase('Normalize');
80
- const validDocs = docs.filter(Boolean);
81
- const docSummaries = validDocs.map(d => `${d.path}: ${d.summary}`).join('\n');
82
- log(`${validDocs.length} docs generated — normalizing style`);
78
+ phase('Normalize');
79
+ const validDocs = docs.filter(Boolean);
80
+ const docSummaries = validDocs.map(d => `${d.path}: ${d.summary}`).join('\n');
81
+ log(`${validDocs.length} docs generated — normalizing style`);
83
82
 
84
- phase('Publish');
85
- const publish = await agent(
86
- `Assemble publish-ready documentation for: "${target}"\n\nGenerated docs:\n${docSummaries}\n\nProduce: (1) README API section (markdown table of all public exports with one-line descriptions), (2) full API reference (each entry with params, returns, example), (3) quick-start guide showing the most common 3-5 use cases, (4) CHANGELOG entry lines for newly documented items.`,
87
- { schema: PUBLISH_SCHEMA, label: 'publish' }
88
- );
83
+ phase('Publish');
84
+ const publish = await agent(
85
+ `Assemble publish-ready documentation for: "${target}"\n\nGenerated docs:\n${docSummaries}\n\nProduce: (1) README API section (markdown table of all public exports with one-line descriptions), (2) full API reference (each entry with params, returns, example), (3) quick-start guide showing the most common 3-5 use cases, (4) CHANGELOG entry lines for newly documented items.`,
86
+ { schema: PUBLISH_SCHEMA, label: 'publish' }
87
+ );
89
88
 
90
- return { target, fileList, docs: validDocs, publish };
91
- }
89
+ return { target, fileList, docs: validDocs, publish };
@@ -10,95 +10,93 @@ export const meta = {
10
10
  ],
11
11
  };
12
12
 
13
- export default async function run({ agent, parallel, pipeline, phase, log, args, budget }) {
14
- const BRIEF_SCHEMA = {
15
- type: 'object',
16
- properties: {
17
- featureName: { type: 'string' },
18
- problem: { type: 'string' },
19
- targetUsers: { type: 'string' },
20
- successCriteria: { type: 'array', items: { type: 'string' } },
21
- outOfScope: { type: 'array', items: { type: 'string' } },
22
- },
23
- required: ['featureName', 'problem', 'targetUsers', 'successCriteria', 'outOfScope'],
24
- };
13
+ const BRIEF_SCHEMA = {
14
+ type: 'object',
15
+ properties: {
16
+ featureName: { type: 'string' },
17
+ problem: { type: 'string' },
18
+ targetUsers: { type: 'string' },
19
+ successCriteria: { type: 'array', items: { type: 'string' } },
20
+ outOfScope: { type: 'array', items: { type: 'string' } },
21
+ },
22
+ required: ['featureName', 'problem', 'targetUsers', 'successCriteria', 'outOfScope'],
23
+ };
25
24
 
26
- const PRD_SCHEMA = {
27
- type: 'object',
28
- properties: {
29
- overview: { type: 'string' },
30
- requirements: { type: 'array', items: { type: 'object', properties: { id: { type: 'string' }, type: { type: 'string' }, description: { type: 'string' }, priority: { type: 'string' } }, required: ['id', 'type', 'description', 'priority'] } },
31
- nonFunctional: { type: 'array', items: { type: 'string' } },
32
- acceptanceCriteria: { type: 'array', items: { type: 'string' } },
33
- },
34
- required: ['overview', 'requirements', 'nonFunctional', 'acceptanceCriteria'],
35
- };
25
+ const PRD_SCHEMA = {
26
+ type: 'object',
27
+ properties: {
28
+ overview: { type: 'string' },
29
+ requirements: { type: 'array', items: { type: 'object', properties: { id: { type: 'string' }, type: { type: 'string' }, description: { type: 'string' }, priority: { type: 'string' } }, required: ['id', 'type', 'description', 'priority'] } },
30
+ nonFunctional: { type: 'array', items: { type: 'string' } },
31
+ acceptanceCriteria: { type: 'array', items: { type: 'string' } },
32
+ },
33
+ required: ['overview', 'requirements', 'nonFunctional', 'acceptanceCriteria'],
34
+ };
36
35
 
37
- const ARCH_SCHEMA = {
38
- type: 'object',
39
- properties: {
40
- approach: { type: 'string' },
41
- components: { type: 'array', items: { type: 'object', properties: { name: { type: 'string' }, responsibility: { type: 'string' } }, required: ['name', 'responsibility'] } },
42
- dataFlow: { type: 'string' },
43
- newFiles: { type: 'array', items: { type: 'string' } },
44
- modifiedFiles: { type: 'array', items: { type: 'string' } },
45
- risks: { type: 'array', items: { type: 'string' } },
46
- },
47
- required: ['approach', 'components', 'dataFlow', 'newFiles', 'modifiedFiles', 'risks'],
48
- };
36
+ const ARCH_SCHEMA = {
37
+ type: 'object',
38
+ properties: {
39
+ approach: { type: 'string' },
40
+ components: { type: 'array', items: { type: 'object', properties: { name: { type: 'string' }, responsibility: { type: 'string' } }, required: ['name', 'responsibility'] } },
41
+ dataFlow: { type: 'string' },
42
+ newFiles: { type: 'array', items: { type: 'string' } },
43
+ modifiedFiles: { type: 'array', items: { type: 'string' } },
44
+ risks: { type: 'array', items: { type: 'string' } },
45
+ },
46
+ required: ['approach', 'components', 'dataFlow', 'newFiles', 'modifiedFiles', 'risks'],
47
+ };
49
48
 
50
- const STORIES_SCHEMA = {
51
- type: 'object',
52
- properties: {
53
- stories: {
54
- type: 'array',
55
- items: {
56
- type: 'object',
57
- properties: {
58
- id: { type: 'string' },
59
- title: { type: 'string' },
60
- asA: { type: 'string' },
61
- iWant: { type: 'string' },
62
- soThat: { type: 'string' },
63
- acceptanceCriteria: { type: 'array', items: { type: 'string' } },
64
- estimate: { type: 'string' },
65
- },
66
- required: ['id', 'title', 'asA', 'iWant', 'soThat', 'acceptanceCriteria', 'estimate'],
49
+ const STORIES_SCHEMA = {
50
+ type: 'object',
51
+ properties: {
52
+ stories: {
53
+ type: 'array',
54
+ items: {
55
+ type: 'object',
56
+ properties: {
57
+ id: { type: 'string' },
58
+ title: { type: 'string' },
59
+ asA: { type: 'string' },
60
+ iWant: { type: 'string' },
61
+ soThat: { type: 'string' },
62
+ acceptanceCriteria: { type: 'array', items: { type: 'string' } },
63
+ estimate: { type: 'string' },
67
64
  },
65
+ required: ['id', 'title', 'asA', 'iWant', 'soThat', 'acceptanceCriteria', 'estimate'],
68
66
  },
69
67
  },
70
- required: ['stories'],
71
- };
68
+ },
69
+ required: ['stories'],
70
+ };
72
71
 
73
- const feature = args || 'No feature described — pass your feature description as args.';
72
+ const feature = args || 'No feature described — pass your feature description as args.';
74
73
 
75
- phase('Brief');
76
- log(`Feature: ${feature.slice(0, 60)}`);
77
- const brief = await agent(
78
- `Create a feature brief for: "${feature}". Clarify the core problem, target users, measurable success criteria, and explicit out-of-scope items.`,
79
- { schema: BRIEF_SCHEMA, label: 'brief' }
80
- );
74
+ phase('Brief');
75
+ log(`Feature: ${feature.slice(0, 60)}`);
76
+ const brief = await agent(
77
+ `Create a feature brief for: "${feature}". Clarify the core problem, target users, measurable success criteria, and explicit out-of-scope items.`,
78
+ { schema: BRIEF_SCHEMA, label: 'brief' }
79
+ );
81
80
 
82
- phase('PRD');
83
- const briefText = `Feature: ${brief.featureName}\nProblem: ${brief.problem}\nUsers: ${brief.targetUsers}\nSuccess: ${brief.successCriteria.join(', ')}`;
84
- const prd = await agent(
85
- `Write a product requirements document for this feature:\n${briefText}\n\nInclude functional requirements (must/should/could), non-functional requirements, and acceptance criteria.`,
86
- { schema: PRD_SCHEMA, label: 'prd' }
87
- );
81
+ phase('PRD');
82
+ const briefText = `Feature: ${brief.featureName}\nProblem: ${brief.problem}\nUsers: ${brief.targetUsers}\nSuccess: ${brief.successCriteria.join(', ')}`;
83
+ const prd = await agent(
84
+ `Write a product requirements document for this feature:\n${briefText}\n\nInclude functional requirements (must/should/could), non-functional requirements, and acceptance criteria.`,
85
+ { schema: PRD_SCHEMA, label: 'prd' }
86
+ );
88
87
 
89
- phase('Architecture');
90
- const reqSummary = prd.requirements.slice(0, 8).map(r => `${r.id} [${r.priority}]: ${r.description}`).join('\n');
91
- const arch = await agent(
92
- `Design the technical architecture for this feature:\nBrief: ${briefText}\nRequirements:\n${reqSummary}\n\nIdentify the implementation approach, components, data flow, files to create/modify, and key risks.`,
93
- { schema: ARCH_SCHEMA, label: 'architecture' }
94
- );
88
+ phase('Architecture');
89
+ const reqSummary = prd.requirements.slice(0, 8).map(r => `${r.id} [${r.priority}]: ${r.description}`).join('\n');
90
+ const arch = await agent(
91
+ `Design the technical architecture for this feature:\nBrief: ${briefText}\nRequirements:\n${reqSummary}\n\nIdentify the implementation approach, components, data flow, files to create/modify, and key risks.`,
92
+ { schema: ARCH_SCHEMA, label: 'architecture' }
93
+ );
95
94
 
96
- phase('Stories');
97
- const archSummary = `Approach: ${arch.approach}\nNew files: ${arch.newFiles.join(', ')}\nModified: ${arch.modifiedFiles.join(', ')}`;
98
- const stories = await agent(
99
- `Break this feature into user stories:\nBrief: ${briefText}\nArchitecture: ${archSummary}\n\nWrite stories in "As a [user], I want [goal], so that [benefit]" format with acceptance criteria and t-shirt size estimates (XS/S/M/L/XL).`,
100
- { schema: STORIES_SCHEMA, label: 'stories' }
101
- );
95
+ phase('Stories');
96
+ const archSummary = `Approach: ${arch.approach}\nNew files: ${arch.newFiles.join(', ')}\nModified: ${arch.modifiedFiles.join(', ')}`;
97
+ const stories = await agent(
98
+ `Break this feature into user stories:\nBrief: ${briefText}\nArchitecture: ${archSummary}\n\nWrite stories in "As a [user], I want [goal], so that [benefit]" format with acceptance criteria and t-shirt size estimates (XS/S/M/L/XL).`,
99
+ { schema: STORIES_SCHEMA, label: 'stories' }
100
+ );
102
101
 
103
- return { feature, brief, prd, architecture: arch, stories: stories.stories };
104
- }
102
+ return { feature, brief, prd, architecture: arch, stories: stories.stories };