Agent skill

Blueprint Refactor Tranche

by receptron in receptron/mulmoterminal

Take ONE target from the plan and land it without changing behaviour: guard it on the untouched code, move it verbatim, prove the equivalence by running both, mutation-sweep the tests, pass every…

MITAuto-check passedDevelopment

Install Blueprint Refactor Tranche

skills CLI
$ npx skills add receptron/mulmoterminal --skill blueprint-refactor-tranche -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install receptron/mulmoterminal blueprint-refactor-tranche --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/receptron/mulmoterminal.git skills-src && mkdir -p .claude/skills && cp -r skills-src/blueprints/refactor/skills/tranche .claude/skills/blueprint-refactor-tranche && rm -rf skills-src

Use ~/.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/

Facts

Skill name
blueprint-refactor-tranche
GitHub stars
237
Token cost
~2.8k tokens
SKILL.md length
1,718 words
Files
2
Skills in repo
31
Repo updated
First seen
Licence
MIT

At a glance

Take ONE target from the plan and land it without changing behaviour: guard it on the untouched code, move it verbatim, prove the equivalence by running both, mutation-sweep the tests, pass every…

  • Works in 11 steps: The approved plan wins → Start clean, and check nobody else is in… → Find the guards before touching anything → …
  • Tasks that involve Pull requests
  • SKILL.md covers 0. The approved plan wins, A ci target, 1. Start clean, and check… and 2. Find the guards before…, plus 10 more sections
  • Calls git and gh

What it does

Blueprint Refactor Tranche is an agent skill from receptron/mulmoterminal. Take ONE target from the plan and land it without changing behaviour: guard it on the untouched code, move it verbatim, prove the equivalence by running both, mutation-sweep the tests, pass every gate, open a PR and merge it on green CI — or decline it with the cost written down.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `cross-review.md`).

It sits in Development, covering Pull requests and Refactoring. The repository describes itself as: Run multiple Claude Code and Codex sessions in parallel — a browser terminal grid that shows which agent needs you. Local, tmux-backed, MIT. The licence is MIT.

When your agent uses it

  • Tasks that involve Pull requests
  • Tasks that involve Refactoring

Example prompts

  • “/blueprint-refactor-tranche”

Workflow steps

11 steps, taken from the step headings in SKILL.md.

  1. The approved plan wins
  2. Start clean, and check nobody else is in the file
  3. Find the guards before touching anything
  4. Write the missing guard against the UNMODIFIED code
  5. Move the text verbatim
  6. Re-point every source-text guard by what it protected
  7. Prove the equivalence — run both, do not reason
  8. Mutation sweep of the tests you wrote
  9. Gates, by exit code
  10. Pull request, CI, merge
  11. Record the round

What it can do on your machine

Read from SKILL.md and the folder at commit b3f6ff0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Blueprint Refactor Tranche loads about 2.8k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 1,718 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~77
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from receptron/mulmoterminal at commit b3f6ff0, republished under its MIT licence (© receptron). 1,718 words, ~2,766 tokens.

Download SKILL.mdSave it as .claude/skills/blueprint-refactor-tranche/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
blueprint-refactor-tranche
description
Take ONE target from the plan and land it without changing behaviour: guard it on the untouched code, move it verbatim, prove the equivalence by running both, mutation-sweep the tests, pass every gate, open a PR and merge it on green CI — or decline it with the cost written down.

One target, one change

This step repeats. Each round does one target from .blueprint/targets.json — the first whose status is todo — and nothing else. The whole claim of the change is "this behaves the same", and that is not provable by reading. What follows is how it is proved instead.

Read .blueprint/spec.md (the plan the person approved), .blueprint/gates.json (the gates) and .blueprint/answers.json (merge: whether to merge on green CI).

0. The approved plan wins

The person may have changed the plan by talking to it at the review gate, which rewrites spec.md but not targets.json. If the two disagree — a target added, dropped, reordered or reworded — bring targets.json in line with spec.md first. Keep finished targets as they are.

A ci target

Close the gaps in .blueprint/ci.json with the smallest change: prefer adding a step to the workflow that already installs dependencies over a new workflow, and use the install command from gates.json. Every workflow gets a top-level permissions: block (default contents: read; a job gets more only if it needs it) and actions/checkout gets persist-credentials: false. Then continue from step 8 — the pull request's own checks are the proof that the new CI runs and passes.

1. Start clean, and check nobody else is in the file

  • On the default branch, git pull --ff-only. Branch: blueprint/<target id>.
  • gh pr list --state open and git log origin/<default> --oneline -20 -- <files>. A pull request merged an hour ago is in neither your tree nor the open list. If someone else is changing these lines, mark the target skipped with that as the note, and stop the round.
  • Confirm the target is still reachable: grep for its caller or renderer, not its import.

2. Find the guards before touching anything

bash
grep -rln "<file basename>" test/ tests/ src/ --include='*.test.*' --include='*.spec.*'
grep -rn "'<identifier>'\|\"<identifier>\"" test/ tests/ src/

Sort the hits: behavioural tests call the code and break loudly. Source-text guards (a test that reads a file and looks for a string, a census, an AST scan) fail open: when the text moves they go vacuously green, still running and checking nothing. Each of those has to be re-pointed by what it protected (step 5), and a guard should derive its population rather than carry a list written down.

3. Write the missing guard against the UNMODIFIED code

If the behaviour you are about to move — above all an ordering or a shared answer that holds only because the code is adjacent — has no test, write one now, on the untouched code, where it passes. Then break-verify it on the untouched code: insert exactly the defect the move could introduce and watch it go red. A guard written after the move pins the new shape and proves nothing about the old one.

Commit the guard on its own (test: prefix) before the move. For a test-kind target this is the whole change: tests for untested, high-value logic, each one mutation-verified (step 7).

4. Move the text verbatim

  • The moved body is the original text with mechanical renames only. No "while I'm here" tidying — a cleanup mixed into a move destroys the only cheap proof you have.
  • Pick the move from what the call site does on each path. Does this path already await?
    • An async helper suspends its caller even on a path that reaches no await: one more microtask before everything after it. Write the helper synchronous first; keep the await at the call site.
    • A write to shared state (a module singleton, process.env, a registry) and the call that reads it must stay in one continuation. If the region does I/O and then writes, split it: the async half returns a plan, a synchronous half applies it at the call site.
    • let x; filled by the block below it → const x = f(…): the canonical, checkable move.
  • Prove only the control flow changed: a multiset of the file's code lines against the default branch, comments stripped, should show only the inversion.
    bash
    strip() { grep -vE '^\s*(//|\*|/\*)' "$1" | sed 's/[[:space:]]//g' | grep -v '^$' | sort; }
    diff <(git show origin/<default>:<file> | strip /dev/stdin) <(strip <file>)

5. Re-point every source-text guard by what it protected

Never by where it sat. For each moved anchor: what defect was this there to catch, and where can that defect now appear? Sometimes that is two places — inside the helper and around its call. Break-verify each re-pointing.

6. Prove the equivalence — run both, do not reason

In order of preference:

  1. Replica differential. Copy the OLD code verbatim into a throwaway harness and run it beside the new code over generated inputs — not inputs you chose; the ones you would think of are the ones you already believe are equal. Compare the whole result (JSON.stringify both sides), and treat a throw as an outcome (ok:<value> vs threw:<message>). Generate deliberately: missing keys, null elements, falsy-but-not-nullish (0, '', false), both alternatives of a ??/|| chain present at once, the same value at two positions, keys every object has (constructor, __proto__).
  2. Drive it through the seam the codebase already has (an injected clock, client, or realpath).
  3. Verbatim body plus the guards — and say out loud that this is all it rests on.

Mutation-verify the harness before trusting its zero: change one edited line in the new code and the harness must report differences. A zero it cannot move off is not a measurement.

Before deleting the harness, harvest what outlives it: the generator (which inputs matter) and the property (what must hold) become a permanent test.

7. Mutation sweep of the tests you wrote

A test that cannot fail is documentation with a green tick. For each decision you touched:

  1. Hash the file. Confirm the anchor matches exactly once.
  2. Apply the mutation, re-read the file, confirm the old text is gone (it landed) and that it runs (a duplicate object key or a compile error is not a behaviour mutation).
  3. Run the tests; read the exit code and the thrown assertion.
  4. Restore; compare the hash back.

Worth running: the helper suspends before its first statement; each guard dropped; each branch's answer swapped; a value handed on as a copy instead of the live object. Record mutations that stay green rather than silently dropping them — each is either a hole to close or a sentence saying why no input can tell the two apart.

Show full SKILL.md (703 more words)Show less

8. Gates, by exit code

Run the install and every gate from .blueprint/gates.json, and read $? — never the last line of output. The typecheck is its own gate; a test runner that only transpiles runs code with type errors happily.

9. Pull request, CI, merge

  • Commit with refactor: (or test: / fix: for what it is), adding files one by one — never git add ..
  • Push the branch. Open a PR whose body says: what the region was, which invariant was at risk, how behaviour was proved (and over what inputs), which mutations went red, and what was not proved. Say what moved and how, not by how much — no line counts.
  • Cross-review with Codex, when it is available — follow cross-review.md beside this file. Dispatch the first round as soon as the pull request is pushed; it runs alongside CI, not after it.
  • gh pr checks <n> --watch. Read a red check and fix it; never retry blindly, never merge while pending. Merge only when CI is green and the Codex review ended clean (or could not run, and the pull request says why).
  • If merge is CI が緑なら自動でマージする: gh pr merge <n> --merge --delete-branch. Otherwise leave it open.
  • Back to the default branch, git pull --ff-only, and confirm the gates are still green there.

10. Record the round

In .blueprint/targets.json, set this target's status to done with "pr": "<url>" and "review": "codex: clean after <n> rounds" (or why there was no Codex review). In .blueprint/spec.md add one line under the target saying how it went.

Then stop — end your turn here, even when there are targets left and even when an answer you just got reads like "carry on". The executor checks this round and starts the next one in a fresh session; a second target done in this session skips that check and the next round's fresh context.

When to decline instead

Declining with the cost written down is a real result and beats a move whose behaviour is only argued. Set status to skipped and write note — what it would buy, what the risk is, and what would have to be established first — then delete your branch (git branch -D, only the one you made) and return to the default branch. Decline when:

  • you cannot prove the move preserves behaviour;
  • the extracted piece is itself over the bound (the finding moved rather than cleared);
  • nothing reaches the code — say so and do not delete it on your own authority;
  • someone else is changing the same lines.

Ask the person (and stop) only when a decision is theirs: a gate red for reasons outside this change, a fix that would change behaviour, or a target the plan did not foresee.

Make it a pick, not an essay. Put the evidence in the question — the lines, the caller that reaches them, what you measured — and offer the options as CHOICES, each with what it costs and risks, and RECOMMEND the one you would take. The decisions this work stops for, and their usual options:

decisionoptions
a declared type is narrower or wider than what arrivesfix the type / narrow the code to it / leave it
something looks like a bugfile an issue / leave it
a fix would change behaviourchange it / keep today's behaviour
a costed noaccept it / do it anyway

Done when the check passes: every finished target's PR is merged (or open, if the person merges), the clone is back on a clean, up-to-date default branch, every gate is green, and one more target is finished than before this round.

Always

  • One target per round. Do not start the next one — the executor starts the next round. An answer from the person (say, that they merged the pull request) finishes THIS target; it is not a go-ahead for the next.
  • Never force-push, rebase or squash. Never push to the default branch. Never delete a branch you did not create.
  • Never silence a lint or type error to get green (eslint-disable, @ts-ignore, as): fix the cause or decline.
  • When you need a decision, ask it through the blueprint question tool and stop. Do not guess.
  • Say you are done by stopping; the executor runs the check. Do not claim success yourself.

© receptron, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in blueprints/refactor/skills/tranche of receptron/mulmoterminal.

  • SKILL.md
  • cross-review.md

Open the folder on GitHubat commit b3f6ff0

Compare with similar skills

Blueprint Refactor Tranche 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.

Blueprint Refactor Tranche compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Blueprint Refactor Tranche this skillreceptron/mulmoterminal237—~2.8kAutomated safety check: PassMIT
Smell CheckZhen-Bo/smell-check240—~1.5kAutomated safety check: PassMIT
Coding Agentmastra-ai/mastra29k—~2.3kAutomated safety check: PassCustom licence
Code ReviewerYikai-Liao/symusic1891 repos~1.3kAutomated safety check: PassMIT
Typescript React ReviewerSuFxGIT/scoutarr115—~1.7kAutomated safety check: PassNone
Memtrace Change Impact Analysissyncable-dev/memtrace-public489—~1.4kAutomated safety check: PassCustom licence

Similar skills

  • Smell Check

    Zhen-Bo/smell-check

    Runs a smell-first audit on a user-chosen path set: measures structure metrics, applies a named size profile, and reports code smells and test smells with evidence strength.

    240 GitHub stars~1.5k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Coding Agent

    mastra-ai/mastra

    Authoring playbook for building agents that write, edit, review, or refactor code.

    29k GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Code Reviewer

    Yikai-Liao/symusic

    Analyzes code diffs and files to identify bugs, security vulnerabilities (SQL injection, XSS, insecure deserialization), code smells, N+1 queries, naming issues, and architectural concerns, then…

    189 GitHub starsUsed in 1 repo~1.3k tokens
    DevelopmentAuto-check passed
  • Expert code reviewer for TypeScript + React 19 applications.

    115 GitHub stars~1.7k tokensUpdated 6 mo ago
    DevelopmentAuto-check passed
  • Memtrace Change Impact Analysis

    syncable-dev/memtrace-public

    Compute what a planned source-code change will break — blast radius, affected processes, cross-repo callers, temporal stability, and Cortex decision-memory constraints — and produce a risk-rated…

    489 GitHub stars~1.4k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Develop Microfeed

    microfeed/microfeed

    Develop and contribute changes to the microfeed repository safely from branch creation through validation, commit, push, and draft pull request.

    4.1k GitHub stars~2.1k tokensUpdated 3 days ago
    DevelopmentAuto-check passed

More from receptron/mulmoterminal

All 31 skills in this repo
  • Mulmoterminal Bug Report

    receptron/mulmoterminal

    Help desk for "MulmoTerminal is broken". An agent skill from receptron/mulmoterminal.

    237 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Mulmoterminal Decisions

    receptron/mulmoterminal

    Check what this project's humans have already been asked, and how they answered, before asking them something similar.

    237 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Mulmoterminal Help

    receptron/mulmoterminal

    Help desk for questions about MulmoTerminal itself — what it can do, how a feature or a part of the screen works, how to set something up, what is new in this version or in the latest one.

    237 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Mulmoterminal Notify

    receptron/mulmoterminal

    Decide which moments MulmoTerminal beeps or pushes for, and what each one plays — soundKinds, sounds and pushKinds in ~/.mulmoterminal/config.json, plus a per-project sound / sounds in…

    237 GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Mulmoterminal Theme

    receptron/mulmoterminal

    Build a colour scheme of your own for MulmoTerminal — one that joins Midnight, Nord, Daylight and Solarized in Settings' theme picker and can then be pinned per project.

    237 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Blueprint Ask Answer

    receptron/mulmoterminal

    Answer each question from the named documents only, quoting where the answer is written, or saying plainly that the documents do not say — changing nothing yet.

    237 GitHub stars~780 tokensUpdated today
    Auto-check passed

Categories

Questions about Blueprint Refactor Tranche

What does Blueprint Refactor Tranche do?

Take ONE target from the plan and land it without changing behaviour: guard it on the untouched code, move it verbatim, prove the equivalence by running both, mutation-sweep the tests, pass every…. Blueprint Refactor Tranche is an agent skill from receptron/mulmoterminal. Take ONE target from the plan and land it without changing behaviour: guard it on the untouched code, move it verbatim, prove the equivalence by running both, mutation-sweep the tests, pass every gate, open a PR and merge it on green CI — or decline it with the cost written down.

When should I use Blueprint Refactor Tranche?

Blueprint Refactor Tranche fits situations like: tasks that involve Pull requests; tasks that involve Refactoring.

How do I install Blueprint Refactor Tranche in Claude Code?

Run `npx skills add receptron/mulmoterminal --skill blueprint-refactor-tranche -a claude-code`. Or copy the skill folder (blueprints/refactor/skills/tranche in receptron/mulmoterminal) into .claude/skills/blueprint-refactor-tranche in your project. Claude Code loads it when a task matches its description.

How do I install Blueprint Refactor Tranche in Codex?

Run `npx skills add receptron/mulmoterminal --skill blueprint-refactor-tranche -a codex`. Or copy the skill folder (blueprints/refactor/skills/tranche in receptron/mulmoterminal) into .agents/skills/blueprint-refactor-tranche in your project. Codex loads it when a task matches its description.

Can I use Blueprint Refactor Tranche in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add receptron/mulmoterminal --skill blueprint-refactor-tranche -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/blueprint-refactor-tranche, .gemini/skills/blueprint-refactor-tranche, .github/skills/blueprint-refactor-tranche and .opencode/skills/blueprint-refactor-tranche in your project.

What does Blueprint Refactor Tranche need to run?

Going by SKILL.md and its folder, Blueprint Refactor Tranche needs the command-line tools its instructions call (git and gh).

Does Blueprint Refactor Tranche access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Blueprint Refactor Tranche safe to install?

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.

What licence does Blueprint Refactor Tranche use?

Blueprint Refactor Tranche is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Blueprint Refactor Tranche use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Blueprint Refactor Tranche?

Skills that share tags, products or a category with Blueprint Refactor Tranche: Smell Check (Zhen-Bo/smell-check, 240 stars), Coding Agent (mastra-ai/mastra, 29k stars), Code Reviewer (Yikai-Liao/symusic, 189 stars) and Typescript React Reviewer (SuFxGIT/scoutarr, 115 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Blueprint Refactor Tranche?

receptron (a GitHub organization) maintains it in receptron/mulmoterminal, which has 237 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on October 10, 2026.

Source: receptron/mulmoterminal on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.