{"id":49564449,"url":"https://github.com/gtrows/claude-code-template","last_synced_at":"2026-05-03T11:04:36.293Z","repository":{"id":354188608,"uuid":"1217946751","full_name":"GTRows/claude-code-template","owner":"GTRows","description":"Drop-in Claude Code project template: setup wizard, task tracking, guardrail hooks, tag-triggered release pipeline, curated plugin recommendations.","archived":false,"fork":false,"pushed_at":"2026-04-27T13:33:36.000Z","size":83,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-27T15:27:10.561Z","etag":null,"topics":["ai-assisted-development","claude","claude-ai","claude-code","hooks","slash-commands","template"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GTRows.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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-04-22T11:32:29.000Z","updated_at":"2026-04-27T13:33:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/GTRows/claude-code-template","commit_stats":null,"previous_names":["gtrows/claude-code-template"],"tags_count":null,"template":true,"template_full_name":null,"purl":"pkg:github/GTRows/claude-code-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GTRows%2Fclaude-code-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GTRows%2Fclaude-code-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GTRows%2Fclaude-code-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GTRows%2Fclaude-code-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GTRows","download_url":"https://codeload.github.com/GTRows/claude-code-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GTRows%2Fclaude-code-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32566450,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ai-assisted-development","claude","claude-ai","claude-code","hooks","slash-commands","template"],"created_at":"2026-05-03T11:04:35.426Z","updated_at":"2026-05-03T11:04:36.283Z","avatar_url":"https://github.com/GTRows.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Claude Code Project Template\n\nDrop-in template for starting new projects with [Claude Code](https://claude.ai/code). Pre-configured hooks, slash commands, task tracking, and a tag-gated release pipeline, plus curated plugin recommendations.\n\n---\n\n## Two ways to use it\n\n### A. Fresh project from the template\n\n```bash\n# 1. Clone as a new project (or use \"Use this template\" on GitHub)\ngit clone https://github.com/GTRows/claude-code-template.git my-project\ncd my-project\nrm -rf .git\ngit init \u0026\u0026 git add -A \u0026\u0026 git commit -m \"chore: bootstrap from template\"\n\n# 2. Remove the per-clone setup marker that ships with the template repo\nrm -f .claude/.setup-complete\n\n# 3. Open Claude Code and run the wizard in a fresh session\nclaude\n# then inside Claude Code:\n/gtr:setup\n```\n\n`/gtr:setup` detects the stack, fills `CLAUDE.md`, writes `IDENTITY.yaml`, installs recommended plugins, and sets up task tracking. Idempotent — safe to re-run.\n\n### B. Implement into an existing project\n\nTwo options:\n\n1. **Recommended — `/gtr:onboard`**: clone the template into a temp dir, copy in the slash commands and hooks (or have someone copy `.claude/commands/onboard.md` over once), then run:\n   ```\n   /gtr:onboard\n   ```\n   The runbook walks you through every file decision interactively (apply / skip / view-diff). Your `README.md`, `package.json`, and existing configs are never touched. See [.claude/commands/onboard.md](./.claude/commands/onboard.md).\n\n2. **Manual** — read [IMPLEMENT.md](./IMPLEMENT.md) and apply the file-by-file plan yourself, or paste the runbook into Claude and ask it to execute step by step.\n\n---\n\n## What's in the box\n\n### Slash commands (`.claude/commands/`)\n\n| Command | Purpose |\n|---------|---------|\n| `/gtr:menu` | Interactive entry point — pick what to do, Claude routes to the right command. |\n| `/gtr:setup` | First-time project wizard. Asks conversation language + i18n, fills CLAUDE.md, installs plugins, scaffolds task files, writes the template manifest. |\n| `/gtr:update` | Pull template updates from upstream and merge non-destructively (uses sha-keyed manifest to detect user modifications). |\n| `/gtr:doctor` | Read-only health check: setup marker, plugin status, CLAUDE.md placeholders, identity drift, secrets, template version drift, manifest drift. |\n| `/gtr:release \u003cver\u003e` | Prepare a release: bump IDENTITY.yaml, rotate CHANGELOG, sync manifests, commit, tag. Never pushes. |\n| `/gtr:help` | Discovery: list every template command, hook, and file. |\n| `/gtr:new-migration` | Scaffold a DB migration following detected conventions. |\n\n### Hooks (`.claude/hooks/`)\n\n| Hook | Event | Behavior |\n|------|-------|----------|\n| `pre_guard_release_files.py` | PreToolUse Write/Edit | Blocks edits to protected files (IDENTITY.yaml, package.json, CHANGELOG.md, CI configs, lockfiles, ...) |\n| `pre_guard_security.py` | PreToolUse Write/Edit | Blocks dangerous patterns (innerHTML, eval, `shell=True`, SQL injection, ...) |\n| `pre_guard_env_secrets.py` | PreToolUse Write/Edit | Blocks hardcoded secrets and writes to `.env*` files |\n| `post_validate_syntax.py` | PostToolUse Write/Edit | Validates Python / JS / JSON syntax after writes |\n| `session_check_setup.py` | SessionStart | Injects `/gtr:setup` reminder when marker is missing |\n| `pre_check_setup.py` | UserPromptSubmit | Injects the same reminder on every prompt until setup completes (soft, never blocks) |\n| `optional/pre_warn_win32_danger.py` | opt-in | Warns on HKLM writes, `SystemParametersInfo`, UAC elevation, `advapi32` calls |\n\n### Permissions (`.claude/settings.json`)\n\nThree layers:\n- **deny** — `rm -rf`, `git push --force`, `git reset --hard`, `.env` / private key reads and writes\n- **ask** — publish commands, `git push`, edits to `.claude/` and workflow files\n- **allow** — managed per-user in `settings.local.json` (gitignored)\n\n### Release pipeline\n\n| File | Role |\n|------|------|\n| `IDENTITY.yaml` | Single source of truth for name, display_name, version, icon, license, release config. Every derived manifest follows it. |\n| `CHANGELOG.md` | Keep-a-Changelog format. Release notes extracted from `## [x.y.z]` section matching the pushed tag. |\n| `RELEASE.md` | End-to-end runbook: preflight, cut, post-release, rollback, versioning rules. |\n| `.github/workflows/release.yml.template` | Tag-triggered, test-gated, matrix build, checksum, draft-first GitHub Release. Activated by `/gtr:setup` on opt-in. |\n| `.github/workflows/ci.yml.template` | Lint + test on push/PR. Activated by `/gtr:setup` on opt-in. |\n\n### Planning (powered by GSD)\n\nThe template delegates planning and execution to the **GSD** plugin (`oh-my-claudecode`). GSD writes durable phase plans to `.planning/` and runs each plan in a worktree-isolated subagent — main context stays at ~5% so token cost is predictable.\n\nTwo layers:\n- **`.planning/` (persistent)** — `PROJECT.md` (vision), `ROADMAP.md` (phases), `STATE.md` (memory), `phases/\u003cN\u003e-\u003cname\u003e/\u003cN\u003e-\u003cP\u003e-PLAN.md` (the plan being executed). Survives sessions.\n- **Built-in `TaskCreate` (ephemeral)** — current-session subtask breakdown of the in-flight plan.\n\nUse `/gtr:menu` if you do not want to learn GSD's command names directly. It surfaces every option as a numbered choice and routes to the right `/gsd:*` command underneath.\n\n### Recommended plugins\n\nInstalled globally (user scope) by `/gtr:setup`:\n\n| Plugin | What it does |\n|--------|--------------|\n| `code-simplifier` | Reviews changed code for redundancy and over-engineering |\n| `commit-commands` | `/commit`, `/commit-push-pr`, `/clean_gone` |\n| `pr-review-toolkit` | Multi-aspect PR review |\n| `claude-md-management` | `/revise-claude-md` + CLAUDE.md improver skill |\n| `skill-creator` | Author and tune custom skills |\n| `security-guidance` | Session-scoped security reminders |\n| `oh-my-claudecode` | Autopilot, ralph, ultrawork, deep-dive, plan, team, and more advanced agents (custom marketplace `omc`) |\n| `frontend-design` | Distinctive, production-grade frontend code (only installed if project has a UI) |\n\nPlugins live in user scope, so one install covers every project.\n\n---\n\n## Philosophy\n\n- **Single source of truth.** Identity lives in `IDENTITY.yaml`. Everything else derives. `/gtr:doctor` reports drift.\n- **Hooks over vibes.** Guardrails are enforced by scripts, not reminders. You cannot accidentally commit an `.env` or force-push main.\n- **Opt-in over magic.** Release automation and optional hooks are copied on opt-in during `/gtr:setup`, not imposed.\n- **Planning lives on disk, not in chat.** Phase plans live under `.planning/` (managed by GSD). Each plan executes in an isolated subagent so the main context stays light.\n- **Plugins over bundled skills.** General-purpose capabilities live in global plugins; only project-specific skills go in `.claude/skills/`.\n- **Senior-level releases.** Tag-triggered, test-gated, draft-first, checksum-signed, rollback-documented.\n\n---\n\n## Customization\n\nAfter `/gtr:setup`:\n\n- **Identity**: edit `IDENTITY.yaml`. Run `/gtr:doctor` to catch drift in derived manifests.\n- **Protected files**: adjust `PROTECTED_EXACT` / `PROTECTED_DIRS` in `.claude/hooks/pre_guard_release_files.py`.\n- **Security patterns**: extend `DANGEROUS_PATTERNS` in `.claude/hooks/pre_guard_security.py` for project-specific sinks.\n- **Secret patterns**: extend `SECRET_PATTERNS` in `.claude/hooks/pre_guard_env_secrets.py` for vendor token formats.\n- **Release platforms**: edit `IDENTITY.yaml#release.platforms` and the matrix in `.github/workflows/release.yml`.\n- **Permissions**: project-wide rules in `.claude/settings.json`; personal allowlists in `.claude/settings.local.json`.\n\nSee `.claude/TIPS.md` for the long-form reference (hooks API, MCP servers, permissions, workflow tips).\n\n---\n\n## Requirements\n\n- Claude Code (`claude` CLI)\n- Python 3.10+ (for hooks)\n- Git\n- Node.js — only for JS syntax validation in `post_validate_syntax.py`\n\n---\n\n## License\n\nThis template itself is unlicensed — add a LICENSE appropriate to your project after cloning. The hooks, commands, and configuration files are provided as-is and are free to adapt.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgtrows%2Fclaude-code-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgtrows%2Fclaude-code-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgtrows%2Fclaude-code-template/lists"}