

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1# story: e38s082# story: e51s053# story: e45s224# story: e45s235# story: e55s0367# bigpowers — Claude Code89Read CONVENTIONS.md before any GitHub or git operation.1011[`constitution.md`](constitution.md) is a consolidated entry point synthesizing12this project's doctrine (this file, CONVENTIONS.md, docs/PRINCIPLES.md,13docs/references/*.md) into bigspec's B0-B10 + Capstone blocks, with citations14back to the fuller text. It's a starting point for a reader, not a15replacement — this file remains fully authoritative for its own content today.1617<!-- BEGIN bigpowers:context-routing -->18## Context Routing1920Load subdirectory context **by file glob** — do not read the full doc tree up front.2122| Glob / trigger | Load first | Fallback |23|----------------|------------|----------|24| `skills/**` | Active skill's `SKILL.md` + sibling `REFERENCE.md` if linked | `SKILL-INDEX.md` |25| `specs/epics/**` | Capsule `epic.yaml` + active story `-tasks.yaml` | `specs/release-plan.yaml` |26| `specs/product/**` | `SCOPE_LATEST.yaml`, `VISION_LATEST.yaml` | `specs/README.md` |27| `specs/tech-architecture/**` | `tech-stack.md` + epic `eNN-TEST_PLAN_LATEST.md` if present | `CONVENTIONS.md` |28| `scripts/**` | `CONVENTIONS.md` § Generated artifact targets | This file § Commands |29| `website/**` | `website/README.md` if present | Never edit `website/src/content/docs/` (generated) |30| `docs/**` | Matching doc under `docs/` | `docs/references/` |31| Default / session start | This file → `CONVENTIONS.md` → `specs/state.yaml` | `survey-context` |3233Sub-AGENTS.md files (when present in consumer projects) override this table for their directory only.34<!-- END bigpowers:context-routing -->3536<!-- BEGIN bigpowers:learned-preferences -->37## Learned User Preferences3839_Durable preferences discovered across sessions. Update via `session-state` — do not infer from chat alone._4041- Prefer `rtk`-prefixed shell commands for git, test, and build output (token savings).42- Run Preflight before forward work; never dismiss red gates as pre-existing.43- Edit `skills/*/SKILL.md` sources only — never `.cursor/rules/` or `.gemini/` artifacts.4445## Workspace Facts4647_Stable repo facts — prefer these over re-discovery._4849- Stack: Markdown / Bash documentation project; skills sync via `bash scripts/sync-skills.sh`.50- Planning SoT: `specs/state.yaml`, `specs/release-plan.yaml`, `specs/execution-status.yaml`.51- Story traceability: `# story: eNNsNN` tags in implementing files; `bash scripts/trace-stories.sh --strict` in CI.52- Rule matrix: `bash scripts/compile-rule-matrix.sh` → `specs/rule-matrix.json` (P0–P3 tiers from CONVENTIONS.md).53<!-- END bigpowers:learned-preferences -->5455## Project5657bigpowers — agent skills for spec-driven, test-first software development by solo developers (skill count and catalog are auto-generated in `SKILL-INDEX.md`; never hardcode the count in docs).58Stack: Markdown / Bash (documentation-based; skills integrate with Claude Code, Cursor, Gemini CLI)5960## Commands6162| Action | Command |63|---------|---------|64| Install | `npm install -g bigpowers && bigpowers setup` |65| Run | `bash scripts/sync-skills.sh` |66| Test | N/A (documentation project) |67| Build | `bash scripts/install.sh` (from source) |68| Lint | `bash scripts/sync-skills.sh` (validates SKILL.md syntax) |69| Validate specs YAML | `bash scripts/validate-specs-yaml.sh` |70| Typecheck | N/A (Markdown / Bash project) |71| CI platform | GitHub Actions (`.github/workflows/publish.yml`, `sync-skills.yml`, `golden-suite.yml`) |72| Compliance | `npm run compliance` |73| Verification Gates | `bash scripts/run-verification-gates.sh` |74| Traceability | `bash scripts/trace-stories.sh --strict` | grep for story tags (traceability check) |75| Preflight | `npm run compliance && bash scripts/run-verification-gates.sh && bash scripts/sync-skills.sh && bash scripts/trace-stories.sh --strict` | Full local green stack before forward work. Chain ends on `--strict` traceability — no trailing always-exit-0 step. |76| Catalog drift (advisory) | `bash scripts/check-catalog-drift.sh` | e54s02 Confirm gate during catalog freeze — always exits 0; run manually when changing skills, not part of Preflight. |77| CI | `gh pr checks` | Remote CI green when a PR is open |7879### Pre-Merge Checklist8081Before opening a PR or landing a branch, run:8283```bash84npm run compliance && bash scripts/run-verification-gates.sh85```8687If any gate fails, fix before merging. Run `--baseline` after any intentional increase in skill count or structure.8889**BCP Plus:** For stories sized with the 13-dimension BCP Plus methodology, confirm the `bcp_plus_breakdown` is present in the epic YAML and carried into `state.yaml` as `epic_cycle.bcp_plus`. See `docs/references/bcp-plus.md` for the NFR Gate pattern.9091## Architecture9293Collection of verb-noun skills under `skills/`, each with a SKILL.md source file and supporting documentation. Runtime specs live in `specs/state.yaml`, `specs/release-plan.yaml`, and `specs/execution-status.yaml`; intent in `specs/product/`; epic shards in `specs/epics/`. The sync-skills.sh script auto-generates artifacts for Cursor (.cursor/rules) and Gemini CLI (.gemini/extensions/bigpowers/) from SKILL.md sources. All planning output goes to specs/ at the project root.9495## Conventions9697- Skill directories under `skills/` use verb-noun naming (two words, kebab-case)98- Every skill has a single SKILL.md file as its source of truth99- All planning/spec output goes to specs/ at project root100- Artifacts in .cursor/rules and .gemini/ are auto-generated; edit SKILL.md, not artifacts101- Run sync-skills.sh after any SKILL.md changes to regenerate artifacts102- Website content in website/src/content/docs/ is auto-generated by prebuild; edit repo sources, not site files103104## Never105106- Never edit .cursor/rules or .gemini/extensions/ directly — these are generated files107- Never edit website/src/content/docs/ directly — these are generated files; website/ is the fourth generated artifact target (alongside .cursor/, .gemini/, .pi/)108- Never create a skill without a SKILL.md file and proper verb-noun naming109- Never push changes without running sync-skills.sh first110111## Token Management112113**Mechanical backstop (e45s03):** `scripts/hooks/token-mgmt-pre-tool-use.sh` blocks oversized tool calls when prose rules are ignored. Wire as a `PreToolUse` hook for `Read`, `Grep`, and `Bash` (alongside `hooks/pre-tool-use.sh` for git safety). Thresholds: Read >100KB, Grep >200 matches without `head_limit`, Bash commands likely to exceed 500 output lines without `rtk`/`sqz compress`. Install snippet:114115```json116{117 "hooks": {118 "PreToolUse": [119 { "matcher": "Read|Grep|Bash", "hooks": [{ "type": "command", "command": "bash scripts/hooks/token-mgmt-pre-tool-use.sh" }] }120 ]121 }122}123```124125Context engineering (write/select/compress/isolate — see `docs/references/context-engineering.md`):126127- **Write (token-efficient content):** Short functions (4-20 lines), unique symbol names, headless tests. Don't restate code in comments.128- **Select (include only what's relevant):** Use `bts_map` for ranked file lists, `survey-context` for phase bootstrap. Don't read files you don't need.129- **Compress (reduce without losing structure):** Use `bts_compress` or pipe through `sqz compress`. Use `rtk` for build/test/git output (60-99% savings). Prefer `terse-mode` when context is heavy.130- **Isolate (partition work):** Use `kickoff-branch` for isolated worktrees, `dispatch-agents` for parallel tasks with disjoint scopes, `session-state` for cold-start handoff.131132**Effort classification:** Skills carry an `effort:` frontmatter field (`light` | `standard` | `heavy`). Prefer `light` skills for bootstrap/status checks; reserve `heavy` for epic builds and multi-phase planning.133134- **Auto-Terse**: When a session exceeds 20 turns or the context window feels "heavy" (latency increasing), you MUST switch to `terse-mode` to save tokens.135- **Context Compaction**: Every 10 turns, summarize the current session state and implementation decisions into a short, high-density note.136- **Minimal Output**: Prefer text-only output for simple status; use `web_fetch` or `run_shell_command` only for evidence.137- **Stream Stability**: When writing large files or long documents, output continuously in chunks of ~200 lines. Do not pause. If you need time to process, emit a placeholder comment rather than going silent.138139## Session Start140141Before any task, run this sequence — not optional:1421431. Read `CLAUDE.md` (this file)1442. Read `CONVENTIONS.md`1453. Read `specs/state.yaml` if it exists — current session and active epic1464. Read `specs/release-plan.yaml` if it exists — active release context147148## Agent Rules149150- **Workflow Mandate:** You MUST use the bigpowers skills (e.g., `plan-work`, `develop-tdd`, `craft-skill`) to perform tasks. DO NOT write code directly in response to a user prompt like "build this feature".151- **Always Green / fix-or-log:** Preflight and CI must be green before forward work. Any reproducible gate failure during unrelated work requires **quick-fix** or **fix-bug** — see CONVENTIONS § Discovered Defects. Never dismiss failures as pre-existing or out of scope.152- Read specs/ and CONVENTIONS.md before writing code.153- Write the minimum code that solves the stated problem. Nothing extra.154- Run tests after every change. Show evidence before declaring done.155- One clarifying question beats a wrong assumption baked into 200 lines.156- All written output (plans, specs, investigations) goes in specs/.157158## bts toolchain159160`bts` is installed. Prefer its verbs over ad-hoc shell commands.161162| Task | Command | Avoid |163|------|---------|-------|164| Search code | `bts find --print <pattern>` | grep / find / cat |165| Interactive search | `bts find <pattern>` | manual grep pipes |166| Compress for context | `bts compress <file>` or `cmd \| bts compress` | summarising by hand |167| Repo map | `bts map` | listing files by hand |168| Library docs | `bts docs <lib>` | guessing from training data |169| Package source | `bts src <pkg>` | git clone |170| Toolchain health | `bts doctor` | which / command -v |171172**Rules**173- Search with `bts find` before opening files to locate a symbol or pattern.174- Pipe anything > 200 lines through `bts compress` before adding to context.175- Run `bts map` when asked for a repo overview.176- Use `bts docs <lib>` before answering questions about library APIs. Doc fetches use `scripts/lib/doc-fetch-cache.sh` (ETag-revalidated, 300s TTL — see `context7-mcp` skill, e45s20).177- If a tool is missing, say so and run `bts doctor` — do not silently substitute.178179<!-- BEGIN rtk-pretooluse-hook (e45s16 — mechanical PreToolUse backstop; remove block to disable) -->180181**RTK hook (installed):** `scripts/hooks/rtk-rewrite.sh` is symlinked into `~/.claude/hooks/` by `bash scripts/install.sh` and registered as a Bash `PreToolUse` hook. It delegates to `rtk hook claude` — prose rules below are a fallback only when the hook is absent.182183<!-- END rtk-pretooluse-hook -->184185<!-- BEGIN sqz-claude-guidance (auto-installed by sqz init; remove this block to disable) -->186187## sqz — Context Compression (READ FIRST)188189sqz is installed in this project. It compresses tool output so large190files, long logs, and verbose command output cost far fewer tokens.191There are **two ways** sqz is wired in, and you should prefer each192one in the situations below.193194### Preferred tools (MCP)195196The `sqz-mcp` server is registered in this project's MCP config. It197exposes three read-only tools that compress their output through the198sqz pipeline:199200- **`sqz_read_file`** — read a file from disk and return a compressed201 view. **PREFER this over the built-in `Read` tool** for any file202 larger than ~2KB or any file you might read more than once in the203 same session. Repeat reads return a 13-token `§ref:HASH§` reference204 instead of the full content.205206- **`sqz_grep`** — search files for a literal string or regex.207 **PREFER this over the built-in `Grep`** for anything that might208 match more than a handful of lines. Caps at 200 matches by default;209 raise with `max_matches` if needed.210211- **`sqz_list_dir`** — list a directory. Skips `.git`, `node_modules`,212 `target`, `dist`, `build`, `vendor`, `__pycache__` so the output213 stays focused. **PREFER this over `ls -la` via Bash** when you want214 to see a project layout.215216The built-in `Read`, `Grep`, `Glob` tools remain available. Use them for:217- Tiny config files (<1KB) where compression can't help.218- Byte-exact reads you'll hash or diff (lockfiles, signatures).219- Globbing (sqz has no glob tool; `Glob` is still the right choice).220221### Bash commands (hooked automatically)222223When you run a shell command through the `Bash` tool, a PreToolUse hook224rewrites it to pipe output through `sqz compress`. This is transparent:225you don't need to remember to add anything, but it's useful to know226that these commands get compressed automatically:227228```bash229git status # → git status 2>&1 | sqz compress --cmd git230cargo test # → cargo test 2>&1 | sqz compress --cmd cargo231docker ps # → docker ps 2>&1 | sqz compress --cmd docker232kubectl get pods # → kubectl get pods 2>&1 | sqz compress --cmd kubectl233```234235The rewrite is skipped for interactive commands (`vim`, `ssh`,236`python`), compound commands (`a && b`, `a > file.txt`), and anything237already going through sqz.238239### Escape hatch — when you see a `§ref:HASH§` token240241If tool output contains a `§ref:a1b2c3d4§` token and you need the full242content it points at, resolve it. Three equivalent ways:243244- Shell: `/Users/danielvm/.local/bin/sqz expand a1b2c3d4` (or paste the whole token245 `/Users/danielvm/.local/bin/sqz expand §ref:a1b2c3d4§`).246- MCP tool: call `expand` with `{ "prefix": "a1b2c3d4" }`.247- To get uncompressed output for one command: prefix it with248 `SQZ_NO_DEDUP=1` (e.g. `SQZ_NO_DEDUP=1 git log | sqz compress`).249250If the compressed output is actively making the task harder (looping251on refs, small retries replacing one big read), call the `passthrough`252MCP tool to get raw text.253254### When NOT to use sqz tools255256- Writing or editing files — use the built-in `Write`/`Edit` tools.257 sqz has no write tools (by design; see issue #5 follow-up).258- Running commands interactively or in watch mode.259- Reading very small files (<1KB) where compression can't help.260261<!-- END sqz-claude-guidance -->262263<!-- rtk-instructions v2 -->264# RTK (Rust Token Killer) - Token-Optimized Commands265266## Golden Rule267268**Always prefix commands with `rtk`**. If RTK has a dedicated filter, it uses it. If not, it passes through unchanged. This means RTK is always safe to use.269270**Important**: Even in command chains with `&&`, use `rtk`:271```bash272# ❌ Wrong273git add . && git commit -m "msg" && git push274275# ✅ Correct276rtk git add . && rtk git commit -m "msg" && rtk git push277```278279## RTK Commands by Workflow280281### Build & Compile (80-90% savings)282```bash283rtk cargo build # Cargo build output284rtk cargo check # Cargo check output285rtk cargo clippy # Clippy warnings grouped by file (80%)286rtk tsc # TypeScript errors grouped by file/code (83%)287rtk lint # ESLint/Biome violations grouped (84%)288rtk prettier --check # Files needing format only (70%)289rtk next build # Next.js build with route metrics (87%)290```291292### Test (60-99% savings)293```bash294rtk cargo test # Cargo test failures only (90%)295rtk go test # Go test failures only (90%)296rtk jest # Jest failures only (99.5%)297rtk vitest # Vitest failures only (99.5%)298rtk playwright test # Playwright failures only (94%)299rtk pytest # Python test failures only (90%)300rtk rake test # Ruby test failures only (90%)301rtk rspec # RSpec test failures only (60%)302rtk test <cmd> # Generic test wrapper - failures only303```304305### Git (59-80% savings)306```bash307rtk git status # Compact status308rtk git log # Compact log (works with all git flags)309rtk git diff # Compact diff (80%)310rtk git show # Compact show (80%)311rtk git add # Ultra-compact confirmations (59%)312rtk git commit # Ultra-compact confirmations (59%)313rtk git push # Ultra-compact confirmations314rtk git pull # Ultra-compact confirmations315rtk git branch # Compact branch list316rtk git fetch # Compact fetch317rtk git stash # Compact stash318rtk git worktree # Compact worktree319```320321Note: Git passthrough works for ALL subcommands, even those not explicitly listed.322323### GitHub (26-87% savings)324```bash325rtk gh pr view <num> # Compact PR view (87%)326rtk gh pr checks # Compact PR checks (79%)327rtk gh run list # Compact workflow runs (82%)328rtk gh issue list # Compact issue list (80%)329rtk gh api # Compact API responses (26%)330```331332### JavaScript/TypeScript Tooling (70-90% savings)333```bash334rtk pnpm list # Compact dependency tree (70%)335rtk pnpm outdated # Compact outdated packages (80%)336rtk pnpm install # Compact install output (90%)337rtk npm run <script> # Compact npm script output338rtk npx <cmd> # Compact npx command output339rtk prisma # Prisma without ASCII art (88%)340```341342### Files & Search (60-75% savings)343```bash344rtk ls <path> # Tree format, compact (65%)345rtk read <file> # Code reading with filtering (60%)346rtk grep <pattern> # Search grouped by file (75%). Format flags (-c, -l, -L, -o, -Z) run raw.347rtk find <pattern> # Find grouped by directory (70%)348```349350### Analysis & Debug (70-90% savings)351```bash352rtk err <cmd> # Filter errors only from any command353rtk log <file> # Deduplicated logs with counts354rtk json <file> # JSON structure without values355rtk deps # Dependency overview356rtk env # Environment variables compact357rtk summary <cmd> # Smart summary of command output358rtk diff # Ultra-compact diffs359```360361### Infrastructure (85% savings)362```bash363rtk docker ps # Compact container list364rtk docker images # Compact image list365rtk docker logs <c> # Deduplicated logs366rtk kubectl get # Compact resource list367rtk kubectl logs # Deduplicated pod logs368```369370### Network (65-70% savings)371```bash372rtk curl <url> # Compact HTTP responses (70%)373rtk wget <url> # Compact download output (65%)374```375376### Meta Commands377```bash378rtk gain # View token savings statistics379rtk gain --history # View command history with savings380rtk discover # Analyze Claude Code sessions for missed RTK usage381rtk proxy <cmd> # Run command without filtering (for debugging)382rtk init # Add RTK instructions to CLAUDE.md383rtk init --global # Add RTK to ~/.claude/CLAUDE.md384```385386## Token Savings Overview387388| Category | Commands | Typical Savings |389|----------|----------|-----------------|390| Tests | vitest, playwright, cargo test | 90-99% |391| Build | next, tsc, lint, prettier | 70-87% |392| Git | status, log, diff, add, commit | 59-80% |393| GitHub | gh pr, gh run, gh issue | 26-87% |394| Package Managers | pnpm, npm, npx | 70-90% |395| Files | ls, read, grep, find | 60-75% |396| Infrastructure | docker, kubectl | 85% |397| Network | curl, wget | 65-70% |398399Overall average: **60-90% token reduction** on common development operations.400<!-- /rtk-instructions -->
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| danielvm-git/bigpowers.cursor/rules/simple-english.mdc · 139 | Cursor rules | styletypesgitdatabase+6 | 47/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/assess-impact.mdc · 139 | Cursor rules | testtesting-strategydeployment | 66/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/audit-plan.mdc · 139 | Cursor rules | buildteststylegit | 74/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/build-epic.mdc · 139 | Cursor rules | buildgit | 58/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/change-request.mdc · 139 | Cursor rules | no sections | 48/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/commit-message.mdc · 139 | Cursor rules | lint-formatstyletypesgit+3 | 82/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/compose-workflow.mdc · 139 | Cursor rules | styledo-notagent-behaviour | 65/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/context7-mcp.mdc · 139 | Cursor rules | style | 54/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/deepen-architecture.mdc · 139 | Cursor rules | testtesting-strategydo-not | 57/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/define-language.mdc · 139 | Cursor rules | lint-formatdo-not | 65/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/define-success.mdc · 139 | Cursor rules | no sections | 4/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/delegate-task.mdc · 139 | Cursor rules | git | 62/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/deploy.mdc · 139 | Cursor rules | setupbuildtestdeployment | 77/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/verify-work.md · 139 | Windsurf rules | buildtestlint-formatagent-behaviour | 74/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/develop-tdd.mdc · 139 | Cursor rules | teststylearchtesting-strategy+5 | 85/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/diagnose-root.mdc · 139 | Cursor rules | no sections | 39/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/diagnose-stall.mdc · 139 | Cursor rules | no sections | 44/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/dispatch-agents.mdc · 139 | Cursor rules | git | 54/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/edit-document.mdc · 139 | Cursor rules | no sections | 39/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/elaborate-spec.mdc · 139 | Cursor rules | test | 58/100 | 14 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| dotCMS/corecore-web/CLAUDE.md · 949 | CLAUDE.md | teststylearchtesting-strategy+3 | 100/100 | 14 days ago | |
| tphakala/birdnet-goCLAUDE.md · 1.6k | CLAUDE.md | buildtestlint-formatstyle+8 | 100/100 | today | |
| tyrchen/geektime-bootcamp-aiw7/genslides/backend/CLAUDE.md · 230 | CLAUDE.md | testlint-formatstylearch+6 | 100/100 | 9 days ago | |
| nimbalyst/nimbalystpackages/android/CLAUDE.md · 1.5k | CLAUDE.md | setupbuildstylearch+2 | 100/100 | 14 days ago | |
| microsoft/playwrightCLAUDE.md · 95k | CLAUDE.md | buildtestlint-formatstyle+7 | 100/100 | 7 days ago | |
| Adit-Jain-srm/NightmareNetCLAUDE.md · 46 | CLAUDE.md | buildtestlint-formatstyle+6 | 100/100 | 14 days ago | |
| bagisto/bagistoCLAUDE.md · 28k | CLAUDE.md | setupbuildteststyle+5 | 100/100 | 7 days ago | |
| livewire/livewireCLAUDE.md · 24k | CLAUDE.md | setupbuildteststyle+4 | 100/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/danielvm-git-bigpowers-claude)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.