@gtrabanco/pi-agentic-workflow 0.13.2 → 0.13.3

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.
@@ -10,7 +10,7 @@ export interface SkillMeta {
10
10
  * Minimal frontmatter reader: `name`, `description`, `user-invocable` only.
11
11
  *
12
12
  * `user-invocable` must say `true` to count: this repository's own rule
13
- * (CLAUDE.md — the key "REQUIRED for it to appear in the agent's /command menu")
13
+ * (AGENTS.md — the key "REQUIRED for it to appear in the agent's /command menu")
14
14
  * makes absence mean internal, and `scripts/bundle-skills.mjs` reads it the same
15
15
  * way. The two scanners agree because the rule is stated once per scanner and
16
16
  * pinned by `test/alias-coverage.test.mjs`, not because either default is safe.
@@ -16,7 +16,7 @@ const SKILL_FILE = "SKILL.md";
16
16
  * Minimal frontmatter reader: `name`, `description`, `user-invocable` only.
17
17
  *
18
18
  * `user-invocable` must say `true` to count: this repository's own rule
19
- * (CLAUDE.md — the key "REQUIRED for it to appear in the agent's /command menu")
19
+ * (AGENTS.md — the key "REQUIRED for it to appear in the agent's /command menu")
20
20
  * makes absence mean internal, and `scripts/bundle-skills.mjs` reads it the same
21
21
  * way. The two scanners agree because the rule is stated once per scanner and
22
22
  * pinned by `test/alias-coverage.test.mjs`, not because either default is safe.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gtrabanco/pi-agentic-workflow",
3
- "version": "0.13.2",
3
+ "version": "0.13.3",
4
4
  "description": "Pi package: canonical agentic-workflow skills, friendly slash commands, and per-command model routing.",
5
5
  "keywords": [
6
6
  "pi-package",
@@ -44,12 +44,13 @@
44
44
  "scripts": {
45
45
  "build": "tsc",
46
46
  "bundle:skills": "bun scripts/bundle-skills.mjs",
47
- "bundle:skills:check": "bun scripts/bundle-skills.mjs --check",
48
- "test": "tsc && bun test test/*.test.mjs",
49
- "test:node": "tsc && node --test test/*.test.mjs",
50
- "prepublishOnly": "bun run build && bun run test",
51
- "mutation": "bun scripts/mutation-check.mjs",
52
- "prepare": "bun run build"
47
+ "clean:skills": "bun scripts/bundle-skills.mjs --clean",
48
+ "test": "bun run bundle:skills && tsc && bun test test/*.test.mjs",
49
+ "test:node": "bun run bundle:skills && tsc && node --test test/*.test.mjs",
50
+ "prepublishOnly": "bun run build && bun run bundle:skills && bun run test",
51
+ "postpack": "bun run clean:skills",
52
+ "mutation": "bun run bundle:skills && bun scripts/mutation-check.mjs",
53
+ "prepare": "bun run build && bun run bundle:skills"
53
54
  },
54
55
  "peerDependencies": {
55
56
  "@earendil-works/pi-coding-agent": ">=0.87.0"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: execute-phase
3
3
  user-invocable: true
4
- version: 4.7.0
4
+ version: 4.7.1
5
5
  argument-hint: <NN> [P<k>] | --fix <n> [P<k>] | [--max-attempts N] [--force]
6
6
  allowed-tools: [Bash, Read, Edit, Write, MultiEdit]
7
7
  author: "Gabriel Trabanco <1969593+gtrabanco@users.noreply.github.com>"
@@ -75,4 +75,4 @@ re-review, while the schedule keeps the late write from being planned at all.
75
75
  Each project keeps its own **normalizer inventory** in one place, naming every mutating
76
76
  step, its check-only mode where it has one, and the side of the freeze it sits on. In
77
77
  this repository that list is in the `## Verification` section of the project guide
78
- (`CLAUDE.md`), which a plan snapshot already binds as its `project-guide` context row.
78
+ (`AGENTS.md`), which a plan snapshot already binds as its `project-guide` context row.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: init-workspace
3
3
  user-invocable: true
4
- version: 2.9.0
4
+ version: 3.0.0
5
5
  argument-hint: <target-dir>
6
6
  author: "Gabriel Trabanco <1969593+gtrabanco@users.noreply.github.com>"
7
7
  license: MIT
@@ -34,7 +34,7 @@ first on purpose).
34
34
  ## When to use
35
35
 
36
36
  - Setting up a repo to use these skills and you want the documentation substrate
37
- (`CLAUDE.md` + `docs/` map + templates) adapted to the project, not just copied.
37
+ (`AGENTS.md` + `docs/` map + templates) adapted to the project, not just copied.
38
38
  - Prefer this over a static `npx degit gtrabanco/agentic-workflow/template` when you
39
39
  want the gate commands, architecture, and doc domains filled in by interview.
40
40
 
@@ -42,14 +42,14 @@ first on purpose).
42
42
 
43
43
  Inspect the target dir (`[target-dir]`, default cwd) before touching anything:
44
44
 
45
- - Existing `CLAUDE.md` / `AGENTS.md` / `docs/` / `.github/`? If so, **do not
46
- clobber** — check first whether it's an **agentic-workflow scaffold**
47
- (marker: `CLAUDE.md` present *and* either `docs/features/ROADMAP.md` or a
48
- `docs/workflow/` dir). If both markers are present, offer **upgrade** as the
49
- default action, alongside merge / adapt-in-place / abort — see **Upgrade
50
- mode** below. If `CLAUDE.md`/`docs/` exist but the markers are absent (a
51
- foreign scaffold), stay in bootstrap and ask merge / adapt in place / abort
52
- as before.
45
+ - An existing **agent guide** (`AGENTS.md`, or a legacy `CLAUDE.md`), `docs/`,
46
+ `.github/`? If so, **do not clobber** — check first whether it's an
47
+ **agentic-workflow scaffold** (marker: an agent guide present *and* either
48
+ `docs/features/ROADMAP.md` or a `docs/workflow/` dir). If both markers are
49
+ present, offer **upgrade** as the default action, alongside merge /
50
+ adapt-in-place / abort — see **Upgrade mode** below. If an agent guide or
51
+ `docs/` exists but the markers are absent (a foreign scaffold), stay in
52
+ bootstrap and ask merge / adapt in place / abort as before.
53
53
  - Detect the stack from manifests (`package.json`, `pyproject.toml`, `go.mod`,
54
54
  `Cargo.toml`, `Gemfile`, …) to *propose* gate commands and naming conventions.
55
55
  - Note the git state (is it a repo, what's the default branch, and the **remote
@@ -84,7 +84,13 @@ loads exactly upgrade and skips bootstrap plus portability.
84
84
 
85
85
  ## Guardrails
86
86
 
87
- - **Never overwrite an existing `CLAUDE.md` or `docs/` without explicit consent.**
87
+ - **Never overwrite an existing agent guide (`AGENTS.md`, or a legacy
88
+ `CLAUDE.md`) or `docs/` without explicit consent.**
89
+ - **One guide, one name.** `AGENTS.md` is the guide; a legacy `CLAUDE.md` is
90
+ retired only in upgrade mode, only with an explicit yes, and only after any
91
+ content unique to it is folded into `AGENTS.md` first. A user whose Claude
92
+ Code release predates `AGENTS.md` support may keep it — that choice is
93
+ reported as a residual, never treated as drift to repair.
88
94
  - **Additive-only, never clobber (upgrade mode).** Upgrade mode only adds
89
95
  blocks the project lacks and fills raw placeholders — it never rewrites or
90
96
  deletes a block the project already tailored, even if the current template
@@ -136,7 +142,7 @@ OpenCode adapter does not load this fallback.
136
142
 
137
143
  ## Done when
138
144
 
139
- - A tailored `CLAUDE.md` + `docs/` scaffold + `.github/` templates exist in the
145
+ - A tailored `AGENTS.md` + `docs/` scaffold + `.github/` templates exist in the
140
146
  target, unused folders pruned, residual placeholders flagged, the platform's
141
147
  companion review skills are recorded (and offered), and the `urgent`/
142
148
  `fix-next` labels are seeded (scaffold) or additively reconciled (upgrade),
@@ -61,7 +61,7 @@
61
61
  so `review-perf` can measure instead of guess.
62
62
  - **Docs site** — does the project have (or want) a developer docs website
63
63
  the `generate-docs` skill can write into? If yes, fill the template's
64
- `Docs site` block in `CLAUDE.md` (format: starlight/docusaurus/markdown,
64
+ `Docs site` block in `AGENTS.md` (format: starlight/docusaurus/markdown,
65
65
  content dir, build command, optional knowledge-map command — proposed
66
66
  from discovery: an `astro.config.*` + `@astrojs/starlight` dependency
67
67
  means Starlight). If no, leave the block commented out — `generate-docs`
@@ -1,7 +1,7 @@
1
1
  ## Write and verify the bootstrap
2
2
 
3
- 4. **Write the adapted scaffold.** Fill the `CLAUDE.md` placeholders (commands,
4
- the documentation map rows, architecture); keep `AGENTS.md`, the
3
+ 4. **Write the adapted scaffold.** Fill the `AGENTS.md` placeholders (commands,
4
+ the documentation map rows, architecture); keep the
5
5
  `features/_TEMPLATE` + `ROADMAP`, the `fix/_TEMPLATE` + `README`, and the
6
6
  `.github/` templates; keep `.agentic-workflow/hooks/` and activate only the
7
7
  adapters explicitly accepted in the interview; prune unused doc folders and
@@ -41,7 +41,7 @@
41
41
  `review-a11y`, `review-brand`, `review-perf`, `review-seo`) — it installs
42
42
  with the skills and covers every review axis, so **no external review skill
43
43
  is required on any agent**. If the user wants platform-specific extras (a
44
- framework skill, a stack-specific security skill), record them in `CLAUDE.md`
44
+ framework skill, a stack-specific security skill), record them in `AGENTS.md`
45
45
  under a short "Optional review extras" note so `review-change` and
46
46
  `product-audit` run them **in addition** — never as a dependency. Don't
47
47
  install anything without a yes.
@@ -4,13 +4,14 @@ Entered when Step 0 finds an existing **agentic-workflow scaffold** (not a
4
4
  bare or foreign repo). Bootstrap mode (the Process section above) never
5
5
  engages here — upgrade mode reuses the same discovery + interview machinery,
6
6
  scoped to **only the blocks the current template has that this project
7
- lacks**. Seven ordered steps:
7
+ lacks**. Eight ordered steps:
8
8
 
9
9
  1. **Locate the current template.** Fetch the current `template/` the same
10
10
  way bootstrap does — `npx degit gtrabanco/agentic-workflow/template <temp-dir>`
11
11
  (always into a temp dir here, never into the target); the SSH/local-path
12
12
  variant applies verbatim for a private source.
13
- 2. **Diff the substrate.** Compare the project's `CLAUDE.md` (and the `docs/`
13
+ 2. **Diff the substrate.** Compare the project's agent guide (`AGENTS.md`,
14
+ or a legacy `CLAUDE.md`) (and the `docs/`
14
15
  blocks its documentation map references) against the fetched template.
15
16
  Produce the list of blocks/conventions the template carries that this
16
17
  project's substrate lacks, or still holds as a raw, unfilled placeholder —
@@ -50,16 +51,39 @@ lacks**. Seven ordered steps:
50
51
  `path-protection.md` page are proposed from the template; an existing
51
52
  owner-written `path-policy.json` is never clobbered and is listed as a
52
53
  residual instead. Leave honest placeholders where the user skipped.
53
- 6. **Seed missing urgency labels, additively (feature 15).** Independent of
54
- the `CLAUDE.md`/`docs/` block diff above (this is forge-repo state, not a
54
+ 6. **Retire the legacy `CLAUDE.md` — only with an explicit yes, never as a side
55
+ effect.** Older releases of this workflow wrote the guide as `CLAUDE.md`;
56
+ current ones write `AGENTS.md`, and current Claude Code reads `AGENTS.md`.
57
+ When the project has a `CLAUDE.md`, three ordered moves — never skip (a):
58
+ a. **Reconcile first.** Diff `CLAUDE.md` against `AGENTS.md` and fold every
59
+ block, rule, or value that exists only in `CLAUDE.md` into `AGENTS.md`,
60
+ keeping the project's own wording and values. Name each folded item in the
61
+ report; when nothing is unique, say that plainly instead of implying a
62
+ merge happened.
63
+ b. **Then ask once, stating the risk.** A user may deliberately be on a Claude
64
+ Code release that reads only `CLAUDE.md`, and deleting the file would stop
65
+ their agent from seeing the guide at all. Present the choice as remove
66
+ (one guide, nothing left to drift) or keep (older client), and take the
67
+ answer. Never delete a tailored `CLAUDE.md` because "the template moved
68
+ on".
69
+ c. **On yes:** delete `CLAUDE.md`, keeping the reconciliation from (a) already
70
+ written. **On keep:** leave the file byte-identical and list it as a
71
+ residual naming the reason (the user's client still reads it) — a kept
72
+ legacy guide is a decision, not drift.
73
+
74
+ This step is the only writer of `CLAUDE.md` in upgrade mode, and it is never
75
+ reached without the answer from (b).
76
+ 7. **Seed missing urgency labels, additively (feature 15).** Independent of
77
+ the agent-guide/`docs/` block diff above (this is forge-repo state, not a
55
78
  doc block): check whether the target repo already has the `urgent` and
56
79
  `fix-next` labels (`gh label list`); create whichever is missing with the
57
80
  same `gh label create` calls bootstrap mode uses (see Process step 9) —
58
81
  never touch a label that already exists (additive-only, same never-clobber
59
82
  rule as the doc blocks; a pre-existing `urgent`/`fix-next` label the
60
83
  project recolored or redescribed is left exactly as-is).
61
- 7. **Report + hand off.** Summarize blocks added, filled, and skipped
62
- (residuals), the urgency labels seeded (or already present), then print the
84
+ 8. **Report + hand off.** Summarize blocks added, filled, and skipped
85
+ (residuals), the legacy `CLAUDE.md` outcome (folded items and removed, or kept
86
+ with the reason), the urgency labels seeded (or already present), then print the
63
87
  recommendation to run `product-audit` next to see which newly-available
64
88
  *capabilities* apply to the code (upgrade mode migrates the substrate only,
65
89
  never the code).
@@ -81,8 +105,9 @@ lacks**. Seven ordered steps:
81
105
  separately, via an explicit bootstrap adapt-in-place run, whether to
82
106
  re-tailor it.
83
107
  - **Bootstrap stays unchanged on a bare or foreign repo.** If Step 0's
84
- scaffold markers (`CLAUDE.md` + `docs/features/ROADMAP.md` or
85
- `docs/workflow/`) are absent — no repo, an empty repo, or a `CLAUDE.md`
108
+ scaffold markers (an agent guide — `AGENTS.md` or a legacy `CLAUDE.md` — plus
109
+ `docs/features/ROADMAP.md` or
110
+ `docs/workflow/`) are absent — no repo, an empty repo, or a guide
86
111
  that isn't this workflow's — upgrade mode never engages; the existing
87
112
  bootstrap Process (merge/adapt/abort) runs exactly as before this mode was
88
113
  added.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: plan-fix
3
3
  user-invocable: true
4
- version: 3.3.0
4
+ version: 3.3.1
5
5
  argument-hint: <issue-number> [<issue-number> …]
6
6
  author: "Gabriel Trabanco <1969593+gtrabanco@users.noreply.github.com>"
7
7
  license: MIT
@@ -14,7 +14,7 @@ inferred around.
14
14
  (use the declared forge equivalent). Any failure stops the whole set. Translate
15
15
  issue text to the artifact language; ask only on material ambiguity. Derive a
16
16
  kebab-case topic (≤40 chars, no leading verb) from the primary issue title.
17
- 2. **Read the docs map.** Read `CLAUDE.md`, then relevant mapped docs; every SPEC
17
+ 2. **Read the docs map.** Read `AGENTS.md`, then relevant mapped docs; every SPEC
18
18
  claim cites a path/section.
19
19
  3. **Locate affected code.** Name per issue the layers, modules/files, ports,
20
20
  adapters, and entities.
@@ -7,7 +7,7 @@ Follow the project's **Workflow conventions** question protocol (what / scope /
7
7
  The base template at `docs/fix/_TEMPLATE/SPEC.md` is mandatory. Add these sections in order, after the existing ones:
8
8
 
9
9
  - **Impact** — layers touched (per the architecture doc); modules and files (paths); blast radius; detection lead time.
10
- - **Rules that must never be violated** — project-wide invariants the fix must preserve, from CLAUDE.md "Hard rules" + the cited docs. E.g. "Domain value-object rules hold", "Inner layers cannot import outer layers".
10
+ - **Rules that must never be violated** — project-wide invariants the fix must preserve, from AGENTS.md "Hard rules" + the cited docs. E.g. "Domain value-object rules hold", "Inner layers cannot import outer layers".
11
11
  - **Operational risks** — scheduled-job / queue / cache / schema / external-adapter interactions; concurrency or eventual-consistency hazards.
12
12
  - **Security risks** — auth, secrets, PII, webhooks, rate-limits.
13
13
  - **Compliance touchpoints** — any domain/compliance rules; note "n/a" explicitly if none.
@@ -2,7 +2,7 @@
2
2
  name: product-audit
3
3
  user-invocable: true
4
4
  disable-model-invocation: true
5
- version: 3.2.0
5
+ version: 3.2.1
6
6
  metadata:
7
7
  opencode/autoinvoke: false
8
8
  argument-hint: <path-or-area> (optional — defaults to the whole product)
@@ -125,7 +125,7 @@ Verdict: <one-line honest health verdict>
125
125
  (none — <why>)
126
126
 
127
127
  ### Tooling — register / re-design
128
- - <skill|MCP> — register in CLAUDE.md (Optional review extras): <why> — route: user edits CLAUDE.md
128
+ - <skill|MCP> — register in AGENTS.md (Optional review extras): <why> — route: user edits AGENTS.md
129
129
  - <skill|MCP> — would change <feature> scope: <why> — route: /design-feature <slug>
130
130
  (none — <why>)
131
131
 
@@ -161,7 +161,7 @@ security items to track first").
161
161
  lineage lives only in Delta mappings as `<audit-id> F<k>`, never global slugs or
162
162
  replaced ids. When the user accepts, route: `triage-issue` files/classifies,
163
163
  `plan-feature` adds roadmap work, `plan-fix` scopes a concrete fix.
164
- - **Never registers tooling or edits `CLAUDE.md`.** The tooling sweep proposes a
164
+ - **Never registers tooling or edits `AGENTS.md`.** The tooling sweep proposes a
165
165
  skill/MCP to register, but the user (or a routed `design-feature` run)
166
166
  performs the edit; a scope-affecting discovery routes to
167
167
  `/design-feature <slug>`, which the user approves.
@@ -201,7 +201,7 @@ product-audit (whole product, all axes, periodic)
201
201
  └─ proposes ─┬─ Issues to open ........ ▶ triage-issue / plan-fix
202
202
  ├─ Roadmap: add .......... ▶ plan-feature
203
203
  ├─ Roadmap: remove/revise ▶ triage-issue / roadmap edit (user decides)
204
- └─ Tooling: register/re-design ▶ user edits CLAUDE.md / design-feature
204
+ └─ Tooling: register/re-design ▶ user edits AGENTS.md / design-feature
205
205
  ```
206
206
 
207
207
  - Broader than `review-change` (one change) and `audit-pr` (one PR); subsumes
@@ -41,9 +41,9 @@ step (2–5). Each item ends with exactly one fallback; never pick another one m
41
41
  5. **Sweep installed tooling** — (a) inventory the installed skills and
42
42
  connected MCP servers available to the agent; (b) cross-reference each
43
43
  against the applicable review axes and the roadmap features; (c) classify
44
- each as **register** (useful, not yet named in the project's `CLAUDE.md`),
44
+ each as **register** (useful, not yet named in the project's `AGENTS.md`),
45
45
  **re-design** (would change a feature's definition/scope), or
46
- **not-relevant**; (d) dedupe against what `CLAUDE.md` already registers —
46
+ **not-relevant**; (d) dedupe against what `AGENTS.md` already registers —
47
47
  only unregistered/relevant items survive into proposals. If the agent
48
48
  cannot enumerate its installed skills / connected MCPs, say so plainly
49
49
  (no silent caps) rather than inventing an inventory.
@@ -54,7 +54,7 @@ step (2–5). Each item ends with exactly one fallback; never pick another one m
54
54
  - **Roadmap: remove or revise** — features that are obsolete, superseded, or no
55
55
  longer make sense.
56
56
  - **Tooling: register or re-design** — unregistered-but-useful tooling to add
57
- to `CLAUDE.md`, or a discovered skill/MCP that would rescope a feature.
57
+ to `AGENTS.md`, or a discovered skill/MCP that would rescope a feature.
58
58
  7. **Number the findings.** Assign every finding in the severity-ranked list a
59
59
  sequential id `F1, F2, …` — **one single `F` sequence for the whole audit**,
60
60
  in ranked order, regardless of dimension. Never use a different letter per
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: ship-roadmap
3
3
  user-invocable: true
4
- version: 5.2.2
4
+ version: 5.2.3
5
5
  author: "Gabriel Trabanco <1969593+gtrabanco@users.noreply.github.com>"
6
6
  license: MIT
7
7
  argument-hint: "[--fullauto] | --continue [--fullauto]"
@@ -44,7 +44,7 @@ one bug, or exploratory work use the manual planning/execution flow instead.
44
44
 
45
45
  ## Step 0 — Discover the project (always first)
46
46
 
47
- Read before acting: `CLAUDE.md`/`AGENTS.md` Workflow conventions, documentation
47
+ Read before acting: `AGENTS.md` Workflow conventions, documentation
48
48
  map, `docs/features/ROADMAP.md`, fix index, architecture doc, and `.github/`
49
49
  templates. Then establish:
50
50
 
@@ -20,7 +20,7 @@ every later decision is made silently and logged with a one-line rationale.
20
20
  in-turn (both opus/high — within the ≥ rule), **pre-fed with the interview
21
21
  answers** so it asks nothing. Branch discipline:
22
22
 
23
- - **Empty repo:** the scaffold (CLAUDE.md, docs/, .github/, completed
23
+ - **Empty repo:** the scaffold (AGENTS.md, docs/, .github/, completed
24
24
  ROADMAP.md, decision record) is the repo's **initial commit on the default
25
25
  branch** — there is no history to protect and no base for a PR yet.
26
26
  - **Existing repo:** founding goes on a `docs/ship-founding` branch as a PR.