@gtrabanco/pi-agentic-workflow 0.11.2 → 0.13.1

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 (69) hide show
  1. package/README.md +26 -0
  2. package/dist/config/defaults.js +2 -0
  3. package/dist/config/load.d.ts +3 -0
  4. package/dist/config/load.js +3 -1
  5. package/dist/config/merge.js +2 -0
  6. package/dist/config/path-policy.d.ts +97 -0
  7. package/dist/config/path-policy.js +301 -0
  8. package/dist/config/schema.js +65 -2
  9. package/dist/config/types.d.ts +5 -0
  10. package/dist/extension/index.js +147 -5
  11. package/package.json +2 -2
  12. package/skills/audit-docs/SKILL.md +6 -5
  13. package/skills/audit-pr/SKILL.md +2 -2
  14. package/skills/design-feature/SKILL.md +2 -2
  15. package/skills/design-feature/references/REPAIR.md +12 -10
  16. package/skills/evidence-grounding/SKILL.md +1 -1
  17. package/skills/execute-phase/SKILL.md +2 -2
  18. package/skills/execute-phase/references/EXECUTION_CONTRACT.md +19 -0
  19. package/skills/execute-phase/references/FOLDING.md +9 -2
  20. package/skills/execute-phase/references/PREFLIGHT.md +28 -0
  21. package/skills/fold-findings/SKILL.md +6 -4
  22. package/skills/generate-docs/SKILL.md +1 -1
  23. package/skills/implementation-discovery/SKILL.md +1 -1
  24. package/skills/init-workspace/SKILL.md +2 -2
  25. package/skills/init-workspace/references/BOOTSTRAP_WRITE.md +7 -1
  26. package/skills/init-workspace/references/UPGRADE.md +7 -2
  27. package/skills/log-session/SKILL.md +1 -1
  28. package/skills/orchestration-envelope/SKILL.md +2 -2
  29. package/skills/orchestration-envelope/references/TURN_CONTRACT.md +52 -0
  30. package/skills/phase-contract/SKILL.md +1 -1
  31. package/skills/plan-feature/SKILL.md +5 -4
  32. package/skills/plan-feature-from-issue/SKILL.md +1 -1
  33. package/skills/plan-feature-scaffold/SKILL.md +2 -2
  34. package/skills/plan-feature-scaffold/references/SCAFFOLD_PROCESS.md +8 -0
  35. package/skills/plan-fix/SKILL.md +1 -1
  36. package/skills/planning-preflight/SKILL.md +1 -1
  37. package/skills/pre-execution-review/SKILL.md +2 -2
  38. package/skills/pre-execution-review/references/LEDGERS.md +43 -6
  39. package/skills/pre-execution-review/references/POLICY.md +40 -14
  40. package/skills/product-audit/SKILL.md +4 -4
  41. package/skills/product-audit/references/AUDIT_DIMENSIONS.md +1 -1
  42. package/skills/product-audit/references/AUDIT_PROCESS.md +1 -1
  43. package/skills/replan-findings/SKILL.md +4 -4
  44. package/skills/review-a11y/SKILL.md +1 -1
  45. package/skills/review-brand/SKILL.md +1 -1
  46. package/skills/review-change/SKILL.md +7 -5
  47. package/skills/review-change/references/OUTPUT_AND_GUARDRAILS.md +2 -1
  48. package/skills/review-change/references/PERSIST_AND_DECIDE.md +17 -11
  49. package/skills/review-code/SKILL.md +1 -1
  50. package/skills/review-debt/SKILL.md +1 -1
  51. package/skills/review-design/SKILL.md +1 -1
  52. package/skills/review-implementation/SKILL.md +2 -2
  53. package/skills/review-implementation/references/CLASSIFY.md +55 -0
  54. package/skills/review-perf/SKILL.md +1 -1
  55. package/skills/review-plan/SKILL.md +2 -2
  56. package/skills/review-plan/references/CHECKS.md +5 -2
  57. package/skills/review-plan/references/OUTPUT.md +6 -6
  58. package/skills/review-security/SKILL.md +1 -1
  59. package/skills/review-seo/SKILL.md +1 -1
  60. package/skills/review-spec/SKILL.md +2 -2
  61. package/skills/review-spec/references/CHECKS.md +4 -1
  62. package/skills/review-spec/references/OUTPUT.md +9 -5
  63. package/skills/review-verify/SKILL.md +1 -1
  64. package/skills/triage-issue/SKILL.md +1 -1
  65. package/skills/verification-contract/SKILL.md +8 -2
  66. package/skills/workflow-status/SKILL.md +2 -2
  67. package/skills/workflow-status/references/ENVELOPE_CORE.md +5 -4
  68. package/skills/workflow-status/references/SENSOR_CORE.md +5 -4
  69. package/skills/workflow-status/references/SENSOR_SIGNALS.md +3 -2
@@ -101,5 +101,8 @@ Each finding is one row of the receipt's `findings` array: stable `id`,
101
101
  source | environment | runtime`), `claim` (what is wrong, with the section
102
102
  pointer), `evidenceRefs` (≥ 1 — a finding without evidence is a hunch and gets
103
103
  dropped), `verification` (`verified | unverified`), `resolution` (`open` on
104
- emission). Material = anything above `info`; a `PASS` may not carry an open or
104
+ emission). Material = `medium` and above; a `low` row is a persisted report-note
105
+ the stage author resolves without a re-review, and `info` is immaterial.
106
+ Deflating a real defect below the `medium` minimum to unblock a pass is itself a
107
+ finding; a `PASS` may not carry an open or
105
108
  unverified material row.
@@ -106,8 +106,8 @@ not authority.
106
106
  | Verdict | Who repairs | What happens next |
107
107
  |---|---|---|
108
108
  | `SPEC-REVIEW-PASS` | nobody | `/plan-feature <NN-slug>` binds this receipt + exact snapshot digest |
109
- | `SPEC-REVIEW-FAIL` | `design-feature` (the author) | one root-caused repair batch → new revision → re-review of the new snapshot |
110
- | `NEEDS-DESIGN` | the human, through `design-feature` | dated `## Amendments`/`Product decisions` entry → new revision → re-review |
109
+ | `SPEC-REVIEW-FAIL` | `design-feature` (the author) | one root-caused repair batch → new revision → next cycle (default re-review; a recorded wording-only batch skips it) |
110
+ | `NEEDS-DESIGN` | the human, through `design-feature` | dated `## Amendments`/`Product decisions` entry → new revision → next cycle |
111
111
 
112
112
  A finding whose `class` is `plan`, `source`, `environment`, or `runtime` does not
113
113
  become work here: record it, keep it open, and route it to its owner (`review-plan`
@@ -117,8 +117,11 @@ schedules nothing.
117
117
  Repeating this review follows the no-progress and convergence rules in
118
118
  `pre-execution-review/references/POLICY.md` §4: a repeat needs a
119
119
  changed snapshot or a named falsifiable question plus a new evidence route, and
120
- entering a second repair/re-review cycle prints `CONVERGENCE-ANOMALY` before any
121
- further edit. A `design-feature` repair turn re-reads the union of open findings
120
+ a second consecutive repair/re-review cycle prints `CONVERGENCE-ANOMALY` before
121
+ any further edit. A third cycle never starts without explicit user instruction:
122
+ the orchestrator's `stop-review-loop-cap` refusal stops the invocation and names
123
+ `design-feature` as the human route, and a PASS resets the count. A
124
+ `design-feature` repair turn re-reads the union of open findings
122
125
  from `planning-findings.md`, not just the newest receipt, so nothing recorded here
123
126
  is ever lost between cycles.
124
127
 
@@ -150,7 +153,8 @@ On FAIL or NEEDS-DESIGN, name every finding id once, in order, joined with ` + `
150
153
 
151
154
  ```
152
155
  → Next: /design-feature <NN-slug> "<instruction>" — one repair batch for F1 + F2 + F4,
153
- then /review-spec <NN-slug> re-reviews the new artifact revision
156
+ then /review-spec <NN-slug> judges the new artifact revision
157
+ · a third cycle → explicit user instruction first; the decider refuses it (`stop-review-loop-cap`) and names design-feature
154
158
  · a product choice is missing → answer it in the instruction; nothing here chooses for you
155
159
  · finding class is plan/source/environment/runtime → route to its owner, do not edit the SPEC
156
160
  ```
@@ -2,7 +2,7 @@
2
2
  name: review-verify
3
3
  user-invocable: false
4
4
  version: 1.1.0
5
- author: "Gabriel Trabanco <gtrabanco@users.noreply.github.com>"
5
+ author: "Gabriel Trabanco <1969593+gtrabanco@users.noreply.github.com>"
6
6
  license: MIT
7
7
  description: >
8
8
  Internal run-it verification review pass of the agentic-workflow review pack —
@@ -3,7 +3,7 @@ name: triage-issue
3
3
  user-invocable: true
4
4
  version: 2.8.0
5
5
  argument-hint: <issue-number> [more issue numbers…] | <audit-id> F<k> [F<j>…] | --prioritize-now <unit> F<k> [F<j>…]
6
- author: "Gabriel Trabanco <gtrabanco@users.noreply.github.com>"
6
+ author: "Gabriel Trabanco <1969593+gtrabanco@users.noreply.github.com>"
7
7
  license: MIT
8
8
  description: >
9
9
  Verify an issue, persisted audit finding, or unresolved review finding against
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: verification-contract
3
3
  user-invocable: false
4
- version: 1.2.1
5
- author: "Gabriel Trabanco <gtrabanco@users.noreply.github.com>"
4
+ version: 1.3.0
5
+ author: "Gabriel Trabanco <1969593+gtrabanco@users.noreply.github.com>"
6
6
  license: MIT
7
7
  description: >
8
8
  Internal contract: one compact frozen ACCEPTANCE.md per delivery unit, its
@@ -88,6 +88,12 @@ a cover-up. The sole legitimate amendment is a **proven mis-encoding of external
88
88
  documented semantics of the platform/library/language, cited from authoritative documentation — not a product decision change. Even that surfaces as a
89
89
  **finding plus a SPEC amendment**, never a silent edit to go green.
90
90
 
91
+ The deterministic backstop for this rule is the feature 60 path-protection
92
+ checkpoint (`path-protection@1` in the turn contract): the Tier 1 gate fails a
93
+ protected-path change with no recorded justification/approval, and the pi guard
94
+ blocks the write before it lands. This manifest is the finish line those
95
+ recorded escapes are checked against.
96
+
91
97
  Prevention rides the research gate (**research-before-encode**): platform
92
98
  semantics are verified against authoritative documentation **before a test encodes them**, so **adding stronger tests stays allowed**; **editing expectations never** (except the proven-mis-encoding path above).
93
99
 
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: workflow-status
3
3
  user-invocable: true
4
- version: 3.7.0
5
- author: "Gabriel Trabanco <gtrabanco@users.noreply.github.com>"
4
+ version: 3.8.1
5
+ author: "Gabriel Trabanco <1969593+gtrabanco@users.noreply.github.com>"
6
6
  license: MIT
7
7
  argument-hint: "[--json-only] [--last-envelope <json|path>]"
8
8
  description: >
@@ -9,10 +9,11 @@ placement per the installed `orchestration-envelope` skill. The
9
9
  states** (the schema package needs no release):
10
10
 
11
11
  - `CLEAN` → `state: OK` (the sensor default when the substrate is usable).
12
- - A missing or non-frozen repository-state ledger is a run-scoped substrate
13
- gate and overrides the crash-recovery state with `state: BLOCKED`; the
14
- blocker and concrete discovery/resolution command are emitted before
15
- readiness data.
12
+ - `draft`, `contradicted`, or `resolved` repository-state ledger is a
13
+ run-scoped substrate gate and overrides the crash-recovery state with
14
+ `state: BLOCKED`; the blocker and concrete discovery/resolution command
15
+ are emitted before readiness data.
16
+ An absent ledger is a non-blocking notice, not a blocker.
16
17
  - `RESUMABLE` → `state: CONTINUE`, `next.recommended` = the resume command
17
18
  from the decision table.
18
19
  - `AMBIGUOUS` → `state: NEEDS_INPUT`, `needs_input.question` = what is
@@ -12,12 +12,13 @@ the JSON and interprets it.
12
12
 
13
13
  Read `docs/workflow/REPOSITORY_STATE.md` when present and always emit
14
14
  `detail.repository_state: {status, snapshot_id, source_revision}`. Before
15
- readiness classification, if the ledger is missing, `draft`, `contradicted`, or
15
+ readiness classification, if the ledger is `draft`, `contradicted`, or
16
16
  `resolved`, add a run-scoped `substrate` blocker, set the envelope state to
17
17
  `BLOCKED`, leave `startable_now` empty, and set `next.recommended` to
18
- `/discover-repository-state` for missing/non-frozen state or
19
- `/resolve-repository-state <contradiction-id>` for `contradicted` state. The
20
- sensor remains read-only; it never edits or resolves the ledger. Conflicting
18
+ `/discover-repository-state` for non-frozen state or
19
+ `/resolve-repository-state <contradiction-id>` for `contradicted` state.
20
+ An absent ledger emits a non-blocking substrate notice instead of a blocker.
21
+ The sensor remains read-only; it never edits or resolves the ledger. Conflicting
21
22
  live evidence against a frozen ledger remains a contradiction candidate.
22
23
 
23
24
  3. **Urgency labels (`detail.urgent`) — labels-only, presence-only, never
@@ -83,8 +83,9 @@ mechanized.*
83
83
 
84
84
  A row is **open** under the router's own predicate (`scripts/unit-route.mjs`
85
85
  `isOpen`), never a re-derived one: `folded: yes`, `—`, `-`, `n/a` and an empty
86
- cell all close it. The id shapes `VF-<n>` (a finding's verification mark) and
87
- `REVIEW-RAN` (a review mark) are **never** findings — a ledger pads a mark row
86
+ cell all close it. The id shapes `VF-<n>` (a finding's verification mark),
87
+ `REVIEW-RAN` (a review mark) and `GATE-RAN` (a gate-run mark) are **never**
88
+ findings — a ledger pads a mark row
88
89
  with empty cells, so it reaches the row parser looking like an open finding and
89
90
  would otherwise project a suggestion for a merged unit. A **decision-required**
90
91
  open row contributes **nothing**: it outranks the fold in the route table (which