Translation Diff Translate
Devolutions/UniGetUI
Translates a sparse UniGetUI JSON language patch, writes completed entries into the working copy, preserves placeholders and terminology, and prepares the patch for merge-back.
Translate a captured request into a concrete, bounded change specification (SPEC.md) with per-requirement acceptance checks and recorded assumptions.
$ npx skills add AHepi/DeepReason --skill dr-spec-change -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AHepi/DeepReason dr-spec-change --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/AHepi/DeepReason.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/dr-spec-change .claude/skills/dr-spec-change && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "dr-spec-change" agent skill from https://github.com/AHepi/DeepReason/tree/main/.claude/skills/dr-spec-change into .claude/skills/dr-spec-change/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dr-spec-change", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/AHepi/DeepReason/tree/main/.claude/skills/dr-spec-changeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add AHepi/DeepReason --skill dr-spec-change -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AHepi/DeepReason dr-spec-change --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AHepi/DeepReason.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/dr-spec-change .agents/skills/dr-spec-change && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dr-spec-change" agent skill from https://github.com/AHepi/DeepReason/tree/main/.claude/skills/dr-spec-change into .agents/skills/dr-spec-change/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dr-spec-change", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AHepi/DeepReason --skill dr-spec-change -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AHepi/DeepReason dr-spec-change --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AHepi/DeepReason.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/dr-spec-change .cursor/skills/dr-spec-change && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "dr-spec-change" agent skill from https://github.com/AHepi/DeepReason/tree/main/.claude/skills/dr-spec-change into .cursor/skills/dr-spec-change/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dr-spec-change", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/AHepi/DeepReason.git --path .claude/skills/dr-spec-change--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add AHepi/DeepReason --skill dr-spec-change -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AHepi/DeepReason dr-spec-change --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AHepi/DeepReason.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/dr-spec-change .gemini/skills/dr-spec-change && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "dr-spec-change" agent skill from https://github.com/AHepi/DeepReason/tree/main/.claude/skills/dr-spec-change into .gemini/skills/dr-spec-change/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dr-spec-change", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install AHepi/DeepReason dr-spec-changeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add AHepi/DeepReason --skill dr-spec-change -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AHepi/DeepReason.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/dr-spec-change .github/skills/dr-spec-change && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "dr-spec-change" agent skill from https://github.com/AHepi/DeepReason/tree/main/.claude/skills/dr-spec-change into .github/skills/dr-spec-change/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dr-spec-change", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AHepi/DeepReason --skill dr-spec-change -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AHepi/DeepReason dr-spec-change --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AHepi/DeepReason.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/dr-spec-change .opencode/skills/dr-spec-change && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "dr-spec-change" agent skill from https://github.com/AHepi/DeepReason/tree/main/.claude/skills/dr-spec-change into .opencode/skills/dr-spec-change/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dr-spec-change", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
dr-spec-changeTranslate a captured request into a concrete, bounded change specification (SPEC.md) with per-requirement acceptance checks and recorded assumptions.
Dr Spec Change is an agent skill from AHepi/DeepReason. Translate a captured request into a concrete, bounded change specification (SPEC.md) with per-requirement acceptance checks and recorded assumptions. Use after REQUEST.md exists or gains amendments.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The licence is MIT.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 9607fba. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dr Spec Change loads about 2.6k tokens when it runs. Until then it costs about 53 tokens; SKILL.md has 1,378 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from AHepi/DeepReason at commit 9607fba, republished under its MIT licence (© AHepi). 1,378 words, ~2,602 tokens.
.claude/skills/dr-spec-change/SKILL.md (or your agent's skills folder).Input: REQUEST.md (re-read it in FULL first, including amendments). Output: SPEC.md mapping every requirement to concrete work with a machine-decidable acceptance check. This is the only phase where interpretation happens, and it happens in writing.
For EVERY R in REQUEST.md (no skips — walk the numbers in order), write a spec item: target files, behavior before → behavior after, and an acceptance check (a command + expected output, or an artifact-exists-with-content check). A requirement with no acceptance check is not specified yet.
Resolve each open question Q:
dr-ask-the-right-question and run each candidate
question through it: the record or the operator's recorded values
answer most of them, and only survivors of its dominance test
belong in the batch (each with a recommendation).Frozen-surface contact forecast — mandatory, in writing. Run
python tools/blast_radius.py --files <every planned target file> --symbols <every planned target symbol> (Rung G6,
docs/map/INV-frozen-surfaces.md) and record its
frozen_surface_contacts/frozen_adjacent_contacts result in
SPEC.md's "Frozen-surface contact forecast" section; "none expected"
counts, but only after actually running the gate — a hand-checked
"none" is no longer sufficient once the gate exists to check it.
ANY plausible contact (the gate's frozen_surface_verdict: CONTACT,
or an UNKNOWN reachability entry the gate cannot resolve) stops the
tranche HERE: commit SPEC.md and obtain the operator's words before
dr-plan-steps runs. The STOP message — and this document's own
Frozen-surface contact forecast / Decision sheet sections — MUST
embed tools/blast_radius.py's computed frozen_surface_contacts
(and frozen_adjacent_contacts) list verbatim, never a hand-written
summary of it. A STOP that describes contact without pasting the
tool's own list is not this checkpoint — the words the operator
gives in reply are words given over a disclosed, computed surface,
never an inferred one (the design premise of
experiments/2026-08-10-change-blast-radius-analysis/REQUEST.md).
Contact discovered at validation is three commits too late —
the tranche that proved it (docs/ERRATA_EXECUTOR.md X9, XE1) was
technically perfect and still could not deliver, and the 2026-08-09
incident (same file, "the frozen-surface stop did not hold") shows a
STOP already written in prose is not a STOP that was obeyed — the
gate exists precisely so that finding cannot be silently outrun by
memory three steps later.
Record-observable guardrails, for changes that add data to the
typed record: the absence-tolerant READER lands before the writer
emits, so every existing committed root stays valid with the new
data absent (the rung-4 guardrail generalized; X8 is the precedent
for keeping new fields out of frozen digests entirely). A new
typed-record OBSERVABLE (field, record type, finding) needs a sweep
probe proposed for it in the spec: a sweep that never looks at the
new data reports "byte-identical" trivially while proving nothing
about it. The probe change is its own SEPARATE commit — extending
tools/root_sweep.py resets the byte-identity baseline, so it never
rides the same commit as the src/ change it would judge, gets its
own before/after capture on an unchanged tree, and follows the
tool's probe rule (assert the attribute exists before reading it).
Build every proposed test, check, and probe to dr-execute-step's
"Durable tests, checks, and probes" rules — they must survive
dramatic repo changes, failing only when the guarded claim stops
being true.
Blast-radius census — mandatory, pasted, BEFORE any fixture-drift
prediction. Tool-backed (Rung G6): the same
tools/blast_radius.py invocation step 3 already ran also reports
consumers (tests, map documents, the qualification digest, the
wheel-smoke pins) for every declared target — paste its
consumers.tests/consumers.map_checks fields into SPEC.md's
"Blast-radius census" section and classify EVERY hit: EXPECTED TO
MOVE (the design predicts it) or MUST NOT MOVE. The manual grep
grep -rn "<symbol>" tests/ docs/map/is RETAINED as a required cross-check specifically for anything the
gate's own reachability field reports UNKNOWN, or for a symbol
shape the gate cannot resolve (a role-dispatch string label rather
than a Python identifier, for instance) — the gate augments the
census, it does not remove the author's own judgment where the gate
has said, in writing, that it cannot judge. A drift forecast written
without this census is recall, and recall missed in two consecutive
specs — under the MORE capable model both times (rung-5 PARKED P6):
rung 4's prediction was too narrow; rung 5's spec predicted nothing
and missed a test pinning "exactly one backend", the exact state
that rung existed to change. The full gate caught both, three
commits later than the census would have.
DESIGN-AND-STOP shape. When the deliverable IS the spec (a [DESIGN-AND-STOP] request), two more sections are mandatory, and their discipline is measure-don't-reason (the rung-4 M1-M5 precedent, the one design spec that survived contact with the tree unchanged):
Set the budget: total estimated changed lines and commits. If over
~300 lines, propose a split into ordered sub-tranches (each with
its own delivery) rather than one sprawling one. The Budget
section's headline number(s) MUST equal the computed sum of the
itemized per-item estimates above — paste the arithmetic (e.g.
python3 -c "print(sum([...]))"), never restated by hand. This is
the number tools/diff_budget.py's DIFF_BUDGET_RESULT_V1.verdict
is checked against at every [COMMIT] step (dr-execute-step); a
headline that contradicts its own itemization defeats the ceiling
before the first commit (Rung S5, REQUEST.md Amendments 2/3: its
headline said 220-300, its own itemization summed to 435).
Anti-invention pass: re-read SPEC.md and delete anything that does not trace to an R or C number. If it felt necessary, it is either an assumption (record it) or scope creep (PARKED.md).
Rubric pass — the last act before committing. Re-read the finished SPEC.md as a REVIEWER, not the author; any "no" routes back to that step before commit:
# Spec for: <request headline>
Traces: every item cites R/C numbers. Untraceable items are bugs.
## Items
S1 (R1): <files> | before: <...> | after: <...>
accept: <command> -> <expected>
S2 (R2, C1): ...
## Assumptions (operator may override)
A1 (Q1): <chosen reading, one line, and why it is the smallest>
## Questions for operator (STOP if non-empty)
...
## Out of scope (explicit)
<nearest tempting neighbors, each with "not requested">
## Frozen-surface contact forecast
none expected — checked against INV-frozen-surfaces.md
| <surface>: <why contact is plausible> (STOP — operator words
required before dr-plan-steps)
## Blast-radius census
<symbol/file>: <test or map check hit> -> EXPECTED TO MOVE |
MUST NOT MOVE
(every grep hit listed, none omitted; "no hits" is a valid census)
## Measurements (DESIGN-AND-STOP only)
M1: <command> -> <pasted output> — supports <claim>
## Options (DESIGN-AND-STOP only)
A: <files, frozen contact, ~lines, risk> | rejected: cites M<n>
B: ... | CHOSEN: cites M<n>
## Budget
~<n> lines, <n> commit(s). Frozen surfaces touched: none | <flagged>
Rubric: <n>/<n> yes© AHepi, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/dr-spec-change of AHepi/DeepReason.
Open the folder on GitHubat commit 9607fba
Dr Spec Change next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Dr Spec Change this skillAHepi/DeepReason | 141 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Translation Diff TranslateDevolutions/UniGetUI | 26k | — | ~934 | Automated safety check: Pass | MIT | |
| Plane UI Translationmakeplane/plane | 61k | — | ~16k | Automated safety check: Pass | AGPL-3.0 | |
| Visa Doc Translateaffaan-m/ECC | 276k | 4 repos | ~1k | Automated safety check: Pass | MIT | |
| Translatorholaboss-ai/holaOS | 11k | — | ~617 | Automated safety check: Pass | Custom licence | |
| Generate Translationspayloadcms/payload | 45k | — | ~1.1k | Automated safety check: Pass | MIT |
Devolutions/UniGetUI
Translates a sparse UniGetUI JSON language patch, writes completed entries into the working copy, preserves placeholders and terminology, and prepares the patch for merge-back.
makeplane/plane
Sets the rules for translating and updating Plane's UI strings across locales: do-not-translate terms, plural forms, placeholders and AI translation review.
affaan-m/ECC
Translate visa document images (bank deposit, employment, income, and retirement certificates; HEIC, PNG, or JPG) into English via OCR and produce a bilingual PDF pairing the original image with a…
holaboss-ai/holaOS
Translate content across languages while preserving brand voice and cultural nuance.
payloadcms/payload
A skill your agent uses when new translation keys are added to packages to generate new translations strings
doxygen/doxygen
Keeps all Doxygen and Doxywizard translations up to date across three mechanisms: translator C++ classes (src/translatorxx.h), Qt .ts locale files for the Doxywizard GUI (addon/doxywizard/i18n/)…
AHepi/DeepReason
Orchestrate a Steven Pinker-grounded workflow for teaching, explanatory writing, or material that must do both.
AHepi/DeepReason
Design, deliver, or audit explanations and lessons with a Pinker-informed focus on phenomena, the curse of knowledge, concrete models, active reasoning, feedback, and revision.
AHepi/DeepReason
Draft, revise, teach, or audit expository prose using Pinker's cognitive approach to style: classic presentation, reader modeling, curse-of-knowledge repair, coherent information order, deliberate…
AHepi/DeepReason
Build a battery of concrete instances BEFORE writing or evaluating any definition, pin, or semantic clause (Reed step 1).
AHepi/DeepReason
Rules for writing, editing, and retiring skill and workflow files for LLM agents.
AHepi/DeepReason
Entry point for any DeepReason problem. An agent skill from AHepi/DeepReason.
Translate a captured request into a concrete, bounded change specification (SPEC.md) with per-requirement acceptance checks and recorded assumptions. Dr Spec Change is an agent skill from AHepi/DeepReason.md) with per-requirement acceptance checks and recorded assumptions.
Run `npx skills add AHepi/DeepReason --skill dr-spec-change -a claude-code`. Or copy the skill folder (.claude/skills/dr-spec-change in AHepi/DeepReason) into .claude/skills/dr-spec-change in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AHepi/DeepReason --skill dr-spec-change -a codex`. Or copy the skill folder (.claude/skills/dr-spec-change in AHepi/DeepReason) into .agents/skills/dr-spec-change in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AHepi/DeepReason --skill dr-spec-change -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dr-spec-change, .gemini/skills/dr-spec-change, .github/skills/dr-spec-change and .opencode/skills/dr-spec-change in your project.
Going by SKILL.md and its folder, Dr Spec Change needs the command-line tools its instructions call (python3). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Dr Spec Change is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Dr Spec Change: Translation Diff Translate (Devolutions/UniGetUI, 26k stars), Plane UI Translation (makeplane/plane, 61k stars), Visa Doc Translate (affaan-m/ECC, 276k stars) and Translator (holaboss-ai/holaOS, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AHepi (a GitHub user) maintains it in AHepi/DeepReason, which has 141 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on September 10, 2026.
Source: AHepi/DeepReason on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.