bigpowers 2.84.1 → 2.85.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.
Files changed (46) hide show
  1. package/.agents/skills/craft-skill/SKILL.md +21 -4
  2. package/.agents/skills/seed-conventions/SKILL.md +21 -4
  3. package/.agents/skills/stocktake-skills/SKILL.md +2 -0
  4. package/.codebuddy/skills/craft-skill/SKILL.md +21 -4
  5. package/.codebuddy/skills/seed-conventions/SKILL.md +21 -4
  6. package/.codebuddy/skills/stocktake-skills/SKILL.md +2 -0
  7. package/.codex/skills/craft-skill/SKILL.md +21 -4
  8. package/.codex/skills/seed-conventions/SKILL.md +21 -4
  9. package/.codex/skills/stocktake-skills/SKILL.md +2 -0
  10. package/.hermes/skills/craft-skill/SKILL.md +21 -4
  11. package/.hermes/skills/seed-conventions/SKILL.md +21 -4
  12. package/.hermes/skills/stocktake-skills/SKILL.md +2 -0
  13. package/.kilocode/rules/craft-skill.md +21 -4
  14. package/.kilocode/rules/seed-conventions.md +21 -4
  15. package/.kilocode/rules/stocktake-skills.md +2 -0
  16. package/.mimocode/skills/craft-skill/SKILL.md +21 -4
  17. package/.mimocode/skills/seed-conventions/SKILL.md +21 -4
  18. package/.mimocode/skills/stocktake-skills/SKILL.md +2 -0
  19. package/.pi/package.json +1 -1
  20. package/.pi/prompts/craft-skill.md +21 -4
  21. package/.pi/prompts/seed-conventions.md +21 -4
  22. package/.pi/prompts/stocktake-skills.md +2 -0
  23. package/.pi/skills/craft-skill/SKILL.md +21 -4
  24. package/.pi/skills/seed-conventions/SKILL.md +21 -4
  25. package/.pi/skills/stocktake-skills/SKILL.md +2 -0
  26. package/.trae/skills/craft-skill/SKILL.md +21 -4
  27. package/.trae/skills/seed-conventions/SKILL.md +21 -4
  28. package/.trae/skills/stocktake-skills/SKILL.md +2 -0
  29. package/.windsurf/rules/craft-skill.md +21 -4
  30. package/.windsurf/rules/seed-conventions.md +21 -4
  31. package/.windsurf/rules/stocktake-skills.md +2 -0
  32. package/.zcode/skills/craft-skill/SKILL.md +21 -4
  33. package/.zcode/skills/seed-conventions/SKILL.md +21 -4
  34. package/.zcode/skills/stocktake-skills/SKILL.md +2 -0
  35. package/CHANGELOG.md +12 -0
  36. package/package.json +1 -1
  37. package/scripts/land-branch.sh +22 -9
  38. package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
  39. package/scripts/lib/__pycache__/srp_engine_links.cpython-312.pyc +0 -0
  40. package/scripts/lib/land-branch-push.sh +106 -0
  41. package/scripts/validate-agentic-ste.sh +229 -0
  42. package/skills/craft-skill/SKILL.md +22 -4
  43. package/skills/seed-conventions/SKILL.md +21 -4
  44. package/skills/stocktake-skills/SKILL.md +2 -0
  45. package/skills-lock.json +3 -3
  46. package/tests/test-land-branch-protected.sh +222 -0
@@ -6,7 +6,7 @@ description: "Create new bigpowers skills with proper structure, progressive dis
6
6
 
7
7
  # Craft Skill
8
8
 
9
- > **HARD GATE** — Do NOT name a skill without a two-word verb-noun pair. Do NOT merge a new skill without running `sync-skills.sh` — the generated `.cursor/rules/` and `.gemini/` artifacts must match the source SKILL.md.
9
+ > **HARD GATE** — Do NOT name a skill without a two-word verb-noun pair. Do NOT merge a new skill without running `sync-skills.sh`. Generated `.cursor/rules/` and `.gemini/` artifacts MUST match the source SKILL.md.
10
10
 
11
11
  ## CSO Description Discipline (e45s02)
12
12
 
@@ -21,11 +21,25 @@ The YAML `description` is the **Catalog Selection Object** — the only field ag
21
21
 
22
22
  Move process detail into the SKILL.md body or REFERENCE.md — never into `description`.
23
23
 
24
+ ## Agentic STE body discipline (e79s02)
25
+
26
+ Skill-body instructional prose MUST follow [AGENTIC-STE.md](../../docs/AGENTIC-STE.md).
27
+
28
+ | Rule | Limit |
29
+ |------|-------|
30
+ | Sentence length | ≤20 words per instruction sentence |
31
+ | Voice | Imperative, active |
32
+ | Directive terms | MUST, MUST NOT, NEVER, ALWAYS, DO, DO NOT |
33
+ | Banned modals | should, might, could, may, consider, try, generally, typically |
34
+ | Scope | SKILL.md body only — not YAML `description`, not `terse-mode` output |
35
+
36
+ > **HARD GATE** — Do NOT merge a new or edited skill until `bash scripts/validate-agentic-ste.sh --strict skills/<name>/SKILL.md` exits 0. Fix violations before `sync-skills.sh`.
37
+
24
38
  ## Process
25
39
 
26
40
  1. **Gather requirements** — ask user about:
27
41
  - What task/domain does the skill cover?
28
- - What specific use cases should it handle?
42
+ - Which use cases must the skill handle?
29
43
  - Does it need executable scripts or just instructions?
30
44
  - Any reference materials to include?
31
45
  - What specs/ output does it produce (if any)?
@@ -41,7 +55,8 @@ Move process detail into the SKILL.md body or REFERENCE.md — never into `descr
41
55
  - Additional reference files if content exceeds 100 lines
42
56
  - Utility scripts if deterministic operations needed
43
57
 
44
- **Auto-skill from library README:** When user provides a library README or API docs URL, extract: triggers, HARD GATEs, verify commands, specs/ output — draft SKILL.md without inventing APIs not in the source.
58
+ **Auto-skill from library README:** When user provides a library README or API docs URL, extract triggers and HARD GATEs.
59
+ Draft verify commands and specs/ output into SKILL.md. Do NOT invent APIs not in the source.
45
60
 
46
61
  4. Add `model:` frontmatter (`haiku` | `sonnet` | `opus`) per [model-profiles.md](https://github.com/danielvm-git/bigpowers/blob/main/docs/references/model-profiles.md).
47
62
 
@@ -50,10 +65,11 @@ Move process detail into the SKILL.md body or REFERENCE.md — never into `descr
50
65
  5. **Review with user** — present draft and ask:
51
66
  - Does this cover your use cases?
52
67
  - Anything missing or unclear?
53
- - Should any section be more/less detailed?
68
+ - Does any section need more or less detail?
54
69
 
55
70
  6. **Completion-honesty gate (HARD GATE — e45s02)** — Before declaring done:
56
71
  - Run `bash scripts/validate-skill-description.sh skills/<name>/SKILL.md` — must exit 0
72
+ - Run `bash scripts/validate-agentic-ste.sh --strict skills/<name>/SKILL.md` — must exit 0 (e79s02)
57
73
  - Run `bash scripts/sync-skills.sh` — must complete without error
58
74
  - Run `bash scripts/run-skill-verify.sh <name>` if the skill defines a verify command
59
75
  - Show terminal output for each — narration without evidence is rejected
@@ -78,6 +94,7 @@ After drafting, verify:
78
94
  - [ ] Consistent terminology with CONVENTIONS.md
79
95
  - [ ] specs/ output documented if applicable
80
96
  - [ ] `validate-skill-description.sh` exits 0
97
+ - [ ] `validate-agentic-ste.sh --strict` exits 0 (e79s02)
81
98
  - [ ] `sync-skills.sh` run to propagate to Cursor/Gemini
82
99
  - [ ] `bash scripts/validate-skill-catalog.sh` passes for the new skill (HARD GATE — completion honesty)
83
100
 
@@ -9,6 +9,7 @@ description: "Generate CLAUDE.md and CONVENTIONS.md for a brand-new project thro
9
9
  # story: e10s02
10
10
  # story: e51s02
11
11
  # story: e45s21
12
+ # story: e79s03
12
13
 
13
14
 
14
15
  # Seed Conventions
@@ -32,13 +33,25 @@ Ask the user these questions (one at a time, wait for each answer):
32
33
  2. **Stack** — "What language, framework, and runtime? (e.g. TypeScript / Next.js / Node 22)"
33
34
  2b. **Stack profile (optional)** — Offer: `swift`, `typescript-vue`, `node-service`, or none. If chosen, merge the matching fragment from `profiles/<name>.md` into generated `CONVENTIONS.md`.
34
35
  3. **Commands** — "What commands do you use for: run, test, build, lint?"
35
- 3b. **Preflight (optional)** — "What single command runs your full local green stack (test + lint + build)? If you don't have one, we'll chain your Test + Lint + Build answers into a **Preflight** row in the Commands table."
36
+ 3b. **Preflight (optional)** — "What command runs test, lint, and build together? If none, chain Test + Lint + Build into one **Preflight** row."
36
37
  4. **Architecture** — "Key modules and relationships in 1–2 sentences."
37
38
  5. **Conventions** — "Any naming, file organization, or patterns all agents must follow?"
38
39
  6. **Never-do list** — "What are the hard stops? Things an agent must never touch?"
39
40
  7. **Defensive code categories** — "Which apply? (Rate limit / Retry / Circuit breaker / Timeout / Graceful degradation)"
40
41
  8. **Local tool wiring (optional)** — "Wire bigpowers for project-local tools? (Cursor, OpenCode, Cline, Aider, Codex CLI)" If yes, generate AGENTS.md spine artifacts per [REFERENCE.md](REFERENCE.md) §Local tool wiring and §AGENTS.md spine. If no, skip — standard seed output unchanged (no AGENTS.md spine unless opted in).
41
42
 
43
+ ## Agentic STE for generated prose (e79s03)
44
+
45
+ When writing instructional lines in `CLAUDE.md`, `AGENTS.md`, or `CONVENTIONS.md`, follow [AGENTIC-STE.md](../../docs/AGENTIC-STE.md):
46
+
47
+ - Use directive vocabulary: MUST, MUST NOT, NEVER, ALWAYS, DO, DO NOT
48
+ - Do NOT use hedge modals listed in AGENTIC-STE.md Rule 3
49
+ - Cap each instruction sentence at 20 words
50
+ - Write imperative, active-voice lines — one instruction per line
51
+ - Do NOT apply Agentic STE to `terse-mode` (output compression is out of scope)
52
+
53
+ After generation, run `bash scripts/validate-agentic-ste.sh --strict CLAUDE.md CONVENTIONS.md` when those files exist in the target project.
54
+
42
55
  ## Generate files
43
56
 
44
57
  After the interview, generate each file using the templates in [REFERENCE.md](REFERENCE.md):
@@ -65,9 +78,11 @@ echo "# Specs\n\nAll planning documents for this project." > specs/README.md
65
78
 
66
79
  **Note:** `specs/state.yaml.lock` is NOT pre-created — acquired/released dynamically.
67
80
 
68
- `specs/state.yaml` carries a top-level `workflow_mode` key (`team-pr` | `solo-git`, default `solo-git`). This is the **canonical integrate-mode signal** for all skills — set it once here and skills such as `release-branch` read it from this file instead of sniffing profile files.
81
+ `specs/state.yaml` carries top-level `workflow_mode` (`team-pr` | `solo-git`, default `solo-git`).
82
+ This is the **canonical integrate-mode signal** for all skills.
83
+ Set it once here. Skills such as `release-branch` read this file instead of sniffing profiles.
69
84
 
70
- When generating `CLAUDE.md`, if the user did not name a Preflight command, chain the Test + Lint + Build interview answers into one **Preflight** row (e.g. `npm test && npm run lint && npm run build`).
85
+ When generating `CLAUDE.md`, chain Test + Lint + Build into one **Preflight** row if the user named no Preflight command.
71
86
 
72
87
  ### Self-installing fenced markers (e45s21)
73
88
 
@@ -79,7 +94,9 @@ Skills that write into `CLAUDE.md` or `AGENTS.md` MUST use **fenced HTML comment
79
94
  <!-- END bigpowers:section-id -->
80
95
  ```
81
96
 
82
- **Merge rule:** On update, replace only the content *between* matching `BEGIN`/`END` pairs. If a marker pair is missing, append a new fenced block at the end of the file — never rewrite the whole file.
97
+ **Merge rule:** On update, replace only content between matching `BEGIN`/`END` pairs.
98
+ If a marker pair is missing, append a new fenced block at file end.
99
+ Never rewrite the whole file.
83
100
 
84
101
  **Standard marker IDs** for seeded projects (see [REFERENCE.md](REFERENCE.md) § Fenced markers):
85
102
 
@@ -6,6 +6,7 @@ description: "Sequential subagent batch audit of the bigpowers skill catalog —
6
6
 
7
7
  # story: e09s01
8
8
  <!-- story: e45s12 -->
9
+ <!-- story: e79s04 -->
9
10
 
10
11
 
11
12
  # Stocktake Skills
@@ -25,6 +26,7 @@ Audit SKILL.md catalog for drift, stale triggers, missing HARD GATEs, and INDEX
25
26
  ## Process
26
27
 
27
28
  0. **Catalog validator (code-enforced)** — run `bash scripts/validate-skill-catalog.sh`. Any FAIL is a critical finding before manual review. Add `--archive` to list zero-usage skills from `metrics.skill_timings` for auto-archiving candidates (move to `specs/epics/archive/` or delete after user confirms).
29
+ 0b. **Agentic STE audit (e79s04)** — run `bash scripts/validate-agentic-ste.sh --audit skills/`. Flag hedge words and sentences over 20 words per [AGENTIC-STE.md](../../docs/AGENTIC-STE.md). Record WARN lines in the stocktake report as **STE debt** — do NOT rewrite the full catalog in one pass. Route critical repeat offenders to `evolve-skill`.
28
30
  1. Run `bash scripts/audit-catalog.sh` to verify pi/skills ↔ source SKILL.md sync. Mismatch is a critical finding.
29
31
  2. Run mode; for each skill check: exists, verb-noun, &lt;300 lines total, HARD GATE present, INDEX row matches.
30
32
  3. Write `specs/STOCKTAKE-<date>.md` with findings table (skill, issue, severity).
@@ -6,7 +6,7 @@ description: "Create new bigpowers skills with proper structure, progressive dis
6
6
 
7
7
  # Craft Skill
8
8
 
9
- > **HARD GATE** — Do NOT name a skill without a two-word verb-noun pair. Do NOT merge a new skill without running `sync-skills.sh` — the generated `.cursor/rules/` and `.gemini/` artifacts must match the source SKILL.md.
9
+ > **HARD GATE** — Do NOT name a skill without a two-word verb-noun pair. Do NOT merge a new skill without running `sync-skills.sh`. Generated `.cursor/rules/` and `.gemini/` artifacts MUST match the source SKILL.md.
10
10
 
11
11
  ## CSO Description Discipline (e45s02)
12
12
 
@@ -21,11 +21,25 @@ The YAML `description` is the **Catalog Selection Object** — the only field ag
21
21
 
22
22
  Move process detail into the SKILL.md body or REFERENCE.md — never into `description`.
23
23
 
24
+ ## Agentic STE body discipline (e79s02)
25
+
26
+ Skill-body instructional prose MUST follow [AGENTIC-STE.md](../../docs/AGENTIC-STE.md).
27
+
28
+ | Rule | Limit |
29
+ |------|-------|
30
+ | Sentence length | ≤20 words per instruction sentence |
31
+ | Voice | Imperative, active |
32
+ | Directive terms | MUST, MUST NOT, NEVER, ALWAYS, DO, DO NOT |
33
+ | Banned modals | should, might, could, may, consider, try, generally, typically |
34
+ | Scope | SKILL.md body only — not YAML `description`, not `terse-mode` output |
35
+
36
+ > **HARD GATE** — Do NOT merge a new or edited skill until `bash scripts/validate-agentic-ste.sh --strict skills/<name>/SKILL.md` exits 0. Fix violations before `sync-skills.sh`.
37
+
24
38
  ## Process
25
39
 
26
40
  1. **Gather requirements** — ask user about:
27
41
  - What task/domain does the skill cover?
28
- - What specific use cases should it handle?
42
+ - Which use cases must the skill handle?
29
43
  - Does it need executable scripts or just instructions?
30
44
  - Any reference materials to include?
31
45
  - What specs/ output does it produce (if any)?
@@ -41,7 +55,8 @@ Move process detail into the SKILL.md body or REFERENCE.md — never into `descr
41
55
  - Additional reference files if content exceeds 100 lines
42
56
  - Utility scripts if deterministic operations needed
43
57
 
44
- **Auto-skill from library README:** When user provides a library README or API docs URL, extract: triggers, HARD GATEs, verify commands, specs/ output — draft SKILL.md without inventing APIs not in the source.
58
+ **Auto-skill from library README:** When user provides a library README or API docs URL, extract triggers and HARD GATEs.
59
+ Draft verify commands and specs/ output into SKILL.md. Do NOT invent APIs not in the source.
45
60
 
46
61
  4. Add `model:` frontmatter (`haiku` | `sonnet` | `opus`) per [model-profiles.md](https://github.com/danielvm-git/bigpowers/blob/main/docs/references/model-profiles.md).
47
62
 
@@ -50,10 +65,11 @@ Move process detail into the SKILL.md body or REFERENCE.md — never into `descr
50
65
  5. **Review with user** — present draft and ask:
51
66
  - Does this cover your use cases?
52
67
  - Anything missing or unclear?
53
- - Should any section be more/less detailed?
68
+ - Does any section need more or less detail?
54
69
 
55
70
  6. **Completion-honesty gate (HARD GATE — e45s02)** — Before declaring done:
56
71
  - Run `bash scripts/validate-skill-description.sh skills/<name>/SKILL.md` — must exit 0
72
+ - Run `bash scripts/validate-agentic-ste.sh --strict skills/<name>/SKILL.md` — must exit 0 (e79s02)
57
73
  - Run `bash scripts/sync-skills.sh` — must complete without error
58
74
  - Run `bash scripts/run-skill-verify.sh <name>` if the skill defines a verify command
59
75
  - Show terminal output for each — narration without evidence is rejected
@@ -78,6 +94,7 @@ After drafting, verify:
78
94
  - [ ] Consistent terminology with CONVENTIONS.md
79
95
  - [ ] specs/ output documented if applicable
80
96
  - [ ] `validate-skill-description.sh` exits 0
97
+ - [ ] `validate-agentic-ste.sh --strict` exits 0 (e79s02)
81
98
  - [ ] `sync-skills.sh` run to propagate to Cursor/Gemini
82
99
  - [ ] `bash scripts/validate-skill-catalog.sh` passes for the new skill (HARD GATE — completion honesty)
83
100
 
@@ -9,6 +9,7 @@ description: "Generate CLAUDE.md and CONVENTIONS.md for a brand-new project thro
9
9
  # story: e10s02
10
10
  # story: e51s02
11
11
  # story: e45s21
12
+ # story: e79s03
12
13
 
13
14
 
14
15
  # Seed Conventions
@@ -32,13 +33,25 @@ Ask the user these questions (one at a time, wait for each answer):
32
33
  2. **Stack** — "What language, framework, and runtime? (e.g. TypeScript / Next.js / Node 22)"
33
34
  2b. **Stack profile (optional)** — Offer: `swift`, `typescript-vue`, `node-service`, or none. If chosen, merge the matching fragment from `profiles/<name>.md` into generated `CONVENTIONS.md`.
34
35
  3. **Commands** — "What commands do you use for: run, test, build, lint?"
35
- 3b. **Preflight (optional)** — "What single command runs your full local green stack (test + lint + build)? If you don't have one, we'll chain your Test + Lint + Build answers into a **Preflight** row in the Commands table."
36
+ 3b. **Preflight (optional)** — "What command runs test, lint, and build together? If none, chain Test + Lint + Build into one **Preflight** row."
36
37
  4. **Architecture** — "Key modules and relationships in 1–2 sentences."
37
38
  5. **Conventions** — "Any naming, file organization, or patterns all agents must follow?"
38
39
  6. **Never-do list** — "What are the hard stops? Things an agent must never touch?"
39
40
  7. **Defensive code categories** — "Which apply? (Rate limit / Retry / Circuit breaker / Timeout / Graceful degradation)"
40
41
  8. **Local tool wiring (optional)** — "Wire bigpowers for project-local tools? (Cursor, OpenCode, Cline, Aider, Codex CLI)" If yes, generate AGENTS.md spine artifacts per [REFERENCE.md](REFERENCE.md) §Local tool wiring and §AGENTS.md spine. If no, skip — standard seed output unchanged (no AGENTS.md spine unless opted in).
41
42
 
43
+ ## Agentic STE for generated prose (e79s03)
44
+
45
+ When writing instructional lines in `CLAUDE.md`, `AGENTS.md`, or `CONVENTIONS.md`, follow [AGENTIC-STE.md](../../docs/AGENTIC-STE.md):
46
+
47
+ - Use directive vocabulary: MUST, MUST NOT, NEVER, ALWAYS, DO, DO NOT
48
+ - Do NOT use hedge modals listed in AGENTIC-STE.md Rule 3
49
+ - Cap each instruction sentence at 20 words
50
+ - Write imperative, active-voice lines — one instruction per line
51
+ - Do NOT apply Agentic STE to `terse-mode` (output compression is out of scope)
52
+
53
+ After generation, run `bash scripts/validate-agentic-ste.sh --strict CLAUDE.md CONVENTIONS.md` when those files exist in the target project.
54
+
42
55
  ## Generate files
43
56
 
44
57
  After the interview, generate each file using the templates in [REFERENCE.md](REFERENCE.md):
@@ -65,9 +78,11 @@ echo "# Specs\n\nAll planning documents for this project." > specs/README.md
65
78
 
66
79
  **Note:** `specs/state.yaml.lock` is NOT pre-created — acquired/released dynamically.
67
80
 
68
- `specs/state.yaml` carries a top-level `workflow_mode` key (`team-pr` | `solo-git`, default `solo-git`). This is the **canonical integrate-mode signal** for all skills — set it once here and skills such as `release-branch` read it from this file instead of sniffing profile files.
81
+ `specs/state.yaml` carries top-level `workflow_mode` (`team-pr` | `solo-git`, default `solo-git`).
82
+ This is the **canonical integrate-mode signal** for all skills.
83
+ Set it once here. Skills such as `release-branch` read this file instead of sniffing profiles.
69
84
 
70
- When generating `CLAUDE.md`, if the user did not name a Preflight command, chain the Test + Lint + Build interview answers into one **Preflight** row (e.g. `npm test && npm run lint && npm run build`).
85
+ When generating `CLAUDE.md`, chain Test + Lint + Build into one **Preflight** row if the user named no Preflight command.
71
86
 
72
87
  ### Self-installing fenced markers (e45s21)
73
88
 
@@ -79,7 +94,9 @@ Skills that write into `CLAUDE.md` or `AGENTS.md` MUST use **fenced HTML comment
79
94
  <!-- END bigpowers:section-id -->
80
95
  ```
81
96
 
82
- **Merge rule:** On update, replace only the content *between* matching `BEGIN`/`END` pairs. If a marker pair is missing, append a new fenced block at the end of the file — never rewrite the whole file.
97
+ **Merge rule:** On update, replace only content between matching `BEGIN`/`END` pairs.
98
+ If a marker pair is missing, append a new fenced block at file end.
99
+ Never rewrite the whole file.
83
100
 
84
101
  **Standard marker IDs** for seeded projects (see [REFERENCE.md](REFERENCE.md) § Fenced markers):
85
102
 
@@ -6,6 +6,7 @@ description: "Sequential subagent batch audit of the bigpowers skill catalog —
6
6
 
7
7
  # story: e09s01
8
8
  <!-- story: e45s12 -->
9
+ <!-- story: e79s04 -->
9
10
 
10
11
 
11
12
  # Stocktake Skills
@@ -25,6 +26,7 @@ Audit SKILL.md catalog for drift, stale triggers, missing HARD GATEs, and INDEX
25
26
  ## Process
26
27
 
27
28
  0. **Catalog validator (code-enforced)** — run `bash scripts/validate-skill-catalog.sh`. Any FAIL is a critical finding before manual review. Add `--archive` to list zero-usage skills from `metrics.skill_timings` for auto-archiving candidates (move to `specs/epics/archive/` or delete after user confirms).
29
+ 0b. **Agentic STE audit (e79s04)** — run `bash scripts/validate-agentic-ste.sh --audit skills/`. Flag hedge words and sentences over 20 words per [AGENTIC-STE.md](../../docs/AGENTIC-STE.md). Record WARN lines in the stocktake report as **STE debt** — do NOT rewrite the full catalog in one pass. Route critical repeat offenders to `evolve-skill`.
28
30
  1. Run `bash scripts/audit-catalog.sh` to verify pi/skills ↔ source SKILL.md sync. Mismatch is a critical finding.
29
31
  2. Run mode; for each skill check: exists, verb-noun, &lt;300 lines total, HARD GATE present, INDEX row matches.
30
32
  3. Write `specs/STOCKTAKE-<date>.md` with findings table (skill, issue, severity).
package/.pi/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bigpowers",
3
- "version": "2.84.1",
3
+ "version": "2.85.0",
4
4
  "description": "80 skills — 73 agent skills synthesizing 17 years of software engineering discipline into a prescriptive methodology for solo developers",
5
5
  "keywords": [
6
6
  "pi-package"
@@ -5,7 +5,7 @@ description: "Create new bigpowers skills with proper structure, progressive dis
5
5
 
6
6
  # Craft Skill
7
7
 
8
- > **HARD GATE** — Do NOT name a skill without a two-word verb-noun pair. Do NOT merge a new skill without running `sync-skills.sh` — the generated `.cursor/rules/` and `.gemini/` artifacts must match the source SKILL.md.
8
+ > **HARD GATE** — Do NOT name a skill without a two-word verb-noun pair. Do NOT merge a new skill without running `sync-skills.sh`. Generated `.cursor/rules/` and `.gemini/` artifacts MUST match the source SKILL.md.
9
9
 
10
10
  ## CSO Description Discipline (e45s02)
11
11
 
@@ -20,11 +20,25 @@ The YAML `description` is the **Catalog Selection Object** — the only field ag
20
20
 
21
21
  Move process detail into the SKILL.md body or REFERENCE.md — never into `description`.
22
22
 
23
+ ## Agentic STE body discipline (e79s02)
24
+
25
+ Skill-body instructional prose MUST follow [AGENTIC-STE.md](../../docs/AGENTIC-STE.md).
26
+
27
+ | Rule | Limit |
28
+ |------|-------|
29
+ | Sentence length | ≤20 words per instruction sentence |
30
+ | Voice | Imperative, active |
31
+ | Directive terms | MUST, MUST NOT, NEVER, ALWAYS, DO, DO NOT |
32
+ | Banned modals | should, might, could, may, consider, try, generally, typically |
33
+ | Scope | SKILL.md body only — not YAML `description`, not `terse-mode` output |
34
+
35
+ > **HARD GATE** — Do NOT merge a new or edited skill until `bash scripts/validate-agentic-ste.sh --strict skills/<name>/SKILL.md` exits 0. Fix violations before `sync-skills.sh`.
36
+
23
37
  ## Process
24
38
 
25
39
  1. **Gather requirements** — ask user about:
26
40
  - What task/domain does the skill cover?
27
- - What specific use cases should it handle?
41
+ - Which use cases must the skill handle?
28
42
  - Does it need executable scripts or just instructions?
29
43
  - Any reference materials to include?
30
44
  - What specs/ output does it produce (if any)?
@@ -40,7 +54,8 @@ Move process detail into the SKILL.md body or REFERENCE.md — never into `descr
40
54
  - Additional reference files if content exceeds 100 lines
41
55
  - Utility scripts if deterministic operations needed
42
56
 
43
- **Auto-skill from library README:** When user provides a library README or API docs URL, extract: triggers, HARD GATEs, verify commands, specs/ output — draft SKILL.md without inventing APIs not in the source.
57
+ **Auto-skill from library README:** When user provides a library README or API docs URL, extract triggers and HARD GATEs.
58
+ Draft verify commands and specs/ output into SKILL.md. Do NOT invent APIs not in the source.
44
59
 
45
60
  4. Add `model:` frontmatter (`haiku` | `sonnet` | `opus`) per [model-profiles.md](https://github.com/danielvm-git/bigpowers/blob/main/docs/references/model-profiles.md).
46
61
 
@@ -49,10 +64,11 @@ Move process detail into the SKILL.md body or REFERENCE.md — never into `descr
49
64
  5. **Review with user** — present draft and ask:
50
65
  - Does this cover your use cases?
51
66
  - Anything missing or unclear?
52
- - Should any section be more/less detailed?
67
+ - Does any section need more or less detail?
53
68
 
54
69
  6. **Completion-honesty gate (HARD GATE — e45s02)** — Before declaring done:
55
70
  - Run `bash scripts/validate-skill-description.sh skills/<name>/SKILL.md` — must exit 0
71
+ - Run `bash scripts/validate-agentic-ste.sh --strict skills/<name>/SKILL.md` — must exit 0 (e79s02)
56
72
  - Run `bash scripts/sync-skills.sh` — must complete without error
57
73
  - Run `bash scripts/run-skill-verify.sh <name>` if the skill defines a verify command
58
74
  - Show terminal output for each — narration without evidence is rejected
@@ -77,6 +93,7 @@ After drafting, verify:
77
93
  - [ ] Consistent terminology with CONVENTIONS.md
78
94
  - [ ] specs/ output documented if applicable
79
95
  - [ ] `validate-skill-description.sh` exits 0
96
+ - [ ] `validate-agentic-ste.sh --strict` exits 0 (e79s02)
80
97
  - [ ] `sync-skills.sh` run to propagate to Cursor/Gemini
81
98
  - [ ] `bash scripts/validate-skill-catalog.sh` passes for the new skill (HARD GATE — completion honesty)
82
99
 
@@ -8,6 +8,7 @@ description: "Generate CLAUDE.md and CONVENTIONS.md for a brand-new project thro
8
8
  # story: e10s02
9
9
  # story: e51s02
10
10
  # story: e45s21
11
+ # story: e79s03
11
12
 
12
13
 
13
14
  # Seed Conventions
@@ -31,13 +32,25 @@ Ask the user these questions (one at a time, wait for each answer):
31
32
  2. **Stack** — "What language, framework, and runtime? (e.g. TypeScript / Next.js / Node 22)"
32
33
  2b. **Stack profile (optional)** — Offer: `swift`, `typescript-vue`, `node-service`, or none. If chosen, merge the matching fragment from `profiles/<name>.md` into generated `CONVENTIONS.md`.
33
34
  3. **Commands** — "What commands do you use for: run, test, build, lint?"
34
- 3b. **Preflight (optional)** — "What single command runs your full local green stack (test + lint + build)? If you don't have one, we'll chain your Test + Lint + Build answers into a **Preflight** row in the Commands table."
35
+ 3b. **Preflight (optional)** — "What command runs test, lint, and build together? If none, chain Test + Lint + Build into one **Preflight** row."
35
36
  4. **Architecture** — "Key modules and relationships in 1–2 sentences."
36
37
  5. **Conventions** — "Any naming, file organization, or patterns all agents must follow?"
37
38
  6. **Never-do list** — "What are the hard stops? Things an agent must never touch?"
38
39
  7. **Defensive code categories** — "Which apply? (Rate limit / Retry / Circuit breaker / Timeout / Graceful degradation)"
39
40
  8. **Local tool wiring (optional)** — "Wire bigpowers for project-local tools? (Cursor, OpenCode, Cline, Aider, Codex CLI)" If yes, generate AGENTS.md spine artifacts per [REFERENCE.md](REFERENCE.md) §Local tool wiring and §AGENTS.md spine. If no, skip — standard seed output unchanged (no AGENTS.md spine unless opted in).
40
41
 
42
+ ## Agentic STE for generated prose (e79s03)
43
+
44
+ When writing instructional lines in `CLAUDE.md`, `AGENTS.md`, or `CONVENTIONS.md`, follow [AGENTIC-STE.md](../../docs/AGENTIC-STE.md):
45
+
46
+ - Use directive vocabulary: MUST, MUST NOT, NEVER, ALWAYS, DO, DO NOT
47
+ - Do NOT use hedge modals listed in AGENTIC-STE.md Rule 3
48
+ - Cap each instruction sentence at 20 words
49
+ - Write imperative, active-voice lines — one instruction per line
50
+ - Do NOT apply Agentic STE to `terse-mode` (output compression is out of scope)
51
+
52
+ After generation, run `bash scripts/validate-agentic-ste.sh --strict CLAUDE.md CONVENTIONS.md` when those files exist in the target project.
53
+
41
54
  ## Generate files
42
55
 
43
56
  After the interview, generate each file using the templates in [REFERENCE.md](REFERENCE.md):
@@ -64,9 +77,11 @@ echo "# Specs\n\nAll planning documents for this project." > specs/README.md
64
77
 
65
78
  **Note:** `specs/state.yaml.lock` is NOT pre-created — acquired/released dynamically.
66
79
 
67
- `specs/state.yaml` carries a top-level `workflow_mode` key (`team-pr` | `solo-git`, default `solo-git`). This is the **canonical integrate-mode signal** for all skills — set it once here and skills such as `release-branch` read it from this file instead of sniffing profile files.
80
+ `specs/state.yaml` carries top-level `workflow_mode` (`team-pr` | `solo-git`, default `solo-git`).
81
+ This is the **canonical integrate-mode signal** for all skills.
82
+ Set it once here. Skills such as `release-branch` read this file instead of sniffing profiles.
68
83
 
69
- When generating `CLAUDE.md`, if the user did not name a Preflight command, chain the Test + Lint + Build interview answers into one **Preflight** row (e.g. `npm test && npm run lint && npm run build`).
84
+ When generating `CLAUDE.md`, chain Test + Lint + Build into one **Preflight** row if the user named no Preflight command.
70
85
 
71
86
  ### Self-installing fenced markers (e45s21)
72
87
 
@@ -78,7 +93,9 @@ Skills that write into `CLAUDE.md` or `AGENTS.md` MUST use **fenced HTML comment
78
93
  <!-- END bigpowers:section-id -->
79
94
  ```
80
95
 
81
- **Merge rule:** On update, replace only the content *between* matching `BEGIN`/`END` pairs. If a marker pair is missing, append a new fenced block at the end of the file — never rewrite the whole file.
96
+ **Merge rule:** On update, replace only content between matching `BEGIN`/`END` pairs.
97
+ If a marker pair is missing, append a new fenced block at file end.
98
+ Never rewrite the whole file.
82
99
 
83
100
  **Standard marker IDs** for seeded projects (see [REFERENCE.md](REFERENCE.md) § Fenced markers):
84
101
 
@@ -5,6 +5,7 @@ description: "Sequential subagent batch audit of the bigpowers skill catalog —
5
5
 
6
6
  # story: e09s01
7
7
  <!-- story: e45s12 -->
8
+ <!-- story: e79s04 -->
8
9
 
9
10
 
10
11
  # Stocktake Skills
@@ -24,6 +25,7 @@ Audit SKILL.md catalog for drift, stale triggers, missing HARD GATEs, and INDEX
24
25
  ## Process
25
26
 
26
27
  0. **Catalog validator (code-enforced)** — run `bash scripts/validate-skill-catalog.sh`. Any FAIL is a critical finding before manual review. Add `--archive` to list zero-usage skills from `metrics.skill_timings` for auto-archiving candidates (move to `specs/epics/archive/` or delete after user confirms).
28
+ 0b. **Agentic STE audit (e79s04)** — run `bash scripts/validate-agentic-ste.sh --audit skills/`. Flag hedge words and sentences over 20 words per [AGENTIC-STE.md](../../docs/AGENTIC-STE.md). Record WARN lines in the stocktake report as **STE debt** — do NOT rewrite the full catalog in one pass. Route critical repeat offenders to `evolve-skill`.
27
29
  1. Run `bash scripts/audit-catalog.sh` to verify pi/skills ↔ source SKILL.md sync. Mismatch is a critical finding.
28
30
  2. Run mode; for each skill check: exists, verb-noun, &lt;300 lines total, HARD GATE present, INDEX row matches.
29
31
  3. Write `specs/STOCKTAKE-<date>.md` with findings table (skill, issue, severity).
@@ -6,7 +6,7 @@ description: "Create new bigpowers skills with proper structure, progressive dis
6
6
 
7
7
  # Craft Skill
8
8
 
9
- > **HARD GATE** — Do NOT name a skill without a two-word verb-noun pair. Do NOT merge a new skill without running `sync-skills.sh` — the generated `.cursor/rules/` and `.gemini/` artifacts must match the source SKILL.md.
9
+ > **HARD GATE** — Do NOT name a skill without a two-word verb-noun pair. Do NOT merge a new skill without running `sync-skills.sh`. Generated `.cursor/rules/` and `.gemini/` artifacts MUST match the source SKILL.md.
10
10
 
11
11
  ## CSO Description Discipline (e45s02)
12
12
 
@@ -21,11 +21,25 @@ The YAML `description` is the **Catalog Selection Object** — the only field ag
21
21
 
22
22
  Move process detail into the SKILL.md body or REFERENCE.md — never into `description`.
23
23
 
24
+ ## Agentic STE body discipline (e79s02)
25
+
26
+ Skill-body instructional prose MUST follow [AGENTIC-STE.md](../../../docs/AGENTIC-STE.md).
27
+
28
+ | Rule | Limit |
29
+ |------|-------|
30
+ | Sentence length | ≤20 words per instruction sentence |
31
+ | Voice | Imperative, active |
32
+ | Directive terms | MUST, MUST NOT, NEVER, ALWAYS, DO, DO NOT |
33
+ | Banned modals | should, might, could, may, consider, try, generally, typically |
34
+ | Scope | SKILL.md body only — not YAML `description`, not `terse-mode` output |
35
+
36
+ > **HARD GATE** — Do NOT merge a new or edited skill until `bash scripts/validate-agentic-ste.sh --strict skills/<name>/SKILL.md` exits 0. Fix violations before `sync-skills.sh`.
37
+
24
38
  ## Process
25
39
 
26
40
  1. **Gather requirements** — ask user about:
27
41
  - What task/domain does the skill cover?
28
- - What specific use cases should it handle?
42
+ - Which use cases must the skill handle?
29
43
  - Does it need executable scripts or just instructions?
30
44
  - Any reference materials to include?
31
45
  - What specs/ output does it produce (if any)?
@@ -41,7 +55,8 @@ Move process detail into the SKILL.md body or REFERENCE.md — never into `descr
41
55
  - Additional reference files if content exceeds 100 lines
42
56
  - Utility scripts if deterministic operations needed
43
57
 
44
- **Auto-skill from library README:** When user provides a library README or API docs URL, extract: triggers, HARD GATEs, verify commands, specs/ output — draft SKILL.md without inventing APIs not in the source.
58
+ **Auto-skill from library README:** When user provides a library README or API docs URL, extract triggers and HARD GATEs.
59
+ Draft verify commands and specs/ output into SKILL.md. Do NOT invent APIs not in the source.
45
60
 
46
61
  4. Add `model:` frontmatter (`haiku` | `sonnet` | `opus`) per [model-profiles.md](https://github.com/danielvm-git/bigpowers/blob/main/docs/references/model-profiles.md).
47
62
 
@@ -50,10 +65,11 @@ Move process detail into the SKILL.md body or REFERENCE.md — never into `descr
50
65
  5. **Review with user** — present draft and ask:
51
66
  - Does this cover your use cases?
52
67
  - Anything missing or unclear?
53
- - Should any section be more/less detailed?
68
+ - Does any section need more or less detail?
54
69
 
55
70
  6. **Completion-honesty gate (HARD GATE — e45s02)** — Before declaring done:
56
71
  - Run `bash scripts/validate-skill-description.sh skills/<name>/SKILL.md` — must exit 0
72
+ - Run `bash scripts/validate-agentic-ste.sh --strict skills/<name>/SKILL.md` — must exit 0 (e79s02)
57
73
  - Run `bash scripts/sync-skills.sh` — must complete without error
58
74
  - Run `bash scripts/run-skill-verify.sh <name>` if the skill defines a verify command
59
75
  - Show terminal output for each — narration without evidence is rejected
@@ -78,6 +94,7 @@ After drafting, verify:
78
94
  - [ ] Consistent terminology with CONVENTIONS.md
79
95
  - [ ] specs/ output documented if applicable
80
96
  - [ ] `validate-skill-description.sh` exits 0
97
+ - [ ] `validate-agentic-ste.sh --strict` exits 0 (e79s02)
81
98
  - [ ] `sync-skills.sh` run to propagate to Cursor/Gemini
82
99
  - [ ] `bash scripts/validate-skill-catalog.sh` passes for the new skill (HARD GATE — completion honesty)
83
100
 
@@ -9,6 +9,7 @@ description: "Generate CLAUDE.md and CONVENTIONS.md for a brand-new project thro
9
9
  # story: e10s02
10
10
  # story: e51s02
11
11
  # story: e45s21
12
+ # story: e79s03
12
13
 
13
14
 
14
15
  # Seed Conventions
@@ -32,13 +33,25 @@ Ask the user these questions (one at a time, wait for each answer):
32
33
  2. **Stack** — "What language, framework, and runtime? (e.g. TypeScript / Next.js / Node 22)"
33
34
  2b. **Stack profile (optional)** — Offer: `swift`, `typescript-vue`, `node-service`, or none. If chosen, merge the matching fragment from `profiles/<name>.md` into generated `CONVENTIONS.md`.
34
35
  3. **Commands** — "What commands do you use for: run, test, build, lint?"
35
- 3b. **Preflight (optional)** — "What single command runs your full local green stack (test + lint + build)? If you don't have one, we'll chain your Test + Lint + Build answers into a **Preflight** row in the Commands table."
36
+ 3b. **Preflight (optional)** — "What command runs test, lint, and build together? If none, chain Test + Lint + Build into one **Preflight** row."
36
37
  4. **Architecture** — "Key modules and relationships in 1–2 sentences."
37
38
  5. **Conventions** — "Any naming, file organization, or patterns all agents must follow?"
38
39
  6. **Never-do list** — "What are the hard stops? Things an agent must never touch?"
39
40
  7. **Defensive code categories** — "Which apply? (Rate limit / Retry / Circuit breaker / Timeout / Graceful degradation)"
40
41
  8. **Local tool wiring (optional)** — "Wire bigpowers for project-local tools? (Cursor, OpenCode, Cline, Aider, Codex CLI)" If yes, generate AGENTS.md spine artifacts per [REFERENCE.md](../../../skills/seed-conventions/REFERENCE.md) §Local tool wiring and §AGENTS.md spine. If no, skip — standard seed output unchanged (no AGENTS.md spine unless opted in).
41
42
 
43
+ ## Agentic STE for generated prose (e79s03)
44
+
45
+ When writing instructional lines in `CLAUDE.md`, `AGENTS.md`, or `CONVENTIONS.md`, follow [AGENTIC-STE.md](../../../docs/AGENTIC-STE.md):
46
+
47
+ - Use directive vocabulary: MUST, MUST NOT, NEVER, ALWAYS, DO, DO NOT
48
+ - Do NOT use hedge modals listed in AGENTIC-STE.md Rule 3
49
+ - Cap each instruction sentence at 20 words
50
+ - Write imperative, active-voice lines — one instruction per line
51
+ - Do NOT apply Agentic STE to `terse-mode` (output compression is out of scope)
52
+
53
+ After generation, run `bash scripts/validate-agentic-ste.sh --strict CLAUDE.md CONVENTIONS.md` when those files exist in the target project.
54
+
42
55
  ## Generate files
43
56
 
44
57
  After the interview, generate each file using the templates in [REFERENCE.md](../../../skills/seed-conventions/REFERENCE.md):
@@ -65,9 +78,11 @@ echo "# Specs\n\nAll planning documents for this project." > specs/README.md
65
78
 
66
79
  **Note:** `specs/state.yaml.lock` is NOT pre-created — acquired/released dynamically.
67
80
 
68
- `specs/state.yaml` carries a top-level `workflow_mode` key (`team-pr` | `solo-git`, default `solo-git`). This is the **canonical integrate-mode signal** for all skills — set it once here and skills such as `release-branch` read it from this file instead of sniffing profile files.
81
+ `specs/state.yaml` carries top-level `workflow_mode` (`team-pr` | `solo-git`, default `solo-git`).
82
+ This is the **canonical integrate-mode signal** for all skills.
83
+ Set it once here. Skills such as `release-branch` read this file instead of sniffing profiles.
69
84
 
70
- When generating `CLAUDE.md`, if the user did not name a Preflight command, chain the Test + Lint + Build interview answers into one **Preflight** row (e.g. `npm test && npm run lint && npm run build`).
85
+ When generating `CLAUDE.md`, chain Test + Lint + Build into one **Preflight** row if the user named no Preflight command.
71
86
 
72
87
  ### Self-installing fenced markers (e45s21)
73
88
 
@@ -79,7 +94,9 @@ Skills that write into `CLAUDE.md` or `AGENTS.md` MUST use **fenced HTML comment
79
94
  <!-- END bigpowers:section-id -->
80
95
  ```
81
96
 
82
- **Merge rule:** On update, replace only the content *between* matching `BEGIN`/`END` pairs. If a marker pair is missing, append a new fenced block at the end of the file — never rewrite the whole file.
97
+ **Merge rule:** On update, replace only content between matching `BEGIN`/`END` pairs.
98
+ If a marker pair is missing, append a new fenced block at file end.
99
+ Never rewrite the whole file.
83
100
 
84
101
  **Standard marker IDs** for seeded projects (see [REFERENCE.md](../../../skills/seed-conventions/REFERENCE.md) § Fenced markers):
85
102
 
@@ -6,6 +6,7 @@ description: "Sequential subagent batch audit of the bigpowers skill catalog —
6
6
 
7
7
  # story: e09s01
8
8
  <!-- story: e45s12 -->
9
+ <!-- story: e79s04 -->
9
10
 
10
11
 
11
12
  # Stocktake Skills
@@ -25,6 +26,7 @@ Audit SKILL.md catalog for drift, stale triggers, missing HARD GATEs, and INDEX
25
26
  ## Process
26
27
 
27
28
  0. **Catalog validator (code-enforced)** — run `bash scripts/validate-skill-catalog.sh`. Any FAIL is a critical finding before manual review. Add `--archive` to list zero-usage skills from `metrics.skill_timings` for auto-archiving candidates (move to `specs/epics/archive/` or delete after user confirms).
29
+ 0b. **Agentic STE audit (e79s04)** — run `bash scripts/validate-agentic-ste.sh --audit skills/`. Flag hedge words and sentences over 20 words per [AGENTIC-STE.md](../../../docs/AGENTIC-STE.md). Record WARN lines in the stocktake report as **STE debt** — do NOT rewrite the full catalog in one pass. Route critical repeat offenders to `evolve-skill`.
28
30
  1. Run `bash scripts/audit-catalog.sh` to verify pi/skills ↔ source SKILL.md sync. Mismatch is a critical finding.
29
31
  2. Run mode; for each skill check: exists, verb-noun, &lt;300 lines total, HARD GATE present, INDEX row matches.
30
32
  3. Write `specs/STOCKTAKE-<date>.md` with findings table (skill, issue, severity).