@momentiq/dark-factory-cli 1.1.0 → 2.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/README.md +86 -2
- package/dist/adapters/critic-result-schema.d.ts +14 -14
- package/dist/adapters/index.d.ts +1 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +7 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/static-schema-lint.d.ts +68 -0
- package/dist/adapters/static-schema-lint.d.ts.map +1 -0
- package/dist/adapters/static-schema-lint.js +813 -0
- package/dist/adapters/static-schema-lint.js.map +1 -0
- package/dist/cli.d.ts +17 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +313 -41
- package/dist/cli.js.map +1 -1
- package/dist/commands/findings.d.ts +6 -0
- package/dist/commands/findings.d.ts.map +1 -0
- package/dist/commands/findings.js +196 -0
- package/dist/commands/findings.js.map +1 -0
- package/dist/commands/onboard.d.ts +6 -0
- package/dist/commands/onboard.d.ts.map +1 -0
- package/dist/commands/onboard.js +111 -0
- package/dist/commands/onboard.js.map +1 -0
- package/dist/commands/skills.d.ts +6 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +248 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/cycle-doc-validator/validate_cycle_doc.py +131 -60
- package/dist/doctor.d.ts +17 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +107 -0
- package/dist/doctor.js.map +1 -1
- package/dist/evidence/docker-build.d.ts +6 -0
- package/dist/evidence/docker-build.d.ts.map +1 -0
- package/dist/evidence/docker-build.js +199 -0
- package/dist/evidence/docker-build.js.map +1 -0
- package/dist/evidence/index.d.ts +1 -0
- package/dist/evidence/index.d.ts.map +1 -1
- package/dist/evidence/index.js +6 -0
- package/dist/evidence/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +2 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/doctor.d.ts.map +1 -1
- package/dist/mcp/tools/doctor.js +5 -0
- package/dist/mcp/tools/doctor.js.map +1 -1
- package/dist/mcp/tools/review-bypass.d.ts.map +1 -1
- package/dist/mcp/tools/review-bypass.js +21 -0
- package/dist/mcp/tools/review-bypass.js.map +1 -1
- package/dist/mcp/tools/skills-install.d.ts +6 -0
- package/dist/mcp/tools/skills-install.d.ts.map +1 -0
- package/dist/mcp/tools/skills-install.js +260 -0
- package/dist/mcp/tools/skills-install.js.map +1 -0
- package/dist/mcp/tools/stats-gate.d.ts.map +1 -1
- package/dist/mcp/tools/stats-gate.js +63 -15
- package/dist/mcp/tools/stats-gate.js.map +1 -1
- package/dist/onboard/analyze.d.ts +7 -0
- package/dist/onboard/analyze.d.ts.map +1 -0
- package/dist/onboard/analyze.js +86 -0
- package/dist/onboard/analyze.js.map +1 -0
- package/dist/onboard/analyzer.d.ts +15 -0
- package/dist/onboard/analyzer.d.ts.map +1 -0
- package/dist/onboard/analyzer.js +52 -0
- package/dist/onboard/analyzer.js.map +1 -0
- package/dist/onboard/analyzers/ci.d.ts +3 -0
- package/dist/onboard/analyzers/ci.d.ts.map +1 -0
- package/dist/onboard/analyzers/ci.js +112 -0
- package/dist/onboard/analyzers/ci.js.map +1 -0
- package/dist/onboard/analyzers/docs.d.ts +3 -0
- package/dist/onboard/analyzers/docs.d.ts.map +1 -0
- package/dist/onboard/analyzers/docs.js +151 -0
- package/dist/onboard/analyzers/docs.js.map +1 -0
- package/dist/onboard/analyzers/git.d.ts +3 -0
- package/dist/onboard/analyzers/git.d.ts.map +1 -0
- package/dist/onboard/analyzers/git.js +87 -0
- package/dist/onboard/analyzers/git.js.map +1 -0
- package/dist/onboard/analyzers/lockfile.d.ts +3 -0
- package/dist/onboard/analyzers/lockfile.d.ts.map +1 -0
- package/dist/onboard/analyzers/lockfile.js +285 -0
- package/dist/onboard/analyzers/lockfile.js.map +1 -0
- package/dist/onboard/analyzers/manifest.d.ts +3 -0
- package/dist/onboard/analyzers/manifest.d.ts.map +1 -0
- package/dist/onboard/analyzers/manifest.js +228 -0
- package/dist/onboard/analyzers/manifest.js.map +1 -0
- package/dist/onboard/analyzers/tree.d.ts +3 -0
- package/dist/onboard/analyzers/tree.d.ts.map +1 -0
- package/dist/onboard/analyzers/tree.js +196 -0
- package/dist/onboard/analyzers/tree.js.map +1 -0
- package/dist/onboard/fixtures/replay-git-history.d.ts +20 -0
- package/dist/onboard/fixtures/replay-git-history.d.ts.map +1 -0
- package/dist/onboard/fixtures/replay-git-history.js +91 -0
- package/dist/onboard/fixtures/replay-git-history.js.map +1 -0
- package/dist/onboard/schema.d.ts +545 -0
- package/dist/onboard/schema.d.ts.map +1 -0
- package/dist/onboard/schema.js +142 -0
- package/dist/onboard/schema.js.map +1 -0
- package/dist/policy/gate.d.ts +1 -1
- package/dist/policy/gate.d.ts.map +1 -1
- package/dist/policy/gate.js +96 -12
- package/dist/policy/gate.js.map +1 -1
- package/dist/prompt.d.ts +1 -0
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +105 -1
- package/dist/prompt.js.map +1 -1
- package/dist/report.d.ts +106 -3
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +282 -10
- package/dist/report.js.map +1 -1
- package/dist/runner.d.ts +2 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +86 -2
- package/dist/runner.js.map +1 -1
- package/dist/self-consistency.d.ts +144 -0
- package/dist/self-consistency.d.ts.map +1 -0
- package/dist/self-consistency.js +368 -0
- package/dist/self-consistency.js.map +1 -0
- package/dist/skills/config.d.ts +176 -0
- package/dist/skills/config.d.ts.map +1 -0
- package/dist/skills/config.js +251 -0
- package/dist/skills/config.js.map +1 -0
- package/dist/skills/index.d.ts +4 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +8 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/install.d.ts +62 -0
- package/dist/skills/install.d.ts.map +1 -0
- package/dist/skills/install.js +315 -0
- package/dist/skills/install.js.map +1 -0
- package/dist/skills/template.d.ts +42 -0
- package/dist/skills/template.d.ts.map +1 -0
- package/dist/skills/template.js +95 -0
- package/dist/skills/template.js.map +1 -0
- package/dist/trusted-surface/rebind.d.ts.map +1 -1
- package/dist/trusted-surface/rebind.js +14 -1
- package/dist/trusted-surface/rebind.js.map +1 -1
- package/package.json +36 -2
- package/skills/README.md +89 -0
- package/skills/chief-engineer-blitz/SKILL.md.tmpl +443 -0
- package/skills/chief-engineer-blitz/skill.json +53 -0
- package/skills/chief-engineer-review/SKILL.md.tmpl +184 -0
- package/skills/chief-engineer-review/references/review-examples.md.tmpl +130 -0
- package/skills/chief-engineer-review/skill.json +67 -0
- package/skills/chief-engineer-review/templates/code-review-prompt.md.tmpl +111 -0
- package/skills/chief-engineer-review/templates/escalation-prompt.md.tmpl +56 -0
- package/skills/chief-engineer-review/templates/plan-review-prompt.md.tmpl +74 -0
- package/skills/skill-schema.json +73 -0
package/dist/report.d.ts
CHANGED
|
@@ -1,5 +1,63 @@
|
|
|
1
1
|
import type { LoadedConfig } from "./policy/config.js";
|
|
2
|
-
import { type CriticResult, type ReviewArtifact, type ReviewSeverity, type ReviewVerdict } from "@momentiq/dark-factory-schemas";
|
|
2
|
+
import { type CriticResult, type ReviewArtifact, type ReviewFinding, type ReviewSeverity, type ReviewVerdict, type UnilateralVetoRules } from "@momentiq/dark-factory-schemas";
|
|
3
|
+
/**
|
|
4
|
+
* True when the finding carries any of the flags listed in
|
|
5
|
+
* `requireCorroborationFor`. Flags not present in `FLAG_TO_FINDING_KEY`
|
|
6
|
+
* are ignored — an unknown flag in config is a no-op rather than a
|
|
7
|
+
* runtime error so operators can pin policy without first deploying a
|
|
8
|
+
* CLI that knows the flag (forward-compat).
|
|
9
|
+
*
|
|
10
|
+
* Exported so `gate.ts` shares the canonical translation table and
|
|
11
|
+
* cannot drift.
|
|
12
|
+
*/
|
|
13
|
+
export declare function findingCarriesCorroborationFlag(finding: ReviewFinding, flagNames: readonly string[]): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* True when at least one OTHER completed critic has a blocking-severity
|
|
16
|
+
* finding on the SAME file within `radius` lines of `target`.
|
|
17
|
+
*
|
|
18
|
+
* Exported so `gate.ts` shares the canonical corroboration predicate
|
|
19
|
+
* and cannot drift.
|
|
20
|
+
*
|
|
21
|
+
* "Other" = different `criticId`. Critics never corroborate themselves.
|
|
22
|
+
* "Blocking-severity" = `blockingSeverities.includes(f.severity)`. The
|
|
23
|
+
* corroborator is checked WITHOUT recursing into the corroboration
|
|
24
|
+
* rule — a corroborator that itself carries `selfInconsistent: true`
|
|
25
|
+
* still corroborates (the spec's safety net is "another critic saw a
|
|
26
|
+
* blocker here too", not "another critic's blocker survived
|
|
27
|
+
* corroboration"). This intentional asymmetry prevents an N-way
|
|
28
|
+
* corroboration-cycle.
|
|
29
|
+
*
|
|
30
|
+
* `target.file === undefined` → returns false (corroboration is
|
|
31
|
+
* file-scoped; a finding without a file cannot be corroborated).
|
|
32
|
+
* `target.line === undefined` → treats the target line as `0` (matches
|
|
33
|
+
* any line in the same file within the radius window — the safety
|
|
34
|
+
* net errs toward "yes, this is corroborated" when the target's
|
|
35
|
+
* location is imprecise).
|
|
36
|
+
*/
|
|
37
|
+
export declare function isCorroboratedByOtherCritic(target: ReviewFinding, targetCriticId: string, allResults: readonly CriticResult[], blockingSeverities: readonly ReviewSeverity[], radius: number): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* A finding the aggregator demoted from a unilateral veto to an
|
|
40
|
+
* informational `critic_disagreement` note because the
|
|
41
|
+
* `unilateralVetoRules.requireCorroborationFor` policy fired AND no
|
|
42
|
+
* other critic corroborated within the radius. Surfaced on
|
|
43
|
+
* `QuorumAggregateOutcome` so the runner can emit
|
|
44
|
+
* `critic_disagreement` telemetry and the artifact writer can render
|
|
45
|
+
* the note in the per-run markdown.
|
|
46
|
+
*/
|
|
47
|
+
export interface CriticDisagreementNote {
|
|
48
|
+
criticId: string;
|
|
49
|
+
file: string;
|
|
50
|
+
line?: number;
|
|
51
|
+
severity: ReviewSeverity;
|
|
52
|
+
/**
|
|
53
|
+
* The corroboration-flag name from the policy that triggered the
|
|
54
|
+
* demotion (currently always `"self_inconsistent"`). Future flags
|
|
55
|
+
* surface here without a new field.
|
|
56
|
+
*/
|
|
57
|
+
flag: string;
|
|
58
|
+
/** Short summary cut from the finding's `evidence` for the note. */
|
|
59
|
+
evidence: string;
|
|
60
|
+
}
|
|
3
61
|
export interface AggregateInputs {
|
|
4
62
|
loaded: LoadedConfig;
|
|
5
63
|
commit: string;
|
|
@@ -19,6 +77,26 @@ export declare function buildAggregate(inputs: AggregateInputs): ReviewArtifact;
|
|
|
19
77
|
* computation see the same definition of "completed".
|
|
20
78
|
*/
|
|
21
79
|
export declare function isCriticCompleted(r: CriticResult): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Optional context for the corroboration check
|
|
82
|
+
* (issue dark-factory-platform#112). When omitted, `criticVetoesGate`
|
|
83
|
+
* behaves exactly as the pre-#112 implementation (back-compat for the
|
|
84
|
+
* many callers that don't know about the policy).
|
|
85
|
+
*/
|
|
86
|
+
export interface VetoCorroborationContext {
|
|
87
|
+
/** All critic results in this review run — used to look for
|
|
88
|
+
* cross-critic corroboration on the same file within radius. */
|
|
89
|
+
allResults: readonly CriticResult[];
|
|
90
|
+
rules: UnilateralVetoRules;
|
|
91
|
+
/**
|
|
92
|
+
* Optional sink for findings the aggregator demoted to a
|
|
93
|
+
* `critic_disagreement` note. The caller pre-allocates the array;
|
|
94
|
+
* this function pushes one entry per demotion. Surfaced as
|
|
95
|
+
* `QuorumAggregateOutcome.disagreements` so the runner can emit
|
|
96
|
+
* telemetry without re-walking the results.
|
|
97
|
+
*/
|
|
98
|
+
disagreementSink?: CriticDisagreementNote[];
|
|
99
|
+
}
|
|
22
100
|
/**
|
|
23
101
|
* Cycle 322.3 — does this completed critic veto the gate?
|
|
24
102
|
*
|
|
@@ -27,8 +105,24 @@ export declare function isCriticCompleted(r: CriticResult): boolean;
|
|
|
27
105
|
* CHANGES_REQUESTED verdict) blocks the gate regardless of how many
|
|
28
106
|
* other critics approved. Returns `false` for non-completed critics
|
|
29
107
|
* — only a completed critic can veto.
|
|
108
|
+
*
|
|
109
|
+
* Issue dark-factory-platform#112 — when `corroborationCtx` is
|
|
110
|
+
* supplied AND the critic's only veto trigger is a blocking finding
|
|
111
|
+
* carrying one of the configured corroboration-required flags (e.g.
|
|
112
|
+
* `selfInconsistent: true`), the function checks whether ANOTHER
|
|
113
|
+
* critic raises a blocking finding on the same file within
|
|
114
|
+
* `rules.requireCorroborationOnHunkRadius` lines. If not, the
|
|
115
|
+
* finding is demoted to a `critic_disagreement` note (pushed to
|
|
116
|
+
* `disagreementSink`) and DOES NOT contribute to a veto. Findings
|
|
117
|
+
* without a flag still veto unconditionally — the safety net is
|
|
118
|
+
* intact for findings the critic can defend.
|
|
119
|
+
*
|
|
120
|
+
* Note: a critic that vetoes via `CHANGES_REQUESTED` verdict OR
|
|
121
|
+
* `requiresHumanJudgment` is NOT subject to corroboration — those
|
|
122
|
+
* are coarser-grained signals than per-finding flags and the spec
|
|
123
|
+
* narrows the rule to per-finding flag triggers only.
|
|
30
124
|
*/
|
|
31
|
-
export declare function criticVetoesGate(r: CriticResult, blockingSeverities: ReviewSeverity[]): boolean;
|
|
125
|
+
export declare function criticVetoesGate(r: CriticResult, blockingSeverities: ReviewSeverity[], corroborationCtx?: VetoCorroborationContext): boolean;
|
|
32
126
|
export interface QuorumAggregateOutcome {
|
|
33
127
|
verdict: ReviewVerdict;
|
|
34
128
|
/**
|
|
@@ -48,6 +142,15 @@ export interface QuorumAggregateOutcome {
|
|
|
48
142
|
reason: "majority" | "veto" | "quorum_unmet";
|
|
49
143
|
completedCount: number;
|
|
50
144
|
totalCount: number;
|
|
145
|
+
/**
|
|
146
|
+
* Issue dark-factory-platform#112 — findings the aggregator demoted
|
|
147
|
+
* from a unilateral veto to an informational disagreement note
|
|
148
|
+
* because the `unilateralVetoRules.requireCorroborationFor` policy
|
|
149
|
+
* fired AND no other critic corroborated. Always present (empty
|
|
150
|
+
* array when no demotions occurred OR no policy was active) so
|
|
151
|
+
* callers can branch on `.length` without an undefined check.
|
|
152
|
+
*/
|
|
153
|
+
disagreements: CriticDisagreementNote[];
|
|
51
154
|
}
|
|
52
155
|
/**
|
|
53
156
|
* Cycle 322.3 — compute the aggregate verdict under
|
|
@@ -70,7 +173,7 @@ export interface QuorumAggregateOutcome {
|
|
|
70
173
|
* property: an outage that knocks out two critics doesn't paralyze
|
|
71
174
|
* the third critic's BLOCKER finding.
|
|
72
175
|
*/
|
|
73
|
-
export declare function quorumAggregateVerdict(results: CriticResult[], blockingSeverities: ReviewSeverity[], quorum: number): QuorumAggregateOutcome;
|
|
176
|
+
export declare function quorumAggregateVerdict(results: CriticResult[], blockingSeverities: ReviewSeverity[], quorum: number, unilateralVetoRules?: UnilateralVetoRules): QuorumAggregateOutcome;
|
|
74
177
|
export interface CriticReport {
|
|
75
178
|
/** Full multi-line block for stdout (CI log + local terminal). */
|
|
76
179
|
stdout: string;
|
package/dist/report.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvD,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
|
package/dist/report.js
CHANGED
|
@@ -1,6 +1,87 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { artifactJsonPath, artifactLockPath, artifactMarkdownPath, resolveArtifactDir, } from "./paths.js";
|
|
3
3
|
import { parseReviewArtifact, REVIEW_SEVERITIES, } from "@momentiq/dark-factory-schemas";
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Issue dark-factory-platform#112 — flag-name → ReviewFinding-key mapping.
|
|
6
|
+
//
|
|
7
|
+
// The policy config (`AggregationConfig.unilateralVetoRules.requireCorroborationFor`)
|
|
8
|
+
// uses snake_case opaque identifiers so the wire surface is stable
|
|
9
|
+
// independent of the TypeScript field name. The aggregator translates
|
|
10
|
+
// each identifier to the corresponding `ReviewFinding` boolean property
|
|
11
|
+
// at evaluation time. Future flags (e.g. `requires_human_judgment`,
|
|
12
|
+
// `low_confidence`) land here when they need the same
|
|
13
|
+
// corroboration-or-disagreement-note treatment.
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
const FLAG_TO_FINDING_KEY = {
|
|
16
|
+
self_inconsistent: "selfInconsistent",
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* True when the finding carries any of the flags listed in
|
|
20
|
+
* `requireCorroborationFor`. Flags not present in `FLAG_TO_FINDING_KEY`
|
|
21
|
+
* are ignored — an unknown flag in config is a no-op rather than a
|
|
22
|
+
* runtime error so operators can pin policy without first deploying a
|
|
23
|
+
* CLI that knows the flag (forward-compat).
|
|
24
|
+
*
|
|
25
|
+
* Exported so `gate.ts` shares the canonical translation table and
|
|
26
|
+
* cannot drift.
|
|
27
|
+
*/
|
|
28
|
+
export function findingCarriesCorroborationFlag(finding, flagNames) {
|
|
29
|
+
for (const name of flagNames) {
|
|
30
|
+
const key = FLAG_TO_FINDING_KEY[name];
|
|
31
|
+
if (key === undefined)
|
|
32
|
+
continue;
|
|
33
|
+
const v = finding[key];
|
|
34
|
+
if (v === true)
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* True when at least one OTHER completed critic has a blocking-severity
|
|
41
|
+
* finding on the SAME file within `radius` lines of `target`.
|
|
42
|
+
*
|
|
43
|
+
* Exported so `gate.ts` shares the canonical corroboration predicate
|
|
44
|
+
* and cannot drift.
|
|
45
|
+
*
|
|
46
|
+
* "Other" = different `criticId`. Critics never corroborate themselves.
|
|
47
|
+
* "Blocking-severity" = `blockingSeverities.includes(f.severity)`. The
|
|
48
|
+
* corroborator is checked WITHOUT recursing into the corroboration
|
|
49
|
+
* rule — a corroborator that itself carries `selfInconsistent: true`
|
|
50
|
+
* still corroborates (the spec's safety net is "another critic saw a
|
|
51
|
+
* blocker here too", not "another critic's blocker survived
|
|
52
|
+
* corroboration"). This intentional asymmetry prevents an N-way
|
|
53
|
+
* corroboration-cycle.
|
|
54
|
+
*
|
|
55
|
+
* `target.file === undefined` → returns false (corroboration is
|
|
56
|
+
* file-scoped; a finding without a file cannot be corroborated).
|
|
57
|
+
* `target.line === undefined` → treats the target line as `0` (matches
|
|
58
|
+
* any line in the same file within the radius window — the safety
|
|
59
|
+
* net errs toward "yes, this is corroborated" when the target's
|
|
60
|
+
* location is imprecise).
|
|
61
|
+
*/
|
|
62
|
+
export function isCorroboratedByOtherCritic(target, targetCriticId, allResults, blockingSeverities, radius) {
|
|
63
|
+
if (!target.file)
|
|
64
|
+
return false;
|
|
65
|
+
const targetLine = target.line ?? 0;
|
|
66
|
+
for (const other of allResults) {
|
|
67
|
+
if (other.criticId === targetCriticId)
|
|
68
|
+
continue;
|
|
69
|
+
if (other.status !== "complete")
|
|
70
|
+
continue;
|
|
71
|
+
for (const f of other.findings) {
|
|
72
|
+
if (!blockingSeverities.includes(f.severity))
|
|
73
|
+
continue;
|
|
74
|
+
if (f.file !== target.file)
|
|
75
|
+
continue;
|
|
76
|
+
if (target.line === undefined || f.line === undefined)
|
|
77
|
+
return true;
|
|
78
|
+
const distance = Math.abs(f.line - targetLine);
|
|
79
|
+
if (distance <= radius)
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
4
85
|
const SEVERITY_RANK = {
|
|
5
86
|
blocker: 0,
|
|
6
87
|
high: 1,
|
|
@@ -14,9 +95,18 @@ export function buildAggregate(inputs) {
|
|
|
14
95
|
const aggregationPolicy = loaded.config.aggregation.policy;
|
|
15
96
|
const blockingSeverities = loaded.config.aggregation.blockingSeverities;
|
|
16
97
|
let gateVerdict;
|
|
98
|
+
let disagreements = [];
|
|
17
99
|
if (status === "complete") {
|
|
18
|
-
|
|
100
|
+
const aggregate = aggregateOutcome(criticResults, blockingSeverities, loaded, quorumOverride);
|
|
101
|
+
gateVerdict = aggregate.verdict;
|
|
102
|
+
disagreements = aggregate.disagreements;
|
|
19
103
|
}
|
|
104
|
+
// Cursor finding (report.ts:981) — persist the demoted findings on
|
|
105
|
+
// the artifact so operators auditing the on-disk JSON see the
|
|
106
|
+
// demotion without re-running the aggregator. Always emit `[]` on
|
|
107
|
+
// complete artifacts so consumers can branch on `.length` without
|
|
108
|
+
// an undefined check; omit on pending/error artifacts (no
|
|
109
|
+
// aggregation ran, no policy outcome to record).
|
|
20
110
|
const artifact = {
|
|
21
111
|
version: 2,
|
|
22
112
|
status,
|
|
@@ -30,9 +120,21 @@ export function buildAggregate(inputs) {
|
|
|
30
120
|
criticResults,
|
|
31
121
|
createdAt,
|
|
32
122
|
...(gateVerdict !== undefined ? { gateVerdict } : {}),
|
|
123
|
+
...(status === "complete" ? { disagreements } : {}),
|
|
33
124
|
};
|
|
34
125
|
return artifact;
|
|
35
126
|
}
|
|
127
|
+
function aggregateOutcome(results, blockingSeverities, loaded, quorumOverride) {
|
|
128
|
+
if (loaded.config.aggregation.policy === "min-complete-quorum") {
|
|
129
|
+
const quorum = quorumOverride ?? loaded.config.aggregation.quorum;
|
|
130
|
+
const outcome = quorumAggregateVerdict(results, blockingSeverities, quorum ?? 2, loaded.config.aggregation.unilateralVetoRules);
|
|
131
|
+
return { verdict: outcome.verdict, disagreements: outcome.disagreements };
|
|
132
|
+
}
|
|
133
|
+
return {
|
|
134
|
+
verdict: aggregateVerdict(results, blockingSeverities, loaded, quorumOverride),
|
|
135
|
+
disagreements: [],
|
|
136
|
+
};
|
|
137
|
+
}
|
|
36
138
|
function aggregateVerdict(results, blockingSeverities, loaded, quorumOverride) {
|
|
37
139
|
// Cycle 322.3 — dispatch on policy. `min-complete-quorum` uses the
|
|
38
140
|
// quorum aggregator below; everything else falls through to the
|
|
@@ -45,11 +147,14 @@ function aggregateVerdict(results, blockingSeverities, loaded, quorumOverride) {
|
|
|
45
147
|
// report CHANGES_REQUESTED (uses root quorum=2). Codex P2 caught
|
|
46
148
|
// this divergence on PR #1468.
|
|
47
149
|
const quorum = quorumOverride ?? loaded.config.aggregation.quorum;
|
|
150
|
+
// Issue dark-factory-platform#112 — thread the optional
|
|
151
|
+
// `unilateralVetoRules` so the persisted artifact's verdict honors
|
|
152
|
+
// the same corroboration policy the runtime gate evaluator does.
|
|
48
153
|
// Schema validation guarantees `quorum` is set when the policy
|
|
49
154
|
// is `min-complete-quorum`; the defensive fallback to 2 is for
|
|
50
155
|
// hand-constructed configs in tests (the parser would already
|
|
51
156
|
// have rejected a real on-disk config without quorum).
|
|
52
|
-
return quorumAggregateVerdict(results, blockingSeverities, quorum ?? 2).verdict;
|
|
157
|
+
return quorumAggregateVerdict(results, blockingSeverities, quorum ?? 2, loaded.config.aggregation.unilateralVetoRules).verdict;
|
|
53
158
|
}
|
|
54
159
|
// Cycle 322.2 Component 4 — `required` flag threading.
|
|
55
160
|
//
|
|
@@ -121,16 +226,115 @@ export function isCriticCompleted(r) {
|
|
|
121
226
|
* CHANGES_REQUESTED verdict) blocks the gate regardless of how many
|
|
122
227
|
* other critics approved. Returns `false` for non-completed critics
|
|
123
228
|
* — only a completed critic can veto.
|
|
229
|
+
*
|
|
230
|
+
* Issue dark-factory-platform#112 — when `corroborationCtx` is
|
|
231
|
+
* supplied AND the critic's only veto trigger is a blocking finding
|
|
232
|
+
* carrying one of the configured corroboration-required flags (e.g.
|
|
233
|
+
* `selfInconsistent: true`), the function checks whether ANOTHER
|
|
234
|
+
* critic raises a blocking finding on the same file within
|
|
235
|
+
* `rules.requireCorroborationOnHunkRadius` lines. If not, the
|
|
236
|
+
* finding is demoted to a `critic_disagreement` note (pushed to
|
|
237
|
+
* `disagreementSink`) and DOES NOT contribute to a veto. Findings
|
|
238
|
+
* without a flag still veto unconditionally — the safety net is
|
|
239
|
+
* intact for findings the critic can defend.
|
|
240
|
+
*
|
|
241
|
+
* Note: a critic that vetoes via `CHANGES_REQUESTED` verdict OR
|
|
242
|
+
* `requiresHumanJudgment` is NOT subject to corroboration — those
|
|
243
|
+
* are coarser-grained signals than per-finding flags and the spec
|
|
244
|
+
* narrows the rule to per-finding flag triggers only.
|
|
124
245
|
*/
|
|
125
|
-
export function criticVetoesGate(r, blockingSeverities) {
|
|
246
|
+
export function criticVetoesGate(r, blockingSeverities, corroborationCtx) {
|
|
126
247
|
if (!isCriticCompleted(r))
|
|
127
248
|
return false;
|
|
128
|
-
|
|
129
|
-
|
|
249
|
+
// requiresHumanJudgment is a coarser-grained signal than per-finding
|
|
250
|
+
// flags; the spec narrows corroboration to per-finding triggers
|
|
251
|
+
// only. A critic that flags requiresHumanJudgment vetoes
|
|
252
|
+
// unconditionally regardless of policy.
|
|
130
253
|
if (r.requiresHumanJudgment)
|
|
131
254
|
return true;
|
|
132
|
-
|
|
255
|
+
// Back-compat path: no policy → check verdict OR any blocking
|
|
256
|
+
// finding (the pre-#112 §11 semantic).
|
|
257
|
+
if (corroborationCtx === undefined) {
|
|
258
|
+
if (r.verdict === "CHANGES_REQUESTED")
|
|
259
|
+
return true;
|
|
260
|
+
return hasBlockingFinding(r.findings, blockingSeverities);
|
|
261
|
+
}
|
|
262
|
+
// Issue dark-factory-platform#112 — policy-aware veto evaluation.
|
|
263
|
+
// Walk every blocking finding and partition into:
|
|
264
|
+
// - `anyUnflaggedBlocking`: the safety net — any finding the
|
|
265
|
+
// critic can defend stands as a veto.
|
|
266
|
+
// - `anyCorroboratedFlagged`: flagged AND another critic raised a
|
|
267
|
+
// same-file blocker within radius → veto stands.
|
|
268
|
+
// - `demotions`: flagged AND uncorroborated → recorded as
|
|
269
|
+
// `critic_disagreement` notes; do NOT contribute to veto.
|
|
270
|
+
//
|
|
271
|
+
// A critic with `verdict === "CHANGES_REQUESTED"` is itself subject
|
|
272
|
+
// to demotion under policy WHEN every blocking finding is demoted
|
|
273
|
+
// AND the verdict is downstream of those findings (heuristic: if no
|
|
274
|
+
// unflagged or corroborated blocker remains, the CR verdict is the
|
|
275
|
+
// critic's downstream summary of the now-demoted finding(s)). This
|
|
276
|
+
// is the spec's "verdict flips from CHANGES_REQUESTED to APPROVED"
|
|
277
|
+
// case from the DoD. A critic with CR and NO blocking findings at
|
|
278
|
+
// all retains its veto unconditionally — the verdict in that case
|
|
279
|
+
// is verdict-only with no per-finding flag to demote.
|
|
280
|
+
const { allResults, rules, disagreementSink } = corroborationCtx;
|
|
281
|
+
let anyUnflaggedBlocking = false;
|
|
282
|
+
let anyCorroboratedFlagged = false;
|
|
283
|
+
let anyBlockingFinding = false;
|
|
284
|
+
const demotions = [];
|
|
285
|
+
for (const f of r.findings) {
|
|
286
|
+
if (!blockingSeverities.includes(f.severity))
|
|
287
|
+
continue;
|
|
288
|
+
anyBlockingFinding = true;
|
|
289
|
+
const flagged = findingCarriesCorroborationFlag(f, rules.requireCorroborationFor);
|
|
290
|
+
if (!flagged) {
|
|
291
|
+
anyUnflaggedBlocking = true;
|
|
292
|
+
continue;
|
|
293
|
+
}
|
|
294
|
+
const corroborated = isCorroboratedByOtherCritic(f, r.criticId, allResults, blockingSeverities, rules.requireCorroborationOnHunkRadius);
|
|
295
|
+
if (corroborated) {
|
|
296
|
+
anyCorroboratedFlagged = true;
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
// Flagged AND uncorroborated → demote to a disagreement note.
|
|
300
|
+
if (f.file) {
|
|
301
|
+
demotions.push({
|
|
302
|
+
criticId: r.criticId,
|
|
303
|
+
file: f.file,
|
|
304
|
+
...(f.line !== undefined ? { line: f.line } : {}),
|
|
305
|
+
severity: f.severity,
|
|
306
|
+
// The first flag the finding actually carries wins for note
|
|
307
|
+
// attribution; in practice today only `self_inconsistent` is
|
|
308
|
+
// a registered key so this is a single-element search.
|
|
309
|
+
flag: rules.requireCorroborationFor.find((name) => {
|
|
310
|
+
const key = FLAG_TO_FINDING_KEY[name];
|
|
311
|
+
return key !== undefined && f[key] === true;
|
|
312
|
+
}) ?? rules.requireCorroborationFor[0],
|
|
313
|
+
evidence: f.evidence,
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
// Veto sustained when any defendable signal remains:
|
|
318
|
+
// - An unflagged blocker (the safety net).
|
|
319
|
+
// - A corroborated flagged blocker (another critic agrees).
|
|
320
|
+
// - A CHANGES_REQUESTED verdict that's NOT downstream of the
|
|
321
|
+
// now-demoted findings — i.e. the critic returned CR without any
|
|
322
|
+
// blocking finding to attribute it to (verdict-only block, the
|
|
323
|
+
// coarser §11 signal). That CR survives policy because there's
|
|
324
|
+
// no per-finding flag to demote it through.
|
|
325
|
+
if (anyUnflaggedBlocking || anyCorroboratedFlagged) {
|
|
326
|
+
if (disagreementSink)
|
|
327
|
+
disagreementSink.push(...demotions);
|
|
328
|
+
return true;
|
|
329
|
+
}
|
|
330
|
+
if (r.verdict === "CHANGES_REQUESTED" && !anyBlockingFinding) {
|
|
331
|
+
// Verdict-only block, no blockers to demote → veto sustained.
|
|
133
332
|
return true;
|
|
333
|
+
}
|
|
334
|
+
// All blockers demoted (and either APPROVED verdict OR
|
|
335
|
+
// CHANGES_REQUESTED-downstream-of-blockers) → no veto.
|
|
336
|
+
if (disagreementSink)
|
|
337
|
+
disagreementSink.push(...demotions);
|
|
134
338
|
return false;
|
|
135
339
|
}
|
|
136
340
|
/**
|
|
@@ -154,15 +358,29 @@ export function criticVetoesGate(r, blockingSeverities) {
|
|
|
154
358
|
* property: an outage that knocks out two critics doesn't paralyze
|
|
155
359
|
* the third critic's BLOCKER finding.
|
|
156
360
|
*/
|
|
157
|
-
export function quorumAggregateVerdict(results, blockingSeverities, quorum) {
|
|
361
|
+
export function quorumAggregateVerdict(results, blockingSeverities, quorum, unilateralVetoRules) {
|
|
158
362
|
const completed = results.filter(isCriticCompleted);
|
|
159
|
-
const
|
|
363
|
+
const disagreements = [];
|
|
364
|
+
// Issue dark-factory-platform#112 — when the policy is set, thread
|
|
365
|
+
// it through every `criticVetoesGate` call so a single uncorroborated
|
|
366
|
+
// flagged finding doesn't sweep a veto. The disagreement sink is
|
|
367
|
+
// shared across critics so the runner sees all demotions in one
|
|
368
|
+
// pass.
|
|
369
|
+
const ctx = unilateralVetoRules !== undefined
|
|
370
|
+
? {
|
|
371
|
+
allResults: results,
|
|
372
|
+
rules: unilateralVetoRules,
|
|
373
|
+
disagreementSink: disagreements,
|
|
374
|
+
}
|
|
375
|
+
: undefined;
|
|
376
|
+
const vetoer = completed.find((r) => ctx ? criticVetoesGate(r, blockingSeverities, ctx) : criticVetoesGate(r, blockingSeverities));
|
|
160
377
|
if (vetoer) {
|
|
161
378
|
return {
|
|
162
379
|
verdict: "CHANGES_REQUESTED",
|
|
163
380
|
reason: "veto",
|
|
164
381
|
completedCount: completed.length,
|
|
165
382
|
totalCount: results.length,
|
|
383
|
+
disagreements,
|
|
166
384
|
};
|
|
167
385
|
}
|
|
168
386
|
if (completed.length < quorum) {
|
|
@@ -171,12 +389,40 @@ export function quorumAggregateVerdict(results, blockingSeverities, quorum) {
|
|
|
171
389
|
reason: "quorum_unmet",
|
|
172
390
|
completedCount: completed.length,
|
|
173
391
|
totalCount: results.length,
|
|
392
|
+
disagreements,
|
|
174
393
|
};
|
|
175
394
|
}
|
|
176
395
|
// Quorum met and no veto — vote the majority of completed critics.
|
|
177
396
|
// Without veto, every completed critic has APPROVED OR (no verdict
|
|
178
397
|
// — schema impossible, but defensive). Count APPROVED vs other.
|
|
179
|
-
|
|
398
|
+
//
|
|
399
|
+
// Issue dark-factory-platform#112 — when a corroboration policy is
|
|
400
|
+
// active and a critic's CHANGES_REQUESTED verdict is downstream of
|
|
401
|
+
// a now-demoted blocker (every blocking finding the critic produced
|
|
402
|
+
// was demoted under the policy), treat that critic as effectively
|
|
403
|
+
// APPROVED for majority counting. Without this, the critic that
|
|
404
|
+
// produced the demoted blocker would still flip the majority to
|
|
405
|
+
// CHANGES_REQUESTED via its CR verdict, which would undo the
|
|
406
|
+
// demotion the policy just performed. This is the spec's DoD case:
|
|
407
|
+
// "verdict flips from CHANGES_REQUESTED to APPROVED after the
|
|
408
|
+
// probe-tagged blocker is demoted, no other critic finds a
|
|
409
|
+
// corroborating blocker on the same file within radius."
|
|
410
|
+
const effectivelyApproved = (r) => {
|
|
411
|
+
if (r.verdict === "APPROVED")
|
|
412
|
+
return true;
|
|
413
|
+
if (ctx === undefined)
|
|
414
|
+
return false;
|
|
415
|
+
// If the critic returned CR with at least one blocker and every
|
|
416
|
+
// blocker was demoted to a disagreement note attributed to this
|
|
417
|
+
// critic, the CR verdict is downstream of the now-demoted
|
|
418
|
+
// finding(s).
|
|
419
|
+
const blockers = r.findings.filter((f) => blockingSeverities.includes(f.severity));
|
|
420
|
+
if (blockers.length === 0)
|
|
421
|
+
return false;
|
|
422
|
+
const demotedForThisCritic = disagreements.filter((d) => d.criticId === r.criticId).length;
|
|
423
|
+
return demotedForThisCritic >= blockers.length;
|
|
424
|
+
};
|
|
425
|
+
const approveCount = completed.filter(effectivelyApproved).length;
|
|
180
426
|
const changesCount = completed.length - approveCount;
|
|
181
427
|
// Ties favor CHANGES_REQUESTED (conservative). With 0 changes, all
|
|
182
428
|
// approved → APPROVED. With any changes >= approveCount → CHANGES_REQUESTED.
|
|
@@ -190,6 +436,7 @@ export function quorumAggregateVerdict(results, blockingSeverities, quorum) {
|
|
|
190
436
|
reason: "majority",
|
|
191
437
|
completedCount: completed.length,
|
|
192
438
|
totalCount: results.length,
|
|
439
|
+
disagreements,
|
|
193
440
|
};
|
|
194
441
|
}
|
|
195
442
|
/**
|
|
@@ -483,7 +730,14 @@ export function renderMarkdown(artifact) {
|
|
|
483
730
|
for (const f of subset) {
|
|
484
731
|
lines.push("");
|
|
485
732
|
const tag = f.manifestoSection ? ` ${f.manifestoSection}` : "";
|
|
486
|
-
|
|
733
|
+
// Cursor finding (report.ts:981) — surface the
|
|
734
|
+
// self-consistency-probe verdict alongside the location so a
|
|
735
|
+
// reader scanning the markdown immediately sees which
|
|
736
|
+
// blockers were probe-flagged. The aggregator may have
|
|
737
|
+
// demoted these to disagreement notes — see the
|
|
738
|
+
// "Demoted findings" section at the end of the artifact.
|
|
739
|
+
const probeTag = f.selfInconsistent === true ? " [self-inconsistent]" : "";
|
|
740
|
+
lines.push(`- **${f.category}${tag}** — \`${f.file ?? "(no file)"}\`${f.line !== undefined ? `:${f.line}` : ""}${f.symbol ? ` (\`${f.symbol}\`)` : ""}${probeTag}`);
|
|
487
741
|
lines.push(` - Evidence: ${f.evidence}`);
|
|
488
742
|
lines.push(` - Impact: ${f.impact}`);
|
|
489
743
|
lines.push(` - Required fix: ${f.requiredFix}`);
|
|
@@ -510,6 +764,24 @@ export function renderMarkdown(artifact) {
|
|
|
510
764
|
}
|
|
511
765
|
lines.push("");
|
|
512
766
|
}
|
|
767
|
+
// Cursor finding (report.ts:981) — surface the aggregator's
|
|
768
|
+
// demoted findings so a reader of the per-SHA markdown sees the
|
|
769
|
+
// policy outcome (which blockers became disagreement notes and
|
|
770
|
+
// why). Omitted entirely when no demotions occurred (the common
|
|
771
|
+
// case for runs without `unilateralVetoRules` set or for runs
|
|
772
|
+
// where every flagged blocker corroborated).
|
|
773
|
+
if (artifact.disagreements && artifact.disagreements.length > 0) {
|
|
774
|
+
lines.push("## Demoted findings");
|
|
775
|
+
lines.push("");
|
|
776
|
+
lines.push("Findings the aggregator demoted from a unilateral veto to an informational `critic_disagreement` note under `unilateralVetoRules.requireCorroborationFor`.");
|
|
777
|
+
lines.push("");
|
|
778
|
+
for (const d of artifact.disagreements) {
|
|
779
|
+
const loc = d.line !== undefined ? `${d.file}:${d.line}` : d.file;
|
|
780
|
+
lines.push(`- **${d.criticId}** — \`${loc}\` (${d.severity}, flag: \`${d.flag}\`)`);
|
|
781
|
+
lines.push(` - Evidence: ${d.evidence}`);
|
|
782
|
+
}
|
|
783
|
+
lines.push("");
|
|
784
|
+
}
|
|
513
785
|
return `${lines.join("\n")}\n`;
|
|
514
786
|
}
|
|
515
787
|
export async function writePending(loaded, inputs) {
|
package/dist/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
|