Deepen
Rewrite a task one layer down (raw data, expert instruments, outside validation) instead of one size up. This is the Depth technique from https://felixrieseberg.com/how-to-be-more-ambitious-a-tutorial-for-humans-with-models/. In Codex, invoke as $deepen <task>.
Standing rules
- Deeper, not bigger. Change the layer the task is worked at, never its size: no new deliverables, sections, audiences, or deliverable length. The rewrite itself stays near one paragraph. Step 4 enforces this.
- Analyse, do not execute. Steps 1-4 produce text only. Run up to five read-only commands in total, reach checks and flag confirmations together (list files,
git log, find the test runner, logs, DB config, CI, a --help or docs lookup for a flag or endpoint you intend to name); make no edits and do no task work. Report each as ran: <command> → <one-line result>; never report an assumed result, and never mark material reachable that no command in this run actually saw. If the working directory is not the system the task is about, say so at the start of the Reach line, still spend the budget confirming the tools you intend to name, and mark every item in (2) and every input the judge is handed to obtain (or in the user's hands, unseen here: <path> for a file the user named); a CI job, suite, fixture or report among the judge's inputs carries both that mark and Step 3's "if present; otherwise <fallback>".
- Do what the professional does; never play them. Name verbs and instruments. Never write "act as", "you are a senior X", "write like X".
- Raw means raw. If the thing in hand could have been produced by compressing something else, it is a digest and the something else is the raw material. If it is unreachable, say what to obtain and how; never pretend it is in hand.
- Instruments, not vocabulary. Name tools, methods, tests, models. An adjective ("rigorous", "thorough") is not an instrument.
- The judge is outside both of us. Something the agent can run, or a documented external reference, with a pass condition that can fail: a condition every outcome satisfies ("or the exception is explained") is not a judge, and a found counterexample is a fail. The bar must be one a correct result can clear, and it must bear on the deliverable's claim, not only an intermediate (a reconciled count does not show that a stated cause is right). A test the agent writes from the same computation that produced the output is self-consistency, not a judge; pair it with at least one number the agent did not produce (a system-of-record total, a published figure, a prior period's reported value), measured over the same window and under the same definition as the agent's figure. A second model family is asked for a counterexample or an independent reproduction with a stated agreement criterion, never for a rating, and is handed only what may leave the organisation (queries, aggregates, coefficients, redacted excerpts), never raw user records, credentials or per-row data. Self-grading and the user's eyeballing as the sole check are forbidden.
- Language. Reply in the user's language, translating the output labels. Keep the rewritten prompt in the language of the original prompt.
Step 1: Get the task
Strip a trailing --run first. Then resolve the argument in this order: a path to an existing file, read it as the prompt; otherwise non-empty text, that is the task; otherwise the most recent message in this conversation that asks for work to be done (a request, a ticket, a plan), not a question about this skill. If none qualifies, ask for the task in one line and stop. Record run intent: --run, "and do it", 「そのまま実行」 or an equivalent means Step 5 executes without asking; a Step 2 exit still wins over it.
Step 2: Triage
Stop with no rewrite when the task is trivial (a rename, a one-line fix, a lookup), already deep (it names its raw inputs, its instruments, and a check rule 6 would accept, even if the pass value is unstated), or purely creative (voice, taste, fiction) where instruments would flatten it. Say which in two to four lines in the user's own terms (do not restate the prompt or justify the exit with this skill's vocabulary), name exactly one thing that would still help if any (the input without which the named instrument, or the piece, cannot be made; two prerequisites that block the same instrument count as one), and end. Those lines are the whole output: no header, no Reach line, no size check, no "Run it now?". Do not inflate such tasks.
Step 3: Answer the four questions
Follow this brief; do not paste it into the output. It is the whole method; the standing rules only sharpen its answers.
I want a deeper version of this task, not a bigger one. Before rewriting it: (1) say what a top professional in this field would do here that I'm not asking for; (2) name the rawest material they would start from instead of what has already been digested for me; (3) name the specific methods and tools they would use; (4) say what, other than you or me, would show the result is right. Then rewrite my prompt to ask for exactly that.
Ground every answer in what an agent with a shell can touch from this working directory: name the file, table, command, tool or reference. A few lines each.
- The unasked move. The step the expert takes that the prompt skips: measure a baseline first, reproduce before fixing, test the assumption against the data, read the source instead of the docs.
- Rawest material. Name it and where it lives (
git log -p on the module, the events table, the HAR file, the RFC, the original paper, the process under a profiler). Mark each item reachable (a reach command saw it), in the user's hands, unseen here, or to obtain: <command, export, access request or instrumentation to add>, with any prerequisite (a key, a retention window that still covers the period).
- Instruments. Named tools, methods, tests, models:
EXPLAIN (ANALYZE, BUFFERS), a flame graph, hyperfine, git bisect run, property-based tests, a Cox model, bootstrap CIs, a replay from the logs, a strict type-checker. At most three unless each answers a different question; bound each one's input (a date window, a sample size, a page cap) so it finishes in one session. Confirm a flag, endpoint or export command exists with one reach command before naming it from memory; when the budget is spent or the tool lives on a system this directory cannot reach, name it (unconfirmed) instead of dropping it. A local absence never stands for absence on that system.
- Outside judge. The check, what it is handed, and its pass condition, stated so a reader could run it: "pass = p95 < 200 ms over three
k6 runs against the recorded baseline", "tsc --strict and the suite exit 0", "the held-out month scores AUC >= 0.8", "a second model family finds no counterexample in five attempts". Mark each input the judge is handed exactly as in (2); a suite, CI job, fixture or report no reach command saw is written "if present; otherwise <the fallback the agent runs>". From Claude Code the second family is codex-server; from Codex it is a Claude run (claude -p '<prompt>'). A judge that can only complete later (next period's actuals, a month not yet closed) is stated as judge pending: <what, when>.
Stretch target (optional). Propose one only when the original states a target ("under 5 minutes") or a current value with a direction ("reduce from 14 minutes"); a size ("ten slides", "2000 字") is a length band, not a goal, and a metric the rewrite introduces is never one. One target, measured by the exact instrument and protocol the judge in (4) uses; one that needs a second experiment or state (a cold cache, a new cohort) is scope. It enters the rewrite's done clause, as pass = <(4)'s pass condition: same quantity, comparison and instrument>; stretch = <value>, only when the original stated a target; otherwise it stays in the analysis as a proposal the user can take up with "edit".
WHEN TO READ references/operator-mapping.md: only if the field is unfamiliar and you cannot name a concrete raw source, instrument or judge from memory, or the Step 4 size check gives no answer for an edge case (its last section).
Step 4: Rewrite, then run the size check
Rewrite the prompt so it asks for exactly (1)-(4): same goal, same deliverable, one layer deeper. Keep the original's language and voice and the deliverable's length band. The rewrite itself stays near one paragraph and within five times the original's length or 120 words / 300 字, whichever is larger: count words for space-delimited text; for Japanese, characters excluding whitespace with each embedded Latin token (Cox, gh run view) counted as one. The obtain step, the instruments and the judge take one or two sentences each, never a numbered acceptance spec. When over the cap, cut prose (a restatement of the original, parentheticals, a second example) before cutting a raw source, an instrument or the judge, and report any remaining overrun on the size line as over: <ratio>, never silently. If raw material must be obtained first, the rewrite carries one stop sentence, "obtain X by Y (the command, export or access request named in (2)); if you cannot, stop and say so", as its own sentence, either right after the opening goal sentence or last in the paragraph. X is exactly what the judge in (4) is handed and cannot run without, plus the raw layer behind any digest the user already holds; every X keeps its Y even when the cap is tight (report over: instead of dropping a Y); a source with an alternative, or one that only enriches the deliverable, is "use if obtainable, otherwise note its absence and continue". Then check, and show the result:
- Count. Deliverables, sections or headings asked for, audiences, and the deliverable's stated length (
n/a when the original states none; write 0 for sections or audiences it does not name; slide, page and character counts belong under length), in the original and in the rewrite. If any grew, cut until it matches. An artifact is a thing the agent would produce and could hand over (a table, a script, a harness, a codebook, a chart, a fitted model, a timing breakdown); a method named as a verb ("fit a Cox model") is not one. An artifact the rewrite names escapes the count only if the rewrite says in place, in one clause, that it is not output (「成果物ではない」, "not part of the memo"); an unmarked artifact is a deliverable and the Count line shows the growth. What is handed only to the judge (queries, aggregates, redacted excerpts) is not an artifact; only what the user receives counts. Prescribing what sections or slides must contain when the original left that open, and minimum item counts or completeness floors, are growth too.
- Trace. Forward: every output noun in the rewrite traces to one in the original (the obtain-step fallback and a stated stretch are the only exceptions). Backward: every raw item in (2) is consumed by an instrument, the judge, or a line of the rewrite; delete the rest. Consistency: every metric the rewrite computes names the column, table or log that yields it, and a before/after comparison uses the same instrument on both sides. Report every deletion, trace-driven or size-driven, as
cut: <what> (<reason>).
- Scan. Remove every hit of: role-play ("act as", "you are a", "write like"); self-grading ("double-check", "review your", "rate your confidence", a pass condition met by "or explained"); add-ons ("also consider", "include a section on", layouts or footers the original did not ask for); vocabulary swaps and padding ("rigorous", "expert-level", "best practice", "comprehensive", "thorough", "in-depth", "robust") with no named instrument. Replace each with the instrument or delete it.
WHEN TO READ references/examples.md: only after a cut left the rewrite thin, or when unsure what deeper-not-bigger looks like in this domain.
Step 5: Hand off
Default: stop after the output and ask whether to run the rewrite (run / edit / no). Do not start the task. If run intent was recorded in Step 1, or the user answers "run", execute the rewritten prompt now, in this session, with the outside judge as the definition of done: the work is not finished until the judge has been executed and its verdict is reported verbatim, or judge pending is reported with what and when. On a run, invoke by name the sibling skill whose shape the rewrite has (diagnose for a reproduction, tdd when tests are the judge) and codex-server to run the judge when it is a second model family; when no sibling fits (a deck, a reconciliation, a write-up), run it here without routing; never route to adversarial-panel unasked, and never let routing delay the run.
Do not apply Altitude or Range. Add at most one closing line ("Also smells of altitude/range: ...") when it clearly does. WHEN TO READ references/lenses.md: only when writing that line, or when the user asks what those lenses mean.
Output format
Translate the labels into the user's language; keep the structure. Omit the Stretch and altitude/range lines when there is nothing to say.
## Deepen: <task in one line>
Reach: [<cwd is not the target system; material lives in ...>;] ran: <command> → <result>; ... (or: nothing run: <why>)
1. Unasked move: ...
2. Rawest material: ... (reachable | in the user's hands, unseen here | to obtain: <how>; prerequisite: <key, retention>)
3. Instruments: ...
4. Outside judge: <check>; handed: <inputs, each marked as in 2>; pass = ... (or: judge pending: <what, when>)
Stretch target: ... (proposal | in the done clause)
```
<rewritten prompt, in the original prompt's language>
```
Deliverables: N → N | sections N → N | audiences N → N | length: <stated|n/a> → <same|n/a> | rewrite: N words|字 (original M, cap C[, over: ratio])
Trace: ok | cut: <what> (<reason>) — Scan: none | removed: ...
Also smells of altitude/range: ...
Run it now? (run / edit / no)
Retrospective
Ask only after the rewritten prompt was actually executed (Step 5 ran) or the user rejected the rewrite with a critique or heavy edits. A bare "no" to "Run it now?", a rewrite accepted and moved on from, and a Step 2 triage exit never trigger it.
-
Consider: did the judge run and pass? Was a raw source wrong or unreachable? Was an instrument a vocabulary swap? Did the size check cut something? Did the user correct the rewrite?
-
Ask the user (in their language; Japanese shown): 「今回の /deepen のフィードバック (1-5評価、気になった点、なければEnter)」 If the rating is < 5, ALWAYS follow up: 「なぜその評価ですか? (具体的に)」 and record the answer verbatim as Rating reason.
-
If feedback is given OR the rewrite was rejected OR issues occurred, prepend an entry to <repo-root>/deepen/feedback/log.md, where <repo-root> is the local clone of this skill repository: read installLocation for hideki-plugins in ~/.claude/plugins/known_marketplaces.json and drop its trailing /my-marketplace; if the file or the clone is absent, say so and skip recording. Create the log with a # Feedback Log header if missing:
## <ISO-8601 timestamp>
- **Skill Version**: <version from frontmatter>
- **Task**: <original prompt, one line>
- **Outcome**: success | partial-success | failure | error
- **Rating**: <N>/5 (or "—")
- **Rating reason**: <verbatim, or "—">
- **Corrections**: <or "none">
- **Issues**: <or "none">
- **User Note**: <verbatim, or "—">
---
-
If the user skips AND nothing went wrong, end without recording.
BDD spec: references/scenarios.feature. Read only when auditing or amending this skill; not needed in a normal run.