harness-everything 0.40.0 → 0.41.1
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/.agents/harness-everything/project-docs.json +9 -0
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +51 -0
- package/benchmarks/results/f1-doc-path-baseline/1-source-clean.stderr.txt +0 -0
- package/benchmarks/results/f1-doc-path-baseline/1-source-clean.stdout.json +20 -0
- package/benchmarks/results/f1-doc-path-baseline/2-injected-architecture.md +229 -0
- package/benchmarks/results/f1-doc-path-baseline/2-source-injected.stderr.txt +0 -0
- package/benchmarks/results/f1-doc-path-baseline/2-source-injected.stdout.json +33 -0
- package/benchmarks/results/f1-doc-path-baseline/3-source-reverted.stderr.txt +0 -0
- package/benchmarks/results/f1-doc-path-baseline/3-source-reverted.stdout.json +20 -0
- package/benchmarks/results/f1-doc-path-baseline/4a-packaged-clean.stderr.txt +0 -0
- package/benchmarks/results/f1-doc-path-baseline/4a-packaged-clean.stdout.json +20 -0
- package/benchmarks/results/f1-doc-path-baseline/4b-packaged-injected.stderr.txt +0 -0
- package/benchmarks/results/f1-doc-path-baseline/4b-packaged-injected.stdout.json +33 -0
- package/benchmarks/results/f1-doc-path-baseline/5-source-missing-config.stderr.txt +0 -0
- package/benchmarks/results/f1-doc-path-baseline/5-source-missing-config.stdout.json +15 -0
- package/benchmarks/results/f1-doc-path-baseline/5b-packaged-missing-config.stderr.txt +0 -0
- package/benchmarks/results/f1-doc-path-baseline/5b-packaged-missing-config.stdout.json +15 -0
- package/benchmarks/results/f1-doc-path-baseline/README.md +54 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/1-source-clean.stderr.txt +0 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/1-source-clean.stdout.json +115 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/2-injected-document.md +328 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/2-source-injected.stderr.txt +0 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/2-source-injected.stdout.json +127 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/3-source-reverted.stderr.txt +0 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/3-source-reverted.stdout.json +115 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/4a-packaged-clean.stderr.txt +0 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/4a-packaged-clean.stdout.json +115 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/4b-packaged-injected.stderr.txt +0 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/4b-packaged-injected.stdout.json +127 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/5-source-missing-config.stderr.txt +0 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/5-source-missing-config.stdout.json +15 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/5b-packaged-missing-config.stderr.txt +0 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/5b-packaged-missing-config.stdout.json +15 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/6-supplementary-fixture-ok.input.md +8 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/6-supplementary-fixture-ok.stdout.json +16 -0
- package/benchmarks/results/f1-doc-path-baseline/before-fix/README.md +34 -0
- package/benchmarks/results/f1-doc-path-baseline/probe-31-docs/after.json +248 -0
- package/benchmarks/results/f1-doc-path-baseline/probe-31-docs/before.json +254 -0
- package/benchmarks/results/f1-doc-path-baseline/probe-31-docs/probe.js +26 -0
- package/benchmarks/results/f2-doc-craft-baseline/README.md +32 -0
- package/benchmarks/results/f2-doc-craft-baseline/arm-f1-report.md +84 -0
- package/benchmarks/results/f2-doc-craft-baseline/arm-f1-task.md +21 -0
- package/benchmarks/results/f2-doc-craft-baseline/arm-f1.diff +19 -0
- package/benchmarks/results/f2-doc-craft-baseline/arm-f2-report.md +110 -0
- package/benchmarks/results/f2-doc-craft-baseline/arm-f2-task.md +21 -0
- package/benchmarks/results/f2-doc-craft-baseline/arm-f2.diff +19 -0
- package/benchmarks/results/f3-derived-views-baseline/README.md +34 -0
- package/benchmarks/results/f3-derived-views-baseline/arm-f2-report.md +43 -0
- package/benchmarks/results/f3-derived-views-baseline/arm-f2-task.md +21 -0
- package/benchmarks/results/f3-derived-views-baseline/arm-f2.diff +21 -0
- package/benchmarks/results/f3-derived-views-baseline/arm-f3-report.md +57 -0
- package/benchmarks/results/f3-derived-views-baseline/arm-f3-task.md +21 -0
- package/benchmarks/results/f3-derived-views-baseline/arm-f3.diff +21 -0
- package/benchmarks/results/live-host/claude-325-3b-s2b/README.md +99 -0
- package/benchmarks/results/live-host/claude-325-3b-s2b/capture.sanitized.jsonl +26 -0
- package/ci/archive/325-prep/README.md +71 -0
- package/ci/{prep → archive/325-prep}/doc-reconciliation-red.js +9 -7
- package/ci/archive/325-prep/f4-expected-red.json +34 -0
- package/ci/archive/325-prep/historical-qualification.test.js +143 -0
- package/ci/fixtures/doc-obligations/reconciliation-prep/cases.json +17 -4
- package/ci/fixtures/doc-obligations/reconciliation-prep/pending-red.json +8 -56
- package/ci/fixtures/doc-obligations/reconciliation-prep/trust-contract.json +2 -2
- package/ci/fixtures/doc-obligations/reconciliation-s1/cases.json +17 -5
- package/ci/fixtures/doc-obligations/reconciliation-s2b/capture/harness.js +415 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/capture/off-handoff-golden.json +16 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/capture/payload-post-tool-use-failure.json +11 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/capture/payload-post-tool-use-success-minimal.json +9 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/capture/payload-post-tool-use-success.json +13 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/capture/payload-subagent-start.json +7 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/capture/payload-subagent-stop-freetext-reject.json +11 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/capture/payload-subagent-stop-reject.json +11 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/capture/payload-subagent-stop.json +11 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/capture/payload-task-result.json +19 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/corpus/off-capture-only.json +99 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/corpus/off-legacy.json +67 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/corpus/on-concurrent-writers.json +62 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/corpus/on-lookalikes-runtime-mutations.json +67 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/corpus/on-malformed.json +85 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/corpus/on-normal-session.json +74 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/corpus/on-runtime-drift-later-npm-test.json +58 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/corpus/on-valid-direct-quoted-review.json +85 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/f4/cases.json +2267 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/wiring/cases.json +1110 -0
- package/ci/fixtures/doc-obligations/reconciliation-s2b/wiring/legacy-off-golden.json +674 -0
- package/ci/lib/doc-reconciliation-file-spy.js +23 -0
- package/ci/lib/doc-reconciliation-prep-fixtures.js +136 -10
- package/ci/lib/doc-reconciliation-qualification-preload.js +37 -0
- package/ci/lib/doc-reconciliation-replay.js +104 -0
- package/ci/lib/doc-reconciliation-staged-tree.js +102 -0
- package/ci/mechanism-2p-opencode-v2-entrypoint.test.js +179 -0
- package/ci/mechanism-325-3b-preparation.test.js +27 -101
- package/ci/mechanism-325-3b-s2b-capture.test.js +561 -0
- package/ci/mechanism-325-3b-s2b-wiring.test.js +668 -0
- package/ci/mechanism-325-f1-doc-check.test.js +674 -0
- package/ci/mechanism-325-f2-doc-craft.test.js +597 -0
- package/ci/mechanism-325-f3-derived-views.test.js +798 -0
- package/ci/mechanism-325-f4-invariants.test.js +606 -0
- package/ci/mechanism-325-f4-projections.test.js +382 -0
- package/ci/mechanism-325-f4-qualification.test.js +228 -0
- package/ci/mechanism-325-f4-trust-boundary.test.js +880 -0
- package/ci/mechanism-365-step-edit-accounting.test.js +395 -0
- package/ci/mutation-check.js +26 -3
- package/docs/architecture.md +5 -0
- package/docs/doc-workflow-reconciliation.md +331 -4
- package/docs/document-lifecycle.md +11 -0
- package/docs/governed-index.md +20 -0
- package/docs/platform-capabilities.md +22 -2
- package/grill-with-docs/SKILL.md +1 -1
- package/grill-with-docs/references/session-playbook.md +4 -0
- package/harness-everything/SKILL.md +1 -1
- package/harness-everything/references/doc-check.md +186 -0
- package/harness-everything/references/documentation/_shared/maintenance.md +41 -0
- package/harness-everything/references/documentation/_shared/writing-craft.md +59 -0
- package/harness-everything/references/triage-and-tiers.md +4 -0
- package/harness-everything/scripts/doc-check.js +442 -0
- package/harness-everything/scripts/doc-lifecycle.js +3 -0
- package/hooks/hooks.json +46 -0
- package/hooks/scripts/lib/doc-reconciliation-capture.sanitized.jsonl +26 -0
- package/hooks/scripts/lib/doc-reconciliation-pilot.js +171 -2
- package/hooks/scripts/lib/doc-reconciliation-provider.js +1059 -0
- package/hooks/scripts/lib/doc-reconciliation-qualification.json +34 -0
- package/hooks/scripts/lib/workflow-obligations.js +7 -0
- package/hooks/scripts/state-persist.js +105 -3
- package/hooks/scripts/workflow-stop-gate.js +7 -2
- package/opencode-plugin/README.md +15 -0
- package/opencode-plugin/index.mjs +77 -0
- package/opencode-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/plugins/harness-everything/.codex-plugin/plugin.json +1 -1
- package/plugins/harness-everything/hooks/scripts/lib/doc-reconciliation-capture.sanitized.jsonl +26 -0
- package/plugins/harness-everything/hooks/scripts/lib/doc-reconciliation-pilot.js +171 -2
- package/plugins/harness-everything/hooks/scripts/lib/doc-reconciliation-provider.js +1059 -0
- package/plugins/harness-everything/hooks/scripts/lib/doc-reconciliation-qualification.json +34 -0
- package/plugins/harness-everything/hooks/scripts/lib/workflow-obligations.js +7 -0
- package/plugins/harness-everything/hooks/scripts/state-persist.js +105 -3
- package/plugins/harness-everything/hooks/scripts/workflow-stop-gate.js +7 -2
- package/plugins/harness-everything/plugin.json +1 -1
- package/plugins/harness-everything/skills/grill-with-docs/SKILL.md +1 -1
- package/plugins/harness-everything/skills/grill-with-docs/references/session-playbook.md +4 -0
- package/plugins/harness-everything/skills/harness-everything/SKILL.md +1 -1
- package/plugins/harness-everything/skills/harness-everything/references/doc-check.md +186 -0
- package/plugins/harness-everything/skills/harness-everything/references/documentation/_shared/maintenance.md +41 -0
- package/plugins/harness-everything/skills/harness-everything/references/documentation/_shared/writing-craft.md +59 -0
- package/plugins/harness-everything/skills/harness-everything/references/triage-and-tiers.md +4 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/doc-check.js +442 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/doc-lifecycle.js +3 -0
- package/plugins/harness-everything/skills/repo-docs/SKILL.md +1 -1
- package/plugins/harness-everything/skills/repo-docs/references/process-guide.md +4 -0
- package/plugins/harness-everything/skills/to-spec/SKILL.md +1 -1
- package/plugins/harness-everything/skills/to-spec/references/process.md +4 -0
- package/plugins/harness-everything/skills/to-tickets/SKILL.md +1 -1
- package/plugins/harness-everything/skills/to-tickets/references/publishing-and-templates.md +4 -0
- package/repo-docs/SKILL.md +1 -1
- package/repo-docs/references/process-guide.md +4 -0
- package/sbom.cdx.json +7 -7
- package/to-spec/SKILL.md +1 -1
- package/to-spec/references/process.md +4 -0
- package/to-tickets/SKILL.md +1 -1
- package/to-tickets/references/publishing-and-templates.md +4 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lint": {
|
|
3
|
+
"exit": 1,
|
|
4
|
+
"evidence": {
|
|
5
|
+
"immutability": "observed"
|
|
6
|
+
},
|
|
7
|
+
"diagnostics": [
|
|
8
|
+
{
|
|
9
|
+
"code": "missing-req",
|
|
10
|
+
"severity": "error",
|
|
11
|
+
"path": "docs/document-lifecycle.md",
|
|
12
|
+
"message": "requirement REQ-GRAPH-012 is referenced but is not defined in an active PRD",
|
|
13
|
+
"id": "REQ-GRAPH-012"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"code": "missing-req",
|
|
17
|
+
"severity": "error",
|
|
18
|
+
"path": "docs/document-lifecycle.md",
|
|
19
|
+
"message": "requirement REQ-GRAPH-020 is referenced but is not defined in an active PRD",
|
|
20
|
+
"id": "REQ-GRAPH-020"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"code": "missing-req",
|
|
24
|
+
"severity": "error",
|
|
25
|
+
"path": "docs/document-lifecycle.md",
|
|
26
|
+
"message": "requirement REQ-GRPH-012 is referenced but is not defined in an active PRD",
|
|
27
|
+
"id": "REQ-GRPH-012"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"code": "missing-req",
|
|
31
|
+
"severity": "error",
|
|
32
|
+
"path": "docs/document-lifecycle.md",
|
|
33
|
+
"message": "requirement REQ-GRPH-013 is referenced but is not defined in an active PRD",
|
|
34
|
+
"id": "REQ-GRPH-013"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"code": "missing-req",
|
|
38
|
+
"severity": "error",
|
|
39
|
+
"path": "docs/document-lifecycle.md",
|
|
40
|
+
"message": "requirement REQ-GRPH-020 is referenced but is not defined in an active PRD",
|
|
41
|
+
"id": "REQ-GRPH-020"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"code": "missing-req",
|
|
45
|
+
"severity": "error",
|
|
46
|
+
"path": "docs/document-lifecycle.md",
|
|
47
|
+
"message": "requirement REQ-GRPH-099 is referenced but is not defined in an active PRD",
|
|
48
|
+
"id": "REQ-GRPH-099"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"code": "unresolved-ref",
|
|
52
|
+
"severity": "error",
|
|
53
|
+
"path": "docs/document-lifecycle.md",
|
|
54
|
+
"message": "reference GRPH-007 cannot be resolved",
|
|
55
|
+
"id": "GRPH-007"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"code": "unresolved-ref",
|
|
59
|
+
"severity": "error",
|
|
60
|
+
"path": "docs/document-lifecycle.md",
|
|
61
|
+
"message": "reference PRD-GRPH-001 cannot be resolved",
|
|
62
|
+
"id": "PRD-GRPH-001"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"code": "unresolved-ref",
|
|
66
|
+
"severity": "error",
|
|
67
|
+
"path": "docs/document-lifecycle.md",
|
|
68
|
+
"message": "reference PRD-GRPH-001@r2 cannot be resolved",
|
|
69
|
+
"id": "PRD-GRPH-001@r2"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"code": "unresolved-ref",
|
|
73
|
+
"severity": "error",
|
|
74
|
+
"path": "docs/document-lifecycle.md",
|
|
75
|
+
"message": "reference PRD-GRPH-001@r2#REQ-GRPH-012 cannot be resolved",
|
|
76
|
+
"id": "PRD-GRPH-001@r2#REQ-GRPH-012"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"code": "unresolved-ref",
|
|
80
|
+
"severity": "error",
|
|
81
|
+
"path": "docs/document-lifecycle.md",
|
|
82
|
+
"message": "reference PRD-GRPH-001@r3 cannot be resolved",
|
|
83
|
+
"id": "PRD-GRPH-001@r3"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"code": "unresolved-ref",
|
|
87
|
+
"severity": "error",
|
|
88
|
+
"path": "docs/document-lifecycle.md",
|
|
89
|
+
"message": "reference PRD-GRPH-001@r4 cannot be resolved",
|
|
90
|
+
"id": "PRD-GRPH-001@r4"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"code": "unresolved-ref",
|
|
94
|
+
"severity": "error",
|
|
95
|
+
"path": "docs/document-lifecycle.md",
|
|
96
|
+
"message": "reference legacy:GRPH-007 cannot be resolved",
|
|
97
|
+
"id": "legacy:GRPH-007"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"code": "unresolved-ref",
|
|
101
|
+
"severity": "error",
|
|
102
|
+
"path": "docs/document-lifecycle.md",
|
|
103
|
+
"message": "reference legacy:GRPH-007@docs/adr/legacy/v2/GRPH-007.md cannot be resolved",
|
|
104
|
+
"id": "legacy:GRPH-007@docs/adr/legacy/v2/GRPH-007.md"
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
"links": {
|
|
109
|
+
"checked": 6,
|
|
110
|
+
"broken": []
|
|
111
|
+
},
|
|
112
|
+
"coverage": {
|
|
113
|
+
"unsupported": []
|
|
114
|
+
}
|
|
115
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lint": {
|
|
3
|
+
"exit": 1,
|
|
4
|
+
"evidence": {
|
|
5
|
+
"immutability": "observed"
|
|
6
|
+
},
|
|
7
|
+
"diagnostics": [
|
|
8
|
+
{
|
|
9
|
+
"code": "missing-req",
|
|
10
|
+
"severity": "error",
|
|
11
|
+
"path": "docs/document-lifecycle.md",
|
|
12
|
+
"message": "requirement REQ-GRAPH-012 is referenced but is not defined in an active PRD",
|
|
13
|
+
"id": "REQ-GRAPH-012"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"code": "missing-req",
|
|
17
|
+
"severity": "error",
|
|
18
|
+
"path": "docs/document-lifecycle.md",
|
|
19
|
+
"message": "requirement REQ-GRAPH-020 is referenced but is not defined in an active PRD",
|
|
20
|
+
"id": "REQ-GRAPH-020"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"code": "missing-req",
|
|
24
|
+
"severity": "error",
|
|
25
|
+
"path": "docs/document-lifecycle.md",
|
|
26
|
+
"message": "requirement REQ-GRPH-012 is referenced but is not defined in an active PRD",
|
|
27
|
+
"id": "REQ-GRPH-012"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"code": "missing-req",
|
|
31
|
+
"severity": "error",
|
|
32
|
+
"path": "docs/document-lifecycle.md",
|
|
33
|
+
"message": "requirement REQ-GRPH-013 is referenced but is not defined in an active PRD",
|
|
34
|
+
"id": "REQ-GRPH-013"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"code": "missing-req",
|
|
38
|
+
"severity": "error",
|
|
39
|
+
"path": "docs/document-lifecycle.md",
|
|
40
|
+
"message": "requirement REQ-GRPH-020 is referenced but is not defined in an active PRD",
|
|
41
|
+
"id": "REQ-GRPH-020"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"code": "missing-req",
|
|
45
|
+
"severity": "error",
|
|
46
|
+
"path": "docs/document-lifecycle.md",
|
|
47
|
+
"message": "requirement REQ-GRPH-099 is referenced but is not defined in an active PRD",
|
|
48
|
+
"id": "REQ-GRPH-099"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"code": "unresolved-ref",
|
|
52
|
+
"severity": "error",
|
|
53
|
+
"path": "docs/document-lifecycle.md",
|
|
54
|
+
"message": "reference GRPH-007 cannot be resolved",
|
|
55
|
+
"id": "GRPH-007"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"code": "unresolved-ref",
|
|
59
|
+
"severity": "error",
|
|
60
|
+
"path": "docs/document-lifecycle.md",
|
|
61
|
+
"message": "reference PRD-GRPH-001 cannot be resolved",
|
|
62
|
+
"id": "PRD-GRPH-001"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"code": "unresolved-ref",
|
|
66
|
+
"severity": "error",
|
|
67
|
+
"path": "docs/document-lifecycle.md",
|
|
68
|
+
"message": "reference PRD-GRPH-001@r2 cannot be resolved",
|
|
69
|
+
"id": "PRD-GRPH-001@r2"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"code": "unresolved-ref",
|
|
73
|
+
"severity": "error",
|
|
74
|
+
"path": "docs/document-lifecycle.md",
|
|
75
|
+
"message": "reference PRD-GRPH-001@r2#REQ-GRPH-012 cannot be resolved",
|
|
76
|
+
"id": "PRD-GRPH-001@r2#REQ-GRPH-012"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"code": "unresolved-ref",
|
|
80
|
+
"severity": "error",
|
|
81
|
+
"path": "docs/document-lifecycle.md",
|
|
82
|
+
"message": "reference PRD-GRPH-001@r3 cannot be resolved",
|
|
83
|
+
"id": "PRD-GRPH-001@r3"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"code": "unresolved-ref",
|
|
87
|
+
"severity": "error",
|
|
88
|
+
"path": "docs/document-lifecycle.md",
|
|
89
|
+
"message": "reference PRD-GRPH-001@r4 cannot be resolved",
|
|
90
|
+
"id": "PRD-GRPH-001@r4"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"code": "unresolved-ref",
|
|
94
|
+
"severity": "error",
|
|
95
|
+
"path": "docs/document-lifecycle.md",
|
|
96
|
+
"message": "reference legacy:GRPH-007 cannot be resolved",
|
|
97
|
+
"id": "legacy:GRPH-007"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"code": "unresolved-ref",
|
|
101
|
+
"severity": "error",
|
|
102
|
+
"path": "docs/document-lifecycle.md",
|
|
103
|
+
"message": "reference legacy:GRPH-007@docs/adr/legacy/v2/GRPH-007.md cannot be resolved",
|
|
104
|
+
"id": "legacy:GRPH-007@docs/adr/legacy/v2/GRPH-007.md"
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
"links": {
|
|
109
|
+
"checked": 6,
|
|
110
|
+
"broken": []
|
|
111
|
+
},
|
|
112
|
+
"coverage": {
|
|
113
|
+
"unsupported": []
|
|
114
|
+
}
|
|
115
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lint": {
|
|
3
|
+
"exit": 1,
|
|
4
|
+
"evidence": {
|
|
5
|
+
"immutability": "observed"
|
|
6
|
+
},
|
|
7
|
+
"diagnostics": [
|
|
8
|
+
{
|
|
9
|
+
"code": "invalid-status",
|
|
10
|
+
"severity": "error",
|
|
11
|
+
"path": "docs/document-lifecycle.md",
|
|
12
|
+
"message": "status bogus is not valid for reference"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"code": "missing-req",
|
|
16
|
+
"severity": "error",
|
|
17
|
+
"path": "docs/document-lifecycle.md",
|
|
18
|
+
"message": "requirement REQ-GRAPH-012 is referenced but is not defined in an active PRD",
|
|
19
|
+
"id": "REQ-GRAPH-012"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"code": "missing-req",
|
|
23
|
+
"severity": "error",
|
|
24
|
+
"path": "docs/document-lifecycle.md",
|
|
25
|
+
"message": "requirement REQ-GRAPH-020 is referenced but is not defined in an active PRD",
|
|
26
|
+
"id": "REQ-GRAPH-020"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"code": "missing-req",
|
|
30
|
+
"severity": "error",
|
|
31
|
+
"path": "docs/document-lifecycle.md",
|
|
32
|
+
"message": "requirement REQ-GRPH-012 is referenced but is not defined in an active PRD",
|
|
33
|
+
"id": "REQ-GRPH-012"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"code": "missing-req",
|
|
37
|
+
"severity": "error",
|
|
38
|
+
"path": "docs/document-lifecycle.md",
|
|
39
|
+
"message": "requirement REQ-GRPH-013 is referenced but is not defined in an active PRD",
|
|
40
|
+
"id": "REQ-GRPH-013"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"code": "missing-req",
|
|
44
|
+
"severity": "error",
|
|
45
|
+
"path": "docs/document-lifecycle.md",
|
|
46
|
+
"message": "requirement REQ-GRPH-020 is referenced but is not defined in an active PRD",
|
|
47
|
+
"id": "REQ-GRPH-020"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"code": "missing-req",
|
|
51
|
+
"severity": "error",
|
|
52
|
+
"path": "docs/document-lifecycle.md",
|
|
53
|
+
"message": "requirement REQ-GRPH-099 is referenced but is not defined in an active PRD",
|
|
54
|
+
"id": "REQ-GRPH-099"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"code": "unresolved-ref",
|
|
58
|
+
"severity": "error",
|
|
59
|
+
"path": "docs/document-lifecycle.md",
|
|
60
|
+
"message": "reference GRPH-007 cannot be resolved",
|
|
61
|
+
"id": "GRPH-007"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"code": "unresolved-ref",
|
|
65
|
+
"severity": "error",
|
|
66
|
+
"path": "docs/document-lifecycle.md",
|
|
67
|
+
"message": "reference PRD-GRPH-001 cannot be resolved",
|
|
68
|
+
"id": "PRD-GRPH-001"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"code": "unresolved-ref",
|
|
72
|
+
"severity": "error",
|
|
73
|
+
"path": "docs/document-lifecycle.md",
|
|
74
|
+
"message": "reference PRD-GRPH-001@r2 cannot be resolved",
|
|
75
|
+
"id": "PRD-GRPH-001@r2"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"code": "unresolved-ref",
|
|
79
|
+
"severity": "error",
|
|
80
|
+
"path": "docs/document-lifecycle.md",
|
|
81
|
+
"message": "reference PRD-GRPH-001@r2#REQ-GRPH-012 cannot be resolved",
|
|
82
|
+
"id": "PRD-GRPH-001@r2#REQ-GRPH-012"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"code": "unresolved-ref",
|
|
86
|
+
"severity": "error",
|
|
87
|
+
"path": "docs/document-lifecycle.md",
|
|
88
|
+
"message": "reference PRD-GRPH-001@r3 cannot be resolved",
|
|
89
|
+
"id": "PRD-GRPH-001@r3"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"code": "unresolved-ref",
|
|
93
|
+
"severity": "error",
|
|
94
|
+
"path": "docs/document-lifecycle.md",
|
|
95
|
+
"message": "reference PRD-GRPH-001@r4 cannot be resolved",
|
|
96
|
+
"id": "PRD-GRPH-001@r4"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"code": "unresolved-ref",
|
|
100
|
+
"severity": "error",
|
|
101
|
+
"path": "docs/document-lifecycle.md",
|
|
102
|
+
"message": "reference legacy:GRPH-007 cannot be resolved",
|
|
103
|
+
"id": "legacy:GRPH-007"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"code": "unresolved-ref",
|
|
107
|
+
"severity": "error",
|
|
108
|
+
"path": "docs/document-lifecycle.md",
|
|
109
|
+
"message": "reference legacy:GRPH-007@docs/adr/legacy/v2/GRPH-007.md cannot be resolved",
|
|
110
|
+
"id": "legacy:GRPH-007@docs/adr/legacy/v2/GRPH-007.md"
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
"links": {
|
|
115
|
+
"checked": 7,
|
|
116
|
+
"broken": [
|
|
117
|
+
{
|
|
118
|
+
"path": "docs/document-lifecycle.md",
|
|
119
|
+
"line": 328,
|
|
120
|
+
"target": "./does-not-exist.md"
|
|
121
|
+
}
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
"coverage": {
|
|
125
|
+
"unsupported": []
|
|
126
|
+
}
|
|
127
|
+
}
|
|
File without changes
|
package/benchmarks/results/f1-doc-path-baseline/before-fix/5-source-missing-config.stdout.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lint": {
|
|
3
|
+
"exit": 2,
|
|
4
|
+
"error": "cannot read config: ENOENT: no such file or directory, open '<workspace>/.agents/harness-everything/does-not-exist.json'",
|
|
5
|
+
"diagnostics": []
|
|
6
|
+
},
|
|
7
|
+
"links": {
|
|
8
|
+
"checked": 0,
|
|
9
|
+
"broken": [],
|
|
10
|
+
"skipped": "lint-usage-error"
|
|
11
|
+
},
|
|
12
|
+
"coverage": {
|
|
13
|
+
"unsupported": []
|
|
14
|
+
}
|
|
15
|
+
}
|
package/benchmarks/results/f1-doc-path-baseline/before-fix/5b-packaged-missing-config.stderr.txt
ADDED
|
File without changes
|
package/benchmarks/results/f1-doc-path-baseline/before-fix/5b-packaged-missing-config.stdout.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lint": {
|
|
3
|
+
"exit": 2,
|
|
4
|
+
"error": "cannot read config: ENOENT: no such file or directory, open '<workspace>/.agents/harness-everything/does-not-exist.json'",
|
|
5
|
+
"diagnostics": []
|
|
6
|
+
},
|
|
7
|
+
"links": {
|
|
8
|
+
"checked": 0,
|
|
9
|
+
"broken": [],
|
|
10
|
+
"skipped": "lint-usage-error"
|
|
11
|
+
},
|
|
12
|
+
"coverage": {
|
|
13
|
+
"unsupported": []
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# F1 doc-path baseline
|
|
2
|
+
|
|
3
|
+
Record of `harness-everything/scripts/doc-check.js check` run from a cwd outside the worktree, using absolute script paths. Base `--base b7136e4` (main at the start of F1). Raw stdout and stderr sit next to this file, named by case.
|
|
4
|
+
|
|
5
|
+
**Result: the packet's clean-doc expectation (exit 0) is not met.** The clean dogfood doc exits 1. Lint flags example IDs that appear in its prose and inline code (see the blocker below). The injected defects are detected correctly.
|
|
6
|
+
|
|
7
|
+
## Commands
|
|
8
|
+
|
|
9
|
+
Each row is `node <script> check --workspace <worktree> --config <config> --changed-path docs/document-lifecycle.md --base b7136e4`, with `<script>` set as shown. Wall time is the process wall clock on macOS, Node v24.14.1, and includes Node startup.
|
|
10
|
+
|
|
11
|
+
| Case | Script | Config | Exit | Expected | Wall ms | Trimmed output |
|
|
12
|
+
|---|---|---|---|---|---|---|
|
|
13
|
+
| 1-source-clean | `harness-everything/scripts/doc-check.js` | `.agents/harness-everything/project-docs.json` | **1** | 0 | 111 | lint exit 1: 14 errors (`missing-req` ×6, `unresolved-ref` ×8); links checked 6, broken 0 |
|
|
14
|
+
| 2-source-injected | same | same | 1 | 1 | 108 | lint: `invalid-status` (`status: bogus`) + the same reference errors; links: `./does-not-exist.md` broken at line 328 |
|
|
15
|
+
| 3-source-reverted | same | same | **1** | 0 | 108 | Byte-identical to the pre-injection copy (`cmp` passed); same output as case 1 |
|
|
16
|
+
| 4a-packaged-clean | `plugins/harness-everything/skills/harness-everything/scripts/doc-check.js` | same | 1 | = source | 112 | stdout byte-identical to 1-source-clean |
|
|
17
|
+
| 4b-packaged-injected | packaged | same | 1 | = source | 109 | stdout byte-identical to 2-source-injected |
|
|
18
|
+
| 5-source-missing-config | `harness-everything/scripts/doc-check.js` | `.agents/harness-everything/does-not-exist.json` | 2 | 2 | 60 | lint exit 2, `cannot read config: ENOENT`; links `skipped: lint-usage-error` |
|
|
19
|
+
| 5b-packaged-missing-config | packaged | same | 2 | 2 | 59 | stdout byte-identical to 5-source-missing-config |
|
|
20
|
+
| 6-supplementary-fixture-ok (not the dogfood doc) | source and packaged | copy of the config | 0 / 0 | 0 | not timed | Fixture in a temp dir with no ID tokens and two valid relative links; lint 0 diagnostics; links checked 2, broken 0; `immutability: unavailable` (not a git repo) |
|
|
21
|
+
|
|
22
|
+
Packaged and source stdout matched byte-for-byte for cases 1, 2 and 5.
|
|
23
|
+
|
|
24
|
+
## Blocker: lint flags example IDs in the dogfood doc
|
|
25
|
+
|
|
26
|
+
- **executed:** `doc-lifecycle.js lint` on the dogfood doc reports `missing-req` and `unresolved-ref` for example IDs such as `REQ-GRAPH-012`, `GRPH-007` and `PRD-GRPH-001@r2`.
|
|
27
|
+
- **executed:** Minimal reproducer. A doc with frontmatter and no ID-shaped tokens gives 0 diagnostics. The same doc with only `` `GRPH-007` `` in a code span gives `unresolved-ref: reference GRPH-007 cannot be resolved`. Lint's reference scanner does not skip inline code spans.
|
|
28
|
+
- **source-traced:** `doc-lifecycle.js` scans prose for ID patterns with `referencePattern` (around line 1282), excluding only fenced blocks. The doc uses those IDs as examples of the ID grammar in prose (lines 140–256).
|
|
29
|
+
- **Consequence:** getting exit 0 on this doc needs either a content rewrite of the example IDs (outside "no content rewrite") or a `doc-lifecycle.js` change (outside F1's write-set and marked "reuse unchanged" in A0). Neither was done here. Needs an amended packet.
|
|
30
|
+
|
|
31
|
+
## Notes
|
|
32
|
+
|
|
33
|
+
- The frontmatter added to `docs/document-lifecycle.md` (`role: reference`, `status: active`) is the only content change to that file. The baseline's injections were applied to a copy and then restored byte-identical.
|
|
34
|
+
- The supplementary fixture is evidence for the exit-0 path only. It is not a dogfood result.
|