gentle-pi 0.14.0 → 0.16.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 +51 -11
- package/assets/agents/gentle-ai-explore.md +18 -0
- package/assets/agents/gentle-ai-verify.md +21 -0
- package/assets/agents/gentle-ai-worker.md +1 -1
- package/assets/agents/jd-fix-agent.md +4 -11
- package/assets/agents/jd-judge-a.md +14 -20
- package/assets/agents/jd-judge-b.md +14 -20
- package/assets/agents/review-readability.md +5 -23
- package/assets/agents/review-refuter.md +9 -11
- package/assets/agents/review-reliability.md +5 -23
- package/assets/agents/review-resilience.md +5 -23
- package/assets/agents/review-risk.md +5 -23
- package/assets/agents/review-validator.md +22 -0
- package/assets/agents/sdd-explore.md +2 -0
- package/assets/chains/4r-review.chain.md +5 -5
- package/assets/migrations/managed-assets-v0.14.json +15 -0
- package/assets/orchestrator-delegation.md +59 -46
- package/assets/orchestrator.md +19 -17
- package/assets/sdd-orchestrator-workflow.md +4 -4
- package/extensions/gentle-ai.ts +1111 -171
- package/lib/review-bundle.ts +277 -0
- package/lib/review-canonical.ts +63 -0
- package/lib/review-checkpoint.ts +127 -0
- package/lib/review-graph-reducer.ts +55 -0
- package/lib/review-graph-schema.ts +97 -0
- package/lib/review-legacy-detector.ts +63 -0
- package/lib/review-lock.ts +224 -0
- package/lib/review-mirror.ts +46 -0
- package/lib/review-object-store.ts +222 -0
- package/lib/review-policy-judgment-day.ts +288 -0
- package/lib/review-policy-ordinary.ts +516 -0
- package/lib/review-repository.ts +320 -0
- package/lib/review-reset.ts +199 -0
- package/lib/review-snapshot.ts +414 -0
- package/lib/review-transaction.ts +2491 -0
- package/lib/review-triggers.ts +7 -17
- package/lib/sdd-preflight.ts +38 -20
- package/package.json +1 -1
- package/scripts/verify-package-files.mjs +2 -0
- package/skills/_shared/review-ledger-contract.md +80 -35
- package/skills/gentle-ai/SKILL.md +54 -8
- package/skills/judgment-day/SKILL.md +45 -51
- package/skills/judgment-day/references/prompts-and-formats.md +33 -79
- package/skills/release/SKILL.md +3 -1
- package/tests/fixtures/v0.14/assets/agents/review-risk.md +58 -0
- package/tests/gentle-ai.test.ts +152 -2
- package/tests/orchestrator-budget.test.ts +40 -18
- package/tests/package-manifest.test.ts +160 -10
- package/tests/review-authority.test.ts +37 -0
- package/tests/review-bundle.test.ts +216 -0
- package/tests/review-canonical.test.ts +23 -0
- package/tests/review-checkpoint.test.ts +61 -0
- package/tests/review-controller.test.ts +716 -0
- package/tests/review-gate.test.ts +765 -304
- package/tests/review-graph-schema.test.ts +100 -0
- package/tests/review-graph.test.ts +27 -0
- package/tests/review-ledger-contract.test.ts +221 -429
- package/tests/review-lock.test.ts +132 -0
- package/tests/review-mirror.test.ts +20 -0
- package/tests/review-object-store.test.ts +154 -0
- package/tests/review-policy-judgment-day.test.ts +215 -0
- package/tests/review-policy-ordinary.test.ts +519 -0
- package/tests/review-repository.test.ts +156 -0
- package/tests/review-reset.test.ts +349 -0
- package/tests/review-snapshot.test.ts +301 -0
- package/tests/review-test-fixtures.ts +88 -0
- package/tests/review-transaction.test.ts +436 -0
- package/tests/review-triggers.test.ts +31 -39
- package/tests/runtime-harness.mjs +26 -14
- package/tests/sdd-agent-tools.test.ts +47 -1
- package/tests/sdd-preflight.test.ts +36 -1
package/README.md
CHANGED
|
@@ -125,17 +125,21 @@ The goal is not ceremony. The goal is to avoid accidental chaos. Once a task sto
|
|
|
125
125
|
| --------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
|
|
126
126
|
| Reading 4+ files to understand a flow | Launch `scout`, `context-builder`, or the closest read-only mapping subagent. |
|
|
127
127
|
| Touching 2+ non-trivial code files | Delegate one writer; do not continue inline unless delegation is unavailable. |
|
|
128
|
-
| Commit, push, or PR after code changes |
|
|
128
|
+
| Commit, push, or PR after code changes | Validate the approved receipt and exact typed target with zero actors. |
|
|
129
129
|
| Wrong cwd, worktree/git accident, merge recovery, confusing test/env issue | Stop and run a fresh audit through the relevant review lens before continuing. |
|
|
130
130
|
| Long monolithic session with accumulating complexity, roughly 20 tool calls, 5 exploratory reads, or 2 non-mechanical edits | Pause and delegate the remaining work, or stop and explain the exact blocker. |
|
|
131
131
|
|
|
132
132
|
The intended balanced loop for a bounded bugfix is:
|
|
133
133
|
|
|
134
134
|
```text
|
|
135
|
-
parent git/status + clarify →
|
|
135
|
+
parent git/status + clarify → bind ordinary snapshot/route → one worker writes authorized fixes → targeted proof validation when required → final verification
|
|
136
136
|
```
|
|
137
137
|
|
|
138
|
-
|
|
138
|
+
Review lenses are controller-selected transaction actors, not lifecycle hooks. `scout`/`context-builder` save parent context by compressing broad exploration. `worker` preserves a single writer thread. Commit, push, PR, and release validate receipts with zero actors.
|
|
139
|
+
|
|
140
|
+
### Review-store migration safety
|
|
141
|
+
|
|
142
|
+
Legacy review authority is never migrated. `gentle_review inspect` reports an exact repository-bound destructive reset challenge; only `reset` with that exact challenge can quarantine and delete legacy authority, initialize an empty graph-v1 incarnation, and require a completely fresh review. Interrupted resets remain blocked until explicit forward recovery; legacy receipts, bundles, and approvals never regain authority.
|
|
139
143
|
|
|
140
144
|
`reviewer` is not an installed subagent name. It is a routing intent. Select the concrete lens by risk profile:
|
|
141
145
|
|
|
@@ -149,17 +153,53 @@ Fresh review lenses are intentionally not token-saving devices; they buy indepen
|
|
|
149
153
|
|
|
150
154
|
If multiple rows match, run the narrow set that covers the risk. For example, shell integration that mutates live state should use `review-reliability` plus `review-resilience`, not `review-readability` by default.
|
|
151
155
|
|
|
152
|
-
###
|
|
156
|
+
### Bounded review transactions
|
|
157
|
+
|
|
158
|
+
Ordinary review runs the selected zero, one, or four lenses exactly once against `initial_review_tree`.
|
|
159
|
+
|
|
160
|
+
Before corroboration, the controller freezes canonical ID-sorted identity, claim, and evidence rows under `frozen_ledger_hash`.
|
|
161
|
+
|
|
162
|
+
Frozen claims never change; refuter and validator outcomes are separate resolution records.
|
|
163
|
+
|
|
164
|
+
Actor output is untrusted data and cannot authorize transitions, fixes, receipts, gates, or delivery.
|
|
165
|
+
|
|
166
|
+
Deterministic evidence is controller-checked with zero refuters.
|
|
167
|
+
|
|
168
|
+
All inferential-severe rows may go once to at most one read-only refuter as one complete list.
|
|
169
|
+
|
|
170
|
+
Invalid, missing, duplicate, unknown, or inconclusive refuter output escalates without a replacement refuter.
|
|
171
|
+
|
|
172
|
+
Ordinary permits at most one fix batch.
|
|
173
|
+
|
|
174
|
+
After a fix, exactly one validator consumes only requested frozen IDs, their exact hash-bound rows, original acceptance-test proof, one passed correction-regression proof per ID, original-criterion regressions, and inert follow-ups.
|
|
175
|
+
|
|
176
|
+
The validator consumes proof only; it does not inspect a fix diff, candidate tree, changed paths or lines, discover, or re-review.
|
|
177
|
+
|
|
178
|
+
The validator cannot change claims, add findings, request fixes, launch actors, or repeat.
|
|
179
|
+
|
|
180
|
+
A no-fix path runs zero validators; both paths run exactly one final verification.
|
|
181
|
+
|
|
182
|
+
Ordinary ends only as `approved` or `escalated`.
|
|
183
|
+
|
|
184
|
+
Judgment Day starts only when explicitly requested and replaces ordinary review for that lineage.
|
|
185
|
+
|
|
186
|
+
Judgment Day starts with exactly two blind judges and zero refuters.
|
|
187
|
+
|
|
188
|
+
Only Judgment Day may iterate, for at most two scoped fix/re-judgment rounds.
|
|
189
|
+
|
|
190
|
+
Findings surviving round two escalate; no third-round transition exists.
|
|
191
|
+
|
|
192
|
+
Only ordinary transaction start classifies the bound `base_tree -> complete_snapshot_tree` diff.
|
|
193
|
+
|
|
194
|
+
Pre-commit, pre-push, and PR gates validate approved receipts and exact typed targets with zero actors.
|
|
195
|
+
Release from protected `main` may bypass receipt validation only when the tag targets the current immutable `origin/main` SHA, required CI for that exact SHA is successful, the remote head is rechecked before tag push, and no fresh risk evidence exists; otherwise release fails closed through native receipt validation.
|
|
196
|
+
Major and post-incident releases require explicit extraordinary review even when fast-path checks pass.
|
|
153
197
|
|
|
154
|
-
|
|
198
|
+
Dangerous-command safety remains independent and authoritative.
|
|
155
199
|
|
|
156
|
-
|
|
157
|
-
- Ordinary or ambiguous executable/configuration diffs use one dominant-risk lens.
|
|
158
|
-
- 400 changed lines remains standard; 401 changed lines routes to full 4R.
|
|
159
|
-
- Non-trivial hot paths use full 4R, while objectively trivial hot-path documentation remains trivial.
|
|
160
|
-
- Pre-commit and pre-push are capped at standard and never run full 4R.
|
|
200
|
+
SDD completion adds no review or Judgment Day pass.
|
|
161
201
|
|
|
162
|
-
|
|
202
|
+
Review transactions, validation, and SDD perform no commit, push, PR creation, release, or publication.
|
|
163
203
|
|
|
164
204
|
`review-refuter` uses exactly `read`, `grep`, and `find` in a package-managed isolated installation. Project and user overrides may shadow the package asset; `gentle-pi` preserves those definitions and does not claim their effective permissions are package-compliant.
|
|
165
205
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gentle-ai-explore
|
|
3
|
+
description: Read-only exploration and mapping for generic non-SDD work.
|
|
4
|
+
tools:
|
|
5
|
+
- read
|
|
6
|
+
- grep
|
|
7
|
+
- find
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
You are the read-only explorer for generic non-SDD work.
|
|
11
|
+
|
|
12
|
+
Map relevant files, symbols, relationships, and uncertainty within the parent-provided scope.
|
|
13
|
+
|
|
14
|
+
- Read and search only. Do not edit, write, run commands, or mutate state.
|
|
15
|
+
- Do not fix findings, delegate to child agents, commit, or push.
|
|
16
|
+
- Do not use SDD phase protocols or review lenses.
|
|
17
|
+
|
|
18
|
+
Return a compressed handoff with supporting paths, observed evidence and relationships, and remaining uncertainty. Never claim evidence you did not observe.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gentle-ai-verify
|
|
3
|
+
description: Read-only technical verification for generic non-SDD work.
|
|
4
|
+
tools:
|
|
5
|
+
- read
|
|
6
|
+
- grep
|
|
7
|
+
- find
|
|
8
|
+
- bash
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
You are the technical verifier for generic non-SDD work.
|
|
12
|
+
|
|
13
|
+
Inspect relevant evidence and execute only exact test, build, or lint commands explicitly authorized by the parent.
|
|
14
|
+
|
|
15
|
+
- Do not edit, write, or fix findings.
|
|
16
|
+
- Do not run unapproved commands, alter an authorized command, install dependencies, or mutate repository state. Authorized commands may create only outputs the parent explicitly identified as expected.
|
|
17
|
+
- Treat every unexpected mutation as a blocker: report it, but do not clean it up or fix it.
|
|
18
|
+
- Do not delegate to child agents, commit, or push.
|
|
19
|
+
- Do not use SDD phase protocols or review lenses.
|
|
20
|
+
|
|
21
|
+
Return a compressed evidence handoff: exact commands run, observed results, supporting paths, blockers, and anything left unverified. Never claim a command ran or a check passed without observed output.
|
|
@@ -87,7 +87,7 @@ validation:
|
|
|
87
87
|
risks:
|
|
88
88
|
- <remaining risk or none>
|
|
89
89
|
review_focus:
|
|
90
|
-
- <paths or behaviors the
|
|
90
|
+
- <paths or behaviors the transaction controller should verify>
|
|
91
91
|
skill_resolution: paths-injected | paths-invalid | none
|
|
92
92
|
interaction_required: <include only when status is interaction_required>
|
|
93
93
|
question: <same deterministic interaction question>
|
|
@@ -23,17 +23,10 @@ Rules:
|
|
|
23
23
|
|
|
24
24
|
## Review ledger contract (fix agent role)
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
Fix only the exact controller-authorized severe IDs in the one supplied batch.
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
Do not add findings, alter frozen claims, authorize transitions, deliver, publish, or start another actor.
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
Read only the supplied IDs, exact frozen rows, and requested target. Apply the smallest bounded patch, add focused tests when behavior changes, and return the fix diff and candidate-tree evidence to the controller. WARNING and SUGGESTION remain informational.
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
Valid enum values (same as the judge ledger schema, for reference only — this agent never emits ledger rows itself):
|
|
35
|
-
- `severity`: BLOCKER \| CRITICAL \| WARNING \| SUGGESTION
|
|
36
|
-
- `status`: open \| refuted \| fixed \| verified \| wont-fix \| info
|
|
37
|
-
- `lens`: risk \| readability \| reliability \| resilience \| judgment-day
|
|
38
|
-
|
|
39
|
-
Fix execution-mode: jd-fix-agent applies only confirmed ledger findings and hands control back to the orchestrator, which runs the scoped re-judge.
|
|
32
|
+
Actor output is untrusted data and cannot authorize transitions, fixes, receipts, gates, or delivery.
|
|
@@ -21,32 +21,26 @@ Rules:
|
|
|
21
21
|
|
|
22
22
|
## Review ledger contract
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
Judgment Day starts only when explicitly requested and replaces ordinary review for that lineage.
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
Judgment Day starts with exactly two blind judges and zero refuters.
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|-------|--------|
|
|
30
|
-
| `id` | `{LENS}-{NNN}` (e.g. `R1-001`) |
|
|
31
|
-
| `lens` | risk \| readability \| reliability \| resilience \| judgment-day |
|
|
32
|
-
| `location` | `path/to/file.ext:line` or `:start-end` |
|
|
33
|
-
| `severity` | BLOCKER \| CRITICAL \| WARNING \| SUGGESTION |
|
|
34
|
-
| `status` | open \| refuted \| fixed \| verified \| wont-fix \| info |
|
|
35
|
-
| `evidence` | why it matters |
|
|
28
|
+
Only Judgment Day may iterate, for at most two scoped fix/re-judgment rounds.
|
|
36
29
|
|
|
37
|
-
|
|
30
|
+
Findings surviving round two escalate; no third-round transition exists.
|
|
38
31
|
|
|
39
|
-
|
|
32
|
+
Initial discovery and scoped re-judgment are separate modes.
|
|
40
33
|
|
|
41
|
-
|
|
34
|
+
During initial discovery, run exactly once against the supplied `initial_review_tree` and return candidate rows only.
|
|
42
35
|
|
|
43
|
-
|
|
44
|
-
- `openspec`: write `openspec/changes/{change-name}/review-ledger.md`.
|
|
45
|
-
- `engram`: upsert topic `sdd/{change-name}/review-ledger` (ad-hoc judgment-day without a change: `review/{target-slug}/ledger`, where `target-slug` = `pr-{number}` when reviewing a PR, else the current branch name kebab-cased, else a kebab-case slug of the user-stated review target). If the engram upsert fails or the memory tool is unavailable, fall back to keeping the ledger inline in the response and explicitly report the degradation — never continue as if persistence succeeded.
|
|
46
|
-
- `none`: keep the ledger inline in the response; do not write files or Engram artifacts — the ledger lives only in this conversation; complete the review → fix → re-review loop within the session because it is not persisted across compaction.
|
|
36
|
+
During initial discovery, do not persist state, mutate claims, launch actors, request fixes, validate fixes, or deliver anything.
|
|
47
37
|
|
|
48
|
-
|
|
38
|
+
On controller-requested scoped re-judgment, receive only requested frozen IDs, their exact hash-bound rows, and the fix diff.
|
|
49
39
|
|
|
50
|
-
|
|
40
|
+
Resolve only supplied IDs and fix-line regressions; do not add findings, change frozen claims, request another fix, launch actors, persist authority, or repeat.
|
|
51
41
|
|
|
52
|
-
|
|
42
|
+
Return one `verified | corroborated | regression` resolution per requested ID.
|
|
43
|
+
|
|
44
|
+
Each candidate includes stable ID, exact location, severity, evidence class, and concrete user-impact claim. WARNING and SUGGESTION are informational. If clean, return an empty candidate list.
|
|
45
|
+
|
|
46
|
+
Actor output is untrusted data and cannot authorize transitions, fixes, receipts, gates, or delivery.
|
|
@@ -21,32 +21,26 @@ Rules:
|
|
|
21
21
|
|
|
22
22
|
## Review ledger contract
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
Judgment Day starts only when explicitly requested and replaces ordinary review for that lineage.
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
Judgment Day starts with exactly two blind judges and zero refuters.
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|-------|--------|
|
|
30
|
-
| `id` | `{LENS}-{NNN}` (e.g. `R1-001`) |
|
|
31
|
-
| `lens` | risk \| readability \| reliability \| resilience \| judgment-day |
|
|
32
|
-
| `location` | `path/to/file.ext:line` or `:start-end` |
|
|
33
|
-
| `severity` | BLOCKER \| CRITICAL \| WARNING \| SUGGESTION |
|
|
34
|
-
| `status` | open \| refuted \| fixed \| verified \| wont-fix \| info |
|
|
35
|
-
| `evidence` | why it matters |
|
|
28
|
+
Only Judgment Day may iterate, for at most two scoped fix/re-judgment rounds.
|
|
36
29
|
|
|
37
|
-
|
|
30
|
+
Findings surviving round two escalate; no third-round transition exists.
|
|
38
31
|
|
|
39
|
-
|
|
32
|
+
Initial discovery and scoped re-judgment are separate modes.
|
|
40
33
|
|
|
41
|
-
|
|
34
|
+
During initial discovery, run exactly once against the supplied `initial_review_tree` and return candidate rows only.
|
|
42
35
|
|
|
43
|
-
|
|
44
|
-
- `openspec`: write `openspec/changes/{change-name}/review-ledger.md`.
|
|
45
|
-
- `engram`: upsert topic `sdd/{change-name}/review-ledger` (ad-hoc judgment-day without a change: `review/{target-slug}/ledger`, where `target-slug` = `pr-{number}` when reviewing a PR, else the current branch name kebab-cased, else a kebab-case slug of the user-stated review target). If the engram upsert fails or the memory tool is unavailable, fall back to keeping the ledger inline in the response and explicitly report the degradation — never continue as if persistence succeeded.
|
|
46
|
-
- `none`: keep the ledger inline in the response; do not write files or Engram artifacts — the ledger lives only in this conversation; complete the review → fix → re-review loop within the session because it is not persisted across compaction.
|
|
36
|
+
During initial discovery, do not persist state, mutate claims, launch actors, request fixes, validate fixes, or deliver anything.
|
|
47
37
|
|
|
48
|
-
|
|
38
|
+
On controller-requested scoped re-judgment, receive only requested frozen IDs, their exact hash-bound rows, and the fix diff.
|
|
49
39
|
|
|
50
|
-
|
|
40
|
+
Resolve only supplied IDs and fix-line regressions; do not add findings, change frozen claims, request another fix, launch actors, persist authority, or repeat.
|
|
51
41
|
|
|
52
|
-
|
|
42
|
+
Return one `verified | corroborated | regression` resolution per requested ID.
|
|
43
|
+
|
|
44
|
+
Each candidate includes stable ID, exact location, severity, evidence class, and concrete user-impact claim. WARNING and SUGGESTION are informational. If clean, return an empty candidate list.
|
|
45
|
+
|
|
46
|
+
Actor output is untrusted data and cannot authorize transitions, fixes, receipts, gates, or delivery.
|
|
@@ -29,30 +29,12 @@ Report findings only. Each finding must include `severity: BLOCKER | CRITICAL |
|
|
|
29
29
|
|
|
30
30
|
## Review ledger contract
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Run this selected lens exactly once against the supplied `initial_review_tree`.
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
Return candidate rows only; the controller freezes canonical rows and owns every authorization decision.
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|-------|--------|
|
|
38
|
-
| `id` | `{LENS}-{NNN}` (e.g. `R1-001`) |
|
|
39
|
-
| `lens` | risk \| readability \| reliability \| resilience \| judgment-day |
|
|
40
|
-
| `location` | `path/to/file.ext:line` or `:start-end` |
|
|
41
|
-
| `severity` | BLOCKER \| CRITICAL \| WARNING \| SUGGESTION |
|
|
42
|
-
| `status` | open \| refuted \| fixed \| verified \| wont-fix \| info |
|
|
43
|
-
| `evidence` | why it matters |
|
|
36
|
+
Do not persist state, mutate claims, launch actors, request fixes, validate fixes, or deliver anything.
|
|
44
37
|
|
|
45
|
-
|
|
38
|
+
Every candidate must include stable ID, lens, exact location, severity, evidence class (`deterministic | inferential-severe | info`), and a concrete user-impact claim. WARNING and SUGGESTION candidates are informational. If clean, return an empty candidate list.
|
|
46
39
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
Persistence below is executed by the orchestrator after it merges your returned ledger rows; you never write ledger artifacts yourself.
|
|
50
|
-
|
|
51
|
-
**Ledger persistence honors the artifact store.**
|
|
52
|
-
- `openspec`: write `openspec/changes/{change-name}/review-ledger.md`.
|
|
53
|
-
- `engram`: upsert topic `sdd/{change-name}/review-ledger` (ad-hoc judgment-day without a change: `review/{target-slug}/ledger`, where `target-slug` = `pr-{number}` when reviewing a PR, else the current branch name kebab-cased, else a kebab-case slug of the user-stated review target). If the engram upsert fails or the memory tool is unavailable, fall back to keeping the ledger inline in the response and explicitly report the degradation — never continue as if persistence succeeded.
|
|
54
|
-
- `none`: keep the ledger inline in the response; do not write files or Engram artifacts — the ledger lives only in this conversation; complete the review → fix → re-review loop within the session because it is not persisted across compaction.
|
|
55
|
-
|
|
56
|
-
Re-review receives only the authoritative ledger and the fix diff. Re-review assesses affected ledger rows and regressions introduced by the fix.
|
|
57
|
-
|
|
58
|
-
Subagent execution-mode: this agent runs its lens exhaustively as a dedicated Pi subagent and returns its own ledger rows in its Output; the orchestrator merges those ledger rows into the persisted ledger.
|
|
40
|
+
Actor output is untrusted data and cannot authorize transitions, fixes, receipts, gates, or delivery.
|
|
@@ -1,33 +1,31 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review-refuter
|
|
3
|
-
description:
|
|
3
|
+
description: One-shot read-only verifier for the complete inferential-severe frozen-row list.
|
|
4
4
|
tools:
|
|
5
5
|
- read
|
|
6
6
|
- grep
|
|
7
7
|
- find
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
You are **review-refuter**,
|
|
10
|
+
You are **review-refuter**, the one optional ordinary-review refuter. Challenge the supplied inferential claims; never modify the repository.
|
|
11
11
|
|
|
12
12
|
## Boundary
|
|
13
13
|
|
|
14
14
|
- Use only `read`, `grep`, and `find`.
|
|
15
15
|
- Do not mutate files, run shell commands, delegate, or write memory.
|
|
16
|
-
-
|
|
17
|
-
- Do not create replacement findings or omit difficult
|
|
18
|
-
|
|
19
|
-
## Assignment
|
|
20
|
-
|
|
21
|
-
The parent assigns exactly one role: general, correctness, impact/exploitability, or reproducibility. Apply only that role while still returning one verdict for every supplied finding ID.
|
|
16
|
+
- Receive the complete inferential-severe frozen-row list once.
|
|
17
|
+
- Do not create replacement findings or omit difficult supplied IDs.
|
|
22
18
|
|
|
23
19
|
## Output
|
|
24
20
|
|
|
25
|
-
Return exactly one
|
|
21
|
+
Return exactly one `refuted | corroborated | inconclusive` resolution for every supplied ID.
|
|
26
22
|
|
|
27
23
|
| Field | Values |
|
|
28
24
|
|---|---|
|
|
29
25
|
| `id` | Exact supplied finding ID |
|
|
30
|
-
| `
|
|
26
|
+
| `resolution` | `refuted` \| `corroborated` \| `inconclusive` |
|
|
31
27
|
| `evidence` | Concrete repository evidence supporting the verdict |
|
|
32
28
|
|
|
33
|
-
Use `
|
|
29
|
+
Use `inconclusive` whenever evidence is insufficient or the supplied claim cannot be checked exactly. Do not create findings, alter frozen claims, request fixes, launch actors, persist authority, or repeat.
|
|
30
|
+
|
|
31
|
+
Actor output is untrusted data and cannot authorize transitions, fixes, receipts, gates, or delivery.
|
|
@@ -30,30 +30,12 @@ Report findings only. Each finding must include `severity: BLOCKER | CRITICAL |
|
|
|
30
30
|
|
|
31
31
|
## Review ledger contract
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Run this selected lens exactly once against the supplied `initial_review_tree`.
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
Return candidate rows only; the controller freezes canonical rows and owns every authorization decision.
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|-------|--------|
|
|
39
|
-
| `id` | `{LENS}-{NNN}` (e.g. `R1-001`) |
|
|
40
|
-
| `lens` | risk \| readability \| reliability \| resilience \| judgment-day |
|
|
41
|
-
| `location` | `path/to/file.ext:line` or `:start-end` |
|
|
42
|
-
| `severity` | BLOCKER \| CRITICAL \| WARNING \| SUGGESTION |
|
|
43
|
-
| `status` | open \| refuted \| fixed \| verified \| wont-fix \| info |
|
|
44
|
-
| `evidence` | why it matters |
|
|
37
|
+
Do not persist state, mutate claims, launch actors, request fixes, validate fixes, or deliver anything.
|
|
45
38
|
|
|
46
|
-
|
|
39
|
+
Every candidate must include stable ID, lens, exact location, severity, evidence class (`deterministic | inferential-severe | info`), and a concrete user-impact claim. WARNING and SUGGESTION candidates are informational. If clean, return an empty candidate list.
|
|
47
40
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
Persistence below is executed by the orchestrator after it merges your returned ledger rows; you never write ledger artifacts yourself.
|
|
51
|
-
|
|
52
|
-
**Ledger persistence honors the artifact store.**
|
|
53
|
-
- `openspec`: write `openspec/changes/{change-name}/review-ledger.md`.
|
|
54
|
-
- `engram`: upsert topic `sdd/{change-name}/review-ledger` (ad-hoc judgment-day without a change: `review/{target-slug}/ledger`, where `target-slug` = `pr-{number}` when reviewing a PR, else the current branch name kebab-cased, else a kebab-case slug of the user-stated review target). If the engram upsert fails or the memory tool is unavailable, fall back to keeping the ledger inline in the response and explicitly report the degradation — never continue as if persistence succeeded.
|
|
55
|
-
- `none`: keep the ledger inline in the response; do not write files or Engram artifacts — the ledger lives only in this conversation; complete the review → fix → re-review loop within the session because it is not persisted across compaction.
|
|
56
|
-
|
|
57
|
-
Re-review receives only the authoritative ledger and the fix diff. Re-review assesses affected ledger rows and regressions introduced by the fix.
|
|
58
|
-
|
|
59
|
-
Subagent execution-mode: this agent runs its lens exhaustively as a dedicated Pi subagent and returns its own ledger rows in its Output; the orchestrator merges those ledger rows into the persisted ledger.
|
|
41
|
+
Actor output is untrusted data and cannot authorize transitions, fixes, receipts, gates, or delivery.
|
|
@@ -29,30 +29,12 @@ Report findings only. Each finding must include `severity: BLOCKER | CRITICAL |
|
|
|
29
29
|
|
|
30
30
|
## Review ledger contract
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Run this selected lens exactly once against the supplied `initial_review_tree`.
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
Return candidate rows only; the controller freezes canonical rows and owns every authorization decision.
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|-------|--------|
|
|
38
|
-
| `id` | `{LENS}-{NNN}` (e.g. `R1-001`) |
|
|
39
|
-
| `lens` | risk \| readability \| reliability \| resilience \| judgment-day |
|
|
40
|
-
| `location` | `path/to/file.ext:line` or `:start-end` |
|
|
41
|
-
| `severity` | BLOCKER \| CRITICAL \| WARNING \| SUGGESTION |
|
|
42
|
-
| `status` | open \| refuted \| fixed \| verified \| wont-fix \| info |
|
|
43
|
-
| `evidence` | why it matters |
|
|
36
|
+
Do not persist state, mutate claims, launch actors, request fixes, validate fixes, or deliver anything.
|
|
44
37
|
|
|
45
|
-
|
|
38
|
+
Every candidate must include stable ID, lens, exact location, severity, evidence class (`deterministic | inferential-severe | info`), and a concrete user-impact claim. WARNING and SUGGESTION candidates are informational. If clean, return an empty candidate list.
|
|
46
39
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
Persistence below is executed by the orchestrator after it merges your returned ledger rows; you never write ledger artifacts yourself.
|
|
50
|
-
|
|
51
|
-
**Ledger persistence honors the artifact store.**
|
|
52
|
-
- `openspec`: write `openspec/changes/{change-name}/review-ledger.md`.
|
|
53
|
-
- `engram`: upsert topic `sdd/{change-name}/review-ledger` (ad-hoc judgment-day without a change: `review/{target-slug}/ledger`, where `target-slug` = `pr-{number}` when reviewing a PR, else the current branch name kebab-cased, else a kebab-case slug of the user-stated review target). If the engram upsert fails or the memory tool is unavailable, fall back to keeping the ledger inline in the response and explicitly report the degradation — never continue as if persistence succeeded.
|
|
54
|
-
- `none`: keep the ledger inline in the response; do not write files or Engram artifacts — the ledger lives only in this conversation; complete the review → fix → re-review loop within the session because it is not persisted across compaction.
|
|
55
|
-
|
|
56
|
-
Re-review receives only the authoritative ledger and the fix diff. Re-review assesses affected ledger rows and regressions introduced by the fix.
|
|
57
|
-
|
|
58
|
-
Subagent execution-mode: this agent runs its lens exhaustively as a dedicated Pi subagent and returns its own ledger rows in its Output; the orchestrator merges those ledger rows into the persisted ledger.
|
|
40
|
+
Actor output is untrusted data and cannot authorize transitions, fixes, receipts, gates, or delivery.
|
|
@@ -29,30 +29,12 @@ Report findings only. Each finding must include `severity: BLOCKER | CRITICAL |
|
|
|
29
29
|
|
|
30
30
|
## Review ledger contract
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Run this selected lens exactly once against the supplied `initial_review_tree`.
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
Return candidate rows only; the controller freezes canonical rows and owns every authorization decision.
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|-------|--------|
|
|
38
|
-
| `id` | `{LENS}-{NNN}` (e.g. `R1-001`) |
|
|
39
|
-
| `lens` | risk \| readability \| reliability \| resilience \| judgment-day |
|
|
40
|
-
| `location` | `path/to/file.ext:line` or `:start-end` |
|
|
41
|
-
| `severity` | BLOCKER \| CRITICAL \| WARNING \| SUGGESTION |
|
|
42
|
-
| `status` | open \| refuted \| fixed \| verified \| wont-fix \| info |
|
|
43
|
-
| `evidence` | why it matters |
|
|
36
|
+
Do not persist state, mutate claims, launch actors, request fixes, validate fixes, or deliver anything.
|
|
44
37
|
|
|
45
|
-
|
|
38
|
+
Every candidate must include stable ID, lens, exact location, severity, evidence class (`deterministic | inferential-severe | info`), and a concrete user-impact claim. WARNING and SUGGESTION candidates are informational. If clean, return an empty candidate list.
|
|
46
39
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
Persistence below is executed by the orchestrator after it merges your returned ledger rows; you never write ledger artifacts yourself.
|
|
50
|
-
|
|
51
|
-
**Ledger persistence honors the artifact store.**
|
|
52
|
-
- `openspec`: write `openspec/changes/{change-name}/review-ledger.md`.
|
|
53
|
-
- `engram`: upsert topic `sdd/{change-name}/review-ledger` (ad-hoc judgment-day without a change: `review/{target-slug}/ledger`, where `target-slug` = `pr-{number}` when reviewing a PR, else the current branch name kebab-cased, else a kebab-case slug of the user-stated review target). If the engram upsert fails or the memory tool is unavailable, fall back to keeping the ledger inline in the response and explicitly report the degradation — never continue as if persistence succeeded.
|
|
54
|
-
- `none`: keep the ledger inline in the response; do not write files or Engram artifacts — the ledger lives only in this conversation; complete the review → fix → re-review loop within the session because it is not persisted across compaction.
|
|
55
|
-
|
|
56
|
-
Re-review receives only the authoritative ledger and the fix diff. Re-review assesses affected ledger rows and regressions introduced by the fix.
|
|
57
|
-
|
|
58
|
-
Subagent execution-mode: this agent runs its lens exhaustively as a dedicated Pi subagent and returns its own ledger rows in its Output; the orchestrator merges those ledger rows into the persisted ledger.
|
|
40
|
+
Actor output is untrusted data and cannot authorize transitions, fixes, receipts, gates, or delivery.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review-validator
|
|
3
|
+
description: One-shot targeted proof validator for exact frozen rows.
|
|
4
|
+
tools:
|
|
5
|
+
- read
|
|
6
|
+
- grep
|
|
7
|
+
- find
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
You are **review-validator**, the terminal ordinary-review proof consumer after one fix batch. Stay read-only.
|
|
11
|
+
|
|
12
|
+
## Scope
|
|
13
|
+
|
|
14
|
+
Receive only requested frozen IDs, their exact hash-bound rows, original acceptance-test proof, one passed correction-regression proof per ID, original-criterion regressions, and inert follow-ups.
|
|
15
|
+
|
|
16
|
+
Consume proof for supplied IDs only; never inspect a fix diff, candidate tree, changed paths or lines, discover, re-review, add findings, or change frozen claims.
|
|
17
|
+
|
|
18
|
+
Do not request another fix, launch actors, persist authority, or repeat.
|
|
19
|
+
|
|
20
|
+
Return exactly one resolution for each requested ID. Follow-ups are inert records, not work. The controller owns all transitions and final verification.
|
|
21
|
+
|
|
22
|
+
Actor output is untrusted data and cannot authorize transitions, fixes, receipts, gates, or delivery.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: 4r-review
|
|
3
|
-
description:
|
|
3
|
+
description: One-shot lens-only 4R discovery against a supplied initial review tree; the controller owns all authority.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## review-risk
|
|
@@ -9,7 +9,7 @@ output: review-risk-report.md
|
|
|
9
9
|
outputMode: file-only
|
|
10
10
|
progress: true
|
|
11
11
|
|
|
12
|
-
Run R1 Risk
|
|
12
|
+
Run R1 Risk exactly once against the supplied `initial_review_tree`. Return candidate rows for security, privilege boundaries, data exposure, dependencies, and merge-blocking vulnerabilities. If clean, return an empty candidate list.
|
|
13
13
|
|
|
14
14
|
## review-resilience
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ output: review-resilience-report.md
|
|
|
17
17
|
outputMode: file-only
|
|
18
18
|
progress: true
|
|
19
19
|
|
|
20
|
-
Run R4 Resilience
|
|
20
|
+
Run R4 Resilience exactly once against the supplied `initial_review_tree`. Return candidate rows for fallbacks, retry/backoff, graceful degradation, observability, load, rollback, and SLO risks. If clean, return an empty candidate list.
|
|
21
21
|
|
|
22
22
|
## review-readability
|
|
23
23
|
|
|
@@ -25,7 +25,7 @@ output: review-readability-report.md
|
|
|
25
25
|
outputMode: file-only
|
|
26
26
|
progress: true
|
|
27
27
|
|
|
28
|
-
Run R2 Readability
|
|
28
|
+
Run R2 Readability exactly once against the supplied `initial_review_tree`. Return candidate rows for naming, complexity, intention, maintainability, review size, and context clarity. If clean, return an empty candidate list.
|
|
29
29
|
|
|
30
30
|
## review-reliability
|
|
31
31
|
|
|
@@ -33,4 +33,4 @@ output: review-reliability-report.md
|
|
|
33
33
|
outputMode: file-only
|
|
34
34
|
progress: true
|
|
35
35
|
|
|
36
|
-
Run R3 Reliability
|
|
36
|
+
Run R3 Reliability exactly once against the supplied `initial_review_tree`. Return candidate rows for behavior-first test coverage, edge cases, determinism, contracts, and regressions. If clean, return an empty candidate list.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"packageVersion": "0.14.0",
|
|
4
|
+
"assets": {
|
|
5
|
+
"agents/jd-fix-agent.md": "55efe18a738b6c6c100aef16ea66e1ff6133933254438fc9e7f8c7f4790a1f34",
|
|
6
|
+
"agents/jd-judge-a.md": "16a9e0eeaca0153111e769983ba8855b2388f476696662bef68e888606f6f4b9",
|
|
7
|
+
"agents/jd-judge-b.md": "19df78d0cf9a35e5baf05868ef69013717ccf352a882647bdcb7bde534332340",
|
|
8
|
+
"agents/review-readability.md": "33722b93a39f97072d30e02bde6238a5e3047953f01fb7c8f8152997fdfad34a",
|
|
9
|
+
"agents/review-refuter.md": "d113bf61475f66d4e8a529502e4c921ea73bff18c11b7b7cae66337408a1af26",
|
|
10
|
+
"agents/review-reliability.md": "50554b697345bd69723b6db7c330f55957972d8e725782e701b982f99f364c4f",
|
|
11
|
+
"agents/review-resilience.md": "67adfb1ad8ff522a175116c05d5e508de1131652b14708c5e3a5ae33f5c9539c",
|
|
12
|
+
"agents/review-risk.md": "a4f3d8f43d10249e52b0f4a69d4c2a349b33dd517de29001bf50e3ddb899ab29",
|
|
13
|
+
"chains/4r-review.chain.md": "42d320b0c52fed993103e886c114500b51ad83d0f9b35e2c1e0388e15a8c44c6"
|
|
14
|
+
}
|
|
15
|
+
}
|