@gtrabanco/pi-agentic-workflow 0.7.1 → 0.8.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.es.md +22 -3
- package/README.md +21 -3
- package/dist/config/schema.js +32 -1
- package/dist/config/types.d.ts +10 -1
- package/dist/config/types.js +2 -0
- package/dist/extension/factory.js +26 -15
- package/dist/extension/index.js +44 -1
- package/dist/routing/dispatch.js +39 -3
- package/dist/routing/types.d.ts +15 -0
- package/dist/routing/types.js +2 -0
- package/dist/settings/console.d.ts +11 -0
- package/dist/settings/console.js +203 -19
- package/dist/settings/picker.d.ts +31 -0
- package/dist/settings/picker.js +93 -0
- package/dist/settings/view.js +4 -1
- package/package.json +13 -8
- package/skills/execute-phase/SKILL.md +6 -4
- package/skills/execute-phase/references/BATCH_AND_PORTABILITY.md +5 -3
- package/skills/execute-phase/references/CLOSEOUT.md +6 -4
- package/skills/execute-phase/references/FOLDING.md +2 -1
- package/skills/execute-phase/references/UNIT_LOOP.md +2 -1
- package/skills/pre-execution-review/SKILL.md +1 -1
- package/skills/pre-execution-review/references/LEDGERS.md +10 -7
- package/skills/pre-execution-review/references/SNAPSHOT.md +2 -2
- package/skills/review-change/SKILL.md +15 -2
- package/skills/review-change/references/OUTPUT_AND_GUARDRAILS.md +5 -4
- package/skills/review-change/references/PERSIST_AND_DECIDE.md +8 -0
- package/skills/review-change/references/REVIEW_PROCESS.md +4 -3
- package/skills/review-plan/SKILL.md +1 -1
- package/skills/review-plan/references/CHECKS.md +1 -1
- package/skills/review-plan/references/OUTPUT.md +2 -2
- package/skills/review-spec/SKILL.md +1 -1
- package/skills/review-spec/references/CHECKS.md +1 -1
- package/skills/review-spec/references/OUTPUT.md +1 -1
- package/skills/ship-roadmap/SKILL.md +2 -2
- package/skills/ship-roadmap/references/ADVANCE.md +1 -3
- package/skills/ship-roadmap/references/MODEL_ROUTING.md +1 -1
- package/skills/workflow-status/SKILL.md +1 -1
- package/skills/workflow-status/references/PRE_EXECUTION.md +1 -1
- package/skills/workflow-status/references/SENSOR_CORE.md +1 -1
|
@@ -5,7 +5,7 @@ digest**. One command produces it, so an author, a reviewer and a consumer canno
|
|
|
5
5
|
drift apart while reading the same bytes.
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
|
|
8
|
+
bun scripts/pre-execution-snapshot.mjs build --stage <spec|plan> --unit <NN-slug|fix-N> \
|
|
9
9
|
[--dir <artifact-dir>] [--unit-kind <feature|fix>] [--artifact-revision <id>] \
|
|
10
10
|
[--source-revision <sha>] [--parent <64-hex>] [--json <out-file>]
|
|
11
11
|
```
|
|
@@ -61,7 +61,7 @@ Rules the builder enforces and no caller may improvise around:
|
|
|
61
61
|
### Re-verifying a receipt (consumers)
|
|
62
62
|
|
|
63
63
|
```bash
|
|
64
|
-
|
|
64
|
+
bun scripts/pre-execution-snapshot.mjs verify --stage <spec|plan> --unit <NN-slug|fix-N> \
|
|
65
65
|
[--dir <artifact-dir>] [--unit-kind <feature|fix>] [--receipt <receipt-id-or-digest>] \
|
|
66
66
|
[--parent <64-hex>] [--policy <version>] [--source-revision <sha>] [--artifact-revision <id>]
|
|
67
67
|
```
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review-change
|
|
3
3
|
user-invocable: true
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.5.0
|
|
5
5
|
argument-hint: <path-or-glob> [--adversarial N] [--synthesize]
|
|
6
6
|
author: "Gabriel Trabanco <gtrabanco@users.noreply.github.com>"
|
|
7
7
|
license: MIT
|
|
@@ -37,6 +37,18 @@ For `REVIEW-FAIL` or `NEEDS-DECISION`, list every open finding ID in the closing
|
|
|
37
37
|
recommendation, joined with ` + `; the review must never hand off only the first
|
|
38
38
|
finding.
|
|
39
39
|
|
|
40
|
+
## Review-end turn boundary
|
|
41
|
+
|
|
42
|
+
On `REVIEW-FAIL` or `NEEDS-DECISION`, this skill **ends at the report**: it
|
|
43
|
+
never invokes `/fold-findings`, `/execute-phase`, `/plan-feature`,
|
|
44
|
+
`/design-feature` or `/triage-issue` — those are separate user-initiated invocations,
|
|
45
|
+
run in a fresh turn (a programmatic outer driver may compose the same
|
|
46
|
+
sequence in-turn, per `REVIEW_PROCESS.md`). The review's only mutations are the
|
|
47
|
+
ledger commit (persist step 11) and, on `REVIEW-PASS` with a PR, the
|
|
48
|
+
receipt comment (persist step 12); it never folds a finding, executes a phase,
|
|
49
|
+
or edits code. A `REVIEW-FAIL`/`NEEDS-DECISION` turn closes when the report
|
|
50
|
+
block is printed (report step 13).
|
|
51
|
+
|
|
40
52
|
Consume the internal [verification contract](<../verification-contract/SKILL.md>);
|
|
41
53
|
the reviewer checks the same frozen `ACCEPTANCE.md` blob as the executor before
|
|
42
54
|
mapping candidate evidence.
|
|
@@ -140,7 +152,8 @@ Orchestrates internal finders (`review-code`, `review-security`, `review-verify`
|
|
|
140
152
|
one `review-implementation` classifier and `review-debt` transform, isolated by
|
|
141
153
|
default; installed platform packs are optional. `triage-issue` is user-invoked
|
|
142
154
|
only for independent proposals (D3). It is Stage 4: checkpoint reviews are
|
|
143
|
-
optional, the end review is mandatory and fresh. `fix-now`
|
|
155
|
+
optional, the end review is mandatory and fresh. `fix-now` is routed to the
|
|
156
|
+
unit's fold cycle — a separate `/fold-findings` invocation, never run by this review;
|
|
144
157
|
`replan-in-unit` adds user-confirmed phases, and independent work becomes
|
|
145
158
|
proposals. `audit-pr` consumes only the verified PR-comment receipt, never the
|
|
146
159
|
chat report; `product-audit` is the periodic sweep. On `REVIEW-FAIL` the manual
|
|
@@ -21,10 +21,11 @@ Every finding gets a destination under the current-unit contract — none silent
|
|
|
21
21
|
lost, and none becomes reviewer-created backlog (D3):
|
|
22
22
|
|
|
23
23
|
- **fix-now** → persisted to the unit's `review-findings.md` fold ledger, then
|
|
24
|
-
|
|
25
|
-
`plan-fix`. Classification honors
|
|
26
|
-
contract**: in-scope defects are
|
|
27
|
-
postpone/tradeoff/wontfix/new-issue
|
|
24
|
+
routed to the current phase's fold cycle (`/fold-findings`, invoked after this review ends)
|
|
25
|
+
— never a tracked issue, never `plan-fix`. Classification honors
|
|
26
|
+
`review-implementation`'s **current-unit contract**: in-scope defects are
|
|
27
|
+
always fix-now / replan-in-unit — never a postpone/tradeoff/wontfix/new-issue
|
|
28
|
+
escape.
|
|
28
29
|
- **fix-now / `replan-in-unit`** (too large to fold as-is) → keeps its fix-now
|
|
29
30
|
class and ledger row; propose the new SPEC phase(s) to the user, then
|
|
30
31
|
`execute-phase` on the same branch folds it.
|
|
@@ -37,6 +37,10 @@
|
|
|
37
37
|
an uncommitted append hands the next review a dirty-tree stop. On
|
|
38
38
|
`REVIEW-PASS` with an open PR no ledger write happens (the SHA-bound
|
|
39
39
|
receipt is the durable record): head and posted receipt stay identical.
|
|
40
|
+
This skill's only mutations are this ledger commit (step 11) and, on
|
|
41
|
+
`REVIEW-PASS` with a PR, the receipt comment (step 12) — it never runs a
|
|
42
|
+
fold, executes a phase, or edits source (see the review-end turn boundary in
|
|
43
|
+
the SKILL.md Turn contract).
|
|
40
44
|
12. **Close out the final-review receipt before reporting.** First derive the
|
|
41
45
|
`Decision` from step 7 and persist step 11. Then, before printing any line of
|
|
42
46
|
the fixed report block or the `→ Next:` block, complete the receipt action
|
|
@@ -112,6 +116,10 @@
|
|
|
112
116
|
line — each sub-bullet is its own line, exactly as quoted below.
|
|
113
117
|
For `REVIEW-FAIL` or `NEEDS-DECISION`, list every open finding ID in the
|
|
114
118
|
closing recommendation, joined with ` + `; never hand off only the first.
|
|
119
|
+
The `→ Next:` block is a **recommendation, not a to-do list**: it names what
|
|
120
|
+
the *next* user-initiated invocation should be, and this turn ends when the
|
|
121
|
+
report block (step 13) is printed — emit the block and end the run; do not
|
|
122
|
+
begin the recommended command.
|
|
115
123
|
|
|
116
124
|
**`Decision: REVIEW-FAIL`** (any fix-now finding open) — the recommended line
|
|
117
125
|
is the fold, never the merge gate. Findings were persisted in step 11; **no
|
|
@@ -148,8 +148,8 @@
|
|
|
148
148
|
and a human must check — visual correctness, real-device/locale behavior, UX
|
|
149
149
|
feel, perf under load, anything marked *verify*. Be explicit so the dev has zero
|
|
150
150
|
doubt about what to eyeball.
|
|
151
|
-
11. **Route the outcomes.** fix-now findings
|
|
152
|
-
user-confirmed phases via replan-in-unit
|
|
151
|
+
11. **Route the outcomes.** fix-now findings are routed to the unit's fold cycle (a separate `/fold-findings` invocation, never run by this review), or gain
|
|
152
|
+
user-confirmed phases via replan-in-unit; decision-required stops for the
|
|
153
153
|
user's decision; genuinely independent future capabilities become
|
|
154
154
|
**non-blocking proposals** — batched in the report with a trigger, and
|
|
155
155
|
**never** sent to `triage-issue` automatically (D3). `review-change` creates
|
|
@@ -176,4 +176,5 @@ A **third cycle never starts** unless the user explicitly instructs it — it is
|
|
|
176
176
|
the user's escape, never a reviewer election. The residue routes to
|
|
177
177
|
`triage-issue --prioritize-now` (or the programmatic outer driver), and a unit
|
|
178
178
|
that needs a third cycle has a planning or root-cause defect, not a review
|
|
179
|
-
deficit.
|
|
179
|
+
deficit. Re-runs count **separate review invocations**, not in-session steps:
|
|
180
|
+
`/review-change` is invoked by the user in a fresh turn each time.
|
|
@@ -51,7 +51,7 @@ tables is a finding. Either way `review-plan` reads the **whole** table
|
|
|
51
51
|
|
|
52
52
|
Then digest it with the recipe owner —
|
|
53
53
|
`pre-execution-review`'s [`SKILL.md`](<../../pre-execution-review/SKILL.md>) →
|
|
54
|
-
SNAPSHOT reference: `
|
|
54
|
+
SNAPSHOT reference: `bun scripts/pre-execution-snapshot.mjs build --stage plan
|
|
55
55
|
--unit <unitId> --parent <Product snapshot digest>`
|
|
56
56
|
(`verify` mode is what consumers run afterwards, and it shares the builder, so pass
|
|
57
57
|
`--parent` there too on a feature unit; a **fix** unit omits it and binds `null`).
|
|
@@ -59,9 +59,9 @@ answer beside the verdict block before reporting. A feature plan run names `--pa
|
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
61
|
# feature plan — binds the Product snapshot it descends from
|
|
62
|
-
|
|
62
|
+
bun scripts/pre-execution-snapshot.mjs verify --stage plan --unit <NN-slug> --dir docs/features/<NN>-<slug> --unit-kind feature --parent <64-hex>
|
|
63
63
|
# fix unit — no Product half exists (D6)
|
|
64
|
-
|
|
64
|
+
bun scripts/pre-execution-snapshot.mjs verify --stage plan --unit fix-<N> --dir docs/fix/<N> --unit-kind fix
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
A digest-bound receipt requires `structural.fresh: true` (and, for a PASS verdict,
|
|
@@ -43,7 +43,7 @@ contract failures, not style.
|
|
|
43
43
|
|
|
44
44
|
Then build the snapshot with the recipe owner —
|
|
45
45
|
`pre-execution-review`'s [`SKILL.md`](<../../pre-execution-review/SKILL.md>) →
|
|
46
|
-
SNAPSHOT reference: `
|
|
46
|
+
SNAPSHOT reference: `bun scripts/pre-execution-snapshot.mjs build --stage spec
|
|
47
47
|
--unit <unitId>` (canonical serializer: sorted keys, context rows ordered by kind
|
|
48
48
|
then identifier, UTF-8, lowercase SHA-256). The digest is stdout's first line, so
|
|
49
49
|
this recipe writes no file; `--json` is in-repository only. Paste the digest it
|
|
@@ -47,7 +47,7 @@ receipt, run the recipe owner's re-verify for this stage and paste the sensor's
|
|
|
47
47
|
answer beside the verdict block before reporting:
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
|
-
|
|
50
|
+
bun scripts/pre-execution-snapshot.mjs verify --stage spec --unit <NN-slug> --dir docs/features/<NN>-<slug> --unit-kind <feature|fix>
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
A digest-bound receipt requires `structural.fresh: true` (and, for a PASS verdict,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ship-roadmap
|
|
3
3
|
user-invocable: true
|
|
4
|
-
version: 5.2.
|
|
4
|
+
version: 5.2.1
|
|
5
5
|
author: "Gabriel Trabanco <1969593+gtrabanco@users.noreply.github.com>"
|
|
6
6
|
license: MIT
|
|
7
7
|
argument-hint: "[--fullauto] | --continue [--fullauto]"
|
|
@@ -102,7 +102,7 @@ fallback only when a primitive is unavailable; keep stage order and safety floor
|
|
|
102
102
|
|
|
103
103
|
| Relation | Skills/policy |
|
|
104
104
|
|---|---|
|
|
105
|
-
| Compose (same/lower tier) | `init-workspace`; JIT `design-feature` + `plan-feature-scaffold`; `plan-feature`; the review→fold manual path (`/fold-findings` → re-run `/review-change`); verdict-only `audit-pr`; `audit-docs`. |
|
|
105
|
+
| Compose (same/lower tier) | `init-workspace`; JIT `design-feature` + `plan-feature-scaffold`; `plan-feature`; the review→fold manual path (`/review-change` → `/fold-findings` on `REVIEW-FAIL` → re-run `/review-change`); verdict-only `audit-pr`; `audit-docs`. |
|
|
106
106
|
| Cheap workers | `execute-phase` (fresh context/phase), mechanical folds, audit-blocker fixes; use the validated worker model. |
|
|
107
107
|
| Human hand-off | Default merges, `product-audit` (higher effort), and report issue batches via `triage-issue`. |
|
|
108
108
|
| Sibling | `workflow-status` supplies the strict sensor result; worker skills use the package-owned output profiles, while the conductor keeps its native `SHIP:` turn contract. |
|
|
@@ -70,9 +70,7 @@
|
|
|
70
70
|
when the PR opens; any flips left at run end ride the report commit).
|
|
71
71
|
Stop before the literal final `Hardening & PR` phase: PR owns that explicit
|
|
72
72
|
phase so close-out has one owner. Never bundle phases into one worker.
|
|
73
|
-
- **REVIEW** — compose the
|
|
74
|
-
`/fold-findings`, then re-run `/review-change`, over the complete PR
|
|
75
|
-
candidate. It reuses a current exact-SHA receipt or runs `review-change`
|
|
73
|
+
- **REVIEW** — compose the review→fold path (equal tier) once: `/review-change`, then `/fold-findings` (on `REVIEW-FAIL`), then re-run `/review-change`. It reuses a current exact-SHA receipt or runs `review-change`
|
|
76
74
|
context-clean, batches compatible fixes through `fold-findings`, and
|
|
77
75
|
re-reviews only changed HEADs. Default correction budget is two; unchanged
|
|
78
76
|
evidence stops NO-PROGRESS. L/sensitive features
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
| Product review (REVIEW-SPEC) | opus/high | `review-spec` in a **clean context** (fresh subagent or outside headless call) — never the turn that wrote the product half; tier equals or exceeds the author's, so the ≥ rule holds |
|
|
10
10
|
| Plan review (REVIEW-PLAN) | opus/high | `review-plan` in a **clean context**, same rule; it judges the plan the previous stage froze |
|
|
11
11
|
| Phase execution, single-pass, fixes | **cheap worker** | fresh context per phase following `execute-phase`; Claude branch maps this role to `sonnet`, portable drivers use their validated worker tier |
|
|
12
|
-
| Final review/correction loop | opus/high | compose the manual path `/fold-findings
|
|
12
|
+
| Final review/correction loop | opus/high | compose the manual path `/review-change`, then `/fold-findings` (only on `REVIEW-FAIL`), then re-run `/review-change`; it reuses a current exact-SHA receipt or reviews context-clean, and routes unresolved findings to `triage-issue --prioritize-now` |
|
|
13
13
|
| Merge gate | opus/high | compose `audit-pr` in-turn (the highest-stakes automated verdict; must share one turn with the floor checks) |
|
|
14
14
|
| Forge/git mechanics | — | Bash tool calls; no model judgment involved |
|
|
15
15
|
| Final-report evidence gathering | haiku (optional) | fan-out subagents for grep-shaped per-feature log collection when ultracode is on; synthesis stays opus |
|
|
@@ -12,7 +12,7 @@ For every unit whose resolved status is `defined`, `planned` or `in-progress`:
|
|
|
12
12
|
unit's `progress.md` (no `progress.md`, or no block for that stage → `missing`).
|
|
13
13
|
2. The `snapshot` line — the `sha256:` digest the receipt binds — and each bound
|
|
14
14
|
artifact's current bytes: re-derive the digest with the recipe owner's verify
|
|
15
|
-
mode — `
|
|
15
|
+
mode — `bun scripts/pre-execution-snapshot.mjs verify --stage <spec|plan> --unit
|
|
16
16
|
<id> [--parent <64-hex>]` (`pre-execution-review` owns the recipe; a feature plan
|
|
17
17
|
check needs the Product digest it descended from, a fix check binds no parent).
|
|
18
18
|
Read `structural.reasonCode` and `structural.changedPaths` out of the JSON — they
|
|
@@ -71,7 +71,7 @@ live evidence against a frozen ledger remains a contradiction candidate.
|
|
|
71
71
|
missing receipt there surfaces as a gate blocker; merged units stay excluded
|
|
72
72
|
(the merge itself closes their gates). Read the stage's
|
|
73
73
|
newest receipt block, re-derive the bound digest with the recipe owner's
|
|
74
|
-
verify mode (`
|
|
74
|
+
verify mode (`bun scripts/pre-execution-snapshot.mjs verify --stage
|
|
75
75
|
<spec|plan> --unit <id> [--parent <64-hex>]` — a snapshot digest is a canonical SHA-256, never a
|
|
76
76
|
git blob id; `structural.reasonCode` names the dimension that drifted), and
|
|
77
77
|
label the stage `current`/`missing`/`stale`/`wrong-stage`/`substitute`/
|