一键导入
freeze
Scope lock for current task. Declares editable zone — everything outside is frozen (read-only). Call before starting implementation to prevent scope creep.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Scope lock for current task. Declares editable zone — everything outside is frozen (read-only). Call before starting implementation to prevent scope creep.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Gate for deciding whether to adopt an external pattern (skill/agent/rule/plugin/MCP/prompt) into your system. Triggers: '/integration-intake [name]', 'should I integrate this', 'is this worth adopting', or sharing a GitHub repo link and asking what to do with it.
This skill should be used when the user types /collab-audit or requests AI collaboration diagnosis. Analyzes conversation history, artifacts, and work patterns to generate a 14-section AI Collaboration Audit. Behavioral analysis and feedback are bundled by design — separating them causes users to skip one, defeating the purpose. Saves to ~/.claude/collab-audits/YYYY-MM-DD.md. Compare mode: /collab-audit compare (diffs latest 2 audits). Triggers: '/collab-audit', '/collab-audit compare', 'AI 협업 진단해줘', '협업 진단', '행동 패턴 분석', '나 어떤 사람이야', 'AI collaboration audit', 'work pattern analysis', 'compare audits'. Requires minimum 2 sessions or 100+ messages. Do NOT use self-report surveys — observation-only.
Use this skill when the user wants to audit the memory and documents Claude Code loads into context — CLAUDE.md (user global + project + nested), MEMORY.md, @imports, .claude/skills, .claude/agents, .claude/commands, installed plugins — and detect three kinds of issues: outdated claims, mutually contradictory statements, and risky-or-ambiguous wording. Produces a prioritized improvement list at `.drift-reports/`. Zero config. Trigger phrases: "doc drift", "memory drift", "memory audit", "context drift", "docs audit", "문서 점검", "문서 감사", "메모리 감사", "메모리 점검", "outdated 문서", "문서 충돌". NOT for: exhaustive content audit of an entire area (→ full-audit) · harness maturity scoring (→ check-harness) · single-file verification (→ verification). doc-drift only covers drift (contradiction/staleness/risky wording) in already-loaded context.
Audits whether a verification (eval/metric/experiment/holdout) actually secures independent external ground truth, or whether the designer, the model, and the scorer are just confirming each other in a circle — via an 8-pattern taxonomy. Read-only. Use before trusting any 'how we'll know it worked' — A/B tests, holdouts, scores, validation — especially when a result feels too clean or self-confirming. 한국어: '이 검증 순환논리 아닌지 봐줘', '이 평가 편파적이야?', '이 벤치마크 셀프체크야?'.
Exhaustive audit of an entire area (codebase, docs, memory, skills, DB, config). Triggers: '/full-audit', 'audit everything', 'full audit', 'find every gap'.
Agent Discipline Engine — lock the goal, run PLAN→DO→VERIFY→FINALIZE→OUTPUT loop, detect success masquerading. Triggers: '/goal-lock', '/goal-lock quick', 'goal lock', 'task harness'.
| skill_type | utility |
| tools | Read |
| name | freeze |
| description | Scope lock for current task. Declares editable zone — everything outside is frozen (read-only). Call before starting implementation to prevent scope creep. |
| tags | ["meta","safety"] |
| version | 1.0.0 |
| source | garrytan/gstack freeze pattern |
| triggers | ["/freeze","freeze this","scope lock","스코프 잠금","이것만 건드려","나머지 건드리지 마","범위 잠가"] |
| user_invocable | true |
| not_for | ["Scope planning -> scope skill","Execution loop -> goal-lock"] |
| see_also | [{"skill":"scope","relation":"freeze=zone lock, scope=planning scope"},{"skill":"goal-lock","relation":"freeze=manual lock, goal-lock=loop enforcement"}] |
Declare editable zone — everything outside is frozen.
In this task, is the editable scope explicitly declared? — If unclear, scope creep naturally develops during implementation. First of three principles (freeze / careful / guard): freeze = boundary lock (this skill), careful = 3-strike debugging gate, guard = risky path protection.
/freezeUser input (file / module / concept scope)
↓
[PARSE] → classify as editable / frozen / read-only
↓
[DECLARE] → generate FROZEN SCOPE block
↓
[OUTPUT] → emit immediately, then exit
Extract from user input:
If scope is too vague ("everything", "roughly") → ask for clarity once only. Still unclear → freeze more broadly (Invariant 2).
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔒 FROZEN SCOPE — [One-line task description]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ EDITABLE (modifications allowed)
[list of files / modules]
❌ FROZEN (no modifications)
[everything else — or "all except above"]
⚠️ READ-ONLY (reference only)
[mentioned but no modifications allowed]
Rules:
- FROZEN files: Edit/Write forbidden. Read only.
- If modification necessity discovered → stop immediately, report to user
- Thaw: user must explicitly say "unfreeze [file]" or "expand scope"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Emit FROZEN SCOPE block, then exit immediately. No code generation, no agent spawning, no implementation start.
All implementation work in this session follows this declared scope.
| Does | Does NOT |
|---|---|
| [READ] Parse user input → classify editable/frozen/read-only | Write code or modify files |
| Emit FROZEN SCOPE block | Spawn agents or start implementation |
| Ask for clarity once if scope is ambiguous | Make direct judgment calls on out-of-scope modifications |
| Risky Action | Reversibility | Applied Layers |
|---|---|---|
| (none — read-only, block output only) | — | L1 (Invariant 1: no modifications to frozen files, ever) |
On failure detection: Stop → Classify → Apply Recovery → Report & Resume.
| Failure Type | Detection Condition | Recovery Path |
|---|---|---|
input_error | Unclear which files / scope to freeze | Ask once for target — never guess scope |
logic_inconsistency | Freeze request conflicts with simultaneous modification request | Clarify: "This file will be frozen — modification requests rejected." Do not allow both. |
missing_data | Specified file does not exist | State "file not found." Do not guess paths and freeze different files. |
Frozen = absolutely no modifications: Files declared frozen cannot be edited/written in this session. "Just a tiny tweak" is rationalization. Violation → scope creep and unexpected side effects.
When unclear, freeze broader: If boundaries are ambiguous, choose the broader frozen range. Narrow scope fails to prevent creep. Violation → freeze declaration becomes meaningless.
Exit immediately after declaration: No further action after emitting FROZEN SCOPE block. User initiates follow-up implementation requests normally. Violation → declaration and implementation blur, scope awareness fades.
When a frozen file needs modification mid-work:
Trigger: "unfreeze [file]", "thaw", "expand scope"
Steps:
Limits:
⚠️ Freeze is being repeatedly lifted — consider re-running /scope to redefine boundaries| Rationalization | Rebuttal |
|---|---|
| "It's frozen but I just need to change one line" | Violates Invariant 1. Stop and report to user. |
| "Scope is unclear, let me narrow it for now" | Violates Invariant 2. When unclear, freeze broader. |
| "Declaring and implementing immediately is faster" | Violates Invariant 3. Exit after declaration. |
| "It's one file, why declare a freeze?" | Discard If: ≤10 lines in 1 file excluded. Otherwise declare. |
| "No actual modifications needed, so it's fine" | Scope creep often begins when we think nothing needs to change. |
User: "/freeze src/components/UserProfile.tsx"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔒 FROZEN SCOPE — UserProfile component refactor
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ EDITABLE
- src/components/UserProfile.tsx
❌ FROZEN (no modifications)
- everything outside the above
⚠️ READ-ONLY (reference only)
- src/hooks/useAuth.ts (auth logic reference)
Rules:
- No Edit/Write outside UserProfile.tsx
- If modification needed elsewhere → stop and report
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This skill adapts the freeze pattern from garrytan/gstack. The original uses session-global file lists; this version uses task-level declaration instead, because Claude Code cannot persist state across sessions — the declaration block itself serves as in-context state.
See scenarios/case-1.md, scenarios/case-2.md for regression test scenarios.