harness-everything 0.34.0 → 0.36.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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.github/workflows/ci.yml +2 -0
- package/AGENTS.md +3 -0
- package/CHANGELOG.md +42 -0
- package/ci/fixtures/doc-obligations/derive/acceptance-only/base/docs/prd/graph.md +22 -0
- package/ci/fixtures/doc-obligations/derive/acceptance-only/candidate/docs/prd/graph.md +22 -0
- package/ci/fixtures/doc-obligations/derive/alias-only/base/docs/prd/graph.md +24 -0
- package/ci/fixtures/doc-obligations/derive/alias-only/candidate/docs/prd/graph.md +24 -0
- package/ci/fixtures/doc-obligations/derive/assertion-no-revision/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/assertion-no-revision/base/docs/prd/graph.md +20 -0
- package/ci/fixtures/doc-obligations/derive/assertion-no-revision/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/assertion-no-revision/candidate/docs/prd/graph.md +20 -0
- package/ci/fixtures/doc-obligations/derive/assertion-no-revision-attested/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/assertion-no-revision-attested/base/docs/prd/graph.md +20 -0
- package/ci/fixtures/doc-obligations/derive/assertion-no-revision-attested/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/assertion-no-revision-attested/candidate/docs/prd/graph.md +20 -0
- package/ci/fixtures/doc-obligations/derive/assertion-no-revision-attested/inventory.json +7 -0
- package/ci/fixtures/doc-obligations/derive/attribution-impossible/base/ci/mechanism-open.test.js +3 -0
- package/ci/fixtures/doc-obligations/derive/attribution-impossible/candidate/ci/mechanism-open.test.js.fixture +2 -0
- package/ci/fixtures/doc-obligations/derive/clause-context-typo/base/docs/prd/graph.md +24 -0
- package/ci/fixtures/doc-obligations/derive/clause-context-typo/candidate/docs/prd/graph.md +24 -0
- package/ci/fixtures/doc-obligations/derive/code-only/base/src/lint.js +1 -0
- package/ci/fixtures/doc-obligations/derive/code-only/candidate/src/lint.js +1 -0
- package/ci/fixtures/doc-obligations/derive/comment-only-test/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/comment-only-test/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/computed-member-assert/base/ci/mechanism-c1.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/computed-member-assert/candidate/ci/mechanism-c1.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/computed-member-variable/base/ci/mechanism-c1.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/computed-member-variable/candidate/ci/mechanism-c1.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/config.json +11 -0
- package/ci/fixtures/doc-obligations/derive/decision-fence-backtick/base/docs/adr/GRPH-010.md +20 -0
- package/ci/fixtures/doc-obligations/derive/decision-fence-backtick/candidate/docs/adr/GRPH-010.md +20 -0
- package/ci/fixtures/doc-obligations/derive/decision-fence-tilde/base/docs/adr/GRPH-010.md +20 -0
- package/ci/fixtures/doc-obligations/derive/decision-fence-tilde/candidate/docs/adr/GRPH-010.md +20 -0
- package/ci/fixtures/doc-obligations/derive/deep-strict-equal/base/ci/mechanism-s1.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/deep-strict-equal/candidate/ci/mechanism-s1.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/deleted-adr/base/docs/adr/GRPH-008.md +14 -0
- package/ci/fixtures/doc-obligations/derive/deleted-prd/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/deleted-prd/base/docs/prd/graph.md +20 -0
- package/ci/fixtures/doc-obligations/derive/deleted-prd/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/derived-rename/base/docs/index.md +3 -0
- package/ci/fixtures/doc-obligations/derive/derived-rename/base/src/model/a.js +1 -0
- package/ci/fixtures/doc-obligations/derive/derived-rename/candidate/docs/index.md +3 -0
- package/ci/fixtures/doc-obligations/derive/derived-rename/candidate/src/model/b.js +1 -0
- package/ci/fixtures/doc-obligations/derive/derived-rename/config.json +7 -0
- package/ci/fixtures/doc-obligations/derive/derived-two-outputs/base/docs/index.md +3 -0
- package/ci/fixtures/doc-obligations/derive/derived-two-outputs/base/docs/model-summary.md +3 -0
- package/ci/fixtures/doc-obligations/derive/derived-two-outputs/base/src/model.js +1 -0
- package/ci/fixtures/doc-obligations/derive/derived-two-outputs/candidate/docs/index.md +3 -0
- package/ci/fixtures/doc-obligations/derive/derived-two-outputs/candidate/docs/model-summary.md +3 -0
- package/ci/fixtures/doc-obligations/derive/derived-two-outputs/candidate/src/model.js +1 -0
- package/ci/fixtures/doc-obligations/derive/derived-two-outputs/config.json +10 -0
- package/ci/fixtures/doc-obligations/derive/distinct-logical-prds/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/distinct-logical-prds/base/docs/prd/graph-one/r001.md +19 -0
- package/ci/fixtures/doc-obligations/derive/distinct-logical-prds/base/docs/prd/graph-two/r001.md +19 -0
- package/ci/fixtures/doc-obligations/derive/distinct-logical-prds/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/distinct-logical-prds/candidate/docs/prd/graph-one/r001.md +19 -0
- package/ci/fixtures/doc-obligations/derive/distinct-logical-prds/candidate/docs/prd/graph-two/r001.md +19 -0
- package/ci/fixtures/doc-obligations/derive/docs-only/base/docs/reference/guide.md +3 -0
- package/ci/fixtures/doc-obligations/derive/docs-only/candidate/docs/reference/guide.md +3 -0
- package/ci/fixtures/doc-obligations/derive/dup-req-id/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/dup-req-id/base/docs/prd/graph-a.md +20 -0
- package/ci/fixtures/doc-obligations/derive/dup-req-id/base/docs/prd/graph-b.md +20 -0
- package/ci/fixtures/doc-obligations/derive/dup-req-id/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/dup-req-id/candidate/docs/prd/graph-a.md +20 -0
- package/ci/fixtures/doc-obligations/derive/dup-req-id/candidate/docs/prd/graph-b.md +20 -0
- package/ci/fixtures/doc-obligations/derive/expect-computed-literal/base/ci/mechanism-e.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/expect-computed-literal/candidate/ci/mechanism-e.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/expect-computed-matcher/base/ci/mechanism-e.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/expect-computed-matcher/candidate/ci/mechanism-e.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/expect-not-to-equal/base/ci/mechanism-s1.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/expect-not-to-equal/candidate/ci/mechanism-s1.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/formatting-only-test/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/formatting-only-test/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/helper-delegated-test/base/docs/prd/graph.md +18 -0
- package/ci/fixtures/doc-obligations/derive/helper-delegated-test/candidate/ci/mechanism-helper.test.js +1 -0
- package/ci/fixtures/doc-obligations/derive/helper-delegated-test/candidate/docs/prd/graph.md +18 -0
- package/ci/fixtures/doc-obligations/derive/historical-only-req/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/historical-only-req/base/docs/prd/graph/r001.md +25 -0
- package/ci/fixtures/doc-obligations/derive/historical-only-req/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/historical-only-req/candidate/docs/prd/graph/r001.md +25 -0
- package/ci/fixtures/doc-obligations/derive/historical-only-req/candidate/docs/prd/graph/r002.md +23 -0
- package/ci/fixtures/doc-obligations/derive/in-place-current/base/ci/mechanism-inplace.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/in-place-current/base/docs/prd/graph/r001.md +20 -0
- package/ci/fixtures/doc-obligations/derive/in-place-current/base/docs/prd/graph/r002.md +26 -0
- package/ci/fixtures/doc-obligations/derive/in-place-current/candidate/ci/mechanism-inplace.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/in-place-current/candidate/docs/prd/graph/r001.md +20 -0
- package/ci/fixtures/doc-obligations/derive/in-place-current/candidate/docs/prd/graph/r002.md +28 -0
- package/ci/fixtures/doc-obligations/derive/in-place-historical/base/ci/mechanism-inplace.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/in-place-historical/base/docs/prd/graph/r001.md +20 -0
- package/ci/fixtures/doc-obligations/derive/in-place-historical/base/docs/prd/graph/r002.md +26 -0
- package/ci/fixtures/doc-obligations/derive/in-place-historical/candidate/ci/mechanism-inplace.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/in-place-historical/candidate/docs/prd/graph/r001.md +22 -0
- package/ci/fixtures/doc-obligations/derive/in-place-historical/candidate/docs/prd/graph/r002.md +26 -0
- package/ci/fixtures/doc-obligations/derive/invalid-clause/base/docs/prd/graph.md +24 -0
- package/ci/fixtures/doc-obligations/derive/invalid-clause/candidate/docs/prd/graph.md +24 -0
- package/ci/fixtures/doc-obligations/derive/legacy-untagged-fallback/base/ci/mechanism-legacy.test.js +6 -0
- package/ci/fixtures/doc-obligations/derive/legacy-untagged-fallback/candidate/ci/mechanism-legacy.test.js +6 -0
- package/ci/fixtures/doc-obligations/derive/literal-whitespace-assert/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/literal-whitespace-assert/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/malformed-citation-attribution/base/ci/mechanism-bad.test.js +6 -0
- package/ci/fixtures/doc-obligations/derive/malformed-citation-attribution/candidate/ci/mechanism-bad.test.js.fixture +6 -0
- package/ci/fixtures/doc-obligations/derive/malformed-prd/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/malformed-prd/base/docs/prd/graph.md +20 -0
- package/ci/fixtures/doc-obligations/derive/malformed-prd/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/malformed-prd/candidate/docs/prd/graph.md +11 -0
- package/ci/fixtures/doc-obligations/derive/missing-approval/base/docs/prd/graph.md +20 -0
- package/ci/fixtures/doc-obligations/derive/missing-approval/candidate/docs/prd/graph.md +20 -0
- package/ci/fixtures/doc-obligations/derive/mixed-attribution/base/ci/mechanism-mixed.test.js +6 -0
- package/ci/fixtures/doc-obligations/derive/mixed-attribution/base/docs/prd/graph.md +24 -0
- package/ci/fixtures/doc-obligations/derive/mixed-attribution/candidate/ci/mechanism-mixed.test.js.fixture +5 -0
- package/ci/fixtures/doc-obligations/derive/mixed-attribution/candidate/docs/prd/graph.md +24 -0
- package/ci/fixtures/doc-obligations/derive/mixed-docs-code/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/mixed-docs-code/base/docs/reference/guide.md +3 -0
- package/ci/fixtures/doc-obligations/derive/mixed-docs-code/base/src/lint.js +1 -0
- package/ci/fixtures/doc-obligations/derive/mixed-docs-code/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/mixed-docs-code/candidate/docs/reference/guide.md +3 -0
- package/ci/fixtures/doc-obligations/derive/mixed-docs-code/candidate/src/lint.js +1 -0
- package/ci/fixtures/doc-obligations/derive/multiline-comment-only/base/ci/mechanism-multi.test.js +5 -0
- package/ci/fixtures/doc-obligations/derive/multiline-comment-only/candidate/ci/mechanism-multi.test.js +5 -0
- package/ci/fixtures/doc-obligations/derive/multiline-expect/base/ci/mechanism-multi.test.js +6 -0
- package/ci/fixtures/doc-obligations/derive/multiline-expect/candidate/ci/mechanism-multi.test.js +6 -0
- package/ci/fixtures/doc-obligations/derive/multiline-formatting-only/base/ci/mechanism-multi.test.js +5 -0
- package/ci/fixtures/doc-obligations/derive/multiline-formatting-only/candidate/ci/mechanism-multi.test.js +5 -0
- package/ci/fixtures/doc-obligations/derive/multiline-numeric-prd/base/ci/mechanism-multi.test.js +5 -0
- package/ci/fixtures/doc-obligations/derive/multiline-numeric-prd/base/docs/prd/graph.md +18 -0
- package/ci/fixtures/doc-obligations/derive/multiline-numeric-prd/candidate/ci/mechanism-multi.test.js +5 -0
- package/ci/fixtures/doc-obligations/derive/multiline-numeric-prd/candidate/docs/prd/graph.md +18 -0
- package/ci/fixtures/doc-obligations/derive/multiline-strictequal/base/ci/mechanism-multi.test.js +5 -0
- package/ci/fixtures/doc-obligations/derive/multiline-strictequal/candidate/ci/mechanism-multi.test.js +5 -0
- package/ci/fixtures/doc-obligations/derive/new-prd/candidate/docs/prd/graph-new.md +20 -0
- package/ci/fixtures/doc-obligations/derive/new-reference/candidate/docs/reference/new-note.md +3 -0
- package/ci/fixtures/doc-obligations/derive/new-req-test/candidate/ci/mechanism-new.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/orphan-req-test/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/orphan-req-test/base/docs/prd/graph.md +20 -0
- package/ci/fixtures/doc-obligations/derive/orphan-req-test/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/orphan-req-test/candidate/docs/prd/graph.md +20 -0
- package/ci/fixtures/doc-obligations/derive/partial-revision/base/ci/mechanism-partial.test.js +5 -0
- package/ci/fixtures/doc-obligations/derive/partial-revision/base/docs/prd/graph/r001.md +24 -0
- package/ci/fixtures/doc-obligations/derive/partial-revision/candidate/ci/mechanism-partial.test.js +5 -0
- package/ci/fixtures/doc-obligations/derive/partial-revision/candidate/docs/prd/graph/r001.md +24 -0
- package/ci/fixtures/doc-obligations/derive/partial-revision/candidate/docs/prd/graph/r002.md +26 -0
- package/ci/fixtures/doc-obligations/derive/regex-literal-whitespace/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/regex-literal-whitespace/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/rename/base/docs/reference/old-guide.md +3 -0
- package/ci/fixtures/doc-obligations/derive/rename/candidate/docs/reference/guide.md +3 -0
- package/ci/fixtures/doc-obligations/derive/replacement-target/base/docs/prd/graph.md +24 -0
- package/ci/fixtures/doc-obligations/derive/replacement-target/candidate/docs/prd/graph.md +24 -0
- package/ci/fixtures/doc-obligations/derive/req-context-typo/base/docs/prd/graph.md +26 -0
- package/ci/fixtures/doc-obligations/derive/req-context-typo/candidate/docs/prd/graph.md +26 -0
- package/ci/fixtures/doc-obligations/derive/req-revision/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/req-revision/base/docs/prd/graph/r001.md +20 -0
- package/ci/fixtures/doc-obligations/derive/req-revision/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/req-revision/candidate/docs/prd/graph/r001.md +20 -0
- package/ci/fixtures/doc-obligations/derive/req-revision/candidate/docs/prd/graph/r002.md +28 -0
- package/ci/fixtures/doc-obligations/derive/req-revision-in-place/base/docs/prd/graph/r001.md +20 -0
- package/ci/fixtures/doc-obligations/derive/req-revision-in-place/candidate/docs/prd/graph/r001.md +22 -0
- package/ci/fixtures/doc-obligations/derive/retained-revision-chain/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/retained-revision-chain/base/docs/prd/graph/r001.md +20 -0
- package/ci/fixtures/doc-obligations/derive/retained-revision-chain/base/docs/prd/graph/r002.md +26 -0
- package/ci/fixtures/doc-obligations/derive/retained-revision-chain/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/retained-revision-chain/candidate/docs/prd/graph/r001.md +20 -0
- package/ci/fixtures/doc-obligations/derive/retained-revision-chain/candidate/docs/prd/graph/r002.md +26 -0
- package/ci/fixtures/doc-obligations/derive/string-literal-tag/base/ci/mechanism-str.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/string-literal-tag/candidate/ci/mechanism-str.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/tag-inside-test-call/base/ci/mechanism-inside.test.js +5 -0
- package/ci/fixtures/doc-obligations/derive/tag-inside-test-call/candidate/ci/mechanism-inside.test.js +5 -0
- package/ci/fixtures/doc-obligations/derive/tagged-test/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/tagged-test/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/tagged-test-prd/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/tagged-test-prd/base/docs/prd/graph.md +20 -0
- package/ci/fixtures/doc-obligations/derive/tagged-test-prd/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/tagged-test-prd/candidate/docs/prd/graph.md +20 -0
- package/ci/fixtures/doc-obligations/derive/template-literal-tag/base/ci/mechanism-tpl.test.js +4 -0
- package/ci/fixtures/doc-obligations/derive/template-literal-tag/base/docs/prd/graph.md +18 -0
- package/ci/fixtures/doc-obligations/derive/template-literal-tag/candidate/ci/mechanism-tpl.test.js +4 -0
- package/ci/fixtures/doc-obligations/derive/template-literal-tag/candidate/docs/prd/graph.md +18 -0
- package/ci/fixtures/doc-obligations/derive/template-literal-whitespace/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/template-literal-whitespace/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/title-only-rename/base/ci/mechanism-title.test.js +3 -0
- package/ci/fixtures/doc-obligations/derive/title-only-rename/candidate/ci/mechanism-title.test.js +3 -0
- package/ci/fixtures/doc-obligations/derive/title-only-unrelated-computed/base/ci/mechanism-u.test.js +4 -0
- package/ci/fixtures/doc-obligations/derive/title-only-unrelated-computed/candidate/ci/mechanism-u.test.js +4 -0
- package/ci/fixtures/doc-obligations/derive/top-level-no-file-tag/base/ci/mechanism-top.test.js +4 -0
- package/ci/fixtures/doc-obligations/derive/top-level-no-file-tag/candidate/ci/mechanism-top.test.js +4 -0
- package/ci/fixtures/doc-obligations/derive/trailing-comment-test/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/trailing-comment-test/base/docs/prd/graph.md +20 -0
- package/ci/fixtures/doc-obligations/derive/trailing-comment-test/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/trailing-comment-test/candidate/docs/prd/graph.md +20 -0
- package/ci/fixtures/doc-obligations/derive/two-tests-one-file/base/ci/mechanism-two.test.js +6 -0
- package/ci/fixtures/doc-obligations/derive/two-tests-one-file/base/docs/prd/graph.md +24 -0
- package/ci/fixtures/doc-obligations/derive/two-tests-one-file/candidate/ci/mechanism-two.test.js +6 -0
- package/ci/fixtures/doc-obligations/derive/two-tests-one-file/candidate/docs/prd/graph.md +24 -0
- package/ci/fixtures/doc-obligations/derive/typo-context/base/docs/adr/GRPH-007.md +14 -0
- package/ci/fixtures/doc-obligations/derive/typo-context/candidate/docs/adr/GRPH-007.md +14 -0
- package/ci/fixtures/doc-obligations/derive/typo-decision/base/docs/adr/GRPH-007.md +14 -0
- package/ci/fixtures/doc-obligations/derive/typo-decision/candidate/docs/adr/GRPH-007.md +14 -0
- package/ci/fixtures/doc-obligations/derive/unbalanced-statement/base/ci/mechanism-multi.test.js +5 -0
- package/ci/fixtures/doc-obligations/derive/unbalanced-statement/candidate/ci/mechanism-multi.test.js.fixture +4 -0
- package/ci/fixtures/doc-obligations/derive/unknown-adr/base/docs/adr/GRPH-009.md +14 -0
- package/ci/fixtures/doc-obligations/derive/unknown-adr/candidate/docs/adr/GRPH-009.md +12 -0
- package/ci/fixtures/doc-obligations/derive/unsupported-assertion-syntax/base/ci/mechanism-s1.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/unsupported-assertion-syntax/candidate/ci/mechanism-s1.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/whitespace-only-test/base/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/derive/whitespace-only-test/candidate/ci/mechanism-lint.test.js +2 -0
- package/ci/fixtures/doc-obligations/evidence/base/docs/adr/GRPH-007.md +15 -0
- package/ci/fixtures/doc-obligations/evidence/base/docs/prd/PRD-GRPH-001.md +25 -0
- package/ci/fixtures/doc-obligations/evidence/candidate/docs/adr/GRPH-007.md +15 -0
- package/ci/fixtures/doc-obligations/evidence/candidate/docs/prd/PRD-GRPH-001.md +25 -0
- package/ci/mechanism-325-3a-cross.test.js +795 -0
- package/ci/mechanism-325-3a-doc-evidence.test.js +1172 -0
- package/ci/mechanism-325-3a-doc-obligations.test.js +742 -0
- package/ci/mechanism-36-verify-timeout.test.js +534 -0
- package/ci/mechanism-37-portability-lint.test.js +71 -0
- package/ci/mechanism-38-verify-all.test.js +112 -0
- package/ci/mechanism-39-opencode-verify-outcomes.test.js +374 -0
- package/ci/mechanism-pr334-haiku.test.js +298 -0
- package/ci/mechanism-pr334-luna.test.js +192 -0
- package/ci/mechanism-pr334-opencode.test.js +313 -0
- package/ci/mechanism-pr334-r2-boundary.test.js +239 -0
- package/ci/mechanism-pr334-r2-resolution.test.js +243 -0
- package/ci/mechanism-pr334-r2-scope.test.js +127 -0
- package/ci/mechanism-pr334-r3-boundary.test.js +356 -0
- package/ci/mechanism-pr334-r3-citations.test.js +205 -0
- package/ci/mechanism-pr334-r3-headings.test.js +268 -0
- package/ci/portability-lint.js +288 -0
- package/docs/document-lifecycle.md +57 -1
- package/docs/repository-contract.md +1 -1
- package/harness-everything/SKILL.md +1 -1
- package/harness-everything/scripts/doc-evidence.js +471 -0
- package/harness-everything/scripts/doc-lifecycle.js +1 -1
- package/harness-everything/scripts/doc-obligations.js +1571 -0
- package/opencode-plugin/README.md +33 -2
- package/opencode-plugin/hooks/verify.js +87 -11
- package/opencode-plugin/index.mjs +216 -25
- package/opencode-plugin/plugin.json +1 -1
- package/package.json +3 -1
- package/plugins/harness-everything/.codex-plugin/plugin.json +1 -1
- package/plugins/harness-everything/plugin.json +1 -1
- package/plugins/harness-everything/skills/harness-everything/SKILL.md +1 -1
- package/plugins/harness-everything/skills/harness-everything/scripts/doc-evidence.js +471 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/doc-lifecycle.js +1 -1
- package/plugins/harness-everything/skills/harness-everything/scripts/doc-obligations.js +1571 -0
- package/sbom.cdx.json +7 -7
- package/scripts/verify-all.js +314 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 2
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
previous_revision: 1
|
|
7
|
+
previous_digest: "sha256:305358d3ff29f45969b99562eec9bca2da12f35020decee5a3a667a16fd412f6"
|
|
8
|
+
effective_at: "2026-10-17T00:02:00Z"
|
|
9
|
+
approval:
|
|
10
|
+
by: "Bob Independent"
|
|
11
|
+
at: "2026-10-17T00:00:00Z"
|
|
12
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
13
|
+
role: "human"
|
|
14
|
+
content_digest: "sha256:2db2f2f1f7854177ec843c900bfd4027cf0f63f3dbfd1dd48124e91ac1e4d617"
|
|
15
|
+
---
|
|
16
|
+
### REQ-GRPH-010 (aliases: REQ-GRPH-100, REQ-GRPH-101): Initial requirement
|
|
17
|
+
|
|
18
|
+
Acceptance: resolve the original alias.
|
|
19
|
+
|
|
20
|
+
### REQ-GRPH-011: Stable requirement
|
|
21
|
+
|
|
22
|
+
The router keeps the stable behavior across revisions.
|
|
23
|
+
|
|
24
|
+
Acceptance: preserve the stable behavior across revisions.
|
|
25
|
+
|
|
26
|
+
### REQ-GRPH-012: Added requirement
|
|
27
|
+
|
|
28
|
+
Acceptance: include the new behavior.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 1
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
effective_at: "2026-10-17T00:01:00Z"
|
|
7
|
+
approval:
|
|
8
|
+
by: "Bob Independent"
|
|
9
|
+
at: "2026-10-17T00:00:00Z"
|
|
10
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
11
|
+
role: "human"
|
|
12
|
+
content_digest: "sha256:f0715961ec620f963304941851b86493f1c58c009329aaff485ef796011dd4b3"
|
|
13
|
+
---
|
|
14
|
+
### REQ-GRPH-010 (aliases: REQ-GRPH-100): Initial requirement
|
|
15
|
+
|
|
16
|
+
Acceptance: resolve the original alias.
|
|
17
|
+
|
|
18
|
+
### REQ-GRPH-011: Stable requirement
|
|
19
|
+
|
|
20
|
+
Acceptance: preserve the stable behavior.
|
package/ci/fixtures/doc-obligations/derive/req-revision-in-place/candidate/docs/prd/graph/r001.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 1
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
effective_at: "2026-10-17T00:01:00Z"
|
|
7
|
+
approval:
|
|
8
|
+
by: "Bob Independent"
|
|
9
|
+
at: "2026-10-17T00:00:00Z"
|
|
10
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
11
|
+
role: "human"
|
|
12
|
+
content_digest: "sha256:c19bbdcbfd3018694d4a703b9d0857fef9e5d92c696cc2be3d15b4712fda7458"
|
|
13
|
+
---
|
|
14
|
+
### REQ-GRPH-010 (aliases: REQ-GRPH-100): Initial requirement
|
|
15
|
+
|
|
16
|
+
Acceptance: resolve the original alias.
|
|
17
|
+
|
|
18
|
+
### REQ-GRPH-011: Stable requirement
|
|
19
|
+
|
|
20
|
+
The router keeps the stable behavior across revisions.
|
|
21
|
+
|
|
22
|
+
Acceptance: preserve the stable behavior across revisions.
|
package/ci/fixtures/doc-obligations/derive/retained-revision-chain/base/docs/prd/graph/r001.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 1
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
effective_at: "2026-10-17T00:01:00Z"
|
|
7
|
+
approval:
|
|
8
|
+
by: "Bob Independent"
|
|
9
|
+
at: "2026-10-17T00:00:00Z"
|
|
10
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
11
|
+
role: "human"
|
|
12
|
+
content_digest: "sha256:f0715961ec620f963304941851b86493f1c58c009329aaff485ef796011dd4b3"
|
|
13
|
+
---
|
|
14
|
+
### REQ-GRPH-010 (aliases: REQ-GRPH-100): Initial requirement
|
|
15
|
+
|
|
16
|
+
Acceptance: resolve the original alias.
|
|
17
|
+
|
|
18
|
+
### REQ-GRPH-011: Stable requirement
|
|
19
|
+
|
|
20
|
+
Acceptance: preserve the stable behavior.
|
package/ci/fixtures/doc-obligations/derive/retained-revision-chain/base/docs/prd/graph/r002.md
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 2
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
previous_revision: 1
|
|
7
|
+
previous_digest: "sha256:305358d3ff29f45969b99562eec9bca2da12f35020decee5a3a667a16fd412f6"
|
|
8
|
+
effective_at: "2026-10-17T00:02:00Z"
|
|
9
|
+
approval:
|
|
10
|
+
by: "Bob Independent"
|
|
11
|
+
at: "2026-10-17T00:00:00Z"
|
|
12
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
13
|
+
role: "human"
|
|
14
|
+
content_digest: "sha256:f0ad5b331c847bd91a3dffd3bfb653ec631c201c592fb599c5c4777e3cb01606"
|
|
15
|
+
---
|
|
16
|
+
### REQ-GRPH-010 (aliases: REQ-GRPH-100, REQ-GRPH-101): Initial requirement
|
|
17
|
+
|
|
18
|
+
Acceptance: resolve the original alias.
|
|
19
|
+
|
|
20
|
+
### REQ-GRPH-011: Stable requirement
|
|
21
|
+
|
|
22
|
+
Acceptance: preserve the stable behavior.
|
|
23
|
+
|
|
24
|
+
### REQ-GRPH-012: Added requirement
|
|
25
|
+
|
|
26
|
+
Acceptance: include the new behavior.
|
package/ci/fixtures/doc-obligations/derive/retained-revision-chain/candidate/docs/prd/graph/r001.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 1
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
effective_at: "2026-10-17T00:01:00Z"
|
|
7
|
+
approval:
|
|
8
|
+
by: "Bob Independent"
|
|
9
|
+
at: "2026-10-17T00:00:00Z"
|
|
10
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
11
|
+
role: "human"
|
|
12
|
+
content_digest: "sha256:f0715961ec620f963304941851b86493f1c58c009329aaff485ef796011dd4b3"
|
|
13
|
+
---
|
|
14
|
+
### REQ-GRPH-010 (aliases: REQ-GRPH-100): Initial requirement
|
|
15
|
+
|
|
16
|
+
Acceptance: resolve the original alias.
|
|
17
|
+
|
|
18
|
+
### REQ-GRPH-011: Stable requirement
|
|
19
|
+
|
|
20
|
+
Acceptance: preserve the stable behavior.
|
package/ci/fixtures/doc-obligations/derive/retained-revision-chain/candidate/docs/prd/graph/r002.md
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 2
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
previous_revision: 1
|
|
7
|
+
previous_digest: "sha256:305358d3ff29f45969b99562eec9bca2da12f35020decee5a3a667a16fd412f6"
|
|
8
|
+
effective_at: "2026-10-17T00:02:00Z"
|
|
9
|
+
approval:
|
|
10
|
+
by: "Bob Independent"
|
|
11
|
+
at: "2026-10-17T00:00:00Z"
|
|
12
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
13
|
+
role: "human"
|
|
14
|
+
content_digest: "sha256:f0ad5b331c847bd91a3dffd3bfb653ec631c201c592fb599c5c4777e3cb01606"
|
|
15
|
+
---
|
|
16
|
+
### REQ-GRPH-010 (aliases: REQ-GRPH-100, REQ-GRPH-101): Initial requirement
|
|
17
|
+
|
|
18
|
+
Acceptance: resolve the original alias.
|
|
19
|
+
|
|
20
|
+
### REQ-GRPH-011: Stable requirement
|
|
21
|
+
|
|
22
|
+
Acceptance: preserve the stable behavior.
|
|
23
|
+
|
|
24
|
+
### REQ-GRPH-012: Added requirement
|
|
25
|
+
|
|
26
|
+
Acceptance: include the new behavior.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 1
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
effective_at: "2026-10-17T00:01:00Z"
|
|
7
|
+
approval:
|
|
8
|
+
by: "Bob Independent"
|
|
9
|
+
at: "2026-10-17T00:00:00Z"
|
|
10
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
11
|
+
role: "human"
|
|
12
|
+
content_digest: "sha256:a103bf860ed9d2cf7100d93eb8f0e3c3bce322d47e0f9fd83914b5bcc264ef70"
|
|
13
|
+
---
|
|
14
|
+
# Graph
|
|
15
|
+
|
|
16
|
+
### REQ-GRPH-001
|
|
17
|
+
|
|
18
|
+
The router records one topology per task.
|
|
19
|
+
|
|
20
|
+
Acceptance: exactly one topology is recorded.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 1
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
effective_at: "2026-10-17T00:01:00Z"
|
|
7
|
+
approval:
|
|
8
|
+
by: "Bob Independent"
|
|
9
|
+
at: "2026-10-17T00:00:00Z"
|
|
10
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
11
|
+
role: "human"
|
|
12
|
+
content_digest: "sha256:a103bf860ed9d2cf7100d93eb8f0e3c3bce322d47e0f9fd83914b5bcc264ef70"
|
|
13
|
+
---
|
|
14
|
+
# Graph
|
|
15
|
+
|
|
16
|
+
### REQ-GRPH-001
|
|
17
|
+
|
|
18
|
+
The router records one topology per task.
|
|
19
|
+
|
|
20
|
+
Acceptance: exactly one topology is recorded.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 1
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
effective_at: "2026-10-17T00:01:00Z"
|
|
7
|
+
approval:
|
|
8
|
+
by: "Bob Independent"
|
|
9
|
+
at: "2026-10-17T00:00:00Z"
|
|
10
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
11
|
+
role: "human"
|
|
12
|
+
content_digest: "sha256:17bcb4d28a4bb5198e38a4df95ef405722abb107a654584e1d6ea9199f5d6c3a"
|
|
13
|
+
---
|
|
14
|
+
### REQ-GRPH-001: Router
|
|
15
|
+
|
|
16
|
+
The router selects one topology.
|
|
17
|
+
|
|
18
|
+
Acceptance: one topology is selected.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 1
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
effective_at: "2026-10-17T00:01:00Z"
|
|
7
|
+
approval:
|
|
8
|
+
by: "Bob Independent"
|
|
9
|
+
at: "2026-10-17T00:00:00Z"
|
|
10
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
11
|
+
role: "human"
|
|
12
|
+
content_digest: "sha256:17bcb4d28a4bb5198e38a4df95ef405722abb107a654584e1d6ea9199f5d6c3a"
|
|
13
|
+
---
|
|
14
|
+
### REQ-GRPH-001: Router
|
|
15
|
+
|
|
16
|
+
The router selects one topology.
|
|
17
|
+
|
|
18
|
+
Acceptance: one topology is selected.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 1
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
effective_at: "2026-10-17T00:01:00Z"
|
|
7
|
+
approval:
|
|
8
|
+
by: "Bob Independent"
|
|
9
|
+
at: "2026-10-17T00:00:00Z"
|
|
10
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
11
|
+
role: "human"
|
|
12
|
+
content_digest: "sha256:a103bf860ed9d2cf7100d93eb8f0e3c3bce322d47e0f9fd83914b5bcc264ef70"
|
|
13
|
+
---
|
|
14
|
+
# Graph
|
|
15
|
+
|
|
16
|
+
### REQ-GRPH-001
|
|
17
|
+
|
|
18
|
+
The router records one topology per task.
|
|
19
|
+
|
|
20
|
+
Acceptance: exactly one topology is recorded.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 1
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
effective_at: "2026-10-17T00:01:00Z"
|
|
7
|
+
approval:
|
|
8
|
+
by: "Bob Independent"
|
|
9
|
+
at: "2026-10-17T00:00:00Z"
|
|
10
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
11
|
+
role: "human"
|
|
12
|
+
content_digest: "sha256:a103bf860ed9d2cf7100d93eb8f0e3c3bce322d47e0f9fd83914b5bcc264ef70"
|
|
13
|
+
---
|
|
14
|
+
# Graph
|
|
15
|
+
|
|
16
|
+
### REQ-GRPH-001
|
|
17
|
+
|
|
18
|
+
The router records one topology per task.
|
|
19
|
+
|
|
20
|
+
Acceptance: exactly one topology is recorded.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 1
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
effective_at: "2026-10-17T00:01:00Z"
|
|
7
|
+
approval:
|
|
8
|
+
by: "Bob Independent"
|
|
9
|
+
at: "2026-10-17T00:00:00Z"
|
|
10
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
11
|
+
role: "human"
|
|
12
|
+
content_digest: "sha256:550389ce51f5f547bbdf85c636df01dea67fee6aad26594380f4af9b206e7a6a"
|
|
13
|
+
---
|
|
14
|
+
### REQ-GRPH-001: Router
|
|
15
|
+
|
|
16
|
+
The router selects one topology.
|
|
17
|
+
|
|
18
|
+
Acceptance: one topology is selected.
|
|
19
|
+
|
|
20
|
+
### REQ-GRPH-002: Ledger
|
|
21
|
+
|
|
22
|
+
The ledger records one entry.
|
|
23
|
+
|
|
24
|
+
Acceptance: one entry is recorded.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 1
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
effective_at: "2026-10-17T00:01:00Z"
|
|
7
|
+
approval:
|
|
8
|
+
by: "Bob Independent"
|
|
9
|
+
at: "2026-10-17T00:00:00Z"
|
|
10
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
11
|
+
role: "human"
|
|
12
|
+
content_digest: "sha256:550389ce51f5f547bbdf85c636df01dea67fee6aad26594380f4af9b206e7a6a"
|
|
13
|
+
---
|
|
14
|
+
### REQ-GRPH-001: Router
|
|
15
|
+
|
|
16
|
+
The router selects one topology.
|
|
17
|
+
|
|
18
|
+
Acceptance: one topology is selected.
|
|
19
|
+
|
|
20
|
+
### REQ-GRPH-002: Ledger
|
|
21
|
+
|
|
22
|
+
The ledger records one entry.
|
|
23
|
+
|
|
24
|
+
Acceptance: one entry is recorded.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "PRD-GRPH-001"
|
|
3
|
+
revision: 1
|
|
4
|
+
status: "effective"
|
|
5
|
+
drafted_by: "Alice Example"
|
|
6
|
+
effective_at: "2026-10-17T00:01:00Z"
|
|
7
|
+
approval:
|
|
8
|
+
by: "Bob Independent"
|
|
9
|
+
at: "2026-10-17T00:00:00Z"
|
|
10
|
+
ref: "https://approvals.example.invalid/PRD-GRPH-001"
|
|
11
|
+
role: "human"
|
|
12
|
+
content_digest: "sha256:543c52f6e0b77cf29cd8abaffef005a3c156d464e355dfc0d13ce407519923aa"
|
|
13
|
+
---
|
|
14
|
+
# PRD-GRPH-001 Doc evidence
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
id: PRD-GRPH-001
|
|
18
|
+
revision: 1
|
|
19
|
+
role: prd
|
|
20
|
+
status: effective
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## REQ-GRPH-012: lint ordering
|
|
24
|
+
|
|
25
|
+
Acceptance: lint runs before link checks.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# GRPH-007 Lint first
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
id: GRPH-007
|
|
5
|
+
role: adr
|
|
6
|
+
status: accepted
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
We need a lint step before links.
|
|
12
|
+
|
|
13
|
+
## Decision
|
|
14
|
+
|
|
15
|
+
Run lint before link checks and record the linter inputs as evidence for the digest check.
|