bigpowers 2.1.3 → 2.3.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.
- package/.pi/package.json +16 -0
- package/.pi/prompts/assess-impact.md +76 -0
- package/.pi/prompts/audit-code.md +156 -0
- package/.pi/prompts/build-epic.md +44 -0
- package/.pi/prompts/change-request.md +105 -0
- package/.pi/prompts/commit-message.md +135 -0
- package/.pi/prompts/compose-workflow.md +40 -0
- package/.pi/prompts/craft-skill.md +150 -0
- package/.pi/prompts/deepen-architecture.md +235 -0
- package/.pi/prompts/define-language.md +79 -0
- package/.pi/prompts/define-success.md +62 -0
- package/.pi/prompts/delegate-task.md +76 -0
- package/.pi/prompts/design-interface.md +96 -0
- package/.pi/prompts/develop-tdd.md +375 -0
- package/.pi/prompts/diagnose-root.md +23 -0
- package/.pi/prompts/dispatch-agents.md +83 -0
- package/.pi/prompts/edit-document.md +22 -0
- package/.pi/prompts/elaborate-spec.md +81 -0
- package/.pi/prompts/enforce-first.md +77 -0
- package/.pi/prompts/evolve-skill.md +38 -0
- package/.pi/prompts/execute-plan.md +54 -0
- package/.pi/prompts/fix-bug.md +36 -0
- package/.pi/prompts/grill-me.md +95 -0
- package/.pi/prompts/grill-with-docs.md +37 -0
- package/.pi/prompts/guard-git.md +212 -0
- package/.pi/prompts/hook-commits.md +93 -0
- package/.pi/prompts/inspect-quality.md +105 -0
- package/.pi/prompts/investigate-bug.md +117 -0
- package/.pi/prompts/kickoff-branch.md +99 -0
- package/.pi/prompts/map-codebase.md +70 -0
- package/.pi/prompts/migrate-spec.md +482 -0
- package/.pi/prompts/model-domain.md +227 -0
- package/.pi/prompts/orchestrate-project.md +161 -0
- package/.pi/prompts/organize-workspace.md +159 -0
- package/.pi/prompts/plan-refactor.md +77 -0
- package/.pi/prompts/plan-release.md +145 -0
- package/.pi/prompts/plan-work.md +161 -0
- package/.pi/prompts/release-branch.md +158 -0
- package/.pi/prompts/request-review.md +70 -0
- package/.pi/prompts/research-first.md +62 -0
- package/.pi/prompts/reset-baseline.md +20 -0
- package/.pi/prompts/respond-review.md +70 -0
- package/.pi/prompts/run-evals.md +56 -0
- package/.pi/prompts/run-planning.md +26 -0
- package/.pi/prompts/scope-work.md +23 -0
- package/.pi/prompts/search-skills.md +21 -0
- package/.pi/prompts/seed-conventions.md +132 -0
- package/.pi/prompts/session-state.md +146 -0
- package/.pi/prompts/setup-environment.md +23 -0
- package/.pi/prompts/simulate-agents.md +25 -0
- package/.pi/prompts/slice-tasks.md +23 -0
- package/.pi/prompts/spike-prototype.md +94 -0
- package/.pi/prompts/stocktake-skills.md +40 -0
- package/.pi/prompts/survey-context.md +129 -0
- package/.pi/prompts/terse-mode.md +37 -0
- package/.pi/prompts/trace-requirement.md +68 -0
- package/.pi/prompts/using-bigpowers.md +105 -0
- package/.pi/prompts/validate-fix.md +98 -0
- package/.pi/prompts/verify-work.md +125 -0
- package/.pi/prompts/visual-dashboard.md +51 -0
- package/.pi/prompts/wire-observability.md +92 -0
- package/.pi/prompts/write-document.md +244 -0
- package/.pi/skills/assess-impact/SKILL.md +77 -0
- package/.pi/skills/audit-code/SKILL.md +157 -0
- package/.pi/skills/build-epic/SKILL.md +45 -0
- package/.pi/skills/change-request/SKILL.md +106 -0
- package/.pi/skills/commit-message/SKILL.md +136 -0
- package/.pi/skills/compose-workflow/SKILL.md +41 -0
- package/.pi/skills/craft-skill/SKILL.md +151 -0
- package/.pi/skills/deepen-architecture/SKILL.md +236 -0
- package/.pi/skills/define-language/SKILL.md +80 -0
- package/.pi/skills/define-success/SKILL.md +63 -0
- package/.pi/skills/delegate-task/SKILL.md +77 -0
- package/.pi/skills/design-interface/SKILL.md +97 -0
- package/.pi/skills/develop-tdd/SKILL.md +376 -0
- package/.pi/skills/diagnose-root/SKILL.md +24 -0
- package/.pi/skills/dispatch-agents/SKILL.md +84 -0
- package/.pi/skills/edit-document/SKILL.md +23 -0
- package/.pi/skills/elaborate-spec/SKILL.md +82 -0
- package/.pi/skills/enforce-first/SKILL.md +78 -0
- package/.pi/skills/evolve-skill/SKILL.md +39 -0
- package/.pi/skills/execute-plan/SKILL.md +55 -0
- package/.pi/skills/fix-bug/SKILL.md +37 -0
- package/.pi/skills/grill-me/SKILL.md +96 -0
- package/.pi/skills/grill-with-docs/SKILL.md +38 -0
- package/.pi/skills/guard-git/SKILL.md +213 -0
- package/.pi/skills/hook-commits/SKILL.md +94 -0
- package/.pi/skills/inspect-quality/SKILL.md +106 -0
- package/.pi/skills/investigate-bug/SKILL.md +118 -0
- package/.pi/skills/kickoff-branch/SKILL.md +100 -0
- package/.pi/skills/map-codebase/SKILL.md +71 -0
- package/.pi/skills/migrate-spec/SKILL.md +483 -0
- package/.pi/skills/model-domain/SKILL.md +228 -0
- package/.pi/skills/orchestrate-project/SKILL.md +162 -0
- package/.pi/skills/organize-workspace/SKILL.md +160 -0
- package/.pi/skills/plan-refactor/SKILL.md +78 -0
- package/.pi/skills/plan-release/SKILL.md +146 -0
- package/.pi/skills/plan-work/SKILL.md +162 -0
- package/.pi/skills/release-branch/SKILL.md +159 -0
- package/.pi/skills/request-review/SKILL.md +71 -0
- package/.pi/skills/research-first/SKILL.md +63 -0
- package/.pi/skills/reset-baseline/SKILL.md +21 -0
- package/.pi/skills/respond-review/SKILL.md +71 -0
- package/.pi/skills/run-evals/SKILL.md +57 -0
- package/.pi/skills/run-planning/SKILL.md +27 -0
- package/.pi/skills/scope-work/SKILL.md +24 -0
- package/.pi/skills/search-skills/SKILL.md +22 -0
- package/.pi/skills/seed-conventions/SKILL.md +133 -0
- package/.pi/skills/session-state/SKILL.md +147 -0
- package/.pi/skills/setup-environment/SKILL.md +24 -0
- package/.pi/skills/simulate-agents/SKILL.md +26 -0
- package/.pi/skills/slice-tasks/SKILL.md +24 -0
- package/.pi/skills/spike-prototype/SKILL.md +95 -0
- package/.pi/skills/stocktake-skills/SKILL.md +41 -0
- package/.pi/skills/survey-context/SKILL.md +130 -0
- package/.pi/skills/terse-mode/SKILL.md +38 -0
- package/.pi/skills/trace-requirement/SKILL.md +69 -0
- package/.pi/skills/using-bigpowers/SKILL.md +106 -0
- package/.pi/skills/validate-fix/SKILL.md +99 -0
- package/.pi/skills/verify-work/SKILL.md +126 -0
- package/.pi/skills/visual-dashboard/SKILL.md +52 -0
- package/.pi/skills/wire-observability/SKILL.md +93 -0
- package/.pi/skills/write-document/SKILL.md +245 -0
- package/CHANGELOG.md +14 -0
- package/CLAUDE.md +1 -1
- package/CONVENTIONS.md +16 -10
- package/README.md +30 -4
- package/build-epic/SKILL.md +1 -1
- package/deepen-architecture/SKILL.md +2 -0
- package/define-language/SKILL.md +2 -0
- package/develop-tdd/REFERENCE.md +61 -0
- package/develop-tdd/SKILL.md +19 -119
- package/diagnose-root/SKILL.md +2 -0
- package/edit-document/SKILL.md +2 -0
- package/fix-bug/SKILL.md +3 -1
- package/grill-me/SKILL.md +3 -1
- package/grill-with-docs/SKILL.md +3 -1
- package/investigate-bug/SKILL.md +5 -11
- package/map-codebase/SKILL.md +3 -1
- package/migrate-spec/REFERENCE-GSD.md +4 -4
- package/migrate-spec/REFERENCE.md +33 -6
- package/migrate-spec/SKILL.md +1 -14
- package/model-domain/SKILL.md +2 -0
- package/orchestrate-project/REFERENCE.md +1 -1
- package/package.json +3 -2
- package/plan-release/SKILL.md +1 -1
- package/plan-work/REFERENCE.md +104 -0
- package/plan-work/SKILL.md +17 -151
- package/release-branch/REFERENCE.md +55 -0
- package/release-branch/SKILL.md +19 -117
- package/request-review/SKILL.md +1 -1
- package/run-planning/SKILL.md +3 -2
- package/scope-work/SKILL.md +3 -1
- package/scripts/audit-compliance.sh +15 -3
- package/scripts/check-skill-size.sh +79 -0
- package/scripts/generate-reference-tables.sh +64 -0
- package/scripts/project-survey.sh +2 -2
- package/scripts/sync-skills.sh +51 -3
- package/scripts/validate-doctrine.sh +143 -0
- package/seed-conventions/REFERENCE.md +63 -0
- package/seed-conventions/SKILL.md +23 -177
- package/slice-tasks/SKILL.md +3 -1
- package/survey-context/SKILL.md +3 -1
- package/write-document/SKILL.md +4 -2
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Regenerates the auto-generated catalog section in docs/references/model-profiles.md
|
|
3
|
+
# from live */SKILL.md frontmatter. Run after any SKILL.md addition/rename.
|
|
4
|
+
# Called by sync-skills.sh and npm version hooks.
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
8
|
+
TARGET="$REPO_ROOT/docs/references/model-profiles.md"
|
|
9
|
+
|
|
10
|
+
cd "$REPO_ROOT"
|
|
11
|
+
|
|
12
|
+
# --- 1. Collect live skill→model pairs ---
|
|
13
|
+
declare -a ROWS=()
|
|
14
|
+
while IFS= read -r line; do
|
|
15
|
+
skill_dir="${line%%/SKILL.md*}"
|
|
16
|
+
model_raw="${line##*model: }"
|
|
17
|
+
model="${model_raw// /}"
|
|
18
|
+
ROWS+=("$skill_dir $model")
|
|
19
|
+
done < <(grep -r "^model:" */SKILL.md | sed 's|/SKILL.md:model:||' | sort)
|
|
20
|
+
|
|
21
|
+
TOTAL=${#ROWS[@]}
|
|
22
|
+
|
|
23
|
+
# --- 2. Build replacement block ---
|
|
24
|
+
BLOCK="<!-- AUTO-GENERATED-CATALOG: begin — do not edit manually; run scripts/generate-reference-tables.sh -->
|
|
25
|
+
| Skill | Model |
|
|
26
|
+
|-------|-------|"
|
|
27
|
+
for row in "${ROWS[@]}"; do
|
|
28
|
+
skill="${row%% *}"
|
|
29
|
+
model="${row##* }"
|
|
30
|
+
# capitalise first letter for display
|
|
31
|
+
model_cap="$(echo "${model:0:1}" | tr '[:lower:]' '[:upper:]')${model:1}"
|
|
32
|
+
BLOCK+="
|
|
33
|
+
| \`$skill\` | **$model_cap** |"
|
|
34
|
+
done
|
|
35
|
+
BLOCK+="
|
|
36
|
+
|
|
37
|
+
Total: **$TOTAL** skills — verify with \`ls -d \*/SKILL.md | wc -l\`
|
|
38
|
+
<!-- AUTO-GENERATED-CATALOG: end -->"
|
|
39
|
+
|
|
40
|
+
# --- 3. Splice block into target file ---
|
|
41
|
+
# Replace between marker comments if they exist; otherwise append.
|
|
42
|
+
if grep -q "AUTO-GENERATED-CATALOG: begin" "$TARGET"; then
|
|
43
|
+
python3 - "$TARGET" "$BLOCK" <<'PYEOF'
|
|
44
|
+
import sys, re
|
|
45
|
+
path = sys.argv[1]
|
|
46
|
+
block = sys.argv[2]
|
|
47
|
+
text = open(path).read()
|
|
48
|
+
new_text = re.sub(
|
|
49
|
+
r'<!-- AUTO-GENERATED-CATALOG: begin.*?<!-- AUTO-GENERATED-CATALOG: end -->',
|
|
50
|
+
block,
|
|
51
|
+
text,
|
|
52
|
+
flags=re.DOTALL
|
|
53
|
+
)
|
|
54
|
+
open(path, 'w').write(new_text)
|
|
55
|
+
PYEOF
|
|
56
|
+
else
|
|
57
|
+
printf '\n\n## Full Skill Catalog (auto-generated)\n\n%s\n' "$BLOCK" >> "$TARGET"
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
# --- 4. Update the "expect N" count assertion (legacy line) ---
|
|
61
|
+
# Replaces "expect NN" with the live count so the prose stays accurate.
|
|
62
|
+
sed -i.bak "s/expect [0-9]*/expect $TOTAL/" "$TARGET" && rm -f "${TARGET}.bak"
|
|
63
|
+
|
|
64
|
+
echo "generate-reference-tables: updated $TARGET ($TOTAL skills)"
|
|
@@ -13,7 +13,7 @@ specs_files=""
|
|
|
13
13
|
if [[ "$has_specs" == "true" ]]; then
|
|
14
14
|
specs_files=$( {
|
|
15
15
|
ls specs/*.yaml 2>/dev/null || true
|
|
16
|
-
ls specs/
|
|
16
|
+
ls specs/product/*.yaml 2>/dev/null || true
|
|
17
17
|
ls specs/*.md 2>/dev/null || true
|
|
18
18
|
} | xargs -n1 basename 2>/dev/null | sort -u | tr '\n' ',' | sed 's/,$//')
|
|
19
19
|
fi
|
|
@@ -34,7 +34,7 @@ if [[ -f "specs/state.yaml" ]]; then
|
|
|
34
34
|
esac
|
|
35
35
|
elif [[ -f "specs/release-plan.yaml" ]]; then
|
|
36
36
|
phase="Plan"
|
|
37
|
-
elif [[ -f "specs/
|
|
37
|
+
elif [[ -f "specs/product/SCOPE_LATEST.yaml" ]] || [[ -f "specs/SCOPE.md" ]]; then
|
|
38
38
|
phase="Design"
|
|
39
39
|
elif [[ "$current_branch" != "main" && "$current_branch" != "master" ]]; then
|
|
40
40
|
phase="Initiate"
|
package/scripts/sync-skills.sh
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
# sync-skills.sh — generate Cursor
|
|
2
|
+
# sync-skills.sh — generate Cursor, Gemini CLI, and pi artifacts from SKILL.md source files
|
|
3
3
|
# Run this after adding or updating any skill. Symlinks carry changes through automatically.
|
|
4
4
|
set -euo pipefail
|
|
5
5
|
|
|
@@ -9,12 +9,17 @@ GEMINI_EXT_DIR="$REPO_ROOT/.gemini/extensions/bigpowers"
|
|
|
9
9
|
GEMINI_SKILLS="$GEMINI_EXT_DIR/skills"
|
|
10
10
|
GEMINI_COMMANDS="$GEMINI_EXT_DIR/commands"
|
|
11
11
|
GEMINI_MANIFEST="$GEMINI_EXT_DIR/gemini-extension.json"
|
|
12
|
+
PI_SKILLS="$REPO_ROOT/.pi/skills"
|
|
13
|
+
PI_PROMPTS="$REPO_ROOT/.pi/prompts"
|
|
14
|
+
PI_PACKAGE_JSON="$REPO_ROOT/.pi/package.json"
|
|
12
15
|
|
|
13
|
-
mkdir -p "$CURSOR_RULES" "$GEMINI_SKILLS" "$GEMINI_COMMANDS"
|
|
16
|
+
mkdir -p "$CURSOR_RULES" "$GEMINI_SKILLS" "$GEMINI_COMMANDS" "$PI_SKILLS" "$PI_PROMPTS"
|
|
14
17
|
|
|
15
18
|
# Clear old artifacts to ensure a clean sync
|
|
16
19
|
rm -rf "${GEMINI_SKILLS:?}"/*
|
|
17
20
|
rm -rf "${GEMINI_COMMANDS:?}"/*
|
|
21
|
+
rm -rf "${PI_SKILLS:?}"/*
|
|
22
|
+
rm -rf "${PI_PROMPTS:?}"/*
|
|
18
23
|
|
|
19
24
|
# We'll collect metadata for the manifest if needed,
|
|
20
25
|
# though skills/commands are auto-discovered.
|
|
@@ -82,6 +87,28 @@ for skill_dir in "$REPO_ROOT"/*/; do
|
|
|
82
87
|
echo "prompt = \"@{$prompt_file}\""
|
|
83
88
|
} > "$GEMINI_COMMANDS/$name.toml"
|
|
84
89
|
|
|
90
|
+
# 4. Write pi skill: .pi/skills/<name>/SKILL.md
|
|
91
|
+
# Pi implements the Agent Skills standard — same YAML frontmatter + body format
|
|
92
|
+
mkdir -p "$PI_SKILLS/$name"
|
|
93
|
+
{
|
|
94
|
+
echo "---"
|
|
95
|
+
echo "name: $name"
|
|
96
|
+
echo "description: \"$description\""
|
|
97
|
+
echo "---"
|
|
98
|
+
echo ""
|
|
99
|
+
echo "$body"
|
|
100
|
+
} > "$PI_SKILLS/$name/SKILL.md"
|
|
101
|
+
|
|
102
|
+
# 5. Write pi prompt template: .pi/prompts/<name>.md
|
|
103
|
+
# Slash-command templates expandable via /<name> in pi's editor
|
|
104
|
+
{
|
|
105
|
+
echo "---"
|
|
106
|
+
echo "description: $description"
|
|
107
|
+
echo "---"
|
|
108
|
+
echo ""
|
|
109
|
+
echo "$body"
|
|
110
|
+
} > "$PI_PROMPTS/$name.md"
|
|
111
|
+
|
|
85
112
|
skill_count=$((skill_count + 1))
|
|
86
113
|
done
|
|
87
114
|
|
|
@@ -94,7 +121,22 @@ jq -n --arg name "bigpowers" \
|
|
|
94
121
|
--arg desc "${skill_count} skills — ${pkg_desc}" \
|
|
95
122
|
'{name: $name, version: $version, description: $desc}' > "$GEMINI_MANIFEST"
|
|
96
123
|
|
|
97
|
-
#
|
|
124
|
+
# 6. Write pi package config: .pi/package.json
|
|
125
|
+
# Enables pi install (local path, npm, or git) with auto-discovered skills and prompts
|
|
126
|
+
jq -n --arg version "$pkg_version" \
|
|
127
|
+
--arg desc "${skill_count} skills — ${pkg_desc}" \
|
|
128
|
+
'{
|
|
129
|
+
"name": "bigpowers",
|
|
130
|
+
"version": $version,
|
|
131
|
+
"description": $desc,
|
|
132
|
+
"keywords": ["pi-package"],
|
|
133
|
+
"pi": {
|
|
134
|
+
"skills": ["./skills"],
|
|
135
|
+
"prompts": ["./prompts"]
|
|
136
|
+
}
|
|
137
|
+
}' > "$PI_PACKAGE_JSON"
|
|
138
|
+
|
|
139
|
+
# 7. Write OpenCode configuration: opencode.json (minimal project-level config)
|
|
98
140
|
# Skills are loaded on-demand via opencode's native skill tool, not instructions.
|
|
99
141
|
# Full opencode integration lives in the bigpowers-opencode repo.
|
|
100
142
|
{
|
|
@@ -140,6 +182,9 @@ echo " → .cursor/rules/ ($skill_count .mdc files)"
|
|
|
140
182
|
echo " → .gemini/extensions/bigpowers/skills/ (Agent Skills)"
|
|
141
183
|
echo " → .gemini/extensions/bigpowers/commands/ (Slash Commands)"
|
|
142
184
|
echo " → .gemini/extensions/bigpowers/gemini-extension.json"
|
|
185
|
+
echo " → .pi/skills/ ($skill_count skill dirs — pi Agent Skills)"
|
|
186
|
+
echo " → .pi/prompts/ ($skill_count prompt templates — pi slash commands)"
|
|
187
|
+
echo " → .pi/package.json (pi package manifest)"
|
|
143
188
|
echo " → opencode.json (CLAUDE.md + CONVENTIONS.md instructions)"
|
|
144
189
|
[[ -n "$OPN_TARGET" ]] && echo " → bigpowers-opencode: $opencode_count skills"
|
|
145
190
|
|
|
@@ -161,4 +206,7 @@ if [[ -f "$manifest" ]]; then
|
|
|
161
206
|
fi
|
|
162
207
|
fi
|
|
163
208
|
|
|
209
|
+
# Regenerate derived reference tables from live SKILL.md frontmatter
|
|
210
|
+
bash "$REPO_ROOT/scripts/generate-reference-tables.sh"
|
|
211
|
+
|
|
164
212
|
exit 0
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Doctrine drift guard — fails CI if any tracked invariants regress.
|
|
3
|
+
# Run after sync-skills.sh and before merging any branch.
|
|
4
|
+
# Extended by each epic: add new assertions below the relevant section header.
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
8
|
+
cd "$REPO_ROOT"
|
|
9
|
+
|
|
10
|
+
ERRORS=0
|
|
11
|
+
|
|
12
|
+
fail() {
|
|
13
|
+
echo "FAIL: $*" >&2
|
|
14
|
+
ERRORS=$((ERRORS + 1))
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
pass() {
|
|
18
|
+
echo "ok : $*"
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
# ── Epic 1: Dead skill names in model-profiles.md ─────────────────────────────
|
|
22
|
+
# Scope: model-profiles.md is the canonical skill-roster reference.
|
|
23
|
+
# Other docs may legitimately reference npm tools or conceptual names.
|
|
24
|
+
echo "--- [Epic 1] dead skill names in docs/references/model-profiles.md ---"
|
|
25
|
+
DEAD=()
|
|
26
|
+
while IFS= read -r name; do
|
|
27
|
+
if [[ ! -d "$name" ]]; then
|
|
28
|
+
DEAD+=("$name")
|
|
29
|
+
fi
|
|
30
|
+
done < <(grep -oE '`[a-z][a-z-]+`' docs/references/model-profiles.md \
|
|
31
|
+
| tr -d '`' \
|
|
32
|
+
| grep -E '^[a-z]+-[a-z]+(-[a-z]+)?$' \
|
|
33
|
+
| sort -u)
|
|
34
|
+
|
|
35
|
+
if [[ ${#DEAD[@]} -eq 0 ]]; then
|
|
36
|
+
pass "all skill names in model-profiles.md resolve to real directories"
|
|
37
|
+
else
|
|
38
|
+
for name in "${DEAD[@]}"; do
|
|
39
|
+
fail "dead skill name in model-profiles.md: '$name' has no matching directory"
|
|
40
|
+
done
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
# ── Epic 1: Legacy MD artifact names in live docs/ (docs/archive/ exempt) ─────
|
|
44
|
+
# docs/archive/ holds historical/exploratory material (Epic 6); legacy names there are expected.
|
|
45
|
+
echo "--- [Epic 1] legacy MD artifact names in docs/ ---"
|
|
46
|
+
LEGACY_HITS=$(grep -rE "PLAN\.md|STATE\.md|PROJECT\.md|CONTEXT\.md|SUMMARY\.md|VERIFICATION\.md|RESEARCH\.md|RELEASE-PLAN\.md" \
|
|
47
|
+
docs/ 2>/dev/null \
|
|
48
|
+
| grep -v "docs/archive/" \
|
|
49
|
+
| grep -v "specs/archive" \
|
|
50
|
+
| wc -l | tr -d ' ') || true
|
|
51
|
+
if [[ "$LEGACY_HITS" -eq 0 ]]; then
|
|
52
|
+
pass "no legacy MD artifact names in live docs/ (docs/archive/ exempt)"
|
|
53
|
+
else
|
|
54
|
+
fail "legacy MD artifact names found in docs/ ($LEGACY_HITS occurrences)"
|
|
55
|
+
grep -rE "PLAN\.md|STATE\.md|PROJECT\.md|CONTEXT\.md|SUMMARY\.md|VERIFICATION\.md|RESEARCH\.md|RELEASE-PLAN\.md" \
|
|
56
|
+
docs/ 2>/dev/null \
|
|
57
|
+
| grep -v "docs/archive/" \
|
|
58
|
+
| grep -v "specs/archive" | head -20 >&2
|
|
59
|
+
fi
|
|
60
|
+
|
|
61
|
+
# ── Epic 1: Skill count consistency ───────────────────────────────────────────
|
|
62
|
+
echo "--- [Epic 1] skill count consistency ---"
|
|
63
|
+
LIVE_COUNT=$(ls -d */SKILL.md 2>/dev/null | wc -l | tr -d ' ')
|
|
64
|
+
STALE_COUNT_HITS=$(grep -rE "expect [0-9]+" docs/ 2>/dev/null \
|
|
65
|
+
| grep -v "expect $LIVE_COUNT" | wc -l | tr -d ' ') || true
|
|
66
|
+
if [[ "$STALE_COUNT_HITS" -eq 0 ]]; then
|
|
67
|
+
pass "skill count annotations match live count ($LIVE_COUNT)"
|
|
68
|
+
else
|
|
69
|
+
fail "stale skill count annotation in docs/ (live=$LIVE_COUNT, $STALE_COUNT_HITS mismatches)"
|
|
70
|
+
grep -rE "expect [0-9]+" docs/ 2>/dev/null | grep -v "expect $LIVE_COUNT" >&2
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
# ── Epic 2: Non-canonical specs/ subpaths ─────────────────────────────────────
|
|
74
|
+
# Exclusions: specs/archive, specs/epics/archive, CHANGELOG.md (auto-gen),
|
|
75
|
+
# specs/verifications/reports/ (generated reports), PLAN-evolve-structure.md
|
|
76
|
+
# (migration plan that documents the before→after paths as historical record).
|
|
77
|
+
echo "--- [Epic 2] canonical specs/ subpaths ---"
|
|
78
|
+
LEGACY_SPECS=$(grep -rE "specs/(requirements|plans|audit)\b" \
|
|
79
|
+
--include="*.md" --include="*.sh" --include="*.yaml" --include="*.yml" --include="*.json" . \
|
|
80
|
+
2>/dev/null \
|
|
81
|
+
| grep -v "specs/archive\|specs/epics/archive\|docs/archive/\|\.git\|node_modules\|\.gemini\|\.cursor" \
|
|
82
|
+
| grep -v "CHANGELOG\.md\|specs/verifications/reports/\|PLAN-evolve-structure\.md" \
|
|
83
|
+
| wc -l | tr -d ' ') || true
|
|
84
|
+
if [[ "$LEGACY_SPECS" -eq 0 ]]; then
|
|
85
|
+
pass "no legacy specs/ subpaths (requirements/, plans/, audit/)"
|
|
86
|
+
else
|
|
87
|
+
fail "legacy specs/ subpaths found ($LEGACY_SPECS occurrences)"
|
|
88
|
+
grep -rE "specs/(requirements|plans|audit)\b" \
|
|
89
|
+
--include="*.md" --include="*.sh" --include="*.yaml" --include="*.yml" --include="*.json" . \
|
|
90
|
+
2>/dev/null \
|
|
91
|
+
| grep -v "specs/archive\|specs/epics/archive\|docs/archive/\|\.git\|node_modules\|\.gemini\|\.cursor" \
|
|
92
|
+
| grep -v "CHANGELOG\.md\|specs/verifications/reports/\|PLAN-evolve-structure\.md" \
|
|
93
|
+
| head -10 >&2
|
|
94
|
+
fi
|
|
95
|
+
|
|
96
|
+
# ── Epic 3: BCP slop guard ────────────────────────────────────────────────────
|
|
97
|
+
echo "--- [Epic 3] BCP terminology ---"
|
|
98
|
+
BCP_SLOP=$(grep -ri "build commit point" . 2>/dev/null \
|
|
99
|
+
| grep -v "specs/archive\|\.git\|node_modules\|\.gemini\|\.cursor\|validate-doctrine\.sh" \
|
|
100
|
+
| wc -l | tr -d ' ') || true
|
|
101
|
+
if [[ "$BCP_SLOP" -eq 0 ]]; then
|
|
102
|
+
pass "no 'Build Commit Point' slop — BCP = Business Complexity Points"
|
|
103
|
+
else
|
|
104
|
+
fail "'Build Commit Point' found ($BCP_SLOP hits) — canonical term is 'Business Complexity Points'; see docs/references/bcp.md"
|
|
105
|
+
grep -ri "build commit point" . 2>/dev/null \
|
|
106
|
+
| grep -v "specs/archive\|\.git\|node_modules\|\.gemini\|\.cursor\|validate-doctrine\.sh" | head -5 >&2
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
# ── Epic 4: SKILL.md size cap ─────────────────────────────────────────────────
|
|
110
|
+
echo "--- [Epic 4] SKILL.md size cap ---"
|
|
111
|
+
if bash "$REPO_ROOT/scripts/check-skill-size.sh" >/dev/null 2>&1; then
|
|
112
|
+
pass "all SKILL.md files within tiered size cap (150 critical-path / 120 utility)"
|
|
113
|
+
else
|
|
114
|
+
fail "a SKILL.md exceeds its size cap — run: bash scripts/check-skill-size.sh"
|
|
115
|
+
bash "$REPO_ROOT/scripts/check-skill-size.sh" 2>&1 | grep "^FAIL:" >&2 || true
|
|
116
|
+
fi
|
|
117
|
+
|
|
118
|
+
# ── Epic 5: Critical-path skills document a handoff target ─────────────────────
|
|
119
|
+
echo "--- [Epic 5] critical-path handoff targets ---"
|
|
120
|
+
CRITICAL_HANDOFF=(survey-context plan-work develop-tdd verify-work audit-code release-branch kickoff-branch commit-message)
|
|
121
|
+
MISSING_HANDOFF=()
|
|
122
|
+
for s in "${CRITICAL_HANDOFF[@]}"; do
|
|
123
|
+
if [[ -f "$s/SKILL.md" ]] && ! grep -qiE "handoff|next_skill|next:" "$s/SKILL.md"; then
|
|
124
|
+
MISSING_HANDOFF+=("$s")
|
|
125
|
+
fi
|
|
126
|
+
done
|
|
127
|
+
if [[ ${#MISSING_HANDOFF[@]} -eq 0 ]]; then
|
|
128
|
+
pass "all critical-path skills document a handoff target"
|
|
129
|
+
else
|
|
130
|
+
for s in "${MISSING_HANDOFF[@]}"; do
|
|
131
|
+
fail "critical-path skill '$s' has no documented handoff/next_skill"
|
|
132
|
+
done
|
|
133
|
+
fi
|
|
134
|
+
|
|
135
|
+
# ── Summary ────────────────────────────────────────────────────────────────────
|
|
136
|
+
echo "---"
|
|
137
|
+
if [[ "$ERRORS" -eq 0 ]]; then
|
|
138
|
+
echo "validate-doctrine: ALL checks passed"
|
|
139
|
+
exit 0
|
|
140
|
+
else
|
|
141
|
+
echo "validate-doctrine: $ERRORS check(s) FAILED" >&2
|
|
142
|
+
exit 1
|
|
143
|
+
fi
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Seed Conventions — Reference Templates
|
|
2
|
+
|
|
3
|
+
## Agent config template (CLAUDE.md / GEMINI.md / AGENTS.md)
|
|
4
|
+
|
|
5
|
+
All three files use the same structure — only the header differs:
|
|
6
|
+
- `CLAUDE.md` → `# [Project Name] — Claude Code`
|
|
7
|
+
- `GEMINI.md` → `# [Project Name] — Gemini CLI`
|
|
8
|
+
- `AGENTS.md` → `# [Project Name] — OpenCode`
|
|
9
|
+
|
|
10
|
+
```markdown
|
|
11
|
+
# [Project Name] — [Agent]
|
|
12
|
+
|
|
13
|
+
Read CONVENTIONS.md before any GitHub or git operation.
|
|
14
|
+
|
|
15
|
+
## Project
|
|
16
|
+
[One sentence description]
|
|
17
|
+
Stack: [language, framework, runtime]
|
|
18
|
+
|
|
19
|
+
## Commands
|
|
20
|
+
| Action | Command |
|
|
21
|
+
|--------|---------|
|
|
22
|
+
| Run | `[cmd]` |
|
|
23
|
+
| Test | `[cmd]` |
|
|
24
|
+
| Build | `[cmd]` |
|
|
25
|
+
| Lint | `[cmd]` |
|
|
26
|
+
|
|
27
|
+
## Architecture
|
|
28
|
+
[1–2 sentences. Key modules and their relationships.]
|
|
29
|
+
|
|
30
|
+
## Conventions
|
|
31
|
+
- [convention 1]
|
|
32
|
+
- [convention 2]
|
|
33
|
+
|
|
34
|
+
## Never
|
|
35
|
+
- [hard stop 1]
|
|
36
|
+
- [hard stop 2]
|
|
37
|
+
|
|
38
|
+
## Agent Rules
|
|
39
|
+
- **Workflow Mandate:** You MUST use the bigpowers skills (e.g. `plan-work`, `develop-tdd`, `orchestrate-project`) to perform tasks. DO NOT write code directly in response to a user prompt like "build this feature".
|
|
40
|
+
- Read specs/ before writing code.
|
|
41
|
+
- All planning and specifications MUST be written to `specs/` (`product/SCOPE_LATEST.yaml`, `release-plan.yaml`, `epics/`) before any code is generated.
|
|
42
|
+
- Write the minimum code that solves the stated problem. Nothing extra.
|
|
43
|
+
- Never refactor, rename, or reorganize code outside the task scope.
|
|
44
|
+
- Run tests after every change. Show evidence before declaring done.
|
|
45
|
+
- One clarifying question beats a wrong assumption baked into 200 lines.
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## opencode.json template
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"$schema": "https://opencode.ai/config.json",
|
|
53
|
+
"instructions": [".cursor/rules/*.mdc"]
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## CONVENTIONS.md
|
|
58
|
+
|
|
59
|
+
Use the standard bigpowers CONVENTIONS.md as the base. Fill in the project-specific defensive code categories from the interview answers.
|
|
60
|
+
|
|
61
|
+
## Stack profile fragments
|
|
62
|
+
|
|
63
|
+
If the user selected a stack profile, merge the matching `profiles/<name>.md` fragment into the generated `CONVENTIONS.md` under a `## Stack Conventions` section. Profiles supply language-specific commands, architecture patterns, and never-do additions.
|
|
@@ -5,8 +5,7 @@ description: Generate CLAUDE.md and CONVENTIONS.md for a brand-new project throu
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Seed Conventions
|
|
8
|
-
> **HARD GATE** —
|
|
9
|
-
|
|
8
|
+
> **HARD GATE** — Before any new code lands, confirm the project conventions are understood. Ask: 'What does a good commit message look like in this project?'
|
|
10
9
|
|
|
11
10
|
Bootstrap a new project with the AI agent conventions it needs. Run this once at the start of a greenfield project.
|
|
12
11
|
|
|
@@ -23,196 +22,43 @@ Bootstrap a new project with the AI agent conventions it needs. Run this once at
|
|
|
23
22
|
Ask the user these questions (one at a time, wait for each answer):
|
|
24
23
|
|
|
25
24
|
1. **Project name and one-sentence description** — "What is this project? One sentence."
|
|
26
|
-
|
|
27
25
|
2. **Stack** — "What language, framework, and runtime? (e.g. TypeScript / Next.js / Node 22)"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
5. **Conventions** — "Any naming conventions, file organization rules, or patterns that every contributor (human or agent) must follow?"
|
|
36
|
-
|
|
37
|
-
6. **Never-do list** — "What are the hard stops? Things an agent must never touch or do in this project?"
|
|
38
|
-
|
|
39
|
-
7. **Defensive code categories** — "Which of these apply to your project? (Rate limit / Retry with backoff / Circuit breaker / Timeout / Graceful degradation)"
|
|
26
|
+
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`.
|
|
27
|
+
3. **Commands** — "What commands do you use for: run, test, build, lint?"
|
|
28
|
+
4. **Architecture** — "Key modules and relationships in 1–2 sentences."
|
|
29
|
+
5. **Conventions** — "Any naming, file organization, or patterns all agents must follow?"
|
|
30
|
+
6. **Never-do list** — "What are the hard stops? Things an agent must never touch?"
|
|
31
|
+
7. **Defensive code categories** — "Which apply? (Rate limit / Retry / Circuit breaker / Timeout / Graceful degradation)"
|
|
40
32
|
|
|
41
33
|
## Generate files
|
|
42
34
|
|
|
43
|
-
After the interview, generate:
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
```markdown
|
|
48
|
-
# [Project Name] — Claude Code
|
|
49
|
-
|
|
50
|
-
Read CONVENTIONS.md before any GitHub or git operation.
|
|
51
|
-
|
|
52
|
-
## Project
|
|
53
|
-
[One sentence description]
|
|
54
|
-
Stack: [language, framework, runtime]
|
|
55
|
-
|
|
56
|
-
## Commands
|
|
57
|
-
| Action | Command |
|
|
58
|
-
|--------|---------|
|
|
59
|
-
| Run | `[cmd]` |
|
|
60
|
-
| Test | `[cmd]` |
|
|
61
|
-
| Build | `[cmd]` |
|
|
62
|
-
| Lint | `[cmd]` |
|
|
63
|
-
|
|
64
|
-
## Architecture
|
|
65
|
-
[1–2 sentences. Key modules and their relationships.]
|
|
66
|
-
|
|
67
|
-
## Conventions
|
|
68
|
-
- [convention 1]
|
|
69
|
-
- [convention 2]
|
|
70
|
-
|
|
71
|
-
## Never
|
|
72
|
-
- [hard stop 1]
|
|
73
|
-
- [hard stop 2]
|
|
74
|
-
|
|
75
|
-
## Agent Rules
|
|
76
|
-
- **Workflow Mandate:** You MUST use the bigpowers skills (e.g. `plan-work`, `develop-tdd`, `orchestrate-project`) to perform tasks. DO NOT write code directly in response to a user prompt like "build this feature".
|
|
77
|
-
- Read specs/ before writing code.
|
|
78
|
-
- All planning and specifications MUST be written to `specs/` (`product/SCOPE_LATEST.yaml`, `release-plan.yaml`, `epics/`) before any code is generated.
|
|
79
|
-
- Write the minimum code that solves the stated problem. Nothing extra.
|
|
80
|
-
- Never refactor, rename, or reorganize code outside the task scope.
|
|
81
|
-
- Run tests after every change. Show evidence before declaring done.
|
|
82
|
-
- One clarifying question beats a wrong assumption baked into 200 lines.
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### `GEMINI.md`
|
|
86
|
-
|
|
87
|
-
```markdown
|
|
88
|
-
# [Project Name] — Gemini CLI
|
|
89
|
-
|
|
90
|
-
Read CONVENTIONS.md before any GitHub or git operation.
|
|
91
|
-
|
|
92
|
-
## Project
|
|
93
|
-
[One sentence description]
|
|
94
|
-
Stack: [language, framework, runtime]
|
|
95
|
-
|
|
96
|
-
## Commands
|
|
97
|
-
| Action | Command |
|
|
98
|
-
|--------|---------|
|
|
99
|
-
| Run | `[cmd]` |
|
|
100
|
-
| Test | `[cmd]` |
|
|
101
|
-
| Build | `[cmd]` |
|
|
102
|
-
| Lint | `[cmd]` |
|
|
103
|
-
|
|
104
|
-
## Architecture
|
|
105
|
-
[1–2 sentences. Key modules and their relationships.]
|
|
106
|
-
|
|
107
|
-
## Conventions
|
|
108
|
-
- [convention 1]
|
|
109
|
-
- [convention 2]
|
|
110
|
-
|
|
111
|
-
## Never
|
|
112
|
-
- [hard stop 1]
|
|
113
|
-
- [hard stop 2]
|
|
114
|
-
|
|
115
|
-
## Agent Rules
|
|
116
|
-
- **Workflow Mandate:** You MUST use the bigpowers skills (e.g. `plan-work`, `develop-tdd`, `orchestrate-project`) to perform tasks. DO NOT write code directly in response to a user prompt like "build this feature".
|
|
117
|
-
- Read specs/ before writing code.
|
|
118
|
-
- All planning and specifications MUST be written to `specs/` (`product/SCOPE_LATEST.yaml`, `release-plan.yaml`, `epics/`) before any code is generated.
|
|
119
|
-
- Write the minimum code that solves the stated problem. Nothing extra.
|
|
120
|
-
- Never refactor, rename, or reorganize code outside the task scope.
|
|
121
|
-
- Run tests after every change. Show evidence before declaring done.
|
|
122
|
-
- One clarifying question beats a wrong assumption baked into 200 lines.
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### `AGENTS.md`
|
|
126
|
-
|
|
127
|
-
```markdown
|
|
128
|
-
# [Project Name] — OpenCode
|
|
129
|
-
|
|
130
|
-
Read CONVENTIONS.md before any GitHub or git operation.
|
|
131
|
-
|
|
132
|
-
## Project
|
|
133
|
-
[One sentence description]
|
|
134
|
-
Stack: [language, framework, runtime]
|
|
135
|
-
|
|
136
|
-
## Commands
|
|
137
|
-
| Action | Command |
|
|
138
|
-
|--------|---------|
|
|
139
|
-
| Run | `[cmd]` |
|
|
140
|
-
| Test | `[cmd]` |
|
|
141
|
-
| Build | `[cmd]` |
|
|
142
|
-
| Lint | `[cmd]` |
|
|
143
|
-
|
|
144
|
-
## Architecture
|
|
145
|
-
[1–2 sentences. Key modules and their relationships.]
|
|
146
|
-
|
|
147
|
-
## Conventions
|
|
148
|
-
- [convention 1]
|
|
149
|
-
- [convention 2]
|
|
150
|
-
|
|
151
|
-
## Never
|
|
152
|
-
- [hard stop 1]
|
|
153
|
-
- [hard stop 2]
|
|
154
|
-
|
|
155
|
-
## Agent Rules
|
|
156
|
-
- **Workflow Mandate:** You MUST use the bigpowers skills (e.g. `plan-work`, `develop-tdd`, `orchestrate-project`) to perform tasks. DO NOT write code directly in response to a user prompt like "build this feature".
|
|
157
|
-
- Read specs/ before writing code.
|
|
158
|
-
- All planning and specifications MUST be written to `specs/` (`product/SCOPE_LATEST.yaml`, `release-plan.yaml`, `epics/`) before any code is generated.
|
|
159
|
-
- Write the minimum code that solves the stated problem. Nothing extra.
|
|
160
|
-
- Never refactor, rename, or reorganize code outside the task scope.
|
|
161
|
-
- Run tests after every change. Show evidence before declaring done.
|
|
162
|
-
- One clarifying question beats a wrong assumption baked into 200 lines.
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### `opencode.json`
|
|
166
|
-
|
|
167
|
-
```json
|
|
168
|
-
{
|
|
169
|
-
"$schema": "https://opencode.ai/config.json",
|
|
170
|
-
"instructions": [".cursor/rules/*.mdc"]
|
|
171
|
-
}
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
### `CONVENTIONS.md`
|
|
175
|
-
|
|
176
|
-
Use the standard bigpowers CONVENTIONS.md template, filling in the project-specific defensive code categories from the interview.
|
|
35
|
+
After the interview, generate each file using the templates in [REFERENCE.md](REFERENCE.md):
|
|
36
|
+
- `CLAUDE.md`, `GEMINI.md`, `AGENTS.md` — from the agent-config template
|
|
37
|
+
- `opencode.json` — from the opencode template
|
|
38
|
+
- `CONVENTIONS.md` — bigpowers standard template + project defensive code categories
|
|
177
39
|
|
|
178
40
|
### `specs/` directory
|
|
179
41
|
|
|
180
|
-
Create the evolved bigpowers directory structure:
|
|
181
|
-
|
|
182
42
|
```bash
|
|
183
|
-
mkdir -p specs/product
|
|
184
|
-
mkdir -p specs/
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
# Create empty placeholder files
|
|
192
|
-
touch specs/product/SCOPE_LATEST.yaml
|
|
193
|
-
touch specs/product/VISION_LATEST.yaml
|
|
194
|
-
touch specs/product/GLOSSARY_LATEST.yaml
|
|
195
|
-
touch specs/release-plan.yaml
|
|
196
|
-
touch specs/execution-status.yaml
|
|
197
|
-
touch specs/planning-status.yaml
|
|
198
|
-
touch specs/state.yaml
|
|
199
|
-
touch specs/tech-architecture/tech-stack.md
|
|
200
|
-
touch specs/tech-architecture/security.md
|
|
201
|
-
touch specs/tech-architecture/test.md
|
|
202
|
-
touch specs/tech-architecture/design.md
|
|
203
|
-
touch specs/tech-architecture/REFACTOR_LATEST.md
|
|
204
|
-
touch specs/tech-architecture/IMPACT_LATEST.md
|
|
43
|
+
mkdir -p specs/product specs/product/snapshots specs/epics/archive
|
|
44
|
+
mkdir -p specs/tech-architecture specs/adr specs/verifications specs/bugs
|
|
45
|
+
touch specs/product/SCOPE_LATEST.yaml specs/product/VISION_LATEST.yaml specs/product/GLOSSARY_LATEST.yaml
|
|
46
|
+
touch specs/release-plan.yaml specs/execution-status.yaml specs/planning-status.yaml specs/state.yaml
|
|
47
|
+
touch specs/tech-architecture/tech-stack.md specs/tech-architecture/security.md
|
|
48
|
+
touch specs/tech-architecture/test.md specs/tech-architecture/design.md
|
|
49
|
+
touch specs/tech-architecture/REFACTOR_LATEST.md specs/tech-architecture/IMPACT_LATEST.md
|
|
205
50
|
touch specs/bugs/registry.yaml
|
|
206
|
-
echo "# Specs\n\nAll planning documents for this project.
|
|
51
|
+
echo "# Specs\n\nAll planning documents for this project." > specs/README.md
|
|
207
52
|
```
|
|
208
53
|
|
|
209
|
-
**Note:** `specs/state.yaml.lock` is NOT pre-created —
|
|
54
|
+
**Note:** `specs/state.yaml.lock` is NOT pre-created — acquired/released dynamically.
|
|
55
|
+
|
|
56
|
+
`specs/state.yaml` carries a top-level `workflow_mode` key (`team-pr` | `solo-git`, default `team-pr`). 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.
|
|
210
57
|
|
|
211
|
-
|
|
58
|
+
## Verify
|
|
212
59
|
|
|
213
60
|
- [ ] CLAUDE.md exists and is populated
|
|
214
61
|
- [ ] CONVENTIONS.md exists and includes specs/ output convention
|
|
215
|
-
- [ ] specs/ directory exists
|
|
216
62
|
- [ ] specs/product/ exists with SCOPE_LATEST.yaml, VISION_LATEST.yaml, GLOSSARY_LATEST.yaml
|
|
217
63
|
- [ ] specs/tech-architecture/ exists with tech-stack.md, security.md, test.md, design.md
|
|
218
64
|
- [ ] specs/verifications/ exists
|
package/slice-tasks/SKILL.md
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: slice-tasks
|
|
3
|
-
description:
|
|
3
|
+
description: "PLANNING SPINE STEP 2 of 3 — Slice the work: break a scoped PRD into vertical-slice stories in specs/epics/. Use after scope-work (step 1), before plan-work (step 3). Not a substitute for scope-work or plan-work."
|
|
4
4
|
model: sonnet
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Slice Tasks
|
|
8
8
|
|
|
9
|
+
> **Spine position:** Step 2 — scope-work → slice-tasks → plan-work.
|
|
10
|
+
|
|
9
11
|
Produce **epic capsule story tasks** in `specs/epics/eNN-slug/` — vertical slices, each independently deliverable and testable. Output: decoupled `eNNsYY-tasks.yaml` files with runnable verify commands. Legacy `specs/epics/ (see slice-tasks)` is deprecated; use capsule dirs + `execution-status.yaml`.
|
|
10
12
|
|
|
11
13
|
## Process
|
package/survey-context/SKILL.md
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: survey-context
|
|
3
3
|
model: haiku
|
|
4
|
-
description: Per-task context
|
|
4
|
+
description: Per-task context bootstrap — reads existing specs/ and tech-architecture docs to map the current lifecycle phase and suggest the next skill. Use at the start of any task, when returning after a break, or when unsure what to do next. For deriving a tech-stack doc from scratch, use map-codebase first.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Survey Context
|
|
8
8
|
|
|
9
9
|
Read the project's current state and give a phase map + next-skill recommendation. This is the "where am I?" skill — run it at the start of every task.
|
|
10
10
|
|
|
11
|
+
> **Use this vs map-codebase:** `survey-context` consumes existing specs and docs (fast; does not re-derive). `map-codebase` builds the tech-stack doc from scratch by scanning the codebase. Run `map-codebase` when `specs/tech-architecture/tech-stack.md` doesn't exist yet; run `survey-context` when it does.
|
|
12
|
+
|
|
11
13
|
> **HARD GATE** — Read specs/ files before suggesting next steps. If state.yaml is stale or contradicts the codebase, request clarification rather than assuming intent.
|
|
12
14
|
|
|
13
15
|
Orchestrate-project 6 phases: Phase 1 Discover - Phase 2 Elaborate - Phase 3 Plan - Phase 4 Build - Phase 5 Verify - Phase 6 Release
|