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,147 +10,145 @@ export const meta = {
10
10
  ],
11
11
  };
12
12
 
13
- export default async function run({ agent, parallel, pipeline, phase, log, args, budget }) {
14
- const CHANGES_SCHEMA = {
15
- type: 'object',
16
- properties: {
17
- apiName: { type: 'string' },
18
- oldVersion: { type: 'string' },
19
- newVersion: { type: 'string' },
20
- breakingChanges: {
21
- type: 'array',
22
- items: {
23
- type: 'object',
24
- properties: {
25
- endpoint: { type: 'string' },
26
- changeType: { type: 'string', enum: ['removed-endpoint', 'renamed-field', 'changed-type', 'removed-field', 'changed-auth', 'changed-status-code', 'changed-behavior'] },
27
- description: { type: 'string' },
28
- impactedClients: { type: 'string' },
29
- },
30
- required: ['endpoint', 'changeType', 'description'],
13
+ const CHANGES_SCHEMA = {
14
+ type: 'object',
15
+ properties: {
16
+ apiName: { type: 'string' },
17
+ oldVersion: { type: 'string' },
18
+ newVersion: { type: 'string' },
19
+ breakingChanges: {
20
+ type: 'array',
21
+ items: {
22
+ type: 'object',
23
+ properties: {
24
+ endpoint: { type: 'string' },
25
+ changeType: { type: 'string', enum: ['removed-endpoint', 'renamed-field', 'changed-type', 'removed-field', 'changed-auth', 'changed-status-code', 'changed-behavior'] },
26
+ description: { type: 'string' },
27
+ impactedClients: { type: 'string' },
31
28
  },
29
+ required: ['endpoint', 'changeType', 'description'],
32
30
  },
33
- nonBreakingChanges: {
34
- type: 'array',
35
- items: {
36
- type: 'object',
37
- properties: {
38
- endpoint: { type: 'string' },
39
- changeType: { type: 'string', enum: ['added-endpoint', 'added-optional-field', 'added-header', 'performance-improvement', 'deprecation-notice'] },
40
- description: { type: 'string' },
41
- },
42
- required: ['endpoint', 'changeType', 'description'],
31
+ },
32
+ nonBreakingChanges: {
33
+ type: 'array',
34
+ items: {
35
+ type: 'object',
36
+ properties: {
37
+ endpoint: { type: 'string' },
38
+ changeType: { type: 'string', enum: ['added-endpoint', 'added-optional-field', 'added-header', 'performance-improvement', 'deprecation-notice'] },
39
+ description: { type: 'string' },
43
40
  },
41
+ required: ['endpoint', 'changeType', 'description'],
44
42
  },
45
43
  },
46
- required: ['apiName', 'breakingChanges', 'nonBreakingChanges'],
47
- };
44
+ },
45
+ required: ['apiName', 'breakingChanges', 'nonBreakingChanges'],
46
+ };
48
47
 
49
- const VERSIONING_SCHEMA = {
50
- type: 'object',
51
- properties: {
52
- strategy: { type: 'string', enum: ['url-versioning', 'header-versioning', 'semver-package', 'content-negotiation'] },
53
- rationale: { type: 'string' },
54
- versionIdentifier: { type: 'string' },
55
- deprecationPolicy: { type: 'string' },
56
- sunsetTimeline: { type: 'string' },
57
- },
58
- required: ['strategy', 'rationale', 'versionIdentifier', 'deprecationPolicy'],
59
- };
48
+ const VERSIONING_SCHEMA = {
49
+ type: 'object',
50
+ properties: {
51
+ strategy: { type: 'string', enum: ['url-versioning', 'header-versioning', 'semver-package', 'content-negotiation'] },
52
+ rationale: { type: 'string' },
53
+ versionIdentifier: { type: 'string' },
54
+ deprecationPolicy: { type: 'string' },
55
+ sunsetTimeline: { type: 'string' },
56
+ },
57
+ required: ['strategy', 'rationale', 'versionIdentifier', 'deprecationPolicy'],
58
+ };
60
59
 
61
- const GUIDE_SCHEMA = {
62
- type: 'object',
63
- properties: {
64
- summary: { type: 'string' },
65
- migrationSteps: {
66
- type: 'array',
67
- items: {
68
- type: 'object',
69
- properties: {
70
- step: { type: 'number' },
71
- title: { type: 'string' },
72
- description: { type: 'string' },
73
- codeExample: { type: 'string' },
74
- requiredBy: { type: 'string' },
75
- },
76
- required: ['step', 'title', 'description'],
60
+ const GUIDE_SCHEMA = {
61
+ type: 'object',
62
+ properties: {
63
+ summary: { type: 'string' },
64
+ migrationSteps: {
65
+ type: 'array',
66
+ items: {
67
+ type: 'object',
68
+ properties: {
69
+ step: { type: 'number' },
70
+ title: { type: 'string' },
71
+ description: { type: 'string' },
72
+ codeExample: { type: 'string' },
73
+ requiredBy: { type: 'string' },
77
74
  },
75
+ required: ['step', 'title', 'description'],
78
76
  },
79
- searchAndReplace: {
80
- type: 'array',
81
- items: {
82
- type: 'object',
83
- properties: {
84
- find: { type: 'string' },
85
- replaceWith: { type: 'string' },
86
- context: { type: 'string' },
87
- },
88
- required: ['find', 'replaceWith'],
77
+ },
78
+ searchAndReplace: {
79
+ type: 'array',
80
+ items: {
81
+ type: 'object',
82
+ properties: {
83
+ find: { type: 'string' },
84
+ replaceWith: { type: 'string' },
85
+ context: { type: 'string' },
89
86
  },
87
+ required: ['find', 'replaceWith'],
90
88
  },
91
89
  },
92
- required: ['summary', 'migrationSteps'],
93
- };
90
+ },
91
+ required: ['summary', 'migrationSteps'],
92
+ };
94
93
 
95
- const MATRIX_SCHEMA = {
96
- type: 'object',
97
- properties: {
98
- matrix: {
99
- type: 'array',
100
- items: {
101
- type: 'object',
102
- properties: {
103
- clientVersion: { type: 'string' },
104
- apiV1Compatible: { type: 'boolean' },
105
- apiV2Compatible: { type: 'boolean' },
106
- migrationRequired: { type: 'boolean' },
107
- notes: { type: 'string' },
108
- },
109
- required: ['clientVersion', 'apiV1Compatible', 'apiV2Compatible', 'migrationRequired'],
94
+ const MATRIX_SCHEMA = {
95
+ type: 'object',
96
+ properties: {
97
+ matrix: {
98
+ type: 'array',
99
+ items: {
100
+ type: 'object',
101
+ properties: {
102
+ clientVersion: { type: 'string' },
103
+ apiV1Compatible: { type: 'boolean' },
104
+ apiV2Compatible: { type: 'boolean' },
105
+ migrationRequired: { type: 'boolean' },
106
+ notes: { type: 'string' },
110
107
  },
108
+ required: ['clientVersion', 'apiV1Compatible', 'apiV2Compatible', 'migrationRequired'],
111
109
  },
112
- supportEndsDate: { type: 'string' },
113
- recommendation: { type: 'string' },
114
110
  },
115
- required: ['matrix', 'recommendation'],
116
- };
111
+ supportEndsDate: { type: 'string' },
112
+ recommendation: { type: 'string' },
113
+ },
114
+ required: ['matrix', 'recommendation'],
115
+ };
117
116
 
118
- const target = args || 'current API (provide old/new version paths or describe the changes in args)';
117
+ const target = args || 'current API (provide old/new version paths or describe the changes in args)';
119
118
 
120
- phase('Detect');
121
- log(`Detecting API changes in: ${target}`);
122
- const changes = await agent(
123
- `Analyze the API changes in: "${target}". Compare old vs new API versions. Classify each change as: BREAKING (removed endpoints, renamed/removed fields, changed types, auth changes, status code changes) or NON-BREAKING (added endpoints, added optional fields, performance improvements, deprecation notices). Include the old and new version identifiers.`,
124
- { schema: CHANGES_SCHEMA, label: 'detect-changes' }
125
- );
126
- if (!changes) { log('Warning: agent returned null for changes, skipping'); return { target, error: 'agent-null' }; }
127
- log(`API: ${changes.apiName} — ${changes.breakingChanges.length} breaking, ${changes.nonBreakingChanges.length} non-breaking changes`);
119
+ phase('Detect');
120
+ log(`Detecting API changes in: ${target}`);
121
+ const changes = await agent(
122
+ `Analyze the API changes in: "${target}". Compare old vs new API versions. Classify each change as: BREAKING (removed endpoints, renamed/removed fields, changed types, auth changes, status code changes) or NON-BREAKING (added endpoints, added optional fields, performance improvements, deprecation notices). Include the old and new version identifiers.`,
123
+ { schema: CHANGES_SCHEMA, label: 'detect-changes' }
124
+ );
125
+ if (!changes) { log('Warning: agent returned null for changes, skipping'); return { target, error: 'agent-null' }; }
126
+ log(`API: ${changes.apiName} — ${changes.breakingChanges.length} breaking, ${changes.nonBreakingChanges.length} non-breaking changes`);
128
127
 
129
- phase('Version');
130
- const breakingSummary = changes.breakingChanges.map(c => `${c.endpoint}: ${c.changeType} — ${c.description}`).join('\n');
131
- const versioning = await agent(
132
- `Propose a versioning strategy for: "${changes.apiName}" migrating from ${changes.oldVersion || 'v1'} to ${changes.newVersion || 'v2'}.\n\nBreaking changes:\n${breakingSummary}\n\nRecommend: URL versioning (/v1, /v2), header versioning (API-Version: 2), or semver package versioning. Include: rationale, deprecation policy, and sunset timeline for the old version.`,
133
- { schema: VERSIONING_SCHEMA, label: 'versioning' }
134
- );
135
- if (!versioning) { log('Warning: agent returned null for versioning, skipping'); return { target, changes, error: 'agent-null' }; }
136
- log(`Strategy: ${versioning.strategy} — sunset: ${versioning.sunsetTimeline}`);
128
+ phase('Version');
129
+ const breakingSummary = changes.breakingChanges.map(c => `${c.endpoint}: ${c.changeType} — ${c.description}`).join('\n');
130
+ const versioning = await agent(
131
+ `Propose a versioning strategy for: "${changes.apiName}" migrating from ${changes.oldVersion || 'v1'} to ${changes.newVersion || 'v2'}.\n\nBreaking changes:\n${breakingSummary}\n\nRecommend: URL versioning (/v1, /v2), header versioning (API-Version: 2), or semver package versioning. Include: rationale, deprecation policy, and sunset timeline for the old version.`,
132
+ { schema: VERSIONING_SCHEMA, label: 'versioning' }
133
+ );
134
+ if (!versioning) { log('Warning: agent returned null for versioning, skipping'); return { target, changes, error: 'agent-null' }; }
135
+ log(`Strategy: ${versioning.strategy} — sunset: ${versioning.sunsetTimeline}`);
137
136
 
138
- phase('Guide');
139
- const guide = await agent(
140
- `Write a migration guide for consumers of: "${changes.apiName}" upgrading from ${changes.oldVersion || 'v1'} to ${changes.newVersion || 'v2'}.\n\nBreaking changes:\n${breakingSummary}\n\nVersioning: ${versioning.strategy} (${versioning.versionIdentifier})\n\nProvide: (1) executive summary of what changed and why, (2) numbered migration steps in order, each with description and code example, (3) search-and-replace patterns for automated migration (what to find and replace in client code).`,
141
- { schema: GUIDE_SCHEMA, label: 'guide' }
142
- );
143
- if (!guide) { log('Warning: agent returned null for guide, skipping'); return { target, changes, versioning, error: 'agent-null' }; }
144
- log(`Migration guide: ${guide.migrationSteps.length} steps`);
137
+ phase('Guide');
138
+ const guide = await agent(
139
+ `Write a migration guide for consumers of: "${changes.apiName}" upgrading from ${changes.oldVersion || 'v1'} to ${changes.newVersion || 'v2'}.\n\nBreaking changes:\n${breakingSummary}\n\nVersioning: ${versioning.strategy} (${versioning.versionIdentifier})\n\nProvide: (1) executive summary of what changed and why, (2) numbered migration steps in order, each with description and code example, (3) search-and-replace patterns for automated migration (what to find and replace in client code).`,
140
+ { schema: GUIDE_SCHEMA, label: 'guide' }
141
+ );
142
+ if (!guide) { log('Warning: agent returned null for guide, skipping'); return { target, changes, versioning, error: 'agent-null' }; }
143
+ log(`Migration guide: ${guide.migrationSteps.length} steps`);
145
144
 
146
- phase('Matrix');
147
- const allChanges = [...changes.breakingChanges, ...changes.nonBreakingChanges];
148
- const changeSummary = allChanges.slice(0, 10).map(c => `${c.endpoint}: ${c.changeType}`).join(', ');
149
- const matrix = await agent(
150
- `Create a compatibility matrix for: "${changes.apiName}"\n\nChanges: ${changeSummary}\n\nVersioning: ${versioning.strategy}\nDeprecation policy: ${versioning.deprecationPolicy}\n\nFor typical client version groups (very-old, old, current, new), show compatibility with each API version and whether migration is required. Include support end date and overall recommendation.`,
151
- { schema: MATRIX_SCHEMA, label: 'matrix' }
152
- );
153
- if (!matrix) { return { target, changes, versioning, guide, error: 'matrix-agent-null' }; }
145
+ phase('Matrix');
146
+ const allChanges = [...changes.breakingChanges, ...changes.nonBreakingChanges];
147
+ const changeSummary = allChanges.slice(0, 10).map(c => `${c.endpoint}: ${c.changeType}`).join(', ');
148
+ const matrix = await agent(
149
+ `Create a compatibility matrix for: "${changes.apiName}"\n\nChanges: ${changeSummary}\n\nVersioning: ${versioning.strategy}\nDeprecation policy: ${versioning.deprecationPolicy}\n\nFor typical client version groups (very-old, old, current, new), show compatibility with each API version and whether migration is required. Include support end date and overall recommendation.`,
150
+ { schema: MATRIX_SCHEMA, label: 'matrix' }
151
+ );
152
+ if (!matrix) { return { target, changes, versioning, guide, error: 'matrix-agent-null' }; }
154
153
 
155
- return { target, changes, versioning, guide, matrix };
156
- }
154
+ return { target, changes, versioning, guide, matrix };
@@ -11,101 +11,99 @@ export const meta = {
11
11
  ],
12
12
  };
13
13
 
14
- export default async function run({ agent, parallel, pipeline, phase, log, args, budget }) {
15
- const MAP_SCHEMA = {
16
- type: 'object',
17
- properties: {
18
- components: { type: 'array', items: { type: 'object', properties: { name: { type: 'string' }, responsibility: { type: 'string' }, coupling: { type: 'string', enum: ['tight', 'loose', 'very-tight'] }, painPoints: { type: 'array', items: { type: 'string' } } }, required: ['name', 'responsibility', 'coupling'] } },
19
- primaryPainPoints: { type: 'array', items: { type: 'string' } },
20
- technicalDebt: { type: 'array', items: { type: 'string' } },
21
- },
22
- required: ['components', 'primaryPainPoints', 'technicalDebt'],
23
- };
14
+ const MAP_SCHEMA = {
15
+ type: 'object',
16
+ properties: {
17
+ components: { type: 'array', items: { type: 'object', properties: { name: { type: 'string' }, responsibility: { type: 'string' }, coupling: { type: 'string', enum: ['tight', 'loose', 'very-tight'] }, painPoints: { type: 'array', items: { type: 'string' } } }, required: ['name', 'responsibility', 'coupling'] } },
18
+ primaryPainPoints: { type: 'array', items: { type: 'string' } },
19
+ technicalDebt: { type: 'array', items: { type: 'string' } },
20
+ },
21
+ required: ['components', 'primaryPainPoints', 'technicalDebt'],
22
+ };
24
23
 
25
- const DESIGN_SCHEMA = {
26
- type: 'object',
27
- properties: {
28
- name: { type: 'string' },
29
- approach: { type: 'string' },
30
- components: { type: 'array', items: { type: 'string' } },
31
- pros: { type: 'array', items: { type: 'string' } },
32
- cons: { type: 'array', items: { type: 'string' } },
33
- migrationComplexity: { type: 'string', enum: ['low', 'medium', 'high', 'very-high'] },
34
- timeEstimate: { type: 'string' },
35
- },
36
- required: ['name', 'approach', 'pros', 'cons', 'migrationComplexity'],
37
- };
24
+ const DESIGN_SCHEMA = {
25
+ type: 'object',
26
+ properties: {
27
+ name: { type: 'string' },
28
+ approach: { type: 'string' },
29
+ components: { type: 'array', items: { type: 'string' } },
30
+ pros: { type: 'array', items: { type: 'string' } },
31
+ cons: { type: 'array', items: { type: 'string' } },
32
+ migrationComplexity: { type: 'string', enum: ['low', 'medium', 'high', 'very-high'] },
33
+ timeEstimate: { type: 'string' },
34
+ },
35
+ required: ['name', 'approach', 'pros', 'cons', 'migrationComplexity'],
36
+ };
38
37
 
39
- const VERDICT_SCHEMA = {
40
- type: 'object',
41
- properties: {
42
- winner: { type: 'string' },
43
- rationale: { type: 'string' },
44
- hybridAdjustments: { type: 'array', items: { type: 'string' } },
45
- targetArchDescription: { type: 'string' },
46
- },
47
- required: ['winner', 'rationale', 'targetArchDescription'],
48
- };
38
+ const VERDICT_SCHEMA = {
39
+ type: 'object',
40
+ properties: {
41
+ winner: { type: 'string' },
42
+ rationale: { type: 'string' },
43
+ hybridAdjustments: { type: 'array', items: { type: 'string' } },
44
+ targetArchDescription: { type: 'string' },
45
+ },
46
+ required: ['winner', 'rationale', 'targetArchDescription'],
47
+ };
49
48
 
50
- const ROADMAP_SCHEMA = {
51
- type: 'object',
52
- properties: {
53
- phases: {
54
- type: 'array',
55
- items: {
56
- type: 'object',
57
- properties: {
58
- phaseNum: { type: 'number' },
59
- name: { type: 'string' },
60
- work: { type: 'array', items: { type: 'string' } },
61
- riskGates: { type: 'array', items: { type: 'string' } },
62
- rollbackCheckpoint: { type: 'string' },
63
- durationWeeks: { type: 'number' },
64
- },
65
- required: ['phaseNum', 'name', 'work', 'riskGates', 'rollbackCheckpoint'],
49
+ const ROADMAP_SCHEMA = {
50
+ type: 'object',
51
+ properties: {
52
+ phases: {
53
+ type: 'array',
54
+ items: {
55
+ type: 'object',
56
+ properties: {
57
+ phaseNum: { type: 'number' },
58
+ name: { type: 'string' },
59
+ work: { type: 'array', items: { type: 'string' } },
60
+ riskGates: { type: 'array', items: { type: 'string' } },
61
+ rollbackCheckpoint: { type: 'string' },
62
+ durationWeeks: { type: 'number' },
66
63
  },
64
+ required: ['phaseNum', 'name', 'work', 'riskGates', 'rollbackCheckpoint'],
67
65
  },
68
- totalDurationWeeks: { type: 'number' },
69
- criticalDependencies: { type: 'array', items: { type: 'string' } },
70
66
  },
71
- required: ['phases', 'totalDurationWeeks'],
72
- };
67
+ totalDurationWeeks: { type: 'number' },
68
+ criticalDependencies: { type: 'array', items: { type: 'string' } },
69
+ },
70
+ required: ['phases', 'totalDurationWeeks'],
71
+ };
73
72
 
74
- const target = args || 'current codebase (describe your modernization goal in args)';
73
+ const target = args || 'current codebase (describe your modernization goal in args)';
75
74
 
76
- phase('Map');
77
- log(`Mapping current architecture for: ${target}`);
78
- const archMap = await agent(
79
- `Map the current architecture of: "${target}". Identify all major components, their responsibilities, coupling levels (tight/loose), and pain points. List the primary architectural pain points and technical debt items that motivate modernization.`,
80
- { schema: MAP_SCHEMA, label: 'arch-map' }
81
- );
82
- if (!archMap) { log('Warning: agent returned null for archMap, skipping'); return { target, error: 'agent-null' }; }
83
- log(`Found ${archMap.components.length} components, ${archMap.primaryPainPoints.length} pain points`);
75
+ phase('Map');
76
+ log(`Mapping current architecture for: ${target}`);
77
+ const archMap = await agent(
78
+ `Map the current architecture of: "${target}". Identify all major components, their responsibilities, coupling levels (tight/loose), and pain points. List the primary architectural pain points and technical debt items that motivate modernization.`,
79
+ { schema: MAP_SCHEMA, label: 'arch-map' }
80
+ );
81
+ if (!archMap) { log('Warning: agent returned null for archMap, skipping'); return { target, error: 'agent-null' }; }
82
+ log(`Found ${archMap.components.length} components, ${archMap.primaryPainPoints.length} pain points`);
84
83
 
85
- phase('Design');
86
- const mapContext = `Current architecture: ${archMap.components.map(c => `${c.name}(${c.coupling} coupling)`).join(', ')}\nPain points: ${archMap.primaryPainPoints.join(', ')}`;
87
- const designs = await parallel([
88
- () => agent(`Design a CONSERVATIVE modernization architecture for: "${target}". ${mapContext}. Propose incremental improvements with minimal disruption — strangler fig pattern, adapter layers, gradual extraction. Optimize for low migration risk.`, { schema: DESIGN_SCHEMA, label: 'design-conservative', phase: 'Design' }),
89
- () => agent(`Design an AGGRESSIVE modernization architecture for: "${target}". ${mapContext}. Propose a modern target state — microservices, event-driven, serverless, or modern monolith. Optimize for long-term maintainability.`, { schema: DESIGN_SCHEMA, label: 'design-aggressive', phase: 'Design' }),
90
- () => agent(`Design a PRAGMATIC modernization architecture for: "${target}". ${mapContext}. Balance risk vs benefit — modular monolith, domain-driven boundaries, selective extraction of high-value services. Optimize for team productivity.`, { schema: DESIGN_SCHEMA, label: 'design-pragmatic', phase: 'Design' }),
91
- ]);
84
+ phase('Design');
85
+ const mapContext = `Current architecture: ${archMap.components.map(c => `${c.name}(${c.coupling} coupling)`).join(', ')}\nPain points: ${archMap.primaryPainPoints.join(', ')}`;
86
+ const designs = await parallel([
87
+ () => agent(`Design a CONSERVATIVE modernization architecture for: "${target}". ${mapContext}. Propose incremental improvements with minimal disruption — strangler fig pattern, adapter layers, gradual extraction. Optimize for low migration risk.`, { schema: DESIGN_SCHEMA, label: 'design-conservative', phase: 'Design' }),
88
+ () => agent(`Design an AGGRESSIVE modernization architecture for: "${target}". ${mapContext}. Propose a modern target state — microservices, event-driven, serverless, or modern monolith. Optimize for long-term maintainability.`, { schema: DESIGN_SCHEMA, label: 'design-aggressive', phase: 'Design' }),
89
+ () => agent(`Design a PRAGMATIC modernization architecture for: "${target}". ${mapContext}. Balance risk vs benefit — modular monolith, domain-driven boundaries, selective extraction of high-value services. Optimize for team productivity.`, { schema: DESIGN_SCHEMA, label: 'design-pragmatic', phase: 'Design' }),
90
+ ]);
92
91
 
93
- phase('Select');
94
- const designsText = designs.filter(Boolean).map(d => `Option: ${d.name}\nApproach: ${d.approach}\nPros: ${d.pros.join(', ')}\nCons: ${d.cons.join(', ')}\nComplexity: ${d.migrationComplexity}\nTime: ${d.timeEstimate}`).join('\n\n');
95
- const verdict = await agent(
96
- `Select the best modernization architecture for: "${target}"\n\nThree options:\n${designsText}\n\nChoose the winner based on: migration risk, team capability, business continuity, long-term value. Suggest hybrid adjustments that take the best elements from runners-up. Describe the final target architecture.`,
97
- { schema: VERDICT_SCHEMA, label: 'design-select' }
98
- );
99
- if (!verdict) { log('Warning: agent returned null for verdict, skipping'); return { target, archMap, designs: designs.filter(Boolean), error: 'agent-null' }; }
100
- log(`Selected: ${verdict.winner} — ${verdict.rationale.slice(0, 80)}`);
92
+ phase('Select');
93
+ const designsText = designs.filter(Boolean).map(d => `Option: ${d.name}\nApproach: ${d.approach}\nPros: ${d.pros.join(', ')}\nCons: ${d.cons.join(', ')}\nComplexity: ${d.migrationComplexity}\nTime: ${d.timeEstimate}`).join('\n\n');
94
+ const verdict = await agent(
95
+ `Select the best modernization architecture for: "${target}"\n\nThree options:\n${designsText}\n\nChoose the winner based on: migration risk, team capability, business continuity, long-term value. Suggest hybrid adjustments that take the best elements from runners-up. Describe the final target architecture.`,
96
+ { schema: VERDICT_SCHEMA, label: 'design-select' }
97
+ );
98
+ if (!verdict) { log('Warning: agent returned null for verdict, skipping'); return { target, archMap, designs: designs.filter(Boolean), error: 'agent-null' }; }
99
+ log(`Selected: ${verdict.winner} — ${verdict.rationale.slice(0, 80)}`);
101
100
 
102
- phase('Roadmap');
103
- phase('Sequence');
104
- const roadmap = await agent(
105
- `Create a phased migration roadmap for: "${target}"\n\nTarget architecture: ${verdict.targetArchDescription}\n\nCurrent pain points: ${archMap.primaryPainPoints.join(', ')}\n\nSequence the work into migration phases with: specific work items, risk gates (conditions that must be true before proceeding), rollback checkpoints, and duration estimates. Ensure each phase is independently deployable.`,
106
- { schema: ROADMAP_SCHEMA, label: 'sequence' }
107
- );
108
- if (!roadmap) { return { target, archMap, designs: designs.filter(Boolean), verdict, error: 'roadmap-agent-null' }; }
101
+ phase('Roadmap');
102
+ phase('Sequence');
103
+ const roadmap = await agent(
104
+ `Create a phased migration roadmap for: "${target}"\n\nTarget architecture: ${verdict.targetArchDescription}\n\nCurrent pain points: ${archMap.primaryPainPoints.join(', ')}\n\nSequence the work into migration phases with: specific work items, risk gates (conditions that must be true before proceeding), rollback checkpoints, and duration estimates. Ensure each phase is independently deployable.`,
105
+ { schema: ROADMAP_SCHEMA, label: 'sequence' }
106
+ );
107
+ if (!roadmap) { return { target, archMap, designs: designs.filter(Boolean), verdict, error: 'roadmap-agent-null' }; }
109
108
 
110
- return { target, archMap, designs: designs.filter(Boolean), verdict, roadmap };
111
- }
109
+ return { target, archMap, designs: designs.filter(Boolean), verdict, roadmap };