{"_id":"@danielle241/my-skills","_rev":"5-052250782b79bf5a0f8fb96cc54124cf","name":"@danielle241/my-skills","dist-tags":{"latest":"2.1.5"},"versions":{"2.1.1":{"name":"@danielle241/my-skills","version":"2.1.1","_id":"@danielle241/my-skills@2.1.1","maintainers":[{"name":"danielle241","email":"danielleee241@gmail.com"}],"homepage":"https://github.com/danielleit241/my-skills#readme","bugs":{"url":"https://github.com/danielleit241/my-skills/issues"},"bin":{"my-skills":"dist/cli.js"},"dist":{"shasum":"5dc2d7a11d879ab52170c22564d7bf5acb9ebd27","tarball":"https://registry.npmjs.org/@danielle241/my-skills/-/my-skills-2.1.1.tgz","fileCount":169,"integrity":"sha512-JQSJt7cFaZY56/zGdHUeXVyVyAfWBctClUYzAKpSYN86KLk9LTTDBdl9NDLBecrYgDFOX4crTZnd4Yj1whyh+g==","signatures":[{"sig":"MEYCIQCLNnnZaHnmrpRB/Aha6C+w4BXOdsjUmsvU5j1SfL2n3AIhAPNp+UHPNWAjxOeihxddymQrqYN5uQ1IGMBpu6kGEG3E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@danielle241%2fmy-skills@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":654137},"type":"module","engines":{"node":">=20"},"gitHead":"cbc8bca5357683e2426c46a82a60bcc34ced7fb4","scripts":{"test":"npm run build && node --test dist/tests/engine.test.js dist/tests/transaction.test.js","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","release:check":"npm run check && npm test && npm run validate:toolkit && npm pack --dry-run","version:check":"node scripts/check-release-version.mjs","prepublishOnly":"npm run check && npm test && npm run validate:toolkit","validate:toolkit":"npm run build && node dist/cli.js validate --source ."},"_npmUser":{"name":"danielle241","email":"danielleee241@gmail.com"},"repository":{"url":"git+https://github.com/danielleit241/my-skills.git","type":"git"},"_npmVersion":"10.9.8","description":"Versioned CLI for installing and migrating AI agent toolkits","directories":{},"_nodeVersion":"22.22.3","dependencies":{"diff":"^8.0.2","semver":"^7.7.2","commander":"^14.0.0","gray-matter":"^4.0.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/diff":"^7.0.2","@types/node":"^22.15.30","@types/semver":"^7.7.0"},"_npmOperationalInternal":{"tmp":"tmp/my-skills_2.1.1_1781495931814_0.43725370810285935","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@danielle241/my-skills","version":"2.1.2","_id":"@danielle241/my-skills@2.1.2","maintainers":[{"name":"danielle241","email":"danielleee241@gmail.com"}],"homepage":"https://github.com/danielleit241/my-skills#readme","bugs":{"url":"https://github.com/danielleit241/my-skills/issues"},"bin":{"my-skills":"dist/cli.js"},"dist":{"shasum":"352a7e5605708b2f7f4b88fc391a06087bdca088","tarball":"https://registry.npmjs.org/@danielle241/my-skills/-/my-skills-2.1.2.tgz","fileCount":175,"integrity":"sha512-rFF+m4MvMHHzrLpocLLrHtqVWVjzt6gOi2hxUJcPcpkP+yvx9h9byWtILB9yvG9GOjH3xwo3SquG/fCwRuhwVw==","signatures":[{"sig":"MEYCIQCVN351dUnQtNZqm9sTQmEY8MAdfpM+JrZeNC34nj54GQIhAI49b3QdWeOc4mNn1J9pbF6+enAI1z7Pk7yHKScGxmpT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@danielle241%2fmy-skills@2.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":669035},"type":"module","engines":{"node":">=20"},"gitHead":"f929b235192b3e6398b92ba80cd718c6ddb46005","scripts":{"test":"npm run build && node --test dist/tests/engine.test.js dist/tests/project.test.js dist/tests/transaction.test.js","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","release:check":"npm run check && npm test && npm run validate:toolkit && npm pack --dry-run","version:check":"node scripts/check-release-version.mjs","prepublishOnly":"npm run check && npm test && npm run validate:toolkit","validate:toolkit":"npm run build && node dist/cli.js validate --source ."},"_npmUser":{"name":"danielle241","email":"danielleee241@gmail.com"},"repository":{"url":"git+https://github.com/danielleit241/my-skills.git","type":"git"},"_npmVersion":"10.9.8","description":"Versioned CLI for installing and migrating AI agent toolkits","directories":{},"_nodeVersion":"22.22.3","dependencies":{"diff":"^8.0.2","semver":"^7.7.2","commander":"^14.0.0","picocolors":"^1.1.1","gray-matter":"^4.0.3","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/diff":"^7.0.2","@types/node":"^22.15.30","@types/semver":"^7.7.0"},"_npmOperationalInternal":{"tmp":"tmp/my-skills_2.1.2_1781502421004_0.28762126120757214","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@danielle241/my-skills","version":"2.1.3","_id":"@danielle241/my-skills@2.1.3","maintainers":[{"name":"danielle241","email":"danielleee241@gmail.com"}],"homepage":"https://github.com/danielleit241/my-skills#readme","bugs":{"url":"https://github.com/danielleit241/my-skills/issues"},"bin":{"my-skills":"dist/cli.js"},"dist":{"shasum":"54db226c69c540bbae5ef7247ad9d84c388f60af","tarball":"https://registry.npmjs.org/@danielle241/my-skills/-/my-skills-2.1.3.tgz","fileCount":178,"integrity":"sha512-Ous7nWYLFa9RmwBt1aPsx2WrgFQYs7ZdOoIY1sK5Q7vQVILva68JGUClSMkq/ZPu4v83K51Iahe8RDWalAC/ZA==","signatures":[{"sig":"MEUCIQDkCUbwsPXLMtUw3cI3no86QRUr6cS69sO5+ayVnAfKLAIgdEeltsMfjMj5f4GQtDMMOZWLIZh2yObfAe548ue078M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@danielle241%2fmy-skills@2.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":673843},"type":"module","engines":{"node":">=20"},"gitHead":"c683cdae11ac8704841e4915554203194dbb8b37","scripts":{"test":"npm run build && node --test dist/tests/engine.test.js dist/tests/onboarding.test.js dist/tests/project.test.js dist/tests/transaction.test.js","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","release:check":"npm run check && npm test && npm run validate:toolkit && npm pack --dry-run","version:check":"node scripts/check-release-version.mjs","prepublishOnly":"npm run check && npm test && npm run validate:toolkit","validate:toolkit":"npm run build && node dist/cli.js validate --source ."},"_npmUser":{"name":"danielle241","email":"danielleee241@gmail.com"},"repository":{"url":"git+https://github.com/danielleit241/my-skills.git","type":"git"},"_npmVersion":"10.9.8","description":"Versioned CLI for installing and migrating AI agent toolkits","directories":{},"_nodeVersion":"22.22.3","dependencies":{"diff":"^8.0.2","semver":"^7.7.2","commander":"^14.0.0","picocolors":"^1.1.1","gray-matter":"^4.0.3","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/diff":"^7.0.2","@types/node":"^22.15.30","@types/semver":"^7.7.0"},"_npmOperationalInternal":{"tmp":"tmp/my-skills_2.1.3_1781504113755_0.7980562903862318","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"@danielle241/my-skills","version":"2.1.4","keywords":[],"author":"","license":"ISC","_id":"@danielle241/my-skills@2.1.4","maintainers":[{"name":"danielle241","email":"danielleee241@gmail.com"}],"homepage":"https://github.com/danielleit241/my-skills#readme","bugs":{"url":"https://github.com/danielleit241/my-skills/issues"},"bin":{"my-skills":"dist/cli.js"},"dist":{"shasum":"6698b6138fb49503f099b030118c60eb9be65ccc","tarball":"https://registry.npmjs.org/@danielle241/my-skills/-/my-skills-2.1.4.tgz","fileCount":179,"integrity":"sha512-JIe6jPKHZOCtRclytNw5y93O3Z5JGO1uiiBGP7T5rsCLJ8pOk3TRQspoFkQAq5fsk4BicKgMtWSFosrGmg/adg==","signatures":[{"sig":"MEUCIQDA48NaoLh36Ml8sKDx95X+Dq+Tb46EMzwy69NZk1s2/AIgRKmzlBwgIwEeYPVeNLSFpCi2fEiScg/spJiqcmQ+/NY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@danielle241%2fmy-skills@2.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":705161},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"f74f148a451c849e8d3371bb758ca4c0e687ac49","scripts":{"test":"npm run build && node --test dist/tests/engine.test.js dist/tests/onboarding.test.js dist/tests/project.test.js dist/tests/transaction.test.js","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","release:check":"npm run check && npm test && npm run validate:toolkit && npm pack --dry-run","version:check":"node scripts/check-release-version.mjs","prepublishOnly":"npm run check && npm test && npm run validate:toolkit","validate:toolkit":"npm run build && node dist/cli.js validate --source ."},"_npmUser":{"name":"danielle241","email":"danielleee241@gmail.com"},"repository":{"url":"git+https://github.com/danielleit241/my-skills.git","type":"git"},"_npmVersion":"10.9.8","description":"Versioned CLI for installing and migrating AI agent toolkits","directories":{},"_nodeVersion":"22.22.3","dependencies":{"diff":"^8.0.2","semver":"^7.7.2","commander":"^14.0.0","picocolors":"^1.1.1","gray-matter":"^4.0.3","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/diff":"^7.0.2","@types/node":"^22.15.30","@types/semver":"^7.7.0"},"_npmOperationalInternal":{"tmp":"tmp/my-skills_2.1.4_1781632597334_0.2687634639429699","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"@danielle241/my-skills","version":"2.1.5","description":"Versioned CLI for installing and migrating AI agent toolkits","repository":{"type":"git","url":"git+https://github.com/danielleit241/my-skills.git"},"homepage":"https://github.com/danielleit241/my-skills#readme","bugs":{"url":"https://github.com/danielleit241/my-skills/issues"},"publishConfig":{"access":"public","provenance":true},"type":"module","bin":{"my-skills":"dist/cli.js"},"scripts":{"build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","test":"npm run build && node --test dist/tests/engine.test.js dist/tests/onboarding.test.js dist/tests/project.test.js dist/tests/transaction.test.js","validate:toolkit":"npm run build && node dist/cli.js validate --source .","version:check":"node scripts/check-release-version.mjs","release:check":"npm run check && npm test && npm run validate:toolkit && npm pack --dry-run","prepublishOnly":"npm run check && npm test && npm run validate:toolkit"},"engines":{"node":">=20"},"dependencies":{"@clack/prompts":"^0.11.0","commander":"^14.0.0","diff":"^8.0.2","gray-matter":"^4.0.3","picocolors":"^1.1.1","semver":"^7.7.2"},"devDependencies":{"@types/diff":"^7.0.2","@types/node":"^22.15.30","@types/semver":"^7.7.0","typescript":"^5.8.3"},"main":"index.js","keywords":[],"author":"","license":"ISC","_id":"@danielle241/my-skills@2.1.5","gitHead":"eee9eb706b446e484e3d214e3e75f4e22ab3321d","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-iovXAGRmYYqkOcNqkEcOu/ym7NMKiI9XZcbx4bwqdta01azCyDEPj32wkspF7aDKKw3Recp+BDxox2MaPRkdWg==","shasum":"aadbe01498b65f276024fff97a64ec894cc9e40e","tarball":"https://registry.npmjs.org/@danielle241/my-skills/-/my-skills-2.1.5.tgz","fileCount":179,"unpackedSize":714863,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@danielle241%2fmy-skills@2.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDAyQVYimqhq3okRea1Tj3axg/Ob9UeLRUWS1Ju3onCJAIhAJcOdaQv4g032PfjfVj6aXlAOOcOHLsxZ+fehrSkrjNI"}]},"_npmUser":{"name":"danielle241","email":"danielleee241@gmail.com"},"directories":{},"maintainers":[{"name":"danielle241","email":"danielleee241@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/my-skills_2.1.5_1781634711215_0.32231443595125664"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-15T03:58:51.676Z","modified":"2026-06-16T18:31:51.761Z","2.1.1":"2026-06-15T03:58:52.009Z","2.1.2":"2026-06-15T05:47:01.156Z","2.1.3":"2026-06-15T06:15:13.909Z","2.1.4":"2026-06-16T17:56:37.530Z","2.1.5":"2026-06-16T18:31:51.413Z"},"bugs":{"url":"https://github.com/danielleit241/my-skills/issues"},"license":"ISC","homepage":"https://github.com/danielleit241/my-skills#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/danielleit241/my-skills.git"},"description":"Versioned CLI for installing and migrating AI agent toolkits","maintainers":[{"name":"danielle241","email":"danielleee241@gmail.com"}],"readme":"# my-skills\n\nA versioned CLI for installing and migrating a personal AI coding toolkit across Claude Code and Codex.\n\nThe toolkit includes slash commands, sub-agents, skills, lifecycle hooks, shared rules, and project configuration. It tracks installed files with checksums so updates are repeatable and local edits are not overwritten silently.\n\n**Principles:** YAGNI · KISS · DRY · Brutal honesty · Challenge every assumption\n\n## Install\n\nRequires Node.js 20 or newer.\n\n```bash\nnpx @danielle241/my-skills\n```\n\nThis starts the onboarding wizard. It detects existing `.claude` and `.codex`\nfolders and offers `init`, `update`, `migrate`, `status`, and `validate`.\n\nInstall the CLI globally when preferred:\n\n```bash\nnpm install --global @danielle241/my-skills\nmy-skills setup\n```\n\nNon-interactive installation remains available:\n\n```bash\nnpx @danielle241/my-skills init --project-root --agent claude --bundle full\nnpx @danielle241/my-skills init --project-path D:\\Capstone\\Project\\src --agent codex --bundle full\n```\n\nUse `--project-root` to treat the current working directory as the exact\ninstallation root. Use `--project-path` for any file or nested directory inside a project;\nthe CLI walks upward to the nearest `.git`, `package.json`, `pyproject.toml`,\n`Cargo.toml`, or `go.mod`. The positional `[target]` remains available as a\nlegacy exact-target argument.\n\n## CLI Commands\n\n| Command | Purpose |\n| --- | --- |\n| `setup [target]` | Start the visual onboarding wizard and choose an operation interactively. |\n| `init [target]` | Install selected bundles; supports `--project-root` and `--project-path`. |\n| `update [version] [target]` | Update from the npm registry. The default is `latest`; `--source` uses local Git tags. |\n| `migrate [target] --from claude --to codex` | Render the installed bundles with another agent adapter. |\n| `revert <version> [target]` | Restore files from a previous SemVer Git tag without resetting the target repository. |\n| `status [target]` | Show the installed release and locally modified or deleted managed files. |\n| `validate [target]` | Validate installed skill and agent structures. |\n\nAll mutating commands support `--dry-run`. Existing agent folders are extended,\nnot replaced. Shared JSON configuration is deep-merged, arrays are deduplicated,\nand unrelated files remain untouched. Other managed-file edits still produce a\nconflict and text diff; use `--force` only when discarding that edit is intentional.\n\nThe CLI also merges generated toolkit paths into the project `.gitignore`:\n`.claude/`, `.codex/`, `.agents/`, `CLAUDE.md`, `AGENTS.md`, `.ck.json`,\n`.my-skills.lock.json`, and `session-data/`.\n\n## Bundles\n\n`toolkit.manifest.json` is the source manifest. The built-in bundles are:\n\n- `full`: all configuration, skills, commands, agents, hooks, and rules.\n- `development`: core configuration, skills, commands, and agents.\n- `skills`: skills only.\n\n## Migration\n\nMigrate an existing installation:\n\n```bash\nnpx @danielle241/my-skills migrate <project-path> --from claude --to codex --dry-run\nnpx @danielle241/my-skills migrate <project-path> --from claude --to codex\n```\n\nThe setup wizard requires base skills for the source agent before migration. For\nClaude this means `.claude/skills/`; for Codex this means `.agents/skills/`.\nFor now, interactive setup migration only migrates the fixed packaged skills.\nProject-specific custom pipelines, commands, agents, and hooks are intentionally\nleft in place and are not converted automatically yet.\n\nThe Claude adapter preserves the `.claude/` layout. The Codex adapter maps:\n\n- Skills and slash commands to `.agents/skills/`.\n- Sub-agents to `.codex/agents/*.toml`, including required `name`, `description`, and `developer_instructions` fields, Codex model and reasoning defaults, read-only sandboxing for exploration/review agents, and display nicknames for parallel spawned agents. `scout` is pinned to `gpt-5.4-mini` for lower-cost evidence gathering.\n- Hooks to `.codex/hooks.json` and scripts to `.codex/hooks/`; unsupported Claude tool matchers are removed and commands resolve from the Git root on Unix and Windows.\n- `CLAUDE.md` to `AGENTS.md`. If the target project already has an instruction file, the CLI creates a small `@CLAUDE.md` or `@AGENTS.md` bridge instead of duplicating the existing rules.\n- Project defaults to `.codex/config.toml`, with hooks enabled and bounded subagent concurrency.\n- Runtime state to root-level `session-data/`, with `session-data/.gitignore` keeping generated summaries out of Git.\n\nItems without a direct target mapping are reported as `unsupported` rather than silently dropped.\n\nMigration preserves the previous agent files. For example, Claude to Codex creates `.codex/` and `.agents/` while keeping the existing `.claude/` and `CLAUDE.md` files in place. This lets multiple agents share the same project without destructive cleanup.\n\n## Update And Recovery\n\n```bash\nnpx @danielle241/my-skills status <project-path>\nnpx @danielle241/my-skills update latest <project-path> --dry-run\nnpx @danielle241/my-skills update latest <project-path>\nnpx @danielle241/my-skills revert 2.0.0 <project-path>\n```\n\nWrites use a filesystem transaction. If a write fails, earlier writes in that operation are restored. The CLI never commits or resets the target repository.\n\nBy default, `update` and `revert` download the requested package version from\nnpm, so they work when the CLI was installed globally or invoked through `npx`.\nRepository maintainers can pass `--source <repository>` to test local SemVer tags.\n\n`migrate` preserves files from the previous agent adapter. `update` and `revert`\nstill prune files removed from a release when the lockfile checksum proves the\nfile was not locally modified.\n\n---\n\n## Pipelines\n\nThree main pipelines cover the full development loop:\n\n```\n/ck:brainstorm ──► /ck:plan ──► /ck:cook ──► /ck:fix\n```\n\n| Command           | What it does                                                                                                                                                                                        |\n| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `/ck:brainstorm`  | Scout the repo, lock exact requirements, compare approaches, and write a brainstorm report.                                                                                                       |\n| `/ck:plan`        | Cross-plan scan → research → phased plan → red-team → validate. Modes: `--fast`, `--hard`, `--deep`, `--two`, `--parallel`.                                                                         |\n| `/ck:cook`        | Scout + requirements + plan gate → implement → test → review → finalize. Modes: `--fast`, `--auto`, `--parallel`. Flags: `--tdd`, `--no-test`.                                                     |\n| `/ck:fix`         | Bug-fix pipeline. Scout → diagnose → fix → prevention guard → finalize. Modes: `--auto` (default), `--quick`, `--review`, `--parallel`.                                                             |\n| `/ck:code-review` | 3-stage adversarial review (Spec Compliance → Code Quality → Adversarial). Modes: `#PR`, commit hash, `--pending`, `codebase parallel`.                                                             |\n| `/show-off`       | Generate a social-ready HTML presentation → review gate → capture as PNGs.                                                                                                                          |\n| `/docs-fe`        | Generate a FE handoff doc for changed endpoints (contracts, params, errors).                                                                                                                        |\n| `/learn`          | Extract a reusable pattern from the current session and save it as a skill file.                                                                                                                    |\n| `/coding-level`   | Set session coding level 0–5 (0=ELI5 → 5=godmode). Persists to `.ck.json`.                                                                                                                          |\n\n---\n\n## Agents\n\nSub-agents spawned by the pipelines. Never called directly.\n\n**Planning**\n\n| Agent           | Role                                                     | Model  |\n| --------------- | -------------------------------------------------------- | ------ |\n| `researcher`    | Research a feature approach (2 run in parallel)          | sonnet |\n| `planner`       | Write `plan.md` + phase files from research              | sonnet |\n| `plan-reviewer` | Red-team the plan — security, assumptions, failure modes | sonnet |\n\n**Implementation**\n\n| Agent           | Role                                                                                          | Model  |\n| --------------- | --------------------------------------------------------------------------------------------- | ------ |\n| `scout`         | Codebase reconnaissance — maps files, patterns, dependencies                                  | haiku  |\n| `debugger`      | Root-cause diagnosis + fix application                                                        | sonnet |\n| `tester`        | Write and run tests, report pass/fail                                                         | sonnet |\n| `code-reviewer` | Adversarial code review with 4 evidence checks (criteria/blast-radius/regression/adversarial) | sonnet |\n\n**Finalize** (shared by `/ck:cook` and `/ck:fix`)\n\n| Agent             | Role                                          | Model |\n| ----------------- | --------------------------------------------- | ----- |\n| `project-manager` | Sync phase checkboxes and plan status         | haiku |\n| `docs-manager`    | Update affected docs minimally                | haiku |\n| `git-manager`     | Stage files, conventional commit, ask to push | haiku |\n\n---\n\n## Skills\n\nBehavioral guidance that loads automatically when relevant.\n\n| Skill                 | Triggers when                                                          |\n| --------------------- | ---------------------------------------------------------------------- |\n| `ck-brainstorm`       | Design question, \"how should I approach X\", pre-planning clarification |\n| `ck-plan`             | \"plan this\", \"I want to build X\", or after a brainstorm report         |\n| `ck-cook`             | \"cook this\", \"implement it\", passes a plan.md path                     |\n| `ck-fix`              | Error message, stack trace, \"fix this bug\", \"tests are failing\"        |\n| `ck-code-review`      | \"review this PR\", \"code review\", paste PR number or commit hash        |\n| `backend-mindset`     | Architecture decisions, API design, testing strategy                   |\n| `caveman`             | Terse output mode — \"be brief\" or context is filling up                |\n| `code-review`         | Reviewing code, receiving feedback, verifying completion               |\n| `problem-solving`     | Stuck on a problem, need creative unblocking                           |\n| `sequential-thinking` | Complex multi-step reasoning                                           |\n| `skill-creator`       | Creating or improving skill files                                      |\n| `strategic-compact`   | Managing context window across long sessions                           |\n\n---\n\n## Hooks\n\nLifecycle hooks wired in `.claude/settings.json`.\n\n| Event                   | Hook                    | Purpose                                                                              |\n| ----------------------- | ----------------------- | ------------------------------------------------------------------------------------ |\n| `SessionStart`          | `session_init.py`       | Load previous session summary + active instincts                                     |\n| `SubagentStart`         | `subagent_init.py`      | Initialize sub-agent context                                                         |\n| `Stop` / `SubagentStop` | `session_end.py`        | Extract summary from transcript, persist session file                                |\n| `PreCompact`            | `pre_compact.py`        | Log compaction event, reset caveman state, annotate session file                     |\n| `UserPromptSubmit`      | `dev_rules_reminder.py` | Inject rules and active-plan context, throttled to once per 5 minutes                |\n| `UserPromptSubmit`      | `simplify_gate.py`      | Optionally block ship/merge/PR/deploy/publish when the diff exceeds thresholds       |\n| `UserPromptSubmit`      | `caveman_watch.py`      | Track tool calls; emit CAVEMAN_TRIGGERED/RELEASED events                             |\n| `PreToolUse`            | `privacy_block.py`      | Block Read/Edit/Write/Glob/Grep/Bash access to sensitive paths (`.env`, keys, certs) |\n| `PreToolUse`            | `suggest_compact.py`    | Count tool calls, suggest `/compact` at threshold                                    |\n| `PostToolUse`           | `build_check.py`        | Run build/type-check after file edits (C#/TS/Py/Go/Rust)                             |\n| `PostToolUse`           | `artifact_fold.py`      | Fold large Read/Grep/Bash outputs into summary-only view                             |\n\n### Simplify thresholds\n\nConfigured in `.ck.json` under `simplify.threshold`:\n\n| Key             | Default | Meaning                                          |\n| --------------- | ------- | ------------------------------------------------ |\n| `totalLoc`      | 400     | Total added and deleted lines in `git diff HEAD` |\n| `fileCount`     | 8       | Changed files in `git diff HEAD`                 |\n| `singleFileLoc` | 200     | Added lines in the largest changed file          |\n| `gate.enabled`  | `false` | Set `true` to block matching ship intent         |\n\nThe gate only runs for prompts containing ship, merge, PR, deploy, or publish intent.\n\n### Caveman Mode\n\nConfigured in `.ck.json` under `cavemanMode`:\n\n| Key                | Default | Meaning                                              |\n| ------------------ | ------- | ---------------------------------------------------- |\n| `enabled`          | `true`  | Enable caveman mode globally                         |\n| `threshold.orange` | 50      | Tool calls before orange warning emitted             |\n| `threshold.red`    | 100     | Tool calls before red warning + auto-trigger caveman |\n\nWhen red threshold is hit, `caveman_watch.py` emits `CAVEMAN_TRIGGERED`; when deactivated, emits `CAVEMAN_RELEASED`.\n\n### Artifact Folding\n\nConfigured in `.ck.json` under `artifactFolding`:\n\n| Key                      | Default | Meaning                             |\n| ------------------------ | ------- | ----------------------------------- |\n| `enabled`                | `true`  | Enable artifact folding globally    |\n| `threshold.maxChars`     | 4000    | Collapse output larger than N chars |\n| `threshold.maxLines`     | 120     | Collapse output larger than N lines |\n| `threshold.previewLines` | 10      | Show first N lines in summary view  |\n\nApplied by `artifact_fold.py` on Read, Grep, and Bash outputs.\n\n## Structure\n\n```\n.claude/\n├── agents/          # sub-agent definitions (.md)\n├── commands/        # slash commands (.md)\n├── skills/          # skill directories (SKILL.md + references/)\n├── rules/           # path-scoped design principles (lazy-load)\n│   ├── agents.md    # activates for .claude/agents/**\n│   ├── commands.md  # activates for .claude/commands/**\n│   └── skills.md    # activates for .claude/skills/**\n├── hooks/           # lifecycle hook scripts\n├── lib/             # shared Python utilities for hooks\n└── settings.json    # hook wiring + permissions\nCLAUDE.md            # project entry point\nsession-data/        # generated session summaries, ignored by Git\n```\n\n---\n## Typical Workflow\n\n```\n/ck:brainstorm add user authentication\n# → scout → clarify → compare approaches → brainstorm report written\n\n/ck:plan --hard plans/reports/brainstorm-YYMMDD-HHMM-auth.md\n# → research → plan files written to plans/YYMMDD-auth/\n\n/ck:cook plans/YYMMDD-auth/plan.md\n# → implement phase by phase → test → review → commit\n\n/ck:fix --quick broken login redirect\n# → scout → diagnose + fix → commit\n\n/ck:code-review --pending\n# → review uncommitted changes (3-stage adversarial)\n```\n","readmeFilename":"README.md"}