@winspan/claude-forge 8.37.0 → 8.38.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 (136) hide show
  1. package/dist/agents/definition.d.ts +8 -2
  2. package/dist/agents/definition.d.ts.map +1 -1
  3. package/dist/agents/definition.js.map +1 -1
  4. package/dist/agents/methodologies/agent-builder.d.ts +21 -0
  5. package/dist/agents/methodologies/agent-builder.d.ts.map +1 -0
  6. package/dist/agents/methodologies/agent-builder.js +102 -0
  7. package/dist/agents/methodologies/agent-builder.js.map +1 -0
  8. package/dist/agents/methodologies/phases/bmad/analyze.d.ts +3 -0
  9. package/dist/agents/methodologies/phases/bmad/analyze.d.ts.map +1 -0
  10. package/dist/agents/methodologies/phases/bmad/analyze.js +18 -0
  11. package/dist/agents/methodologies/phases/bmad/analyze.js.map +1 -0
  12. package/dist/agents/methodologies/phases/bmad/design.d.ts +3 -0
  13. package/dist/agents/methodologies/phases/bmad/design.d.ts.map +1 -0
  14. package/dist/agents/methodologies/phases/bmad/design.js +17 -0
  15. package/dist/agents/methodologies/phases/bmad/design.js.map +1 -0
  16. package/dist/agents/methodologies/phases/bmad/implement.d.ts +3 -0
  17. package/dist/agents/methodologies/phases/bmad/implement.d.ts.map +1 -0
  18. package/dist/agents/methodologies/phases/bmad/implement.js +16 -0
  19. package/dist/agents/methodologies/phases/bmad/implement.js.map +1 -0
  20. package/dist/agents/methodologies/phases/bmad/index.d.ts +6 -0
  21. package/dist/agents/methodologies/phases/bmad/index.d.ts.map +1 -0
  22. package/dist/agents/methodologies/phases/bmad/index.js +6 -0
  23. package/dist/agents/methodologies/phases/bmad/index.js.map +1 -0
  24. package/dist/agents/methodologies/phases/bmad/review.d.ts +3 -0
  25. package/dist/agents/methodologies/phases/bmad/review.d.ts.map +1 -0
  26. package/dist/agents/methodologies/phases/bmad/review.js +16 -0
  27. package/dist/agents/methodologies/phases/bmad/review.js.map +1 -0
  28. package/dist/agents/methodologies/phases/bmad/test.d.ts +3 -0
  29. package/dist/agents/methodologies/phases/bmad/test.d.ts.map +1 -0
  30. package/dist/agents/methodologies/phases/bmad/test.js +20 -0
  31. package/dist/agents/methodologies/phases/bmad/test.js.map +1 -0
  32. package/dist/agents/methodologies/phases/harness/fix.d.ts +3 -0
  33. package/dist/agents/methodologies/phases/harness/fix.d.ts.map +1 -0
  34. package/dist/agents/methodologies/phases/harness/fix.js +16 -0
  35. package/dist/agents/methodologies/phases/harness/fix.js.map +1 -0
  36. package/dist/agents/methodologies/phases/harness/index.d.ts +6 -0
  37. package/dist/agents/methodologies/phases/harness/index.d.ts.map +1 -0
  38. package/dist/agents/methodologies/phases/harness/index.js +6 -0
  39. package/dist/agents/methodologies/phases/harness/index.js.map +1 -0
  40. package/dist/agents/methodologies/phases/harness/reproduce.d.ts +3 -0
  41. package/dist/agents/methodologies/phases/harness/reproduce.d.ts.map +1 -0
  42. package/dist/agents/methodologies/phases/harness/reproduce.js +19 -0
  43. package/dist/agents/methodologies/phases/harness/reproduce.js.map +1 -0
  44. package/dist/agents/methodologies/phases/harness/root-cause.d.ts +3 -0
  45. package/dist/agents/methodologies/phases/harness/root-cause.d.ts.map +1 -0
  46. package/dist/agents/methodologies/phases/harness/root-cause.js +20 -0
  47. package/dist/agents/methodologies/phases/harness/root-cause.js.map +1 -0
  48. package/dist/agents/methodologies/phases/harness/safety-net.d.ts +3 -0
  49. package/dist/agents/methodologies/phases/harness/safety-net.d.ts.map +1 -0
  50. package/dist/agents/methodologies/phases/harness/safety-net.js +16 -0
  51. package/dist/agents/methodologies/phases/harness/safety-net.js.map +1 -0
  52. package/dist/agents/methodologies/phases/harness/verify.d.ts +3 -0
  53. package/dist/agents/methodologies/phases/harness/verify.d.ts.map +1 -0
  54. package/dist/agents/methodologies/phases/harness/verify.js +21 -0
  55. package/dist/agents/methodologies/phases/harness/verify.js.map +1 -0
  56. package/dist/agents/methodologies/presets.d.ts +10 -0
  57. package/dist/agents/methodologies/presets.d.ts.map +1 -0
  58. package/dist/agents/methodologies/presets.js +79 -0
  59. package/dist/agents/methodologies/presets.js.map +1 -0
  60. package/dist/agents/methodologies/types.d.ts +43 -0
  61. package/dist/agents/methodologies/types.d.ts.map +1 -0
  62. package/dist/agents/methodologies/types.js +10 -0
  63. package/dist/agents/methodologies/types.js.map +1 -0
  64. package/dist/agents/methodologies/user-config-loader.d.ts +30 -0
  65. package/dist/agents/methodologies/user-config-loader.d.ts.map +1 -0
  66. package/dist/agents/methodologies/user-config-loader.js +159 -0
  67. package/dist/agents/methodologies/user-config-loader.js.map +1 -0
  68. package/dist/agents/official-agents.d.ts.map +1 -1
  69. package/dist/agents/official-agents.js +3 -0
  70. package/dist/agents/official-agents.js.map +1 -1
  71. package/dist/agents/registry.d.ts +17 -4
  72. package/dist/agents/registry.d.ts.map +1 -1
  73. package/dist/agents/registry.js +58 -4
  74. package/dist/agents/registry.js.map +1 -1
  75. package/dist/cli/commands/agents.js +3 -3
  76. package/dist/cli/commands/agents.js.map +1 -1
  77. package/dist/cli/commands/mcp.d.ts +39 -3
  78. package/dist/cli/commands/mcp.d.ts.map +1 -1
  79. package/dist/cli/commands/mcp.js +87 -38
  80. package/dist/cli/commands/mcp.js.map +1 -1
  81. package/dist/core/storage/rows.d.ts +4 -0
  82. package/dist/core/storage/rows.d.ts.map +1 -1
  83. package/dist/core/storage/schema.sql +9 -0
  84. package/dist/core/storage/sqlite.d.ts +25 -0
  85. package/dist/core/storage/sqlite.d.ts.map +1 -1
  86. package/dist/core/storage/sqlite.js +89 -3
  87. package/dist/core/storage/sqlite.js.map +1 -1
  88. package/dist/engine/conventions/routing.yaml +160 -4
  89. package/dist/skills/tools/skill-invoke.d.ts +15 -0
  90. package/dist/skills/tools/skill-invoke.d.ts.map +1 -1
  91. package/dist/skills/tools/skill-invoke.js +29 -0
  92. package/dist/skills/tools/skill-invoke.js.map +1 -1
  93. package/dist/web/routes/workflows.d.ts +19 -0
  94. package/dist/web/routes/workflows.d.ts.map +1 -0
  95. package/dist/web/routes/workflows.js +86 -0
  96. package/dist/web/routes/workflows.js.map +1 -0
  97. package/dist/web/server.d.ts.map +1 -1
  98. package/dist/web/server.js +2 -0
  99. package/dist/web/server.js.map +1 -1
  100. package/dist/web/static/assets/{AIConfig-D4VglzCl.js → AIConfig-R5wZ3ZKT.js} +2 -2
  101. package/dist/web/static/assets/{AIConfig-D4VglzCl.js.map → AIConfig-R5wZ3ZKT.js.map} +1 -1
  102. package/dist/web/static/assets/{Agents-ne5lXc7V.js → Agents-Beg34V1g.js} +2 -2
  103. package/dist/web/static/assets/{Agents-ne5lXc7V.js.map → Agents-Beg34V1g.js.map} +1 -1
  104. package/dist/web/static/assets/{Dashboard-D4j0Zmek.js → Dashboard-Cy1xsj1J.js} +2 -2
  105. package/dist/web/static/assets/{Dashboard-D4j0Zmek.js.map → Dashboard-Cy1xsj1J.js.map} +1 -1
  106. package/dist/web/static/assets/{Drawer-Lo5ihVP-.js → Drawer-DcU3ln98.js} +2 -2
  107. package/dist/web/static/assets/{Drawer-Lo5ihVP-.js.map → Drawer-DcU3ln98.js.map} +1 -1
  108. package/dist/web/static/assets/{Events-DBJ1B7OW.js → Events-mFhXl4zI.js} +2 -2
  109. package/dist/web/static/assets/{Events-DBJ1B7OW.js.map → Events-mFhXl4zI.js.map} +1 -1
  110. package/dist/web/static/assets/{ExecutionTrace-Du9XADc1.js → ExecutionTrace-DG901hLR.js} +2 -2
  111. package/dist/web/static/assets/{ExecutionTrace-Du9XADc1.js.map → ExecutionTrace-DG901hLR.js.map} +1 -1
  112. package/dist/web/static/assets/{Routing-BNQ09OlH.js → Routing-B7BFLfjh.js} +2 -2
  113. package/dist/web/static/assets/{Routing-BNQ09OlH.js.map → Routing-B7BFLfjh.js.map} +1 -1
  114. package/dist/web/static/assets/{SessionDetail-BPrPyMNa.js → SessionDetail-BT0l4RrK.js} +2 -2
  115. package/dist/web/static/assets/{SessionDetail-BPrPyMNa.js.map → SessionDetail-BT0l4RrK.js.map} +1 -1
  116. package/dist/web/static/assets/{Sessions-o3EXsXz9.js → Sessions-C6J_HQ_u.js} +2 -2
  117. package/dist/web/static/assets/{Sessions-o3EXsXz9.js.map → Sessions-C6J_HQ_u.js.map} +1 -1
  118. package/dist/web/static/assets/{Skills-Czt5mkyc.js → Skills-4DQWLaTv.js} +2 -2
  119. package/dist/web/static/assets/{Skills-Czt5mkyc.js.map → Skills-4DQWLaTv.js.map} +1 -1
  120. package/dist/web/static/assets/WorkflowDetail-zhNqUkBE.js +2 -0
  121. package/dist/web/static/assets/WorkflowDetail-zhNqUkBE.js.map +1 -0
  122. package/dist/web/static/assets/Workflows-Btvi-lGw.js +2 -0
  123. package/dist/web/static/assets/Workflows-Btvi-lGw.js.map +1 -0
  124. package/dist/web/static/assets/{export-C0mlC4AT.js → export-BQQZLaHV.js} +2 -2
  125. package/dist/web/static/assets/{export-C0mlC4AT.js.map → export-BQQZLaHV.js.map} +1 -1
  126. package/dist/web/static/assets/index-Cgr9qMtq.js +3 -0
  127. package/dist/web/static/assets/index-Cgr9qMtq.js.map +1 -0
  128. package/dist/web/static/assets/index-CngWb5gC.css +1 -0
  129. package/dist/web/static/assets/{lucide-Bu44HVAM.js → lucide-53bR2rki.js} +46 -31
  130. package/dist/web/static/assets/lucide-53bR2rki.js.map +1 -0
  131. package/dist/web/static/index.html +3 -3
  132. package/package.json +1 -1
  133. package/dist/web/static/assets/index-B1J7nBu0.js +0 -3
  134. package/dist/web/static/assets/index-B1J7nBu0.js.map +0 -1
  135. package/dist/web/static/assets/index-BVqk4bSO.css +0 -1
  136. package/dist/web/static/assets/lucide-Bu44HVAM.js.map +0 -1
@@ -10,9 +10,15 @@
10
10
  */
11
11
  export type AgentCategory = 'core' | 'pipeline' | 'specialist' | 'quality' | 'research' | 'documentation' | 'workflow' | 'supplementary';
12
12
  /**
13
- * Source layer of an agent (resolution order: project > user > preset > builtin)
13
+ * Source layer of an agent (resolution order: project > user > user-methodology > preset > builtin)
14
+ *
15
+ * - 'builtin': embedded OFFICIAL_AGENTS (including 6 official methodology presets)
16
+ * - 'user-methodology': user-defined methodology compositions in ~/.claude-forge/methodologies.yaml
17
+ * - 'user': ~/.claude/agents/*.md files
18
+ * - 'project': <projectPath>/.claude/agents/*.md files
19
+ * - 'preset': agents shipped by external preset packages (Phase 3)
14
20
  */
15
- export type AgentSource = 'builtin' | 'user' | 'project' | 'preset';
21
+ export type AgentSource = 'builtin' | 'user' | 'project' | 'preset' | 'user-methodology';
16
22
  export interface AgentDefinition {
17
23
  /** Unique slug, used as subagent_type */
18
24
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/agents/definition.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,YAAY,GACZ,SAAS,GACT,UAAU,GACV,eAAe,GACf,UAAU,GACV,eAAe,CAAC;AAEpB;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,EAAE,aAAa,CAAC;IACxB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAchE"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/agents/definition.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,YAAY,GACZ,SAAS,GACT,UAAU,GACV,eAAe,GACf,UAAU,GACV,eAAe,CAAC;AAEpB;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,kBAAkB,CAAC;AAEzF,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,EAAE,aAAa,CAAC;IACxB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAchE"}
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/agents/definition.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA0DH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAoB;IACtD,MAAM,EAAE,GAAa;QACnB,KAAK;QACL,SAAS,GAAG,CAAC,IAAI,EAAE;QACnB,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QACjD,YAAY,GAAG,CAAC,OAAO,EAAE;QACzB,UAAU,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KACjC,CAAC;IACF,IAAI,GAAG,CAAC,KAAK;QAAE,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/agents/definition.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgEH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAoB;IACtD,MAAM,EAAE,GAAa;QACnB,KAAK;QACL,SAAS,GAAG,CAAC,IAAI,EAAE;QACnB,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QACjD,YAAY,GAAG,CAAC,OAAO,EAAE;QACzB,UAAU,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KACjC,CAAC;IACF,IAAI,GAAG,CAAC,KAAK;QAAE,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;AACjD,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Agent builder for methodology presets.
3
+ *
4
+ * Resolves a `MethodologyAgentPreset` (a list of phase ids) into a concrete
5
+ * `AgentDefinition`. The Agent's content/skills fields are derived from the
6
+ * referenced phase templates so that adding/replacing a phase only requires
7
+ * editing one file.
8
+ */
9
+ import type { AgentDefinition } from '../definition.js';
10
+ import type { PhaseTemplate, MethodologyAgentPreset } from './types.js';
11
+ export declare function getPhase(phaseId: string): PhaseTemplate | null;
12
+ export declare function getAllPhases(): PhaseTemplate[];
13
+ /**
14
+ * Expand a methodology preset into a concrete AgentDefinition.
15
+ *
16
+ * - `content` is built from the chained phase prompt bodies plus header/footer
17
+ * - `skills` aggregates non-null skillIds from each phase (de-duplicated)
18
+ * - `category` is fixed to 'specialist' (methodology agents are domain experts)
19
+ */
20
+ export declare function buildMethodologyAgent(preset: MethodologyAgentPreset): AgentDefinition;
21
+ //# sourceMappingURL=agent-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-builder.d.ts","sourceRoot":"","sources":["../../../src/agents/methodologies/agent-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAkBxE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAE9D;AAED,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAE9C;AAOD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,sBAAsB,GAAG,eAAe,CAiCrF"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Agent builder for methodology presets.
3
+ *
4
+ * Resolves a `MethodologyAgentPreset` (a list of phase ids) into a concrete
5
+ * `AgentDefinition`. The Agent's content/skills fields are derived from the
6
+ * referenced phase templates so that adding/replacing a phase only requires
7
+ * editing one file.
8
+ */
9
+ import * as bmadPhases from './phases/bmad/index.js';
10
+ import * as harnessPhases from './phases/harness/index.js';
11
+ /** Lookup table: `<workflow>/<phase>` → PhaseTemplate */
12
+ const ALL_PHASES = {
13
+ 'bmad/analyze': bmadPhases.BMAD_ANALYZE,
14
+ 'bmad/design': bmadPhases.BMAD_DESIGN,
15
+ 'bmad/implement': bmadPhases.BMAD_IMPLEMENT,
16
+ 'bmad/test': bmadPhases.BMAD_TEST,
17
+ 'bmad/review': bmadPhases.BMAD_REVIEW,
18
+ 'harness/reproduce': harnessPhases.HARNESS_REPRODUCE,
19
+ 'harness/safety-net': harnessPhases.HARNESS_SAFETY_NET,
20
+ 'harness/root-cause': harnessPhases.HARNESS_ROOT_CAUSE,
21
+ 'harness/fix': harnessPhases.HARNESS_FIX,
22
+ 'harness/verify': harnessPhases.HARNESS_VERIFY,
23
+ };
24
+ export function getPhase(phaseId) {
25
+ return ALL_PHASES[phaseId] ?? null;
26
+ }
27
+ export function getAllPhases() {
28
+ return Object.values(ALL_PHASES);
29
+ }
30
+ /**
31
+ * Expand a methodology preset into a concrete AgentDefinition.
32
+ *
33
+ * - `content` is built from the chained phase prompt bodies plus header/footer
34
+ * - `skills` aggregates non-null skillIds from each phase (de-duplicated)
35
+ * - `category` is fixed to 'specialist' (methodology agents are domain experts)
36
+ */
37
+ export function buildMethodologyAgent(preset) {
38
+ const resolved = preset.phases
39
+ .map((id) => {
40
+ const template = getPhase(id);
41
+ return template ? { id, template } : null;
42
+ })
43
+ .filter((entry) => entry !== null);
44
+ if (resolved.length === 0) {
45
+ throw new Error(`Agent preset ${preset.id} has no valid phases`);
46
+ }
47
+ const skills = Array.from(new Set(resolved
48
+ .map((p) => p.template.skillId)
49
+ .filter((s) => s !== null)));
50
+ const content = buildPromptContent(preset, resolved);
51
+ const category = 'specialist';
52
+ return {
53
+ name: preset.id,
54
+ description: preset.description,
55
+ category,
56
+ version: preset.version,
57
+ tools: preset.tools,
58
+ skills,
59
+ content,
60
+ };
61
+ }
62
+ function buildPromptContent(preset, phases) {
63
+ const workflowSet = new Set(phases.map((p) => p.template.workflow));
64
+ const workflowName = workflowSet.size === 1 ? [...workflowSet][0] : 'mixed';
65
+ const phaseIdsStr = phases.map((p) => p.template.id).join(' → ');
66
+ const tagsLine = preset.tags && preset.tags.length > 0
67
+ ? `\n## 标签\n${preset.tags.map((t) => `\`${t}\``).join(' ')}\n`
68
+ : '';
69
+ // 根据 workflow 选择 slug 占位符名,跟 phase body 内的约定保持一致:
70
+ // - bmad 系列 phase body 用 <feature-slug>
71
+ // - harness 系列 phase body 用 <bug-slug>
72
+ // 跨方法论(未来)或未知场景 fallback 到通用 <slug>
73
+ const slugPlaceholder = workflowName === 'harness' ? '<bug-slug>'
74
+ : workflowName === 'bmad' ? '<feature-slug>'
75
+ : '<slug>';
76
+ return `# ${preset.name}
77
+
78
+ ${preset.description}
79
+
80
+ ## 适用场景
81
+ ${preset.scenario}
82
+ ${tagsLine}
83
+ ## 工作流(${workflowName.toUpperCase()})
84
+
85
+ 推荐按以下 ${phases.length} 个 phase 顺序执行:**${phaseIdsStr}**
86
+
87
+ **软性建议**:根据任务实际复杂度灵活调整,可跳过明显不需要的 phase。但每次调用 \`skill_invoke\` 请在 reason 字段带 \`${workflowName}/<phase>[:${slugPlaceholder}]\` 格式,方便进度追踪。
88
+
89
+ ---
90
+
91
+ ${phases.map((p) => p.template.promptBody.trim()).join('\n\n---\n\n')}
92
+
93
+ ---
94
+
95
+ ## 完成标准
96
+
97
+ - 所有必要 phase 已走完
98
+ - 产物文件已生成(见各 phase 的 artifactHint)
99
+ - 向用户简要汇报完成的 phase 和产物路径
100
+ `;
101
+ }
102
+ //# sourceMappingURL=agent-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-builder.js","sourceRoot":"","sources":["../../../src/agents/methodologies/agent-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAC;AAE3D,yDAAyD;AACzD,MAAM,UAAU,GAAkC;IAChD,cAAc,EAAE,UAAU,CAAC,YAAY;IACvC,aAAa,EAAE,UAAU,CAAC,WAAW;IACrC,gBAAgB,EAAE,UAAU,CAAC,cAAc;IAC3C,WAAW,EAAE,UAAU,CAAC,SAAS;IACjC,aAAa,EAAE,UAAU,CAAC,WAAW;IACrC,mBAAmB,EAAE,aAAa,CAAC,iBAAiB;IACpD,oBAAoB,EAAE,aAAa,CAAC,kBAAkB;IACtD,oBAAoB,EAAE,aAAa,CAAC,kBAAkB;IACtD,aAAa,EAAE,aAAa,CAAC,WAAW;IACxC,gBAAgB,EAAE,aAAa,CAAC,cAAc;CAC/C,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAOD;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,MAAM,QAAQ,GAAoB,MAAM,CAAC,MAAM;SAC5C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACV,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,KAAK,EAA0B,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IAE7D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,EAAE,sBAAsB,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CACvB,IAAI,GAAG,CACL,QAAQ;SACL,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;SAC9B,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAC1C,CACF,CAAC;IAEF,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAkB,YAAY,CAAC;IAE7C,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,EAAE;QACf,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,QAAQ;QACR,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM;QACN,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,MAA8B,EAC9B,MAAuB;IAEvB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5E,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEjE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QACpD,CAAC,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;QAC9D,CAAC,CAAC,EAAE,CAAC;IAEP,kDAAkD;IAClD,wCAAwC;IACxC,uCAAuC;IACvC,oCAAoC;IACpC,MAAM,eAAe,GACnB,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY;QACzC,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB;YAC5C,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO,KAAK,MAAM,CAAC,IAAI;;EAEvB,MAAM,CAAC,WAAW;;;EAGlB,MAAM,CAAC,QAAQ;EACf,QAAQ;SACD,YAAY,CAAC,WAAW,EAAE;;QAE3B,MAAM,CAAC,MAAM,mBAAmB,WAAW;;gFAE6B,YAAY,aAAa,eAAe;;;;EAItH,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;;;;;;;;;CASpE,CAAC;AACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PhaseTemplate } from '../../types.js';
2
+ export declare const BMAD_ANALYZE: PhaseTemplate;
3
+ //# sourceMappingURL=analyze.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/bmad/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,YAAY,EAAE,aAgB1B,CAAC"}
@@ -0,0 +1,18 @@
1
+ export const BMAD_ANALYZE = {
2
+ id: 'analyze',
3
+ workflow: 'bmad',
4
+ title: '需求分析',
5
+ description: '拆解需求边界,识别成功标准与约束,产出《需求规格》',
6
+ skillId: 'official-spec-driven-design',
7
+ artifactHint: 'docs/specs/<feature-slug>.md',
8
+ promptBody: `### Phase: analyze(需求分析)
9
+
10
+ 1. 调用 \`skill_invoke({skill_id: "official-spec-driven-design", reason: "bmad/analyze:<feature-slug>"})\`
11
+ 2. 按方法论产出《需求规格》到 \`docs/specs/<feature-slug>.md\`,至少包含:
12
+ - 功能描述与用户价值
13
+ - 成功标准(验收条件)
14
+ - 约束(性能 / 兼容性 / 范围边界)
15
+ 3. 完成后向用户简述:"Phase analyze 完成,已产出 docs/specs/<feature-slug>.md"
16
+ `,
17
+ };
18
+ //# sourceMappingURL=analyze.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/bmad/analyze.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC,EAAE,EAAE,SAAS;IACb,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,2BAA2B;IACxC,OAAO,EAAE,6BAA6B;IACtC,YAAY,EAAE,8BAA8B;IAC5C,UAAU,EAAE;;;;;;;;CAQb;CACA,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PhaseTemplate } from '../../types.js';
2
+ export declare const BMAD_DESIGN: PhaseTemplate;
3
+ //# sourceMappingURL=design.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design.d.ts","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/bmad/design.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,WAAW,EAAE,aAezB,CAAC"}
@@ -0,0 +1,17 @@
1
+ export const BMAD_DESIGN = {
2
+ id: 'design',
3
+ workflow: 'bmad',
4
+ title: '架构设计',
5
+ description: '产出设计文档,包括数据模型 / API 契约 / 关键决策',
6
+ skillId: 'official-architecture-decision',
7
+ artifactHint: 'docs/design/<feature-slug>.md',
8
+ promptBody: `### Phase: design(架构设计)
9
+
10
+ 1. 调用 \`skill_invoke({skill_id: "official-architecture-decision", reason: "bmad/design:<feature-slug>"})\`
11
+ 2. 产出《设计文档》到 \`docs/design/<feature-slug>.md\`,包含:
12
+ - 数据模型 / API 契约
13
+ - 关键决策与权衡(ADR 风格)
14
+ 3. 完成后向用户简述:"Phase design 完成,已产出 docs/design/<feature-slug>.md"
15
+ `,
16
+ };
17
+ //# sourceMappingURL=design.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design.js","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/bmad/design.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,EAAE,EAAE,QAAQ;IACZ,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,+BAA+B;IAC5C,OAAO,EAAE,gCAAgC;IACzC,YAAY,EAAE,+BAA+B;IAC7C,UAAU,EAAE;;;;;;;CAOb;CACA,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PhaseTemplate } from '../../types.js';
2
+ export declare const BMAD_IMPLEMENT: PhaseTemplate;
3
+ //# sourceMappingURL=implement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implement.d.ts","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/bmad/implement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,cAAc,EAAE,aAc5B,CAAC"}
@@ -0,0 +1,16 @@
1
+ export const BMAD_IMPLEMENT = {
2
+ id: 'implement',
3
+ workflow: 'bmad',
4
+ title: '实现编码',
5
+ description: '按 TDD 流程编写代码 + 测试',
6
+ skillId: 'official-tdd',
7
+ artifactHint: 'src/...(源代码)+ tests/...(测试)',
8
+ promptBody: `### Phase: implement(实现编码)
9
+
10
+ 1. 调用 \`skill_invoke({skill_id: "official-tdd", reason: "bmad/implement:<feature-slug>"})\`
11
+ 2. 按 TDD 流程编写代码 + 测试
12
+ 3. 产物:源代码(\`src/...\`)+ 测试(\`tests/...\`)
13
+ 4. 完成后向用户简述:"Phase implement 完成,已新增/修改 N 个文件"
14
+ `,
15
+ };
16
+ //# sourceMappingURL=implement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implement.js","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/bmad/implement.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,EAAE,EAAE,WAAW;IACf,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,mBAAmB;IAChC,OAAO,EAAE,cAAc;IACvB,YAAY,EAAE,6BAA6B;IAC3C,UAAU,EAAE;;;;;;CAMb;CACA,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { BMAD_ANALYZE } from './analyze.js';
2
+ export { BMAD_DESIGN } from './design.js';
3
+ export { BMAD_IMPLEMENT } from './implement.js';
4
+ export { BMAD_TEST } from './test.js';
5
+ export { BMAD_REVIEW } from './review.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/bmad/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { BMAD_ANALYZE } from './analyze.js';
2
+ export { BMAD_DESIGN } from './design.js';
3
+ export { BMAD_IMPLEMENT } from './implement.js';
4
+ export { BMAD_TEST } from './test.js';
5
+ export { BMAD_REVIEW } from './review.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/bmad/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PhaseTemplate } from '../../types.js';
2
+ export declare const BMAD_REVIEW: PhaseTemplate;
3
+ //# sourceMappingURL=review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/bmad/review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,WAAW,EAAE,aAczB,CAAC"}
@@ -0,0 +1,16 @@
1
+ export const BMAD_REVIEW = {
2
+ id: 'review',
3
+ workflow: 'bmad',
4
+ title: '代码审核',
5
+ description: '自审代码 + 检查 git diff,产出审查清单',
6
+ skillId: 'official-pr-review',
7
+ artifactHint: 'docs/reviews/<feature-slug>.md',
8
+ promptBody: `### Phase: review(代码审核)
9
+
10
+ 1. 调用 \`skill_invoke({skill_id: "official-pr-review", reason: "bmad/review:<feature-slug>"})\`
11
+ 2. 自审代码 + 检查 \`git diff\`,按 PR Review 清单逐项核对
12
+ 3. 产出《审查清单》到 \`docs/reviews/<feature-slug>.md\`
13
+ 4. 完成后向用户简述:"Phase review 完成,已产出 docs/reviews/<feature-slug>.md"
14
+ `,
15
+ };
16
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/bmad/review.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,EAAE,EAAE,QAAQ;IACZ,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,2BAA2B;IACxC,OAAO,EAAE,oBAAoB;IAC7B,YAAY,EAAE,gCAAgC;IAC9C,UAAU,EAAE;;;;;;CAMb;CACA,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PhaseTemplate } from '../../types.js';
2
+ export declare const BMAD_TEST: PhaseTemplate;
3
+ //# sourceMappingURL=test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/bmad/test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,SAAS,EAAE,aAkBvB,CAAC"}
@@ -0,0 +1,20 @@
1
+ export const BMAD_TEST = {
2
+ id: 'test',
3
+ workflow: 'bmad',
4
+ title: '测试验证',
5
+ description: '运行测试套件并产出测试报告,失败则回到 implement 修正',
6
+ skillId: null,
7
+ artifactHint: 'docs/test-reports/<feature-slug>.md',
8
+ promptBody: `### Phase: test(测试验证)
9
+
10
+ 1. 运行测试套件(\`npm test\` 或项目对应命令)
11
+ 2. 产出《测试报告》到 \`docs/test-reports/<feature-slug>.md\`,记录:
12
+ - 通过 / 失败用例统计
13
+ - 失败用例的复现路径
14
+ 3. 如有失败,回到 Phase implement 修正后再次运行
15
+ 4. 全绿后向用户简述:"Phase test 完成,N 个测试通过"
16
+
17
+ > 提示:本 phase 不调用 skill_invoke,但保持 reason 命名空间一致(如出现内部追踪需要)。
18
+ `,
19
+ };
20
+ //# sourceMappingURL=test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/bmad/test.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAkB;IACtC,EAAE,EAAE,MAAM;IACV,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,kCAAkC;IAC/C,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,qCAAqC;IACnD,UAAU,EAAE;;;;;;;;;;CAUb;CACA,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PhaseTemplate } from '../../types.js';
2
+ export declare const HARNESS_FIX: PhaseTemplate;
3
+ //# sourceMappingURL=fix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/harness/fix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,WAAW,EAAE,aAczB,CAAC"}
@@ -0,0 +1,16 @@
1
+ export const HARNESS_FIX = {
2
+ id: 'fix',
3
+ workflow: 'harness',
4
+ title: '修复',
5
+ description: '在测试覆盖下修改代码,确保所有相关测试通过',
6
+ skillId: 'official-tdd',
7
+ artifactHint: 'src/...(修复代码)',
8
+ promptBody: `### Phase: fix(修复)
9
+
10
+ 1. 调用 \`skill_invoke({skill_id: "official-tdd", reason: "harness/fix:<bug-slug>"})\`
11
+ 2. 在测试覆盖下修改代码(先红后绿,确保新增测试能验证缺陷)
12
+ 3. 验证所有相关测试通过
13
+ 4. 完成后向用户简述:"Phase fix 完成,N 个测试通过"
14
+ `,
15
+ };
16
+ //# sourceMappingURL=fix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix.js","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/harness/fix.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,EAAE,EAAE,KAAK;IACT,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,IAAI;IACX,WAAW,EAAE,uBAAuB;IACpC,OAAO,EAAE,cAAc;IACvB,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE;;;;;;CAMb;CACA,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { HARNESS_REPRODUCE } from './reproduce.js';
2
+ export { HARNESS_SAFETY_NET } from './safety-net.js';
3
+ export { HARNESS_ROOT_CAUSE } from './root-cause.js';
4
+ export { HARNESS_FIX } from './fix.js';
5
+ export { HARNESS_VERIFY } from './verify.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/harness/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { HARNESS_REPRODUCE } from './reproduce.js';
2
+ export { HARNESS_SAFETY_NET } from './safety-net.js';
3
+ export { HARNESS_ROOT_CAUSE } from './root-cause.js';
4
+ export { HARNESS_FIX } from './fix.js';
5
+ export { HARNESS_VERIFY } from './verify.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/harness/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PhaseTemplate } from '../../types.js';
2
+ export declare const HARNESS_REPRODUCE: PhaseTemplate;
3
+ //# sourceMappingURL=reproduce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reproduce.d.ts","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/harness/reproduce.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,iBAAiB,EAAE,aAiB/B,CAAC"}
@@ -0,0 +1,19 @@
1
+ export const HARNESS_REPRODUCE = {
2
+ id: 'reproduce',
3
+ workflow: 'harness',
4
+ title: '现象复现',
5
+ description: '编写最小复现脚本,明确 bug 触发路径',
6
+ skillId: 'official-debug',
7
+ artifactHint: 'docs/investigations/<bug-slug>.md',
8
+ promptBody: `### Phase: reproduce(现象复现)
9
+
10
+ 1. 调用 \`skill_invoke({skill_id: "official-debug", reason: "harness/reproduce:<bug-slug>"})\`
11
+ 2. 编写最小复现脚本 / 测试用例
12
+ 3. 产出《问题诊断》到 \`docs/investigations/<bug-slug>.md\`,记录:
13
+ - 复现步骤
14
+ - 期望行为 vs 实际行为
15
+ - 触发条件(环境 / 数据 / 时序)
16
+ 4. 完成后向用户简述:"Phase reproduce 完成,已能稳定复现"
17
+ `,
18
+ };
19
+ //# sourceMappingURL=reproduce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reproduce.js","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/harness/reproduce.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAkB;IAC9C,EAAE,EAAE,WAAW;IACf,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,sBAAsB;IACnC,OAAO,EAAE,gBAAgB;IACzB,YAAY,EAAE,mCAAmC;IACjD,UAAU,EAAE;;;;;;;;;CASb;CACA,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PhaseTemplate } from '../../types.js';
2
+ export declare const HARNESS_ROOT_CAUSE: PhaseTemplate;
3
+ //# sourceMappingURL=root-cause.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-cause.d.ts","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/harness/root-cause.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,kBAAkB,EAAE,aAkBhC,CAAC"}
@@ -0,0 +1,20 @@
1
+ export const HARNESS_ROOT_CAUSE = {
2
+ id: 'root-cause',
3
+ workflow: 'harness',
4
+ title: '根因定位',
5
+ description: '通过测试和 git blame/log 定位真因,追加到诊断文档',
6
+ skillId: null,
7
+ artifactHint: 'docs/investigations/<bug-slug>.md(追加“根因”段落)',
8
+ promptBody: `### Phase: root-cause(根因定位)
9
+
10
+ 1. 通过测试和 \`git blame\` / \`git log\` 定位真因
11
+ 2. 在 \`docs/investigations/<bug-slug>.md\` 追加 **"根因"** 段落,包含:
12
+ - 缺陷点的代码位置(文件 + 行号)
13
+ - 引入此缺陷的 commit / PR
14
+ - 出错的具体逻辑路径
15
+ 3. 完成后向用户简述:"Phase root-cause 完成,根因已记录在诊断文档"
16
+
17
+ > 提示:本 phase 不调用 skill_invoke。需要时 reason 仍按 \`harness/root-cause[:<bug-slug>]\` 格式带元信息。
18
+ `,
19
+ };
20
+ //# sourceMappingURL=root-cause.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-cause.js","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/harness/root-cause.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAkB;IAC/C,EAAE,EAAE,YAAY;IAChB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,kCAAkC;IAC/C,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,6CAA6C;IAC3D,UAAU,EAAE;;;;;;;;;;CAUb;CACA,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PhaseTemplate } from '../../types.js';
2
+ export declare const HARNESS_SAFETY_NET: PhaseTemplate;
3
+ //# sourceMappingURL=safety-net.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety-net.d.ts","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/harness/safety-net.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,kBAAkB,EAAE,aAchC,CAAC"}
@@ -0,0 +1,16 @@
1
+ export const HARNESS_SAFETY_NET = {
2
+ id: 'safety-net',
3
+ workflow: 'harness',
4
+ title: '防护网构建',
5
+ description: '为受影响模块补特性测试(characterization test),锁定现有行为',
6
+ skillId: 'official-harness-engineering',
7
+ artifactHint: 'tests/...(新增特性测试)',
8
+ promptBody: `### Phase: safety-net(防护网构建)
9
+
10
+ 1. 调用 \`skill_invoke({skill_id: "official-harness-engineering", reason: "harness/safety-net:<bug-slug>"})\`
11
+ 2. 为受影响模块补**特性测试**(characterization test),锁定当前行为
12
+ 3. 产物:\`tests/\` 下新增测试文件
13
+ 4. 完成后向用户简述:"Phase safety-net 完成,已新增 N 个特性测试"
14
+ `,
15
+ };
16
+ //# sourceMappingURL=safety-net.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety-net.js","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/harness/safety-net.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAkB;IAC/C,EAAE,EAAE,YAAY;IAChB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,2CAA2C;IACxD,OAAO,EAAE,8BAA8B;IACvC,YAAY,EAAE,mBAAmB;IACjC,UAAU,EAAE;;;;;;CAMb;CACA,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PhaseTemplate } from '../../types.js';
2
+ export declare const HARNESS_VERIFY: PhaseTemplate;
3
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/harness/verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,cAAc,EAAE,aAmB5B,CAAC"}
@@ -0,0 +1,21 @@
1
+ export const HARNESS_VERIFY = {
2
+ id: 'verify',
3
+ workflow: 'harness',
4
+ title: '验证报告',
5
+ description: '完整跑测试套件并产出修复报告',
6
+ skillId: null,
7
+ artifactHint: 'docs/reviews/<bug-slug>.md',
8
+ promptBody: `### Phase: verify(验证报告)
9
+
10
+ 1. 完整跑测试套件(\`npm test\` 或项目对应命令)
11
+ 2. 产出《修复报告》到 \`docs/reviews/<bug-slug>.md\`,记录:
12
+ - 根因
13
+ - 修复点(文件 + 行号)
14
+ - 新增测试
15
+ - 回归测试结果
16
+ 3. 完成后向用户简述:"Phase verify 完成,已产出 docs/reviews/<bug-slug>.md"
17
+
18
+ > 提示:本 phase 不调用 skill_invoke。需要追踪时 reason 按 \`harness/verify[:<bug-slug>]\` 格式带元信息。
19
+ `,
20
+ };
21
+ //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../../../src/agents/methodologies/phases/harness/verify.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,EAAE,EAAE,QAAQ;IACZ,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,4BAA4B;IAC1C,UAAU,EAAE;;;;;;;;;;;CAWb;CACA,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { MethodologyAgentPreset } from './types.js';
2
+ /**
3
+ * MVP 预设:6 个方法论 Agent(BMAD 系列 3 个 + Harness 系列 3 个)。
4
+ *
5
+ * 每个 preset 通过 phase id 列表声明工作流;agent-builder 负责把它展开成
6
+ * 完整的 AgentDefinition。如需新增方法论 Agent,优先在此文件追加 preset,
7
+ * 而不是写新的 prompt 常量。
8
+ */
9
+ export declare const METHODOLOGY_PRESETS: MethodologyAgentPreset[];
10
+ //# sourceMappingURL=presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/agents/methodologies/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAIzD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,sBAAsB,EA2EvD,CAAC"}