claude-code-ultimate-guide/quiz/questions/10-reference.yaml
Florian BRUNIAUX 46c5862c4e fix(docs): critical factual corrections v3.6.1
Major audit correcting misleading documentation about Claude Code behavior:

### Fixed
- `--add-dir`: permissions (not context loading)
- `excludePatterns` → `permissions.deny` (never existed)
- `.claudeignore` removed (not an official feature)
- "selective loading" myth → lazy loading reality
- Invented CLI flags (`--think`, `--headless`, `--learn`) → prompt keywords
- `@` file reference: "loads automatically" → "reads on-demand"

### Added
- Session Search Tool (`cs`) - zero-dep bash script for finding sessions
- Security section: Known limitations of permissions.deny

15 files modified, 516 insertions, 200 deletions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 09:16:53 +01:00

465 lines
14 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

category: "Reference"
category_id: 10
source_file: "guide/ultimate-guide.md"
questions:
- id: "10-001"
difficulty: "junior"
profiles: ["junior", "senior", "power"]
question: "What keyboard shortcut enters Plan Mode (toggles plan/execute)?"
options:
a: "Ctrl+P"
b: "Shift+Tab"
c: "Alt+P"
d: "Ctrl+Shift+P"
correct: "b"
explanation: |
`Shift+Tab` toggles between Plan Mode and Execute Mode.
Plan Mode navigation:
- `Shift+Tab` once: Toggle plan/execute
- `Shift+Tab` twice: Enter deep Plan Mode (with Opus in OpusPlan)
Plan Mode allows safe, read-only exploration before making changes.
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.2 Keyboard Shortcuts"
anchor: "#session-control"
- id: "10-002"
difficulty: "junior"
profiles: ["junior", "senior", "power"]
question: "What keyboard shortcut rewinds to a previous checkpoint (undo Claude's changes)?"
options:
a: "Ctrl+Z"
b: "Esc (double-tap)"
c: "Ctrl+R"
d: "Alt+Z"
correct: "b"
explanation: |
Double-tap `Esc` (Esc×2) rewinds to the previous checkpoint.
This is equivalent to the `/rewind` command.
It undoes Claude's recent changes in the current session without creating git commits.
Use when Claude made a mistake and you want to try a different approach.
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.2 Keyboard Shortcuts"
anchor: "#session-control"
- id: "10-003"
difficulty: "junior"
profiles: ["junior", "senior", "power"]
question: "What does `/compact` do?"
options:
a: "Compresses files on disk"
b: "Summarizes and compresses the conversation context"
c: "Minimizes the terminal window"
d: "Reduces Claude's response length"
correct: "b"
explanation: |
`/compact` summarizes and compresses the conversation context.
Use `/compact` when:
- Context usage reaches 70-90%
- Responses become slow
- Claude starts forgetting earlier context
This frees up context space while preserving important information.
Check context usage with `/status`.
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.1 Commands Table"
anchor: "#built-in-commands"
- id: "10-004"
difficulty: "senior"
profiles: ["senior", "power"]
question: "At what context percentage should you run /compact according to best practices?"
options:
a: "50%"
b: "70-90%"
c: "95%+"
d: "Only when errors occur"
correct: "b"
explanation: |
Context management guidelines:
| Context Level | Action |
|--------------|--------|
| 0-50% | Work freely |
| 50-75% | Be selective |
| **75-90%** | **Use `/compact`** |
| 90%+ | Use `/clear` |
Proactive compaction at 70% prevents context degradation and maintains performance.
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.4 Troubleshooting"
anchor: "#context-recovery"
- id: "10-005"
difficulty: "junior"
profiles: ["junior", "senior", "power"]
question: "What keyboard shortcut cancels the current operation?"
options:
a: "Esc"
b: "Ctrl+C"
c: "Ctrl+Z"
d: "Alt+C"
correct: "b"
explanation: |
`Ctrl+C` cancels the current operation.
Important shortcuts:
- `Ctrl+C`: Cancel operation
- `Ctrl+D`: Exit Claude Code
- `Ctrl+R`: Retry last operation
- `Ctrl+L`: Clear screen (keeps context)
- `Esc`: Dismiss current suggestion
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.2 Keyboard Shortcuts"
anchor: "#session-control"
- id: "10-006"
difficulty: "senior"
profiles: ["senior", "power"]
question: "What is the correct permission pattern to allow ALL git commands?"
options:
a: 'Bash(git)'
b: 'Bash(git *)'
c: 'git:*'
d: 'Bash(*git*)'
correct: "b"
explanation: |
The pattern `Bash(git *)` allows any git command.
Permission pattern examples:
- `Bash(git *)` - Any git command
- `Bash(npm test)` - Exactly "npm test"
- `Edit` - All file edits
- `mcp__serena__*` - All Serena tools
Wildcards (*) enable flexible permission matching.
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.3 Configuration Reference"
anchor: "#permission-patterns"
- id: "10-007"
difficulty: "junior"
profiles: ["junior", "senior", "power"]
question: "Where should project-specific CLAUDE.md be placed (committed to git)?"
options:
a: "~/.claude/CLAUDE.md"
b: "/project/.claude/CLAUDE.md"
c: "/project/CLAUDE.md"
d: "~/.config/claude/project.md"
correct: "c"
explanation: |
CLAUDE.md locations:
| Location | Scope | Committed |
|----------|-------|-----------|
| `~/.claude/CLAUDE.md` | All projects | N/A (global) |
| `/project/CLAUDE.md` | This project | **Yes** |
| `/project/.claude/CLAUDE.md` | Personal | No |
The root `CLAUDE.md` is committed and shared with the team.
The `.claude/CLAUDE.md` is personal and should be in `.gitignore`.
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.3 Configuration Reference"
anchor: "#claudemd-locations"
- id: "10-008"
difficulty: "senior"
profiles: ["senior", "power"]
question: "What does the --mcp-debug flag do?"
options:
a: "Disables MCP servers"
b: "Debugs MCP server connections with verbose output"
c: "Tests MCP configurations"
d: "Enables MCP auto-discovery"
correct: "b"
explanation: |
The `--mcp-debug` flag enables debug mode for MCP server connections.
MCP debugging techniques:
```bash
claude --mcp-debug # Debug all MCP connections
/mcp # View MCP status inside Claude Code
```
Use when MCP servers aren't connecting or tools aren't appearing.
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.4 Troubleshooting"
anchor: "#mcp-debugging-techniques"
- id: "10-009"
difficulty: "power"
profiles: ["power"]
question: "If an MCP server name validation fails with pattern error, what characters ARE allowed?"
options:
a: "Letters only"
b: "Letters, numbers, underscores, hyphens (max 64 chars)"
c: "Any characters except spaces"
d: "Alphanumeric and periods"
correct: "b"
explanation: |
MCP server names must match: `^[a-zA-Z0-9_-]{1,64}`
Allowed:
- Letters (a-z, A-Z)
- Numbers (0-9)
- Underscores (_)
- Hyphens (-)
- Maximum 64 characters
Not allowed:
- Spaces
- Special characters (@, #, etc.)
- More than 64 characters
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.4 Troubleshooting"
anchor: "#error-1-tool-name-validation-failed"
- id: "10-010"
difficulty: "junior"
profiles: ["junior", "senior", "power"]
question: "What command shows session info including context usage and cost?"
options:
a: "/info"
b: "/status"
c: "/stats"
d: "/session"
correct: "b"
explanation: |
The `/status` command shows session information.
Output includes:
- Model being used
- Context usage percentage
- Session cost
- Token counts
Example output:
`Model: Sonnet | Ctx: 45.2k | Cost: $1.23 | Ctx(u): 42.0%`
Use `/stats` for usage statistics with activity graphs.
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.1 Commands Table"
anchor: "#built-in-commands"
- id: "10-011"
difficulty: "senior"
profiles: ["senior", "power"]
question: "What flag limits maximum API spend in headless mode?"
options:
a: "--cost-limit"
b: "--max-budget-usd"
c: "--spending-cap"
d: "--budget"
correct: "b"
explanation: |
The `--max-budget-usd` flag sets maximum API spend (only with `--print`):
```bash
claude -p "analyze" --max-budget-usd 5.00
```
This prevents runaway costs in automated pipelines.
The operation stops if the budget is exceeded.
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.3 Configuration Reference"
anchor: "#cli-flags-reference"
- id: "10-012"
difficulty: "junior"
profiles: ["junior", "senior", "power"]
question: "How do you run a shell command directly from Claude Code prompt?"
options:
a: "shell: command"
b: "!command"
c: "$command"
d: "run command"
correct: "b"
explanation: |
The `!command` prefix runs a shell command directly.
Quick actions:
- `!command` - Run shell command
- `@filename` - Reference file
- `Ctrl+C` - Cancel operation
- `Ctrl+R` - Retry last
Example: `!git status` runs git status without Claude interpreting it.
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.1 Commands Table"
anchor: "#quick-actions"
- id: "10-013"
difficulty: "senior"
profiles: ["senior", "power"]
question: "What is the correct way to resume a specific session by ID?"
options:
a: "claude --session abc123"
b: "claude -r abc123"
c: "claude --load abc123"
d: "claude -s abc123"
correct: "b"
explanation: |
Use `-r` or `--resume` to resume a specific session:
```bash
claude -r abc123 # Resume session abc123
claude --resume abc123 # Same as above
claude -c # Resume last session (short)
claude --continue # Resume last session (long)
```
Combine with `-p` for scripting: `claude -r abc123 -p "check status"`
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.3 Configuration Reference"
anchor: "#cli-flags-reference"
- id: "10-014"
difficulty: "power"
profiles: ["power"]
question: "What is the recommended .gitignore pattern for Claude Code files?"
options:
a: "Ignore all .claude/ contents"
b: "Ignore settings.local.json and .claude/CLAUDE.md, keep agents/commands/hooks"
c: "Don't ignore anything"
d: "Ignore only agents/"
correct: "b"
explanation: |
Recommended .gitignore:
```gitignore
# Claude Code - Personal (ignore)
.claude/settings.local.json
.claude/CLAUDE.md
.claude/.serena/
# Claude Code - Team (keep/commit)
# .claude/agents/
# .claude/commands/
# .claude/hooks/
# .claude/settings.json
```
This keeps team workflows shared while personal settings stay private.
doc_reference:
file: "guide/ultimate-guide.md"
section: "9.11 Common Pitfalls & Best Practices"
anchor: "#recommended-gitignore"
- id: "10-015"
difficulty: "junior"
profiles: ["junior", "senior", "power"]
question: "What is the daily workflow morning setup according to the guide?"
options:
a: "Just start coding"
b: "Git pull, /status, load project memory, review yesterday's progress"
c: "Run all tests first"
d: "Clear all context"
correct: "b"
explanation: |
Morning setup workflow:
1. Git pull latest changes
2. Review context with `/status`
3. Load project memory (`/sc:load` if using Serena)
4. Review yesterday's progress
This ensures you start with fresh code and full context awareness.
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.6 Daily Workflow & Checklists"
anchor: "#daily-workflow-pattern"
- id: "10-016"
difficulty: "senior"
profiles: ["senior", "power"]
question: "What flag allows Claude's tools to access directories outside the current working directory?"
options:
a: "--include-dir"
b: "--add-dir"
c: "--context-dir"
d: "--load-dir"
correct: "b"
explanation: |
Use `--add-dir` to allow tool access to additional directories:
```bash
claude --add-dir ../shared ../utils
claude --add-dir packages/api
```
By default, Claude can only access files in the current working directory.
Use --add-dir to extend permissions to other directories (e.g., shared libraries in a monorepo).
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.3 Configuration Reference"
anchor: "#cli-flags-reference"
- id: "10-017"
difficulty: "power"
profiles: ["power"]
question: "When Sequential Thinking MCP seems slow or unresponsive, what should you expect?"
options:
a: "It's broken and needs restart"
b: "10-30 second responses are normal due to significant compute"
c: "Switch to a different MCP"
d: "Reduce the query complexity"
correct: "b"
explanation: |
Sequential Thinking uses significant compute - expect 10-30 second responses.
This is not an error, just be patient.
Tips for Sequential:
- Works best with specific, well-defined problems
- Good: "Debug why user authentication fails on mobile"
- Bad: "Make the app better"
The longer response time reflects deeper analysis.
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.4 Troubleshooting"
anchor: "#sequential-thinking-mcp-issues"
- id: "10-018"
difficulty: "junior"
profiles: ["junior", "senior", "power"]
question: "What shortcut opens an external editor for composing long text input?"
options:
a: "Ctrl+E"
b: "Ctrl+G"
c: "Ctrl+O"
d: "Ctrl+L"
correct: "b"
explanation: |
`Ctrl+G` opens an external editor for composing long text.
Useful input shortcuts:
- `Ctrl+A`: Jump to beginning of line
- `Ctrl+E`: Jump to end of line
- `Ctrl+W`: Delete previous word
- `Ctrl+G`: Open external editor
- `Tab`: Autocomplete file paths
The external editor allows comfortable editing of complex prompts.
doc_reference:
file: "guide/ultimate-guide.md"
section: "10.2 Keyboard Shortcuts"
anchor: "#input--navigation"