@gtrabanco/pi-agentic-workflow 0.35.2 → 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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gtrabanco/pi-agentic-workflow",
3
- "version": "0.35.2",
3
+ "version": "0.36.0",
4
4
  "description": "Pi package: canonical agentic-workflow skills, friendly slash commands, and per-command model routing.",
5
5
  "keywords": [
6
6
  "pi-package",
@@ -58,7 +58,7 @@
58
58
  },
59
59
  "dependencies": {
60
60
  "@gtrabanco/agentic-workflow": "0.5.0",
61
- "@gtrabanco/agentic-workflow-schema": "4.8.0"
61
+ "@gtrabanco/agentic-workflow-schema": "4.9.0"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@types/node": "24.13.3",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: execute-phase
3
3
  user-invocable: true
4
- version: 6.3.1
4
+ version: 6.5.0
5
5
  argument-hint: <NN-slug> [P<k>|step] [--max-attempts N] [--force]
6
6
  allowed-tools: [Bash, Read, Edit, Write, MultiEdit]
7
7
  author: "Gabriel Trabanco <1969593+gtrabanco@users.noreply.github.com>"
@@ -19,8 +19,28 @@ findings end up "solved" locally but absent from the merged PR:
19
19
  depends on them**: callers of what changes, consumers of what it delivers, and
20
20
  every mention that stops being true (a comment, a prose claim, a declared
21
21
  validator, a manifest narration). Nothing beyond that
22
+ ✓ Sweep declaration EMITTED when the change is token- or claim-shaped — the
23
+ fixed line below appended to this fold's `## Log` entry (a legacy unit's
24
+ `## Progress log`). One line per stale form swept, no prose around it, no
25
+ judgment call: a published vocabulary token, a claim kind, a phrase a
26
+ surface asserted, a reader/echo pattern. It is the survivors rule with a
27
+ receipt the gate can re-run:
28
+
29
+ ```
30
+ swept: /<pattern>/<flags> → expected <n> in <glob>
31
+ ```
32
+
33
+ The field shapes and the bounds the gate enforces on them are stated once, in
34
+ the `sweep-declaration@1` block at the foot of this file — a declaration
35
+ outside those bounds is **refused, not run**, and the failed claim names which
36
+ bound tripped. Name the literal stale form, never a program. A fold that
37
+ changes a token/claim-shaped surface and emits no declaration is a `workflow`
38
+ finding at review.
22
39
  ✓ `bun scripts/promise-coherence.mjs` RUN → `verdict PASS` (the repaired claims
23
- reproduce at the head; a skipped line is read, never assumed)
40
+ reproduce at the head; every declared sweep re-runs to its expected count and
41
+ an over-bound pattern is refused by name; a skipped line is read, never
42
+ assumed, and a document whose tally says nothing was machine-checked is not a
43
+ verified green)
24
44
  ✓ Gate RUN and green (exit codes pasted)
25
45
  ✓ Never edit an existing test's expectation to match behaviour — a setup
26
46
  repair keeps assertions at least as strong and never touches expectations
@@ -75,3 +95,24 @@ open the PR with `gh pr create` (per the project's Workflow conventions) —
75
95
  regardless of the review still to come. The PR body carries the unit doc's
76
96
  verification record (its `## Evidence` rows, or a re-cut unit's `## Log` `E`/`G`
77
97
  lines) and closes the unit's tracked issues via `Closes #N`.
98
+
99
+ ## The sweep declaration grammar
100
+
101
+ The one statement of the fields the checklist box names. `scripts/promise-coherence.mjs`
102
+ parses the line and re-runs it; `AGENTS.md`'s `normative-surfaces@1` inventory
103
+ declares this block as the grammar's owner, and the schema package's
104
+ `SWEEP_CLAIM_KINDS` const cites it as its home.
105
+
106
+ ```text
107
+ sweep-declaration@1
108
+ # literal: swept: /<pattern>/<flags> → expected <n> in <glob>
109
+ field | shape | bound the gate enforces
110
+ pattern | /<the stale form as a JS regex body>/ | at most 200 characters; a group that is quantified while its own body is quantified is refused before it is compiled — one such pattern cost 83 s on a 29-character line, and the gate runs the body once per line of the whole `<glob>` corpus
111
+ flags | <a-z, empty allowed> | `g` and `y` are stripped: the gate counts matching lines and carries no lastIndex
112
+ expected | <n> | the survivor count outside the exempt surfaces — normally 0; non-zero only where `<glob>` names the surfaces that legitimately keep the form (the ledger's own quote of the finding, log lines, fixtures)
113
+ glob | <repo-relative scope> | the finding's cited surface plus its inventory-declared siblings, never a repo-wide sweep
114
+ ```
115
+
116
+ Outside a bound the claim fails closed naming which one tripped: a refused
117
+ declaration is a red fold gate, not a warning, and the fold names the literal
118
+ stale form instead.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: fold-findings
3
3
  user-invocable: true
4
- version: 1.9.2
4
+ version: 1.11.0
5
5
  argument-hint: [finding-id …]
6
6
  author: "Gabriel Trabanco <1969593+gtrabanco@users.noreply.github.com>"
7
7
  license: MIT
@@ -167,6 +167,32 @@ cycle. The fold ends when nothing still asserts what is no longer true; state
167
167
  in the commit which surfaces the correction swept. Artifact language follows user
168
168
  instruction > project docs language > English; conversation language never decides.
169
169
 
170
+ **A token- or claim-shaped change carries its sweep declaration.** When the
171
+ fold changes a published vocabulary token, a claim kind, a phrase a surface
172
+ asserted, or a reader/echo pattern, append one fixed line per stale form to
173
+ this fold's `## Log` entry (a legacy unit's `## Progress log`) — the same
174
+ bar as `log-kind@1` and `findings-table@1`: fixed grammar, fixed output, no
175
+ judgment calls:
176
+
177
+ ```
178
+ swept: /<pattern>/<flags> → expected <n> in <glob>
179
+ ```
180
+
181
+ `<pattern>` is the stale form as a JS regex body, `<flags>` its flags (empty
182
+ allowed); `<n>` is the survivor count you expect outside the allowlist —
183
+ normally `0`, and non-zero only where the `<glob>` names surfaces that
184
+ legitimately keep the form (the ledger's own quote of the finding, log lines,
185
+ fixtures). `<glob>` is the bounded scope: the finding's cited surface plus its
186
+ inventory-declared siblings, never a repo-wide sweep. The pattern body carries
187
+ the bounds the gate refuses outside — at most 200 characters, and never a
188
+ quantified group whose own body is quantified — because the gate runs that body
189
+ once per line of the whole `<glob>` corpus, so an over-bound declaration is
190
+ refused by name instead of compiled (`bun
191
+ scripts/promise-coherence.mjs`, node fallback if bun is not installed) re-runs
192
+ every declared grep and fails closed with `sweep-mismatch`, naming
193
+ `file:line`, the regex and the observed count. A fold that changes such a
194
+ surface and emits no declaration is a `workflow` finding at review.
195
+
170
196
  ## Portability (agents other than Claude Code)
171
197
 
172
198
  Use explicit fallbacks when a primitive is absent: open named `SKILL.md` files in
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: pre-execution-review
3
3
  user-invocable: false
4
- version: 2.8.2
4
+ version: 2.8.3
5
5
  author: "Gabriel Trabanco <1969593+gtrabanco@users.noreply.github.com>"
6
6
  license: MIT
7
7
  description: >
@@ -77,7 +77,7 @@ task | implementation-owner | validator | required-evidence | status
77
77
  | `authority-source` | the SPEC/acceptance/criterion or ledger row that *requires* it — never the implementation |
78
78
  | `phase` / `task` | exactly one phase and one task; a row needing two phases means the phase cut is wrong |
79
79
  | `implementation-owner` | the skill/role that performs it (usually `execute-phase`) |
80
- | `validator` | the command or check that proves it, copied from the acceptance artifact (`ACCEPTANCE.md` for legacy (pre-feature 61) units; `sed -n '/^## Acceptance criteria/,/^## /p' <unit>/SPEC.md \| git hash-object --stdin` for post-feature 61) or the phase's done-when. When it is a backticked reader command, state the outcome it must produce — `` … matches <N> `` or `` … exits <N> `` — because `scripts/promise-coherence.mjs` re-runs it at the head and `verified` is only truthful while it reproduces. A validator with no stated outcome is a claim nobody can check |
80
+ | `validator` | the command or check that proves it, copied from the acceptance artifact (`ACCEPTANCE.md` for legacy (pre-feature 61) units; `sed -n '/^## Acceptance criteria/,/^## /p' <unit>/SPEC.md \| git hash-object --stdin` for post-feature 61) or the phase's done-when. When it is a backticked reader command or one of the committed report validators (`scripts/promise-coherence.mjs` names the class), state the outcome it must produce — `` … matches <N> `` or `` … exits <N> `` — because the gate re-runs it at the head and `verified` is only truthful while it reproduces. A validator with no stated outcome is a claim nobody can check; a validator the gate declines to execute is disclosed as a skip naming why, never counted as checked |
81
81
  | `required-evidence` | what must be recorded where (test name, receipt line, ledger row) |
82
82
  | `status` | `planned \| in-progress \| verified \| n/a \| deferred` |
83
83
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: review-code
3
3
  user-invocable: false
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  author: "Gabriel Trabanco <1969593+gtrabanco@users.noreply.github.com>"
6
6
  license: MIT
7
7
  description: >
@@ -43,6 +43,12 @@ default branch. State the scope at the top of the returned table.
43
43
  behavior (cite before/after)
44
44
  ✓ Reference trace: every changed symbol/API got a reference search —
45
45
  un-updated callers are findings
46
+ ✓ Sweep declaration present: a changed token- or claim-shaped surface (a
47
+ published vocabulary token, a claim kind, a phrase a surface asserted, a
48
+ reader/echo pattern) carries its `swept: /<pattern>/<flags> → expected <n> in
49
+ <glob>` line on the fold's `## Log` entry — class `workflow`, the project's
50
+ own survivors rule, and `scripts/promise-coherence.mjs` re-runs it as
51
+ `sweep-mismatch`
46
52
  ✓ Edge cases the SPEC's dev scenarios name are actually handled in code, not
47
53
  just in tests
48
54