@zhixuan92/multi-model-agent-core 4.0.6 → 4.1.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.
- package/dist/intake/brief-compiler-slots/delegate.d.ts +18 -0
- package/dist/intake/brief-compiler-slots/delegate.d.ts.map +1 -1
- package/dist/intake/brief-compiler-slots/delegate.js +36 -3
- package/dist/intake/brief-compiler-slots/delegate.js.map +1 -1
- package/dist/reporting/report-parser-slots/investigate-report.d.ts.map +1 -1
- package/dist/reporting/report-parser-slots/investigate-report.js +41 -2
- package/dist/reporting/report-parser-slots/investigate-report.js.map +1 -1
- package/dist/review/templates/annotator-audit.d.ts.map +1 -1
- package/dist/review/templates/annotator-audit.js +5 -3
- package/dist/review/templates/annotator-audit.js.map +1 -1
- package/dist/review/templates/annotator-debug.d.ts.map +1 -1
- package/dist/review/templates/annotator-debug.js +11 -7
- package/dist/review/templates/annotator-debug.js.map +1 -1
- package/dist/review/templates/annotator-investigate.d.ts.map +1 -1
- package/dist/review/templates/annotator-investigate.js +6 -3
- package/dist/review/templates/annotator-investigate.js.map +1 -1
- package/dist/review/templates/annotator-review.d.ts.map +1 -1
- package/dist/review/templates/annotator-review.js +13 -6
- package/dist/review/templates/annotator-review.js.map +1 -1
- package/dist/review/templates/annotator-verify.d.ts.map +1 -1
- package/dist/review/templates/annotator-verify.js +11 -5
- package/dist/review/templates/annotator-verify.js.map +1 -1
- package/dist/tools/audit/implementer-criteria.d.ts +55 -4
- package/dist/tools/audit/implementer-criteria.d.ts.map +1 -1
- package/dist/tools/audit/implementer-criteria.js +113 -11
- package/dist/tools/audit/implementer-criteria.js.map +1 -1
- package/dist/tools/audit/schema.d.ts +3 -10
- package/dist/tools/audit/schema.d.ts.map +1 -1
- package/dist/tools/audit/schema.js +3 -4
- package/dist/tools/audit/schema.js.map +1 -1
- package/dist/tools/audit/tool-config.d.ts.map +1 -1
- package/dist/tools/audit/tool-config.js +42 -21
- package/dist/tools/audit/tool-config.js.map +1 -1
- package/dist/tools/debug/implementer-criteria.d.ts +44 -4
- package/dist/tools/debug/implementer-criteria.d.ts.map +1 -1
- package/dist/tools/debug/implementer-criteria.js +105 -13
- package/dist/tools/debug/implementer-criteria.js.map +1 -1
- package/dist/tools/debug/tool-config.d.ts.map +1 -1
- package/dist/tools/debug/tool-config.js +22 -4
- package/dist/tools/debug/tool-config.js.map +1 -1
- package/dist/tools/delegate/implementer-criteria.d.ts +62 -0
- package/dist/tools/delegate/implementer-criteria.d.ts.map +1 -0
- package/dist/tools/delegate/implementer-criteria.js +114 -0
- package/dist/tools/delegate/implementer-criteria.js.map +1 -0
- package/dist/tools/execute-plan/implementer-criteria.d.ts +52 -0
- package/dist/tools/execute-plan/implementer-criteria.d.ts.map +1 -0
- package/dist/tools/execute-plan/implementer-criteria.js +104 -0
- package/dist/tools/execute-plan/implementer-criteria.js.map +1 -0
- package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
- package/dist/tools/execute-plan/tool-config.js +17 -3
- package/dist/tools/execute-plan/tool-config.js.map +1 -1
- package/dist/tools/investigate/implementer-criteria.d.ts +48 -5
- package/dist/tools/investigate/implementer-criteria.d.ts.map +1 -1
- package/dist/tools/investigate/implementer-criteria.js +103 -13
- package/dist/tools/investigate/implementer-criteria.js.map +1 -1
- package/dist/tools/investigate/tool-config.d.ts.map +1 -1
- package/dist/tools/investigate/tool-config.js +15 -8
- package/dist/tools/investigate/tool-config.js.map +1 -1
- package/dist/tools/review/implementer-criteria.d.ts +47 -1
- package/dist/tools/review/implementer-criteria.d.ts.map +1 -1
- package/dist/tools/review/implementer-criteria.js +110 -9
- package/dist/tools/review/implementer-criteria.js.map +1 -1
- package/dist/tools/review/tool-config.d.ts.map +1 -1
- package/dist/tools/review/tool-config.js +39 -7
- package/dist/tools/review/tool-config.js.map +1 -1
- package/dist/tools/verify/implementer-criteria.d.ts +46 -0
- package/dist/tools/verify/implementer-criteria.d.ts.map +1 -1
- package/dist/tools/verify/implementer-criteria.js +103 -8
- package/dist/tools/verify/implementer-criteria.js.map +1 -1
- package/dist/tools/verify/tool-config.d.ts.map +1 -1
- package/dist/tools/verify/tool-config.js +18 -2
- package/dist/tools/verify/tool-config.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,36 +1,138 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Audit-specific implementer criteria.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* AUDIT'S PURPOSE — read this before adding categories.
|
|
5
|
+
* Most audit targets are spec / plan / design / recommendation files that
|
|
6
|
+
* will subsequently be EXECUTED BY A LOW-JUDGMENT WORKER (a sub-agent that
|
|
7
|
+
* follows the spec literally, with little ability to disambiguate or
|
|
8
|
+
* choose between alternatives). The audit's success criterion is:
|
|
9
|
+
*
|
|
10
|
+
* "After audit + fixes, can a literal-following worker execute this
|
|
11
|
+
* artifact without failing, picking wrong, or getting stuck?"
|
|
12
|
+
*
|
|
13
|
+
* That criterion is what makes a finding load-bearing. Stylistic nits
|
|
14
|
+
* don't block execution; ambiguity, contradictions, missing verification,
|
|
15
|
+
* unspecified branches, out-of-order steps, and overloaded terms do.
|
|
16
|
+
*
|
|
17
|
+
* EVIDENCE & SCOPE for prose artifacts.
|
|
18
|
+
* Audit examines a prose artifact (spec, design doc, plan, recommendation
|
|
19
|
+
* doc, API contract, config, brief). The "thing being examined" is text —
|
|
20
|
+
* not source code — so evidence and scope rules differ from review/debug:
|
|
7
21
|
*
|
|
8
22
|
* - Evidence is a doc quote, OR a precise reference to a section/item
|
|
9
23
|
* that *should* address the issue but doesn't (absence-finding), OR
|
|
10
|
-
* a doc-claim + contradicting source (wrong-claim finding)
|
|
24
|
+
* a doc-claim + contradicting source (wrong-claim finding), OR
|
|
25
|
+
* two sections of the doc that contradict each other (internal-
|
|
26
|
+
* coherence finding).
|
|
11
27
|
* - Scope is the document and what it directly references; cross-section
|
|
12
28
|
* reasoning IS the value of an audit.
|
|
29
|
+
*
|
|
30
|
+
* The failure-mode rubric below tells the worker WHAT KINDS of issues to
|
|
31
|
+
* look for in a prose artifact. Without it, workers calibrated on code
|
|
32
|
+
* audits collapse to surface-level proofreading on documents.
|
|
13
33
|
*/
|
|
34
|
+
/**
|
|
35
|
+
* The orientation block. Goes at the TOP of every audit prompt.
|
|
36
|
+
*
|
|
37
|
+
* This is the load-bearing addition. Without an explicit purpose statement,
|
|
38
|
+
* workers default to "find issues in this doc" — which produces stylistic
|
|
39
|
+
* proofreading. With this orientation, they look for issues that would
|
|
40
|
+
* BLOCK EXECUTION by a literal-following worker, which is what the caller
|
|
41
|
+
* actually needs.
|
|
42
|
+
*/
|
|
43
|
+
export const AUDIT_PURPOSE_ORIENTATION = [
|
|
44
|
+
'Why this audit exists:',
|
|
45
|
+
'The artifact you are auditing is most likely a spec, plan, design doc, or recommendation doc that will subsequently be EXECUTED BY A LOW-JUDGMENT WORKER — a sub-agent that follows instructions literally, has limited ability to disambiguate, and cannot recover from contradictions.',
|
|
46
|
+
'',
|
|
47
|
+
'Your job is to find anywhere a literal-following worker would:',
|
|
48
|
+
'- get stuck on ambiguity (e.g. "implement the function" with no signature, location, or contract)',
|
|
49
|
+
'- pick wrong on an unspecified branch (e.g. "if X then Y" with no "otherwise")',
|
|
50
|
+
'- implement contradictions (section A says use X, section B says use Y, both apparently authoritative)',
|
|
51
|
+
'- skip a requirement that is implicit or buried (the worker only does what is explicitly stated)',
|
|
52
|
+
'- be unable to verify completion (no acceptance criteria, no done condition, no test command)',
|
|
53
|
+
'- misinterpret an overloaded term (the same word means two different things in two sections)',
|
|
54
|
+
'- execute steps out of order (step 3 needs the output of step 5)',
|
|
55
|
+
'- act on an unbounded scope ("fix the bug" with no scope boundary)',
|
|
56
|
+
'- need context that is referenced but not provided (a helper, a flag, a file the spec assumes the worker knows)',
|
|
57
|
+
'- produce data of an unspecified shape (return value, file format, error envelope)',
|
|
58
|
+
'',
|
|
59
|
+
'A finding that points at any of these failure-mode triggers is high-value EVEN IF the prose reads cleanly. Conversely, a stylistic nit that does not block execution is low-priority no matter how clean the wording.',
|
|
60
|
+
'',
|
|
61
|
+
'When you have completed this audit and its fixes have been applied, the test is: would a worker that reads only this artifact, follows it literally, and asks no clarifying questions, produce the right outcome? If yes, the audit succeeded.',
|
|
62
|
+
].join('\n');
|
|
14
63
|
export const EVIDENCE_RULE_AUDIT = [
|
|
15
64
|
'Evidence grounding (REQUIRED for every finding):',
|
|
16
65
|
'- For issues IN the doc: quote the exact passage that demonstrates the issue.',
|
|
17
|
-
'- For ABSENCES (the doc is silent on something it should specify): name the section that should address it. Example: "Section 3.2 enumerates failure modes but does not specify queue-overflow behavior."',
|
|
66
|
+
'- For ABSENCES (the doc is silent on something it should specify): name the section that should address it. Example: "Section 3.2 enumerates failure modes but does not specify queue-overflow behavior." This is an absence-finding and is fully valid evidence.',
|
|
18
67
|
'- For WRONG-CLAIM findings: quote the doc\'s claim AND the source that contradicts it (the actual code, the referenced spec, etc.).',
|
|
19
|
-
'-
|
|
68
|
+
'- For INTERNAL-COHERENCE findings (two parts of the doc conflict, a recommendation contradicts a stated constraint, a fix relies on something the doc forbids): quote both passages OR quote one and name the section ID of the other.',
|
|
69
|
+
'- A finding without one of these four forms of evidence is speculation. Note "investigation needed" in your summary instead.',
|
|
20
70
|
].join('\n');
|
|
21
71
|
export const SCOPE_RULE_AUDIT = [
|
|
22
72
|
'Scope:',
|
|
23
73
|
'- The document itself plus any artifact the document directly references (cited code, linked spec, embedded config).',
|
|
24
|
-
'- Cross-section reasoning within the document IS in scope and often the highest-value kind of finding.',
|
|
74
|
+
'- Cross-section reasoning within the document IS in scope and is often the highest-value kind of finding.',
|
|
25
75
|
'- Do NOT enumerate the repository or glob across all source files. If verifying a referenced file or symbol, read or grep for that specific name only — the goal is to evaluate the document, not catalog the codebase.',
|
|
26
76
|
'- Out of scope: speculation about content the document does not reference; coding-style nits on inline code examples (those belong in a code review, not an audit).',
|
|
27
77
|
].join('\n');
|
|
78
|
+
/**
|
|
79
|
+
* The failure-mode rubric for prose-document audits.
|
|
80
|
+
*
|
|
81
|
+
* This is the load-bearing addition. Without an explicit taxonomy, workers
|
|
82
|
+
* calibrated on source-code rubrics (off-by-one, type mismatches, dead code)
|
|
83
|
+
* have nothing to look for in a spec/plan/recommendation doc and emit only
|
|
84
|
+
* surface nits. The 11 categories below cover what actually goes wrong in
|
|
85
|
+
* non-trivial prose artifacts and are independent of the audit-type label.
|
|
86
|
+
*/
|
|
87
|
+
export const DOC_AUDIT_FAILURE_MODES = [
|
|
88
|
+
'Look for these kinds of issues — applicable to ALL prose-document audits regardless of auditType. The auditType (default / security / performance) tells you which lens to weight, but every doc audit should sweep the full taxonomy:',
|
|
89
|
+
'',
|
|
90
|
+
'1. RECOMMENDATION-COHERENCE — does the proposed fix actually solve the stated problem given the doc\'s own stated constraints? A fix that requires X when the doc forbids X is logically incomplete. **Always check fixes against any explicit principles, constraints, invariants, or "what we won\'t do" sections in the doc itself.** Example: a doc that lists "no persistence" as a principle cannot have a fix that disambiguates "id existed before" from "id never existed" without persistence — that fix is unimplementable.',
|
|
91
|
+
'2. INTERNAL CONTRADICTION — does section A say something incompatible with section B? Does a methodology disclaimer ("these numbers are approximations") undercut a load-bearing claim built on those same numbers? Does a "do not auto-X" rule sit next to an "auto-X above threshold" recommendation?',
|
|
92
|
+
'3. CROSS-ITEM DUPLICATION — are two items addressing the same root cause without acknowledging each other? Should they be merged or cross-referenced? Look across the WHOLE doc for items that target the same underlying problem from different angles.',
|
|
93
|
+
'4. INDEPENDENCE-CLAIMED-WITHOUT-EVIDENCE — is X asserted as independent of Y when the evidence shows correlation, co-occurrence, or shared mechanism?',
|
|
94
|
+
'5. ARGUMENT SOUNDNESS — does the evidence chain support the conclusion? Does a headline ("95% wasted") rest on data the doc itself flags as unreliable? Does a severity rating match the evidence depth?',
|
|
95
|
+
'6. COMPLETENESS AGAINST CONSTRAINTS — does any constraint stated elsewhere render a recommendation infeasible? Is a fix step that depends on persistence proposed in a doc that forbids persistence? **If the doc has a principles, invariants, or constraints section, walk every recommendation through every constraint and flag mismatches.**',
|
|
96
|
+
'7. FIX ACTIONABILITY — is the proposed fix complete enough to implement, or does it stop at "fix it" / vague verbs? Does it leave open which subsystem owns the change? Are step-by-step actions or only goals?',
|
|
97
|
+
'8. DRIFT / STALENESS — does any claim in one section contradict more recently revised material in the same doc? **Specifically: count items the doc claims to discuss (e.g. "across all three sessions", "the four highest-impact items", "we have N tools") and verify the count against the actual list elsewhere.** If the count is wrong, that\'s drift. Other drift signals: version labels, renamed sections, references to removed items.',
|
|
98
|
+
'9. SCOPE-CREEP / FRAMING — do recommendations exceed what the evidence supports? Does the framing (table title, bucket label, headline) misrepresent what the row contents actually say?',
|
|
99
|
+
'10. STRUCTURAL CONSISTENCY — do similar items in a list/table follow the same shape? If one row has a Verification subsection and the others don\'t, that\'s structural inconsistency. If items are numbered "1, 1b, 2, 3" the duplicate "1" is a structural break. If a column is labeled "Fix direction" but one row\'s cell holds verification criteria, that\'s a column-content mismatch.',
|
|
100
|
+
'11. METADATA COMPLETENESS — for living/revised documents: is there a "last updated" / "as of" / version stamp? When findings claim "still unfixed in version X", is there a date timeline that supports the claim?',
|
|
101
|
+
'',
|
|
102
|
+
'Severity calibration for doc audits:',
|
|
103
|
+
'- critical: a recommendation that, if implemented, would fail or cause harm because the doc is internally incoherent (e.g. a fix that depends on something the doc forbids). Or: a contradiction that would silently lead to wrong implementation if a reader followed both passages.',
|
|
104
|
+
'- high: a substantive missing recommendation, an incorrect claim of independence between two issues, an evidence chain that does not support a load-bearing conclusion, OR a fix that violates a stated principle/constraint of the doc itself.',
|
|
105
|
+
'- medium: argument soundness gap, fix actionability gap, drift between sections (item-count mismatch), structural inconsistency between similar items, scope-creep risk that needs a guardrail.',
|
|
106
|
+
'- low: stylistic, labeling, or formatting issues; missing metadata; minor cross-reference fixes.',
|
|
107
|
+
].join('\n');
|
|
108
|
+
/**
|
|
109
|
+
* Counter-balance to the SEVERITY_LADDER's anti-inflation hint.
|
|
110
|
+
*
|
|
111
|
+
* The shared severity ladder ends with "Workers commonly inflate — resist
|
|
112
|
+
* the urge." That bias is correct for code reviews, where over-flagging
|
|
113
|
+
* stylistic preferences is the common failure. For prose-document audits
|
|
114
|
+
* the opposite is true: workers UNDER-find because they have nothing to
|
|
115
|
+
* pattern-match against in their training. This block tells the worker
|
|
116
|
+
* the doc-audit failure mode is silence, not noise.
|
|
117
|
+
*/
|
|
118
|
+
export const THOROUGHNESS_REMINDER_AUDIT = [
|
|
119
|
+
'Thoroughness expectation for prose-document audits:',
|
|
120
|
+
'- For non-trivial documents (>500 words), zero or 1-2 findings is unusual and usually indicates the rubric was applied too narrowly. Sweep the full failure-mode taxonomy above before declaring "no findings."',
|
|
121
|
+
'- The SEVERITY_LADDER warns against inflation. That warning is calibrated for code reviews — for prose audits the typical failure mode is the opposite (under-finding because the worker only looked for surface nits). Apply the failure-mode taxonomy thoroughly first; THEN calibrate severity downward where the impact is small.',
|
|
122
|
+
'- Do not invent findings to hit a quota. But if you have applied all 11 failure modes and still have only stylistic nits, double-check categories 1, 2, 5, 6, and 8 (recommendation-coherence, internal contradiction, argument soundness, completeness against constraints, drift) — these are the ones workers most often miss on first pass.',
|
|
123
|
+
'',
|
|
124
|
+
'Principle-mapping pass (REQUIRED when the doc has a principles / constraints / "what we won\'t do" section):',
|
|
125
|
+
'- Make ONE explicit pass walking each recommendation against each principle/constraint listed in the doc.',
|
|
126
|
+
'- For each (recommendation, constraint) pair, ask: does this recommendation, as written, require something the constraint forbids? Or rely on something the constraint says is unavailable?',
|
|
127
|
+
'- Worked example (illustrative — DO NOT match this verbatim against the doc you are auditing). Suppose a doc states Principle X: "Operations must be deterministic — no random sources." Suppose recommendation R proposes: "On request collision, generate a fresh tiebreaker using the system entropy pool." Chain: the tiebreaker uses entropy; entropy is non-deterministic; Principle X forbids non-determinism; therefore R is unimplementable as written without breaking Principle X. → File this as a HIGH-severity recommendation-coherence finding. The general pattern: a fix that REQUIRES something a constraint FORBIDS, or RELIES ON something a constraint says is UNAVAILABLE, is a load-bearing finding regardless of how clean the fix\'s prose reads.',
|
|
128
|
+
'- Most workers miss findings of this shape on first pass because the chain spans two non-adjacent sections. The principle-mapping pass forces you to make the chain.',
|
|
129
|
+
].join('\n');
|
|
28
130
|
export const ANNOTATOR_AWARENESS_AUDIT = [
|
|
29
131
|
'After your output, an annotator validates each finding against this audit-specific rubric:',
|
|
30
|
-
'- Is the finding about the document (contradiction / absence / ambiguity / wrong claim / scope gap)?',
|
|
31
|
-
'- Is the evidence
|
|
32
|
-
'- Is the severity calibrated to actual downstream-execution impact?',
|
|
132
|
+
'- Is the finding about the document (contradiction / absence / ambiguity / wrong claim / scope gap / recommendation-coherence / argument-soundness)?',
|
|
133
|
+
'- Is the evidence one of the four valid shapes: doc quote, absence-reference, claim+contradiction, OR internal-coherence cross-section reference?',
|
|
134
|
+
'- Is the severity calibrated to actual downstream-execution impact (does following the recommendation as written produce a wrong outcome)?',
|
|
33
135
|
'- Is the finding within the document\'s scope, or is it speculation about untouched material?',
|
|
34
|
-
'Self-check before emitting. Findings that fail any check are downgraded or dropped.',
|
|
136
|
+
'Self-check before emitting. Findings that fail any check are downgraded or dropped — but logical-coherence and argument-soundness findings backed by section references are FULLY VALID, do NOT downgrade them as "speculation."',
|
|
35
137
|
].join('\n');
|
|
36
138
|
//# sourceMappingURL=implementer-criteria.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/audit/implementer-criteria.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/audit/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,wBAAwB;IACxB,0RAA0R;IAC1R,EAAE;IACF,gEAAgE;IAChE,mGAAmG;IACnG,gFAAgF;IAChF,wGAAwG;IACxG,kGAAkG;IAClG,+FAA+F;IAC/F,8FAA8F;IAC9F,kEAAkE;IAClE,oEAAoE;IACpE,iHAAiH;IACjH,oFAAoF;IACpF,EAAE;IACF,uNAAuN;IACvN,EAAE;IACF,gPAAgP;CACjP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kDAAkD;IAClD,+EAA+E;IAC/E,mQAAmQ;IACnQ,qIAAqI;IACrI,wOAAwO;IACxO,8HAA8H;CAC/H,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,sHAAsH;IACtH,2GAA2G;IAC3G,yNAAyN;IACzN,qKAAqK;CACtK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,wOAAwO;IACxO,EAAE;IACF,wgBAAwgB;IACxgB,ySAAyS;IACzS,0PAA0P;IAC1P,uJAAuJ;IACvJ,0MAA0M;IAC1M,mVAAmV;IACnV,iNAAiN;IACjN,kbAAkb;IAClb,0LAA0L;IAC1L,gYAAgY;IAChY,oNAAoN;IACpN,EAAE;IACF,sCAAsC;IACtC,uRAAuR;IACvR,iPAAiP;IACjP,iMAAiM;IACjM,kGAAkG;CACnG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,qDAAqD;IACrD,iNAAiN;IACjN,uUAAuU;IACvU,iVAAiV;IACjV,EAAE;IACF,8GAA8G;IAC9G,2GAA2G;IAC3G,6LAA6L;IAC7L,4uBAA4uB;IAC5uB,sKAAsK;CACvK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,4FAA4F;IAC5F,sJAAsJ;IACtJ,mJAAmJ;IACnJ,4IAA4I;IAC5I,+FAA+F;IAC/F,kOAAkO;CACnO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const inputSchema: z.ZodObject<{
|
|
3
3
|
document: z.ZodOptional<z.ZodString>;
|
|
4
|
-
auditType: z.
|
|
4
|
+
auditType: z.ZodDefault<z.ZodEnum<{
|
|
5
|
+
default: "default";
|
|
5
6
|
security: "security";
|
|
6
7
|
performance: "performance";
|
|
7
|
-
|
|
8
|
-
correctness: "correctness";
|
|
9
|
-
general: "general";
|
|
10
|
-
}>, z.ZodArray<z.ZodEnum<{
|
|
11
|
-
security: "security";
|
|
12
|
-
performance: "performance";
|
|
13
|
-
style: "style";
|
|
14
|
-
correctness: "correctness";
|
|
15
|
-
}>>]>;
|
|
8
|
+
}>>;
|
|
16
9
|
filePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
17
10
|
contextBlockIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
18
11
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,WAAW;;;;;;;;;iBAStB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA8B,CAAC;AAExD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -6,10 +6,9 @@ import { buildOutputEnvelopeSchema } from '../shared-output.js';
|
|
|
6
6
|
// cross-package coupling.
|
|
7
7
|
export const inputSchema = z.object({
|
|
8
8
|
document: z.string().optional().describe('Inline document content to audit'),
|
|
9
|
-
auditType: z.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
]).describe('Audit focus.'),
|
|
9
|
+
auditType: z.enum(['default', 'security', 'performance'])
|
|
10
|
+
.default('default')
|
|
11
|
+
.describe('Audit focus. `default` is the comprehensive sweep — recommended for specs, plans, designs, recommendation docs, post-mortems. Use `security` or `performance` only when you specifically want to narrow the lens to that single dimension (threat models, scaling designs).'),
|
|
13
12
|
filePaths: z.array(z.string()).optional()
|
|
14
13
|
.describe('Files the sub-agent should focus on. Multiple files are processed in parallel.'),
|
|
15
14
|
contextBlockIds: z.array(z.string()).optional()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/tools/audit/schema.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,uFAAuF;AACvF,2EAA2E;AAC3E,0BAA0B;AAC1B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC5E,SAAS,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/tools/audit/schema.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,uFAAuF;AACvF,2EAA2E;AAC3E,0BAA0B;AAC1B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC5E,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;SACtD,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CAAC,6QAA6Q,CAAC;IAC1R,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SACtC,QAAQ,CAAC,gFAAgF,CAAC;IAC7F,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SAC5C,QAAQ,CAAC,mHAAmH,CAAC;CACjI,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,YAAY,GAAG,yBAAyB,EAAE,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;
|
|
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;AAavE,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;AA6CD,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,EAAE,CA0B7D;AAgFD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,CAyBrE,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { auditReportSchema } from '../../reporting/report-parser-slots/audit-rep
|
|
|
4
4
|
import { auditHeadlineTemplate } from '../../reporting/headline-templates/audit.js';
|
|
5
5
|
import { DEFAULT_TASK_TIMEOUT_MS } from '../../config/schema.js';
|
|
6
6
|
import { SEVERITY_LADDER } from '../../review/templates/finding-criteria.js';
|
|
7
|
-
import { EVIDENCE_RULE_AUDIT, SCOPE_RULE_AUDIT, ANNOTATOR_AWARENESS_AUDIT, } from './implementer-criteria.js';
|
|
7
|
+
import { AUDIT_PURPOSE_ORIENTATION, EVIDENCE_RULE_AUDIT, SCOPE_RULE_AUDIT, ANNOTATOR_AWARENESS_AUDIT, DOC_AUDIT_FAILURE_MODES, THOROUGHNESS_REMINDER_AUDIT, } from './implementer-criteria.js';
|
|
8
8
|
export function registerAudit(registry) {
|
|
9
9
|
registry.register({
|
|
10
10
|
routeName: 'audit',
|
|
@@ -18,32 +18,37 @@ export function registerAudit(registry) {
|
|
|
18
18
|
responseShapeName: 'BatchResponse',
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Per-audit-type "done" conditions.
|
|
23
|
+
*
|
|
24
|
+
* The audit tool's primary target is prose artifacts: specs, plans,
|
|
25
|
+
* recommendation docs, design docs, briefs, API contracts, configs.
|
|
26
|
+
* A secondary target is source code (when filePaths point at .ts/.py/etc.).
|
|
27
|
+
*
|
|
28
|
+
* `default` is the comprehensive sweep — what 90%+ of audit calls should
|
|
29
|
+
* use. `security` and `performance` are narrow opt-in lenses for cases
|
|
30
|
+
* where the caller specifically wants ONE dimension (a threat model, a
|
|
31
|
+
* scaling design). The full failure-mode taxonomy applies regardless;
|
|
32
|
+
* the lens just tells the worker which dimension to weight slightly more.
|
|
33
|
+
*/
|
|
21
34
|
const AUDIT_DONE_CONDITIONS = {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
style: 'Identify all style issues (naming, formatting, dead code, inconsistent patterns). Each finding has location and recommended fix.',
|
|
26
|
-
general: 'Identify issues across security, performance, correctness, and style. Each finding has category, severity, location, and remediation.',
|
|
35
|
+
default: 'Comprehensive audit. Apply the full failure-mode taxonomy through the executability lens (the orientation block above). For prose artifacts (specs, plans, recommendation docs, designs, post-mortems, audits, briefs): emphasize RECOMMENDATION-COHERENCE, INTERNAL CONTRADICTION, ARGUMENT SOUNDNESS, COMPLETENESS AGAINST CONSTRAINTS, FIX ACTIONABILITY, DRIFT, and SCOPE-CREEP — i.e., would a literal-following worker who reads this artifact and follows it without judgment produce the right outcome? Are sections internally consistent? Does each recommendation actually solve its stated problem given the doc\'s own constraints? Sweep style/clarity issues only when they would cause a worker to misinterpret. For source code: logic errors, contract violations, off-by-one bugs, type mismatches, unhandled edge cases. Each finding has severity (critical/high/medium/low), location, and remediation.',
|
|
36
|
+
security: 'Narrow lens: security ONLY. Use this only when the caller specifically wants security findings and not general audit findings. For prose artifacts (threat models, security designs, auth specs): identify missing controls, ambiguous trust boundaries, undeclared attack surfaces, leaked-secret patterns in examples, recommendations that introduce new attack surface without mitigation, and threat-model gaps. For source code: injection, auth bypass, data exposure, OWASP top 10. Apply the full failure-mode taxonomy through the security lens. Skip non-security findings. Each finding has severity, location, and remediation.',
|
|
37
|
+
performance: 'Narrow lens: performance ONLY. Use this only when the caller specifically wants performance findings and not general audit findings. For prose artifacts (designs, scaling plans, latency-sensitive specs): identify unstated complexity, missing hot-path consideration, unbounded loops in proposed designs, omitted scaling story, recommendations that mandate work that does not scale, and missing latency/throughput targets. For source code: O(n²) loops, unnecessary allocations, missing caching, blocking I/O. Apply the full failure-mode taxonomy through the performance lens. Skip non-performance findings. Each finding has impact level, location, and fix recommendation.',
|
|
27
38
|
};
|
|
28
39
|
const DELTA_AUDIT_SUFFIX = ' Perform a full audit (do not reduce thoroughness). Verify each prior finding as fixed or unfixed. Omit fixed prior findings from the main report. Include unfixed prior findings and new findings. End with a summary of which prior findings were resolved.';
|
|
29
40
|
function resolveAuditTypeText(auditType) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
41
|
+
// Defensive: at the HTTP layer Zod's `.default('default')` fires, but
|
|
42
|
+
// internal callers may still construct Input directly without going
|
|
43
|
+
// through the schema. Treat undefined as the same as `'default'`.
|
|
44
|
+
const t = auditType ?? 'default';
|
|
45
|
+
if (t === 'default')
|
|
46
|
+
return 'comprehensive (executability + correctness + clarity, with security and performance lenses applied)';
|
|
47
|
+
return `narrow (${t} only)`;
|
|
35
48
|
}
|
|
36
49
|
function resolveDoneCondition(auditType, hasContextBlocks) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
base = AUDIT_DONE_CONDITIONS.general;
|
|
40
|
-
}
|
|
41
|
-
else if (Array.isArray(auditType)) {
|
|
42
|
-
base = auditType.map(t => AUDIT_DONE_CONDITIONS[t]).join(' ');
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
base = AUDIT_DONE_CONDITIONS[auditType] ?? AUDIT_DONE_CONDITIONS.general;
|
|
46
|
-
}
|
|
50
|
+
const t = auditType ?? 'default';
|
|
51
|
+
const base = AUDIT_DONE_CONDITIONS[t] ?? AUDIT_DONE_CONDITIONS.default;
|
|
47
52
|
return hasContextBlocks ? base + DELTA_AUDIT_SUFFIX : base;
|
|
48
53
|
}
|
|
49
54
|
function hasContent(value) {
|
|
@@ -75,6 +80,12 @@ export function auditBriefSlot(input) {
|
|
|
75
80
|
}];
|
|
76
81
|
}
|
|
77
82
|
const FINDING_FORMAT_INSTRUCTIONS = [
|
|
83
|
+
// Orientation goes FIRST — the worker needs to know why this audit
|
|
84
|
+
// exists before reading the format spec / taxonomy / evidence rules.
|
|
85
|
+
// Without it, workers calibrated on "find issues in this doc" produce
|
|
86
|
+
// stylistic proofreading; with it, they target executability blockers.
|
|
87
|
+
AUDIT_PURPOSE_ORIENTATION,
|
|
88
|
+
'',
|
|
78
89
|
'Produce a narrative audit report. Use this EXACT per-finding format — both the structured reviewer and the deterministic fallback extract from this same format:',
|
|
79
90
|
'',
|
|
80
91
|
'## Finding 1: <one-line title>',
|
|
@@ -97,6 +108,16 @@ const FINDING_FORMAT_INSTRUCTIONS = [
|
|
|
97
108
|
// Result: fewer downgraded findings, fewer missed criticals.
|
|
98
109
|
SEVERITY_LADDER,
|
|
99
110
|
'',
|
|
111
|
+
// Doc-audit failure-mode taxonomy. Without this block, workers calibrated
|
|
112
|
+
// on code-audit rubrics produce only surface-level proofreading nits on
|
|
113
|
+
// prose artifacts. The 11 categories below are what actually goes wrong
|
|
114
|
+
// in non-trivial specs/plans/recommendation docs.
|
|
115
|
+
DOC_AUDIT_FAILURE_MODES,
|
|
116
|
+
'',
|
|
117
|
+
// Counter-balances the SEVERITY_LADDER's anti-inflation hint for the
|
|
118
|
+
// prose-document case, where the typical failure is under-finding.
|
|
119
|
+
THOROUGHNESS_REMINDER_AUDIT,
|
|
120
|
+
'',
|
|
100
121
|
EVIDENCE_RULE_AUDIT,
|
|
101
122
|
'',
|
|
102
123
|
SCOPE_RULE_AUDIT,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/audit/tool-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAoB,MAAM,qDAAqD,CAAC;AAC1G,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAGpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/audit/tool-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,52 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Debug-specific implementer criteria.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* DEBUG'S PURPOSE — read this before adding categories.
|
|
5
|
+
* mma-debug is hypothesis-driven root-cause investigation. The output is
|
|
6
|
+
* a fix specification, not a hint. The success criterion is:
|
|
7
|
+
*
|
|
8
|
+
* "Could a maintainer who reads ONLY your debug report apply the fix,
|
|
9
|
+
* reproduce the original failure, verify the fix, and re-merge —
|
|
10
|
+
* without redoing the investigation?"
|
|
11
|
+
*
|
|
12
|
+
* That criterion is what makes a finding load-bearing. A correctly-
|
|
13
|
+
* identified line that is just a SYMPTOM (the real cause is upstream)
|
|
14
|
+
* is the debug-equivalent of an unimplementable fix — it sends the
|
|
15
|
+
* maintainer down the wrong path. A hypothesis with no falsifier is a
|
|
16
|
+
* guess dressed up as a finding.
|
|
17
|
+
*
|
|
18
|
+
* Debug is hypothesis-driven; cross-file tracing is required, not
|
|
19
|
+
* forbidden. Findings are evidence chains, not point observations.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* The orientation block. Goes at the TOP of every debug prompt.
|
|
23
|
+
*
|
|
24
|
+
* Without an explicit purpose statement, workers default to "find a
|
|
25
|
+
* suspicious line" — which often points at the symptom, not the cause.
|
|
26
|
+
* With this orientation, they trace from the failure point upstream
|
|
27
|
+
* until they hit something that, if changed, would prevent the failure.
|
|
8
28
|
*/
|
|
29
|
+
export declare const DEBUG_PURPOSE_ORIENTATION: string;
|
|
9
30
|
export declare const EVIDENCE_RULE_DEBUG: string;
|
|
10
31
|
export declare const SCOPE_RULE_DEBUG: string;
|
|
32
|
+
/**
|
|
33
|
+
* The failure-mode taxonomy for debug investigations.
|
|
34
|
+
*
|
|
35
|
+
* Without this block, workers default to "find a suspicious line" —
|
|
36
|
+
* which catches surface symptoms but misses the chain upstream that
|
|
37
|
+
* actually caused the failure. The 9 categories below are the patterns
|
|
38
|
+
* a careful debugger would consciously check for.
|
|
39
|
+
*/
|
|
40
|
+
export declare const DEBUG_FAILURE_MODES: string;
|
|
41
|
+
/**
|
|
42
|
+
* Counter-balance to the SEVERITY_LADDER's anti-inflation hint.
|
|
43
|
+
*
|
|
44
|
+
* The shared severity ladder warns against inflation. For debug, the
|
|
45
|
+
* common failure is the OPPOSITE — workers stop at the first plausible
|
|
46
|
+
* explanation (over-confidence on a shallow trace) rather than tracing
|
|
47
|
+
* to the actual cause. This block tells the worker the typical debug
|
|
48
|
+
* failure is shallow root-cause, not noisy hypothesis lists.
|
|
49
|
+
*/
|
|
50
|
+
export declare const THOROUGHNESS_REMINDER_DEBUG: string;
|
|
11
51
|
export declare const ANNOTATOR_AWARENESS_DEBUG: string;
|
|
12
52
|
//# sourceMappingURL=implementer-criteria.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implementer-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/debug/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"implementer-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/debug/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,QAe1B,CAAC;AAEb,eAAO,MAAM,mBAAmB,QAQpB,CAAC;AAEb,eAAO,MAAM,gBAAgB,QAMjB,CAAC;AAEb;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,QAkBpB,CAAC;AAEb;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,QAa5B,CAAC;AAEb,eAAO,MAAM,yBAAyB,QAS1B,CAAC"}
|
|
@@ -1,29 +1,121 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Debug-specific implementer criteria.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* DEBUG'S PURPOSE — read this before adding categories.
|
|
5
|
+
* mma-debug is hypothesis-driven root-cause investigation. The output is
|
|
6
|
+
* a fix specification, not a hint. The success criterion is:
|
|
7
|
+
*
|
|
8
|
+
* "Could a maintainer who reads ONLY your debug report apply the fix,
|
|
9
|
+
* reproduce the original failure, verify the fix, and re-merge —
|
|
10
|
+
* without redoing the investigation?"
|
|
11
|
+
*
|
|
12
|
+
* That criterion is what makes a finding load-bearing. A correctly-
|
|
13
|
+
* identified line that is just a SYMPTOM (the real cause is upstream)
|
|
14
|
+
* is the debug-equivalent of an unimplementable fix — it sends the
|
|
15
|
+
* maintainer down the wrong path. A hypothesis with no falsifier is a
|
|
16
|
+
* guess dressed up as a finding.
|
|
17
|
+
*
|
|
18
|
+
* Debug is hypothesis-driven; cross-file tracing is required, not
|
|
19
|
+
* forbidden. Findings are evidence chains, not point observations.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* The orientation block. Goes at the TOP of every debug prompt.
|
|
23
|
+
*
|
|
24
|
+
* Without an explicit purpose statement, workers default to "find a
|
|
25
|
+
* suspicious line" — which often points at the symptom, not the cause.
|
|
26
|
+
* With this orientation, they trace from the failure point upstream
|
|
27
|
+
* until they hit something that, if changed, would prevent the failure.
|
|
8
28
|
*/
|
|
29
|
+
export const DEBUG_PURPOSE_ORIENTATION = [
|
|
30
|
+
'Why this debug investigation exists:',
|
|
31
|
+
'mma-debug produces a fix specification a maintainer can apply WITHOUT redoing the investigation. Your output replaces the maintainer\'s own root-cause work — not augments it.',
|
|
32
|
+
'',
|
|
33
|
+
'For your output to clear that bar, every finding must answer:',
|
|
34
|
+
'- Reproduction: how does the maintainer trigger the failure (command, input, state)?',
|
|
35
|
+
'- Symptom: where does the failure surface (file:line of the error, the failing assertion, the wrong output)?',
|
|
36
|
+
'- Cause: where is the actual defect (file:line that, if changed, would prevent the failure)?',
|
|
37
|
+
'- Trace: the evidence chain that links symptom to cause — each step a file:line citation or an observed value.',
|
|
38
|
+
'- Fix: the specific change to make at the cause (PROPOSE only — read-only contract; the caller applies).',
|
|
39
|
+
'- Falsifier: how the maintainer can verify the fix works (the assertion that should now pass, the wrong output that should now be right).',
|
|
40
|
+
'',
|
|
41
|
+
'A finding missing the trace from symptom to cause is a guess. A finding that names a symptom location as the cause is misdirection. Both are worse than no finding because they send the maintainer down the wrong path.',
|
|
42
|
+
'',
|
|
43
|
+
'The completion test: would a maintainer who reads only your report and the source code reproduce the failure, find the cited cause, apply the proposed fix, and confirm the falsifier — all without doing the investigation a second time?',
|
|
44
|
+
].join('\n');
|
|
9
45
|
export const EVIDENCE_RULE_DEBUG = [
|
|
10
46
|
'Evidence grounding (REQUIRED for every finding):',
|
|
11
|
-
'- Each finding is a hypothesis with a supporting evidence chain.',
|
|
12
|
-
'-
|
|
13
|
-
'-
|
|
14
|
-
'-
|
|
47
|
+
'- Each finding is a hypothesis with a supporting evidence chain. Cite `file:line` at every step of the chain.',
|
|
48
|
+
'- The chain has at least three points: SYMPTOM (where the failure surfaces) → INTERMEDIATE STATE (the wrong value, the unexpected branch, the missing call) → CAUSE (the file:line that, if changed, would prevent the failure).',
|
|
49
|
+
'- Evidence forms accepted: reproducer commands, captured logs / stack traces, observed values, and code-path traces with file:line per step.',
|
|
50
|
+
'- Hypothesis-level findings with PARTIAL evidence are valid — that is how root-causing works. Show the reasoning chain. State which step is firm and which is conjecture.',
|
|
51
|
+
'- A hypothesis with NO falsifier (no way to check if the proposed cause is right) is a guess, not a finding. Always state how the maintainer can verify the fix.',
|
|
52
|
+
'- Severity reflects evidence strength AND impact: confirmed root cause that ships a wrong fix = `critical`; confirmed root cause = `high`; plausible candidate with most of the chain = `medium`; partial trace / multiple plausible explanations = `low` (or note in summary).',
|
|
15
53
|
].join('\n');
|
|
16
54
|
export const SCOPE_RULE_DEBUG = [
|
|
17
55
|
'Scope:',
|
|
18
56
|
'- Follow the failure path wherever it leads. Cross-file tracing is required.',
|
|
57
|
+
'- Reproduction discovery IS in scope: if the caller did not provide reproduction steps, infer them from test files, error messages, or recent commits and state your inferred reproduction explicitly.',
|
|
58
|
+
'- Pre-existing-vs-new separation: if multiple bugs are entangled in the same failure, separate them. Identify which is the one the caller asked about; note the others under "Other defects observed (out of scope for this investigation)".',
|
|
19
59
|
'- Out of scope: applying fixes (debug is read-only — propose, do not apply); rewriting code; auditing unrelated subsystems; broadening into general code review.',
|
|
20
60
|
].join('\n');
|
|
61
|
+
/**
|
|
62
|
+
* The failure-mode taxonomy for debug investigations.
|
|
63
|
+
*
|
|
64
|
+
* Without this block, workers default to "find a suspicious line" —
|
|
65
|
+
* which catches surface symptoms but misses the chain upstream that
|
|
66
|
+
* actually caused the failure. The 9 categories below are the patterns
|
|
67
|
+
* a careful debugger would consciously check for.
|
|
68
|
+
*/
|
|
69
|
+
export const DEBUG_FAILURE_MODES = [
|
|
70
|
+
'Patterns to consciously check for. Apply on EVERY debug investigation:',
|
|
71
|
+
'',
|
|
72
|
+
'1. SYMPTOM-NOT-CAUSE — the suspicious line you first hit is where the failure SURFACES, not where it is CAUSED. Trace upstream until you find a state that, if changed, prevents the failure. The cited cause must be upstream of the cited symptom in the call/data flow.',
|
|
73
|
+
'2. SCAPEGOAT FILE — the failing test or the throwing line is in a file that is just the messenger. The actual defect lives in a file the failure passes through. Read the call stack / data path and place the finding at the source, not the sink.',
|
|
74
|
+
'3. INCOMPLETE TRACE — the chain from symptom to cause has unfilled gaps ("...somewhere in the middleware..."). Each step in the trace must be a file:line citation or an observed value. Gaps mean the maintainer redoes the investigation.',
|
|
75
|
+
'4. UNTESTED HYPOTHESIS — the proposed fix has no falsifier. Always state HOW the maintainer can verify the fix worked: which assertion now passes, which output is now right, which command no longer errors.',
|
|
76
|
+
'5. PARALLEL CAUSES — more than one independent root cause is plausible. If the evidence is consistent with two unrelated mechanisms, name both as separate findings. Do NOT collapse them.',
|
|
77
|
+
'6. PRE-EXISTING-VS-NEW ENTANGLEMENT — multiple bugs are entangled in one failure. Separate them. Identify which one the caller asked about; note the others under a separate section.',
|
|
78
|
+
'7. WRONG FIX SCOPE — the proposed fix is broader than the cause requires (a refactor when a one-line fix would do) or narrower than the cause requires (a band-aid that masks the bug). Match fix scope to the cause depth.',
|
|
79
|
+
'8. MISSING REPRODUCTION — there is no command, input, or state the maintainer can use to trigger the failure. Without reproduction the fix cannot be verified. If the caller did not provide one, infer it and state it explicitly.',
|
|
80
|
+
'9. CONFIDENCE OVERSTATEMENT — the chain has gaps but the finding is filed at `high` severity. Calibrate severity to evidence strength: gaps in the chain = lower severity OR explicit "this is the most likely candidate; verify by X" caveat.',
|
|
81
|
+
'',
|
|
82
|
+
'Severity calibration for debug:',
|
|
83
|
+
'- critical: confirmed root cause where applying the proposed fix incorrectly would ship a regression (e.g. fix at the wrong layer that hides the bug).',
|
|
84
|
+
'- high: confirmed root cause with full chain symptom → cause → reproduction → falsifier. The maintainer can apply directly.',
|
|
85
|
+
'- medium: plausible cause with most of the chain, one or two gaps the maintainer can fill. Mark gaps explicitly.',
|
|
86
|
+
'- low: partial trace, multiple candidates, or hypothesis without sufficient evidence. Use sparingly — most findings should be medium or high.',
|
|
87
|
+
].join('\n');
|
|
88
|
+
/**
|
|
89
|
+
* Counter-balance to the SEVERITY_LADDER's anti-inflation hint.
|
|
90
|
+
*
|
|
91
|
+
* The shared severity ladder warns against inflation. For debug, the
|
|
92
|
+
* common failure is the OPPOSITE — workers stop at the first plausible
|
|
93
|
+
* explanation (over-confidence on a shallow trace) rather than tracing
|
|
94
|
+
* to the actual cause. This block tells the worker the typical debug
|
|
95
|
+
* failure is shallow root-cause, not noisy hypothesis lists.
|
|
96
|
+
*/
|
|
97
|
+
export const THOROUGHNESS_REMINDER_DEBUG = [
|
|
98
|
+
'Thoroughness expectation for debug investigations:',
|
|
99
|
+
'- For non-trivial failures (test failure, runtime error, unexpected behavior), stopping at the first plausible explanation is the typical debug failure mode. Always check for SYMPTOM-NOT-CAUSE before filing a finding: ask "if I changed this line, would the failure still happen via a different path?"',
|
|
100
|
+
'- The SEVERITY_LADDER warns against inflation. That warning is calibrated for code reviews — for debug, the common failure is OVER-CONFIDENCE on a shallow trace (calling a symptom location the cause). Apply the failure-mode taxonomy first; THEN calibrate severity.',
|
|
101
|
+
'- Do not invent hypotheses to hit a quota. But if you have only one finding and the failure is non-trivial, double-check categories 1, 2, 3, and 5 (symptom-not-cause, scapegoat file, incomplete trace, parallel causes) — these are the ones investigators most often miss on first pass.',
|
|
102
|
+
'- Limit yourself to 3-5 most-likely hypotheses. Do NOT enumerate implausible ones to pad the list.',
|
|
103
|
+
'',
|
|
104
|
+
'Symptom → cause walk (REQUIRED on every investigation):',
|
|
105
|
+
'- Start at the SYMPTOM (where the failure surfaces — the error message, the failing assertion, the wrong output).',
|
|
106
|
+
'- Walk UPSTREAM in the call/data flow. At each step, check whether the state at that point is consistent with the failure or already wrong. The point where the state first becomes wrong is the cause.',
|
|
107
|
+
'- For each step in the walk, cite a file:line. If the walk crosses a function boundary, cite both sides (caller line + callee line).',
|
|
108
|
+
'- Worked example. A test fails with `TypeError: cannot read property "id" of undefined` at `tests/users.test.ts:42` (assertion on the response). The walk: assertion sees `response.user === undefined`; the route handler at `src/handlers/getUser.ts:18` returns `{ user: rows[0] }` from a DB call; the DB call at `src/db/users.ts:34` returns `[]` for the test fixture id; the fixture loader at `tests/fixtures/users.ts:12` writes to a different table than the handler reads. → CAUSE is `tests/fixtures/users.ts:12` (wrong table). The TypeError at `tests/users.test.ts:42` is the SYMPTOM. A finding that named `getUser.ts:18` as the cause would have shipped a fix that adds null-checking — masking the bug instead of fixing it.',
|
|
109
|
+
'- Most investigators miss findings of this shape on first pass because the failing line is loud and the upstream cause is quiet. The symptom → cause walk forces the trace.',
|
|
110
|
+
].join('\n');
|
|
21
111
|
export const ANNOTATOR_AWARENESS_DEBUG = [
|
|
22
112
|
'After your output, an annotator validates each finding against this debug rubric:',
|
|
23
|
-
'- Is each finding a hypothesis
|
|
24
|
-
'- Does the
|
|
25
|
-
'-
|
|
26
|
-
'- Is
|
|
27
|
-
'
|
|
113
|
+
'- Is each finding a hypothesis with a complete trace from symptom to cause (not a point observation at the symptom)?',
|
|
114
|
+
'- Does the cited cause come UPSTREAM of the cited symptom in the call/data flow?',
|
|
115
|
+
'- Is there a reproduction step the maintainer can use to trigger the failure?',
|
|
116
|
+
'- Is there a falsifier the maintainer can use to verify the fix?',
|
|
117
|
+
'- Did you propose fixes WITHOUT applying them (read-only contract)?',
|
|
118
|
+
'- Is severity calibrated to evidence strength (gaps in chain = lower severity, not the same severity with hand-waving)?',
|
|
119
|
+
'Self-check before emitting. Findings that fail any check are downgraded or dropped — but partial-evidence hypotheses with explicit "the gap is here, verify by X" notes are FULLY VALID, do NOT downgrade them as "speculation". Debug is speculation narrowed by evidence; hand-waving is the failure mode, not careful gap-marking.',
|
|
28
120
|
].join('\n');
|
|
29
121
|
//# sourceMappingURL=implementer-criteria.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/debug/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/debug/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,sCAAsC;IACtC,gLAAgL;IAChL,EAAE;IACF,+DAA+D;IAC/D,sFAAsF;IACtF,8GAA8G;IAC9G,8FAA8F;IAC9F,gHAAgH;IAChH,0GAA0G;IAC1G,2IAA2I;IAC3I,EAAE;IACF,0NAA0N;IAC1N,EAAE;IACF,4OAA4O;CAC7O,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kDAAkD;IAClD,+GAA+G;IAC/G,kOAAkO;IAClO,8IAA8I;IAC9I,2KAA2K;IAC3K,kKAAkK;IAClK,iRAAiR;CAClR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,8EAA8E;IAC9E,wMAAwM;IACxM,8OAA8O;IAC9O,kKAAkK;CACnK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,wEAAwE;IACxE,EAAE;IACF,4QAA4Q;IAC5Q,qPAAqP;IACrP,6OAA6O;IAC7O,+MAA+M;IAC/M,4LAA4L;IAC5L,uLAAuL;IACvL,6NAA6N;IAC7N,qOAAqO;IACrO,gPAAgP;IAChP,EAAE;IACF,iCAAiC;IACjC,wJAAwJ;IACxJ,6HAA6H;IAC7H,kHAAkH;IAClH,+IAA+I;CAChJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,oDAAoD;IACpD,8SAA8S;IAC9S,0QAA0Q;IAC1Q,6RAA6R;IAC7R,oGAAoG;IACpG,EAAE;IACF,yDAAyD;IACzD,mHAAmH;IACnH,yMAAyM;IACzM,sIAAsI;IACtI,qtBAAqtB;IACrtB,6KAA6K;CAC9K,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,mFAAmF;IACnF,sHAAsH;IACtH,kFAAkF;IAClF,+EAA+E;IAC/E,kEAAkE;IAClE,qEAAqE;IACrE,yHAAyH;IACzH,uUAAuU;CACxU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -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;
|
|
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;AAajG,wBAAgB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYjE;AAsDD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAoCjE,CAAC"}
|