bigpowers 2.77.0 → 2.77.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.
- package/.pi/package.json +1 -1
- package/.pi/prompts/audit-code.md +1 -1
- package/.pi/prompts/craft-skill.md +2 -2
- package/.pi/prompts/elaborate-spec.md +1 -1
- package/.pi/prompts/evolve-skill.md +1 -1
- package/.pi/prompts/grill-me.md +1 -1
- package/.pi/prompts/guard-git.md +1 -1
- package/.pi/prompts/investigate-bug.md +2 -2
- package/.pi/prompts/model-domain.md +3 -3
- package/.pi/prompts/plan-refactor.md +2 -2
- package/.pi/prompts/plan-release.md +2 -2
- package/.pi/prompts/using-bigpowers.md +1 -1
- package/.pi/prompts/write-document.md +2 -2
- package/.pi/skills/audit-code/SKILL.md +1 -1
- package/.pi/skills/change-request/SKILL.md +1 -1
- package/.pi/skills/commit-message/SKILL.md +3 -3
- package/.pi/skills/compose-workflow/SKILL.md +1 -1
- package/.pi/skills/craft-skill/SKILL.md +4 -4
- package/.pi/skills/deepen-architecture/SKILL.md +13 -13
- package/.pi/skills/deploy/SKILL.md +4 -4
- package/.pi/skills/develop-tdd/SKILL.md +5 -5
- package/.pi/skills/elaborate-spec/SKILL.md +1 -1
- package/.pi/skills/evolve-skill/SKILL.md +2 -2
- package/.pi/skills/extract-design/SKILL.md +1 -1
- package/.pi/skills/generate-allure-report/SKILL.md +1 -1
- package/.pi/skills/grill-me/SKILL.md +2 -2
- package/.pi/skills/grill-with-docs/SKILL.md +1 -1
- package/.pi/skills/guard-git/SKILL.md +5 -5
- package/.pi/skills/harden-vps/SKILL.md +1 -1
- package/.pi/skills/investigate-bug/SKILL.md +2 -2
- package/.pi/skills/migrate-spec/SKILL.md +13 -13
- package/.pi/skills/model-domain/SKILL.md +5 -5
- package/.pi/skills/orchestrate-project/SKILL.md +2 -2
- package/.pi/skills/organize-workspace/SKILL.md +1 -1
- package/.pi/skills/plan-refactor/SKILL.md +2 -2
- package/.pi/skills/plan-release/SKILL.md +2 -2
- package/.pi/skills/plan-work/SKILL.md +2 -2
- package/.pi/skills/publish-package/SKILL.md +8 -8
- package/.pi/skills/release-branch/SKILL.md +2 -2
- package/.pi/skills/research-first/SKILL.md +1 -1
- package/.pi/skills/run-evals/SKILL.md +1 -1
- package/.pi/skills/security-review/SKILL.md +3 -3
- package/.pi/skills/seed-conventions/SKILL.md +3 -3
- package/.pi/skills/smoke-test/SKILL.md +5 -5
- package/.pi/skills/stocktake-skills/SKILL.md +1 -1
- package/.pi/skills/using-bigpowers/SKILL.md +1 -1
- package/.pi/skills/validate-contracts/SKILL.md +6 -6
- package/.pi/skills/verify-work/SKILL.md +1 -1
- package/.pi/skills/wire-ci/SKILL.md +8 -8
- package/.pi/skills/write-document/SKILL.md +3 -3
- package/CHANGELOG.md +7 -0
- package/package.json +4 -3
- package/scripts/adapters/pi.sh +4 -1
- package/scripts/check-skill-links.py +78 -0
- package/scripts/generate-reference-tables.sh +2 -1
- package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
- package/scripts/lib/link_utils.py +49 -0
- package/scripts/lib/srp-engine.py +86 -1
- package/skills/audit-code/SKILL.md +1 -1
- package/skills/craft-skill/SKILL.md +2 -2
- package/skills/elaborate-spec/SKILL.md +1 -1
- package/skills/evolve-skill/REFERENCE.md +1 -1
- package/skills/grill-me/REFERENCE.md +1 -1
- package/skills/guard-git/SKILL.md +1 -1
- package/skills/investigate-bug/SKILL.md +2 -2
- package/skills/model-domain/CONTEXT-FORMAT.md +3 -3
- package/skills/plan-refactor/SKILL.md +2 -2
- package/skills/plan-release/SKILL.md +2 -2
- package/skills/using-bigpowers/SKILL.md +1 -1
- package/skills/write-document/REFERENCE.md +2 -2
- package/skills-lock.json +8 -8
- package/tests/test_srp_engine.py +148 -0
|
@@ -56,13 +56,13 @@ If none found: ask the user which framework before proceeding.
|
|
|
56
56
|
|
|
57
57
|
List every artifact found matching the detected framework. Present the list to the user:
|
|
58
58
|
|
|
59
|
-
See [REFERENCE.md](REFERENCE.md) — `Detected: GSD...`
|
|
59
|
+
See [REFERENCE.md](../../../skills/migrate-spec/REFERENCE.md) — `Detected: GSD...`
|
|
60
60
|
|
|
61
61
|
→ verify: `find . -maxdepth 4 \( -name "ROADMAP.md" -o -name "spec.md" -o -name "prd.md" -o -name "REQUIREMENTS.md" \) 2>/dev/null | grep -v ".git" | head -15`
|
|
62
62
|
|
|
63
63
|
### Step 3 — Transform (one artifact at a time, show diffs)
|
|
64
64
|
|
|
65
|
-
Apply the mapping from [REFERENCE.md](
|
|
65
|
+
Apply the mapping from [REFERENCE.md](../../../skills/migrate-spec/REFERENCE.md) and [REFERENCE-GSD.md](../../../skills/migrate-spec/REFERENCE-GSD.md). For each target file:
|
|
66
66
|
|
|
67
67
|
1. Show what will be created or appended (title + first 20 lines).
|
|
68
68
|
2. Ask: "Create this? [yes / edit / skip]"
|
|
@@ -72,25 +72,25 @@ Apply the mapping from [REFERENCE.md](./REFERENCE.md) and [REFERENCE-GSD.md](./R
|
|
|
72
72
|
|
|
73
73
|
When source artifacts contain IDs (REQ-XX, FR-XX, UJ-XX), emit them as **first-class YAML fields** in `in_scope` entries, not YAML comments:
|
|
74
74
|
|
|
75
|
-
See [REFERENCE.md](REFERENCE.md) — `# CORRECT — first-class id: field...`
|
|
75
|
+
See [REFERENCE.md](../../../skills/migrate-spec/REFERENCE.md) — `# CORRECT — first-class id: field...`
|
|
76
76
|
|
|
77
77
|
**When source has no IDs:** Prompt the user: "No IDs found. Assign auto-generated IDs? [yes / no]". If yes, emit `REQ-{NNN}` with `# auto-generated` annotation.
|
|
78
78
|
|
|
79
79
|
**When source has MIXED IDs:** Items with IDs get `id:` fields; items without IDs receive auto-generated `REQ-NNN` entries. Document which were auto-generated in a comment block at the top of `in_scope`.
|
|
80
80
|
|
|
81
|
-
See [REFERENCE.md — in_scope format with ID tracking](
|
|
81
|
+
See [REFERENCE.md — in_scope format with ID tracking](../../../skills/migrate-spec/REFERENCE.md#in_scope-format-with-id-tracking) for examples.
|
|
82
82
|
|
|
83
83
|
#### Traceability Output (FR-XX, UJ-XX)
|
|
84
84
|
|
|
85
85
|
When source has FR-XX or UJ-XX IDs, emit `specs/product/REQUIREMENTS_TRACE.yaml` for end-to-end requirement traceability:
|
|
86
86
|
|
|
87
|
-
See [REFERENCE.md](REFERENCE.md) — `trace:...`
|
|
87
|
+
See [REFERENCE.md](../../../skills/migrate-spec/REFERENCE.md) — `trace:...`
|
|
88
88
|
|
|
89
89
|
**Existing trace file:** If `REQUIREMENTS_TRACE.yaml` already exists, prompt: "REQUIREMENTS_TRACE.yaml exists. [overwrite / merge / skip]"
|
|
90
90
|
|
|
91
91
|
**No FR-XX/UJ-XX found:** Skip trace file; add note to state.yaml handoff: "No FR-XX/UJ-XX IDs found — traceability file skipped".
|
|
92
92
|
|
|
93
|
-
See [REFERENCE.md — REQUIREMENTS_TRACE.yaml format](
|
|
93
|
+
See [REFERENCE.md — REQUIREMENTS_TRACE.yaml format](../../../skills/migrate-spec/REFERENCE.md#requirements_traceyaml-format) for the complete schema.
|
|
94
94
|
|
|
95
95
|
> **HARD GATE** — Never overwrite an existing `specs/` file without explicit user confirmation. Merge into it if it exists; don't clobber.
|
|
96
96
|
>
|
|
@@ -102,11 +102,11 @@ See [REFERENCE.md — REQUIREMENTS_TRACE.yaml format](./REFERENCE.md#requirement
|
|
|
102
102
|
|
|
103
103
|
Always regenerate `specs/state.yaml` from scratch in bigpowers YAML format (see REFERENCE.md for template). The **handoff block is mandatory** and must include all four fields:
|
|
104
104
|
|
|
105
|
-
See [REFERENCE.md](REFERENCE.md) — `active_flow: null...`
|
|
105
|
+
See [REFERENCE.md](../../../skills/migrate-spec/REFERENCE.md) — `active_flow: null...`
|
|
106
106
|
|
|
107
107
|
If no open decisions were found during migration, the `open_decisions` list may be empty with an explanatory comment:
|
|
108
108
|
|
|
109
|
-
See [REFERENCE.md](REFERENCE.md) — `handoff:...`
|
|
109
|
+
See [REFERENCE.md](../../../skills/migrate-spec/REFERENCE.md) — `handoff:...`
|
|
110
110
|
|
|
111
111
|
→ verify: `grep -q 'handoff:' specs/state.yaml && grep -q 'last_step_completed' specs/state.yaml && echo "ok" || echo "MISSING or INCOMPLETE: handoff block"`
|
|
112
112
|
|
|
@@ -116,7 +116,7 @@ See [REFERENCE.md](REFERENCE.md) — `handoff:...`
|
|
|
116
116
|
|
|
117
117
|
Full artifact transformation rules for migrating GSD projects to bigpowers YAML layout.
|
|
118
118
|
|
|
119
|
-
See [REFERENCE.md](
|
|
119
|
+
See [REFERENCE.md](../../../skills/migrate-spec/REFERENCE.md) for spec-kit, BMAD, learnings, and ADR/DECISION-LOG formats.
|
|
120
120
|
|
|
121
121
|
---
|
|
122
122
|
|
|
@@ -162,7 +162,7 @@ Transform:
|
|
|
162
162
|
GSD REQUIREMENTS has: REQ-XX IDs, Validated/Active/Out-of-Scope categories, traceability.
|
|
163
163
|
|
|
164
164
|
Transform:
|
|
165
|
-
- Preserve REQ-XX IDs as **first-class `id:` fields** in `in_scope` entries (see [REFERENCE.md — ID tracking format](
|
|
165
|
+
- Preserve REQ-XX IDs as **first-class `id:` fields** in `in_scope` entries (see [REFERENCE.md — ID tracking format](../../../skills/migrate-spec/REFERENCE.md#in_scope-format-with-id-tracking))
|
|
166
166
|
- Validated requirements → `in_scope` entries with `id:`, `description:`, `source:` fields
|
|
167
167
|
- Out-of-Scope → `out_of_scope` entries (preserve IDs if present)
|
|
168
168
|
- Active (in-progress) → `in_scope` with status note
|
|
@@ -264,7 +264,7 @@ These GSD artifacts are not migrated — they are execution records, not plannin
|
|
|
264
264
|
|
|
265
265
|
Transformation rules for spec-kit and BMAD projects, plus learnings to adopt and output formats.
|
|
266
266
|
|
|
267
|
-
See [REFERENCE-GSD.md](
|
|
267
|
+
See [REFERENCE-GSD.md](../../../skills/migrate-spec/REFERENCE-GSD.md) for full GSD → bigpowers YAML mapping.
|
|
268
268
|
|
|
269
269
|
---
|
|
270
270
|
|
|
@@ -776,7 +776,7 @@ If **no**, skip. Add note to handoff: "Methodology doc: skipped — can be added
|
|
|
776
776
|
|
|
777
777
|
## Artifact Mapping Summary
|
|
778
778
|
|
|
779
|
-
Full mapping tables: [REFERENCE-GSD.md](
|
|
779
|
+
Full mapping tables: [REFERENCE-GSD.md](../../../skills/migrate-spec/REFERENCE-GSD.md) (GSD) · [REFERENCE.md](../../../skills/migrate-spec/REFERENCE.md) (spec-kit, BMAD, learnings).
|
|
780
780
|
|
|
781
781
|
| Source | Target |
|
|
782
782
|
|--------|--------|
|
|
@@ -814,7 +814,7 @@ Full mapping tables: [REFERENCE-GSD.md](./REFERENCE-GSD.md) (GSD) · [REFERENCE.
|
|
|
814
814
|
|
|
815
815
|
After migration, offer the user a brief analysis of what the source framework did that bigpowers doesn't have yet.
|
|
816
816
|
|
|
817
|
-
Use the learnings table from [REFERENCE.md](
|
|
817
|
+
Use the learnings table from [REFERENCE.md](../../../skills/migrate-spec/REFERENCE.md#learnings-to-adopt). Present as checkboxes so the user can decide which to adopt.
|
|
818
818
|
|
|
819
819
|
→ verify: `grep -c "\- \[ \]" specs/state.yaml 2>/dev/null && echo "pending items recorded" || echo "no pending items in state.yaml"`
|
|
820
820
|
|
|
@@ -74,7 +74,7 @@ When the user states how something works, check whether the code agrees. If you
|
|
|
74
74
|
|
|
75
75
|
### Update specs/tech-architecture/tech-stack.md inline
|
|
76
76
|
|
|
77
|
-
When a term is resolved, update `specs/tech-architecture/tech-stack.md` right there. Don't batch these up — capture them as they happen. Use the format in [CONTEXT-FORMAT.md](
|
|
77
|
+
When a term is resolved, update `specs/tech-architecture/tech-stack.md` right there. Don't batch these up — capture them as they happen. Use the format in [CONTEXT-FORMAT.md](../../../skills/model-domain/CONTEXT-FORMAT.md).
|
|
78
78
|
|
|
79
79
|
Don't couple `specs/tech-architecture/tech-stack.md` to implementation details. Only include terms that are meaningful to domain experts.
|
|
80
80
|
|
|
@@ -86,7 +86,7 @@ Only offer to create an ADR when all three are true:
|
|
|
86
86
|
2. **Surprising without context** — a future reader will wonder "why did they do it this way?"
|
|
87
87
|
3. **The result of a real trade-off** — there were genuine alternatives and you picked one for specific reasons
|
|
88
88
|
|
|
89
|
-
If any of the three is missing, skip the ADR. Use the format in [ADR-FORMAT.md](
|
|
89
|
+
If any of the three is missing, skip the ADR. Use the format in [ADR-FORMAT.md](../../../skills/model-domain/ADR-FORMAT.md).
|
|
90
90
|
|
|
91
91
|
## Concurrency safety audit
|
|
92
92
|
|
|
@@ -212,9 +212,9 @@ _Avoid_: Client, buyer, account
|
|
|
212
212
|
|
|
213
213
|
## Contexts
|
|
214
214
|
|
|
215
|
-
-
|
|
216
|
-
-
|
|
217
|
-
-
|
|
215
|
+
- Ordering — `src/ordering/CONTEXT.md` — receives and tracks customer orders
|
|
216
|
+
- Billing — `src/billing/CONTEXT.md` — generates invoices and processes payments
|
|
217
|
+
- Fulfillment — `src/fulfillment/CONTEXT.md` — manages warehouse picking and shipping
|
|
218
218
|
|
|
219
219
|
## Relationships
|
|
220
220
|
|
|
@@ -40,7 +40,7 @@ Track progress via `specs/state.yaml` `project_cycle`:
|
|
|
40
40
|
- `handoff.next_skill`: skill for the current phase
|
|
41
41
|
- On resume, read `project_cycle.current_phase` and continue from there
|
|
42
42
|
|
|
43
|
-
See [REFERENCE.md](REFERENCE.md) for detailed phase specifications and gate types.
|
|
43
|
+
See [REFERENCE.md](../../../skills/orchestrate-project/REFERENCE.md) for detailed phase specifications and gate types.
|
|
44
44
|
|
|
45
45
|
## How Orchestrate Works
|
|
46
46
|
|
|
@@ -58,7 +58,7 @@ See [REFERENCE.md](REFERENCE.md) for detailed phase specifications and gate type
|
|
|
58
58
|
- **Fast-Track**: Skip negotiable gates. Use for hotfixes and minor improvements.
|
|
59
59
|
- **Ad-Hoc**: Warnings only. Use for prototyping and spikes (non-production).
|
|
60
60
|
|
|
61
|
-
See [REFERENCE.md](REFERENCE.md) for full mode behaviors.
|
|
61
|
+
See [REFERENCE.md](../../../skills/orchestrate-project/REFERENCE.md) for full mode behaviors.
|
|
62
62
|
|
|
63
63
|
## Verification
|
|
64
64
|
|
|
@@ -74,7 +74,7 @@ Do this when the repo is under Git and the cleanup surfaced **untracked** noise:
|
|
|
74
74
|
4. **User must approve** the exact diff before editing the file.
|
|
75
75
|
5. **Verify**: run `git check-ignore -v <path>` on 2–3 representative paths.
|
|
76
76
|
|
|
77
|
-
See [REFERENCE.md](REFERENCE.md) for shell patterns, `.gitignore` mechanics, and safety checks.
|
|
77
|
+
See [REFERENCE.md](../../../skills/organize-workspace/REFERENCE.md) for shell patterns, `.gitignore` mechanics, and safety checks.
|
|
78
78
|
|
|
79
79
|
|
|
80
80
|
|
|
@@ -81,7 +81,7 @@ After writing `specs/REFACTOR_LATEST.md`, suggest running `kickoff-branch` next
|
|
|
81
81
|
|
|
82
82
|
<!-- story: e35s10 -->
|
|
83
83
|
|
|
84
|
-
- [Fowler's Refactoring Catalog](
|
|
85
|
-
- [Beck's Tidy First?](
|
|
84
|
+
- [Fowler's Refactoring Catalog](https://github.com/danielvm-git/bigpowers/blob/main/docs/references/fowler.md) — canonical refactoring vocabulary and code-smell taxonomy
|
|
85
|
+
- [Beck's Tidy First?](https://github.com/danielvm-git/bigpowers/blob/main/docs/references/kent-beck.md) — structural change before behavioral change
|
|
86
86
|
|
|
87
87
|
## Verify
|
|
@@ -17,7 +17,7 @@ Synthesize the conversation context into `specs/release-plan.yaml` (index) and s
|
|
|
17
17
|
|------|---------|
|
|
18
18
|
| `specs/release-plan.yaml` | `release.version`, semver bump hint, WSJF-ordered epic list with `id`, `capsule_dir`, `wsjf`, `bcps` — **no story status** |
|
|
19
19
|
| `specs/epics/eNN-<slug>/epic.yaml` | Epic manifest: `id`, `title`, `wsjf`, `total_bcps`, `status`, `stories[]` list |
|
|
20
|
-
| `specs/epics/eNN-<slug>/eNNsYY-<slug>.md` | Story spec in [countable-story-format.md](
|
|
20
|
+
| `specs/epics/eNN-<slug>/eNNsYY-<slug>.md` | Story spec in [countable-story-format.md](https://github.com/danielvm-git/bigpowers/blob/main/docs/countable-story-format.md) with 20 sections and Gherkin acceptance criteria |
|
|
21
21
|
| `specs/epics/eNN-<slug>/eNNsYY-tasks.yaml` | Decoupled task checklist with `verify:` commands per task |
|
|
22
22
|
| `specs/execution-status.yaml` | Flat key-value store for story status (`eNNsYY: todo`) |
|
|
23
23
|
|
|
@@ -102,7 +102,7 @@ stories:
|
|
|
102
102
|
```
|
|
103
103
|
### 6. Save story specs (countable-story-format .md)
|
|
104
104
|
|
|
105
|
-
Each story becomes a standalone `.md` file following [countable-story-format.md](
|
|
105
|
+
Each story becomes a standalone `.md` file following [countable-story-format.md](https://github.com/danielvm-git/bigpowers/blob/main/docs/countable-story-format.md). Minimum: maturity 3 (Countable) with all 20 sections present. Acceptance criteria in §17 use Gherkin scenarios.
|
|
106
106
|
### 7. Save decoupled task files (`-tasks.yaml`)
|
|
107
107
|
|
|
108
108
|
Each story has a decoupled `-tasks.yaml` with implementation steps:
|
|
@@ -45,7 +45,7 @@ If this plan touches an existing module, run `assess-impact` first to understand
|
|
|
45
45
|
|
|
46
46
|
2. **Draft steps** — Break implementation into the smallest possible steps where each step leaves the codebase working, has one observable outcome, and can be verified with a single command. Red-flag check: name any rationalization you caught before moving to step 3.
|
|
47
47
|
|
|
48
|
-
3. **Write capsule story spec + tasks** — Output two files inside the active epic capsule. See [REFERENCE.md](REFERENCE.md) for file formats and the plan-template. Each task MUST include a `risk:` field (`P0` | `P1` | `P2` | `P3`) based on BCP + story type heuristics (see REFERENCE.md). If a test plan artifact (`specs/tech-architecture/eNN-TEST_PLAN_LATEST.md`) exists, read it and inherit its P0/P1 risk classifications and scenario IDs (`SC-eNNsYY-P0-NN`). Each task optionally includes a `security:` field (`none` / `low` / `medium` / `high`) sourced from the epic's `specs/security/epics/<id>/THREAT_MODEL.md`. Tasks with `security: medium` or `security: high` MUST include "no new security findings in affected paths" in their verify steps. Each task should also include an `allure:` block to drive test reporting: `severity:` maps risk to Allure severity (`P0→critical`, `P1→high`, `P2→normal`, `P3→minor`), and `categories:` is a list of relevant tags like `"Security Review"`, wave names, or test categories (see REFERENCE.md for the full template).
|
|
48
|
+
3. **Write capsule story spec + tasks** — Output two files inside the active epic capsule. See [REFERENCE.md](../../../skills/plan-work/REFERENCE.md) for file formats and the plan-template. Each task MUST include a `risk:` field (`P0` | `P1` | `P2` | `P3`) based on BCP + story type heuristics (see REFERENCE.md). If a test plan artifact (`specs/tech-architecture/eNN-TEST_PLAN_LATEST.md`) exists, read it and inherit its P0/P1 risk classifications and scenario IDs (`SC-eNNsYY-P0-NN`). Each task optionally includes a `security:` field (`none` / `low` / `medium` / `high`) sourced from the epic's `specs/security/epics/<id>/THREAT_MODEL.md`. Tasks with `security: medium` or `security: high` MUST include "no new security findings in affected paths" in their verify steps. Each task should also include an `allure:` block to drive test reporting: `severity:` maps risk to Allure severity (`P0→critical`, `P1→high`, `P2→normal`, `P3→minor`), and `categories:` is a list of relevant tags like `"Security Review"`, wave names, or test categories (see REFERENCE.md for the full template).
|
|
49
49
|
|
|
50
50
|
**Requirement delta tags (e45s29):** When a story modifies existing behavior, the story spec § Requirements MUST use OpenSpec-style delta tags with mandatory before/after content:
|
|
51
51
|
|
|
@@ -58,7 +58,7 @@ If this plan touches an existing module, run `assess-impact` first to understand
|
|
|
58
58
|
|
|
59
59
|
Net-new stories (greenfield) use `ADDED` only. `MODIFIED`/`REMOVED`/`RENAMED` without before/after blocks fail the plan-work gate.
|
|
60
60
|
|
|
61
|
-
4. **Verify step format** — Every step MUST follow: `N. <What to do> → verify: <runnable command>`. See [REFERENCE.md](REFERENCE.md) for good/bad examples.
|
|
61
|
+
4. **Verify step format** — Every step MUST follow: `N. <What to do> → verify: <runnable command>`. See [REFERENCE.md](../../../skills/plan-work/REFERENCE.md) for good/bad examples.
|
|
62
62
|
|
|
63
63
|
4a. **Cross-artifact consistency pass (HARD GATE — e45s04)** — Before handoff, run:
|
|
64
64
|
|
|
@@ -33,41 +33,41 @@ If no manifest is found, prompt the user to specify the type or pass `--type <np
|
|
|
33
33
|
Before attempting any publish, run all applicable checks:
|
|
34
34
|
|
|
35
35
|
**npm (`package.json`):**
|
|
36
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
36
|
+
See [REFERENCE.md](../../../skills/publish-package/REFERENCE.md)
|
|
37
37
|
|
|
38
38
|
**crates.io (`Cargo.toml`):**
|
|
39
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
39
|
+
See [REFERENCE.md](../../../skills/publish-package/REFERENCE.md)
|
|
40
40
|
|
|
41
41
|
**PyPI (`setup.py` / `pyproject.toml`):**
|
|
42
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
42
|
+
See [REFERENCE.md](../../../skills/publish-package/REFERENCE.md)
|
|
43
43
|
|
|
44
44
|
### 3. Run publish
|
|
45
45
|
|
|
46
46
|
After all prerequisite checks pass, run the registry-specific command:
|
|
47
47
|
|
|
48
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
48
|
+
See [REFERENCE.md](../../../skills/publish-package/REFERENCE.md)
|
|
49
49
|
|
|
50
50
|
### 4. Verify publish success
|
|
51
51
|
|
|
52
52
|
After publish, confirm the version appears on the registry:
|
|
53
53
|
|
|
54
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
54
|
+
See [REFERENCE.md](../../../skills/publish-package/REFERENCE.md)
|
|
55
55
|
|
|
56
56
|
### 5. Error handling
|
|
57
57
|
|
|
58
58
|
On failure, surface actionable hints:
|
|
59
59
|
|
|
60
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
60
|
+
See [REFERENCE.md](../../../skills/publish-package/REFERENCE.md)
|
|
61
61
|
|
|
62
62
|
### 6. Dry-run mode (`--dry-run`)
|
|
63
63
|
|
|
64
64
|
Run `--dry-run` to verify all prerequisites without actually publishing:
|
|
65
65
|
|
|
66
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
66
|
+
See [REFERENCE.md](../../../skills/publish-package/REFERENCE.md)
|
|
67
67
|
|
|
68
68
|
### 7. Dry-run mode per registry
|
|
69
69
|
|
|
70
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
70
|
+
See [REFERENCE.md](../../../skills/publish-package/REFERENCE.md)
|
|
71
71
|
|
|
72
72
|
## Verify
|
|
73
73
|
|
|
@@ -120,7 +120,7 @@ mv specs/epics/eNN-slug specs/epics/archive/
|
|
|
120
120
|
|
|
121
121
|
### 7b. CI verification & agent lock release (e39s02)
|
|
122
122
|
|
|
123
|
-
> **HARD GATE** — Do NOT declare success until CI completes. **Three-independent-facts** (e45s15): commit landed, workflow green, registry visible — see [REFERENCE.md](REFERENCE.md#three-independent-facts-release).
|
|
123
|
+
> **HARD GATE** — Do NOT declare success until CI completes. **Three-independent-facts** (e45s15): commit landed, workflow green, registry visible — see [REFERENCE.md](../../../skills/release-branch/REFERENCE.md#three-independent-facts-release).
|
|
124
124
|
|
|
125
125
|
```bash
|
|
126
126
|
bash scripts/wait-for-ci.sh --timeout 600 --interval 30
|
|
@@ -131,7 +131,7 @@ bash scripts/wait-for-ci.sh --timeout 600 --interval 30
|
|
|
131
131
|
|
|
132
132
|
### 8. Clean up & return
|
|
133
133
|
|
|
134
|
-
Worktree prune, branch delete, `git checkout main`. Cycle-time: see [REFERENCE.md](REFERENCE.md#cycle-time).
|
|
134
|
+
Worktree prune, branch delete, `git checkout main`. Cycle-time: see [REFERENCE.md](../../../skills/release-branch/REFERENCE.md#cycle-time).
|
|
135
135
|
|
|
136
136
|
Report: "Branch released."
|
|
137
137
|
|
|
@@ -52,7 +52,7 @@ If opensrc is not installed or the package is not cached, fall through to web do
|
|
|
52
52
|
|
|
53
53
|
→ verify: `grep -c "Prior Art" specs/product/SCOPE_LATEST.yaml specs/release-plan.yaml + epic shards 2>/dev/null | awk '{s+=$1} END {if(s>0) print "OK"; else print "MISSING"}'`
|
|
54
54
|
|
|
55
|
-
See [REFERENCE.md](REFERENCE.md) for search commands and registry checklist.
|
|
55
|
+
See [REFERENCE.md](../../../skills/research-first/REFERENCE.md) for search commands and registry checklist.
|
|
56
56
|
|
|
57
57
|
---
|
|
58
58
|
|
|
@@ -30,7 +30,7 @@ description: "Eval-Driven Development — define capability and regression evals
|
|
|
30
30
|
|
|
31
31
|
## Artefact
|
|
32
32
|
|
|
33
|
-
`specs/verifications/eNNsYY-eval-report.md` — see [REFERENCE.md](REFERENCE.md) for template. Eval reports are stored alongside verification evidence in `specs/verifications/`, keyed by story ID for traceability.
|
|
33
|
+
`specs/verifications/eNNsYY-eval-report.md` — see [REFERENCE.md](../../../skills/run-evals/REFERENCE.md) for template. Eval reports are stored alongside verification evidence in `specs/verifications/`, keyed by story ID for traceability.
|
|
34
34
|
|
|
35
35
|
## Verify
|
|
36
36
|
|
|
@@ -103,9 +103,9 @@ Each finding: **`File:Line` — Severity — Category**
|
|
|
103
103
|
|
|
104
104
|
## Reference files
|
|
105
105
|
|
|
106
|
-
- [Vuln categories](REFERENCE-vuln-categories.md) — detection guidance per vuln type
|
|
107
|
-
- [False positives](REFERENCE-false-positives.md) — hard exclusions + precedent
|
|
108
|
-
- [Confidence rubric](REFERENCE-confidence-rubric.md) — scoring methodology (0–10)
|
|
106
|
+
- [Vuln categories](../../../skills/security-review/REFERENCE-vuln-categories.md) — detection guidance per vuln type
|
|
107
|
+
- [False positives](../../../skills/security-review/REFERENCE-false-positives.md) — hard exclusions + precedent
|
|
108
|
+
- [Confidence rubric](../../../skills/security-review/REFERENCE-confidence-rubric.md) — scoring methodology (0–10)
|
|
109
109
|
|
|
110
110
|
## Verify
|
|
111
111
|
|
|
@@ -37,11 +37,11 @@ Ask the user these questions (one at a time, wait for each answer):
|
|
|
37
37
|
5. **Conventions** — "Any naming, file organization, or patterns all agents must follow?"
|
|
38
38
|
6. **Never-do list** — "What are the hard stops? Things an agent must never touch?"
|
|
39
39
|
7. **Defensive code categories** — "Which apply? (Rate limit / Retry / Circuit breaker / Timeout / Graceful degradation)"
|
|
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
|
+
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
41
|
|
|
42
42
|
## Generate files
|
|
43
43
|
|
|
44
|
-
After the interview, generate each file using the templates in [REFERENCE.md](REFERENCE.md):
|
|
44
|
+
After the interview, generate each file using the templates in [REFERENCE.md](../../../skills/seed-conventions/REFERENCE.md):
|
|
45
45
|
- `AGENTS.md` — from `docs/templates/AGENTS.md` Reach Template (canonical spine source)
|
|
46
46
|
- `CLAUDE.md` — symlink to `AGENTS.md` (copy fallback on Windows when symlink fails)
|
|
47
47
|
- `GEMINI.md` — symlink to `AGENTS.md` when Gemini wiring opted in
|
|
@@ -81,7 +81,7 @@ Skills that write into `CLAUDE.md` or `AGENTS.md` MUST use **fenced HTML comment
|
|
|
81
81
|
|
|
82
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.
|
|
83
83
|
|
|
84
|
-
**Standard marker IDs** for seeded projects (see [REFERENCE.md](REFERENCE.md) § Fenced markers):
|
|
84
|
+
**Standard marker IDs** for seeded projects (see [REFERENCE.md](../../../skills/seed-conventions/REFERENCE.md) § Fenced markers):
|
|
85
85
|
|
|
86
86
|
| Marker ID | Owner skill | Purpose |
|
|
87
87
|
|-----------|-------------|---------|
|
|
@@ -21,7 +21,7 @@ Can be run standalone for quick health checks or chained as the final step of th
|
|
|
21
21
|
|
|
22
22
|
Smoke checks are defined in `smoke-checks.yaml` at the project root:
|
|
23
23
|
|
|
24
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
24
|
+
See [REFERENCE.md](../../../skills/smoke-test/REFERENCE.md)
|
|
25
25
|
|
|
26
26
|
Checks can also be specified inline via environment variables or CLI arguments for ad-hoc use.
|
|
27
27
|
|
|
@@ -40,21 +40,21 @@ Checks can also be specified inline via environment variables or CLI arguments f
|
|
|
40
40
|
|
|
41
41
|
### 1. Load smoke checks
|
|
42
42
|
|
|
43
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
43
|
+
See [REFERENCE.md](../../../skills/smoke-test/REFERENCE.md)
|
|
44
44
|
|
|
45
45
|
### 2. Run each check
|
|
46
46
|
|
|
47
47
|
For each check in the configuration, perform an HTTP request:
|
|
48
48
|
|
|
49
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
49
|
+
See [REFERENCE.md](../../../skills/smoke-test/REFERENCE.md)
|
|
50
50
|
|
|
51
51
|
### 3. Assert results
|
|
52
52
|
|
|
53
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
53
|
+
See [REFERENCE.md](../../../skills/smoke-test/REFERENCE.md)
|
|
54
54
|
|
|
55
55
|
### 4. Generate report
|
|
56
56
|
|
|
57
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
57
|
+
See [REFERENCE.md](../../../skills/smoke-test/REFERENCE.md)
|
|
58
58
|
|
|
59
59
|
## Integration with deploy skill
|
|
60
60
|
|
|
@@ -58,7 +58,7 @@ Timing data is populated by `scripts/bp-timing.sh start|end <skill>` calls withi
|
|
|
58
58
|
|
|
59
59
|
→ verify: `test -f specs/STOCKTAKE-*.md && bash scripts/validate-skill-catalog.sh && echo OK || echo MISSING`
|
|
60
60
|
|
|
61
|
-
See [REFERENCE.md](REFERENCE.md) for checklist.
|
|
61
|
+
See [REFERENCE.md](../../../skills/stocktake-skills/REFERENCE.md) for checklist.
|
|
62
62
|
|
|
63
63
|
---
|
|
64
64
|
|
|
@@ -77,7 +77,7 @@ UTILITY terse-mode / craft-skill / edit-document (any phase)
|
|
|
77
77
|
|
|
78
78
|
If you work alone and do not want PR ceremony every task:
|
|
79
79
|
|
|
80
|
-
1. Read [profiles/solo-git.md](
|
|
80
|
+
1. Read [profiles/solo-git.md](../../../profiles/solo-git.md).
|
|
81
81
|
2. Register with `compose-workflow` → `specs/WORKFLOW-solo-git.md`.
|
|
82
82
|
3. Ship with `release-branch` in **solo-local** mode (`land-branch.sh`), not `gh pr create`.
|
|
83
83
|
|
|
@@ -28,13 +28,13 @@ Three modes of validation:
|
|
|
28
28
|
|
|
29
29
|
All contract files live in `specs/contracts/` and use YAML:
|
|
30
30
|
|
|
31
|
-
See [REFERENCE.md](REFERENCE.md) for examples.
|
|
31
|
+
See [REFERENCE.md](../../../skills/validate-contracts/REFERENCE.md) for examples.
|
|
32
32
|
|
|
33
33
|
### 1. API Response Contracts (`--schema`)
|
|
34
34
|
|
|
35
35
|
Define expected API response shapes and validate live endpoints against them:
|
|
36
36
|
|
|
37
|
-
See [REFERENCE.md](REFERENCE.md) for examples.
|
|
37
|
+
See [REFERENCE.md](../../../skills/validate-contracts/REFERENCE.md) for examples.
|
|
38
38
|
|
|
39
39
|
Usage:
|
|
40
40
|
|
|
@@ -48,21 +48,21 @@ validate-contracts --schema specs/contracts/users.schema.yaml --url https://api.
|
|
|
48
48
|
|
|
49
49
|
Assert that two data sources share a consistent set of keys:
|
|
50
50
|
|
|
51
|
-
See [REFERENCE.md](REFERENCE.md) for examples.
|
|
51
|
+
See [REFERENCE.md](../../../skills/validate-contracts/REFERENCE.md) for examples.
|
|
52
52
|
|
|
53
53
|
Usage:
|
|
54
54
|
|
|
55
|
-
See [REFERENCE.md](REFERENCE.md) for examples.
|
|
55
|
+
See [REFERENCE.md](../../../skills/validate-contracts/REFERENCE.md) for examples.
|
|
56
56
|
|
|
57
57
|
### 3. Data Shape Contracts (`--shape`)
|
|
58
58
|
|
|
59
59
|
Validate that a data file matches expected column types and constraints:
|
|
60
60
|
|
|
61
|
-
See [REFERENCE.md](REFERENCE.md) for examples.
|
|
61
|
+
See [REFERENCE.md](../../../skills/validate-contracts/REFERENCE.md) for examples.
|
|
62
62
|
|
|
63
63
|
Usage:
|
|
64
64
|
|
|
65
|
-
See [REFERENCE.md](REFERENCE.md) for examples.
|
|
65
|
+
See [REFERENCE.md](../../../skills/validate-contracts/REFERENCE.md) for examples.
|
|
66
66
|
|
|
67
67
|
## Process
|
|
68
68
|
|
|
@@ -137,7 +137,7 @@ for p in specs/conventions-wiki/*.md; do [ "$(basename "$p")" = "index.md" ]&&co
|
|
|
137
137
|
|
|
138
138
|
## --cli mode
|
|
139
139
|
|
|
140
|
-
CLI tools: use `--cli` when no server process. Binary detect + checklist: [REFERENCE.md](REFERENCE.md#cli-mode).
|
|
140
|
+
CLI tools: use `--cli` when no server process. Binary detect + checklist: [REFERENCE.md](../../../skills/verify-work/REFERENCE.md#cli-mode).
|
|
141
141
|
|
|
142
142
|
## Verify
|
|
143
143
|
|
|
@@ -42,25 +42,25 @@ If no manifest is found, prompt the user to specify the type or pass `--type <ru
|
|
|
42
42
|
Create `.github/workflows/ci.yaml` with standard steps derived from the project type and its manifest:
|
|
43
43
|
|
|
44
44
|
**Rust template (`Cargo.toml`):**
|
|
45
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
45
|
+
See [REFERENCE.md](../../../skills/wire-ci/REFERENCE.md)
|
|
46
46
|
|
|
47
47
|
**Node template (`package.json`):**
|
|
48
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
48
|
+
See [REFERENCE.md](../../../skills/wire-ci/REFERENCE.md)
|
|
49
49
|
|
|
50
50
|
**Python template (`setup.py` / `pyproject.toml`):**
|
|
51
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
51
|
+
See [REFERENCE.md](../../../skills/wire-ci/REFERENCE.md)
|
|
52
52
|
|
|
53
53
|
**Go template (`go.mod`):**
|
|
54
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
54
|
+
See [REFERENCE.md](../../../skills/wire-ci/REFERENCE.md)
|
|
55
55
|
|
|
56
56
|
**C/C++ template (`CMakeLists.txt`):**
|
|
57
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
57
|
+
See [REFERENCE.md](../../../skills/wire-ci/REFERENCE.md)
|
|
58
58
|
|
|
59
59
|
### 3. Generate release workflow (if semantic-release detected)
|
|
60
60
|
|
|
61
61
|
If the project has semantic-release configured (in `package.json`, `.releaserc`, or `release.config.js`), also generate `.github/workflows/release.yaml`:
|
|
62
62
|
|
|
63
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
63
|
+
See [REFERENCE.md](../../../skills/wire-ci/REFERENCE.md)
|
|
64
64
|
|
|
65
65
|
> **NPM_TOKEN is required** for publishing to npm. Without it, semantic-release will fail at the publish step. See `--validate` to check this.
|
|
66
66
|
|
|
@@ -68,7 +68,7 @@ See [REFERENCE.md](REFERENCE.md)
|
|
|
68
68
|
|
|
69
69
|
Run `wire-ci --validate` to check all generated workflow files:
|
|
70
70
|
|
|
71
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
71
|
+
See [REFERENCE.md](../../../skills/wire-ci/REFERENCE.md)
|
|
72
72
|
|
|
73
73
|
**Exit codes:**
|
|
74
74
|
- `0` — all checks pass (no errors)
|
|
@@ -79,7 +79,7 @@ See [REFERENCE.md](REFERENCE.md)
|
|
|
79
79
|
|
|
80
80
|
Attempt to run the generated workflows locally to catch errors before push:
|
|
81
81
|
|
|
82
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
82
|
+
See [REFERENCE.md](../../../skills/wire-ci/REFERENCE.md)
|
|
83
83
|
|
|
84
84
|
> **act** runs workflows in a local Docker environment — the most accurate pre-push validation.
|
|
85
85
|
> **gh workflow run** sends the workflow to GitHub but doesn't execute locally — useful for checking YAML parsing but not for testing the actual steps.
|
|
@@ -46,7 +46,7 @@ Write the document focusing on "Expert Collaboration":
|
|
|
46
46
|
### Quick README (Project READMEs only)
|
|
47
47
|
|
|
48
48
|
1. Ask: "Project name? One-sentence description?"
|
|
49
|
-
2. Generate `README.md` at project root using the template in [REFERENCE.md](REFERENCE.md) — no TOC, no second interview round.
|
|
49
|
+
2. Generate `README.md` at project root using the template in [REFERENCE.md](../../../skills/write-document/REFERENCE.md) — no TOC, no second interview round.
|
|
50
50
|
3. Fill gaps from `CLAUDE.md` commands if available; use `TODO` markers otherwise.
|
|
51
51
|
4. Output and suggest `edit-document` for polish.
|
|
52
52
|
|
|
@@ -220,7 +220,7 @@ Auto-fill from CLAUDE.md `Test` and `Lint` commands.
|
|
|
220
220
|
```markdown
|
|
221
221
|
## Changelog
|
|
222
222
|
|
|
223
|
-
See [CHANGELOG.md](CHANGELOG.md) or [Releases](https://github.com/user/repo/releases).
|
|
223
|
+
See [CHANGELOG.md](../../CHANGELOG.md) or [Releases](https://github.com/user/repo/releases).
|
|
224
224
|
```
|
|
225
225
|
|
|
226
226
|
### 13. Links
|
|
@@ -237,7 +237,7 @@ See [CHANGELOG.md](CHANGELOG.md) or [Releases](https://github.com/user/repo/rele
|
|
|
237
237
|
```markdown
|
|
238
238
|
## License
|
|
239
239
|
|
|
240
|
-
MIT — see [LICENSE](LICENSE) for details.
|
|
240
|
+
MIT — see [LICENSE](../../LICENSE) for details.
|
|
241
241
|
```
|
|
242
242
|
|
|
243
243
|
Detect from CLAUDE.md or project LICENSE file.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [2.77.1](https://github.com/danielvm-git/bigpowers/compare/v2.77.0...v2.77.1) (2026-07-19)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **scripts:** address PR [#79](https://github.com/danielvm-git/bigpowers/issues/79) dual-blind review findings ([#80](https://github.com/danielvm-git/bigpowers/issues/80)) ([a03ada9](https://github.com/danielvm-git/bigpowers/commit/a03ada962b3c6ccb9721563664c5e424c145083b)), closes [#78](https://github.com/danielvm-git/bigpowers/issues/78) [#78](https://github.com/danielvm-git/bigpowers/issues/78)
|
|
7
|
+
|
|
1
8
|
# [2.77.0](https://github.com/danielvm-git/bigpowers/compare/v2.76.3...v2.77.0) (2026-07-13)
|
|
2
9
|
|
|
3
10
|
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bigpowers",
|
|
3
|
-
"version": "2.77.
|
|
3
|
+
"version": "2.77.1",
|
|
4
4
|
"description": "73 agent skills synthesizing 17 years of software engineering discipline into a prescriptive methodology for solo developers",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"compliance": "bash scripts/audit-compliance.sh specs/verifications/features && bash scripts/validate-doctrine.sh",
|
|
7
|
+
"compliance": "bash scripts/audit-compliance.sh specs/verifications/features && bash scripts/validate-doctrine.sh && python3 scripts/check-skill-links.py",
|
|
8
8
|
"doctrine": "bash scripts/validate-doctrine.sh",
|
|
9
9
|
"sync": "bash scripts/sync-skills.sh",
|
|
10
10
|
"validate-specs": "bash scripts/validate-specs-yaml.sh",
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"dashboard:web": "node dashboard/bin/dashboard.js --web",
|
|
16
16
|
"site:dev": "cd website && npm run dev",
|
|
17
17
|
"site:build": "cd website && npm run build",
|
|
18
|
-
"site:preview": "cd website && npm run preview"
|
|
18
|
+
"site:preview": "cd website && npm run preview",
|
|
19
|
+
"check:skill-links": "python3 scripts/check-skill-links.py"
|
|
19
20
|
},
|
|
20
21
|
"keywords": [
|
|
21
22
|
"skills",
|
package/scripts/adapters/pi.sh
CHANGED
|
@@ -17,7 +17,7 @@ render_skill() {
|
|
|
17
17
|
echo "description: \"$IR_DESC_ESCAPED\""
|
|
18
18
|
echo "---"
|
|
19
19
|
echo ""
|
|
20
|
-
echo "$IR_BODY"
|
|
20
|
+
echo "${IR_BODY_SKILL:-$IR_BODY}"
|
|
21
21
|
} > "${PI_SKILLS}/$IR_NAME/SKILL.md"
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -45,6 +45,9 @@ if [[ ! -t 0 ]]; then
|
|
|
45
45
|
IR_MODEL=$(echo "$JSON_INPUT" | jq -r '.model')
|
|
46
46
|
IR_DESCRIPTION=$(echo "$JSON_INPUT" | jq -r '.description')
|
|
47
47
|
IR_BODY=$(echo "$JSON_INPUT" | jq -r '.body')
|
|
48
|
+
# Skill files get link-rewritten bodies (relative links repointed from
|
|
49
|
+
# .pi/skills/<name>/ to the shipped source tree); prompts keep the raw body.
|
|
50
|
+
IR_BODY_SKILL=$(echo "$JSON_INPUT" | jq -r '.body_pi_skill // .body')
|
|
48
51
|
IR_DESC_ESCAPED=$(echo "$IR_DESCRIPTION" | sed 's/\\/\\\\/g; s/\"/\\"/g')
|
|
49
52
|
render_skill
|
|
50
53
|
fi
|