harness-everything 0.32.0 → 0.34.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.
Files changed (103) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +2 -1
  3. package/CHANGELOG.md +33 -0
  4. package/README.md +3 -2
  5. package/ci/fixtures/doc-lifecycle/prd-revisions/config.json +9 -0
  6. package/ci/fixtures/doc-lifecycle/prd-revisions/packaged/config.json +20 -0
  7. package/ci/fixtures/doc-lifecycle/prd-revisions/packaged/expected.json +12 -0
  8. package/ci/fixtures/doc-lifecycle/prd-revisions/packaged/invalid-fork/docs/prd/graph/r001.md +20 -0
  9. package/ci/fixtures/doc-lifecycle/prd-revisions/packaged/invalid-fork/docs/prd/graph/r002.md +26 -0
  10. package/ci/fixtures/doc-lifecycle/prd-revisions/packaged/invalid-fork/docs/prd/graph/r003.md +26 -0
  11. package/ci/fixtures/doc-lifecycle/prd-revisions/packaged/valid/docs/prd/graph/r001.md +20 -0
  12. package/ci/fixtures/doc-lifecycle/prd-revisions/packaged/valid/docs/prd/graph/r002.md +26 -0
  13. package/ci/fixtures/doc-lifecycle/prd-revisions/ten-reqs/r001.body.md +39 -0
  14. package/ci/fixtures/doc-lifecycle/prd-revisions/ten-reqs/r002-dropped.body.md +35 -0
  15. package/ci/fixtures/doc-lifecycle/prd-revisions/ten-reqs/r002-incomplete.body.md +37 -0
  16. package/ci/fixtures/doc-lifecycle/prd-revisions/ten-reqs/r002-one-replaced.body.md +39 -0
  17. package/ci/fixtures/doc-lifecycle/prd-revisions/ten-reqs/r002-overlap.body.md +39 -0
  18. package/ci/fixtures/doc-lifecycle/scenarios/active-to-active/config.json +1 -0
  19. package/ci/fixtures/doc-lifecycle/scenarios/active-to-active/docs/adr/GRPH-001.md +8 -0
  20. package/ci/fixtures/doc-lifecycle/scenarios/active-to-active/docs/adr/GRPH-002.md +9 -0
  21. package/ci/fixtures/doc-lifecycle/scenarios/active-to-active/expected.json +1 -0
  22. package/ci/fixtures/doc-lifecycle/scenarios/active-to-active-mismatch/config.json +1 -0
  23. package/ci/fixtures/doc-lifecycle/scenarios/active-to-active-mismatch/docs/adr/GRPH-001.md +8 -0
  24. package/ci/fixtures/doc-lifecycle/scenarios/active-to-active-mismatch/docs/adr/GRPH-002.md +9 -0
  25. package/ci/fixtures/doc-lifecycle/scenarios/active-to-active-mismatch/expected.json +1 -0
  26. package/ci/fixtures/doc-lifecycle/scenarios/active-to-legacy/config.json +1 -0
  27. package/ci/fixtures/doc-lifecycle/scenarios/active-to-legacy/docs/adr/GRPH-010.md +9 -0
  28. package/ci/fixtures/doc-lifecycle/scenarios/active-to-legacy/docs/adr/legacy/GRPH-007.md +8 -0
  29. package/ci/fixtures/doc-lifecycle/scenarios/active-to-legacy/expected.json +1 -0
  30. package/ci/fixtures/doc-lifecycle/scenarios/alias-rename/config.json +1 -0
  31. package/ci/fixtures/doc-lifecycle/scenarios/alias-rename/docs/adr/GRAPH-007.md +9 -0
  32. package/ci/fixtures/doc-lifecycle/scenarios/alias-rename/docs/adr/legacy/GRPH-007.md +8 -0
  33. package/ci/fixtures/doc-lifecycle/scenarios/alias-rename/expected.json +1 -0
  34. package/ci/fixtures/doc-lifecycle/scenarios/duplicate-legacy/config.json +1 -0
  35. package/ci/fixtures/doc-lifecycle/scenarios/duplicate-legacy/docs/adr/legacy/v1/GRPH-007.md +8 -0
  36. package/ci/fixtures/doc-lifecycle/scenarios/duplicate-legacy/docs/adr/legacy/v2/GRPH-007.md +8 -0
  37. package/ci/fixtures/doc-lifecycle/scenarios/duplicate-legacy/expected.json +1 -0
  38. package/ci/fixtures/doc-lifecycle/scenarios/invalid-refs/config.json +1 -0
  39. package/ci/fixtures/doc-lifecycle/scenarios/invalid-refs/docs/adr/GRPH-003.md +9 -0
  40. package/ci/fixtures/doc-lifecycle/scenarios/invalid-refs/docs/adr/GRPH-004.md +9 -0
  41. package/ci/fixtures/doc-lifecycle/scenarios/invalid-refs/docs/adr/GRPH-005.md +9 -0
  42. package/ci/fixtures/doc-lifecycle/scenarios/invalid-refs/docs/adr/GRPH-006.md +9 -0
  43. package/ci/fixtures/doc-lifecycle/scenarios/invalid-refs/docs/adr/GRPH-007.md +9 -0
  44. package/ci/fixtures/doc-lifecycle/scenarios/invalid-refs/expected.json +1 -0
  45. package/ci/fixtures/doc-lifecycle/scenarios/pending-edge/config.json +1 -0
  46. package/ci/fixtures/doc-lifecycle/scenarios/pending-edge/docs/adr/GRPH-020.md +8 -0
  47. package/ci/fixtures/doc-lifecycle/scenarios/pending-edge/docs/adr/GRPH-021.md +9 -0
  48. package/ci/fixtures/doc-lifecycle/scenarios/pending-edge/expected.json +1 -0
  49. package/ci/fixtures/doc-lifecycle/scenarios/recorded-conflict/config.json +1 -0
  50. package/ci/fixtures/doc-lifecycle/scenarios/recorded-conflict/docs/adr/GRPH-003.md +8 -0
  51. package/ci/fixtures/doc-lifecycle/scenarios/recorded-conflict/docs/prd/graph.md +10 -0
  52. package/ci/fixtures/doc-lifecycle/scenarios/recorded-conflict/expected.json +1 -0
  53. package/ci/mechanism-2aw-project-docs-config.test.js +759 -0
  54. package/ci/mechanism-2ax-doc-lifecycle.test.js +1061 -0
  55. package/ci/mechanism-2ay-prd-revisions.test.js +2891 -0
  56. package/ci/mechanism-2az-step-type-registry.test.js +86 -0
  57. package/ci/openai-plugin-package.test.js +1 -1
  58. package/ci/release-consistency-check.js +26 -9
  59. package/ci/release-consistency-check.test.js +30 -0
  60. package/ci/router-workflow-plan.test.js +36 -0
  61. package/code-review/SKILL.md +41 -0
  62. package/code-review/references/review-playbook.md +40 -0
  63. package/code-review/templates/finding.template.md +33 -0
  64. package/docs/document-lifecycle.md +206 -0
  65. package/docs/openai-plugin.md +1 -1
  66. package/docs/workflows/code-review.md +58 -0
  67. package/evals/code-review/eval.yaml +26 -0
  68. package/evals/code-review/tasks/negative-grill-me.yaml +16 -0
  69. package/evals/code-review/tasks/negative-security-review.yaml +16 -0
  70. package/evals/code-review/tasks/negative-tdd.yaml +16 -0
  71. package/evals/code-review/tasks/negative-verification-loop.yaml +16 -0
  72. package/evals/code-review/tasks/positive-pr-review.yaml +16 -0
  73. package/evals/code-review/tasks/positive-revised-head-rereview.yaml +16 -0
  74. package/harness-everything/SKILL.md +1 -1
  75. package/harness-everything/references/skill-registry.md +1 -0
  76. package/harness-everything/scripts/doc-lifecycle.js +2401 -0
  77. package/harness-everything/scripts/project-docs-resolver.js +764 -0
  78. package/harness-everything/scripts/routing-keywords.json +7 -0
  79. package/hooks/scripts/lib/binding-resolver.js +1 -0
  80. package/multi-agent-workspace/SKILL.md +1 -1
  81. package/multi-agent-workspace/scripts/project-docs-resolver.js +437 -30
  82. package/opencode-plugin/plugin.json +1 -1
  83. package/package.json +2 -2
  84. package/plugins/harness-everything/.codex-plugin/plugin.json +1 -1
  85. package/plugins/harness-everything/hooks/scripts/lib/binding-resolver.js +1 -0
  86. package/plugins/harness-everything/plugin.json +1 -1
  87. package/plugins/harness-everything/skills/code-review/SKILL.md +41 -0
  88. package/plugins/harness-everything/skills/code-review/references/review-playbook.md +40 -0
  89. package/plugins/harness-everything/skills/code-review/templates/finding.template.md +33 -0
  90. package/plugins/harness-everything/skills/harness-everything/SKILL.md +1 -1
  91. package/plugins/harness-everything/skills/harness-everything/references/skill-registry.md +1 -0
  92. package/plugins/harness-everything/skills/harness-everything/scripts/doc-lifecycle.js +2401 -0
  93. package/plugins/harness-everything/skills/harness-everything/scripts/project-docs-resolver.js +764 -0
  94. package/plugins/harness-everything/skills/harness-everything/scripts/routing-keywords.json +7 -0
  95. package/plugins/harness-everything/skills/multi-agent-workspace/SKILL.md +1 -1
  96. package/plugins/harness-everything/skills/multi-agent-workspace/scripts/project-docs-resolver.js +437 -30
  97. package/plugins/harness-everything/skills/to-spec/SKILL.md +1 -1
  98. package/plugins/harness-everything/skills/to-spec/scripts/check-project-docs.js +168 -54
  99. package/plugins/harness-everything/skills/to-spec/scripts/project-docs-resolver.js +749 -96
  100. package/sbom.cdx.json +7 -7
  101. package/to-spec/SKILL.md +1 -1
  102. package/to-spec/scripts/check-project-docs.js +168 -54
  103. package/to-spec/scripts/project-docs-resolver.js +749 -96
@@ -0,0 +1,58 @@
1
+ # Workflow: Code Review
2
+
3
+ > Independently review a PR, diff, or finished implementation for correctness, contract, and negative-path defects — read-only by default, with evidence-tiered, source-anchored findings.
4
+
5
+ Source of truth: `code-review/SKILL.md`.
6
+
7
+ Contract summary from SKILL.md — Trigger: requested review of a PR, diff, implementation, or revised HEAD. Output: source-anchored findings and an evidence-qualified summary. USE FOR: review a PR/diff/finished implementation before merge, re-review a revised HEAD (prior-finding disposition + new risks). DO NOT USE FOR: security-only threat modeling/secrets/OWASP (use `security-review`); design or plan stress-testing (use `grill-me`); running gates (use `verification-loop`); writing the fix (use `tdd`).
8
+
9
+ ## 1. Skill Behavior Workflow
10
+
11
+ ```mermaid
12
+ graph TD
13
+ A[Pinned Repo Principle BB And CI State] --> B[Read Diff And Relevant Callers Callees]
14
+ B --> C[Map State Trust Fallback Consumers Tests]
15
+ C --> D[Construct Counterexamples And Negative Paths]
16
+ D --> E[Verify Findings Against Source And CI]
17
+ E --> F{Actionable Supported Finding}
18
+ F -->|yes| G[P1 P2 P3 Severity Plus Evidence Tier Plus Minimal Fix Plus Regression]
19
+ F -->|no| H[Discard Qualify Or Mark Inconclusive]
20
+ G --> I[Report Read Only Only Authorized Actions Post]
21
+ H --> I
22
+ ```
23
+
24
+ ## 2. Triggering and Routing Path
25
+
26
+ ```mermaid
27
+ graph TD
28
+ ReviewReq[Review This PR Or Diff Request] --> Skill[code-review SKILL]
29
+ ReReviewReq[Re-Review Fix At New HEAD] --> Skill
30
+ SecurityReq[Threat Model Secrets OWASP] --> NotCodeReview[security-review SKILL]
31
+ DesignReq[Stress Test Plan Or Design] --> Grm[grill-me SKILL]
32
+ GateReq[Run Build Test Lint Gates] --> VL[verification-loop SKILL]
33
+ FixReq[Implement Or Fix] --> Tdd[tdd SKILL]
34
+ ```
35
+
36
+ ## 3. Re-Review Cycle
37
+
38
+ ```mermaid
39
+ graph TD
40
+ New[Fix Pushed New HEAD] --> Pin[Pin New SHA And Diff]
41
+ Pin --> Prior[Disposition Every Prior Finding Resolved Open Superseded Inconclusive]
42
+ Prior --> Regress[Inspect Fix For Induced Side Effects And New Changes]
43
+ Regress --> Sum[Summary Scope SHA CI Fixed Open New Counts Evidence-Grounded Recommendation]
44
+ Sum -->|fix needed| Fix[Fix New Defects]
45
+ Fix --> Pin
46
+ ```
47
+
48
+ Template: `code-review/templates/finding.template.md`. Deep dive: `code-review/references/review-playbook.md`.
49
+
50
+ ## 4. Verification Check
51
+
52
+ - [ ] Repository, contract, base/head SHA, changed scope, and CI state pinned before reviewing
53
+ - [ ] Independent pass completed; author explanations and tests treated as leads, not proof
54
+ - [ ] Applicable counterexamples constructed (missing/malformed input, persisted state, transitions, boundaries, degraded dependencies, OS/shell, concurrency); irrelevant categories not forced
55
+ - [ ] Every reported finding carries exact path:line/diff anchor at HEAD, trigger, observed behavior, violated contract, impact, evidence tier (executed / source-traced / inconclusive), smallest fix, negative regression, and positive control
56
+ - [ ] Prior findings dispositioned at the new HEAD on re-review, plus fix-induced regressions inspected
57
+ - [ ] Review stayed read-only unless explicitly authorized; no edits, comments, labels, or merges on review authority
58
+ - [ ] Summary distinguished "no actionable findings in examined scope" from "bug-free," with test/CI/live-host evidence boundaries stated
@@ -0,0 +1,26 @@
1
+ name: code-review-routing-eval
2
+ description: Trigger precision eval for the code-review skill.
3
+ skill: code-review
4
+ version: "1.0"
5
+ config:
6
+ trials_per_task: 1
7
+ timeout_seconds: 300
8
+ parallel: false
9
+ executor: copilot-sdk
10
+ model: claude-sonnet-4.6
11
+ metrics:
12
+ - name: task_completion
13
+ weight: 0.7
14
+ threshold: 0.8
15
+ description: Did code-review trigger exactly when it should, and stay dormant for neighboring skills' requests?
16
+ - name: efficiency
17
+ weight: 0.3
18
+ threshold: 0.7
19
+ description: Did the skill stay within behavior limits?
20
+ graders:
21
+ - type: behavior
22
+ name: token-budget
23
+ config:
24
+ max_tokens: 1200
25
+ tasks:
26
+ - "tasks/*.yaml"
@@ -0,0 +1,16 @@
1
+ id: negative-code-review-002
2
+ name: Plan stress-testing must route to grill-me, not code-review
3
+ description: Stress-testing a design or plan one question at a time is in code-review's DO NOT USE FOR scope and belongs to grill-me; code-review must stay dormant.
4
+ tags:
5
+ - negative-trigger
6
+ inputs:
7
+ prompt: "Re-review my plan, asking one question at a time: stress-test the new billing service plan until we agree on where retries live."
8
+ expected:
9
+ should_trigger: false
10
+ graders:
11
+ - type: text
12
+ name: not-contains-keywords
13
+ config:
14
+ contains:
15
+ - "source-anchored"
16
+ - "source-traced"
@@ -0,0 +1,16 @@
1
+ id: negative-code-review-001
2
+ name: Security threat modeling must route to security-review, not code-review
3
+ description: A security-only threat modeling request is in code-review's DO NOT USE FOR scope and belongs to security-review; code-review must stay dormant.
4
+ tags:
5
+ - negative-trigger
6
+ inputs:
7
+ prompt: "Re-review the STRIDE threat model for security only: do a full threat model of the new payments endpoint against the OWASP Top 10, including secrets exposure."
8
+ expected:
9
+ should_trigger: false
10
+ graders:
11
+ - type: text
12
+ name: not-contains-keywords
13
+ config:
14
+ contains:
15
+ - "source-anchored"
16
+ - "source-traced"
@@ -0,0 +1,16 @@
1
+ id: negative-code-review-004
2
+ name: Implementing the fix must route to tdd, not code-review
3
+ description: Writing the fix test-first is implementation work that belongs to tdd; code-review is read-only and must stay dormant.
4
+ tags:
5
+ - negative-trigger
6
+ inputs:
7
+ prompt: "Fix the off-by-one error in the pagination helper. Write a regression test first, then make it pass."
8
+ expected:
9
+ should_trigger: false
10
+ graders:
11
+ - type: text
12
+ name: not-contains-keywords
13
+ config:
14
+ contains:
15
+ - "source-anchored"
16
+ - "source-traced"
@@ -0,0 +1,16 @@
1
+ id: negative-code-review-003
2
+ name: Running the gates must route to verification-loop, not code-review
3
+ description: Running the build, types, lint and test gates is an objective check that belongs to verification-loop; code-review must stay dormant.
4
+ tags:
5
+ - negative-trigger
6
+ inputs:
7
+ prompt: "Run the build, type check, lint and the full test suite on this branch and tell me which gates pass."
8
+ expected:
9
+ should_trigger: false
10
+ graders:
11
+ - type: text
12
+ name: not-contains-keywords
13
+ config:
14
+ contains:
15
+ - "source-anchored"
16
+ - "source-traced"
@@ -0,0 +1,16 @@
1
+ id: positive-code-review-001
2
+ name: Pre-merge PR review request triggers code-review
3
+ description: "Independently review a PR, diff or finished implementation for correctness, contract and negative-path defects, with source-anchored findings labelled executed, source-traced or inconclusive; read-only by default. USE FOR: \"review this PR before merge\", \"re-review the fix at the new HEAD\". DO NOT USE FOR: \"security threat modeling\", \"implementing or fixing the code\"."
4
+ tags:
5
+ - positive-trigger
6
+ inputs:
7
+ prompt: "Review PR #412 before we merge it. Check the diff for correctness and negative-path defects against the contract in the PRD, and label each finding as executed, source-traced or inconclusive."
8
+ expected:
9
+ should_trigger: true
10
+ graders:
11
+ - type: text
12
+ name: contains-keywords
13
+ config:
14
+ contains:
15
+ - "source-traced"
16
+ - "inconclusive"
@@ -0,0 +1,16 @@
1
+ id: positive-code-review-002
2
+ name: Re-review of a revised HEAD triggers code-review
3
+ description: "Independently review a PR, diff or finished implementation for correctness, contract and negative-path defects, with source-anchored findings labelled executed, source-traced or inconclusive; read-only by default. USE FOR: \"review this PR before merge\", \"re-review the fix at the new HEAD\". DO NOT USE FOR: \"security threat modeling\", \"implementing or fixing the code\"."
4
+ tags:
5
+ - positive-trigger
6
+ inputs:
7
+ prompt: "The author pushed a new commit to address last round's findings. Re-review the new HEAD: check each prior finding on its own as resolved, still open or superseded, and look for regressions the fix introduced."
8
+ expected:
9
+ should_trigger: true
10
+ graders:
11
+ - type: text
12
+ name: contains-keywords
13
+ config:
14
+ contains:
15
+ - "prior finding"
16
+ - "HEAD"
@@ -4,7 +4,7 @@ description: "Route software/project work through Harness: classify tier/topolog
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Miya Daniel
7
- version: 0.32.0
7
+ version: 0.34.0
8
8
  ---
9
9
 
10
10
  # Harness Everything
@@ -18,6 +18,7 @@ Every skill in this repository is reachable from this router. If a task matches
18
18
  | `grill-me` | Tier 2 | User asks to be grilled on a plan (pure Q&A). |
19
19
  | `improve-codebase-architecture` | Tier 2 | Deep architectural analysis / refactor planning. |
20
20
  | `eval-harness` | Tier 2 | Scoring, stress testing, benchmark comparison. |
21
+ | `code-review` | Tier 2 | Explicit review requests of a PR/diff/finished implementation: correctness, contract, and negative-path findings with evidence tiers, read-only by default — not threat modeling (`security-review`), plan interrogation (`grill-me`), or gate running (`verification-loop`). |
21
22
  | `verification-loop` | Tier 2/3 gate | Before declaring done or creating a PR. |
22
23
  | `security-review` | Tier 2/3 gate | Changes touching auth, input handling, secrets, network boundaries. |
23
24
  | `fable-mode` | Tier 3 | v3 staged planning, named-agent delegation, model selection, failable gates, and cold review. |