bigpowers 2.43.0 → 2.43.2
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/plan-release.md +1 -3
- package/.pi/skills/plan-release/SKILL.md +1 -3
- package/.pi/skills/security-review/SKILL.md +1 -0
- package/CHANGELOG.md +14 -0
- package/CONTRIBUTING.md +119 -0
- package/SKILL-INDEX.md +1 -1
- package/package.json +1 -1
- package/plan-release/SKILL.md +1 -3
- package/scripts/add-model-frontmatter.sh +9 -61
- package/scripts/generate-skill-index.sh +21 -81
- package/scripts/regenerate-lockfile.sh +6 -1
- package/scripts/sync-skills.sh +7 -0
- package/security-review/SKILL.md +1 -0
- package/skills-lock.json +2 -2
package/.pi/package.json
CHANGED
|
@@ -6,7 +6,6 @@ description: "RELEASE-INDEX BUILDER — Sequence elaborated epics into specs/rel
|
|
|
6
6
|
# Plan Release
|
|
7
7
|
|
|
8
8
|
> **HARD GATE** — Do NOT run this skill unless `elaborate-spec` has produced a clear spec or the user has already defined the feature in detail. If the problem is still fuzzy, run `elaborate-spec` first.
|
|
9
|
-
|
|
10
9
|
> **HARD GATE** — `specs/product/SCOPE_LATEST.yaml` (or legacy `specs/product/SCOPE_LATEST.yaml`) must exist. If missing, run `scope-work` first.
|
|
11
10
|
|
|
12
11
|
Synthesize the conversation context into `specs/release-plan.yaml` (index) and shard detail under `specs/epics/`. No new interview — only clarify if something is genuinely ambiguous.
|
|
@@ -35,7 +34,7 @@ specs/epics/e01-auth-system/
|
|
|
35
34
|
└── e01s02-tasks.yaml # Decoupled task checklist
|
|
36
35
|
```
|
|
37
36
|
|
|
38
|
-
**Rationale:** Capsule dirs achieve change isolation (C9), enable archive pruning (C2/C6), and enforce SRP by decoupling spec `.md` from execution `-tasks.yaml` (C1).
|
|
37
|
+
**Rationale:** Capsule dirs achieve change isolation (C9), enable archive pruning (C2/C6), and enforce SRP by decoupling spec `.md` from execution `-tasks.yaml` (C1).
|
|
39
38
|
|
|
40
39
|
## Process
|
|
41
40
|
|
|
@@ -139,7 +138,6 @@ tasks:
|
|
|
139
138
|
```bash
|
|
140
139
|
bash scripts/sync-status-from-epics.sh
|
|
141
140
|
```
|
|
142
|
-
|
|
143
141
|
### 9. Snapshot on planning close (optional)
|
|
144
142
|
|
|
145
143
|
Copy to `specs/product/snapshots/release-<version>/` when the user approves the plan.
|
|
@@ -8,7 +8,6 @@ model: sonnet
|
|
|
8
8
|
# Plan Release
|
|
9
9
|
|
|
10
10
|
> **HARD GATE** — Do NOT run this skill unless `elaborate-spec` has produced a clear spec or the user has already defined the feature in detail. If the problem is still fuzzy, run `elaborate-spec` first.
|
|
11
|
-
|
|
12
11
|
> **HARD GATE** — `specs/product/SCOPE_LATEST.yaml` (or legacy `specs/product/SCOPE_LATEST.yaml`) must exist. If missing, run `scope-work` first.
|
|
13
12
|
|
|
14
13
|
Synthesize the conversation context into `specs/release-plan.yaml` (index) and shard detail under `specs/epics/`. No new interview — only clarify if something is genuinely ambiguous.
|
|
@@ -37,7 +36,7 @@ specs/epics/e01-auth-system/
|
|
|
37
36
|
└── e01s02-tasks.yaml # Decoupled task checklist
|
|
38
37
|
```
|
|
39
38
|
|
|
40
|
-
**Rationale:** Capsule dirs achieve change isolation (C9), enable archive pruning (C2/C6), and enforce SRP by decoupling spec `.md` from execution `-tasks.yaml` (C1).
|
|
39
|
+
**Rationale:** Capsule dirs achieve change isolation (C9), enable archive pruning (C2/C6), and enforce SRP by decoupling spec `.md` from execution `-tasks.yaml` (C1).
|
|
41
40
|
|
|
42
41
|
## Process
|
|
43
42
|
|
|
@@ -141,7 +140,6 @@ tasks:
|
|
|
141
140
|
```bash
|
|
142
141
|
bash scripts/sync-status-from-epics.sh
|
|
143
142
|
```
|
|
144
|
-
|
|
145
143
|
### 9. Snapshot on planning close (optional)
|
|
146
144
|
|
|
147
145
|
Copy to `specs/product/snapshots/release-<version>/` when the user approves the plan.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: security-review
|
|
3
3
|
description: "> AI-powered security analysis of code changes — traces data flow, detects injection, auth bypass, secrets exposure, and unsafe deserialization across files. Use when reviewing pending changes, before release-branch, during verify-work Phase 5, during build-epic Step 0 threat modeling, or when the user says \"security review\" or \"scan for vulns\"."
|
|
4
|
+
model: sonnet
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [2.43.2](https://github.com/danielvm-git/bigpowers/compare/v2.43.1...v2.43.2) (2026-07-02)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **ci:** resolve doctrine drift — stale count and line cap ([4930391](https://github.com/danielvm-git/bigpowers/commit/49303917543a56feb6dd47e92641f90bea289cb4))
|
|
7
|
+
|
|
8
|
+
## [2.43.1](https://github.com/danielvm-git/bigpowers/compare/v2.43.0...v2.43.1) (2026-07-02)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **scripts:** replace declare -A with case for bash 3.2 compatibility ([92dacb6](https://github.com/danielvm-git/bigpowers/commit/92dacb6151a207f659edd2d4f48efc084936fc40))
|
|
14
|
+
|
|
1
15
|
# [2.43.0](https://github.com/danielvm-git/bigpowers/compare/v2.42.1...v2.43.0) (2026-06-29)
|
|
2
16
|
|
|
3
17
|
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Contributing to bigpowers
|
|
2
|
+
|
|
3
|
+
Thanks for your interest in contributing! bigpowers is an open-source system of 69+ AI agent skills for spec-driven, test-first software development. This guide will help you get started.
|
|
4
|
+
|
|
5
|
+
## Code of Conduct
|
|
6
|
+
|
|
7
|
+
Be respectful, constructive, and patient. We're building tools for developers — treat each other like the professionals we are.
|
|
8
|
+
|
|
9
|
+
## Before You Start
|
|
10
|
+
|
|
11
|
+
1. **Read the docs.** Start with [`README.md`](README.md), [`CLAUDE.md`](CLAUDE.md), and [`CONVENTIONS.md`](CONVENTIONS.md). These define the project's architecture, conventions, and engineering standards.
|
|
12
|
+
2. **Run bigpowers.** Install with `npx bigpowers` and walk through the experience as a user before contributing as a developer.
|
|
13
|
+
3. **Understand the lifecycle.** bigpowers follows a 6-phase methodology: Discover → Elaborate → Plan → Build → Verify → Release. Read [`docs/WORKFLOW-SOP-v2.md`](docs/WORKFLOW-SOP-v2.md) for the full SOP.
|
|
14
|
+
|
|
15
|
+
## How to Contribute
|
|
16
|
+
|
|
17
|
+
### Reporting Bugs
|
|
18
|
+
|
|
19
|
+
- Search [existing issues](https://github.com/danielvm-git/bigpowers/issues) first.
|
|
20
|
+
- Use the bug report template if one exists.
|
|
21
|
+
- Include: what you did, what you expected, what happened, your OS, Node version, and any error output.
|
|
22
|
+
- If the bug is in a specific skill, name the skill.
|
|
23
|
+
|
|
24
|
+
### Proposing Features
|
|
25
|
+
|
|
26
|
+
- Open a [discussion](https://github.com/danielvm-git/bigpowers/discussions) before opening a PR for a new feature. We want to align on the approach before you invest time.
|
|
27
|
+
- New skills must follow the [verb-noun kebab-case naming convention](CONVENTIONS.md#skill-naming--conventions-and-exceptions) (ADR-0001).
|
|
28
|
+
- New features should include: a description of the problem, the proposed solution, and any alternatives considered.
|
|
29
|
+
|
|
30
|
+
### Proposing a New Skill
|
|
31
|
+
|
|
32
|
+
Skills are the core of bigpowers. To propose a new one:
|
|
33
|
+
|
|
34
|
+
1. **Check the index.** [`SKILL-INDEX.md`](SKILL-INDEX.md) lists all 69+ active skills. Make sure your idea doesn't overlap with an existing skill.
|
|
35
|
+
2. **Identify the phase.** Every skill belongs to one of 7 phases: Discover, Design, Plan, Build, Verify, Release, Sustain.
|
|
36
|
+
3. **Write a SKILL.md draft.** Follow the structure of existing skills. Every SKILL.md needs: a description, phase, instructions, and references.
|
|
37
|
+
4. **Open a discussion.** Share your SKILL.md draft in a GitHub discussion. We'll review whether it fits the roadmap before you invest in a full PR.
|
|
38
|
+
5. **Once approved,** open a PR with:
|
|
39
|
+
- A new directory: `[verb]-[noun]/` containing `SKILL.md`
|
|
40
|
+
- Evidence that you ran `bash scripts/sync-skills.sh` to regenerate artifacts
|
|
41
|
+
- A Conventional Commit: `feat(skills): add [verb]-[noun] skill`
|
|
42
|
+
|
|
43
|
+
### Pull Request Process
|
|
44
|
+
|
|
45
|
+
1. **Branch from main.** Use `kickoff-branch` or create a feature branch manually.
|
|
46
|
+
2. **Follow CONVENTIONS.md.** F.I.R.S.T tests. SOLID. Boy Scout Rule. No `any` types. Functions under 20 lines.
|
|
47
|
+
3. **Run sync.** After any SKILL.md change, run `bash scripts/sync-skills.sh` to regenerate generated artifacts. Do not edit `.cursor/rules` or `.gemini/extensions/` directly.
|
|
48
|
+
4. **Validate YAML.** Run `bash scripts/validate-specs-yaml.sh` if you've changed any `specs/*.yaml` files.
|
|
49
|
+
5. **Write Conventional Commits.** Format: `type(scope): description`. See [CONVENTIONS.md](CONVENTIONS.md#conventional-commits--semantic-versioning) for the full spec.
|
|
50
|
+
6. **Open a PR.** Use `gh pr create`. Include: what you changed, why, how to verify, and any open questions.
|
|
51
|
+
7. **Wait for review.** A maintainer will review within a few days. Be responsive to feedback.
|
|
52
|
+
|
|
53
|
+
### Writing Documentation
|
|
54
|
+
|
|
55
|
+
Documentation is a first-class contribution. You don't need to write code to help.
|
|
56
|
+
|
|
57
|
+
- **README improvements:** Clearer install instructions, better examples, fixed typos.
|
|
58
|
+
- **Skill docs:** Every SKILL.md should be clear enough for a new user to understand without asking.
|
|
59
|
+
- **Guides and tutorials:** Walkthroughs for specific use cases (e.g., "Using bigpowers with a Next.js project").
|
|
60
|
+
- **Translations:** Help make bigpowers accessible to non-English-speaking developers.
|
|
61
|
+
|
|
62
|
+
## Development Setup
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Clone the repo
|
|
66
|
+
git clone https://github.com/danielvm-git/bigpowers.git
|
|
67
|
+
cd bigpowers
|
|
68
|
+
|
|
69
|
+
# Install dependencies + run postinstall sync
|
|
70
|
+
npm install
|
|
71
|
+
|
|
72
|
+
# Or manually:
|
|
73
|
+
bash scripts/install.sh
|
|
74
|
+
npm run sync
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Prerequisites
|
|
78
|
+
|
|
79
|
+
- **Bash** — required for all scripts
|
|
80
|
+
- **Node.js** v14+
|
|
81
|
+
- **jq** — highly recommended for YAML validation scripts
|
|
82
|
+
- **An AI coding tool** — Claude Code, Cursor, Gemini CLI, or pi (to test skills end-to-end)
|
|
83
|
+
|
|
84
|
+
### Project Structure
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
bigpowers/
|
|
88
|
+
├── [skill-name]/ # Each skill has its own directory with SKILL.md
|
|
89
|
+
├── scripts/ # Install, sync, validation, and compliance scripts
|
|
90
|
+
├── specs/ # YAML cockpit — state.yaml, release-plan.yaml, epics/
|
|
91
|
+
├── docs/ # Guides and references
|
|
92
|
+
├── profiles/ # Stack-specific conventions (TypeScript+Vue, Node Service, etc.)
|
|
93
|
+
├── .cursor/rules/ # Generated — do not edit directly
|
|
94
|
+
├── .gemini/extensions/ # Generated — do not edit directly
|
|
95
|
+
└── .pi/skills/ # Generated — do not edit directly
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Never edit generated files.** Always edit the source `SKILL.md` and run `bash scripts/sync-skills.sh`.
|
|
99
|
+
|
|
100
|
+
## Testing
|
|
101
|
+
|
|
102
|
+
- **Skill validation:** `bash scripts/sync-skills.sh` validates SKILL.md syntax and structure.
|
|
103
|
+
- **YAML validation:** `bash scripts/validate-specs-yaml.sh` checks the YAML cockpit for correctness.
|
|
104
|
+
- **Compliance check:** `npm run compliance` runs a comprehensive check of the repo.
|
|
105
|
+
- **Manual testing:** The best test of a skill is using it with an AI coding tool. After changes, run `survey-context` or invoke the skill to verify it works.
|
|
106
|
+
|
|
107
|
+
## Getting Help
|
|
108
|
+
|
|
109
|
+
- **Questions?** Open a [GitHub discussion](https://github.com/danielvm-git/bigpowers/discussions).
|
|
110
|
+
- **Bug?** Open an [issue](https://github.com/danielvm-git/bigpowers/issues).
|
|
111
|
+
- **Want to chat?** [Link to Discord/Slack — to be added]
|
|
112
|
+
|
|
113
|
+
## Recognition
|
|
114
|
+
|
|
115
|
+
All contributors are recognized in the README and release notes. Significant contributions (new skills, major features) get a shoutout in the changelog and on social media. We believe in giving credit where it's due.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
*bigpowers is MIT-licensed. By contributing, you agree that your contributions will be licensed under the same terms.*
|
package/SKILL-INDEX.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> **DO NOT EDIT** — This file is auto-generated by `scripts/generate-skill-index.sh`.
|
|
4
4
|
> Edit `SKILL.md` source files or `skills-lock.json` instead. Run `bash scripts/sync-skills.sh` to regenerate.
|
|
5
5
|
|
|
6
|
-
**Generated:** 2026-
|
|
6
|
+
**Generated:** 2026-07-02T12:07:54Z
|
|
7
7
|
**Skills:** 72
|
|
8
8
|
|
|
9
9
|
---
|
package/package.json
CHANGED
package/plan-release/SKILL.md
CHANGED
|
@@ -7,7 +7,6 @@ description: "RELEASE-INDEX BUILDER — Sequence elaborated epics into specs/rel
|
|
|
7
7
|
# Plan Release
|
|
8
8
|
|
|
9
9
|
> **HARD GATE** — Do NOT run this skill unless `elaborate-spec` has produced a clear spec or the user has already defined the feature in detail. If the problem is still fuzzy, run `elaborate-spec` first.
|
|
10
|
-
|
|
11
10
|
> **HARD GATE** — `specs/product/SCOPE_LATEST.yaml` (or legacy `specs/product/SCOPE_LATEST.yaml`) must exist. If missing, run `scope-work` first.
|
|
12
11
|
|
|
13
12
|
Synthesize the conversation context into `specs/release-plan.yaml` (index) and shard detail under `specs/epics/`. No new interview — only clarify if something is genuinely ambiguous.
|
|
@@ -36,7 +35,7 @@ specs/epics/e01-auth-system/
|
|
|
36
35
|
└── e01s02-tasks.yaml # Decoupled task checklist
|
|
37
36
|
```
|
|
38
37
|
|
|
39
|
-
**Rationale:** Capsule dirs achieve change isolation (C9), enable archive pruning (C2/C6), and enforce SRP by decoupling spec `.md` from execution `-tasks.yaml` (C1).
|
|
38
|
+
**Rationale:** Capsule dirs achieve change isolation (C9), enable archive pruning (C2/C6), and enforce SRP by decoupling spec `.md` from execution `-tasks.yaml` (C1).
|
|
40
39
|
|
|
41
40
|
## Process
|
|
42
41
|
|
|
@@ -140,7 +139,6 @@ tasks:
|
|
|
140
139
|
```bash
|
|
141
140
|
bash scripts/sync-status-from-epics.sh
|
|
142
141
|
```
|
|
143
|
-
|
|
144
142
|
### 9. Snapshot on planning close (optional)
|
|
145
143
|
|
|
146
144
|
Copy to `specs/product/snapshots/release-<version>/` when the user approves the plan.
|
|
@@ -3,72 +3,20 @@
|
|
|
3
3
|
set -euo pipefail
|
|
4
4
|
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
5
5
|
|
|
6
|
-
declare -A
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
[define-language]=sonnet
|
|
15
|
-
[grill-me]=sonnet
|
|
16
|
-
[grill-with-docs]=opus
|
|
17
|
-
[deepen-architecture]=sonnet
|
|
18
|
-
[design-interface]=opus
|
|
19
|
-
[assess-impact]=sonnet
|
|
20
|
-
[change-request]=sonnet
|
|
21
|
-
[scope-work]=sonnet
|
|
22
|
-
[slice-tasks]=sonnet
|
|
23
|
-
[define-success]=sonnet
|
|
24
|
-
[plan-work]=opus
|
|
25
|
-
[plan-refactor]=sonnet
|
|
26
|
-
[plan-release]=sonnet
|
|
27
|
-
[spike-prototype]=sonnet
|
|
28
|
-
[kickoff-branch]=haiku
|
|
29
|
-
[guard-git]=haiku
|
|
30
|
-
[hook-commits]=haiku
|
|
31
|
-
[seed-conventions]=sonnet
|
|
32
|
-
[develop-tdd]=sonnet
|
|
33
|
-
[enforce-first]=haiku
|
|
34
|
-
[delegate-task]=sonnet
|
|
35
|
-
[dispatch-agents]=sonnet
|
|
36
|
-
[execute-plan]=haiku
|
|
37
|
-
[wire-observability]=sonnet
|
|
38
|
-
[verify-work]=haiku
|
|
39
|
-
[run-evals]=sonnet
|
|
40
|
-
[investigate-bug]=sonnet
|
|
41
|
-
[diagnose-root]=sonnet
|
|
42
|
-
[validate-fix]=haiku
|
|
43
|
-
[audit-code]=haiku
|
|
44
|
-
[request-review]=opus
|
|
45
|
-
[respond-review]=sonnet
|
|
46
|
-
[trace-requirement]=haiku
|
|
47
|
-
[commit-message]=haiku
|
|
48
|
-
[release-branch]=haiku
|
|
49
|
-
[inspect-quality]=sonnet
|
|
50
|
-
[organize-workspace]=haiku
|
|
51
|
-
[stocktake-skills]=sonnet
|
|
52
|
-
[evolve-skill]=opus
|
|
53
|
-
[terse-mode]=haiku
|
|
54
|
-
[craft-skill]=sonnet
|
|
55
|
-
[edit-document]=sonnet
|
|
56
|
-
[session-state]=haiku
|
|
57
|
-
[migrate-spec]=sonnet
|
|
58
|
-
[visual-dashboard]=sonnet
|
|
59
|
-
[write-document]=sonnet
|
|
60
|
-
[setup-environment]=haiku
|
|
61
|
-
[reset-baseline]=haiku
|
|
62
|
-
[search-skills]=haiku
|
|
63
|
-
[compose-workflow]=sonnet
|
|
64
|
-
[simulate-agents]=sonnet
|
|
65
|
-
)
|
|
6
|
+
# Bash 3.2-compatible model mapping (no declare -A)
|
|
7
|
+
get_model() {
|
|
8
|
+
case "$1" in
|
|
9
|
+
survey-context|verify-work|validate-fix|audit-code|enforce-first|trace-requirement|commit-message|release-branch|kickoff-branch|guard-git|hook-commits|execute-plan|organize-workspace|terse-mode|session-state|search-skills|setup-environment|reset-baseline) echo "haiku" ;;
|
|
10
|
+
elaborate-spec|grill-with-docs|design-interface|plan-work|request-review|evolve-skill) echo "opus" ;;
|
|
11
|
+
*) echo "sonnet" ;;
|
|
12
|
+
esac
|
|
13
|
+
}
|
|
66
14
|
|
|
67
15
|
for skill_dir in "$REPO_ROOT"/*/; do
|
|
68
16
|
skill_md="$skill_dir/SKILL.md"
|
|
69
17
|
[[ -f "$skill_md" ]] || continue
|
|
70
18
|
name=$(basename "$skill_dir")
|
|
71
|
-
model
|
|
19
|
+
model=$(get_model "$name")
|
|
72
20
|
if grep -q '^model:' "$skill_md" 2>/dev/null; then
|
|
73
21
|
continue
|
|
74
22
|
fi
|
|
@@ -14,85 +14,25 @@ if [[ ! -f "$LOCKFILE" ]]; then
|
|
|
14
14
|
fi
|
|
15
15
|
|
|
16
16
|
# Phase categorization — maps each skill to a lifecycle phase
|
|
17
|
-
declare -A
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
[scope-work]="Plan"
|
|
37
|
-
[slice-tasks]="Plan"
|
|
38
|
-
[plan-work]="Plan"
|
|
39
|
-
[plan-release]="Plan"
|
|
40
|
-
[plan-refactor]="Plan"
|
|
41
|
-
[assess-impact]="Plan"
|
|
42
|
-
[change-request]="Plan"
|
|
43
|
-
[run-planning]="Plan"
|
|
44
|
-
[seed-conventions]="Plan"
|
|
45
|
-
# Build
|
|
46
|
-
[develop-tdd]="Build"
|
|
47
|
-
[kickoff-branch]="Build"
|
|
48
|
-
[execute-plan]="Build"
|
|
49
|
-
[build-epic]="Build"
|
|
50
|
-
[spike-prototype]="Build"
|
|
51
|
-
[craft-skill]="Build"
|
|
52
|
-
[quick-fix]="Build"
|
|
53
|
-
[setup-environment]="Build"
|
|
54
|
-
[wire-observability]="Build"
|
|
55
|
-
[wire-ci]="Build"
|
|
56
|
-
[publish-package]="Build"
|
|
57
|
-
[align-grid]="Build"
|
|
58
|
-
[orchestrate-project]="Build"
|
|
59
|
-
[guard-git]="Build"
|
|
60
|
-
[hook-commits]="Build"
|
|
61
|
-
[deploy]="Build"
|
|
62
|
-
[smoke-test]="Build"
|
|
63
|
-
[validate-contracts]="Build"
|
|
64
|
-
# Verify
|
|
65
|
-
[verify-work]="Verify"
|
|
66
|
-
[validate-fix]="Verify"
|
|
67
|
-
[audit-code]="Verify"
|
|
68
|
-
[enforce-first]="Verify"
|
|
69
|
-
[run-evals]="Verify"
|
|
70
|
-
[investigate-bug]="Verify"
|
|
71
|
-
[diagnose-root]="Verify"
|
|
72
|
-
[fix-bug]="Verify"
|
|
73
|
-
[inspect-quality]="Verify"
|
|
74
|
-
[request-review]="Verify"
|
|
75
|
-
[respond-review]="Verify"
|
|
76
|
-
[trace-requirement]="Verify"
|
|
77
|
-
# Release
|
|
78
|
-
[release-branch]="Release"
|
|
79
|
-
[commit-message]="Release"
|
|
80
|
-
# Sustain
|
|
81
|
-
[session-state]="Sustain"
|
|
82
|
-
[edit-document]="Sustain"
|
|
83
|
-
[write-document]="Sustain"
|
|
84
|
-
[organize-workspace]="Sustain"
|
|
85
|
-
[reset-baseline]="Sustain"
|
|
86
|
-
[stocktake-skills]="Sustain"
|
|
87
|
-
[evolve-skill]="Sustain"
|
|
88
|
-
[run-benchmark]="Sustain"
|
|
89
|
-
[terse-mode]="Sustain"
|
|
90
|
-
[delegate-task]="Sustain"
|
|
91
|
-
[dispatch-agents]="Sustain"
|
|
92
|
-
[simulate-agents]="Sustain"
|
|
93
|
-
[compose-workflow]="Sustain"
|
|
94
|
-
[migrate-spec]="Sustain"
|
|
95
|
-
)
|
|
17
|
+
# Uses a case statement for bash 3.2 compatibility (macOS default bash lacks declare -A)
|
|
18
|
+
get_phase() {
|
|
19
|
+
case "$1" in
|
|
20
|
+
# Discover
|
|
21
|
+
survey-context|research-first|search-skills|using-bigpowers|map-codebase|elaborate-spec|audit-plan) echo "Discover" ;;
|
|
22
|
+
# Design
|
|
23
|
+
model-domain|define-language|grill-me|grill-with-docs|deepen-architecture|design-interface|define-success) echo "Design" ;;
|
|
24
|
+
# Plan
|
|
25
|
+
scope-work|slice-tasks|plan-work|plan-release|plan-refactor|assess-impact|change-request|run-planning|seed-conventions) echo "Plan" ;;
|
|
26
|
+
# Build
|
|
27
|
+
develop-tdd|kickoff-branch|execute-plan|build-epic|spike-prototype|craft-skill|quick-fix|setup-environment|wire-observability|wire-ci|publish-package|align-grid|orchestrate-project|guard-git|hook-commits|deploy|smoke-test|validate-contracts) echo "Build" ;;
|
|
28
|
+
# Verify
|
|
29
|
+
verify-work|validate-fix|audit-code|enforce-first|run-evals|investigate-bug|diagnose-root|fix-bug|inspect-quality|request-review|respond-review|trace-requirement) echo "Verify" ;;
|
|
30
|
+
# Release
|
|
31
|
+
release-branch|commit-message) echo "Release" ;;
|
|
32
|
+
# Sustain
|
|
33
|
+
session-state|edit-document|write-document|organize-workspace|reset-baseline|stocktake-skills|evolve-skill|run-benchmark|terse-mode|delegate-task|dispatch-agents|simulate-agents|compose-workflow|migrate-spec) echo "Sustain" ;;
|
|
34
|
+
esac
|
|
35
|
+
}
|
|
96
36
|
|
|
97
37
|
# Phase order for display
|
|
98
38
|
PHASE_ORDER=("Discover" "Design" "Plan" "Build" "Verify" "Release" "Sustain")
|
|
@@ -123,7 +63,7 @@ DESC_COL_WIDTH=56
|
|
|
123
63
|
for phase in "${PHASE_ORDER[@]}"; do
|
|
124
64
|
phase_skills=()
|
|
125
65
|
for name in $(jq -r '.skills | keys[]' "$LOCKFILE" | sort); do
|
|
126
|
-
[[ "$
|
|
66
|
+
[[ "$(get_phase "$name")" == "$phase" ]] && phase_skills+=("$name")
|
|
127
67
|
done
|
|
128
68
|
count=${#phase_skills[@]}
|
|
129
69
|
total=$((total + count))
|
|
@@ -144,7 +84,7 @@ DESC_COL_WIDTH=56
|
|
|
144
84
|
row=0
|
|
145
85
|
for phase in "${PHASE_ORDER[@]}"; do
|
|
146
86
|
for name in $(jq -r '.skills | keys[]' "$LOCKFILE" | sort); do
|
|
147
|
-
[[ "$
|
|
87
|
+
[[ "$(get_phase "$name")" != "$phase" ]] && continue
|
|
148
88
|
row=$((row + 1))
|
|
149
89
|
desc=$(jq -r --arg n "$name" '.skills[$n].description // ""' "$LOCKFILE" | head -c 80)
|
|
150
90
|
echo "| $row | $phase | \`$name\` | $desc | ✅ Active |"
|
|
@@ -20,7 +20,12 @@ for skill_dir in "$REPO_ROOT"/*/; do
|
|
|
20
20
|
| tr -d '\n' | sed -E 's/[[:space:]]+/ /g')
|
|
21
21
|
|
|
22
22
|
# Compute SHA-256 of full SKILL.md content (first 16 hex chars for compact uniqueness)
|
|
23
|
-
|
|
23
|
+
# Falls back to shasum for macOS where sha256sum is not installed by default
|
|
24
|
+
if command -v sha256sum &>/dev/null; then
|
|
25
|
+
sha256=$(sha256sum "$skill_md" | cut -c1-16)
|
|
26
|
+
else
|
|
27
|
+
sha256=$(shasum -a 256 "$skill_md" | cut -c1-16)
|
|
28
|
+
fi
|
|
24
29
|
|
|
25
30
|
# Relative path from repo root
|
|
26
31
|
relpath="${skill_dir#$REPO_ROOT/}SKILL.md"
|
package/scripts/sync-skills.sh
CHANGED
|
@@ -230,6 +230,13 @@ if [[ -f "$validate_script" ]] && command -v python3 &>/dev/null; then
|
|
|
230
230
|
fi
|
|
231
231
|
fi
|
|
232
232
|
|
|
233
|
+
# Regression guard (BUG-2026-07-02T103911): no bash 4+ features in install-chain scripts
|
|
234
|
+
# macOS ships bash 3.2 which lacks declare -A (associative arrays)
|
|
235
|
+
if grep -rn '^declare -A\|^[[:space:]]*declare -A' scripts/sync-skills.sh scripts/generate-skill-index.sh scripts/regenerate-lockfile.sh scripts/build-skill-index.sh 2>/dev/null; then
|
|
236
|
+
echo "sync-skills: FAIL — bash 4+ features detected in install-chain scripts (not macOS-compatible)" >&2
|
|
237
|
+
exit 1
|
|
238
|
+
fi
|
|
239
|
+
|
|
233
240
|
# Regenerate derived reference tables from live SKILL.md frontmatter
|
|
234
241
|
# Only in dev context (with .git) — not during consumer npm install where docs/ is excluded
|
|
235
242
|
if [[ -d "$REPO_ROOT/.git" ]]; then
|
package/security-review/SKILL.md
CHANGED
package/skills-lock.json
CHANGED
|
@@ -193,7 +193,7 @@
|
|
|
193
193
|
},
|
|
194
194
|
"plan-release": {
|
|
195
195
|
"description": "\"RELEASE-INDEX BUILDER — Sequence elaborated epics into specs/release-plan.yaml with WSJF ordering and BCP baselines. NOT a planning-spine substitute: it does not scope work (scope-work) or write story tasks (plan-work). Use after elaborate-spec when the user wants a versioned release index of epics.\"",
|
|
196
|
-
"sha256": "
|
|
196
|
+
"sha256": "6a47658098abc342",
|
|
197
197
|
"path": "plan-release/SKILL.md"
|
|
198
198
|
},
|
|
199
199
|
"plan-work": {
|
|
@@ -263,7 +263,7 @@
|
|
|
263
263
|
},
|
|
264
264
|
"security-review": {
|
|
265
265
|
"description": "> AI-powered security analysis of code changes — traces data flow, detects injection, auth bypass, secrets exposure, and unsafe deserialization across files. Use when reviewing pending changes, before release-branch, during verify-work Phase 5, during build-epic Step 0 threat modeling, or when the user says \"security review\" or \"scan for vulns\".",
|
|
266
|
-
"sha256": "
|
|
266
|
+
"sha256": "8fe9fa518af2aaa6",
|
|
267
267
|
"path": "security-review/SKILL.md"
|
|
268
268
|
},
|
|
269
269
|
"seed-conventions": {
|