blender-kiln
Claude Code plugin that turns a text brief or a photo into a production-ready 3D asset through Blender: rebuilt by script, textured from CC0 scans, graded against the real object, optimized to GLB/FBX
Production-ready Claude Code configuration: 27 skills, 37 hooks, 5 rules. Includes Anthropic best practices, gstack integration, and conditional attention tags.
Translation pending
SkillsShell · MarkdownGitHub @Cor-IncorporatedSelf-installOwner unconfirmed
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Installable projects can be verified without a deployment domain. Use GitHub sign-in for a personal repository, or the repository verification file above for an organization repository.
Ask about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗English | 日本語
A curated collection of skills, rules, and hooks for Claude Code — Anthropic's official CLI for Claude.
This repository provides a production-ready Claude Code configuration with 25 custom skills, 17 hook scripts (4 blocking + 13 advisory/infra), 6 rule sets, 6 utility scripts, and integration with third-party skill frameworks.
Design Philosophy: This project implements the principles from Harness Engineering Best Practices 2026 — deterministic quality gates via hooks, pointer-based documentation (ADR-002), and the feedback speed hierarchy (PostToolUse > pre-commit > CI > human review). Since ADR-006, the hook set is deliberately minimal: hard blocks are reserved for destructive/irreversible operations, and merge safety is delegated to GitHub branch protection + PR review rather than local gates.
git clone https://github.com/terisuke/claude-code-skills.git
cd claude-code-skills
chmod +x setup.sh
./setup.sh
Restart Claude Code after installation.
Claude Code can only use one API gateway per process. This repo ships scripts/claude-provider.sh so you can switch between the official Claude subscription (default, reliable for subagents/WebSearch) and z.ai GLM.
bash ~/.claude/scripts/claude-provider.sh status
bash ~/.claude/scripts/claude-provider.sh anthropic # default
bash ~/.claude/scripts/claude-provider.sh zai
Details: docs/runbooks/provider-switching.md.
setup.sh installs three launchers into ~/.local/bin so that Pi, dsh and the upstream OpenCode 2.x start with the
H17 common control the way the 1.x opencode and cursor-agent already do:
| command | what it does |
|---|---|
opencode2 / opencode2 run "…" | upstream @opencode/cli 2.x (~/.opencode-2/pkg, XDG dirs under ~/.opencode-2) with the 2.x directory plugin ~/.config/opencode/plugins/aidd-cc-v2 (opencode/aidd-cc-v2/index.ts). It runs the Cor fork's guardrails launcher from the main checkout (~/Developer/opencode/packages/guardrails/bin/opencode-guardrails, dev since Cor-Incorporated/opencode#343; override with OPENCODE_GUARDRAILS_BIN), which applies the guardrails profile and receives the H17 plugin through OPENCODE_GUARDRAILS_EXTRA_PLUGINS. Every call runs on a private server (--standalone), because the 2.x background service never receives the keys or the profile of the current call. After opencode2 run … returns, the launcher waits for the stop oracle and prints the run's H17 block / would-block / unavailable rows to stderr: in 2.x the plugin runs inside the server process, so the launcher is the headless visibility path (aidd-governance ADR-010). If the plugin cannot load, the launcher refuses to start (AIDD_CC_ALLOW_UNCONTROLLED=1 overrides). Keys: opencode2 auth login or the provider env var. |
pi / pi -p "…" | Pi 1.2.0 with ~/.pi/agent/extensions/aidd-cc.ts; default --provider openrouter --model google/gemini-2.5-flash. Uses pi's own credential store or OPENROUTER_API_KEY; with a Bitwarden session in the shell it injects the key through bw-secrets run (the TUI then runs under script -q /dev/null because bw-secrets pipes stdout). |
dsh "task" / dsh web / dsh --session-id <id> "…" | DeepSeek Harness 0.2.0-rc.1 (~/.dsh-aidd/pkg, dsh only + npm overrides dsh-tools / dsh-agent = 0.2.0-rc.1) with dsh/aidd-cc-native.mts. dsh 0.2.0-rc.1 has no terminal TUI (profiles acp / headless / sdk / sdk-minimal / web), so dsh offers one-shot, session continuation and the browser UI. Never add the rc.5 Claude-Code bridge: a second dsh-tools copy breaks the bash tool. |
Sources: pi/launcher/pi, dsh/launcher/dsh, opencode/launcher/opencode2. Runbook with the live procedure: aidd-governance design/ops/runbooks/h17-human-gate-20261017.md.
claude-code-skills/
├── skills/ # 25 custom skill definitions (SKILL.md + scripts + references)
├── rules/ # 7 global rule files (coding-style, git-workflow, quality, testing, delegation, hook-deployment, runbook)
├── hooks/ # 17 hook scripts (4 blocking + 13 advisory/infra); hooks/_unused/ holds 62 retired scripts, 56 via ADR-006
├── scripts/ # 6 utility scripts (Codex orchestration, provider switching, context monitoring); scripts/_unused/ holds retired review-pipeline helpers
├── setup.sh # One-command installation
├── settings.json # Template settings (sanitized, no personal paths)
└── README.md
Design decisions are recorded as ADRs in docs/adr/.
| ADR | Title | Status |
|---|---|---|
| 001 | PostToolUse Quality Loop | Accepted |
| 002 | CLAUDE.md Pointer Design Principle | Accepted |
| 003 | Feedback Speed Hierarchy | Accepted |
| 004 | Codex Large-Scale Delegation Model | Accepted |
| 005 | Plans.md → JSON Migration | Rejected |
| 006 | Minimal Safety Net — Hook Reduction | Accepted |
To add a new ADR, use the template.
| Document | Description |
|---|---|
| Harness Engineering Best Practices 2026 | Summary of the article that underpins this repository's design philosophy |
| The Complete Guide to Building Skills for Claude | Anthropic official guide — skill structure, progressive disclosure, testing, distribution (summary) |
See docs/references/ for details.
This configuration integrates with the following third-party skill frameworks. They are not bundled in this repository — setup.sh installs them automatically.
| Package | Author | License | Purpose | Install |
|---|---|---|---|---|
| gstack | Garry Tan (YC) | MIT | Think/Plan phase skills: /office-hours, /plan-ceo-review, /plan-eng-review, /plan-design-review, /retro + QA/browse tools | git clone + ./setup |
| ui-ux-pro-max | nextlevelbuilder | Open Source | UI/UX design intelligence: 67 styles, 96 palettes, 57 font pairings, 13 tech stacks | npm install -g uipro-cli + uipro init --ai claude |
Think → Plan (gstack)
/office-hours → /plan-ceo-review → /plan-eng-review → /plan-design-review
Build → Review → Ship (custom skills + hooks)
code-reviewer, review-loop, e2e, bugfix + 17 hook scripts
Reflect (gstack)
/retro
| Skill | Purpose | Trigger |
|---|---|---|
code-reviewer | PR review with OWASP security checks | "review this PR", "code review" |
codex-review | Codex CLI second opinion review (parallel experts via codex exec) | "Codex レビュー", "セカンドオピニオン" |
classify-review | AI-based PR review severity re-classification (false positive filter) | /classify-review [PR#] |
review-loop | CI green + review LGTM auto-loop | /review-loop |
bugfix | Root cause analysis + fix all instances | /bugfix [description] |
tdd-workflow | RED-GREEN-REFACTOR cycle enforcement | "write tests first", "TDD" |
test-falsify | Verify tests actually detect declared bugs | /test-falsify |
git-commit-helper | Conventional commit message generation | "commit this" |
changelog-generator | User-friendly release notes from git history | "create changelog" |
| Skill | Purpose | Trigger |
|---|---|---|
modern-architecture | DDD + Clean Architecture + CQRS patterns | "clean architecture", "DDD" |
senior-architect | System design with architecture diagrams | "design the system" |
senior-frontend | React/Next.js/Tailwind development | "create component" |
senior-backend | Python/Node.js/Go backend development | "design an API" |
senior-fullstack | Full-stack scaffolding and patterns | "scaffold a new project" |
ui-skills | Tailwind CSS constraints and accessibility | "review this component" |
ui-design-system | Design token generation | "generate design tokens" |
| Skill | Purpose | Trigger |
|---|---|---|
gcp-deploy-guardian | GCP deployment failure prevention | docker build, gcloud deploy |
supabase-nextjs-debugger | Supabase + Next.js bug diagnosis | "Vercel 404", "RLS error" |
security-review | OWASP Top 10 vulnerability audit | "security review" |
| Skill | Purpose | Trigger |
|---|---|---|
agent-orchestrator | Multi-agent team composition | 3+ parallel tasks |
skill-creator | Interactive skill creation guide | "create a skill" |
brainstorming | Pre-implementation idea exploration | "brainstorm", "let's think through" |
file-organizer | Directory cleanup and deduplication | "organize my files" |
developer-growth-analysis | Coding pattern analysis + Slack report | "analyze my growth" |
adk-engineer | Google ADK agent implementation | "ADK agent" |
ux-researcher-designer | Persona generation, journey mapping | "create persona" |
gws-workspace | Google Workspace CLI operations | "Google Drive", "Sheets" |
context7-skills | Context7 CLI skill management | "search skills", "ctx7" |
This system's core differentiator is its multi-agent orchestration with automatic delegation to Codex CLI.
Claude Code (60%) — Design, parallel implementation, coordination, user interaction
└─ Strengths: Agent teams, real-time judgment, context-shared collaboration
Codex CLI (40%) — Sequential implementation, operations, quality audits
└─ Strengths: Worktree isolation, long-running autonomy, GitHub/Supabase integration
| Pattern | When to Use | Example |
|---|---|---|
| Single agent | Isolated, known-scope task | "Fix this lint error" |
| Parallel agents (2-4) | Independent tasks, no dependencies | Frontend + backend changes in parallel |
| Agent team (5-7) | Complex multi-file features with cross-review | New feature with tests + docs + review |
| Agent Team (worktree) | Lightweight 1-2 file changes, docs | Dockerfile fix, config change, doc creation |
| Codex delegation | Long-running, mechanical, or >5-turn tasks | Bulk test creation, large refactors |
The agent-orchestrator skill manages team composition, wave-based execution, and cross-review protocols.
| Route | Purpose | Command |
|---|---|---|
| A: Review | Code review, second opinion (parallel experts) | codex exec --sandbox read-only / codex-review skill |
| B: Handover | Large implementation (requires user judgment) | Create handover doc → user passes to Codex |
| C: Parallel | Independent tasks in isolated worktrees | codex-parallel.sh or codex-orchestrate.sh |
Since ADR-006, Codex CLI usage and
context-budget management are not enforced by hooks — the previous
context-budget-*-gate.sh suite and the 1-concurrent-call
codex-task-gate.sh/codex-task-release.sh pair were retired. Route
selection (Agent Team vs. Codex vs. self-execute) is agent judgement
guided by rules/delegation.md; codex-parallel.sh /
codex-orchestrate.sh remain available as optional utilities invoked at
will, with no concurrency limit enforced locally.
| Script | Purpose |
|---|---|
codex-parallel.sh | Single-task Codex execution with auto sandbox selection |
codex-orchestrate.sh | Multi-task parallel execution via worktrees (JSON or CSV input) |
claude-provider.sh | Switch API gateway between Anthropic subscription and z.ai |
sanitize-local-permissions.sh | Strip stray permissions blocks from local settings files |
delivery_score.py | Quantitative delivery quality scoring (hook coverage, CI, reviews) |
context-monitor.py | Monitor context window usage and token consumption |
check-pr-reviews.sh, classify-review-state.sh,
review-comment-set-hash.sh, review-evidence-status.sh, and
verify-pr-review.sh were retired to scripts/_unused/ along with the
review-pipeline hooks they supported (ADR-006).
Prior to ADR-006, a multi-gate pr-ci-review-gate.sh + gate-modes/
pipeline hard-blocked gh pr create/gh pr merge locally. That pipeline
is retired. Merge safety is now the responsibility of GitHub branch
protection (required status checks, required reviews, no force-push)
configured on main/develop, plus the ordinary PR review workflow
(code-reviewer skill, optional Codex CLI second opinion via
codex-review). If branch protection is disabled or misconfigured on
GitHub, there is no local backstop — see
ADR-006's consequences
for the explicit operational requirement this creates.
This repository is built on three foundational principles:
Based on the article that underpins this system's architecture:
| Principle | Implementation | Coverage |
|---|---|---|
| Deterministic tools, minimally applied | 17 hook scripts (4 blocking + 13 advisory) | ADR-006 |
| Feedback speed hierarchy | PostToolUse (ms) > pre-commit > CI (min) > review (hr) | ADR-003 |
| Pointer-based documentation | Rules ≤50 lines each (total 122 lines), pointing to ADRs/hooks | ADR-002 |
| Plan-execute separation | Plans.md + plan mode + planner agent | TaskCreate/Update |
| Git as cross-session bridge | auto-commit-worktree-changes.sh + memory files | PostToolUse |
| Claude Code + Codex hybrid | 60/40 split, delegation now agent-judgement (not hook-gated) | ADR-004, ADR-006 |
Since ADR-006, this repository intentionally trades some of the original article's "deterministic tools over LLM prompts everywhere" guidance for a smaller, higher-signal hook set — see docs/adr/006-minimal-safety-net.md for the false-positive-cost rationale.
The core operational principle, born from an incident where 11 of 18 hooks (61%) were "implemented" in source code but never actually fired:
"Code exists" and "system works" are separate verification steps. Code review alone cannot guarantee operational correctness.
This principle is enforced through:
delivery_score.py: Quantitative quality scoring (hook coverage, CI pass rate, review compliance)enforce-hook-deploy-integrity.sh: Source ↔ deployed ↔ registered consistency check (auto-sync + orphan detection)Before Epic #130: Hook gate operation rate 39% (7/18) After Epic #130, before ADR-006: Hook gate operation rate 98%+ (59/59 hooks registered + deployed) After ADR-006 (current): 17/17 hooks registered + deployed — the surviving set is smaller by design, not by drift; deploy-integrity verification still applies to all of it.
Run python3 scripts/delivery_score.py to get a quantitative quality assessment:
==================================================
Delivery Quality Score: claude-code-skills
==================================================
Total: 99.0/100 (A+)
──────────────────────────────────────────────────
hook_coverage : 96.5/100
ci_pass_rate : 100.0/100
soak_time : 100.0/100
review_compliance : 100.0/100
==================================================
Use --json for CI/automation integration.
All P1-HIGH issues from the Epic #130 review (2026-03-24) have been resolved. P2-MEDIUM issues #136-#147 resolved in subsequent PRs. Current open items:
| Issue | Description | Status |
|---|---|---|
| #161 | delegation.md 327→50 lines (ADR-002, #107 reopened) | Fixed in this release |
Full per-hook reference (event, matcher, purpose): hooks/README.md. Rationale for the reduction from 72 registered commands down to 17: ADR-006.
git-push-guard.sh — Block force-push and direct push to protected branchesprotect-branches.sh — Prevent deletion of protected branchesblock-local-hooks-write.sh — Prevent settings.local.json from overriding global hooksvalidate-no-local-hooks.sh — Warn/block at SessionStart if such an override already existsauto-init-permissions.sh — No-op; permissions live in settings.jsonauto-update-plugins.sh — Update third-party plugins (24h cooldown)validate-provider-env.sh — Check API provider routing (Anthropic/z.ai) at session startenforce-branch-workflow.sh — Auto-create develop branch, warn on main/developenforce-hook-deploy-integrity.sh — Verify hooks are installed and registered (auto-sync + orphan detection)enforce-hook-deploy-after-merge.sh — Auto-deploy hooks after a PR merge that touched hooks/verify-agent-output.sh — Detect agent phantom completions (#173)auto-commit-worktree-changes.sh — Auto-commit worktree agent changes after merge (#220)post-deploy-verify.sh — Inject verification checklist after deploy commandspost-lint-format.sh — Post-write Quality Loop: auto-fix → residual check (ADR-001/003)notify-agent-failure.sh — Propagate agent failure context (PostToolUseFailure)tool-failure-recovery.sh — Error-recovery guidance on tool failure (PostToolUseFailure)pre-compact-context-save.sh — Save critical context before compaction (PreCompact)56 previously-active scripts (the full review/CI merge-gate stack,
factcheck suite, context-budget suite, Codex single-call gate, state-file
tampering guards, and more) plus the entire former hooks/gate-modes/
dispatcher architecture are retired to hooks/_unused/. See
hooks/README.md#_unused-archive for
the full retired list and the rationale in ADR-006.
Important: Claude Code's matcher field accepts only a tool name regex, not an expression language. Command-level filtering must be done inside the hook script by parsing stdin JSON.
// CORRECT — matches tool name with regex
{ "matcher": "Bash" }
{ "matcher": "Edit|Write" }
// WRONG — will never fire (treated as regex against tool name)
{ "matcher": "tool == \"Bash\" && tool_input.command matches \"git push\"" }
Hook scripts receive the tool invocation as JSON on stdin and should filter by inspecting tool_input.command or tool_input.file_path internally.
| Exit Code | Meaning | PreToolUse Behavior |
|---|---|---|
0 | Allow | Tool call proceeds. JSON output (if any) is parsed for hookSpecificOutput. |
2 | Block | Tool call is blocked. stderr is fed back to Claude as error message. |
| Other | Non-blocking error | stderr shown in verbose mode only. Execution continues. |
Important: Do NOT echo the input JSON back to stdout on exit 0. The official pattern is simply exit 0 to allow a tool call. All hooks in this repository follow this convention.
See the official hooks documentation for details.
| File | Purpose |
|---|---|
coding-style.md | Immutability, file size limits, Zod validation, security checks |
git-workflow.md | Branch protection, PR granularity, soak time, post-merge verification |
quality.md | Zero-tolerance errors, completion verification, Docker constraints |
testing.md | Coverage 80%+, TDD workflow, test level definitions, falsifiability |
delegation.md | Claude Code vs Codex CLI delegation rules, context budget gates |
Based on The Complete Guide to Building Skills for Claude (Anthropic, 2026)
skill-name/ # kebab-case, no spaces, no capitals
├── SKILL.md # Required — YAML frontmatter + Markdown instructions
├── scripts/ # Optional — Executable code (deterministic, token-efficient)
├── references/ # Optional — Docs loaded into context as needed
└── assets/ # Optional — Templates, fonts, icons used in output
No README.md, CHANGELOG.md, or auxiliary documentation inside the skill folder.
---
name: skill-name # Required. kebab-case, no "claude"/"anthropic" prefix
description: | # Required. [What] + [When] + [Capabilities]. Under 1024 chars.
What it does. Use when user says "trigger phrase".
Do NOT use for: negative triggers.
allowed-tools: [Read, Bash, Grep] # Optional. Restrict tool access.
license: MIT # Optional
metadata: # Optional
author: Your Name
version: 1.0.0
---
CRITICAL: No XML angle brackets (< >) in frontmatter. Frontmatter appears in Claude's system prompt — angle brackets could inject instructions. Use [placeholder] instead.
[What it does] + [When to use it] + [Key capabilities] + [Do NOT use for]
Good:
description: Analyzes git diff and generates conventional commit messages.
Use when staging changes or writing commit messages. Do NOT use for
branching strategy or merge conflict resolution.
Bad:
description: Helps with projects. # Too vague, no triggers
Run python scripts/validate.py --input {filename} not "Validate the data"## Critical or ## Important headers at topreferences/Use <important if="condition"> tags in SKILL.md body (NOT in frontmatter) to focus Claude's attention on relevant sections:
<important if="you are deploying to production">
- Use --platform linux/amd64 for Docker builds
- Use --update-env-vars (NOT --set-env-vars)
</important>
Rules:
if="you are writing code")| Scope | Criteria | Path |
|---|---|---|
| Global | Tech-stack agnostic, useful across all projects | ~/.claude/skills/ |
| Project-local | Depends on specific project services/architecture | .claude/skills/ |
| Organization | Team-wide policy enforcement | Admin-deployed |
Global skills count toward the per-session limit (recommended 20-50). When in doubt, start project-local.
--- delimitersname field: kebab-case, no spaces, no capitalsdescription includes WHAT, WHEN, and DO NOT USE FOR< >) in frontmatterallowed-tools restricts to minimum necessary toolsreferences/ (progressive disclosure)allowed-tools to restrict unnecessary tool access