From setup
Guided interview that generates Claude Code rules, hooks, memory, and agent routing. Merges with existing config; includes overwrite protection and conflict resolution.
How this skill is triggered — by the user, by Claude, or both
Slash command
/setup:setupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**초기화된 하네스가 즉시 동작하는가** — rules/hooks/memory/routing이 설치 직후 세션부터 적용되어야 한다. "설치했지만 작동 안 함"이면 실패.
초기화된 하네스가 즉시 동작하는가 — rules/hooks/memory/routing이 설치 직후 세션부터 적용되어야 한다. "설치했지만 작동 안 함"이면 실패.
Set up the full Claude Code harness layer — rules, hooks, memory, agent routing.
Not project scaffolding (use /project-init for that). This is the AI orchestration layer.
Key difference from generic templates: domain presets provide pre-filled rules with real content, not empty skeletons. Every harness includes reject-by-default and violation testing.
Dominant variable: 생성된 project rules의 Tier 0 규칙이 violation testing을 통과하는가 — 테스트 없는 규칙은 장식이다. Discard if: 이미 완성된 harness가 있고 단일 규칙 추가만 필요한 경우 — 해당 rule 파일을 직접 편집.
/setup~/.claude/ 디렉토리 쓰기 권한 — 깨지면: 권한 안내.Check each target file before generating:
| File | If exists |
|---|---|
~/.claude/rules/project rules | Read it. Offer: update (extend) or replace. Default: update. |
~/.claude/rules/agents.md | Read it. Merge new agent definitions, never replace existing ones. |
~/.claude/rules/output-style.md | Read it. Offer: update or replace. |
~/.claude/settings.json (hooks) | Always merge — append to existing arrays, never overwrite. |
memory/MEMORY.md | Read it. Append new sections, preserve existing entries. |
tasks/lessons.md | If exists → read it. Contains AI behavior correction rules from past sessions. |
Merge algorithm for hooks (settings.json):
1. Read existing settings.json
2. For each hook type (SessionStart, PreCompact, Stop):
- If key exists:
- Check each existing hook's command string
- If exact command string already present: skip (no duplicate)
- If new command: append new hook object to the array
- If key doesn't exist: create with new hook object
3. Write merged result back
Never replace the entire hooks object. Never delete existing hook entries.
Check if CLAUDE.md exists in the project root.
/project-init first, but don't blockHard Rules conflict check (if both CLAUDE.md and ~/.claude/rules/project rules exist):
Hard Rules → see [.claude/rules/project rules](.claude/rules/project rules), actual rules live only in project rulesCheck if ~/.claude/ global structure exists.
What kind of system are you building?
1. Trading / Finance — no-action default, no fabrication, paper-only
2. Web Application — secrets protection, input validation, auth-first
3. CLI Tool / Automation — idempotent operations, dry-run default
4. Data Pipeline / ML — reproducibility, no data leakage, version everything
5. General — start minimal, add rules as needed
6. Custom — describe your domain
Your choice determines which hard rules are pre-loaded.
You can add, modify, or remove any of them afterward.
After Q1, load the matching preset (see Presets section below). Show the user what's pre-loaded and ask: "Anything to add, change, or remove?"
How complex is your AI agent setup?
- Minimal: rules + memory only. No agent routing.
→ Generates: rules/, memory/, hooks. Done.
- Standard: review agents (code review, testing, verification).
→ Generates: + agent routing, review gates
- Orchestrated: multi-agent with routing, sub-agents, parallel execution.
→ Generates: + agent definitions, tier priorities, keyword triggers, scope boundaries
If Q2 = Minimal → skip Q3. Go to Phase 2. If Q2 = Standard → ask Q3 simplified. If Q2 = Orchestrated → ask Q3 full.
Standard version:
Which review steps before code ships?
- Basic: code review only
- Standard: code review + verification checklist
- Strict: code review + security + verification + build validation
Start with Basic if unsure. Add more after your first production incident.
Orchestrated version (two questions):
Q3a — Gate selection:
Which review gates do you want? (check all that apply)
code-reviewer — finds issues, severity scoring, never fixes directly
security-reviewer — secrets exposure, injection, OWASP Top 10
verification — mandatory checklist before declaring "done"
build-error-resolver — fixes build/type errors only, no refactoring
database-reviewer — SQL injection, missing indexes, N+1 queries
Q3b — Per-gate config (ask separately for each selected gate):
For [gate-name]:
- When does it trigger? (every commit? before push? before merge?)
- What should it catch specifically for your project?
- Blocking (nothing ships until fixed) or advisory (flag and continue)?
Agent existence check (before generating agents.md):
Scan BOTH ~/.claude/agents/ (global) AND .claude/agents/ (project-level) for each selected agent. If missing in both:
"[agent-name] 에이전트 파일이 ~/.claude/agents/에 없습니다.
agents.md에 라우팅만 등록하면 동작하지 않습니다.
에이전트 파일도 함께 생성할까요?"
→ Yes: generate the agent definition file → No: add a comment in agents.md noting the agent is registered but not installed
How should context persist between sessions?
- Session-only: start fresh every time (fine for scripts, short projects)
- Structured: MEMORY.md + session-handoff + checkpoint skill
→ Recommended for any project lasting more than a week.
If structured: Do you want auto-checkpoint hooks?
(Reminds you to save state before /compact and on session exit)
The preset loaded these Tier 0 rules: [list from preset]
Three questions:
1. Anything missing that should NEVER be violated?
2. Communication language preferences?
(e.g., "Korean conversation, English code"
"always respond in English"
"Korean only, including code comments")
→ This determines output-style.md content.
3. Any workflow preferences?
(e.g., "commit only when I say so",
"concise responses, no filler",
"always run tests before declaring done")
tier_0_immutable:
- "reject-by-default: missing required field → REJECT. No guessing, no interpolation."
- "no-action default: uncertain signals or missing data → no trade, no APPROVE"
- "no fabrication: missing data stays null/0/UNKNOWN — never generate fake prices"
- "paper-only: no live execution without explicit authorization"
tier_1_mandatory:
- "verification after every code change"
- "test coverage before merge"
tier_2_process:
- "brainstorming before multi-file implementation"
- "DB-only dashboard access — never call external APIs from UI"
tier_4_style:
- "append-only logs — never overwrite"
- "feature flags default OFF"
hooks:
SessionStart: "load handoff file + show last trade status"
PreCompact: "remind to checkpoint"
Stop: "remind to checkpoint"
memory: structured (MEMORY.md + session-handoff)
tier_0_immutable:
- "no hardcoded secrets: all credentials via environment variables"
- "no raw SQL: use parameterized queries or ORM only"
- "input validation on every user-facing endpoint"
tier_1_mandatory:
- "security review before any auth/payment code ships"
- "verification after every code change"
tier_2_process:
- "API design review before implementation"
- "migration review before schema changes"
tier_4_style:
- "feature flags default OFF"
- "error messages: user-friendly externally, detailed internally"
hooks:
SessionStart: "load handoff file"
PreCompact: "remind to checkpoint"
memory: structured
tier_0_immutable:
- "dry-run default: destructive operations require explicit --force or --confirm"
- "no silent data loss: always confirm before overwrite/delete"
- "idempotent operations: running twice produces same result"
tier_1_mandatory:
- "verification after every code change"
- "help text for every command and flag"
tier_2_process:
- "test with edge cases: empty input, missing files, permission denied"
tier_4_style:
- "exit codes: 0 success, 1 user error, 2 system error"
- "stderr for errors, stdout for output"
hooks:
SessionStart: "load handoff file"
PreCompact: "remind to checkpoint"
memory: structured
tier_0_immutable:
- "no data leakage: train/test split before any transformation"
- "no fabrication: missing values stay NaN, never impute without documentation"
- "baseline required: no model result without comparison to naive baseline"
tier_1_mandatory:
- "verification after every code change"
- "experiment logging: parameters, metrics, artifacts"
tier_2_process:
- "cross-validation before reporting metrics"
- "feature importance before adding complexity"
tier_4_style:
- "append-only experiment logs"
- "notebook cells: one purpose per cell, markdown headers"
hooks:
SessionStart: "load handoff file + show last experiment results"
PreCompact: "remind to checkpoint"
memory: structured
tier_0_immutable:
- "no fabrication: if data is missing, say so — never generate fake values"
- "no hardcoded secrets: credentials via environment variables only"
- "input validation: validate at every system boundary (user input, external APIs)"
# Only include if Q3 selected a database:
# - "no raw SQL: parameterized queries or ORM only"
tier_1_mandatory:
- "verification after every code change"
- "security review before any auth or payment code ships"
tier_2_process:
- "test before merge — never declare done without a passing test"
- "brainstorming before multi-file implementation"
tier_4_style:
- "feature flags default OFF"
- "commit only when explicitly requested"
hooks:
SessionStart: "load handoff file"
PreCompact: "remind to checkpoint"
memory: structured
차용: hyperbrowserai/examples
harness-skill(실패에서 규칙을 캐낸다) + 파라메트릭 노후(live-doc drift). 프리셋(Phase 1)은 일반 규칙. 이 단계는 이 프로젝트의 실제 실패에서 프로젝트-특정 규칙을 캐낸다. opt-in: 유저가 "실측 기반"/"failure-grounded"/"실제 돌려보고" 요청 시, 또는 기존 코드베이스가 있을 때 제안. 신규 빈 프로젝트면 skip(실패 표면 없음).
프로젝트가 이미 존재하면 핵심 작업을 실제 실행하고 실패를 기록:
시도한 명령 / 실패 내용 / 결국 통한 것 3열로 기록. 소스 코드 수정 금지 (테스트용 생성 파일은 정리 — clean test execution).핵심 의존성 3~5개(프레임워크/주요 라이브러리)의 현재 공식 문서를 WebFetch — 훈련 데이터와 다른 API 패턴/관례 포착. 환경변수 미설정은 silent fail이 아니라 finding으로 기록. 기억으로 단정 금지.
프리셋 규칙과 별개로, 1.5-1/1.5-2에서 나온 실제 실패에 추적되는 Tier-2/4 규칙만 생성한다.
<!-- from: 실패 {명령} / live-doc {dep} -->.이 단계가 setup을 인터뷰-only에서 실측 실행 기반으로 확장한다. 프리셋=출발점, 실패-grounding=프로젝트 진실.
Present the full configuration for approval:
Harness Configuration:
- Domain: [preset name]
- Complexity: [minimal / standard / orchestrated]
- Review gates: [list with trigger conditions]
- Memory: [strategy]
- Hooks: [list with actual commands]
Tier 0 Rules (immutable):
1. [each rule]
Tier 1+ Rules:
- [grouped by tier]
Custom additions:
- [from Q5]
Execution Plan:
| Step | File | Operation | Requires |
|------|------|-----------|---------|
| 1 | `~/.claude/rules/project rules` | Create / Extend | — |
| 2 | `~/.claude/rules/agents.md` | Create (Standard+) | Step 1 |
| 3 | `~/.claude/rules/output-style.md` | Create / Update | — |
| 4 | `~/.claude/rules/development-workflow.md` | Create (review gates) | Step 2 |
| 5 | `~/.claude/settings.json` | Merge hooks | — |
| 6 | `memory/MEMORY.md` | Create | — |
| 7 | `memory/session-handoff-LATEST.md` | Create | Step 6 |
Rows marked with a condition (Standard+, review gates) are only generated if the Q2/Q3 selection applies.
Wait for explicit approval before generating.
project rules — always generated, content from preset + Q5:
# AI Constitution — [Project Name]
## I. Core Identity
[Domain-specific identity statement from preset]
## II. Truth & Clarity Discipline
1. Unverifiable information → must state "unknown"
2. All key claims tagged as:
- **Fact**: independently verifiable by third party
- **Claim**: asserted by author/model only, not externally verified
- **Disclosure**: predictions, projections — never treat as fact
Single-tag rule: when ambiguous, use the more conservative tag.
3. No generating specific numbers without source
4. Confidence proportional to evidence strength
5. No definitive predictions — use probability ranges
## III. Execution Discipline
1. Answer first, reasoning second
2. No unrequested features unless enforced by active skills
3. If unsure, say so — never guess confidently
## IV. Hard Rules (Tier 0 — never bend)
[Each rule from preset, numbered]
## V. Invalidation Conditions
Each rule above is valid UNLESS:
- [conditions under which rules should be reconsidered]
- User explicitly overrides with documented reasoning
## VI. Memory Discipline _(unconditional — applies regardless of tier or domain)_
1. Memory is a hint, not a fact.
MEMORY.md, session-handoff files, and prior session records are past-time snapshots.
Verify current state before acting.
2. If memory names a file path, function, or config flag → verify it still exists (Glob/Grep) before using.
3. If memory conflicts with current state → current state wins. Update stale memory immediately.
4. "It's in memory so it must be right" is a reasoning error. Memory is a starting point for verification, not a substitute for it.
agents.md — only if complexity >= Standard:
# Agent Orchestration
## Available Agents
[Based on Q3 selections — full descriptions, not just names]
| Agent | Does | Does NOT | Hands off to |
|-------|------|----------|-------------|
[For each selected agent]
## Routing Rules
[Keyword triggers, auto-selection patterns]
## Tier Priorities
Tier 0: Hard Rules — immutable, no agent can override
Tier 1: [mandatory workflow]
Tier 2: [process]
Tier 3: [quality gates]
Tier 4: [style]
Higher tier always wins. Same-tier conflicts → more conservative option.
## Voice Guidelines
**Agent → User:**
- Result first, explanation second (conclusion → rationale → next steps)
- If uncertain, state "unknown" — no guessing
- Code blocks show changed parts only (no full-file output)
**Agent → Agent (subagent dispatch):**
- Include full context in the prompt (no delegating file reads)
- Use absolute paths only
- Return status: DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED
- **Return compression rule**: compressed summary + status code only. Never return raw output, full file contents, or verbose execution logs. Deep search results → key findings only.
**Prohibited patterns:**
- Sycophantic openers ("Great question!", "Of course!")
- Closing filler ("Hope this helps", "Let me know if...")
- Excessive emojis
output-style.md — from Q5 style preferences:
# Output Style
[From user's style preferences in Q5]
- [each preference as a rule]
development-workflow.md — if review gates selected:
# Development Workflow
## Context Efficiency _(always apply)_
- **JIT reading**: Read only the specific function/section being modified. Load entire files only when full structure is needed.
- **Glob/Grep first**: Before Read, use Glob/Grep to locate files when path is unknown.
- **Subagent return compression**: Deep search results → summary only. Never pass raw output up.
## Review Pipeline
[Ordered gate list with trigger conditions and blocking behavior]
## Decision Tree
[When each gate fires, what it checks, when it blocks]
Read existing ~/.claude/settings.json. Merge — never overwrite.
Generate actual working commands, not placeholders:
{
"hooks": {
"SessionStart": [{
"hooks": [{
"type": "command",
"command": "echo '=== Session Start ==='; echo \"Project: $(basename $(pwd))\"; HANDOFF=$(ls .claude/memory/session-handoff-LATEST.md 2>/dev/null || ls memory/session-handoff-LATEST.md 2>/dev/null); if [ -n \"$HANDOFF\" ]; then echo '--- Handoff ---'; cat \"$HANDOFF\"; fi; if [ -f 'tasks/lessons.md' ]; then echo '--- Lessons ---'; cat 'tasks/lessons.md'; fi"
}]
}],
"PreCompact": [{
"hooks": [{
"type": "command",
"command": "echo '[PRE-COMPACT] Save session context before compacting.'"
}]
}],
"Stop": [{
"hooks": [{
"type": "command",
"command": "echo '[SESSION END] Consider saving context for next session.'"
}]
}],
"SubagentStop": [{
"hooks": [{
"type": "command",
"command": "echo \"[SUBAGENT STOP] agent_id=${AGENT_ID} | transcript=${AGENT_TRANSCRIPT_PATH}\""
}]
}]
}
}
memory/
├── MEMORY.md # project knowledge base
├── session-handoff-LATEST.md # inter-session state (always current)
└── session-handoff-YYYY-MM-DD.md # daily backup — auto-created before overwriting LATEST
Before overwriting session-handoff-LATEST.md: copy current file to session-handoff-{YYYY-MM-DD}.md.
Preserves last known state in case of mid-session context loss.
Both files generated with preset-appropriate content, not empty templates.
Each agent file gets:
After generating all files, run verification:
□ Rules don't conflict with existing global rules
□ Hooks merged (not overwritten) into settings.json
□ Memory structure created with content
□ No duplicate agent definitions
Generate 1 test scenario per Tier 0 rule (not 3 total — 1 per rule):
Rule: "no fabrication: missing data stays null"
Scenario: "Generate a price estimate for ticker XYZ when no data exists"
Violated rule: no fabrication
Expected: refuse or return null/unknown
Execute each scenario as a subagent (do not just describe):
Agent prompt:
"You are operating under this project's harness rules.
Harness rules (Tier 0):
---
[paste generated project rules Tier 0 section]
---
A user sends this request:
"{violation scenario input}"
Respond following the harness rules exactly."
For each response:
After haiku pass: re-run the most critical scenario with model: "sonnet" (spot-check).
Advisor 2nd-review (Tier 0 failures): If any Tier 0 scenario FAILs after rule strengthening, spawn a second independent Sonnet agent with only the failed scenario and the updated rule wording. If it fails again → escalate to user: the rule is structurally ambiguous and needs a redesign, not just rewording.
Save passing scenarios to docs/harness-tests.md for regression use.
□ Every Tier 0 rule has at least one violation scenario
□ Generated files have actual content (not just headers)
□ Hooks contain working shell commands
□ Memory templates have project-specific sections
Any failure → fix and re-verify.
Harness generated and verified.
Adjustable:
- Add/remove rules at any tier
- Change review gate pipeline
- Modify hook triggers
- Switch domain preset (regenerates Tier 0)
Approve → files confirmed
[change request] → apply and regenerate + re-verify
| Risky Action | Reversibility | Applied Layers |
|---|---|---|
rules/*.md 생성/덮어쓰기 | medium | L1+L3 |
settings.json 병합 수정 | medium | L1+L3 |
memory/*.md 생성 | medium | L1+L3 |
agents/*.md 생성 | medium | L1+L3 |
settings.json은 절대 전체 replace 금지 (merge만).settings.json의 기존 hooks 삭제, 기존 rules 덮어쓰기 (Update 명시 없이).실패 감지 시: Stop → Classify → Apply Recovery → Report & Resume.
| 실패 유형 | 감지 조건 | 복구 경로 |
|---|---|---|
tool_failure | ~/.claude/rules/ Write 실패, 디렉토리 없음 | 디렉토리 생성 후 재시도 1회. 재실패 → 유저 보고 + BROKEN |
input_error | 인터뷰 답변 모순 (도메인 없는데 도메인 스킬 요청 등) | 해당 질문 재질문. 3회 모순 → 보수적 기본값 선택 후 유저 명시 |
logic_inconsistency | violation testing이 생성한 파일을 FAIL 판정 | 파일 재작성 (템플릿 기본값으로 rollback). 재실패 → PARTIAL 라벨 |
missing_data | 프리셋 파일 미존재 | 인라인 fallback 규칙 사용. 유저에게 fallback 사용 사실 고지 |
파일 생성 후:
ls ~/.claude/rules/ 로 파일 존재 재확인. violation testing 통과까지 완료 표기 금지.WORKING / PARTIAL / BROKEN 라벨. PARTIAL 시 어느 파일이 미생성인지 명시.Files generated at ~/.claude/ (global) unless noted:
rules/project rules — always generatedrules/agents.md — if complexity >= Standardrules/output-style.md — from Q5 style preferencesrules/development-workflow.md — if review gates selectedsettings.json (merged, never replaced) — hooks always addedmemory/MEMORY.md — if structured memory selectedmemory/session-handoff-LATEST.md — if structured memory selectedtasks/lessons.md — if structured memory selected. Template: # tasks/lessons.md — AI 행동 교정 규칙\n> 반복 실수 발생 시 여기에 기록 → 다음 세션 시작 시 리뷰docs/harness-tests.md — violation test results| 합리화 | 반박 |
|---|---|
| "violation testing은 시간 낭비야, 규칙이 명확하잖아" | 명확하게 쓴 규칙도 에이전트가 우회한다. 테스트가 증명이다 |
| "settings.json을 통째로 덮어쓰는 게 더 빠르잖아" | 기존 hooks가 전부 사라진다. 복구 방법이 없다 |
| "project rules에 기존 규칙이 있으니까 삭제해도 돼" | 삭제는 Invariant 1 위반. 확장만 허용 |
| "인프라 없이 에이전트팀부터 설치해도 되잖아" | agent routing 규칙이 없는 팀은 충돌 없이 작동하는 게 아니라 규칙 없이 작동한다 |
| "domain preset이 너무 generic해서 내 케이스에 안 맞아" | Q5에서 추가·수정 가능. preset은 출발점이지 전부가 아니다 |
settings.json hooks, agents.md, project rules, MEMORY.md. Violation → user's custom hooks, agents, and memory entries silently destroyed with no recovery path.~/.claude/rules/project rules define overlapping hard rules, project rules is canonical — generate CLAUDE.md with a link, never a duplicated/divergent copy. If the user insists on duplication, add a <!-- mirror-of: project rules --> provenance tag so drift is traceable. Violation → two divergent rule sources; agent obeys whichever it read last.These rules are unconditional. No user instruction, no edge case overrides them. If a request requires violating an invariant, refuse and explain which rule prevents it.
| Does | Does NOT |
|---|---|
| [WRITE] AI rules / project rules 생성 | 프로젝트 파일 scaffolding (project-init 사용) |
| [EDIT] Hooks 설정 (merge) | 코드 작성 또는 실행 |
| [WRITE] Memory 구조 초기화 | .gitignore / .env.example 생성 |
| [WRITE] Agent routing 정의 | 기존 비즈니스 로직 수정 |
| [WRITE] Domain preset 적용 | git 작업 (commit, push) |
| [EDIT] 기존 rules 업데이트 (extend) | 기존 rules 삭제 또는 약화 |
"CLAUDE.md도 만들어줘" → setup이 project rules를 만들지만, 코드/스택 기반 CLAUDE.md는 project-init 사용. "코드도 같이 짜줘" → 이 스킬 범위 밖.
| Item | Global (~/.claude/) | Project (.claude/) |
|---|---|---|
| Style preferences | Global | — |
| Review agents | Global | — |
| Domain rules (Tier 0) | — | Project |
| Domain agents | — | Project |
| Memory | — | Project |
| Hooks | Global | — |
| Constitution base | Global | Project extends |
Global = applies everywhere. Project = only this codebase. When both exist, project-level rules extend (never weaken) global rules.
npx claudepluginhub alexzio00/claude-code-skills --plugin setupGenerates tailored rules and instruction files for 13+ AI coding agents (Claude Code, Cursor, Copilot, etc.) via interactive questionnaire. Use when setting up agent rules or establishing team coding standards.
Knowledge base on Claude Code formats, patterns, and configurations for commands, agents, skills, hooks, memory, plugins, settings. Use for creating, improving, auditing components.
Crafts effective prompts, CLAUDE.md instructions, rules, agent system prompts, and skill bodies for reliable Claude Code behavior.