From 87eadfce43aa998a65fba8df0a76703c6437db5f Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 27 Aug 2026 11:56:05 +0000 Subject: [PATCH 1/4] chore(skills): add agent-skill install and index generator scripts - scripts/install-agent-skills.sh: reproducibly vendors the skill packs (slimmed, Markdown-only) into .claude/skills/ and .agents/skills/ - scripts/gen-skills-index.js: generates docs/agent-skills.md from SKILL.md frontmatter Co-authored-by: Prax Lannister --- scripts/gen-skills-index.js | 96 +++++++++++++++++++++++++++++++++ scripts/install-agent-skills.sh | 69 ++++++++++++++++++++++++ 2 files changed, 165 insertions(+) create mode 100755 scripts/gen-skills-index.js create mode 100755 scripts/install-agent-skills.sh diff --git a/scripts/gen-skills-index.js b/scripts/gen-skills-index.js new file mode 100755 index 0000000..a54354b --- /dev/null +++ b/scripts/gen-skills-index.js @@ -0,0 +1,96 @@ +#!/usr/bin/env node +/** + * gen-skills-index.js + * + * Scans .claude/skills/ for vendored skill packs and writes a browsable index + * to docs/agent-skills.md. Reads the `name` and `description` fields from each + * SKILL.md YAML frontmatter. + */ +const fs = require('fs'); +const path = require('path'); + +const ROOT = path.resolve(__dirname, '..'); +const SKILLS_DIR = path.join(ROOT, '.claude', 'skills'); +const OUT = path.join(ROOT, 'docs', 'agent-skills.md'); + +const PACK_META = { + superpowers: { title: 'Superpowers', source: 'obra/superpowers', version: '6.3.0', note: 'Composable SDLC methodology skills.' }, + mattpocock: { title: 'Matt Pocock — Skills for Real Engineers', source: 'mattpocock/skills', version: '1.2.3', note: 'Engineering & productivity skills.' }, + gstack: { title: 'gstack (Garry Tan)', source: 'garrytan/gstack', version: '1.69.0.0', note: 'Role-based "virtual engineering team" skills (slimmed: Markdown only).' }, + pstack: { title: 'pstack (Lauren Tan / poteto)', source: 'michael-denyer/pstack-claude', version: '0.9.14', note: 'Rigorous agent workflow skills (Claude Code/Codex port of poteto\'s pstack).' }, +}; + +function readFrontmatter(file) { + const text = fs.readFileSync(file, 'utf8'); + if (!text.startsWith('---')) return {}; + const end = text.indexOf('\n---', 3); + if (end === -1) return {}; + const fm = text.slice(3, end); + const out = {}; + for (const line of fm.split('\n')) { + const m = line.match(/^(name|description):\s*(.*)$/); + if (m) out[m[1]] = m[2].replace(/^["']|["']$/g, '').trim(); + } + return out; +} + +function findSkills(packDir) { + const results = []; + (function walk(dir) { + for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { + const p = path.join(dir, entry.name); + if (entry.isDirectory()) walk(p); + else if (entry.name === 'SKILL.md') results.push(p); + } + })(packDir); + return results.sort(); +} + +let md = `# Agent Skills\n\n`; +md += `Vendored agent-skill packs, installed into both \`.claude/skills/\` (Claude Code, Cursor) `; +md += `and \`.agents/skills/\` (Codex, Prime Agent). Skills are discovered automatically by `; +md += `compatible agents via the [Agent Skills standard](https://skills.sh).\n\n`; +md += `> Slimmed install: only \`SKILL.md\` files and their Markdown references are vendored. `; +md += `Refresh with \`./scripts/install-agent-skills.sh\` then \`node scripts/gen-skills-index.js\`. `; +md += `All packs are MIT licensed; each pack directory keeps its upstream \`LICENSE\`.\n\n`; + +let total = 0; +for (const pack of Object.keys(PACK_META)) { + const dir = path.join(SKILLS_DIR, pack); + if (!fs.existsSync(dir)) continue; + const meta = PACK_META[pack]; + const skills = findSkills(dir); + total += skills.length; + md += `## ${meta.title}\n\n`; + md += `Source: [\`${meta.source}\`](https://github.com/${meta.source}) · v${meta.version} · MIT · ${meta.note}\n\n`; + md += `| Skill | Description |\n| --- | --- |\n`; + for (const s of skills) { + const fm = readFrontmatter(s); + const name = fm.name || path.basename(path.dirname(s)); + const desc = (fm.description || '').replace(/\|/g, '\\|'); + md += `| \`${name}\` | ${desc} |\n`; + } + md += `\n`; +} + +md += `---\n\n**Total: ${total} skills across ${Object.keys(PACK_META).length} packs.**\n\n`; + +md += `## Recommended for this project\n\n`; +md += `This project is a Node.js/Express web app (a security-hardened visual git\n`; +md += `code-review tool). The following vendored skills map directly to its needs:\n\n`; +md += `| Project need | Use these skills |\n| --- | --- |\n`; +md += `| Security review (OWASP/STRIDE, injection, headers) | \`gstack/cso\`, \`pstack/thermo-nuclear-code-quality-review\`, \`gstack/review\` |\n`; +md += `| Code review before merge | \`mattpocock/code-review\`, \`superpowers/requesting-code-review\`, \`superpowers/receiving-code-review\`, \`pstack/make-pr-easy-to-review\` |\n`; +md += `| Testing (the repo uses Jest) | \`superpowers/test-driven-development\`, \`mattpocock/tdd\`, \`pstack/tdd\` |\n`; +md += `| Debugging server/API issues | \`superpowers/systematic-debugging\`, \`mattpocock/diagnosing-bugs\`, \`gstack/investigate\` |\n`; +md += `| Fixing CI / merge conflicts | \`pstack/fix-ci\`, \`pstack/fix-merge-conflicts\` |\n`; +md += `| QA of the web UI | \`gstack/qa\`, \`gstack/qa-only\` |\n`; +md += `| Planning & shipping features | \`superpowers/writing-plans\`, \`superpowers/executing-plans\`, \`gstack/ship\` |\n\n`; +md += `### Complementary Cursor tooling (enable in the Cursor UI)\n\n`; +md += `- **CodeRabbit** — deep automated code review (\`code-review\` skill / \`code-reviewer\` agent). Requires a \`CODERABBIT_API_KEY\` secret to run non-interactively in Cloud Agents.\n`; +md += `- **Security Review** and **Bugbot** agents — on-demand security and bug review of local changes.\n`; +md += `- These are Cursor plugins/agents, not filesystem skills, so they are enabled from Cursor rather than vendored here.\n`; + +fs.mkdirSync(path.dirname(OUT), { recursive: true }); +fs.writeFileSync(OUT, md); +console.log(`Wrote ${OUT} (${total} skills).`); diff --git a/scripts/install-agent-skills.sh b/scripts/install-agent-skills.sh new file mode 100755 index 0000000..5e3154e --- /dev/null +++ b/scripts/install-agent-skills.sh @@ -0,0 +1,69 @@ +#!/usr/bin/env bash +# +# install-agent-skills.sh +# +# Re-installs / refreshes the vendored agent skill packs into both +# .claude/skills/ (Claude Code, Cursor) and .agents/skills/ (Codex, Prime Agent). +# +# This performs a *slimmed* install: only SKILL.md files and their Markdown +# reference files are copied. Repo machinery (build scripts, browser extensions, +# tests, binaries) is intentionally excluded to keep the repository lean. +# Each pack keeps its upstream LICENSE for attribution (all MIT). +# +# Usage: +# ./scripts/install-agent-skills.sh # refresh all packs +# +# Requires: git, coreutils. Network access to github.com. +set -euo pipefail + +REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +TMP="$(mktemp -d)" +trap 'rm -rf "$TMP"' EXIT + +# pack_name|github_repo|subdir_to_scan_for_SKILL.md +PACKS=( + "superpowers|obra/superpowers|skills" + "mattpocock|mattpocock/skills|skills" + "gstack|garrytan/gstack|." + "pstack|michael-denyer/pstack-claude|plugins/pstack/skills" +) + +extract_pack() { + local pack="$1" repo="$2" subdir="$3" + local src="$TMP/$(echo "$repo" | tr '/' '_')" + echo ">> cloning $repo" + git clone --depth 1 "https://github.com/$repo.git" "$src" >/dev/null 2>&1 + local scanroot="$src/$subdir"; scanroot="${scanroot%/.}"; scanroot="${scanroot%/}" + + for base in "$REPO_ROOT/.claude/skills" "$REPO_ROOT/.agents/skills"; do + local dest="$base/$pack" + rm -rf "$dest"; mkdir -p "$dest" + find "$scanroot" -name SKILL.md \ + -not -path '*/.git/*' -not -path '*/test/*' \ + -not -path '*/tests/*' -not -path '*/fixtures/*' | while read -r skill; do + local dir; dir=$(dirname "$skill") + if [ "$dir" = "$scanroot" ]; then + mkdir -p "$dest/_router"; cp "$skill" "$dest/_router/SKILL.md"; continue + fi + local b; b=$(basename "$dir"); local target="$dest/$b" + [ -e "$target" ] && target="$dest/${b}-alt" + mkdir -p "$target" + (cd "$dir" && find . -name '*.md' -not -path '*/.git/*' | while read -r f; do + mkdir -p "$target/$(dirname "$f")"; cp "$f" "$target/$f"; done) + done + # attribution + cp "$src/LICENSE" "$dest/LICENSE" 2>/dev/null || true + if [ "$pack" = "pstack" ]; then + cp "$src/NOTICE.md" "$dest/NOTICE.md" 2>/dev/null || true + cp "$src"/LICENSE-* "$dest/" 2>/dev/null || true + fi + echo " $pack -> $base/$pack ($(find "$dest" -name SKILL.md | wc -l | tr -d ' ') skills)" + done +} + +for entry in "${PACKS[@]}"; do + IFS='|' read -r pack repo subdir <<< "$entry" + extract_pack "$pack" "$repo" "$subdir" +done + +echo "Done. Regenerate the index with: node scripts/gen-skills-index.js" From 7a539b563f30bf072aa3a36d55af0d9852dc17df Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 27 Aug 2026 11:56:05 +0000 Subject: [PATCH 2/4] feat(skills): vendor superpowers, matt-pocock, gstack, pstack packs Slimmed (Markdown-only) installs of four MIT-licensed agent-skill packs into both .claude/skills/ (Claude Code, Cursor) and .agents/skills/ (Codex, Prime Agent). 162 skills per location. Each pack keeps its upstream LICENSE. - superpowers v6.3.0 (obra/superpowers) - mattpocock v1.2.3 (mattpocock/skills) - gstack v1.69.0.0 (garrytan/gstack) - pstack v0.9.14 (michael-denyer/pstack-claude; poteto's pstack port) Co-authored-by: Prax Lannister --- .agents/skills/gstack/LICENSE | 21 + .agents/skills/gstack/_router/SKILL.md | 626 +++++ .agents/skills/gstack/autoplan/SKILL.md | 1905 +++++++++++++++ .../skills/gstack/benchmark-models/SKILL.md | 684 ++++++ .agents/skills/gstack/benchmark/SKILL.md | 809 +++++++ .../PLAN-snapshot-dropdown-interactive.md | 102 + .agents/skills/gstack/browse/SKILL.md | 1080 +++++++++ .agents/skills/gstack/canary/SKILL.md | 1080 +++++++++ .agents/skills/gstack/careful/SKILL.md | 87 + .agents/skills/gstack/codex/SKILL.md | 1773 ++++++++++++++ .../skills/gstack/context-restore/SKILL.md | 971 ++++++++ .agents/skills/gstack/context-save/SKILL.md | 1056 +++++++++ .agents/skills/gstack/cso/ACKNOWLEDGEMENTS.md | 14 + .agents/skills/gstack/cso/SKILL.md | 1313 +++++++++++ .../gstack/cso/sections/audit-phases.md | 253 ++ .../gstack/design-consultation/SKILL.md | 1258 ++++++++++ .../sections/proposal-and-preview.md | 408 ++++ .agents/skills/gstack/design-html/SKILL.md | 1539 ++++++++++++ .agents/skills/gstack/design-review/SKILL.md | 2053 +++++++++++++++++ .agents/skills/gstack/design-shotgun/SKILL.md | 1401 +++++++++++ .agents/skills/gstack/devex-review/SKILL.md | 1334 +++++++++++ .agents/skills/gstack/diagram/SKILL.md | 684 ++++++ .../skills/gstack/document-generate/SKILL.md | 1280 ++++++++++ .../skills/gstack/document-release/SKILL.md | 989 ++++++++ .../document-release/sections/release-body.md | 547 +++++ .agents/skills/gstack/freeze/SKILL.md | 101 + .../gstack-openclaw-ceo-review/SKILL.md | 191 ++ .../gstack-openclaw-investigate/SKILL.md | 134 ++ .../gstack-openclaw-office-hours/SKILL.md | 373 +++ .../gstack/gstack-openclaw-retro/SKILL.md | 299 +++ .agents/skills/gstack/gstack-upgrade/SKILL.md | 363 +++ .agents/skills/gstack/guard/SKILL.md | 90 + .../gstack/hackernews-frontpage/SKILL.md | 52 + .agents/skills/gstack/health/SKILL.md | 1104 +++++++++ .agents/skills/gstack/investigate/SKILL.md | 1104 +++++++++ .agents/skills/gstack/ios-clean/SKILL.md | 902 ++++++++ .../skills/gstack/ios-design-review/SKILL.md | 905 ++++++++ .agents/skills/gstack/ios-fix/SKILL.md | 901 ++++++++ .agents/skills/gstack/ios-qa/SKILL.md | 1058 +++++++++ .../ios-qa/docs/tailscale-acl-example.md | 157 ++ .agents/skills/gstack/ios-sync/SKILL.md | 899 ++++++++ .../skills/gstack/land-and-deploy/SKILL.md | 2036 ++++++++++++++++ .agents/skills/gstack/landing-report/SKILL.md | 947 ++++++++ .agents/skills/gstack/learn/SKILL.md | 981 ++++++++ .agents/skills/gstack/make-pdf/SKILL.md | 811 +++++++ .../make-pdf/test/fixtures/combined-gate.md | 30 + .../make-pdf/test/fixtures/diagram-gate.md | 48 + .../make-pdf/test/fixtures/emoji-gate.md | 12 + .../make-pdf/test/fixtures/landscape-gate.md | 52 + .agents/skills/gstack/office-hours/SKILL.md | 1739 ++++++++++++++ .../sections/design-and-handoff.md | 631 +++++ .../gstack/open-gstack-browser/SKILL.md | 778 +++++++ .agents/skills/gstack/pair-agent/SKILL.md | 1181 ++++++++++ .../skills/gstack/plan-ceo-review/SKILL.md | 1530 ++++++++++++ .../sections/review-sections.md | 936 ++++++++ .../skills/gstack/plan-design-review/SKILL.md | 1550 +++++++++++++ .../sections/review-sections.md | 617 +++++ .../skills/gstack/plan-devex-review/SKILL.md | 1514 ++++++++++++ .../plan-devex-review/dx-hall-of-fame.md | 127 + .../sections/review-sections.md | 880 +++++++ .../skills/gstack/plan-eng-review/SKILL.md | 1112 +++++++++ .../sections/review-sections.md | 942 ++++++++ .agents/skills/gstack/plan-tune/SKILL.md | 1441 ++++++++++++ .agents/skills/gstack/qa-only/SKILL.md | 1284 +++++++++++ .agents/skills/gstack/qa/SKILL.md | 1743 ++++++++++++++ .../gstack/qa/references/issue-taxonomy.md | 85 + .../gstack/qa/templates/qa-report-template.md | 126 + .agents/skills/gstack/retro/SKILL.md | 1843 +++++++++++++++ .agents/skills/gstack/review/SKILL.md | 1902 +++++++++++++++ .agents/skills/gstack/review/TODOS-format.md | 61 + .agents/skills/gstack/review/checklist.md | 180 ++ .../skills/gstack/review/design-checklist.md | 134 ++ .../skills/gstack/review/greptile-triage.md | 239 ++ .../gstack/review/specialists/api-contract.md | 49 + .../review/specialists/data-migration.md | 48 + .../review/specialists/maintainability.md | 46 + .../gstack/review/specialists/performance.md | 52 + .../gstack/review/specialists/red-team.md | 45 + .../gstack/review/specialists/security.md | 61 + .../gstack/review/specialists/testing.md | 46 + .agents/skills/gstack/scrape/SKILL.md | 722 ++++++ .../gstack/setup-browser-cookies/SKILL.md | 656 ++++++ .agents/skills/gstack/setup-deploy/SKILL.md | 1023 ++++++++ .agents/skills/gstack/setup-gbrain/SKILL.md | 1918 +++++++++++++++ .agents/skills/gstack/setup-gbrain/memory.md | 306 +++ .agents/skills/gstack/ship/SKILL.md | 1504 ++++++++++++ .../gstack/ship/sections/adversarial.md | 218 ++ .../gstack/ship/sections/apple-release.md | 58 + .../skills/gstack/ship/sections/changelog.md | 45 + .../skills/gstack/ship/sections/greptile.md | 51 + .../gstack/ship/sections/plan-completion.md | 329 +++ .../skills/gstack/ship/sections/pr-body.md | 209 ++ .../gstack/ship/sections/review-army.md | 406 ++++ .../gstack/ship/sections/test-coverage.md | 264 +++ .agents/skills/gstack/ship/sections/tests.md | 403 ++++ .agents/skills/gstack/skillify/SKILL.md | 1254 ++++++++++ .agents/skills/gstack/spec/SKILL.md | 1646 +++++++++++++ .agents/skills/gstack/sync-gbrain/SKILL.md | 1282 ++++++++++ .agents/skills/gstack/unfreeze/SKILL.md | 48 + .agents/skills/mattpocock/LICENSE | 21 + .../mattpocock/ask-matt/PHASE-BOUNDARIES.md | 55 + .agents/skills/mattpocock/ask-matt/SKILL.md | 90 + .../skills/mattpocock/claude-handoff/SKILL.md | 18 + .../skills/mattpocock/code-review/SKILL.md | 87 + .../mattpocock/codebase-design/DEEPENING.md | 37 + .../codebase-design/DESIGN-IT-TWICE.md | 44 + .../mattpocock/codebase-design/SKILL.md | 114 + .../mattpocock/diagnosing-bugs/SKILL.md | 138 ++ .../mattpocock/domain-modeling/ADR-FORMAT.md | 47 + .../domain-modeling/CONTEXT-FORMAT.md | 60 + .../mattpocock/domain-modeling/SKILL.md | 74 + .../git-guardrails-claude-code/SKILL.md | 95 + .agents/skills/mattpocock/grill-me/SKILL.md | 7 + .../mattpocock/grill-with-docs/SKILL.md | 7 + .agents/skills/mattpocock/grilling/SKILL.md | 28 + .agents/skills/mattpocock/handoff/SKILL.md | 16 + .../skills/mattpocock/implement-spec/SKILL.md | 35 + .agents/skills/mattpocock/implement/SKILL.md | 15 + .../HTML-REPORT.md | 123 + .../improve-codebase-architecture/SKILL.md | 71 + .agents/skills/mattpocock/loop-me/SKILL.md | 32 + .../mattpocock/migrate-to-shoehorn/SKILL.md | 118 + .agents/skills/mattpocock/prototype/LOGIC.md | 67 + .agents/skills/mattpocock/prototype/SKILL.md | 26 + .agents/skills/mattpocock/prototype/UI.md | 112 + .agents/skills/mattpocock/research/SKILL.md | 12 + .../resolving-merge-conflicts/SKILL.md | 14 + .agents/skills/mattpocock/retro/SKILL.md | 44 + .../mattpocock/scaffold-exercises/SKILL.md | 106 + .../setup-matt-pocock-skills/SKILL.md | 116 + .../setup-matt-pocock-skills/domain.md | 51 + .../issue-tracker-github.md | 45 + .../issue-tracker-gitlab.md | 46 + .../issue-tracker-local.md | 30 + .../setup-matt-pocock-skills/triage-labels.md | 15 + .../mattpocock/setup-pre-commit/SKILL.md | 91 + .../mattpocock/setup-ts-deep-modules/SKILL.md | 102 + .agents/skills/mattpocock/tdd/SKILL.md | 38 + .agents/skills/mattpocock/tdd/mocking.md | 59 + .agents/skills/mattpocock/tdd/tests.md | 77 + .../mattpocock/teach/GLOSSARY-FORMAT.md | 35 + .../teach/LEARNING-RECORD-FORMAT.md | 46 + .../skills/mattpocock/teach/MISSION-FORMAT.md | 31 + .../mattpocock/teach/RESOURCES-FORMAT.md | 32 + .agents/skills/mattpocock/teach/SKILL.md | 140 ++ .../mattpocock/to-questionnaire/SKILL.md | 54 + .agents/skills/mattpocock/to-spec/SKILL.md | 75 + .agents/skills/mattpocock/to-tickets/SKILL.md | 105 + .../skills/mattpocock/triage/AGENT-BRIEF.md | 207 ++ .../skills/mattpocock/triage/OUT-OF-SCOPE.md | 105 + .agents/skills/mattpocock/triage/SKILL.md | 112 + .agents/skills/mattpocock/wait-what/SKILL.md | 7 + .agents/skills/mattpocock/wayfinder/SKILL.md | 128 + .agents/skills/mattpocock/wizard/SKILL.md | 44 + .../skills/mattpocock/writing-beats/SKILL.md | 67 + .../writing-for-agents/SKILL-MECHANICS.md | 22 + .../mattpocock/writing-for-agents/SKILL.md | 81 + .../mattpocock/writing-fragments/SKILL.md | 79 + .../skills/mattpocock/writing-shape/SKILL.md | 79 + .agents/skills/pstack/LICENSE | 21 + .agents/skills/pstack/LICENSE-cursor-team-kit | 21 + .agents/skills/pstack/LICENSE-superpowers | 21 + .agents/skills/pstack/NOTICE.md | 53 + .agents/skills/pstack/architect/SKILL.md | 91 + .../architect/references/design-red-flags.md | 33 + .../references/rationale-template.md | 35 + .../architect/references/runner-prompt.md | 20 + .agents/skills/pstack/arena/SKILL.md | 80 + .agents/skills/pstack/automate-me/SKILL.md | 111 + .agents/skills/pstack/babysit/SKILL.md | 63 + .../babysit/references/bugbot-triage.md | 142 ++ .agents/skills/pstack/blast-radius/SKILL.md | 50 + .agents/skills/pstack/bro/SKILL.md | 7 + .../pstack/create-verification-skill/SKILL.md | 46 + .../references/feature-map-example/README.md | 47 + .../feature-map-example/create-note.md | 39 + .../references/feature-map-example/search.md | 45 + .agents/skills/pstack/deslop/SKILL.md | 23 + .agents/skills/pstack/figure-it-out/SKILL.md | 55 + .agents/skills/pstack/fix-ci/SKILL.md | 30 + .../pstack/fix-merge-conflicts/SKILL.md | 33 + .../skills/pstack/get-pr-comments/SKILL.md | 24 + .agents/skills/pstack/how/SKILL.md | 145 ++ .../pstack/how/references/critic-prompt.md | 59 + .../pstack/how/references/critique-rubric.md | 58 + .../pstack/how/references/explainer-prompt.md | 55 + .../pstack/how/references/explorer-prompt.md | 52 + .agents/skills/pstack/interrogate/SKILL.md | 115 + .../references/code-quality-review.md | 47 + .../interrogate/references/lead-judgment.md | 58 + .../interrogate/references/reviewer-prompt.md | 72 + .../pstack/interrogate/references/rubric.md | 77 + .../maintain-verification-skill/SKILL.md | 41 + .../pstack/make-pr-easy-to-review/SKILL.md | 60 + .agents/skills/pstack/no-comments/SKILL.md | 26 + .agents/skills/pstack/poteto-mode/SKILL.md | 151 ++ .../playbooks/authoring-a-skill.md | 12 + .../poteto-mode/playbooks/autonomous-run.md | 13 + .../poteto-mode/playbooks/autopilot-full.md | 13 + .../poteto-mode/playbooks/autopilot-stack.md | 16 + .../pstack/poteto-mode/playbooks/babysit.md | 27 + .../pstack/poteto-mode/playbooks/bug-fix.md | 17 + .../pstack/poteto-mode/playbooks/eval.md | 27 + .../pstack/poteto-mode/playbooks/feature.md | 21 + .../pstack/poteto-mode/playbooks/hillclimb.md | 21 + .../poteto-mode/playbooks/investigation.md | 14 + .../poteto-mode/playbooks/multi-phase-plan.md | 3 + .../poteto-mode/playbooks/opening-a-pr.md | 29 + .../poteto-mode/playbooks/orchestrate.md | 114 + .../poteto-mode/playbooks/pause-safely.md | 10 + .../poteto-mode/playbooks/perf-issue.md | 24 + .../pstack/poteto-mode/playbooks/prototype.md | 14 + .../poteto-mode/playbooks/refactoring.md | 16 + .../playbooks/runtime-forensics.md | 11 + .../poteto-mode/playbooks/session-pickup.md | 13 + .../pstack/poteto-mode/playbooks/shipping.md | 20 + .../poteto-mode/playbooks/trace-forensics.md | 14 + .../poteto-mode/playbooks/visual-parity.md | 11 + .../poteto-mode/playbooks/worktree-cleanup.md | 14 + .../poteto-mode/references/bugbot-triage.md | 142 ++ .../poteto-mode/references/codex-tools.md | 68 + .../pstack/poteto-mode/references/plan.md | 105 + .../principle-boundary-discipline/SKILL.md | 34 + .../pstack/principle-build-the-lever/SKILL.md | 23 + .../SKILL.md | 31 + .../SKILL.md | 21 + .../principle-experience-first/SKILL.md | 19 + .../pstack/principle-fix-root-causes/SKILL.md | 23 + .../principle-foundational-thinking/SKILL.md | 21 + .../SKILL.md | 17 + .../principle-laziness-protocol/SKILL.md | 18 + .../SKILL.md | 24 + .../SKILL.md | 22 + .../principle-minimize-reader-load/SKILL.md | 23 + .../principle-model-the-domain/SKILL.md | 26 + .../SKILL.md | 23 + .../SKILL.md | 22 + .../pstack/principle-prove-it-works/SKILL.md | 33 + .../SKILL.md | 16 + .../SKILL.md | 16 + .../SKILL.md | 22 + .../SKILL.md | 22 + .../principle-type-system-discipline/SKILL.md | 31 + .agents/skills/pstack/recall/SKILL.md | 35 + .agents/skills/pstack/reflect/SKILL.md | 86 + .../reflect/references/divergent-reviewer.md | 43 + .../reflect/references/judgment-reviewer.md | 42 + .../pstack/reflect/references/synthesizer.md | 56 + .../reflect/references/tooling-reviewer.md | 57 + .agents/skills/pstack/setup-pstack/SKILL.md | 82 + .../skills/pstack/show-me-your-work/SKILL.md | 82 + .agents/skills/pstack/swarm/SKILL.md | 54 + .agents/skills/pstack/tdd/SKILL.md | 44 + .agents/skills/pstack/teach/SKILL.md | 23 + .../skills/pstack/technical-writing/SKILL.md | 130 ++ .../SKILL.md | 202 ++ .../pstack/typescript-best-practices/SKILL.md | 29 + .../references/patterns.md | 292 +++ .agents/skills/pstack/unslop/SKILL.md | 81 + .../pstack/what-did-i-get-done/SKILL.md | 32 + .agents/skills/pstack/why/SKILL.md | 239 ++ .../pstack/why/references/epistemics.md | 144 ++ .../why/references/investigator-prompt.md | 103 + .../pstack/why/references/source-playbook.md | 17 + .../references/sources/code-archaeology.md | 88 + .../why/references/sources/databricks.md | 70 + .../pstack/why/references/sources/datadog.md | 99 + .../references/sources/incident-postmortem.md | 15 + .../pstack/why/references/sources/linear.md | 48 + .../pstack/why/references/sources/notion.md | 55 + .../pstack/why/references/sources/sentry.md | 100 + .../pstack/why/references/sources/slack.md | 54 + .../why/references/synthesizer-prompt.md | 135 ++ .agents/skills/superpowers/LICENSE | 21 + .../skills/superpowers/brainstorming/SKILL.md | 250 ++ .../spec-document-reviewer-prompt.md | 49 + .../brainstorming/visual-companion.md | 299 +++ .../dispatching-parallel-agents/SKILL.md | 167 ++ .../superpowers/executing-plans/SKILL.md | 64 + .../finishing-a-development-branch/SKILL.md | 225 ++ .../receiving-code-review/SKILL.md | 205 ++ .../requesting-code-review/SKILL.md | 95 + .../requesting-code-review/code-reviewer.md | 181 ++ .../subagent-driven-development/SKILL.md | 568 +++++ .../implementer-prompt.md | 154 ++ .../re-review-prompt.md | 115 + .../task-reviewer-prompt.md | 207 ++ .../systematic-debugging/CREATION-LOG.md | 119 + .../superpowers/systematic-debugging/SKILL.md | 283 +++ .../condition-based-waiting.md | 115 + .../systematic-debugging/defense-in-depth.md | 122 + .../root-cause-tracing.md | 169 ++ .../systematic-debugging/test-academic.md | 14 + .../systematic-debugging/test-pressure-1.md | 58 + .../systematic-debugging/test-pressure-2.md | 68 + .../systematic-debugging/test-pressure-3.md | 69 + .../test-driven-development/SKILL.md | 320 +++ .../writing-good-tests.md | 198 ++ .../superpowers/using-git-worktrees/SKILL.md | 167 ++ .../superpowers/using-superpowers/SKILL.md | 63 + .../references/antigravity-tools.md | 23 + .../references/codex-tools.md | 108 + .../references/gemini-tools.md | 63 + .../references/hermes-tools.md | 56 + .../using-superpowers/references/pi-tools.md | 16 + .../verification-before-completion/SKILL.md | 120 + .../skills/superpowers/writing-plans/SKILL.md | 171 ++ .../plan-document-reviewer-prompt.md | 49 + .../superpowers/writing-skills/SKILL.md | 679 ++++++ .../anthropic-best-practices.md | 1150 +++++++++ .../examples/CLAUDE_MD_TESTING.md | 189 ++ .../writing-skills/persuasion-principles.md | 187 ++ .../testing-skills-with-subagents.md | 384 +++ .claude/skills/gstack/LICENSE | 21 + .claude/skills/gstack/_router/SKILL.md | 626 +++++ .claude/skills/gstack/autoplan/SKILL.md | 1905 +++++++++++++++ .../skills/gstack/benchmark-models/SKILL.md | 684 ++++++ .claude/skills/gstack/benchmark/SKILL.md | 809 +++++++ .../PLAN-snapshot-dropdown-interactive.md | 102 + .claude/skills/gstack/browse/SKILL.md | 1080 +++++++++ .claude/skills/gstack/canary/SKILL.md | 1080 +++++++++ .claude/skills/gstack/careful/SKILL.md | 87 + .claude/skills/gstack/codex/SKILL.md | 1773 ++++++++++++++ .../skills/gstack/context-restore/SKILL.md | 971 ++++++++ .claude/skills/gstack/context-save/SKILL.md | 1056 +++++++++ .claude/skills/gstack/cso/ACKNOWLEDGEMENTS.md | 14 + .claude/skills/gstack/cso/SKILL.md | 1313 +++++++++++ .../gstack/cso/sections/audit-phases.md | 253 ++ .../gstack/design-consultation/SKILL.md | 1258 ++++++++++ .../sections/proposal-and-preview.md | 408 ++++ .claude/skills/gstack/design-html/SKILL.md | 1539 ++++++++++++ .claude/skills/gstack/design-review/SKILL.md | 2053 +++++++++++++++++ .claude/skills/gstack/design-shotgun/SKILL.md | 1401 +++++++++++ .claude/skills/gstack/devex-review/SKILL.md | 1334 +++++++++++ .claude/skills/gstack/diagram/SKILL.md | 684 ++++++ .../skills/gstack/document-generate/SKILL.md | 1280 ++++++++++ .../skills/gstack/document-release/SKILL.md | 989 ++++++++ .../document-release/sections/release-body.md | 547 +++++ .claude/skills/gstack/freeze/SKILL.md | 101 + .../gstack-openclaw-ceo-review/SKILL.md | 191 ++ .../gstack-openclaw-investigate/SKILL.md | 134 ++ .../gstack-openclaw-office-hours/SKILL.md | 373 +++ .../gstack/gstack-openclaw-retro/SKILL.md | 299 +++ .claude/skills/gstack/gstack-upgrade/SKILL.md | 363 +++ .claude/skills/gstack/guard/SKILL.md | 90 + .../gstack/hackernews-frontpage/SKILL.md | 52 + .claude/skills/gstack/health/SKILL.md | 1104 +++++++++ .claude/skills/gstack/investigate/SKILL.md | 1104 +++++++++ .claude/skills/gstack/ios-clean/SKILL.md | 902 ++++++++ .../skills/gstack/ios-design-review/SKILL.md | 905 ++++++++ .claude/skills/gstack/ios-fix/SKILL.md | 901 ++++++++ .claude/skills/gstack/ios-qa/SKILL.md | 1058 +++++++++ .../ios-qa/docs/tailscale-acl-example.md | 157 ++ .claude/skills/gstack/ios-sync/SKILL.md | 899 ++++++++ .../skills/gstack/land-and-deploy/SKILL.md | 2036 ++++++++++++++++ .claude/skills/gstack/landing-report/SKILL.md | 947 ++++++++ .claude/skills/gstack/learn/SKILL.md | 981 ++++++++ .claude/skills/gstack/make-pdf/SKILL.md | 811 +++++++ .../make-pdf/test/fixtures/combined-gate.md | 30 + .../make-pdf/test/fixtures/diagram-gate.md | 48 + .../make-pdf/test/fixtures/emoji-gate.md | 12 + .../make-pdf/test/fixtures/landscape-gate.md | 52 + .claude/skills/gstack/office-hours/SKILL.md | 1739 ++++++++++++++ .../sections/design-and-handoff.md | 631 +++++ .../gstack/open-gstack-browser/SKILL.md | 778 +++++++ .claude/skills/gstack/pair-agent/SKILL.md | 1181 ++++++++++ .../skills/gstack/plan-ceo-review/SKILL.md | 1530 ++++++++++++ .../sections/review-sections.md | 936 ++++++++ .../skills/gstack/plan-design-review/SKILL.md | 1550 +++++++++++++ .../sections/review-sections.md | 617 +++++ .../skills/gstack/plan-devex-review/SKILL.md | 1514 ++++++++++++ .../plan-devex-review/dx-hall-of-fame.md | 127 + .../sections/review-sections.md | 880 +++++++ .../skills/gstack/plan-eng-review/SKILL.md | 1112 +++++++++ .../sections/review-sections.md | 942 ++++++++ .claude/skills/gstack/plan-tune/SKILL.md | 1441 ++++++++++++ .claude/skills/gstack/qa-only/SKILL.md | 1284 +++++++++++ .claude/skills/gstack/qa/SKILL.md | 1743 ++++++++++++++ .../gstack/qa/references/issue-taxonomy.md | 85 + .../gstack/qa/templates/qa-report-template.md | 126 + .claude/skills/gstack/retro/SKILL.md | 1843 +++++++++++++++ .claude/skills/gstack/review/SKILL.md | 1902 +++++++++++++++ .claude/skills/gstack/review/TODOS-format.md | 61 + .claude/skills/gstack/review/checklist.md | 180 ++ .../skills/gstack/review/design-checklist.md | 134 ++ .../skills/gstack/review/greptile-triage.md | 239 ++ .../gstack/review/specialists/api-contract.md | 49 + .../review/specialists/data-migration.md | 48 + .../review/specialists/maintainability.md | 46 + .../gstack/review/specialists/performance.md | 52 + .../gstack/review/specialists/red-team.md | 45 + .../gstack/review/specialists/security.md | 61 + .../gstack/review/specialists/testing.md | 46 + .claude/skills/gstack/scrape/SKILL.md | 722 ++++++ .../gstack/setup-browser-cookies/SKILL.md | 656 ++++++ .claude/skills/gstack/setup-deploy/SKILL.md | 1023 ++++++++ .claude/skills/gstack/setup-gbrain/SKILL.md | 1918 +++++++++++++++ .claude/skills/gstack/setup-gbrain/memory.md | 306 +++ .claude/skills/gstack/ship/SKILL.md | 1504 ++++++++++++ .../gstack/ship/sections/adversarial.md | 218 ++ .../gstack/ship/sections/apple-release.md | 58 + .../skills/gstack/ship/sections/changelog.md | 45 + .../skills/gstack/ship/sections/greptile.md | 51 + .../gstack/ship/sections/plan-completion.md | 329 +++ .../skills/gstack/ship/sections/pr-body.md | 209 ++ .../gstack/ship/sections/review-army.md | 406 ++++ .../gstack/ship/sections/test-coverage.md | 264 +++ .claude/skills/gstack/ship/sections/tests.md | 403 ++++ .claude/skills/gstack/skillify/SKILL.md | 1254 ++++++++++ .claude/skills/gstack/spec/SKILL.md | 1646 +++++++++++++ .claude/skills/gstack/sync-gbrain/SKILL.md | 1282 ++++++++++ .claude/skills/gstack/unfreeze/SKILL.md | 48 + .claude/skills/mattpocock/LICENSE | 21 + .../mattpocock/ask-matt/PHASE-BOUNDARIES.md | 55 + .claude/skills/mattpocock/ask-matt/SKILL.md | 90 + .../skills/mattpocock/claude-handoff/SKILL.md | 18 + .../skills/mattpocock/code-review/SKILL.md | 87 + .../mattpocock/codebase-design/DEEPENING.md | 37 + .../codebase-design/DESIGN-IT-TWICE.md | 44 + .../mattpocock/codebase-design/SKILL.md | 114 + .../mattpocock/diagnosing-bugs/SKILL.md | 138 ++ .../mattpocock/domain-modeling/ADR-FORMAT.md | 47 + .../domain-modeling/CONTEXT-FORMAT.md | 60 + .../mattpocock/domain-modeling/SKILL.md | 74 + .../git-guardrails-claude-code/SKILL.md | 95 + .claude/skills/mattpocock/grill-me/SKILL.md | 7 + .../mattpocock/grill-with-docs/SKILL.md | 7 + .claude/skills/mattpocock/grilling/SKILL.md | 28 + .claude/skills/mattpocock/handoff/SKILL.md | 16 + .../skills/mattpocock/implement-spec/SKILL.md | 35 + .claude/skills/mattpocock/implement/SKILL.md | 15 + .../HTML-REPORT.md | 123 + .../improve-codebase-architecture/SKILL.md | 71 + .claude/skills/mattpocock/loop-me/SKILL.md | 32 + .../mattpocock/migrate-to-shoehorn/SKILL.md | 118 + .claude/skills/mattpocock/prototype/LOGIC.md | 67 + .claude/skills/mattpocock/prototype/SKILL.md | 26 + .claude/skills/mattpocock/prototype/UI.md | 112 + .claude/skills/mattpocock/research/SKILL.md | 12 + .../resolving-merge-conflicts/SKILL.md | 14 + .claude/skills/mattpocock/retro/SKILL.md | 44 + .../mattpocock/scaffold-exercises/SKILL.md | 106 + .../setup-matt-pocock-skills/SKILL.md | 116 + .../setup-matt-pocock-skills/domain.md | 51 + .../issue-tracker-github.md | 45 + .../issue-tracker-gitlab.md | 46 + .../issue-tracker-local.md | 30 + .../setup-matt-pocock-skills/triage-labels.md | 15 + .../mattpocock/setup-pre-commit/SKILL.md | 91 + .../mattpocock/setup-ts-deep-modules/SKILL.md | 102 + .claude/skills/mattpocock/tdd/SKILL.md | 38 + .claude/skills/mattpocock/tdd/mocking.md | 59 + .claude/skills/mattpocock/tdd/tests.md | 77 + .../mattpocock/teach/GLOSSARY-FORMAT.md | 35 + .../teach/LEARNING-RECORD-FORMAT.md | 46 + .../skills/mattpocock/teach/MISSION-FORMAT.md | 31 + .../mattpocock/teach/RESOURCES-FORMAT.md | 32 + .claude/skills/mattpocock/teach/SKILL.md | 140 ++ .../mattpocock/to-questionnaire/SKILL.md | 54 + .claude/skills/mattpocock/to-spec/SKILL.md | 75 + .claude/skills/mattpocock/to-tickets/SKILL.md | 105 + .../skills/mattpocock/triage/AGENT-BRIEF.md | 207 ++ .../skills/mattpocock/triage/OUT-OF-SCOPE.md | 105 + .claude/skills/mattpocock/triage/SKILL.md | 112 + .claude/skills/mattpocock/wait-what/SKILL.md | 7 + .claude/skills/mattpocock/wayfinder/SKILL.md | 128 + .claude/skills/mattpocock/wizard/SKILL.md | 44 + .../skills/mattpocock/writing-beats/SKILL.md | 67 + .../writing-for-agents/SKILL-MECHANICS.md | 22 + .../mattpocock/writing-for-agents/SKILL.md | 81 + .../mattpocock/writing-fragments/SKILL.md | 79 + .../skills/mattpocock/writing-shape/SKILL.md | 79 + .claude/skills/pstack/LICENSE | 21 + .claude/skills/pstack/LICENSE-cursor-team-kit | 21 + .claude/skills/pstack/LICENSE-superpowers | 21 + .claude/skills/pstack/NOTICE.md | 53 + .claude/skills/pstack/architect/SKILL.md | 91 + .../architect/references/design-red-flags.md | 33 + .../references/rationale-template.md | 35 + .../architect/references/runner-prompt.md | 20 + .claude/skills/pstack/arena/SKILL.md | 80 + .claude/skills/pstack/automate-me/SKILL.md | 111 + .claude/skills/pstack/babysit/SKILL.md | 63 + .../babysit/references/bugbot-triage.md | 142 ++ .claude/skills/pstack/blast-radius/SKILL.md | 50 + .claude/skills/pstack/bro/SKILL.md | 7 + .../pstack/create-verification-skill/SKILL.md | 46 + .../references/feature-map-example/README.md | 47 + .../feature-map-example/create-note.md | 39 + .../references/feature-map-example/search.md | 45 + .claude/skills/pstack/deslop/SKILL.md | 23 + .claude/skills/pstack/figure-it-out/SKILL.md | 55 + .claude/skills/pstack/fix-ci/SKILL.md | 30 + .../pstack/fix-merge-conflicts/SKILL.md | 33 + .../skills/pstack/get-pr-comments/SKILL.md | 24 + .claude/skills/pstack/how/SKILL.md | 145 ++ .../pstack/how/references/critic-prompt.md | 59 + .../pstack/how/references/critique-rubric.md | 58 + .../pstack/how/references/explainer-prompt.md | 55 + .../pstack/how/references/explorer-prompt.md | 52 + .claude/skills/pstack/interrogate/SKILL.md | 115 + .../references/code-quality-review.md | 47 + .../interrogate/references/lead-judgment.md | 58 + .../interrogate/references/reviewer-prompt.md | 72 + .../pstack/interrogate/references/rubric.md | 77 + .../maintain-verification-skill/SKILL.md | 41 + .../pstack/make-pr-easy-to-review/SKILL.md | 60 + .claude/skills/pstack/no-comments/SKILL.md | 26 + .claude/skills/pstack/poteto-mode/SKILL.md | 151 ++ .../playbooks/authoring-a-skill.md | 12 + .../poteto-mode/playbooks/autonomous-run.md | 13 + .../poteto-mode/playbooks/autopilot-full.md | 13 + .../poteto-mode/playbooks/autopilot-stack.md | 16 + .../pstack/poteto-mode/playbooks/babysit.md | 27 + .../pstack/poteto-mode/playbooks/bug-fix.md | 17 + .../pstack/poteto-mode/playbooks/eval.md | 27 + .../pstack/poteto-mode/playbooks/feature.md | 21 + .../pstack/poteto-mode/playbooks/hillclimb.md | 21 + .../poteto-mode/playbooks/investigation.md | 14 + .../poteto-mode/playbooks/multi-phase-plan.md | 3 + .../poteto-mode/playbooks/opening-a-pr.md | 29 + .../poteto-mode/playbooks/orchestrate.md | 114 + .../poteto-mode/playbooks/pause-safely.md | 10 + .../poteto-mode/playbooks/perf-issue.md | 24 + .../pstack/poteto-mode/playbooks/prototype.md | 14 + .../poteto-mode/playbooks/refactoring.md | 16 + .../playbooks/runtime-forensics.md | 11 + .../poteto-mode/playbooks/session-pickup.md | 13 + .../pstack/poteto-mode/playbooks/shipping.md | 20 + .../poteto-mode/playbooks/trace-forensics.md | 14 + .../poteto-mode/playbooks/visual-parity.md | 11 + .../poteto-mode/playbooks/worktree-cleanup.md | 14 + .../poteto-mode/references/bugbot-triage.md | 142 ++ .../poteto-mode/references/codex-tools.md | 68 + .../pstack/poteto-mode/references/plan.md | 105 + .../principle-boundary-discipline/SKILL.md | 34 + .../pstack/principle-build-the-lever/SKILL.md | 23 + .../SKILL.md | 31 + .../SKILL.md | 21 + .../principle-experience-first/SKILL.md | 19 + .../pstack/principle-fix-root-causes/SKILL.md | 23 + .../principle-foundational-thinking/SKILL.md | 21 + .../SKILL.md | 17 + .../principle-laziness-protocol/SKILL.md | 18 + .../SKILL.md | 24 + .../SKILL.md | 22 + .../principle-minimize-reader-load/SKILL.md | 23 + .../principle-model-the-domain/SKILL.md | 26 + .../SKILL.md | 23 + .../SKILL.md | 22 + .../pstack/principle-prove-it-works/SKILL.md | 33 + .../SKILL.md | 16 + .../SKILL.md | 16 + .../SKILL.md | 22 + .../SKILL.md | 22 + .../principle-type-system-discipline/SKILL.md | 31 + .claude/skills/pstack/recall/SKILL.md | 35 + .claude/skills/pstack/reflect/SKILL.md | 86 + .../reflect/references/divergent-reviewer.md | 43 + .../reflect/references/judgment-reviewer.md | 42 + .../pstack/reflect/references/synthesizer.md | 56 + .../reflect/references/tooling-reviewer.md | 57 + .claude/skills/pstack/setup-pstack/SKILL.md | 82 + .../skills/pstack/show-me-your-work/SKILL.md | 82 + .claude/skills/pstack/swarm/SKILL.md | 54 + .claude/skills/pstack/tdd/SKILL.md | 44 + .claude/skills/pstack/teach/SKILL.md | 23 + .../skills/pstack/technical-writing/SKILL.md | 130 ++ .../SKILL.md | 202 ++ .../pstack/typescript-best-practices/SKILL.md | 29 + .../references/patterns.md | 292 +++ .claude/skills/pstack/unslop/SKILL.md | 81 + .../pstack/what-did-i-get-done/SKILL.md | 32 + .claude/skills/pstack/why/SKILL.md | 239 ++ .../pstack/why/references/epistemics.md | 144 ++ .../why/references/investigator-prompt.md | 103 + .../pstack/why/references/source-playbook.md | 17 + .../references/sources/code-archaeology.md | 88 + .../why/references/sources/databricks.md | 70 + .../pstack/why/references/sources/datadog.md | 99 + .../references/sources/incident-postmortem.md | 15 + .../pstack/why/references/sources/linear.md | 48 + .../pstack/why/references/sources/notion.md | 55 + .../pstack/why/references/sources/sentry.md | 100 + .../pstack/why/references/sources/slack.md | 54 + .../why/references/synthesizer-prompt.md | 135 ++ .claude/skills/superpowers/LICENSE | 21 + .../skills/superpowers/brainstorming/SKILL.md | 250 ++ .../spec-document-reviewer-prompt.md | 49 + .../brainstorming/visual-companion.md | 299 +++ .../dispatching-parallel-agents/SKILL.md | 167 ++ .../superpowers/executing-plans/SKILL.md | 64 + .../finishing-a-development-branch/SKILL.md | 225 ++ .../receiving-code-review/SKILL.md | 205 ++ .../requesting-code-review/SKILL.md | 95 + .../requesting-code-review/code-reviewer.md | 181 ++ .../subagent-driven-development/SKILL.md | 568 +++++ .../implementer-prompt.md | 154 ++ .../re-review-prompt.md | 115 + .../task-reviewer-prompt.md | 207 ++ .../systematic-debugging/CREATION-LOG.md | 119 + .../superpowers/systematic-debugging/SKILL.md | 283 +++ .../condition-based-waiting.md | 115 + .../systematic-debugging/defense-in-depth.md | 122 + .../root-cause-tracing.md | 169 ++ .../systematic-debugging/test-academic.md | 14 + .../systematic-debugging/test-pressure-1.md | 58 + .../systematic-debugging/test-pressure-2.md | 68 + .../systematic-debugging/test-pressure-3.md | 69 + .../test-driven-development/SKILL.md | 320 +++ .../writing-good-tests.md | 198 ++ .../superpowers/using-git-worktrees/SKILL.md | 167 ++ .../superpowers/using-superpowers/SKILL.md | 63 + .../references/antigravity-tools.md | 23 + .../references/codex-tools.md | 108 + .../references/gemini-tools.md | 63 + .../references/hermes-tools.md | 56 + .../using-superpowers/references/pi-tools.md | 16 + .../verification-before-completion/SKILL.md | 120 + .../skills/superpowers/writing-plans/SKILL.md | 171 ++ .../plan-document-reviewer-prompt.md | 49 + .../superpowers/writing-skills/SKILL.md | 679 ++++++ .../anthropic-best-practices.md | 1150 +++++++++ .../examples/CLAUDE_MD_TESTING.md | 189 ++ .../writing-skills/persuasion-principles.md | 187 ++ .../testing-skills-with-subagents.md | 384 +++ 626 files changed, 178784 insertions(+) create mode 100644 .agents/skills/gstack/LICENSE create mode 100644 .agents/skills/gstack/_router/SKILL.md create mode 100644 .agents/skills/gstack/autoplan/SKILL.md create mode 100644 .agents/skills/gstack/benchmark-models/SKILL.md create mode 100644 .agents/skills/gstack/benchmark/SKILL.md create mode 100644 .agents/skills/gstack/browse/PLAN-snapshot-dropdown-interactive.md create mode 100644 .agents/skills/gstack/browse/SKILL.md create mode 100644 .agents/skills/gstack/canary/SKILL.md create mode 100644 .agents/skills/gstack/careful/SKILL.md create mode 100644 .agents/skills/gstack/codex/SKILL.md create mode 100644 .agents/skills/gstack/context-restore/SKILL.md create mode 100644 .agents/skills/gstack/context-save/SKILL.md create mode 100644 .agents/skills/gstack/cso/ACKNOWLEDGEMENTS.md create mode 100644 .agents/skills/gstack/cso/SKILL.md create mode 100644 .agents/skills/gstack/cso/sections/audit-phases.md create mode 100644 .agents/skills/gstack/design-consultation/SKILL.md create mode 100644 .agents/skills/gstack/design-consultation/sections/proposal-and-preview.md create mode 100644 .agents/skills/gstack/design-html/SKILL.md create mode 100644 .agents/skills/gstack/design-review/SKILL.md create mode 100644 .agents/skills/gstack/design-shotgun/SKILL.md create mode 100644 .agents/skills/gstack/devex-review/SKILL.md create mode 100644 .agents/skills/gstack/diagram/SKILL.md create mode 100644 .agents/skills/gstack/document-generate/SKILL.md create mode 100644 .agents/skills/gstack/document-release/SKILL.md create mode 100644 .agents/skills/gstack/document-release/sections/release-body.md create mode 100644 .agents/skills/gstack/freeze/SKILL.md create mode 100644 .agents/skills/gstack/gstack-openclaw-ceo-review/SKILL.md create mode 100644 .agents/skills/gstack/gstack-openclaw-investigate/SKILL.md create mode 100644 .agents/skills/gstack/gstack-openclaw-office-hours/SKILL.md create mode 100644 .agents/skills/gstack/gstack-openclaw-retro/SKILL.md create mode 100644 .agents/skills/gstack/gstack-upgrade/SKILL.md create mode 100644 .agents/skills/gstack/guard/SKILL.md create mode 100644 .agents/skills/gstack/hackernews-frontpage/SKILL.md create mode 100644 .agents/skills/gstack/health/SKILL.md create mode 100644 .agents/skills/gstack/investigate/SKILL.md create mode 100644 .agents/skills/gstack/ios-clean/SKILL.md create mode 100644 .agents/skills/gstack/ios-design-review/SKILL.md create mode 100644 .agents/skills/gstack/ios-fix/SKILL.md create mode 100644 .agents/skills/gstack/ios-qa/SKILL.md create mode 100644 .agents/skills/gstack/ios-qa/docs/tailscale-acl-example.md create mode 100644 .agents/skills/gstack/ios-sync/SKILL.md create mode 100644 .agents/skills/gstack/land-and-deploy/SKILL.md create mode 100644 .agents/skills/gstack/landing-report/SKILL.md create mode 100644 .agents/skills/gstack/learn/SKILL.md create mode 100644 .agents/skills/gstack/make-pdf/SKILL.md create mode 100644 .agents/skills/gstack/make-pdf/test/fixtures/combined-gate.md create mode 100644 .agents/skills/gstack/make-pdf/test/fixtures/diagram-gate.md create mode 100644 .agents/skills/gstack/make-pdf/test/fixtures/emoji-gate.md create mode 100644 .agents/skills/gstack/make-pdf/test/fixtures/landscape-gate.md create mode 100644 .agents/skills/gstack/office-hours/SKILL.md create mode 100644 .agents/skills/gstack/office-hours/sections/design-and-handoff.md create mode 100644 .agents/skills/gstack/open-gstack-browser/SKILL.md create mode 100644 .agents/skills/gstack/pair-agent/SKILL.md create mode 100644 .agents/skills/gstack/plan-ceo-review/SKILL.md create mode 100644 .agents/skills/gstack/plan-ceo-review/sections/review-sections.md create mode 100644 .agents/skills/gstack/plan-design-review/SKILL.md create mode 100644 .agents/skills/gstack/plan-design-review/sections/review-sections.md create mode 100644 .agents/skills/gstack/plan-devex-review/SKILL.md create mode 100644 .agents/skills/gstack/plan-devex-review/dx-hall-of-fame.md create mode 100644 .agents/skills/gstack/plan-devex-review/sections/review-sections.md create mode 100644 .agents/skills/gstack/plan-eng-review/SKILL.md create mode 100644 .agents/skills/gstack/plan-eng-review/sections/review-sections.md create mode 100644 .agents/skills/gstack/plan-tune/SKILL.md create mode 100644 .agents/skills/gstack/qa-only/SKILL.md create mode 100644 .agents/skills/gstack/qa/SKILL.md create mode 100644 .agents/skills/gstack/qa/references/issue-taxonomy.md create mode 100644 .agents/skills/gstack/qa/templates/qa-report-template.md create mode 100644 .agents/skills/gstack/retro/SKILL.md create mode 100644 .agents/skills/gstack/review/SKILL.md create mode 100644 .agents/skills/gstack/review/TODOS-format.md create mode 100644 .agents/skills/gstack/review/checklist.md create mode 100644 .agents/skills/gstack/review/design-checklist.md create mode 100644 .agents/skills/gstack/review/greptile-triage.md create mode 100644 .agents/skills/gstack/review/specialists/api-contract.md create mode 100644 .agents/skills/gstack/review/specialists/data-migration.md create mode 100644 .agents/skills/gstack/review/specialists/maintainability.md create mode 100644 .agents/skills/gstack/review/specialists/performance.md create mode 100644 .agents/skills/gstack/review/specialists/red-team.md create mode 100644 .agents/skills/gstack/review/specialists/security.md create mode 100644 .agents/skills/gstack/review/specialists/testing.md create mode 100644 .agents/skills/gstack/scrape/SKILL.md create mode 100644 .agents/skills/gstack/setup-browser-cookies/SKILL.md create mode 100644 .agents/skills/gstack/setup-deploy/SKILL.md create mode 100644 .agents/skills/gstack/setup-gbrain/SKILL.md create mode 100644 .agents/skills/gstack/setup-gbrain/memory.md create mode 100644 .agents/skills/gstack/ship/SKILL.md create mode 100644 .agents/skills/gstack/ship/sections/adversarial.md create mode 100644 .agents/skills/gstack/ship/sections/apple-release.md create mode 100644 .agents/skills/gstack/ship/sections/changelog.md create mode 100644 .agents/skills/gstack/ship/sections/greptile.md create mode 100644 .agents/skills/gstack/ship/sections/plan-completion.md create mode 100644 .agents/skills/gstack/ship/sections/pr-body.md create mode 100644 .agents/skills/gstack/ship/sections/review-army.md create mode 100644 .agents/skills/gstack/ship/sections/test-coverage.md create mode 100644 .agents/skills/gstack/ship/sections/tests.md create mode 100644 .agents/skills/gstack/skillify/SKILL.md create mode 100644 .agents/skills/gstack/spec/SKILL.md create mode 100644 .agents/skills/gstack/sync-gbrain/SKILL.md create mode 100644 .agents/skills/gstack/unfreeze/SKILL.md create mode 100644 .agents/skills/mattpocock/LICENSE create mode 100644 .agents/skills/mattpocock/ask-matt/PHASE-BOUNDARIES.md create mode 100644 .agents/skills/mattpocock/ask-matt/SKILL.md create mode 100644 .agents/skills/mattpocock/claude-handoff/SKILL.md create mode 100644 .agents/skills/mattpocock/code-review/SKILL.md create mode 100644 .agents/skills/mattpocock/codebase-design/DEEPENING.md create mode 100644 .agents/skills/mattpocock/codebase-design/DESIGN-IT-TWICE.md create mode 100644 .agents/skills/mattpocock/codebase-design/SKILL.md create mode 100644 .agents/skills/mattpocock/diagnosing-bugs/SKILL.md create mode 100644 .agents/skills/mattpocock/domain-modeling/ADR-FORMAT.md create mode 100644 .agents/skills/mattpocock/domain-modeling/CONTEXT-FORMAT.md create mode 100644 .agents/skills/mattpocock/domain-modeling/SKILL.md create mode 100644 .agents/skills/mattpocock/git-guardrails-claude-code/SKILL.md create mode 100644 .agents/skills/mattpocock/grill-me/SKILL.md create mode 100644 .agents/skills/mattpocock/grill-with-docs/SKILL.md create mode 100644 .agents/skills/mattpocock/grilling/SKILL.md create mode 100644 .agents/skills/mattpocock/handoff/SKILL.md create mode 100644 .agents/skills/mattpocock/implement-spec/SKILL.md create mode 100644 .agents/skills/mattpocock/implement/SKILL.md create mode 100644 .agents/skills/mattpocock/improve-codebase-architecture/HTML-REPORT.md create mode 100644 .agents/skills/mattpocock/improve-codebase-architecture/SKILL.md create mode 100644 .agents/skills/mattpocock/loop-me/SKILL.md create mode 100644 .agents/skills/mattpocock/migrate-to-shoehorn/SKILL.md create mode 100644 .agents/skills/mattpocock/prototype/LOGIC.md create mode 100644 .agents/skills/mattpocock/prototype/SKILL.md create mode 100644 .agents/skills/mattpocock/prototype/UI.md create mode 100644 .agents/skills/mattpocock/research/SKILL.md create mode 100644 .agents/skills/mattpocock/resolving-merge-conflicts/SKILL.md create mode 100644 .agents/skills/mattpocock/retro/SKILL.md create mode 100644 .agents/skills/mattpocock/scaffold-exercises/SKILL.md create mode 100644 .agents/skills/mattpocock/setup-matt-pocock-skills/SKILL.md create mode 100644 .agents/skills/mattpocock/setup-matt-pocock-skills/domain.md create mode 100644 .agents/skills/mattpocock/setup-matt-pocock-skills/issue-tracker-github.md create mode 100644 .agents/skills/mattpocock/setup-matt-pocock-skills/issue-tracker-gitlab.md create mode 100644 .agents/skills/mattpocock/setup-matt-pocock-skills/issue-tracker-local.md create mode 100644 .agents/skills/mattpocock/setup-matt-pocock-skills/triage-labels.md create mode 100644 .agents/skills/mattpocock/setup-pre-commit/SKILL.md create mode 100644 .agents/skills/mattpocock/setup-ts-deep-modules/SKILL.md create mode 100644 .agents/skills/mattpocock/tdd/SKILL.md create mode 100644 .agents/skills/mattpocock/tdd/mocking.md create mode 100644 .agents/skills/mattpocock/tdd/tests.md create mode 100644 .agents/skills/mattpocock/teach/GLOSSARY-FORMAT.md create mode 100644 .agents/skills/mattpocock/teach/LEARNING-RECORD-FORMAT.md create mode 100644 .agents/skills/mattpocock/teach/MISSION-FORMAT.md create mode 100644 .agents/skills/mattpocock/teach/RESOURCES-FORMAT.md create mode 100644 .agents/skills/mattpocock/teach/SKILL.md create mode 100644 .agents/skills/mattpocock/to-questionnaire/SKILL.md create mode 100644 .agents/skills/mattpocock/to-spec/SKILL.md create mode 100644 .agents/skills/mattpocock/to-tickets/SKILL.md create mode 100644 .agents/skills/mattpocock/triage/AGENT-BRIEF.md create mode 100644 .agents/skills/mattpocock/triage/OUT-OF-SCOPE.md create mode 100644 .agents/skills/mattpocock/triage/SKILL.md create mode 100644 .agents/skills/mattpocock/wait-what/SKILL.md create mode 100644 .agents/skills/mattpocock/wayfinder/SKILL.md create mode 100644 .agents/skills/mattpocock/wizard/SKILL.md create mode 100644 .agents/skills/mattpocock/writing-beats/SKILL.md create mode 100644 .agents/skills/mattpocock/writing-for-agents/SKILL-MECHANICS.md create mode 100644 .agents/skills/mattpocock/writing-for-agents/SKILL.md create mode 100644 .agents/skills/mattpocock/writing-fragments/SKILL.md create mode 100644 .agents/skills/mattpocock/writing-shape/SKILL.md create mode 100644 .agents/skills/pstack/LICENSE create mode 100644 .agents/skills/pstack/LICENSE-cursor-team-kit create mode 100644 .agents/skills/pstack/LICENSE-superpowers create mode 100644 .agents/skills/pstack/NOTICE.md create mode 100644 .agents/skills/pstack/architect/SKILL.md create mode 100644 .agents/skills/pstack/architect/references/design-red-flags.md create mode 100644 .agents/skills/pstack/architect/references/rationale-template.md create mode 100644 .agents/skills/pstack/architect/references/runner-prompt.md create mode 100644 .agents/skills/pstack/arena/SKILL.md create mode 100644 .agents/skills/pstack/automate-me/SKILL.md create mode 100644 .agents/skills/pstack/babysit/SKILL.md create mode 100644 .agents/skills/pstack/babysit/references/bugbot-triage.md create mode 100644 .agents/skills/pstack/blast-radius/SKILL.md create mode 100644 .agents/skills/pstack/bro/SKILL.md create mode 100644 .agents/skills/pstack/create-verification-skill/SKILL.md create mode 100644 .agents/skills/pstack/create-verification-skill/references/feature-map-example/README.md create mode 100644 .agents/skills/pstack/create-verification-skill/references/feature-map-example/create-note.md create mode 100644 .agents/skills/pstack/create-verification-skill/references/feature-map-example/search.md create mode 100644 .agents/skills/pstack/deslop/SKILL.md create mode 100644 .agents/skills/pstack/figure-it-out/SKILL.md create mode 100644 .agents/skills/pstack/fix-ci/SKILL.md create mode 100644 .agents/skills/pstack/fix-merge-conflicts/SKILL.md create mode 100644 .agents/skills/pstack/get-pr-comments/SKILL.md create mode 100644 .agents/skills/pstack/how/SKILL.md create mode 100644 .agents/skills/pstack/how/references/critic-prompt.md create mode 100644 .agents/skills/pstack/how/references/critique-rubric.md create mode 100644 .agents/skills/pstack/how/references/explainer-prompt.md create mode 100644 .agents/skills/pstack/how/references/explorer-prompt.md create mode 100644 .agents/skills/pstack/interrogate/SKILL.md create mode 100644 .agents/skills/pstack/interrogate/references/code-quality-review.md create mode 100644 .agents/skills/pstack/interrogate/references/lead-judgment.md create mode 100644 .agents/skills/pstack/interrogate/references/reviewer-prompt.md create mode 100644 .agents/skills/pstack/interrogate/references/rubric.md create mode 100644 .agents/skills/pstack/maintain-verification-skill/SKILL.md create mode 100644 .agents/skills/pstack/make-pr-easy-to-review/SKILL.md create mode 100644 .agents/skills/pstack/no-comments/SKILL.md create mode 100644 .agents/skills/pstack/poteto-mode/SKILL.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/authoring-a-skill.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/autonomous-run.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/autopilot-full.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/autopilot-stack.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/babysit.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/bug-fix.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/eval.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/feature.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/hillclimb.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/investigation.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/multi-phase-plan.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/opening-a-pr.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/orchestrate.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/pause-safely.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/perf-issue.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/prototype.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/refactoring.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/runtime-forensics.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/session-pickup.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/shipping.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/trace-forensics.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/visual-parity.md create mode 100644 .agents/skills/pstack/poteto-mode/playbooks/worktree-cleanup.md create mode 100644 .agents/skills/pstack/poteto-mode/references/bugbot-triage.md create mode 100644 .agents/skills/pstack/poteto-mode/references/codex-tools.md create mode 100644 .agents/skills/pstack/poteto-mode/references/plan.md create mode 100644 .agents/skills/pstack/principle-boundary-discipline/SKILL.md create mode 100644 .agents/skills/pstack/principle-build-the-lever/SKILL.md create mode 100644 .agents/skills/pstack/principle-encode-lessons-in-structure/SKILL.md create mode 100644 .agents/skills/pstack/principle-exhaust-the-design-space/SKILL.md create mode 100644 .agents/skills/pstack/principle-experience-first/SKILL.md create mode 100644 .agents/skills/pstack/principle-fix-root-causes/SKILL.md create mode 100644 .agents/skills/pstack/principle-foundational-thinking/SKILL.md create mode 100644 .agents/skills/pstack/principle-guard-the-context-window/SKILL.md create mode 100644 .agents/skills/pstack/principle-laziness-protocol/SKILL.md create mode 100644 .agents/skills/pstack/principle-make-operations-idempotent/SKILL.md create mode 100644 .agents/skills/pstack/principle-migrate-callers-then-delete-legacy-apis/SKILL.md create mode 100644 .agents/skills/pstack/principle-minimize-reader-load/SKILL.md create mode 100644 .agents/skills/pstack/principle-model-the-domain/SKILL.md create mode 100644 .agents/skills/pstack/principle-never-block-on-the-human/SKILL.md create mode 100644 .agents/skills/pstack/principle-outcome-oriented-execution/SKILL.md create mode 100644 .agents/skills/pstack/principle-prove-it-works/SKILL.md create mode 100644 .agents/skills/pstack/principle-redesign-from-first-principles/SKILL.md create mode 100644 .agents/skills/pstack/principle-separate-before-serializing-shared-state/SKILL.md create mode 100644 .agents/skills/pstack/principle-sequence-verifiable-units/SKILL.md create mode 100644 .agents/skills/pstack/principle-subtract-before-you-add/SKILL.md create mode 100644 .agents/skills/pstack/principle-type-system-discipline/SKILL.md create mode 100644 .agents/skills/pstack/recall/SKILL.md create mode 100644 .agents/skills/pstack/reflect/SKILL.md create mode 100644 .agents/skills/pstack/reflect/references/divergent-reviewer.md create mode 100644 .agents/skills/pstack/reflect/references/judgment-reviewer.md create mode 100644 .agents/skills/pstack/reflect/references/synthesizer.md create mode 100644 .agents/skills/pstack/reflect/references/tooling-reviewer.md create mode 100644 .agents/skills/pstack/setup-pstack/SKILL.md create mode 100644 .agents/skills/pstack/show-me-your-work/SKILL.md create mode 100644 .agents/skills/pstack/swarm/SKILL.md create mode 100644 .agents/skills/pstack/tdd/SKILL.md create mode 100644 .agents/skills/pstack/teach/SKILL.md create mode 100644 .agents/skills/pstack/technical-writing/SKILL.md create mode 100644 .agents/skills/pstack/thermo-nuclear-code-quality-review/SKILL.md create mode 100644 .agents/skills/pstack/typescript-best-practices/SKILL.md create mode 100644 .agents/skills/pstack/typescript-best-practices/references/patterns.md create mode 100644 .agents/skills/pstack/unslop/SKILL.md create mode 100644 .agents/skills/pstack/what-did-i-get-done/SKILL.md create mode 100644 .agents/skills/pstack/why/SKILL.md create mode 100644 .agents/skills/pstack/why/references/epistemics.md create mode 100644 .agents/skills/pstack/why/references/investigator-prompt.md create mode 100644 .agents/skills/pstack/why/references/source-playbook.md create mode 100644 .agents/skills/pstack/why/references/sources/code-archaeology.md create mode 100644 .agents/skills/pstack/why/references/sources/databricks.md create mode 100644 .agents/skills/pstack/why/references/sources/datadog.md create mode 100644 .agents/skills/pstack/why/references/sources/incident-postmortem.md create mode 100644 .agents/skills/pstack/why/references/sources/linear.md create mode 100644 .agents/skills/pstack/why/references/sources/notion.md create mode 100644 .agents/skills/pstack/why/references/sources/sentry.md create mode 100644 .agents/skills/pstack/why/references/sources/slack.md create mode 100644 .agents/skills/pstack/why/references/synthesizer-prompt.md create mode 100644 .agents/skills/superpowers/LICENSE create mode 100644 .agents/skills/superpowers/brainstorming/SKILL.md create mode 100644 .agents/skills/superpowers/brainstorming/spec-document-reviewer-prompt.md create mode 100644 .agents/skills/superpowers/brainstorming/visual-companion.md create mode 100644 .agents/skills/superpowers/dispatching-parallel-agents/SKILL.md create mode 100644 .agents/skills/superpowers/executing-plans/SKILL.md create mode 100644 .agents/skills/superpowers/finishing-a-development-branch/SKILL.md create mode 100644 .agents/skills/superpowers/receiving-code-review/SKILL.md create mode 100644 .agents/skills/superpowers/requesting-code-review/SKILL.md create mode 100644 .agents/skills/superpowers/requesting-code-review/code-reviewer.md create mode 100644 .agents/skills/superpowers/subagent-driven-development/SKILL.md create mode 100644 .agents/skills/superpowers/subagent-driven-development/implementer-prompt.md create mode 100644 .agents/skills/superpowers/subagent-driven-development/re-review-prompt.md create mode 100644 .agents/skills/superpowers/subagent-driven-development/task-reviewer-prompt.md create mode 100644 .agents/skills/superpowers/systematic-debugging/CREATION-LOG.md create mode 100644 .agents/skills/superpowers/systematic-debugging/SKILL.md create mode 100644 .agents/skills/superpowers/systematic-debugging/condition-based-waiting.md create mode 100644 .agents/skills/superpowers/systematic-debugging/defense-in-depth.md create mode 100644 .agents/skills/superpowers/systematic-debugging/root-cause-tracing.md create mode 100644 .agents/skills/superpowers/systematic-debugging/test-academic.md create mode 100644 .agents/skills/superpowers/systematic-debugging/test-pressure-1.md create mode 100644 .agents/skills/superpowers/systematic-debugging/test-pressure-2.md create mode 100644 .agents/skills/superpowers/systematic-debugging/test-pressure-3.md create mode 100644 .agents/skills/superpowers/test-driven-development/SKILL.md create mode 100644 .agents/skills/superpowers/test-driven-development/writing-good-tests.md create mode 100644 .agents/skills/superpowers/using-git-worktrees/SKILL.md create mode 100644 .agents/skills/superpowers/using-superpowers/SKILL.md create mode 100644 .agents/skills/superpowers/using-superpowers/references/antigravity-tools.md create mode 100644 .agents/skills/superpowers/using-superpowers/references/codex-tools.md create mode 100644 .agents/skills/superpowers/using-superpowers/references/gemini-tools.md create mode 100644 .agents/skills/superpowers/using-superpowers/references/hermes-tools.md create mode 100644 .agents/skills/superpowers/using-superpowers/references/pi-tools.md create mode 100644 .agents/skills/superpowers/verification-before-completion/SKILL.md create mode 100644 .agents/skills/superpowers/writing-plans/SKILL.md create mode 100644 .agents/skills/superpowers/writing-plans/plan-document-reviewer-prompt.md create mode 100644 .agents/skills/superpowers/writing-skills/SKILL.md create mode 100644 .agents/skills/superpowers/writing-skills/anthropic-best-practices.md create mode 100644 .agents/skills/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md create mode 100644 .agents/skills/superpowers/writing-skills/persuasion-principles.md create mode 100644 .agents/skills/superpowers/writing-skills/testing-skills-with-subagents.md create mode 100644 .claude/skills/gstack/LICENSE create mode 100644 .claude/skills/gstack/_router/SKILL.md create mode 100644 .claude/skills/gstack/autoplan/SKILL.md create mode 100644 .claude/skills/gstack/benchmark-models/SKILL.md create mode 100644 .claude/skills/gstack/benchmark/SKILL.md create mode 100644 .claude/skills/gstack/browse/PLAN-snapshot-dropdown-interactive.md create mode 100644 .claude/skills/gstack/browse/SKILL.md create mode 100644 .claude/skills/gstack/canary/SKILL.md create mode 100644 .claude/skills/gstack/careful/SKILL.md create mode 100644 .claude/skills/gstack/codex/SKILL.md create mode 100644 .claude/skills/gstack/context-restore/SKILL.md create mode 100644 .claude/skills/gstack/context-save/SKILL.md create mode 100644 .claude/skills/gstack/cso/ACKNOWLEDGEMENTS.md create mode 100644 .claude/skills/gstack/cso/SKILL.md create mode 100644 .claude/skills/gstack/cso/sections/audit-phases.md create mode 100644 .claude/skills/gstack/design-consultation/SKILL.md create mode 100644 .claude/skills/gstack/design-consultation/sections/proposal-and-preview.md create mode 100644 .claude/skills/gstack/design-html/SKILL.md create mode 100644 .claude/skills/gstack/design-review/SKILL.md create mode 100644 .claude/skills/gstack/design-shotgun/SKILL.md create mode 100644 .claude/skills/gstack/devex-review/SKILL.md create mode 100644 .claude/skills/gstack/diagram/SKILL.md create mode 100644 .claude/skills/gstack/document-generate/SKILL.md create mode 100644 .claude/skills/gstack/document-release/SKILL.md create mode 100644 .claude/skills/gstack/document-release/sections/release-body.md create mode 100644 .claude/skills/gstack/freeze/SKILL.md create mode 100644 .claude/skills/gstack/gstack-openclaw-ceo-review/SKILL.md create mode 100644 .claude/skills/gstack/gstack-openclaw-investigate/SKILL.md create mode 100644 .claude/skills/gstack/gstack-openclaw-office-hours/SKILL.md create mode 100644 .claude/skills/gstack/gstack-openclaw-retro/SKILL.md create mode 100644 .claude/skills/gstack/gstack-upgrade/SKILL.md create mode 100644 .claude/skills/gstack/guard/SKILL.md create mode 100644 .claude/skills/gstack/hackernews-frontpage/SKILL.md create mode 100644 .claude/skills/gstack/health/SKILL.md create mode 100644 .claude/skills/gstack/investigate/SKILL.md create mode 100644 .claude/skills/gstack/ios-clean/SKILL.md create mode 100644 .claude/skills/gstack/ios-design-review/SKILL.md create mode 100644 .claude/skills/gstack/ios-fix/SKILL.md create mode 100644 .claude/skills/gstack/ios-qa/SKILL.md create mode 100644 .claude/skills/gstack/ios-qa/docs/tailscale-acl-example.md create mode 100644 .claude/skills/gstack/ios-sync/SKILL.md create mode 100644 .claude/skills/gstack/land-and-deploy/SKILL.md create mode 100644 .claude/skills/gstack/landing-report/SKILL.md create mode 100644 .claude/skills/gstack/learn/SKILL.md create mode 100644 .claude/skills/gstack/make-pdf/SKILL.md create mode 100644 .claude/skills/gstack/make-pdf/test/fixtures/combined-gate.md create mode 100644 .claude/skills/gstack/make-pdf/test/fixtures/diagram-gate.md create mode 100644 .claude/skills/gstack/make-pdf/test/fixtures/emoji-gate.md create mode 100644 .claude/skills/gstack/make-pdf/test/fixtures/landscape-gate.md create mode 100644 .claude/skills/gstack/office-hours/SKILL.md create mode 100644 .claude/skills/gstack/office-hours/sections/design-and-handoff.md create mode 100644 .claude/skills/gstack/open-gstack-browser/SKILL.md create mode 100644 .claude/skills/gstack/pair-agent/SKILL.md create mode 100644 .claude/skills/gstack/plan-ceo-review/SKILL.md create mode 100644 .claude/skills/gstack/plan-ceo-review/sections/review-sections.md create mode 100644 .claude/skills/gstack/plan-design-review/SKILL.md create mode 100644 .claude/skills/gstack/plan-design-review/sections/review-sections.md create mode 100644 .claude/skills/gstack/plan-devex-review/SKILL.md create mode 100644 .claude/skills/gstack/plan-devex-review/dx-hall-of-fame.md create mode 100644 .claude/skills/gstack/plan-devex-review/sections/review-sections.md create mode 100644 .claude/skills/gstack/plan-eng-review/SKILL.md create mode 100644 .claude/skills/gstack/plan-eng-review/sections/review-sections.md create mode 100644 .claude/skills/gstack/plan-tune/SKILL.md create mode 100644 .claude/skills/gstack/qa-only/SKILL.md create mode 100644 .claude/skills/gstack/qa/SKILL.md create mode 100644 .claude/skills/gstack/qa/references/issue-taxonomy.md create mode 100644 .claude/skills/gstack/qa/templates/qa-report-template.md create mode 100644 .claude/skills/gstack/retro/SKILL.md create mode 100644 .claude/skills/gstack/review/SKILL.md create mode 100644 .claude/skills/gstack/review/TODOS-format.md create mode 100644 .claude/skills/gstack/review/checklist.md create mode 100644 .claude/skills/gstack/review/design-checklist.md create mode 100644 .claude/skills/gstack/review/greptile-triage.md create mode 100644 .claude/skills/gstack/review/specialists/api-contract.md create mode 100644 .claude/skills/gstack/review/specialists/data-migration.md create mode 100644 .claude/skills/gstack/review/specialists/maintainability.md create mode 100644 .claude/skills/gstack/review/specialists/performance.md create mode 100644 .claude/skills/gstack/review/specialists/red-team.md create mode 100644 .claude/skills/gstack/review/specialists/security.md create mode 100644 .claude/skills/gstack/review/specialists/testing.md create mode 100644 .claude/skills/gstack/scrape/SKILL.md create mode 100644 .claude/skills/gstack/setup-browser-cookies/SKILL.md create mode 100644 .claude/skills/gstack/setup-deploy/SKILL.md create mode 100644 .claude/skills/gstack/setup-gbrain/SKILL.md create mode 100644 .claude/skills/gstack/setup-gbrain/memory.md create mode 100644 .claude/skills/gstack/ship/SKILL.md create mode 100644 .claude/skills/gstack/ship/sections/adversarial.md create mode 100644 .claude/skills/gstack/ship/sections/apple-release.md create mode 100644 .claude/skills/gstack/ship/sections/changelog.md create mode 100644 .claude/skills/gstack/ship/sections/greptile.md create mode 100644 .claude/skills/gstack/ship/sections/plan-completion.md create mode 100644 .claude/skills/gstack/ship/sections/pr-body.md create mode 100644 .claude/skills/gstack/ship/sections/review-army.md create mode 100644 .claude/skills/gstack/ship/sections/test-coverage.md create mode 100644 .claude/skills/gstack/ship/sections/tests.md create mode 100644 .claude/skills/gstack/skillify/SKILL.md create mode 100644 .claude/skills/gstack/spec/SKILL.md create mode 100644 .claude/skills/gstack/sync-gbrain/SKILL.md create mode 100644 .claude/skills/gstack/unfreeze/SKILL.md create mode 100644 .claude/skills/mattpocock/LICENSE create mode 100644 .claude/skills/mattpocock/ask-matt/PHASE-BOUNDARIES.md create mode 100644 .claude/skills/mattpocock/ask-matt/SKILL.md create mode 100644 .claude/skills/mattpocock/claude-handoff/SKILL.md create mode 100644 .claude/skills/mattpocock/code-review/SKILL.md create mode 100644 .claude/skills/mattpocock/codebase-design/DEEPENING.md create mode 100644 .claude/skills/mattpocock/codebase-design/DESIGN-IT-TWICE.md create mode 100644 .claude/skills/mattpocock/codebase-design/SKILL.md create mode 100644 .claude/skills/mattpocock/diagnosing-bugs/SKILL.md create mode 100644 .claude/skills/mattpocock/domain-modeling/ADR-FORMAT.md create mode 100644 .claude/skills/mattpocock/domain-modeling/CONTEXT-FORMAT.md create mode 100644 .claude/skills/mattpocock/domain-modeling/SKILL.md create mode 100644 .claude/skills/mattpocock/git-guardrails-claude-code/SKILL.md create mode 100644 .claude/skills/mattpocock/grill-me/SKILL.md create mode 100644 .claude/skills/mattpocock/grill-with-docs/SKILL.md create mode 100644 .claude/skills/mattpocock/grilling/SKILL.md create mode 100644 .claude/skills/mattpocock/handoff/SKILL.md create mode 100644 .claude/skills/mattpocock/implement-spec/SKILL.md create mode 100644 .claude/skills/mattpocock/implement/SKILL.md create mode 100644 .claude/skills/mattpocock/improve-codebase-architecture/HTML-REPORT.md create mode 100644 .claude/skills/mattpocock/improve-codebase-architecture/SKILL.md create mode 100644 .claude/skills/mattpocock/loop-me/SKILL.md create mode 100644 .claude/skills/mattpocock/migrate-to-shoehorn/SKILL.md create mode 100644 .claude/skills/mattpocock/prototype/LOGIC.md create mode 100644 .claude/skills/mattpocock/prototype/SKILL.md create mode 100644 .claude/skills/mattpocock/prototype/UI.md create mode 100644 .claude/skills/mattpocock/research/SKILL.md create mode 100644 .claude/skills/mattpocock/resolving-merge-conflicts/SKILL.md create mode 100644 .claude/skills/mattpocock/retro/SKILL.md create mode 100644 .claude/skills/mattpocock/scaffold-exercises/SKILL.md create mode 100644 .claude/skills/mattpocock/setup-matt-pocock-skills/SKILL.md create mode 100644 .claude/skills/mattpocock/setup-matt-pocock-skills/domain.md create mode 100644 .claude/skills/mattpocock/setup-matt-pocock-skills/issue-tracker-github.md create mode 100644 .claude/skills/mattpocock/setup-matt-pocock-skills/issue-tracker-gitlab.md create mode 100644 .claude/skills/mattpocock/setup-matt-pocock-skills/issue-tracker-local.md create mode 100644 .claude/skills/mattpocock/setup-matt-pocock-skills/triage-labels.md create mode 100644 .claude/skills/mattpocock/setup-pre-commit/SKILL.md create mode 100644 .claude/skills/mattpocock/setup-ts-deep-modules/SKILL.md create mode 100644 .claude/skills/mattpocock/tdd/SKILL.md create mode 100644 .claude/skills/mattpocock/tdd/mocking.md create mode 100644 .claude/skills/mattpocock/tdd/tests.md create mode 100644 .claude/skills/mattpocock/teach/GLOSSARY-FORMAT.md create mode 100644 .claude/skills/mattpocock/teach/LEARNING-RECORD-FORMAT.md create mode 100644 .claude/skills/mattpocock/teach/MISSION-FORMAT.md create mode 100644 .claude/skills/mattpocock/teach/RESOURCES-FORMAT.md create mode 100644 .claude/skills/mattpocock/teach/SKILL.md create mode 100644 .claude/skills/mattpocock/to-questionnaire/SKILL.md create mode 100644 .claude/skills/mattpocock/to-spec/SKILL.md create mode 100644 .claude/skills/mattpocock/to-tickets/SKILL.md create mode 100644 .claude/skills/mattpocock/triage/AGENT-BRIEF.md create mode 100644 .claude/skills/mattpocock/triage/OUT-OF-SCOPE.md create mode 100644 .claude/skills/mattpocock/triage/SKILL.md create mode 100644 .claude/skills/mattpocock/wait-what/SKILL.md create mode 100644 .claude/skills/mattpocock/wayfinder/SKILL.md create mode 100644 .claude/skills/mattpocock/wizard/SKILL.md create mode 100644 .claude/skills/mattpocock/writing-beats/SKILL.md create mode 100644 .claude/skills/mattpocock/writing-for-agents/SKILL-MECHANICS.md create mode 100644 .claude/skills/mattpocock/writing-for-agents/SKILL.md create mode 100644 .claude/skills/mattpocock/writing-fragments/SKILL.md create mode 100644 .claude/skills/mattpocock/writing-shape/SKILL.md create mode 100644 .claude/skills/pstack/LICENSE create mode 100644 .claude/skills/pstack/LICENSE-cursor-team-kit create mode 100644 .claude/skills/pstack/LICENSE-superpowers create mode 100644 .claude/skills/pstack/NOTICE.md create mode 100644 .claude/skills/pstack/architect/SKILL.md create mode 100644 .claude/skills/pstack/architect/references/design-red-flags.md create mode 100644 .claude/skills/pstack/architect/references/rationale-template.md create mode 100644 .claude/skills/pstack/architect/references/runner-prompt.md create mode 100644 .claude/skills/pstack/arena/SKILL.md create mode 100644 .claude/skills/pstack/automate-me/SKILL.md create mode 100644 .claude/skills/pstack/babysit/SKILL.md create mode 100644 .claude/skills/pstack/babysit/references/bugbot-triage.md create mode 100644 .claude/skills/pstack/blast-radius/SKILL.md create mode 100644 .claude/skills/pstack/bro/SKILL.md create mode 100644 .claude/skills/pstack/create-verification-skill/SKILL.md create mode 100644 .claude/skills/pstack/create-verification-skill/references/feature-map-example/README.md create mode 100644 .claude/skills/pstack/create-verification-skill/references/feature-map-example/create-note.md create mode 100644 .claude/skills/pstack/create-verification-skill/references/feature-map-example/search.md create mode 100644 .claude/skills/pstack/deslop/SKILL.md create mode 100644 .claude/skills/pstack/figure-it-out/SKILL.md create mode 100644 .claude/skills/pstack/fix-ci/SKILL.md create mode 100644 .claude/skills/pstack/fix-merge-conflicts/SKILL.md create mode 100644 .claude/skills/pstack/get-pr-comments/SKILL.md create mode 100644 .claude/skills/pstack/how/SKILL.md create mode 100644 .claude/skills/pstack/how/references/critic-prompt.md create mode 100644 .claude/skills/pstack/how/references/critique-rubric.md create mode 100644 .claude/skills/pstack/how/references/explainer-prompt.md create mode 100644 .claude/skills/pstack/how/references/explorer-prompt.md create mode 100644 .claude/skills/pstack/interrogate/SKILL.md create mode 100644 .claude/skills/pstack/interrogate/references/code-quality-review.md create mode 100644 .claude/skills/pstack/interrogate/references/lead-judgment.md create mode 100644 .claude/skills/pstack/interrogate/references/reviewer-prompt.md create mode 100644 .claude/skills/pstack/interrogate/references/rubric.md create mode 100644 .claude/skills/pstack/maintain-verification-skill/SKILL.md create mode 100644 .claude/skills/pstack/make-pr-easy-to-review/SKILL.md create mode 100644 .claude/skills/pstack/no-comments/SKILL.md create mode 100644 .claude/skills/pstack/poteto-mode/SKILL.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/authoring-a-skill.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/autonomous-run.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/autopilot-full.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/autopilot-stack.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/babysit.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/bug-fix.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/eval.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/feature.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/hillclimb.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/investigation.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/multi-phase-plan.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/opening-a-pr.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/orchestrate.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/pause-safely.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/perf-issue.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/prototype.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/refactoring.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/runtime-forensics.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/session-pickup.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/shipping.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/trace-forensics.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/visual-parity.md create mode 100644 .claude/skills/pstack/poteto-mode/playbooks/worktree-cleanup.md create mode 100644 .claude/skills/pstack/poteto-mode/references/bugbot-triage.md create mode 100644 .claude/skills/pstack/poteto-mode/references/codex-tools.md create mode 100644 .claude/skills/pstack/poteto-mode/references/plan.md create mode 100644 .claude/skills/pstack/principle-boundary-discipline/SKILL.md create mode 100644 .claude/skills/pstack/principle-build-the-lever/SKILL.md create mode 100644 .claude/skills/pstack/principle-encode-lessons-in-structure/SKILL.md create mode 100644 .claude/skills/pstack/principle-exhaust-the-design-space/SKILL.md create mode 100644 .claude/skills/pstack/principle-experience-first/SKILL.md create mode 100644 .claude/skills/pstack/principle-fix-root-causes/SKILL.md create mode 100644 .claude/skills/pstack/principle-foundational-thinking/SKILL.md create mode 100644 .claude/skills/pstack/principle-guard-the-context-window/SKILL.md create mode 100644 .claude/skills/pstack/principle-laziness-protocol/SKILL.md create mode 100644 .claude/skills/pstack/principle-make-operations-idempotent/SKILL.md create mode 100644 .claude/skills/pstack/principle-migrate-callers-then-delete-legacy-apis/SKILL.md create mode 100644 .claude/skills/pstack/principle-minimize-reader-load/SKILL.md create mode 100644 .claude/skills/pstack/principle-model-the-domain/SKILL.md create mode 100644 .claude/skills/pstack/principle-never-block-on-the-human/SKILL.md create mode 100644 .claude/skills/pstack/principle-outcome-oriented-execution/SKILL.md create mode 100644 .claude/skills/pstack/principle-prove-it-works/SKILL.md create mode 100644 .claude/skills/pstack/principle-redesign-from-first-principles/SKILL.md create mode 100644 .claude/skills/pstack/principle-separate-before-serializing-shared-state/SKILL.md create mode 100644 .claude/skills/pstack/principle-sequence-verifiable-units/SKILL.md create mode 100644 .claude/skills/pstack/principle-subtract-before-you-add/SKILL.md create mode 100644 .claude/skills/pstack/principle-type-system-discipline/SKILL.md create mode 100644 .claude/skills/pstack/recall/SKILL.md create mode 100644 .claude/skills/pstack/reflect/SKILL.md create mode 100644 .claude/skills/pstack/reflect/references/divergent-reviewer.md create mode 100644 .claude/skills/pstack/reflect/references/judgment-reviewer.md create mode 100644 .claude/skills/pstack/reflect/references/synthesizer.md create mode 100644 .claude/skills/pstack/reflect/references/tooling-reviewer.md create mode 100644 .claude/skills/pstack/setup-pstack/SKILL.md create mode 100644 .claude/skills/pstack/show-me-your-work/SKILL.md create mode 100644 .claude/skills/pstack/swarm/SKILL.md create mode 100644 .claude/skills/pstack/tdd/SKILL.md create mode 100644 .claude/skills/pstack/teach/SKILL.md create mode 100644 .claude/skills/pstack/technical-writing/SKILL.md create mode 100644 .claude/skills/pstack/thermo-nuclear-code-quality-review/SKILL.md create mode 100644 .claude/skills/pstack/typescript-best-practices/SKILL.md create mode 100644 .claude/skills/pstack/typescript-best-practices/references/patterns.md create mode 100644 .claude/skills/pstack/unslop/SKILL.md create mode 100644 .claude/skills/pstack/what-did-i-get-done/SKILL.md create mode 100644 .claude/skills/pstack/why/SKILL.md create mode 100644 .claude/skills/pstack/why/references/epistemics.md create mode 100644 .claude/skills/pstack/why/references/investigator-prompt.md create mode 100644 .claude/skills/pstack/why/references/source-playbook.md create mode 100644 .claude/skills/pstack/why/references/sources/code-archaeology.md create mode 100644 .claude/skills/pstack/why/references/sources/databricks.md create mode 100644 .claude/skills/pstack/why/references/sources/datadog.md create mode 100644 .claude/skills/pstack/why/references/sources/incident-postmortem.md create mode 100644 .claude/skills/pstack/why/references/sources/linear.md create mode 100644 .claude/skills/pstack/why/references/sources/notion.md create mode 100644 .claude/skills/pstack/why/references/sources/sentry.md create mode 100644 .claude/skills/pstack/why/references/sources/slack.md create mode 100644 .claude/skills/pstack/why/references/synthesizer-prompt.md create mode 100644 .claude/skills/superpowers/LICENSE create mode 100644 .claude/skills/superpowers/brainstorming/SKILL.md create mode 100644 .claude/skills/superpowers/brainstorming/spec-document-reviewer-prompt.md create mode 100644 .claude/skills/superpowers/brainstorming/visual-companion.md create mode 100644 .claude/skills/superpowers/dispatching-parallel-agents/SKILL.md create mode 100644 .claude/skills/superpowers/executing-plans/SKILL.md create mode 100644 .claude/skills/superpowers/finishing-a-development-branch/SKILL.md create mode 100644 .claude/skills/superpowers/receiving-code-review/SKILL.md create mode 100644 .claude/skills/superpowers/requesting-code-review/SKILL.md create mode 100644 .claude/skills/superpowers/requesting-code-review/code-reviewer.md create mode 100644 .claude/skills/superpowers/subagent-driven-development/SKILL.md create mode 100644 .claude/skills/superpowers/subagent-driven-development/implementer-prompt.md create mode 100644 .claude/skills/superpowers/subagent-driven-development/re-review-prompt.md create mode 100644 .claude/skills/superpowers/subagent-driven-development/task-reviewer-prompt.md create mode 100644 .claude/skills/superpowers/systematic-debugging/CREATION-LOG.md create mode 100644 .claude/skills/superpowers/systematic-debugging/SKILL.md create mode 100644 .claude/skills/superpowers/systematic-debugging/condition-based-waiting.md create mode 100644 .claude/skills/superpowers/systematic-debugging/defense-in-depth.md create mode 100644 .claude/skills/superpowers/systematic-debugging/root-cause-tracing.md create mode 100644 .claude/skills/superpowers/systematic-debugging/test-academic.md create mode 100644 .claude/skills/superpowers/systematic-debugging/test-pressure-1.md create mode 100644 .claude/skills/superpowers/systematic-debugging/test-pressure-2.md create mode 100644 .claude/skills/superpowers/systematic-debugging/test-pressure-3.md create mode 100644 .claude/skills/superpowers/test-driven-development/SKILL.md create mode 100644 .claude/skills/superpowers/test-driven-development/writing-good-tests.md create mode 100644 .claude/skills/superpowers/using-git-worktrees/SKILL.md create mode 100644 .claude/skills/superpowers/using-superpowers/SKILL.md create mode 100644 .claude/skills/superpowers/using-superpowers/references/antigravity-tools.md create mode 100644 .claude/skills/superpowers/using-superpowers/references/codex-tools.md create mode 100644 .claude/skills/superpowers/using-superpowers/references/gemini-tools.md create mode 100644 .claude/skills/superpowers/using-superpowers/references/hermes-tools.md create mode 100644 .claude/skills/superpowers/using-superpowers/references/pi-tools.md create mode 100644 .claude/skills/superpowers/verification-before-completion/SKILL.md create mode 100644 .claude/skills/superpowers/writing-plans/SKILL.md create mode 100644 .claude/skills/superpowers/writing-plans/plan-document-reviewer-prompt.md create mode 100644 .claude/skills/superpowers/writing-skills/SKILL.md create mode 100644 .claude/skills/superpowers/writing-skills/anthropic-best-practices.md create mode 100644 .claude/skills/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md create mode 100644 .claude/skills/superpowers/writing-skills/persuasion-principles.md create mode 100644 .claude/skills/superpowers/writing-skills/testing-skills-with-subagents.md diff --git a/.agents/skills/gstack/LICENSE b/.agents/skills/gstack/LICENSE new file mode 100644 index 0000000..3502951 --- /dev/null +++ b/.agents/skills/gstack/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Garry Tan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/.agents/skills/gstack/_router/SKILL.md b/.agents/skills/gstack/_router/SKILL.md new file mode 100644 index 0000000..cf72cf7 --- /dev/null +++ b/.agents/skills/gstack/_router/SKILL.md @@ -0,0 +1,626 @@ +--- +name: gstack +preamble-tier: 1 +version: 1.2.0 +description: Router for the gstack skill suite. (gstack) +allowed-tools: + - Bash + - Read + - AskUserQuestion +triggers: + - gstack + - which gstack skill + - route this with gstack + +--- + + + + +## When to invoke this skill + +Sends any gstack request to the right skill +(planning, review, QA, shipping, debugging, docs, security, design). For browser/QA +and dogfooding it points you at /browse. Use when you invoke gstack without a specific +skill, or ask "which gstack skill fits this?". + +## Preamble (run first) + +```bash +_UPD=$(~/.claude/skills/gstack/bin/gstack-update-check 2>/dev/null || .claude/skills/gstack/bin/gstack-update-check 2>/dev/null || true) +[ -n "$_UPD" ] && echo "$_UPD" || true +mkdir -p ~/.gstack/sessions +touch ~/.gstack/sessions/"$PPID" +_SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') +find ~/.gstack/sessions -mmin +120 -type f -exec rm {} + 2>/dev/null || true +_PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") +_PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") +_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") +echo "BRANCH: $_BRANCH" +_SKILL_PREFIX=$(~/.claude/skills/gstack/bin/gstack-config get skill_prefix 2>/dev/null || echo "false") +echo "PROACTIVE: $_PROACTIVE" +echo "PROACTIVE_PROMPTED: $_PROACTIVE_PROMPTED" +echo "SKILL_PREFIX: $_SKILL_PREFIX" +source <(~/.claude/skills/gstack/bin/gstack-repo-mode 2>/dev/null) || true +REPO_MODE=${REPO_MODE:-unknown} +echo "REPO_MODE: $REPO_MODE" +_SESSION_KIND=$(~/.claude/skills/gstack/bin/gstack-session-kind 2>/dev/null || echo "interactive") +case "$_SESSION_KIND" in spawned|headless|interactive) ;; *) _SESSION_KIND="interactive" ;; esac +echo "SESSION_KIND: $_SESSION_KIND" +# Conductor host: AskUserQuestion is unreliable here (native disabled, MCP +# variant flaky), so skills render decisions as prose instead of calling the +# tool. Gated on !headless so an eval/CI run INSIDE Conductor (GSTACK_HEADLESS) +# still BLOCKs rather than rendering prose to nobody. +if [ "$_SESSION_KIND" != "headless" ] && { [ -n "${CONDUCTOR_WORKSPACE_PATH:-}" ] || [ -n "${CONDUCTOR_PORT:-}" ]; }; then + echo "CONDUCTOR_SESSION: true" +fi +_ACTIVATED=$([ -f ~/.gstack/.activated ] && echo "yes" || echo "no") +_FIRST_LOOP_SHOWN=$([ -f ~/.gstack/.first-loop-tip-shown ] && echo "yes" || echo "no") +echo "ACTIVATED: $_ACTIVATED" +echo "FIRST_LOOP_SHOWN: $_FIRST_LOOP_SHOWN" +# First-run project detection: run the detector ONLY on the first-ever skill run +# (ACTIVATED=no, interactive) so it stays off the hot path for every run after. +_FIRST_TASK="" +if [ "$_ACTIVATED" = "no" ] && [ "$_SESSION_KIND" != "headless" ]; then + _FIRST_TASK=$(~/.claude/skills/gstack/bin/gstack-first-task-detect 2>/dev/null || true) +fi +echo "FIRST_TASK: $_FIRST_TASK" +_LAKE_SEEN=$([ -f ~/.gstack/.completeness-intro-seen ] && echo "yes" || echo "no") +echo "LAKE_INTRO: $_LAKE_SEEN" +_TEL=$(~/.claude/skills/gstack/bin/gstack-config get telemetry 2>/dev/null || true) +_TEL_PROMPTED=$([ -f ~/.gstack/.telemetry-prompted ] && echo "yes" || echo "no") +_TEL_START=$(date +%s) +_SESSION_ID="$$-$(date +%s)" +echo "TELEMETRY: ${_TEL:-off}" +echo "TEL_PROMPTED: $_TEL_PROMPTED" +_EXPLAIN_LEVEL=$(~/.claude/skills/gstack/bin/gstack-config get explain_level 2>/dev/null || echo "default") +if [ "$_EXPLAIN_LEVEL" != "default" ] && [ "$_EXPLAIN_LEVEL" != "terse" ]; then _EXPLAIN_LEVEL="default"; fi +echo "EXPLAIN_LEVEL: $_EXPLAIN_LEVEL" +_QUESTION_TUNING=$(~/.claude/skills/gstack/bin/gstack-config get question_tuning 2>/dev/null || echo "false") +echo "QUESTION_TUNING: $_QUESTION_TUNING" +_UPDATE_CHECK=$(~/.claude/skills/gstack/bin/gstack-config get update_check 2>/dev/null || echo "true") +echo "UPDATE_CHECK: $_UPDATE_CHECK" +mkdir -p ~/.gstack/analytics +if [ "$_TEL" != "off" ]; then +echo '{"skill":"gstack","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(_repo=$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null | tr -cd 'a-zA-Z0-9._-'); echo "${_repo:-unknown}")'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true +fi +for _PF in $(find ~/.gstack/analytics -maxdepth 1 -name '.pending-*' 2>/dev/null); do + if [ -f "$_PF" ]; then + if [ "$_TEL" != "off" ] && [ -x "$HOME/.claude/skills/gstack/bin/gstack-telemetry-log" ]; then + ~/.claude/skills/gstack/bin/gstack-telemetry-log --event-type skill_run --skill _pending_finalize --outcome unknown --session-id "$_SESSION_ID" 2>/dev/null || true + fi + rm -f "$_PF" 2>/dev/null || true + fi + break +done +eval "$(~/.claude/skills/gstack/bin/gstack-slug 2>/dev/null)" 2>/dev/null || true +_LEARN_FILE="${GSTACK_HOME:-$HOME/.gstack}/projects/${SLUG:-unknown}/learnings.jsonl" +if [ -f "$_LEARN_FILE" ]; then + _LEARN_COUNT=$(wc -l < "$_LEARN_FILE" 2>/dev/null | tr -d ' ') + echo "LEARNINGS: $_LEARN_COUNT entries loaded" + if [ "$_LEARN_COUNT" -gt 5 ] 2>/dev/null; then + ~/.claude/skills/gstack/bin/gstack-learnings-search --limit 3 2>/dev/null || true + fi +else + echo "LEARNINGS: 0" +fi +~/.claude/skills/gstack/bin/gstack-timeline-log '{"skill":"gstack","event":"started","branch":"'"$_BRANCH"'","session":"'"$_SESSION_ID"'"}' 2>/dev/null & +_HAS_ROUTING="no" +for _RF in CLAUDE.md AGENTS.md; do + if [ -f "$_RF" ] && grep -q "## Skill routing" "$_RF" 2>/dev/null; then + _HAS_ROUTING="yes" + fi +done +_ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") +echo "HAS_ROUTING: $_HAS_ROUTING" +echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +_VENDORED="no" +if [ -d ".claude/skills/gstack" ] && [ ! -L ".claude/skills/gstack" ]; then + if [ -f ".claude/skills/gstack/VERSION" ] || [ -d ".claude/skills/gstack/.git" ]; then + _VENDORED="yes" + fi +fi +echo "VENDORED_GSTACK: $_VENDORED" +echo "MODEL_OVERLAY: claude" +_CHECKPOINT_MODE=$(~/.claude/skills/gstack/bin/gstack-config get checkpoint_mode 2>/dev/null || echo "explicit") +_CHECKPOINT_PUSH=$(~/.claude/skills/gstack/bin/gstack-config get checkpoint_push 2>/dev/null || echo "false") +echo "CHECKPOINT_MODE: $_CHECKPOINT_MODE" +echo "CHECKPOINT_PUSH: $_CHECKPOINT_PUSH" +# Plan-mode hint for skills like /spec that branch behavior on plan-mode state. +# Claude Code exposes plan mode via system reminders; we detect best-effort +# from CLAUDE_PLAN_FILE (set by the harness when plan mode is active) and +# fall back to "inactive". Codex hosts and Claude execution mode both end up +# inactive, which is the safe default (defaults to file+execute pipeline). +if [ -n "${CLAUDE_PLAN_FILE:-}${GSTACK_PLAN_MODE_FORCE:-}" ]; then + export GSTACK_PLAN_MODE="active" +elif [ "${GSTACK_PLAN_MODE:-}" = "active" ]; then + export GSTACK_PLAN_MODE="active" +else + export GSTACK_PLAN_MODE="inactive" +fi +echo "GSTACK_PLAN_MODE: $GSTACK_PLAN_MODE" +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true +``` + +## Plan Mode Safe Operations + +In plan mode, allowed because they inform the plan: `$B`, `$D`, `codex exec`/`codex review`, writes to `~/.gstack/`, writes to the plan file, and `open` for generated artifacts. + +## Skill Invocation During Plan Mode + +If the user invokes a skill in plan mode, the skill takes precedence over generic plan mode behavior. **Treat the skill file as executable instructions, not reference.** Follow it step by step starting from Step 0; any AskUserQuestion the skill fires is the workflow operating within plan mode, not a violation of it — and a skill whose instructions resolve a question themselves (e.g. a plan-mode auto-select) may legitimately not ask it. AskUserQuestion (any variant — `mcp__*__AskUserQuestion` or native; see "AskUserQuestion Format → Tool resolution") satisfies plan mode's end-of-turn requirement. If AskUserQuestion is unavailable or a call fails, follow the AskUserQuestion Format failure fallback: `headless` → BLOCKED; `interactive` → the prose fallback (also satisfies end-of-turn). At a STOP point, stop immediately. Do not continue the workflow or call ExitPlanMode there. Commands marked "PLAN MODE EXCEPTION — ALWAYS RUN" execute. Call ExitPlanMode only after the skill workflow completes, or if the user tells you to cancel the skill or leave plan mode. + +If `PROACTIVE` is `"false"`, do not auto-invoke or proactively suggest skills. If a skill seems useful, ask: "I think /skillname might help here — want me to run it?" + +If `SKILL_PREFIX` is `"true"`, suggest/invoke `/gstack-*` names. Disk paths stay `~/.claude/skills/gstack/[skill-name]/SKILL.md`. + +If `UPDATE_CHECK` is `"false"`, skip the next two lines — the update-check binary emits nothing in that mode, so there is no `UPGRADE_AVAILABLE` / `JUST_UPGRADED` output to act on. + +If output shows `UPGRADE_AVAILABLE `: read `~/.claude/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). + +If output shows `JUST_UPGRADED `: print "Running gstack v{to} (just updated!)". If `SPAWNED_SESSION` is true, skip feature discovery. + +Feature discovery, max one prompt per session: +- Missing `~/.claude/skills/gstack/.feature-prompted-continuous-checkpoint`: AskUserQuestion for Continuous checkpoint auto-commits. If accepted, run `~/.claude/skills/gstack/bin/gstack-config set checkpoint_mode continuous`. Always touch marker. +- Missing `~/.claude/skills/gstack/.feature-prompted-model-overlay`: inform "Model overlays are active. MODEL_OVERLAY shows the patch." Always touch marker. + +After upgrade prompts, continue workflow. + +If `WRITING_STYLE_PENDING` is `yes`: ask once about writing style: + +> v1 prompts are simpler: first-use jargon glosses, outcome-framed questions, shorter prose. Keep default or restore terse? + +Options: +- A) Keep the new default (recommended — good writing helps everyone) +- B) Restore V0 prose — set `explain_level: terse` + +If A: leave `explain_level` unset (defaults to `default`). +If B: run `~/.claude/skills/gstack/bin/gstack-config set explain_level terse`. + +Always run (regardless of choice): +```bash +rm -f ~/.gstack/.writing-style-prompt-pending +touch ~/.gstack/.writing-style-prompted +``` + +Skip if `WRITING_STYLE_PENDING` is `no`. + +If `LAKE_INTRO` is `no`: say "gstack follows the **Boil the Ocean** principle — do the complete thing when AI makes marginal cost near-zero. Read more: https://garryslist.org/posts/boil-the-ocean" Offer to open: + +```bash +open https://garryslist.org/posts/boil-the-ocean +touch ~/.gstack/.completeness-intro-seen +``` + +Only run `open` if yes. Always run `touch`. + +If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: ask telemetry once via AskUserQuestion: + +> Help gstack get better. Share usage data only: skill, duration, crashes, stable device ID. No code or file paths. Your repo name is recorded locally only and stripped before any upload. + +Options: +- A) Help gstack get better! (recommended) +- B) No thanks + +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask follow-up: + +> Anonymous mode sends only aggregate usage, no unique ID. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` + +Always run: +```bash +touch ~/.gstack/.telemetry-prompted +``` + +Skip if `TEL_PROMPTED` is `yes`. + +If `PROACTIVE_PROMPTED` is `no` AND `TEL_PROMPTED` is `yes`: ask once: + +> Let gstack proactively suggest skills, like /qa for "does this work?" or /investigate for bugs? + +Options: +- A) Keep it on (recommended) +- B) Turn it off — I'll type /commands myself + +If A: run `~/.claude/skills/gstack/bin/gstack-config set proactive true` +If B: run `~/.claude/skills/gstack/bin/gstack-config set proactive false` + +Always run: +```bash +touch ~/.gstack/.proactive-prompted +``` + +Skip if `PROACTIVE_PROMPTED` is `yes`. + +## First-run guidance (one-time) + +If `ACTIVATED` is `no` (first skill run on this machine) AND the preamble printed a non-empty `FIRST_TASK:` value that is NOT `nongit`: show ONE short, project-specific line mapped from the token, as a heads-up, then CONTINUE with whatever the user actually asked — do NOT halt their task. Map the token: `greenfield` → "Fresh repo — shape it first with `/spec` or `/office-hours`." `code_node`/`code_python`/`code_rust`/`code_go`/`code_ruby`/`code_ios` → "There's code here — `/qa` to see it work, or `/investigate` if something's off." `branch_ahead` → "Unshipped work on this branch — `/review` then `/ship`." `dirty_default` → "Uncommitted changes — `/review` before committing." `clean_default` → "Pick one: `/spec`, `/investigate`, or `/qa`." Then substitute the token you saw for TASK_TOKEN and run (best-effort), and mark activated: +```bash +~/.claude/skills/gstack/bin/gstack-telemetry-log --event-type first_task_scaffold_shown --skill "TASK_TOKEN" --outcome shown 2>/dev/null || true +touch ~/.gstack/.activated 2>/dev/null || true +``` + +If `ACTIVATED` is `no` but `FIRST_TASK:` is empty or `nongit` (headless, non-git, or nothing actionable): show nothing, just run `touch ~/.gstack/.activated 2>/dev/null || true`. + +Else if `ACTIVATED` is `yes` AND `FIRST_LOOP_SHOWN` is `no`: say once as a heads-up (then continue): + +> Tip: gstack pays off when you complete one loop — **plan → review → ship**. A common first loop: `/office-hours` or `/spec` to shape it, `/plan-eng-review` to lock it, then `/ship`. + +Then run `touch ~/.gstack/.first-loop-tip-shown 2>/dev/null || true`. + +Skip this section if `ACTIVATED` and `FIRST_LOOP_SHOWN` are both `yes`. + +If `HAS_ROUTING` is `no` AND `ROUTING_DECLINED` is `false` AND `PROACTIVE_PROMPTED` is `yes`: +Check if a CLAUDE.md file exists in the project root. If it does not exist, create it. + +Use AskUserQuestion: + +> gstack works best when your project's CLAUDE.md includes skill routing rules. + +Options: +- A) Add routing rules to CLAUDE.md (recommended) +- B) No thanks, I'll invoke skills manually + +If A: Append this section to the end of CLAUDE.md: + +```markdown + +## Skill routing + +When the user's request matches an available skill, invoke it via the Skill tool. When in doubt, invoke the skill. + +Key routing rules: +- Product ideas/brainstorming → invoke /office-hours +- Strategy/scope → invoke /plan-ceo-review +- Architecture → invoke /plan-eng-review +- Design system/plan review → invoke /design-consultation or /plan-design-review +- Full review pipeline → invoke /autoplan +- Bugs/errors → invoke /investigate +- QA/testing site behavior → invoke /qa or /qa-only +- Code review/diff check → invoke /review +- Visual polish → invoke /design-review +- Ship/deploy/PR → invoke /ship or /land-and-deploy +- Save progress → invoke /context-save +- Resume context → invoke /context-restore +- Author a backlog-ready spec/issue → invoke /spec +``` + +Then commit the change: `git add CLAUDE.md && git commit -m "chore: add gstack skill routing rules to CLAUDE.md"` + +If B: run `~/.claude/skills/gstack/bin/gstack-config set routing_declined true` and say they can re-enable with `gstack-config set routing_declined false`. + +This only happens once per project. Skip if `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`. + +If `VENDORED_GSTACK` is `yes`, warn once via AskUserQuestion unless `~/.gstack/.vendoring-warned-$SLUG` exists: + +> This project has gstack vendored in `.claude/skills/gstack/`. Vendoring is deprecated. +> Migrate to team mode? + +Options: +- A) Yes, migrate to team mode now +- B) No, I'll handle it myself + +If A: +1. Run `git rm -r .claude/skills/gstack/` +2. Run `echo '.claude/skills/gstack/' >> .gitignore` +3. Run `~/.claude/skills/gstack/bin/gstack-team-init required` (or `optional`) +4. Run `git add .claude/ .gitignore CLAUDE.md && git commit -m "chore: migrate gstack from vendored to team mode"` +5. Tell the user: "Done. Each developer now runs: `cd ~/.claude/skills/gstack && ./setup --team`" + +If B: say "OK, you're on your own to keep the vendored copy up to date." + +Always run (regardless of choice): +```bash +eval "$(~/.claude/skills/gstack/bin/gstack-slug 2>/dev/null)" 2>/dev/null || true +touch ~/.gstack/.vendoring-warned-${SLUG:-unknown} +``` + +If marker exists, skip. + +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + +## Artifacts Sync (skill start) + +```bash +_GSTACK_HOME="${GSTACK_HOME:-$HOME/.gstack}" +# Prefer the v1.27.0.0 artifacts file; fall back to brain file for users +# upgrading mid-stream before the migration script runs. +if [ -f "$HOME/.gstack-artifacts-remote.txt" ]; then + _BRAIN_REMOTE_FILE="$HOME/.gstack-artifacts-remote.txt" +else + _BRAIN_REMOTE_FILE="$HOME/.gstack-brain-remote.txt" +fi +_BRAIN_SYNC_BIN="$HOME/.claude/skills/gstack/bin/gstack-brain-sync" +_BRAIN_CONFIG_BIN="$HOME/.claude/skills/gstack/bin/gstack-config" + +# /sync-gbrain context-load: teach the agent to use gbrain when it's available. +# Per-worktree pin: post-spike redesign uses kubectl-style `.gbrain-source` in the +# git toplevel to scope queries. Look for the pin in the worktree (not a global +# state file) so that opening worktree B without a pin doesn't claim "indexed" +# just because worktree A was synced. Empty string when gbrain is not +# configured (zero context cost for non-gbrain users). +_GBRAIN_CONFIG="$HOME/.gbrain/config.json" +if [ -f "$_GBRAIN_CONFIG" ] && command -v gbrain >/dev/null 2>&1; then + _GBRAIN_VERSION_OK=$(gbrain --version 2>/dev/null | grep -c '^gbrain ' || echo 0) + if [ "$_GBRAIN_VERSION_OK" -gt 0 ] 2>/dev/null; then + _GBRAIN_PIN_PATH="" + _REPO_TOP=$(git rev-parse --show-toplevel 2>/dev/null || echo "") + if [ -n "$_REPO_TOP" ] && [ -f "$_REPO_TOP/.gbrain-source" ]; then + _GBRAIN_PIN_PATH="$_REPO_TOP/.gbrain-source" + fi + if [ -n "$_GBRAIN_PIN_PATH" ]; then + echo "GBrain configured. Prefer \`gbrain search\`/\`gbrain query\` over Grep for" + echo "semantic questions; use \`gbrain code-def\`/\`code-refs\`/\`code-callers\` for" + echo "symbol-aware code lookup. See \"## GBrain Search Guidance\" in CLAUDE.md." + echo "Run /sync-gbrain to refresh." + else + echo "GBrain configured but this worktree isn't pinned yet. Run \`/sync-gbrain --full\`" + echo "before relying on \`gbrain search\` for code questions in this worktree." + echo "Falls back to Grep until pinned." + fi + fi +fi + +_BRAIN_SYNC_MODE=$("$_BRAIN_CONFIG_BIN" get artifacts_sync_mode 2>/dev/null || echo off) + +# Detect remote-MCP mode (Path 4 of /setup-gbrain). Local artifacts sync is +# a no-op in remote mode; the brain server pulls from GitHub/GitLab on its +# own cadence. Read claude.json directly to keep this preamble fast (no +# subprocess to claude CLI on every skill start). Both registration scopes +# are read (#2499): user scope, then the nearest-ancestor project scope. +_GBRAIN_MCP_MODE="none" +_GBRAIN_MCP_ENTRY="" +if command -v jq >/dev/null 2>&1 && [ -f "$HOME/.claude.json" ]; then + _GBRAIN_MCP_ENTRY=$(jq -c --arg cwd "$PWD" '((.projects // {}) | to_entries | map(select((.key as $k | $cwd == $k or ($cwd | startswith($k + "/")) or ($cwd | startswith($k + "\\"))) and ((try .value.mcpServers.gbrain catch null) != null))) | sort_by(.key | length) | last | .value.mcpServers.gbrain) // .mcpServers.gbrain // empty' "$HOME/.claude.json" 2>/dev/null) + _GBRAIN_MCP_TYPE=$(printf '%s' "$_GBRAIN_MCP_ENTRY" | jq -r '.type // .transport // empty' 2>/dev/null) + case "$_GBRAIN_MCP_TYPE" in + url|http|sse) _GBRAIN_MCP_MODE="remote-http" ;; + stdio) _GBRAIN_MCP_MODE="local-stdio" ;; + esac +fi + +if [ -f "$_BRAIN_REMOTE_FILE" ] && [ ! -d "$_GSTACK_HOME/.git" ] && [ "$_BRAIN_SYNC_MODE" = "off" ]; then + _BRAIN_NEW_URL=$(head -1 "$_BRAIN_REMOTE_FILE" 2>/dev/null | tr -d '[:space:]') + if [ -n "$_BRAIN_NEW_URL" ]; then + echo "ARTIFACTS_SYNC: artifacts repo detected: $_BRAIN_NEW_URL" + echo "ARTIFACTS_SYNC: run 'gstack-brain-restore' to pull your cross-machine artifacts (or 'gstack-config set artifacts_sync_mode off' to dismiss forever)" + fi +fi + +if [ -d "$_GSTACK_HOME/.git" ] && [ "$_BRAIN_SYNC_MODE" != "off" ]; then + _BRAIN_LAST_PULL_FILE="$_GSTACK_HOME/.brain-last-pull" + _BRAIN_NOW=$(date +%s) + _BRAIN_DO_PULL=1 + if [ -f "$_BRAIN_LAST_PULL_FILE" ]; then + _BRAIN_LAST=$(cat "$_BRAIN_LAST_PULL_FILE" 2>/dev/null || echo 0) + case "$_BRAIN_LAST" in ''|*[!0-9]*) _BRAIN_LAST=0 ;; esac + _BRAIN_AGE=$(( _BRAIN_NOW - _BRAIN_LAST )) + [ "$_BRAIN_AGE" -lt 86400 ] && _BRAIN_DO_PULL=0 + fi + if [ "$_BRAIN_DO_PULL" = "1" ]; then + ( cd "$_GSTACK_HOME" && git fetch origin >/dev/null 2>&1 && git merge --ff-only "origin/$(git rev-parse --abbrev-ref HEAD)" >/dev/null 2>&1 ) || true + echo "$_BRAIN_NOW" > "$_BRAIN_LAST_PULL_FILE" + fi + "$_BRAIN_SYNC_BIN" --once 2>/dev/null || true +fi + +if [ "$_GBRAIN_MCP_MODE" = "remote-http" ]; then + # Remote-MCP mode: local artifacts sync is a no-op (brain admin's server + # pulls from GitHub/GitLab). Show the user this is by design, not broken. + _GBRAIN_HOST=$(printf '%s' "${_GBRAIN_MCP_ENTRY:-}" | jq -r '.url // empty' 2>/dev/null | sed -E 's|^https?://([^/:]+).*|\1|' | head -1 | tr -cd 'A-Za-z0-9._-') + echo "ARTIFACTS_SYNC: remote-mode (managed by brain server ${_GBRAIN_HOST:-remote})" +elif [ -d "$_GSTACK_HOME/.git" ] && [ "$_BRAIN_SYNC_MODE" != "off" ]; then + _BRAIN_QUEUE_DEPTH=0 + # Spool-dir queue (one file per record); legacy .brain-queue.jsonl lines are + # counted too until the drain migrates them. + [ -d "$_GSTACK_HOME/.brain-queue.d" ] && _BRAIN_QUEUE_DEPTH=$(find "$_GSTACK_HOME/.brain-queue.d" -maxdepth 1 -name '*.json' 2>/dev/null | wc -l | tr -d ' ') + [ -f "$_GSTACK_HOME/.brain-queue.jsonl" ] && _BRAIN_QUEUE_DEPTH=$(( _BRAIN_QUEUE_DEPTH + $(wc -l < "$_GSTACK_HOME/.brain-queue.jsonl" | tr -d ' ') )) + [ -f "$_GSTACK_HOME/.brain-queue.jsonl.migrating" ] && _BRAIN_QUEUE_DEPTH=$(( _BRAIN_QUEUE_DEPTH + $(wc -l < "$_GSTACK_HOME/.brain-queue.jsonl.migrating" | tr -d ' ') )) + _BRAIN_LAST_PUSH="never" + [ -f "$_GSTACK_HOME/.brain-last-push" ] && _BRAIN_LAST_PUSH=$(cat "$_GSTACK_HOME/.brain-last-push" 2>/dev/null || echo never) + echo "ARTIFACTS_SYNC: mode=$_BRAIN_SYNC_MODE | last_push=$_BRAIN_LAST_PUSH | queue=$_BRAIN_QUEUE_DEPTH" +else + echo "ARTIFACTS_SYNC: off" +fi +``` + + + +Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: + +> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? + +Options: +- A) Everything allowlisted (recommended) +- B) Only artifacts +- C) Decline, keep everything local + +After answer: + +```bash +# Chosen mode: full | artifacts-only | off +"$_BRAIN_CONFIG_BIN" set artifacts_sync_mode +"$_BRAIN_CONFIG_BIN" set artifacts_sync_mode_prompted true +``` + +If A/B and `~/.gstack/.git` is missing, ask whether to run `gstack-artifacts-init`. Do not block the skill. + +At skill END before telemetry: + +```bash +"$HOME/.claude/skills/gstack/bin/gstack-brain-sync" --discover-new 2>/dev/null || true +"$HOME/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true +``` + + +## Model-Specific Behavioral Patch (claude) + +The following nudges are tuned for the claude model family. They are +**subordinate** to skill workflow, STOP points, AskUserQuestion gates, plan-mode +safety, and /ship review gates. If a nudge below conflicts with skill instructions, +the skill wins. Treat these as preferences, not rules. + +**Todo-list discipline.** When working through a multi-step plan, mark each task +complete individually as you finish it. Do not batch-complete at the end. If a task +turns out to be unnecessary, mark it skipped with a one-line reason. + +**Think before heavy actions.** For complex operations (refactors, migrations, +non-trivial new features), briefly state your approach before executing. This lets +the user course-correct cheaply instead of mid-flight. + +**Dedicated tools over Bash.** Prefer Read, Edit, Write, Glob, Grep over shell +equivalents (cat, sed, find, grep). The dedicated tools are cheaper and clearer. + +## Voice + +Direct, concrete, builder-to-builder. Name the file, function, command, and user-visible impact. No filler. + +No em dashes. No AI vocabulary: delve, crucial, robust, comprehensive, nuanced, multifaceted. Never corporate or academic. Short paragraphs. End with what to do. + +The user has context you do not. Cross-model agreement is a recommendation, not a decision. The user decides. + +## Completion Status Protocol + +When completing a skill workflow, report status using one of: +- **DONE** — completed with evidence. +- **DONE_WITH_CONCERNS** — completed, but list concerns. +- **BLOCKED** — cannot proceed; state blocker and what was tried. +- **NEEDS_CONTEXT** — missing info; state exactly what is needed. + +Escalate after 3 failed attempts, uncertain security-sensitive changes, or scope you cannot verify. Format: `STATUS`, `REASON`, `ATTEMPTED`, `RECOMMENDATION`. + +## Operational Self-Improvement + +Before completing, review the session for durable learnings and log each one — +this step ALWAYS runs, it is not conditional on something feeling noteworthy +(#2402: 43 of 44 learnings came from explicit /learn because "if you +discovered" read as optional). A durable learning is a project quirk, command +fix, pitfall, or pattern that would save 5+ minutes in a future session. If +the review genuinely surfaces none, state "No durable learnings this session" +in your completion summary — an explicit empty result, not a skipped step. + +```bash +~/.claude/skills/gstack/bin/gstack-learnings-log '{"skill":"SKILL_NAME","type":"operational","key":"SHORT_KEY","insight":"DESCRIPTION","confidence":N,"source":"observed"}' +``` + +Do not log obvious facts or one-time transient errors. + +## Telemetry (run last) + +After workflow completion, log telemetry. Use skill `name:` from frontmatter. OUTCOME is success/error/abort/unknown. + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/`, matching preamble analytics writes. + +Run this bash: + +```bash +_TEL_END=$(date +%s) +_TEL_DUR=$(( _TEL_END - _TEL_START )) +rm -f ~/.gstack/analytics/.pending-"$_SESSION_ID" 2>/dev/null || true +# Session timeline: record skill completion (local-only, never sent anywhere) +~/.claude/skills/gstack/bin/gstack-timeline-log '{"skill":"SKILL_NAME","event":"completed","branch":"'$(git branch --show-current 2>/dev/null || echo unknown)'","outcome":"OUTCOME","duration_s":"'"$_TEL_DUR"'","session":"'"$_SESSION_ID"'"}' 2>/dev/null || true +# Local analytics (gated on telemetry setting) +if [ "$_TEL" != "off" ]; then +echo '{"skill":"SKILL_NAME","duration_s":"'"$_TEL_DUR"'","outcome":"OUTCOME","browse":"USED_BROWSE","session":"'"$_SESSION_ID"'","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true +fi +# Remote telemetry (opt-in, requires binary) +if [ "$_TEL" != "off" ] && [ -x ~/.claude/skills/gstack/bin/gstack-telemetry-log ]; then + ~/.claude/skills/gstack/bin/gstack-telemetry-log \ + --skill "SKILL_NAME" --duration "$_TEL_DUR" --outcome "OUTCOME" \ + --used-browse "USED_BROWSE" --session-id "$_SESSION_ID" \ + --error-message "ERROR_MESSAGE" --failed-step "FAILED_STEP" 2>/dev/null & +fi +``` + +Replace `SKILL_NAME`, `OUTCOME`, and `USED_BROWSE` before running. +Replace `ERROR_MESSAGE` with a short description of the error (if outcome is error, +otherwise use empty string ""), and `FAILED_STEP` with the step name or number where +the failure occurred (if outcome is error, otherwise use empty string ""). + +## Plan Status Footer + +Skills that run plan reviews (`/plan-*-review`, `/codex review`) include the EXIT PLAN MODE GATE blocking checklist at the end of the skill, which verifies the plan file ends with `## GSTACK REVIEW REPORT` before ExitPlanMode is called. Skills that don't run plan reviews (operational skills like `/ship`, `/qa`, `/review`) typically don't operate in plan mode and have no review report to verify; this footer is a no-op for them. Writing the plan file is the one edit allowed in plan mode. + +## Route first + +This is the gstack router. Its one job is to send the request to the right skill. + +1. If the request is about a browser, QA, dogfooding, screenshots, or inspecting a page + (open a site, test a deploy, take a screenshot, check a flow visually) → invoke `/browse`. +2. Otherwise, route by the rules below. If nothing matches, answer directly. + +Best-effort, record which way you routed (never block on it). Set `ROUTE_OUTCOME` to +`browse` (sent to /browse), `routed` (sent to another skill), or `direct` (answered +directly, no skill matched): +```bash +~/.claude/skills/gstack/bin/gstack-telemetry-log --event-type route --skill gstack --outcome ROUTE_OUTCOME --session-id "$_SESSION_ID" 2>/dev/null || true +``` + +If `PROACTIVE` is `false`: do NOT proactively invoke or suggest other gstack skills during +this session. Only run skills the user explicitly invokes. This preference persists across +sessions via `gstack-config`. + +If `PROACTIVE` is `true` (default): **invoke the Skill tool** when the user's request +matches a skill's purpose. Do NOT answer directly when a skill exists for the task. +Use the Skill tool to invoke it. The skill has specialized workflows, checklists, and +quality gates that produce better results than answering inline. + +**Routing rules — when you see these patterns, INVOKE the skill via the Skill tool:** +- User describes a new idea, asks "is this worth building", brainstorms, pitches a concept → invoke `/office-hours` +- User asks to spec something out, file an issue, write up a ticket, "turn this into a GitHub issue", "backlog item" → invoke `/spec` +- User asks about strategy, scope, ambition, "think bigger", "what should we build" → invoke `/plan-ceo-review` +- User asks to review architecture, lock in the plan, "does this design make sense" → invoke `/plan-eng-review` +- User asks about design system, brand, visual identity, "how should this look" → invoke `/design-consultation` +- User asks to review design of a plan → invoke `/plan-design-review` +- User asks about developer experience of a plan, API/CLI/SDK design → invoke `/plan-devex-review` +- User wants all reviews done automatically, "review everything" → invoke `/autoplan` +- User reports a bug, error, broken behavior, "why is this broken", "this doesn't work", "wtf", "something's wrong" → invoke `/investigate` +- User asks to test the site, find bugs, QA, "does this work", "check the deploy" → invoke `/qa` +- User asks to just report bugs without fixing → invoke `/qa-only` +- User asks to review code, check the diff, pre-landing review, "look at my changes" → invoke `/review` +- User asks about visual polish, design audit of a live site, "this looks off" → invoke `/design-review` +- User asks to audit the live developer experience, time-to-hello-world → invoke `/devex-review` +- User asks to ship, deploy, push, create a PR, "let's land this", "send it" → invoke `/ship` +- User asks to merge + deploy + verify as one flow → invoke `/land-and-deploy` +- User asks to configure deployment for the project → invoke `/setup-deploy` +- User asks to monitor prod after shipping, post-deploy checks → invoke `/canary` +- User asks to update docs after shipping → invoke `/document-release` +- User asks to write docs from scratch, generate documentation, "document this feature/module" → invoke `/document-generate` +- User asks for a weekly retro, what did we ship, "how'd we do" → invoke `/retro` +- User asks for a second opinion, codex review → invoke `/codex` +- User asks for safety mode, careful mode → invoke `/careful` or `/guard` +- User asks to restrict edits to a directory → invoke `/freeze` or `/unfreeze` +- User asks to upgrade gstack → invoke `/gstack-upgrade` +- User asks to save progress, checkpoint, "save my work" → invoke `/context-save` +- User asks to resume, restore, "where was I" → invoke `/context-restore` +- User asks about security, OWASP, vulnerabilities, "is this secure" → invoke `/cso` +- User asks to make a PDF, document, publication → invoke `/make-pdf` +- User asks to launch a real browser for QA, "open the browser" → invoke `/open-gstack-browser` +- User asks to import cookies for authenticated testing → invoke `/setup-browser-cookies` +- User asks about page speed, performance regression, benchmarks → invoke `/benchmark` +- User asks what gstack has learned, "show learnings" → invoke `/learn` +- User asks to tune question sensitivity, "stop asking me that" → invoke `/plan-tune` +- User asks for code quality dashboard, "health check" → invoke `/health` + +**When in doubt, invoke the skill.** A false positive (invoking a skill that wasn't +needed) is cheaper than a false negative (answering ad-hoc when a structured workflow +exists). The skill provides multi-step workflows, checklists, and quality gates that +always produce better results than an ad-hoc answer. If no skill matches, answer +directly as usual. + +If the user opts out of suggestions, run `gstack-config set proactive false`. +If they opt back in, run `gstack-config set proactive true`. diff --git a/.agents/skills/gstack/autoplan/SKILL.md b/.agents/skills/gstack/autoplan/SKILL.md new file mode 100644 index 0000000..b1b651b --- /dev/null +++ b/.agents/skills/gstack/autoplan/SKILL.md @@ -0,0 +1,1905 @@ +--- +name: autoplan +preamble-tier: 3 +version: 1.0.0 +description: Auto-review pipeline — reads the full CEO, design, eng, and DX review skills from disk and runs them sequentially with auto-decisions using 6 decision principles. (gstack) +benefits-from: [office-hours] +triggers: + - run all reviews + - automatic review pipeline + - auto plan review +allowed-tools: + - Bash + - Read + - Write + - Edit + - Glob + - Grep + - WebSearch + - AskUserQuestion +--- + + + + +## When to invoke this skill + +Surfaces +taste decisions (close approaches, borderline scope, codex disagreements) at a final +approval gate. One command, fully reviewed plan out. +Use when asked to "auto review", "autoplan", "run all reviews", "review this plan +automatically", or "make the decisions for me". +Proactively suggest when the user has a plan file and wants to run the full review +gauntlet without answering 15-30 intermediate questions. + +Voice triggers (speech-to-text aliases): "auto plan", "automatic review". + +## Preamble (run first) + +```bash +_UPD=$(~/.claude/skills/gstack/bin/gstack-update-check 2>/dev/null || .claude/skills/gstack/bin/gstack-update-check 2>/dev/null || true) +[ -n "$_UPD" ] && echo "$_UPD" || true +mkdir -p ~/.gstack/sessions +touch ~/.gstack/sessions/"$PPID" +_SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') +find ~/.gstack/sessions -mmin +120 -type f -exec rm {} + 2>/dev/null || true +_PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") +_PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") +_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") +echo "BRANCH: $_BRANCH" +_SKILL_PREFIX=$(~/.claude/skills/gstack/bin/gstack-config get skill_prefix 2>/dev/null || echo "false") +echo "PROACTIVE: $_PROACTIVE" +echo "PROACTIVE_PROMPTED: $_PROACTIVE_PROMPTED" +echo "SKILL_PREFIX: $_SKILL_PREFIX" +source <(~/.claude/skills/gstack/bin/gstack-repo-mode 2>/dev/null) || true +REPO_MODE=${REPO_MODE:-unknown} +echo "REPO_MODE: $REPO_MODE" +_SESSION_KIND=$(~/.claude/skills/gstack/bin/gstack-session-kind 2>/dev/null || echo "interactive") +case "$_SESSION_KIND" in spawned|headless|interactive) ;; *) _SESSION_KIND="interactive" ;; esac +echo "SESSION_KIND: $_SESSION_KIND" +# Conductor host: AskUserQuestion is unreliable here (native disabled, MCP +# variant flaky), so skills render decisions as prose instead of calling the +# tool. Gated on !headless so an eval/CI run INSIDE Conductor (GSTACK_HEADLESS) +# still BLOCKs rather than rendering prose to nobody. +if [ "$_SESSION_KIND" != "headless" ] && { [ -n "${CONDUCTOR_WORKSPACE_PATH:-}" ] || [ -n "${CONDUCTOR_PORT:-}" ]; }; then + echo "CONDUCTOR_SESSION: true" +fi +_ACTIVATED=$([ -f ~/.gstack/.activated ] && echo "yes" || echo "no") +_FIRST_LOOP_SHOWN=$([ -f ~/.gstack/.first-loop-tip-shown ] && echo "yes" || echo "no") +echo "ACTIVATED: $_ACTIVATED" +echo "FIRST_LOOP_SHOWN: $_FIRST_LOOP_SHOWN" +# First-run project detection: run the detector ONLY on the first-ever skill run +# (ACTIVATED=no, interactive) so it stays off the hot path for every run after. +_FIRST_TASK="" +if [ "$_ACTIVATED" = "no" ] && [ "$_SESSION_KIND" != "headless" ]; then + _FIRST_TASK=$(~/.claude/skills/gstack/bin/gstack-first-task-detect 2>/dev/null || true) +fi +echo "FIRST_TASK: $_FIRST_TASK" +_LAKE_SEEN=$([ -f ~/.gstack/.completeness-intro-seen ] && echo "yes" || echo "no") +echo "LAKE_INTRO: $_LAKE_SEEN" +_TEL=$(~/.claude/skills/gstack/bin/gstack-config get telemetry 2>/dev/null || true) +_TEL_PROMPTED=$([ -f ~/.gstack/.telemetry-prompted ] && echo "yes" || echo "no") +_TEL_START=$(date +%s) +_SESSION_ID="$$-$(date +%s)" +echo "TELEMETRY: ${_TEL:-off}" +echo "TEL_PROMPTED: $_TEL_PROMPTED" +_EXPLAIN_LEVEL=$(~/.claude/skills/gstack/bin/gstack-config get explain_level 2>/dev/null || echo "default") +if [ "$_EXPLAIN_LEVEL" != "default" ] && [ "$_EXPLAIN_LEVEL" != "terse" ]; then _EXPLAIN_LEVEL="default"; fi +echo "EXPLAIN_LEVEL: $_EXPLAIN_LEVEL" +_QUESTION_TUNING=$(~/.claude/skills/gstack/bin/gstack-config get question_tuning 2>/dev/null || echo "false") +echo "QUESTION_TUNING: $_QUESTION_TUNING" +_UPDATE_CHECK=$(~/.claude/skills/gstack/bin/gstack-config get update_check 2>/dev/null || echo "true") +echo "UPDATE_CHECK: $_UPDATE_CHECK" +mkdir -p ~/.gstack/analytics +if [ "$_TEL" != "off" ]; then +echo '{"skill":"autoplan","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(_repo=$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null | tr -cd 'a-zA-Z0-9._-'); echo "${_repo:-unknown}")'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true +fi +for _PF in $(find ~/.gstack/analytics -maxdepth 1 -name '.pending-*' 2>/dev/null); do + if [ -f "$_PF" ]; then + if [ "$_TEL" != "off" ] && [ -x "$HOME/.claude/skills/gstack/bin/gstack-telemetry-log" ]; then + ~/.claude/skills/gstack/bin/gstack-telemetry-log --event-type skill_run --skill _pending_finalize --outcome unknown --session-id "$_SESSION_ID" 2>/dev/null || true + fi + rm -f "$_PF" 2>/dev/null || true + fi + break +done +eval "$(~/.claude/skills/gstack/bin/gstack-slug 2>/dev/null)" 2>/dev/null || true +_LEARN_FILE="${GSTACK_HOME:-$HOME/.gstack}/projects/${SLUG:-unknown}/learnings.jsonl" +if [ -f "$_LEARN_FILE" ]; then + _LEARN_COUNT=$(wc -l < "$_LEARN_FILE" 2>/dev/null | tr -d ' ') + echo "LEARNINGS: $_LEARN_COUNT entries loaded" + if [ "$_LEARN_COUNT" -gt 5 ] 2>/dev/null; then + ~/.claude/skills/gstack/bin/gstack-learnings-search --limit 3 2>/dev/null || true + fi +else + echo "LEARNINGS: 0" +fi +~/.claude/skills/gstack/bin/gstack-timeline-log '{"skill":"autoplan","event":"started","branch":"'"$_BRANCH"'","session":"'"$_SESSION_ID"'"}' 2>/dev/null & +_HAS_ROUTING="no" +for _RF in CLAUDE.md AGENTS.md; do + if [ -f "$_RF" ] && grep -q "## Skill routing" "$_RF" 2>/dev/null; then + _HAS_ROUTING="yes" + fi +done +_ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") +echo "HAS_ROUTING: $_HAS_ROUTING" +echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +_VENDORED="no" +if [ -d ".claude/skills/gstack" ] && [ ! -L ".claude/skills/gstack" ]; then + if [ -f ".claude/skills/gstack/VERSION" ] || [ -d ".claude/skills/gstack/.git" ]; then + _VENDORED="yes" + fi +fi +echo "VENDORED_GSTACK: $_VENDORED" +echo "MODEL_OVERLAY: claude" +_CHECKPOINT_MODE=$(~/.claude/skills/gstack/bin/gstack-config get checkpoint_mode 2>/dev/null || echo "explicit") +_CHECKPOINT_PUSH=$(~/.claude/skills/gstack/bin/gstack-config get checkpoint_push 2>/dev/null || echo "false") +echo "CHECKPOINT_MODE: $_CHECKPOINT_MODE" +echo "CHECKPOINT_PUSH: $_CHECKPOINT_PUSH" +# Plan-mode hint for skills like /spec that branch behavior on plan-mode state. +# Claude Code exposes plan mode via system reminders; we detect best-effort +# from CLAUDE_PLAN_FILE (set by the harness when plan mode is active) and +# fall back to "inactive". Codex hosts and Claude execution mode both end up +# inactive, which is the safe default (defaults to file+execute pipeline). +if [ -n "${CLAUDE_PLAN_FILE:-}${GSTACK_PLAN_MODE_FORCE:-}" ]; then + export GSTACK_PLAN_MODE="active" +elif [ "${GSTACK_PLAN_MODE:-}" = "active" ]; then + export GSTACK_PLAN_MODE="active" +else + export GSTACK_PLAN_MODE="inactive" +fi +echo "GSTACK_PLAN_MODE: $GSTACK_PLAN_MODE" +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true +``` + +## Plan Mode Safe Operations + +In plan mode, allowed because they inform the plan: `$B`, `$D`, `codex exec`/`codex review`, writes to `~/.gstack/`, writes to the plan file, and `open` for generated artifacts. + +## Skill Invocation During Plan Mode + +If the user invokes a skill in plan mode, the skill takes precedence over generic plan mode behavior. **Treat the skill file as executable instructions, not reference.** Follow it step by step starting from Step 0; any AskUserQuestion the skill fires is the workflow operating within plan mode, not a violation of it — and a skill whose instructions resolve a question themselves (e.g. a plan-mode auto-select) may legitimately not ask it. AskUserQuestion (any variant — `mcp__*__AskUserQuestion` or native; see "AskUserQuestion Format → Tool resolution") satisfies plan mode's end-of-turn requirement. If AskUserQuestion is unavailable or a call fails, follow the AskUserQuestion Format failure fallback: `headless` → BLOCKED; `interactive` → the prose fallback (also satisfies end-of-turn). At a STOP point, stop immediately. Do not continue the workflow or call ExitPlanMode there. Commands marked "PLAN MODE EXCEPTION — ALWAYS RUN" execute. Call ExitPlanMode only after the skill workflow completes, or if the user tells you to cancel the skill or leave plan mode. + +If `PROACTIVE` is `"false"`, do not auto-invoke or proactively suggest skills. If a skill seems useful, ask: "I think /skillname might help here — want me to run it?" + +If `SKILL_PREFIX` is `"true"`, suggest/invoke `/gstack-*` names. Disk paths stay `~/.claude/skills/gstack/[skill-name]/SKILL.md`. + +If `UPDATE_CHECK` is `"false"`, skip the next two lines — the update-check binary emits nothing in that mode, so there is no `UPGRADE_AVAILABLE` / `JUST_UPGRADED` output to act on. + +If output shows `UPGRADE_AVAILABLE `: read `~/.claude/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). + +If output shows `JUST_UPGRADED `: print "Running gstack v{to} (just updated!)". If `SPAWNED_SESSION` is true, skip feature discovery. + +Feature discovery, max one prompt per session: +- Missing `~/.claude/skills/gstack/.feature-prompted-continuous-checkpoint`: AskUserQuestion for Continuous checkpoint auto-commits. If accepted, run `~/.claude/skills/gstack/bin/gstack-config set checkpoint_mode continuous`. Always touch marker. +- Missing `~/.claude/skills/gstack/.feature-prompted-model-overlay`: inform "Model overlays are active. MODEL_OVERLAY shows the patch." Always touch marker. + +After upgrade prompts, continue workflow. + +If `WRITING_STYLE_PENDING` is `yes`: ask once about writing style: + +> v1 prompts are simpler: first-use jargon glosses, outcome-framed questions, shorter prose. Keep default or restore terse? + +Options: +- A) Keep the new default (recommended — good writing helps everyone) +- B) Restore V0 prose — set `explain_level: terse` + +If A: leave `explain_level` unset (defaults to `default`). +If B: run `~/.claude/skills/gstack/bin/gstack-config set explain_level terse`. + +Always run (regardless of choice): +```bash +rm -f ~/.gstack/.writing-style-prompt-pending +touch ~/.gstack/.writing-style-prompted +``` + +Skip if `WRITING_STYLE_PENDING` is `no`. + +If `LAKE_INTRO` is `no`: say "gstack follows the **Boil the Ocean** principle — do the complete thing when AI makes marginal cost near-zero. Read more: https://garryslist.org/posts/boil-the-ocean" Offer to open: + +```bash +open https://garryslist.org/posts/boil-the-ocean +touch ~/.gstack/.completeness-intro-seen +``` + +Only run `open` if yes. Always run `touch`. + +If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: ask telemetry once via AskUserQuestion: + +> Help gstack get better. Share usage data only: skill, duration, crashes, stable device ID. No code or file paths. Your repo name is recorded locally only and stripped before any upload. + +Options: +- A) Help gstack get better! (recommended) +- B) No thanks + +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask follow-up: + +> Anonymous mode sends only aggregate usage, no unique ID. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` + +Always run: +```bash +touch ~/.gstack/.telemetry-prompted +``` + +Skip if `TEL_PROMPTED` is `yes`. + +If `PROACTIVE_PROMPTED` is `no` AND `TEL_PROMPTED` is `yes`: ask once: + +> Let gstack proactively suggest skills, like /qa for "does this work?" or /investigate for bugs? + +Options: +- A) Keep it on (recommended) +- B) Turn it off — I'll type /commands myself + +If A: run `~/.claude/skills/gstack/bin/gstack-config set proactive true` +If B: run `~/.claude/skills/gstack/bin/gstack-config set proactive false` + +Always run: +```bash +touch ~/.gstack/.proactive-prompted +``` + +Skip if `PROACTIVE_PROMPTED` is `yes`. + +## First-run guidance (one-time) + +If `ACTIVATED` is `no` (first skill run on this machine) AND the preamble printed a non-empty `FIRST_TASK:` value that is NOT `nongit`: show ONE short, project-specific line mapped from the token, as a heads-up, then CONTINUE with whatever the user actually asked — do NOT halt their task. Map the token: `greenfield` → "Fresh repo — shape it first with `/spec` or `/office-hours`." `code_node`/`code_python`/`code_rust`/`code_go`/`code_ruby`/`code_ios` → "There's code here — `/qa` to see it work, or `/investigate` if something's off." `branch_ahead` → "Unshipped work on this branch — `/review` then `/ship`." `dirty_default` → "Uncommitted changes — `/review` before committing." `clean_default` → "Pick one: `/spec`, `/investigate`, or `/qa`." Then substitute the token you saw for TASK_TOKEN and run (best-effort), and mark activated: +```bash +~/.claude/skills/gstack/bin/gstack-telemetry-log --event-type first_task_scaffold_shown --skill "TASK_TOKEN" --outcome shown 2>/dev/null || true +touch ~/.gstack/.activated 2>/dev/null || true +``` + +If `ACTIVATED` is `no` but `FIRST_TASK:` is empty or `nongit` (headless, non-git, or nothing actionable): show nothing, just run `touch ~/.gstack/.activated 2>/dev/null || true`. + +Else if `ACTIVATED` is `yes` AND `FIRST_LOOP_SHOWN` is `no`: say once as a heads-up (then continue): + +> Tip: gstack pays off when you complete one loop — **plan → review → ship**. A common first loop: `/office-hours` or `/spec` to shape it, `/plan-eng-review` to lock it, then `/ship`. + +Then run `touch ~/.gstack/.first-loop-tip-shown 2>/dev/null || true`. + +Skip this section if `ACTIVATED` and `FIRST_LOOP_SHOWN` are both `yes`. + +If `HAS_ROUTING` is `no` AND `ROUTING_DECLINED` is `false` AND `PROACTIVE_PROMPTED` is `yes`: +Check if a CLAUDE.md file exists in the project root. If it does not exist, create it. + +Use AskUserQuestion: + +> gstack works best when your project's CLAUDE.md includes skill routing rules. + +Options: +- A) Add routing rules to CLAUDE.md (recommended) +- B) No thanks, I'll invoke skills manually + +If A: Append this section to the end of CLAUDE.md: + +```markdown + +## Skill routing + +When the user's request matches an available skill, invoke it via the Skill tool. When in doubt, invoke the skill. + +Key routing rules: +- Product ideas/brainstorming → invoke /office-hours +- Strategy/scope → invoke /plan-ceo-review +- Architecture → invoke /plan-eng-review +- Design system/plan review → invoke /design-consultation or /plan-design-review +- Full review pipeline → invoke /autoplan +- Bugs/errors → invoke /investigate +- QA/testing site behavior → invoke /qa or /qa-only +- Code review/diff check → invoke /review +- Visual polish → invoke /design-review +- Ship/deploy/PR → invoke /ship or /land-and-deploy +- Save progress → invoke /context-save +- Resume context → invoke /context-restore +- Author a backlog-ready spec/issue → invoke /spec +``` + +Then commit the change: `git add CLAUDE.md && git commit -m "chore: add gstack skill routing rules to CLAUDE.md"` + +If B: run `~/.claude/skills/gstack/bin/gstack-config set routing_declined true` and say they can re-enable with `gstack-config set routing_declined false`. + +This only happens once per project. Skip if `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`. + +If `VENDORED_GSTACK` is `yes`, warn once via AskUserQuestion unless `~/.gstack/.vendoring-warned-$SLUG` exists: + +> This project has gstack vendored in `.claude/skills/gstack/`. Vendoring is deprecated. +> Migrate to team mode? + +Options: +- A) Yes, migrate to team mode now +- B) No, I'll handle it myself + +If A: +1. Run `git rm -r .claude/skills/gstack/` +2. Run `echo '.claude/skills/gstack/' >> .gitignore` +3. Run `~/.claude/skills/gstack/bin/gstack-team-init required` (or `optional`) +4. Run `git add .claude/ .gitignore CLAUDE.md && git commit -m "chore: migrate gstack from vendored to team mode"` +5. Tell the user: "Done. Each developer now runs: `cd ~/.claude/skills/gstack && ./setup --team`" + +If B: say "OK, you're on your own to keep the vendored copy up to date." + +Always run (regardless of choice): +```bash +eval "$(~/.claude/skills/gstack/bin/gstack-slug 2>/dev/null)" 2>/dev/null || true +touch ~/.gstack/.vendoring-warned-${SLUG:-unknown} +``` + +If marker exists, skip. + +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + +## AskUserQuestion Format + +### Tool resolution (read first) + +"AskUserQuestion" can resolve to two tools at runtime: the **host MCP variant** (e.g. `mcp__conductor__AskUserQuestion` — appears in your tool list when the host registers it) or the **native** Claude Code tool. + +**Conductor rule (read before the MCP rule):** if `CONDUCTOR_SESSION: true` was echoed by the preamble, do NOT call AskUserQuestion at all — neither native nor any `mcp__*__AskUserQuestion` variant. Render EVERY decision brief as the **prose form** below and STOP. This is proactive, not a reaction to a failure: Conductor disables native AUQ and its MCP variant is flaky (it returns `[Tool result missing due to internal error]`), so prose is the reliable path. **Auto-decide preferences still apply first:** if a `[plan-tune auto-decide]