{"id":50523240,"url":"https://github.com/ds1/boilerplate.md","last_synced_at":"2026-06-03T06:04:13.610Z","repository":{"id":341769930,"uuid":"1171384157","full_name":"ds1/boilerplate.md","owner":"ds1","description":"A complete, opinionated Claude Code configuration with global instructions, 20 slash commands, and sensible defaults.","archived":false,"fork":false,"pushed_at":"2026-03-03T10:29:29.000Z","size":61,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-03T11:54:05.886Z","etag":null,"topics":["anthropic","boilerplate","claude","claude-code","cli","configuration","developer-tools","dotfiles"],"latest_commit_sha":null,"homepage":"https://boilerplate.md","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ds1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-03T07:03:11.000Z","updated_at":"2026-03-03T10:44:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ds1/boilerplate.md","commit_stats":null,"previous_names":["ds1/boilerplate.md","ds1/claude-code-config"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ds1/boilerplate.md","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ds1%2Fboilerplate.md","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ds1%2Fboilerplate.md/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ds1%2Fboilerplate.md/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ds1%2Fboilerplate.md/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ds1","download_url":"https://codeload.github.com/ds1/boilerplate.md/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ds1%2Fboilerplate.md/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33850652,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anthropic","boilerplate","claude","claude-code","cli","configuration","developer-tools","dotfiles"],"created_at":"2026-06-03T06:04:09.614Z","updated_at":"2026-06-03T06:04:13.598Z","avatar_url":"https://github.com/ds1.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Claude Code Config (aka BOILERPLATE.md)\n\nBy [@ds1](https://github.com/ds1) | [boilerplate.md](https://boilerplate.md)\n\nA complete, opinionated [Claude Code](https://docs.anthropic.com/en/docs/claude-code) configuration with global instructions, 20 slash commands, and sensible defaults.\n\nDrop this into `~/.claude/` and get a power-user setup out of the box.\n\n## What's Included\n\n### Global Instructions (`CLAUDE.md`)\n\nBehavioral rules that apply to every Claude Code session:\n\n- **Preference persistence** - \"Save globally\" option for all yes/no prompts, so preferences survive `/clear` and context compaction\n- **Safety guardrails** - Announce destructive actions, atomic commits, never force-push without confirmation\n- **Project state management** - Standardized file structure (`STATUS.md`, `CHANGELOG.md`, `_planning/`) to keep CLAUDE.md clean and stable\n- **Context preservation** - Auto-save hook that dumps session state before context compaction\n- **Token optimization** - Targeted file reads, subagent delegation, no re-reads after edits\n- **Code quality** - Auto-lint, treat warnings as errors, co-locate components\n- **Git conventions** - Conventional commits, branch naming, no auto-commits\n- **Security** - Never commit secrets, auto-check `.gitignore`, flag exposed keys\n- **Writing style** - No em dashes, minimal hyphens, concise communication\n\n### Settings (`settings.json`)\n\n- **Bypass permissions mode** with a curated allow/deny list for common CLI tools (npm, git, node, python, cargo, vercel, etc.)\n- **Safe mode variant** (`settings-safe.json`) — same permissions but uses the default `ask` mode instead of bypass. Copy this over `settings.json` if you prefer to approve each action.\n- **Deny list** for dangerous operations (`rm -rf`, `git push --force`, `git reset --hard`, `drop table`)\n- **PreCompact hook** that triggers automatic context saving before compaction\n- **Status line** showing context window usage percentage and model name (PowerShell)\n- **Extended thinking** always enabled\n\n### Slash Commands (`commands/`)\n\n20 commands available as `/command-name` in Claude Code:\n\n| Command | Description |\n|---------|-------------|\n| `/status` | Review current project status from STATUS.md |\n| `/update-status` | Update STATUS.md with current work state |\n| `/log` | Add entries to CHANGELOG.md with semver tagging |\n| `/backlog` | Review and prioritize the project backlog |\n| `/plans` | List and open saved plans from Plan Mode |\n| `/init` | Scaffold standard project structure (STATUS.md, CHANGELOG.md, .gitignore, etc.) |\n| `/dev` | Launch dev server in a separate terminal, open browser |\n| `/deploy` | Deploy to production with pre-flight checks |\n| `/pr` | Create a pull request with standardized format |\n| `/docs` | Update documentation to match current code state |\n| `/cleanup` | Run lint, format, remove unused imports |\n| `/remember` | Save a global preference to the right config file |\n| `/probe-start` | Launch full 6-agent Socratic analysis of a document |\n| `/probe-clarify` | Socratic probe: clarify thinking |\n| `/probe-assume` | Socratic probe: challenge assumptions |\n| `/probe-evidence` | Socratic probe: examine evidence basis |\n| `/probe-pov` | Socratic probe: alternative viewpoints |\n| `/probe-implications` | Socratic probe: implications and consequences |\n| `/probe-qq` | Socratic probe: question the question |\n| `/probe-synthesis` | Synthesize findings from Socratic evaluations |\n\n#### Socratic Probe System\n\nThe `/probe-*` commands form a document analysis framework adapted from [ds1/socratic-probes](https://github.com/ds1/socratic-probes). Run `/probe-start \u003cdocument\u003e \u003coutput-dir\u003e` to launch 6 parallel analysis agents that each examine a document through a different critical lens, then synthesize findings into an actionable summary. Useful for evaluating proposals, research docs, vendor comparisons, or any document where you want rigorous critical analysis.\n\n## Installation\n\n### macOS / Linux\n\n```bash\ngit clone https://github.com/YOUR_USERNAME/boilerplate.md.git\ncd boilerplate.md\nchmod +x install.sh\n./install.sh\n```\n\n### Windows (PowerShell)\n\n```powershell\ngit clone https://github.com/YOUR_USERNAME/boilerplate.md.git\ncd boilerplate.md\n.\\install.ps1\n```\n\n### Manual\n\nCopy these into `~/.claude/`:\n\n```\n~/.claude/\n├── CLAUDE.md         # Copy CLAUDE.md here\n├── settings.json     # Copy settings.json here\n└── commands/         # Copy all commands/*.md files here\n    ├── backlog.md\n    ├── cleanup.md\n    ├── deploy.md\n    ├── ...\n    └── update-status.md\n```\n\n### Options\n\n| Flag | Description |\n|------|-------------|\n| `--force` / `-Force` | Overwrite existing files without prompting |\n\nThe installer backs up your existing `CLAUDE.md` and `settings.json` (to `.bak` files) before overwriting.\n\n## Customization\n\n### Adding Permissions\n\nThe `settings.json` includes common CLI tools pre-approved. Add your own:\n\n```json\n\"Bash(docker:*)\",\n\"Bash(bun:*)\",\n\"Bash(yarn:*)\",\n\"WebFetch(domain:your-docs-site.com)\"\n```\n\nOr use `/remember allow docker commands` to add permissions conversationally.\n\n### Changing the Default Stack\n\nEdit the \"Default Stack\" section in `CLAUDE.md` to match your preferences. The default is Next.js + TypeScript + Tailwind + shadcn/ui + Supabase + Vercel.\n\n### Status Line\n\nThe included status line is PowerShell-based (Windows). For bash, replace the `statusLine` in `settings.json`:\n\n```json\n\"statusLine\": {\n  \"type\": \"command\",\n  \"command\": \"echo \\\"Context: $(echo $CLAUDE_CONTEXT_USED)% | $CLAUDE_MODEL\\\"\"\n}\n```\n\n### Writing Your Own Commands\n\nAdd `.md` files to `~/.claude/commands/`. They become available as `/filename` in Claude Code. Use `$ARGUMENTS` in the prompt to accept user input.\n\n## Project Structure Convention\n\nThis config encourages a standard structure for every project:\n\n```\nproject/\n├── CLAUDE.md           # Stable: commands, conventions, architecture\n├── STATUS.md           # Active: current TODOs, in-progress work, blockers\n├── CHANGELOG.md        # History: versioned release notes\n└── _planning/          # Planning (optional)\n    ├── backlog.md      # Prioritized feature backlog\n    ├── sprint.md       # Current sprint scope\n    └── plans/          # Saved plans from Plan Mode\n```\n\nThe key principle: **CLAUDE.md is for stable instructions only.** Anything that changes frequently (TODOs, status, sprint progress) goes in `STATUS.md` or `_planning/`. This keeps context window usage minimal since CLAUDE.md is loaded into every conversation.\n\n## What's NOT Included\n\nThese files from `~/.claude/` are excluded because they contain personal or session data:\n\n- `.credentials.json` - OAuth tokens\n- `history.jsonl` - Conversation history\n- `projects/` - Per-project memory\n- `debug/`, `telemetry/`, `statsig/` - Runtime data\n- `backups/`, `cache/`, `plans/` - Session state\n- `plugins/cache/`, `plugins/marketplaces/` - Plugin runtime data\n\n## Quick Start via boilerplate.md\n\nVisit [boilerplate.md](https://boilerplate.md) for a guided setup experience, shareable links, and easy one-click installation options.\n\n## Security Considerations\n\nThis config ships with opinionated defaults that prioritize speed and minimal friction. Before installing, understand these tradeoffs:\n\n### Bypass Permissions Mode\n\nThe included `settings.json` sets `defaultMode: \"bypassPermissions\"`, which auto-approves all tool calls without prompting. This is powerful but means Claude can execute any command immediately.\n\n**Mitigations included:**\n- The **Safety Net** section in CLAUDE.md instructs Claude to announce destructive actions before executing\n- A **deny list** blocks `rm -rf`, `git push --force`, `git reset --hard`, and `drop table`\n- The **CLAUDE.md** instructions prohibit force-pushing to main/master and deleting files outside the project\n\n**If you prefer a safer default**, use `settings-safe.json` instead (same permissions, no bypass mode): `cp settings-safe.json ~/.claude/settings.json`. You can also use the [interactive configurator](https://boilerplate.md) and leave Bypass Permissions Mode unchecked.\n\n### Broad Wildcards\n\nPermissions like `Bash(curl:*)`, `Bash(python:*)`, `Bash(node:*)`, and `Bash(openssl:*)` allow any arguments to these tools. While convenient, this means a malicious file or prompt injection could potentially abuse these permissions to:\n- Download and execute arbitrary code (`curl ... | bash`)\n- Run arbitrary Python or Node.js scripts\n- Make network requests to unintended endpoints\n\n**Mitigation:** If you work with untrusted repos or documents, consider replacing wildcards with specific subcommands (e.g., `Bash(curl -s:*)` instead of `Bash(curl:*)`), or remove tools you don't regularly use.\n\n### Thin Deny List\n\nThe deny list only blocks 4 patterns (`rm -rf`, `git push --force`, `git reset --hard`, `drop table`). Determined destructive commands could work around these (e.g., `rm -r` without `-f`, or `find ... -delete`).\n\n**Mitigation:** Add patterns for any destructive commands relevant to your stack. The deny list is a safety net, not a security boundary. The Safety Net section in CLAUDE.md provides a second layer of protection by instructing Claude to announce destructive actions before running them.\n\n\n## Contributing\n\nHave an idea for a new configuration, command, or improvement? Contributions are welcome. [Open an issue](https://github.com/ds1/boilerplate.md/issues) to suggest ideas or [submit a pull request](https://github.com/ds1/boilerplate.md/pulls) to contribute directly.\n\n## Credits\n\nCreated by [@ds1](https://github.com/ds1). Socratic probe commands adapted from [ds1/socratic-probes](https://github.com/ds1/socratic-probes).\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fds1%2Fboilerplate.md","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fds1%2Fboilerplate.md","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fds1%2Fboilerplate.md/lists"}