Skip to content
Back to skills

Duck Orient

ASecurity

Codebase-orientation session with the rubber duck — generate or refresh .claude/orientation.md with interactive exercises. Use when new to a codebase, returning after a break, or says \"duck orient\", \"I'm new to this repo\".

  • 52 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added May 27, 2026
data-aigobashgit

Works with

  • cli

Security analysis

A100/100

Scanned October 1, 2026

npx -y skills add LeeJuOh/claude-code-zero --skill duck-orient --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Duck Orient?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Duck Orient
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/leejuoh-duck-orient/badge)](https://www.skillsdirectory.com/skills/leejuoh-duck-orient)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: duck-orient
disable-model-invocation: true
description: "Codebase-orientation session with the rubber duck — generate or refresh .claude/orientation.md with interactive exercises. Use when new to a codebase, returning after a break, or says \"duck orient\", \"I'm new to this repo\"."
argument-hint: "[refresh]"
allowed-tools: Read Grep Glob Bash(git diff *) Bash(git log *) Bash(git status *) Bash(find *) Bash(bash ${CLAUDE_PLUGIN_ROOT}/skills/ducking/scripts/log-gap.sh *) Bash(bash ${CLAUDE_PLUGIN_ROOT}/skills/ducking/scripts/recent-gaps.sh *) Bash(bash ${CLAUDE_PLUGIN_ROOT}/skills/ducking/scripts/resolve-gap.sh *) Bash(bash ${CLAUDE_PLUGIN_ROOT}/skills/ducking/scripts/read-config.sh *) Bash(bash ${CLAUDE_PLUGIN_ROOT}/skills/ducking/scripts/telemetry-summary.sh *)
---

# Duck — Orientation Mode

**Read first**: [`../ducking/engine.md`](../ducking/engine.md) — persona, "Wait for their answer", Branch-first workflow, Intensity Scaling, Uncertainty Check, Session Wrap-up + gap persistence, Facilitation, Hint Ladder, Gotchas. They apply here.

**Paths** for engine.md's commands: `<scripts>` is `${CLAUDE_PLUGIN_ROOT}/skills/ducking/scripts`, `<data-dir>` is `${CLAUDE_PLUGIN_DATA}`.

**Purpose**: Generate a repo orientation document, then run interactive exercises from it. For developers new to a codebase or returning after a long break.

**Storage**: `.claude/orientation.md` in the project root. Can be committed and shared with teammates.

## Flow

1. **Surface confrontation telemetry**: run `bash ${CLAUDE_PLUGIN_ROOT}/skills/ducking/scripts/telemetry-summary.sh --data-dir "${CLAUDE_PLUGIN_DATA}" 30` and share the one-line result with the user before anything else (e.g., "By the way — Last 30 days: 5 fired, 3 answered, 1 ignored."). This is the answer to "is duck actually doing anything?" (S10) — one line, no elaboration, then move on to orientation.

2. **Check for `.claude/orientation.md`**

3. **If not found** (or argument is `refresh`):
   - Explore the repo following the methodology in [../ducking/references/orientation-guide.md](../ducking/references/orientation-guide.md)
   - Generate `.claude/orientation.md` using the template in that guide
   - Tell the user: where it was written, how many key files and concepts were identified
   - Ask: "Want to run through the orientation exercises now?"
   - If they decline, stop. If they accept, continue to step 4.

4. **If found** (and not refreshing):
   - Read `.claude/orientation.md`
   - Run `bash ${CLAUDE_PLUGIN_ROOT}/skills/ducking/scripts/recent-gaps.sh --data-dir "${CLAUDE_PLUGIN_DATA}" 3` — surfaces gaps logged in past sessions for this repo
   - If output is non-empty: pick the most recent gap and open with a **retrieval check-in** instead of the standard summary: "🦆 Quack — last time your understanding of [gap] was shaky. Can you explain that part now?" Wait for their answer. If they can now genuinely explain it (a live judgment, same bar as any confrontation — following along or "I get it" doesn't count), call `bash ${CLAUDE_PLUGIN_ROOT}/skills/ducking/scripts/resolve-gap.sh --data-dir "${CLAUDE_PLUGIN_DATA}" "<gap text>"` so it stops resurfacing here and at ship-point. If they still can't, leave it unresolved and don't call the script. Then proceed to the exercise sequence.
   - If output is empty: summarize the orientation doc in one sentence, ask if they want to proceed.
   - Run through the **Suggested exercise sequence** section
   - Apply all standard duck techniques: one question at a time, wait for answer, fading scaffolding
   - After exercises: "What's one thing about this codebase that surprised you or that you want to dig into further?"
   - Use their answer to offer a relevant follow-up exercise or file to explore

## Techniques

Prioritize: prediction, teach-back, fading scaffolding. See [../ducking/references/exercise-patterns.md](../ducking/references/exercise-patterns.md) for execution details.

## Closing

Orientation mode does NOT use the standard Confidence Check (no single artifact to rate — the orientation is open-ended). Skip that step. Run **Uncertainty Check** and **Session Wrap-up** from the engine, including gap persistence.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.