@zhixuan92/multi-model-agent-core 4.0.3 → 4.0.4

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 (122) hide show
  1. package/README.md +11 -9
  2. package/dist/intake/brief-compiler-slots/delegate.d.ts.map +1 -1
  3. package/dist/intake/brief-compiler-slots/delegate.js +8 -1
  4. package/dist/intake/brief-compiler-slots/delegate.js.map +1 -1
  5. package/dist/lifecycle/diff-tracker.d.ts +72 -0
  6. package/dist/lifecycle/diff-tracker.d.ts.map +1 -0
  7. package/dist/lifecycle/diff-tracker.js +316 -0
  8. package/dist/lifecycle/diff-tracker.js.map +1 -0
  9. package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts +1 -1
  10. package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts.map +1 -1
  11. package/dist/lifecycle/handlers/prepare-execution-context-handler.js +23 -1
  12. package/dist/lifecycle/handlers/prepare-execution-context-handler.js.map +1 -1
  13. package/dist/lifecycle/handlers/quality-chain-handlers.d.ts.map +1 -1
  14. package/dist/lifecycle/handlers/quality-chain-handlers.js +57 -6
  15. package/dist/lifecycle/handlers/quality-chain-handlers.js.map +1 -1
  16. package/dist/lifecycle/handlers/review-diff-handler.d.ts.map +1 -1
  17. package/dist/lifecycle/handlers/review-diff-handler.js +38 -12
  18. package/dist/lifecycle/handlers/review-diff-handler.js.map +1 -1
  19. package/dist/lifecycle/handlers/spec-chain-handlers.d.ts.map +1 -1
  20. package/dist/lifecycle/handlers/spec-chain-handlers.js +38 -10
  21. package/dist/lifecycle/handlers/spec-chain-handlers.js.map +1 -1
  22. package/dist/lifecycle/merge-stage-stats.d.ts +27 -0
  23. package/dist/lifecycle/merge-stage-stats.d.ts.map +1 -1
  24. package/dist/lifecycle/merge-stage-stats.js +56 -0
  25. package/dist/lifecycle/merge-stage-stats.js.map +1 -1
  26. package/dist/lifecycle/stage-plan-types.d.ts +15 -0
  27. package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
  28. package/dist/providers/provider-factory.d.ts.map +1 -1
  29. package/dist/providers/provider-factory.js +6 -0
  30. package/dist/providers/provider-factory.js.map +1 -1
  31. package/dist/reporting/headline-templates/audit.d.ts.map +1 -1
  32. package/dist/reporting/headline-templates/audit.js +17 -8
  33. package/dist/reporting/headline-templates/audit.js.map +1 -1
  34. package/dist/reporting/headline-templates/debug.d.ts +22 -3
  35. package/dist/reporting/headline-templates/debug.d.ts.map +1 -1
  36. package/dist/reporting/headline-templates/debug.js +38 -8
  37. package/dist/reporting/headline-templates/debug.js.map +1 -1
  38. package/dist/reporting/headline-templates/delegate.d.ts.map +1 -1
  39. package/dist/reporting/headline-templates/delegate.js +14 -3
  40. package/dist/reporting/headline-templates/delegate.js.map +1 -1
  41. package/dist/reporting/headline-templates/execute-plan.d.ts.map +1 -1
  42. package/dist/reporting/headline-templates/execute-plan.js +17 -8
  43. package/dist/reporting/headline-templates/execute-plan.js.map +1 -1
  44. package/dist/reporting/headline-templates/review.d.ts.map +1 -1
  45. package/dist/reporting/headline-templates/review.js +23 -6
  46. package/dist/reporting/headline-templates/review.js.map +1 -1
  47. package/dist/reporting/headline-templates/verify.d.ts.map +1 -1
  48. package/dist/reporting/headline-templates/verify.js +23 -6
  49. package/dist/reporting/headline-templates/verify.js.map +1 -1
  50. package/dist/reporting/headline-text.d.ts +5 -0
  51. package/dist/reporting/headline-text.d.ts.map +1 -1
  52. package/dist/reporting/headline-text.js +36 -5
  53. package/dist/reporting/headline-text.js.map +1 -1
  54. package/dist/reporting/report-parser-slots/verify-report.d.ts +17 -0
  55. package/dist/reporting/report-parser-slots/verify-report.d.ts.map +1 -1
  56. package/dist/reporting/report-parser-slots/verify-report.js +45 -3
  57. package/dist/reporting/report-parser-slots/verify-report.js.map +1 -1
  58. package/dist/reporting/severity.d.ts +22 -0
  59. package/dist/reporting/severity.d.ts.map +1 -1
  60. package/dist/reporting/severity.js +36 -0
  61. package/dist/reporting/severity.js.map +1 -1
  62. package/dist/review/annotator-output-parser.d.ts.map +1 -1
  63. package/dist/review/annotator-output-parser.js +94 -14
  64. package/dist/review/annotator-output-parser.js.map +1 -1
  65. package/dist/review/annotator-prompt-builder.d.ts +20 -0
  66. package/dist/review/annotator-prompt-builder.d.ts.map +1 -1
  67. package/dist/review/annotator-prompt-builder.js +52 -1
  68. package/dist/review/annotator-prompt-builder.js.map +1 -1
  69. package/dist/review/reviewer-engine.d.ts +14 -0
  70. package/dist/review/reviewer-engine.d.ts.map +1 -1
  71. package/dist/review/reviewer-engine.js.map +1 -1
  72. package/dist/review/reviewer-output-parser.d.ts.map +1 -1
  73. package/dist/review/reviewer-output-parser.js +171 -16
  74. package/dist/review/reviewer-output-parser.js.map +1 -1
  75. package/dist/review/reviewer-prompt-builder.d.ts +4 -12
  76. package/dist/review/reviewer-prompt-builder.d.ts.map +1 -1
  77. package/dist/review/reviewer-prompt-builder.js.map +1 -1
  78. package/dist/review/templates/diff-review.d.ts +8 -0
  79. package/dist/review/templates/diff-review.d.ts.map +1 -1
  80. package/dist/review/templates/diff-review.js +34 -2
  81. package/dist/review/templates/diff-review.js.map +1 -1
  82. package/dist/review/templates/finding-criteria.d.ts +39 -0
  83. package/dist/review/templates/finding-criteria.d.ts.map +1 -0
  84. package/dist/review/templates/finding-criteria.js +80 -0
  85. package/dist/review/templates/finding-criteria.js.map +1 -0
  86. package/dist/review/templates/quality-review-artifact.d.ts +13 -0
  87. package/dist/review/templates/quality-review-artifact.d.ts.map +1 -1
  88. package/dist/review/templates/quality-review-artifact.js +41 -3
  89. package/dist/review/templates/quality-review-artifact.js.map +1 -1
  90. package/dist/review/templates/shared.d.ts +22 -5
  91. package/dist/review/templates/shared.d.ts.map +1 -1
  92. package/dist/review/templates/spec-review.d.ts +15 -0
  93. package/dist/review/templates/spec-review.d.ts.map +1 -1
  94. package/dist/review/templates/spec-review.js +43 -3
  95. package/dist/review/templates/spec-review.js.map +1 -1
  96. package/dist/tools/audit/tool-config.d.ts.map +1 -1
  97. package/dist/tools/audit/tool-config.js +23 -6
  98. package/dist/tools/audit/tool-config.js.map +1 -1
  99. package/dist/tools/debug/tool-config.d.ts.map +1 -1
  100. package/dist/tools/debug/tool-config.js +17 -4
  101. package/dist/tools/debug/tool-config.js.map +1 -1
  102. package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
  103. package/dist/tools/execute-plan/tool-config.js +5 -1
  104. package/dist/tools/execute-plan/tool-config.js.map +1 -1
  105. package/dist/tools/investigate/tool-config.d.ts +13 -1
  106. package/dist/tools/investigate/tool-config.d.ts.map +1 -1
  107. package/dist/tools/investigate/tool-config.js +34 -4
  108. package/dist/tools/investigate/tool-config.js.map +1 -1
  109. package/dist/tools/retry/tool-config.d.ts.map +1 -1
  110. package/dist/tools/retry/tool-config.js +27 -4
  111. package/dist/tools/retry/tool-config.js.map +1 -1
  112. package/dist/tools/review/tool-config.d.ts.map +1 -1
  113. package/dist/tools/review/tool-config.js +19 -4
  114. package/dist/tools/review/tool-config.js.map +1 -1
  115. package/dist/tools/verify/tool-config.d.ts.map +1 -1
  116. package/dist/tools/verify/tool-config.js +17 -4
  117. package/dist/tools/verify/tool-config.js.map +1 -1
  118. package/package.json +1 -1
  119. package/dist/intake/brief-compiler-slots/investigate.d.ts +0 -26
  120. package/dist/intake/brief-compiler-slots/investigate.d.ts.map +0 -1
  121. package/dist/intake/brief-compiler-slots/investigate.js +0 -42
  122. package/dist/intake/brief-compiler-slots/investigate.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"reviewer-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/review/reviewer-prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEnI,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,gBAAgB;gBALhB,SAAS,EAAE;QACjB,IAAI,EAAE,cAAc,CAAC;QACrB,YAAY,EAAE,cAAc,CAAC;QAC7B,IAAI,EAAE,cAAc,CAAC;KACtB,EACO,gBAAgB,GAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAM;IAGpF,SAAS,CAAC,GAAG,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAOrG,cAAc,CAAC,GAAG,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,kBAAkB,CAAA;KAAE,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAQtI,SAAS,CAAC,GAAG,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;CAMtG"}
1
+ {"version":3,"file":"reviewer-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/review/reviewer-prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnF,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEnI,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,gBAAgB;gBALhB,SAAS,EAAE;QACjB,IAAI,EAAE,cAAc,CAAC;QACrB,YAAY,EAAE,cAAc,CAAC;QAC7B,IAAI,EAAE,cAAc,CAAC;KACtB,EACO,gBAAgB,GAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAM;IAGpF,SAAS,CAAC,GAAG,EAAE,qBAAqB,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAOnF,cAAc,CAAC,GAAG,EAAE,qBAAqB,GAAG;QAAE,KAAK,CAAC,EAAE,kBAAkB,CAAA;KAAE,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAQzH,SAAS,CAAC,GAAG,EAAE,qBAAqB,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;CAMpF"}
@@ -1 +1 @@
1
- {"version":3,"file":"reviewer-prompt-builder.js","sourceRoot":"","sources":["../../src/review/reviewer-prompt-builder.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,qBAAqB;IAEtB;IAKA;IANV,YACU,SAIP,EACO,mBAAwE,EAAE;QAL1E,cAAS,GAAT,SAAS,CAIhB;QACO,qBAAgB,GAAhB,gBAAgB,CAA0D;IACjF,CAAC;IAEJ,SAAS,CAAC,GAA4C;QACpD,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY;YAC9C,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;SACrD,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,GAAwE;QACrF,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAC9G,OAAO;YACL,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,UAAU,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC;SAC1C,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,GAA4C;QACpD,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY;YAC9C,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;SACrD,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"reviewer-prompt-builder.js","sourceRoot":"","sources":["../../src/review/reviewer-prompt-builder.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,qBAAqB;IAEtB;IAKA;IANV,YACU,SAIP,EACO,mBAAwE,EAAE;QAL1E,cAAS,GAAT,SAAS,CAIhB;QACO,qBAAgB,GAAhB,gBAAgB,CAA0D;IACjF,CAAC;IAEJ,SAAS,CAAC,GAA0B;QAClC,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY;YAC9C,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;SACrD,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,GAA2D;QACxE,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAC9G,OAAO;YACL,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,UAAU,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC;SAC1C,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,GAA0B;QAClC,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY;YAC9C,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;SACrD,CAAC;IACJ,CAAC;CACF"}
@@ -1,3 +1,11 @@
1
1
  import type { ReviewTemplate } from './shared.js';
2
+ /**
3
+ * Diff reviewer — the final cross-check that looks at the cumulative
4
+ * diff in isolation and decides if it's acceptable as a whole.
5
+ *
6
+ * Tool sweep #6 fix: the template name was a misnomer pre-fix —
7
+ * the reviewer received only the worker's text summary, never the
8
+ * actual diff. Now it sees the diff (matches the name).
9
+ */
2
10
  export declare const diffTemplate: ReviewTemplate;
3
11
  //# sourceMappingURL=diff-review.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff-review.d.ts","sourceRoot":"","sources":["../../../src/review/templates/diff-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,YAAY,EAAE,cAK1B,CAAC"}
1
+ {"version":3,"file":"diff-review.d.ts","sourceRoot":"","sources":["../../../src/review/templates/diff-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,cAgC1B,CAAC"}
@@ -1,7 +1,39 @@
1
+ /**
2
+ * Diff reviewer — the final cross-check that looks at the cumulative
3
+ * diff in isolation and decides if it's acceptable as a whole.
4
+ *
5
+ * Tool sweep #6 fix: the template name was a misnomer pre-fix —
6
+ * the reviewer received only the worker's text summary, never the
7
+ * actual diff. Now it sees the diff (matches the name).
8
+ */
1
9
  export const diffTemplate = {
2
- systemPrompt: `You are reviewing a diff. Reply with EXACTLY one of: APPROVE, CONCERNS: <reasons>, or REJECT: <reason>`,
10
+ systemPrompt: [
11
+ 'You are reviewing the cumulative diff produced by all rework rounds. Decide whether the overall change is acceptable.',
12
+ '',
13
+ 'Reply with EXACTLY one of these single-line verdicts:',
14
+ '- `APPROVE` — the diff is acceptable as-is.',
15
+ '- `CONCERNS: <one-line summary of concerns>` — the diff has flaws but is on the right track.',
16
+ '- `REJECT: <one-line reason>` — the diff is wrong enough that it should not be applied.',
17
+ '',
18
+ 'Decision criteria:',
19
+ '- Is the diff scoped to what the brief asked for? Out-of-scope edits are a CONCERN at minimum.',
20
+ '- Are the changes internally consistent (e.g., a renamed symbol updated everywhere it appears in the diff)?',
21
+ '- Does the diff introduce obvious correctness or security issues that the spec/quality reviews missed?',
22
+ '',
23
+ 'Do NOT re-litigate the brief itself — that is the spec reviewer\'s job. Focus on the diff as a whole.',
24
+ ].join('\n'),
3
25
  buildUserPrompt(ctx) {
4
- return `Task: ${ctx.brief}\n\nWorker output:\n${ctx.workerOutput}`;
26
+ const parts = [];
27
+ parts.push(`# Task brief\n${ctx.brief}`);
28
+ parts.push(`# Worker's most recent summary\n${ctx.workerOutput || '(no summary)'}`);
29
+ if (ctx.diff && ctx.diff.length > 0) {
30
+ parts.push(`# Cumulative diff (what you are reviewing)\n\n\`\`\`diff\n${ctx.diff}\n\`\`\``);
31
+ }
32
+ else {
33
+ parts.push(`# Cumulative diff\n(no file changes detected — APPROVE only if the brief requested a no-op)`);
34
+ }
35
+ parts.push(`# Decide\nReply with one of APPROVE, CONCERNS: <text>, or REJECT: <text>.`);
36
+ return parts.join('\n\n');
5
37
  },
6
38
  };
7
39
  //# sourceMappingURL=diff-review.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff-review.js","sourceRoot":"","sources":["../../../src/review/templates/diff-review.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,YAAY,EAAE,wGAAwG;IACtH,eAAe,CAAC,GAAG;QACjB,OAAO,SAAS,GAAG,CAAC,KAAK,uBAAuB,GAAG,CAAC,YAAY,EAAE,CAAC;IACrE,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"diff-review.js","sourceRoot":"","sources":["../../../src/review/templates/diff-review.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,YAAY,EAAE;QACZ,uHAAuH;QACvH,EAAE;QACF,uDAAuD;QACvD,6CAA6C;QAC7C,8FAA8F;QAC9F,yFAAyF;QACzF,EAAE;QACF,oBAAoB;QACpB,gGAAgG;QAChG,6GAA6G;QAC7G,wGAAwG;QACxG,EAAE;QACF,uGAAuG;KACxG,CAAC,IAAI,CAAC,IAAI,CAAC;IAEZ,eAAe,CAAC,GAAG;QACjB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,mCAAmC,GAAG,CAAC,YAAY,IAAI,cAAc,EAAE,CAAC,CAAC;QAEpF,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,6DAA6D,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;QAC9F,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;QAC5G,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;QAExF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Shared finding-quality criteria — the single source of truth for what
3
+ * makes a "good finding" across the implementer + annotator stages.
4
+ *
5
+ * Tool sweep #12: the implementer prompts didn't share the annotator's
6
+ * rubric, so workers emitted weak narrative (miscalibrated severity,
7
+ * unsupported claims, speculative scope) and the annotator had to
8
+ * either downgrade everything or rubber-stamp. This module gives
9
+ * implementer prompts the SAME calibration the annotator uses, so the
10
+ * two stages converge:
11
+ *
12
+ * - Implementer is told what counts as evidence, what severity means,
13
+ * and what's out of scope BEFORE it writes findings.
14
+ * - Annotator validates the worker emitted them properly (its rubric
15
+ * in `annotator-shared.ts` references the same definitions).
16
+ *
17
+ * Result: fewer false positives, fewer missed criticals, less rework
18
+ * (the worker self-aligned with what the reviewer will check). No
19
+ * heuristic short-circuits — both stages run, they just spend less
20
+ * time correcting each other.
21
+ */
22
+ /** Severity ladder for read-only finding emission AND annotator
23
+ * validation. Same words, same meaning across stages. */
24
+ export declare const SEVERITY_LADDER: string;
25
+ /** Evidence-grounding rule. Required for every finding the worker
26
+ * emits. The annotator rejects findings without quotable evidence. */
27
+ export declare const EVIDENCE_GROUNDING: string;
28
+ /** Scope discipline. Workers commonly hallucinate citations into files
29
+ * they didn't open; this rule blocks the most common failure mode. */
30
+ export declare const SCOPE_DISCIPLINE: string;
31
+ /** What the annotator (which doubles as the read-only quality reviewer)
32
+ * will check the worker's output against. Pre-fix the worker had no
33
+ * visibility into this; now it can self-align. */
34
+ export declare const ANNOTATOR_CHECK_AWARENESS_RO: string;
35
+ /** Awareness block for delegate / execute-plan / retry implementers.
36
+ * Tells the worker what spec_review and quality_review will judge,
37
+ * so the worker self-aligns. */
38
+ export declare const REVIEWER_AWARENESS_AP: string;
39
+ //# sourceMappingURL=finding-criteria.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finding-criteria.d.ts","sourceRoot":"","sources":["../../../src/review/templates/finding-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;0DAC0D;AAC1D,eAAO,MAAM,eAAe,QAOhB,CAAC;AAEb;uEACuE;AACvE,eAAO,MAAM,kBAAkB,QAKnB,CAAC;AAEb;uEACuE;AACvE,eAAO,MAAM,gBAAgB,QAKjB,CAAC;AAEb;;mDAEmD;AACnD,eAAO,MAAM,4BAA4B,QAO7B,CAAC;AAEb;;iCAEiC;AACjC,eAAO,MAAM,qBAAqB,QAiBtB,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Shared finding-quality criteria — the single source of truth for what
3
+ * makes a "good finding" across the implementer + annotator stages.
4
+ *
5
+ * Tool sweep #12: the implementer prompts didn't share the annotator's
6
+ * rubric, so workers emitted weak narrative (miscalibrated severity,
7
+ * unsupported claims, speculative scope) and the annotator had to
8
+ * either downgrade everything or rubber-stamp. This module gives
9
+ * implementer prompts the SAME calibration the annotator uses, so the
10
+ * two stages converge:
11
+ *
12
+ * - Implementer is told what counts as evidence, what severity means,
13
+ * and what's out of scope BEFORE it writes findings.
14
+ * - Annotator validates the worker emitted them properly (its rubric
15
+ * in `annotator-shared.ts` references the same definitions).
16
+ *
17
+ * Result: fewer false positives, fewer missed criticals, less rework
18
+ * (the worker self-aligned with what the reviewer will check). No
19
+ * heuristic short-circuits — both stages run, they just spend less
20
+ * time correcting each other.
21
+ */
22
+ /** Severity ladder for read-only finding emission AND annotator
23
+ * validation. Same words, same meaning across stages. */
24
+ export const SEVERITY_LADDER = [
25
+ 'Severity (your judgment, calibrated to impact):',
26
+ '- critical: must fix first — RCE, data loss, auth bypass, build broken, data corruption.',
27
+ '- high: real bug or security gap; blocks release.',
28
+ '- medium: real issue; fix soon; not blocking.',
29
+ '- low: minor or cosmetic issue; nice-to-fix; PASS in checklist contexts.',
30
+ 'Calibrate to actual impact, not how alarming the wording sounds. Workers commonly inflate — resist the urge.',
31
+ ].join('\n');
32
+ /** Evidence-grounding rule. Required for every finding the worker
33
+ * emits. The annotator rejects findings without quotable evidence. */
34
+ export const EVIDENCE_GROUNDING = [
35
+ 'Evidence grounding (REQUIRED for every finding):',
36
+ '- Cite `file:line` (or `file:line-line` for a span) where the issue lives.',
37
+ '- Quote the exact code excerpt or command output that demonstrates the issue. Don\'t paraphrase — quote.',
38
+ '- If you cannot quote evidence directly, do NOT raise the finding. Note "investigation needed" in your summary instead.',
39
+ ].join('\n');
40
+ /** Scope discipline. Workers commonly hallucinate citations into files
41
+ * they didn't open; this rule blocks the most common failure mode. */
42
+ export const SCOPE_DISCIPLINE = [
43
+ 'Scope discipline:',
44
+ '- Only flag issues you verified by reading the file directly.',
45
+ '- If a claim depends on caller behavior or files outside the requested scope, mark "investigation needed" in your summary — do NOT speculate.',
46
+ '- Stay within the requested files. Don\'t audit dependencies you weren\'t asked about.',
47
+ ].join('\n');
48
+ /** What the annotator (which doubles as the read-only quality reviewer)
49
+ * will check the worker's output against. Pre-fix the worker had no
50
+ * visibility into this; now it can self-align. */
51
+ export const ANNOTATOR_CHECK_AWARENESS_RO = [
52
+ 'After your output, an annotator validates each finding against this rubric:',
53
+ '- Is the severity calibrated to actual impact (or did you inflate)?',
54
+ '- Does the evidence directly support the claim, or is it paraphrased?',
55
+ '- Is the finding within scope, or is it speculation about untouched files?',
56
+ '- Is the finding on-brief (matching the focus / audit type / checklist item)?',
57
+ 'Findings that fail any of these are downgraded or dropped. Self-check before emitting.',
58
+ ].join('\n');
59
+ /** Awareness block for delegate / execute-plan / retry implementers.
60
+ * Tells the worker what spec_review and quality_review will judge,
61
+ * so the worker self-aligns. */
62
+ export const REVIEWER_AWARENESS_AP = [
63
+ 'After your edit, two reviewers see the cumulative diff (every change since task start):',
64
+ '',
65
+ '1. SPEC reviewer — "does the diff fulfill the brief?"',
66
+ ' - APPROVED requires: every brief item present in the diff, no missing pieces, no out-of-scope edits.',
67
+ ' - CHANGES_REQUIRED requires: a concrete concern tied to a specific diff line.',
68
+ ' - Empty diff = changes_required UNLESS the brief explicitly requested a no-op.',
69
+ '',
70
+ '2. QUALITY reviewer — "is the diff sound, safe, maintainable?"',
71
+ ' - Flags: correctness bugs, broken tests, races, security gaps, speculative dependencies.',
72
+ ' - Does NOT flag: stylistic preferences, comment bikeshedding, unrelated pre-existing code.',
73
+ '',
74
+ 'Self-check before declaring done:',
75
+ '- Implemented EVERY item in the brief? (no gaps)',
76
+ '- No edits OUTSIDE the brief? (no scope creep)',
77
+ '- If your edit affects callers / tests not in your filePaths, note them in your summary — even if you can\'t update them.',
78
+ '- Are the changes minimal and verifiable, or could they be smaller?',
79
+ ].join('\n');
80
+ //# sourceMappingURL=finding-criteria.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finding-criteria.js","sourceRoot":"","sources":["../../../src/review/templates/finding-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;0DAC0D;AAC1D,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,iDAAiD;IACjD,0FAA0F;IAC1F,uDAAuD;IACvD,iDAAiD;IACjD,+EAA+E;IAC/E,8GAA8G;CAC/G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;uEACuE;AACvE,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,kDAAkD;IAClD,4EAA4E;IAC5E,0GAA0G;IAC1G,yHAAyH;CAC1H,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;uEACuE;AACvE,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,mBAAmB;IACnB,+DAA+D;IAC/D,+IAA+I;IAC/I,wFAAwF;CACzF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;mDAEmD;AACnD,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,6EAA6E;IAC7E,qEAAqE;IACrE,uEAAuE;IACvE,4EAA4E;IAC5E,+EAA+E;IAC/E,wFAAwF;CACzF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;iCAEiC;AACjC,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,yFAAyF;IACzF,EAAE;IACF,uDAAuD;IACvD,yGAAyG;IACzG,kFAAkF;IAClF,mFAAmF;IACnF,EAAE;IACF,gEAAgE;IAChE,6FAA6F;IAC7F,+FAA+F;IAC/F,EAAE;IACF,mCAAmC;IACnC,kDAAkD;IAClD,gDAAgD;IAChD,2HAA2H;IAC3H,qEAAqE;CACtE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
@@ -1,3 +1,16 @@
1
1
  import type { ReviewTemplate } from './shared.js';
2
+ /**
3
+ * Quality reviewer for artifact-producing routes (delegate, execute-plan,
4
+ * retry).
5
+ *
6
+ * Tool sweep #6: pre-fix this template only saw `Task: <brief>` +
7
+ * `Worker output: <text>`. Quality findings were rooted in the
8
+ * worker's prose claim — false positives ("the worker claimed X but
9
+ * didn't really") were common, and real regressions in the diff
10
+ * could be missed if the worker's summary glossed over them.
11
+ *
12
+ * Post-fix: reviewer sees the cumulative diff. Findings must be
13
+ * specific to diff lines.
14
+ */
2
15
  export declare const qualityAPTemplate: ReviewTemplate;
3
16
  //# sourceMappingURL=quality-review-artifact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"quality-review-artifact.d.ts","sourceRoot":"","sources":["../../../src/review/templates/quality-review-artifact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,iBAAiB,EAAE,cAM/B,CAAC"}
1
+ {"version":3,"file":"quality-review-artifact.d.ts","sourceRoot":"","sources":["../../../src/review/templates/quality-review-artifact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,EAAE,cAsC/B,CAAC"}
@@ -1,8 +1,46 @@
1
+ /**
2
+ * Quality reviewer for artifact-producing routes (delegate, execute-plan,
3
+ * retry).
4
+ *
5
+ * Tool sweep #6: pre-fix this template only saw `Task: <brief>` +
6
+ * `Worker output: <text>`. Quality findings were rooted in the
7
+ * worker's prose claim — false positives ("the worker claimed X but
8
+ * didn't really") were common, and real regressions in the diff
9
+ * could be missed if the worker's summary glossed over them.
10
+ *
11
+ * Post-fix: reviewer sees the cumulative diff. Findings must be
12
+ * specific to diff lines.
13
+ */
1
14
  export const qualityAPTemplate = {
2
- systemPrompt: `You are a code quality reviewer. Check whether the implementation is sound, safe, and maintainable.
3
- Return a JSON block with: {"verdict":"approved"|"concerns","concerns":["concern1",...]}`,
15
+ systemPrompt: [
16
+ 'You are a code quality reviewer. Check whether the cumulative diff is sound, safe, and maintainable.',
17
+ '',
18
+ 'Reply with a JSON block: {"verdict":"approved"|"concerns","concerns":["..."]}.',
19
+ '',
20
+ 'Verdict rules:',
21
+ '- "approved": the diff has no quality concerns worth blocking on. The "concerns" list MUST be empty.',
22
+ '- "concerns": cite at least one specific concern, each tied to a specific diff line. Do not raise stylistic preferences not relevant to correctness, safety, or maintainability.',
23
+ '- An empty diff is "approved" (nothing to review).',
24
+ '',
25
+ 'Examples of legitimate concerns: input not validated; resource not closed; race condition introduced; tests broken; new dependency introduced without justification.',
26
+ 'Examples of out-of-scope concerns: bracket placement; comment punctuation; unrelated pre-existing code.',
27
+ ].join('\n'),
4
28
  buildUserPrompt(ctx) {
5
- return `Task: ${ctx.brief}\n\nWorker output:\n${ctx.workerOutput}`;
29
+ const parts = [];
30
+ parts.push(`# Task brief\n${ctx.brief}`);
31
+ if (ctx.priorConcerns && ctx.priorConcerns.length > 0) {
32
+ parts.push(`# Prior reviewer concerns from earlier rounds in this chain\nVerify the rework has addressed each one:\n` +
33
+ ctx.priorConcerns.map((c, i) => `${i + 1}. ${c}`).join('\n'));
34
+ }
35
+ parts.push(`# Worker's most recent summary\n${ctx.workerOutput || '(no summary)'}`);
36
+ if (ctx.diff && ctx.diff.length > 0) {
37
+ parts.push(`# Cumulative diff (the truth of what changed)\n\n\`\`\`diff\n${ctx.diff}\n\`\`\``);
38
+ }
39
+ else {
40
+ parts.push(`# Cumulative diff\n(no file changes detected — verdict should be "approved")`);
41
+ }
42
+ parts.push(`# Decide\nIs the cumulative diff sound, safe, and maintainable? Reply with the JSON block specified in the system prompt.`);
43
+ return parts.join('\n\n');
6
44
  },
7
45
  };
8
46
  //# sourceMappingURL=quality-review-artifact.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"quality-review-artifact.js","sourceRoot":"","sources":["../../../src/review/templates/quality-review-artifact.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAmB;IAC/C,YAAY,EAAE;wFACwE;IACtF,eAAe,CAAC,GAAG;QACjB,OAAO,SAAS,GAAG,CAAC,KAAK,uBAAuB,GAAG,CAAC,YAAY,EAAE,CAAC;IACrE,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"quality-review-artifact.js","sourceRoot":"","sources":["../../../src/review/templates/quality-review-artifact.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAmB;IAC/C,YAAY,EAAE;QACZ,sGAAsG;QACtG,EAAE;QACF,gFAAgF;QAChF,EAAE;QACF,gBAAgB;QAChB,sGAAsG;QACtG,kLAAkL;QAClL,oDAAoD;QACpD,EAAE;QACF,sKAAsK;QACtK,yGAAyG;KAC1G,CAAC,IAAI,CAAC,IAAI,CAAC;IAEZ,eAAe,CAAC,GAAG;QACjB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QAEzC,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CACR,0GAA0G;gBAC1G,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7D,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,mCAAmC,GAAG,CAAC,YAAY,IAAI,cAAc,EAAE,CAAC,CAAC;QAEpF,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,gEAAgE,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;QACjG,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAC7F,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,2HAA2H,CAAC,CAAC;QAExI,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC"}
@@ -1,9 +1,26 @@
1
+ export interface ReviewTemplateContext {
2
+ workerOutput: string;
3
+ brief: string;
4
+ filesChanged?: string[];
5
+ /**
6
+ * Cumulative unified diff of every change made since task start,
7
+ * across all rework rounds. Empty/undefined when no changes were
8
+ * detected (or the route is read-only).
9
+ *
10
+ * Tool sweep #6: reviewer templates were operating blind on the
11
+ * worker's text claim alone. Passing the diff lets each reviewer
12
+ * be precise — verdicts are grounded in code evidence, not prose.
13
+ */
14
+ diff?: string;
15
+ /**
16
+ * Concrete concerns from previous reviewer rounds in this chain.
17
+ * Round 1 sees an empty list; round 2+ sees what round 1 flagged
18
+ * so it can verify "did the rework address X" rather than re-deriving.
19
+ */
20
+ priorConcerns?: string[];
21
+ }
1
22
  export interface ReviewTemplate {
2
23
  systemPrompt: string;
3
- buildUserPrompt(ctx: {
4
- workerOutput: string;
5
- brief: string;
6
- filesChanged?: string[];
7
- }): string;
24
+ buildUserPrompt(ctx: ReviewTemplateContext): string;
8
25
  }
9
26
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/review/templates/shared.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,GAAG,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,MAAM,CAAC;CAChG"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/review/templates/shared.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,GAAG,EAAE,qBAAqB,GAAG,MAAM,CAAC;CACrD"}
@@ -1,3 +1,18 @@
1
1
  import type { ReviewTemplate } from './shared.js';
2
+ /**
3
+ * Spec compliance reviewer.
4
+ *
5
+ * Tool sweep #6 rewrite: pre-fix this template gave the LLM only
6
+ * `Task: <brief>` + `Worker output: <text>`. The reviewer was
7
+ * reviewing the worker's CLAIM, not the worker's WORK — it had no
8
+ * way to verify whether the claim was true. Result: skeptical
9
+ * reviewers defaulted to "changes_required" and triggered endless
10
+ * rework spirals on already-correct edits.
11
+ *
12
+ * Post-fix: the reviewer also sees the cumulative diff (the truth)
13
+ * and any prior reviewer concerns it should verify are addressed.
14
+ * With evidence in hand, "changes_required" must point to a
15
+ * specific diff line — no more vague rejections.
16
+ */
2
17
  export declare const specTemplate: ReviewTemplate;
3
18
  //# sourceMappingURL=spec-review.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spec-review.d.ts","sourceRoot":"","sources":["../../../src/review/templates/spec-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,YAAY,EAAE,cAM1B,CAAC"}
1
+ {"version":3,"file":"spec-review.d.ts","sourceRoot":"","sources":["../../../src/review/templates/spec-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY,EAAE,cAsC1B,CAAC"}
@@ -1,8 +1,48 @@
1
+ /**
2
+ * Spec compliance reviewer.
3
+ *
4
+ * Tool sweep #6 rewrite: pre-fix this template gave the LLM only
5
+ * `Task: <brief>` + `Worker output: <text>`. The reviewer was
6
+ * reviewing the worker's CLAIM, not the worker's WORK — it had no
7
+ * way to verify whether the claim was true. Result: skeptical
8
+ * reviewers defaulted to "changes_required" and triggered endless
9
+ * rework spirals on already-correct edits.
10
+ *
11
+ * Post-fix: the reviewer also sees the cumulative diff (the truth)
12
+ * and any prior reviewer concerns it should verify are addressed.
13
+ * With evidence in hand, "changes_required" must point to a
14
+ * specific diff line — no more vague rejections.
15
+ */
1
16
  export const specTemplate = {
2
- systemPrompt: `You are a spec compliance reviewer. Check whether the implementer satisfied the task exactly.
3
- Return a JSON block with: {"verdict":"approved"|"changes_required","concerns":["concern1",...]}`,
17
+ systemPrompt: [
18
+ 'You are a spec compliance reviewer. Your job is to decide whether the cumulative diff fulfills the task brief — nothing else.',
19
+ '',
20
+ 'Reply with a JSON block: {"verdict":"approved"|"changes_required","concerns":["..."]}.',
21
+ '',
22
+ 'Verdict rules:',
23
+ '- "approved": the diff implements the brief, with no missing or wrong elements. The "concerns" list MUST be empty.',
24
+ '- "changes_required": cite at least one concrete concern, each tied to a specific diff line or a specific missing element from the brief. Do NOT use this verdict for stylistic preferences not in the brief.',
25
+ '- An empty diff (no files changed) is "changes_required" UNLESS the brief explicitly requested a no-op or "no change needed".',
26
+ '- A diff that fully satisfies the brief is "approved" even if you would have written it differently.',
27
+ '',
28
+ 'You do not see future rework rounds. Decide on this evidence alone.',
29
+ ].join('\n'),
4
30
  buildUserPrompt(ctx) {
5
- return `Task: ${ctx.brief}\n\nWorker output:\n${ctx.workerOutput}`;
31
+ const parts = [];
32
+ parts.push(`# Task brief\n${ctx.brief}`);
33
+ if (ctx.priorConcerns && ctx.priorConcerns.length > 0) {
34
+ parts.push(`# Prior reviewer concerns from earlier rounds in this chain\nVerify the rework has addressed each one:\n` +
35
+ ctx.priorConcerns.map((c, i) => `${i + 1}. ${c}`).join('\n'));
36
+ }
37
+ parts.push(`# Worker's most recent summary\n${ctx.workerOutput || '(no summary)'}`);
38
+ if (ctx.diff && ctx.diff.length > 0) {
39
+ parts.push(`# Cumulative diff (the truth of what changed)\n\n\`\`\`diff\n${ctx.diff}\n\`\`\``);
40
+ }
41
+ else {
42
+ parts.push(`# Cumulative diff\n(no file changes detected)`);
43
+ }
44
+ parts.push(`# Decide\nDoes the cumulative diff fulfill the task brief? Reply with the JSON block specified in the system prompt.`);
45
+ return parts.join('\n\n');
6
46
  },
7
47
  };
8
48
  //# sourceMappingURL=spec-review.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spec-review.js","sourceRoot":"","sources":["../../../src/review/templates/spec-review.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,YAAY,EAAE;gGACgF;IAC9F,eAAe,CAAC,GAAG;QACjB,OAAO,SAAS,GAAG,CAAC,KAAK,uBAAuB,GAAG,CAAC,YAAY,EAAE,CAAC;IACrE,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"spec-review.js","sourceRoot":"","sources":["../../../src/review/templates/spec-review.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,YAAY,EAAE;QACZ,+HAA+H;QAC/H,EAAE;QACF,wFAAwF;QACxF,EAAE;QACF,gBAAgB;QAChB,oHAAoH;QACpH,+MAA+M;QAC/M,+HAA+H;QAC/H,sGAAsG;QACtG,EAAE;QACF,qEAAqE;KACtE,CAAC,IAAI,CAAC,IAAI,CAAC;IAEZ,eAAe,CAAC,GAAG;QACjB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QAEzC,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CACR,0GAA0G;gBAC1G,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7D,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,mCAAmC,GAAG,CAAC,YAAY,IAAI,cAAc,EAAE,CAAC,CAAC;QAEpF,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,gEAAgE,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;QACjG,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC9D,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,sHAAsH,CAAC,CAAC;QAEnI,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAE1G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAIvE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYjE;AAID,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAkCD,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,EAAE,CA0B7D;AAsDD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,CAyBrE,CAAC"}
1
+ {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAE1G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAUvE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYjE;AAID,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAkCD,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,EAAE,CA0B7D;AAgED,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,CAyBrE,CAAC"}
@@ -3,6 +3,7 @@ import { qualityAuditTemplate } from '../../review/templates/quality-review-audi
3
3
  import { auditReportSchema } from '../../reporting/report-parser-slots/audit-report.js';
4
4
  import { auditHeadlineTemplate } from '../../reporting/headline-templates/audit.js';
5
5
  import { DEFAULT_TASK_TIMEOUT_MS } from '../../config/schema.js';
6
+ import { SEVERITY_LADDER, EVIDENCE_GROUNDING, SCOPE_DISCIPLINE, ANNOTATOR_CHECK_AWARENESS_RO, } from '../../review/templates/finding-criteria.js';
6
7
  export function registerAudit(registry) {
7
8
  registry.register({
8
9
  routeName: 'audit',
@@ -73,7 +74,7 @@ export function auditBriefSlot(input) {
73
74
  }];
74
75
  }
75
76
  const FINDING_FORMAT_INSTRUCTIONS = [
76
- 'Produce a narrative audit report. Use this EXACT per-finding format so the deterministic extractor can recover findings if the structured reviewer pass fails:',
77
+ 'Produce a narrative audit report. Use this EXACT per-finding format both the structured reviewer and the deterministic fallback extract from this same format:',
77
78
  '',
78
79
  '## Finding 1: <one-line title>',
79
80
  '- Severity: critical | high | medium | low',
@@ -88,7 +89,22 @@ const FINDING_FORMAT_INSTRUCTIONS = [
88
89
  'Rules:',
89
90
  '- Each finding heading MUST start with "## Finding N: " (h2, "Finding ", number, colon, title) — number sequentially from 1.',
90
91
  '- Severity / Location / Issue / Suggestion bullets are on their own lines with the labels exactly as shown.',
91
- '- Do NOT emit JSON. The structured reviewer extracts from this format; if that pass fails the deterministic fallback extracts from this same format — both produce identical structured output, so the format is the single source of truth.',
92
+ '- If you found no issues, say "No findings." in plain prose and emit zero `## Finding N:` blocks.',
93
+ '',
94
+ // Tool sweep #12: share the annotator's rubric with the implementer
95
+ // so the worker self-aligns with what the reviewer will check.
96
+ // Result: fewer downgraded findings, fewer missed criticals.
97
+ SEVERITY_LADDER,
98
+ '',
99
+ EVIDENCE_GROUNDING,
100
+ '',
101
+ SCOPE_DISCIPLINE,
102
+ '',
103
+ ANNOTATOR_CHECK_AWARENESS_RO,
104
+ ].join('\n');
105
+ const DELTA_AUDIT_INSTRUCTIONS = [
106
+ 'A prior audit report is provided in the context above. Verify which prior findings have been fixed.',
107
+ 'In your output: **omit** fixed findings; **include** still-present findings (mark "unfixed from prior audit"); **include** new findings; end with a **Fixed** summary line.',
92
108
  ].join('\n');
93
109
  function buildFilePathsPrompt(filePaths) {
94
110
  if (filePaths.length === 0)
@@ -107,12 +123,13 @@ function buildPrompt(brief) {
107
123
  if (fileSection)
108
124
  parts.push(fileSection);
109
125
  }
126
+ // Tool sweep #11: emit FINDING_FORMAT_INSTRUCTIONS unconditionally
127
+ // (pre-fix the DELTA branch dropped them, leaving the worker without
128
+ // a format spec → annotator could not parse delta-mode output).
110
129
  if (brief.hasContextBlocks) {
111
- parts.push('A prior audit report is provided as context above.', 'First, verify which prior findings have been fixed. Then perform a full audit as normal — do not skip areas or reduce thoroughness.', 'In your output:', '- **Omit** prior findings that have been fixed — do not re-report them.', '- **Include** prior findings that are still present (mark as "unfixed from prior audit").', '- **Include** any new findings not in the prior report.', '- End with a **Fixed** summary listing which prior findings were resolved.');
112
- }
113
- else {
114
- parts.push(FINDING_FORMAT_INSTRUCTIONS);
130
+ parts.push(DELTA_AUDIT_INSTRUCTIONS);
115
131
  }
132
+ parts.push(FINDING_FORMAT_INSTRUCTIONS);
116
133
  return parts.join('\n\n');
117
134
  }
118
135
  export const toolConfig = {
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/audit/tool-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/audit/tool-config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/debug/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAIjG,wBAAgB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYjE;AA0BD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAkCjE,CAAC"}
1
+ {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/debug/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAUjG,wBAAgB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYjE;AAoCD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAoCjE,CAAC"}
@@ -3,6 +3,7 @@ import { qualityDebugTemplate } from '../../review/reviewer-engine.js';
3
3
  import { debugBriefSlot } from '../../intake/brief-compiler-slots/debug.js';
4
4
  import { debugHeadlineTemplate } from '../../reporting/headline-templates/debug.js';
5
5
  import { DEFAULT_TASK_TIMEOUT_MS } from '../../config/schema.js';
6
+ import { SEVERITY_LADDER, EVIDENCE_GROUNDING, SCOPE_DISCIPLINE, ANNOTATOR_CHECK_AWARENESS_RO, } from '../../review/templates/finding-criteria.js';
6
7
  export function registerDebug(registry) {
7
8
  registry.register({
8
9
  routeName: 'debug',
@@ -17,13 +18,13 @@ export function registerDebug(registry) {
17
18
  });
18
19
  }
19
20
  const FINDING_FORMAT_INSTRUCTIONS = [
20
- 'Use hypothesis-driven debugging. Use this EXACT per-finding format so the deterministic extractor can recover findings if the structured reviewer pass fails:',
21
+ 'Use hypothesis-driven debugging. Use this EXACT per-finding format both the structured reviewer and the deterministic fallback extract from this same format:',
21
22
  '',
22
23
  '## Finding 1: <one-line title>',
23
24
  '- Severity: critical | high | medium | low',
24
25
  '- Hypothesis: the candidate cause',
25
26
  '- Evidence: trace, log, or code path with file:line',
26
- '- Fix: proposed change',
27
+ '- Fix: proposed change (PROPOSE only — do NOT apply the fix)',
27
28
  '',
28
29
  '## Finding 2: <one-line title>',
29
30
  '- Severity: ...',
@@ -32,7 +33,17 @@ const FINDING_FORMAT_INSTRUCTIONS = [
32
33
  'Rules:',
33
34
  '- Each finding heading MUST start with "## Finding N: " (h2, "Finding ", number, colon, title) — number sequentially from 1.',
34
35
  '- Severity / Hypothesis / Evidence / Fix bullets are on their own lines with the labels exactly as shown.',
35
- '- Do NOT emit JSON. Both the structured reviewer and the deterministic fallback extract from this same format — the format is the single source of truth.',
36
+ '- This is a read-only diagnostic do NOT edit any file. Propose fixes; the caller applies them.',
37
+ '- Limit yourself to 3-5 most-likely hypotheses. Do not enumerate implausible ones to pad the list.',
38
+ '',
39
+ // Tool sweep #12: shared rubric so worker self-aligns with the annotator.
40
+ SEVERITY_LADDER,
41
+ '',
42
+ EVIDENCE_GROUNDING,
43
+ '',
44
+ SCOPE_DISCIPLINE,
45
+ '',
46
+ ANNOTATOR_CHECK_AWARENESS_RO,
36
47
  ].join('\n');
37
48
  function buildFilePathsPrompt(filePaths) {
38
49
  if (!filePaths || filePaths.length === 0)
@@ -60,7 +71,7 @@ export const toolConfig = {
60
71
  agentType: 'complex',
61
72
  reviewPolicy: 'quality_only',
62
73
  briefQualityPolicy: 'off',
63
- done: 'Identify the root cause with evidence (file, line, mechanism). Propose a fix. Verify the fix resolves the problem.',
74
+ done: 'Identify the root cause with evidence (file, line, mechanism) and PROPOSE a fix. Do NOT apply the fix debug is a read-only diagnostic; the caller decides whether to apply.',
64
75
  tools: ctx.config.defaults?.tools ?? 'full',
65
76
  timeoutMs: ctx.config.defaults?.timeoutMs ?? DEFAULT_TASK_TIMEOUT_MS,
66
77
  maxCostUSD: ctx.config.defaults?.maxCostUSD ?? 10,
@@ -68,6 +79,8 @@ export const toolConfig = {
68
79
  cwd: ctx.projectContext?.cwd ?? ctx.cwd,
69
80
  contextBlockIds: brief.contextBlockIds,
70
81
  autoCommit: false,
82
+ filePaths: brief.filePaths && brief.filePaths.length > 0 ? brief.filePaths : undefined,
83
+ mainModel: ctx.mainModel ?? undefined,
71
84
  };
72
85
  },
73
86
  reportSchema: { parse: (_text) => { throw new Error('no structured report emitted by this executor'); } },
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/debug/tool-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/debug/tool-config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/execute-plan/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAMlF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAA4B,KAAK,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAKxH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;kBAOxB,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE1E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYvE;AAsCD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,oBAAoB,EAAE,oBAAoB,CA4B7E,CAAC"}
1
+ {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/execute-plan/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAMlF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAA4B,KAAK,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAMxH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;kBAOxB,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE1E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYvE;AA0CD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,oBAAoB,EAAE,oBAAoB,CA4B7E,CAAC"}