A Claude Code plugin for running coding tasks through phase-gated intentional compaction: every phase writes one self-contained artifact to disk, the next phase starts from a fresh session and reads only that artifact.
Questions → Research → Spec (Design + Structure) → Plan → Implement
The point is not only cost. Implement runs steadily under 20% context — the zone
where models actually perform — instead of inheriting 250k tokens of Research
residue. And the artifacts are diffable, reviewable, and become the record of the
decision.
Claude Code has no npm plugin source, so npx qrspi install is a wrapper: it ships
the plugin files in the package and registers them for you — through
claude plugin marketplace add when the claude CLI is on PATH, otherwise by
copying the skills and commands into ~/.claude/ (--copy forces that mode).
Either way you end up with the same /qrspi:new, /qrspi:next and /qrspi:review.
npx qrspi install --dry-run # show what it would do, change nothing
npx qrspi install --copy # skip the plugin system, copy into ~/.claude
npx qrspi uninstall # remove what copy mode installed
npx qrspi path # print the plugin root
npx qrspi check # validate the package
Codex CLI reads the same repository as a plugin — its marketplace file is the
Claude Code one, which Codex accepts as a legacy marketplace, and the manifest is
.codex-plugin/plugin.json beside .claude-plugin/plugin.json:
Codex prefixes plugin skills with the plugin name: the three skills arrive as
$qrspi:qrspi, $qrspi:handoff, $qrspi:token-efficiency; the three commands,
which Codex has no slash-command form for, arrive as skills too — $qrspi:qrspi-new,
$qrspi:qrspi-next, $qrspi:qrspi-review — whose descriptions tell Codex to run
them only when named. Verified on Codex CLI 0.155.1, 2026-09-23. Two differences: Codex skills carry no tool allowlist, so Codex's own
approval mode and sandbox govern what a phase may run; and rule 1 means a new
codex session per phase — codex exec is one-shot by nature, the TUI needs a
fresh start, and codex resume is the thing not to do.
Pin a version with npx qrspi@<version> install (e.g. qrspi@0.5.0); npm i -g qrspi then qrspi install
works too. Which route updates itself: the plugin route does, through /plugin —
npx registers the marketplace from GitHub, because the npx cache it runs from is
pruned; npm i -g registers the installed package directory, which is not. Copy mode
is a snapshot — re-run npx qrspi install to update.
/qrspi:new ENG-1234 <ticket text or URL> # bootstrap thoughts/ + run the Questions phase
/qrspi:next thoughts/ENG-1234-refund-flow # detect the phase, emit the next prompt, gate on quality
In Codex CLI the same two are $qrspi:qrspi-new ENG-1234 <ticket> and
$qrspi:qrspi-next thoughts/ENG-1234-refund-flow, and /qrspi:review <file> is
$qrspi:qrspi-review <file>.
/qrspi:next refuses to advance when the upstream artifact is not ready — unresolved
placeholders, a design with open review comments, a structure step with no
verification command, a plan that fails the zero-context test. That gate is the
feature: the whole workflow is worthless if you rubber-stamp your way through it.
the workflow: six rules, per-phase context budgets, the six artifact templates and the Implement prompt, and three guides — re-entering a phase, reviewing an artifact, landing the PR — as on-demand references
the craft the other two assume: what survives a context reset, the load-bearing-fact test, compressing research without losing its evidence trail, writing a step a zero-context agent can execute
Fresh session at every phase boundary. Never continue.
The artifact is the only channel. If it is not written there, it does not exist
for the next phase.
Artifacts are self-contained. Repo-root paths, explicit symbols, line numbers.
The ticket does not enter Research. Handing the agent the ticket makes it hunt
for evidence supporting a solution it already assumed. The ticket returns in Design.
The 40% rule. Past the threshold, stop and compact — do not push through.
Do not outsource the thinking. Every phase is a checkpoint where you correct.
Three skills, not eight. One skill per phase would be the obvious shape and the
wrong one: every installed skill's description sits in context permanently, and six
near-identical descriptions both burn that budget and compete to trigger. The phases
are sequential and user-driven, so they are slash commands. A skill has to earn its
permanent line by triggering outside QRSPI: token-efficiency does, on any question
about cost; handoff does, on "summarise this session before I lose it" from anyone
running any agent. Knowledge that only matters mid-workflow is a reference, loaded on
demand. Codex is the one exception, and a bounded one: it has no slash commands, so it
lists the three commands' skill forms too — three more descriptions, each saying to run
it only when named, and none of them in Claude Code's context.
The skills practise what they document. Each SKILL.md is an index of ~100
lines; the detail lives in references/ and is loaded only when the question needs
it. A 700-line skill that documents context economy while spending 9k tokens on every
trigger would be an argument against itself.
Handoff — the note a fresh session with zero context reads to continue this work. Load it first, before any other tool call, whenever the ask is to summarise or dump what we found or the state of a session, an investigation, a refactor o…
Run a coding task through the QRSPI workflow — Questions, Research, Spec (Design + Structure), Plan, Implement — one self-contained artifact per phase under thoughts/<task-id>/, each phase a fresh session reading only that artifact. Use …
Diagnose and cut token consumption in agentic coding workflows — context rot, the 40% rule, intentional compaction, subagents as context firewalls, effort and model selection, prompt-caching invalidation, tool-output hygiene, KPIs. Use w…
HumanLayer has not open-sourced its own QRSPI. This is a reconstruction based on
Dexter Horthy's talks (Advanced Context Engineering for Coding Agents) and the
public product documentation. Its predecessor, RPI, is open source.