Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Execute exactly one eligible Unit in an existing research Workspace; use for stepwise or manual semantic execution when status, Attempt, Artifact, Manifest, checkpoint, and acceptance evidence must remain synchronized.
.claude/skills/willoscar-unit-executor/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 91% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -37% | 0% |
The leading principle is atomicity: one invocation owns one Unit Attempt and either commits one accepted Completion or records one diagnosable block. It never starts a second Unit.
UNITS.csv and the selected Unit row.inputs field.DECISIONS.md when the Unit is checkpoint-gated.outputs field.UNITS.csv, Run Evidence, and optional STATUS.md projection.output/QUALITY_GATE.md when strict quality checks block Completion.Inspect the Workspace through the Pipeline adapter. Select the requested Unit, or the first TODO Unit whose dependencies are DONE. Stop when a HUMAN checkpoint, unresolved Decision, open Attempt, or integrity failure prevents selection.
Completion criterion: exactly one eligible Unit is selected, or one blocking condition is recorded with a concrete next action.
Start semantic work through the adapter, never by editing a status cell:
bashuv run python scripts/pipeline.py mark \ --workspace workspaces/<name> \ --unit-id <U###> \ --status DOING \ --note "starting semantic execution"
Completion criterion: the Unit is DOING and one matching open Attempt owns the execution.
Read the selected Unit's Skill and only the context pointers required by this branch. Produce the declared outputs without changing unrelated Workspace artifacts.
Completion criterion: every required output exists or the failure is specific enough to commit as BLOCKED.
Evaluate the Unit acceptance rule and strict quality contract when requested. Commit through the adapter:
bashuv run python scripts/pipeline.py mark \ --workspace workspaces/<name> \ --unit-id <U###> \ --status DONE \ --note "acceptance checked"
Use BLOCKED with a concrete reason when acceptance fails. Do not directly edit UNITS.csv; the adapter aligns Attempt, Artifact, Manifest, Decision, and status projections.
Completion criterion: Completion is DONE with acceptance and provenance evidence, or BLOCKED with a diagnosable Failure.
Refresh the Workspace projection and report the completed or blocked Unit. Do not claim end-to-end completion and do not start the next eligible Unit.
Completion criterion: exactly one Unit changed execution state during this invocation and the next operator can resume from Workspace files.
UNITS.csv owns dependencies, inputs, outputs,acceptance, checkpoint, and Skill identity.
research-pipeline-runner for automatic continuation across Units.bashuv run python .codex/skills/unit-executor/scripts/run.py \ --workspace workspaces/<name>
--workspace <path>: existing Workspace.--unit-id <U###>: execute a specific eligible Unit.--inputs, --outputs, --checkpoint: Pipeline-runner compatibilityarguments.
--strict: block scaffold-like outputs and write the quality-gate report.Run exactly one strict Unit:
bashuv run python .codex/skills/unit-executor/scripts/run.py \ --workspace workspaces/<name> \ --strict
Equivalent adapter command:
bashuv run python scripts/pipeline.py run-one \ --workspace workspaces/<name> \ --strict
The helper returns 0 for DONE or IDLE, and 2 for BLOCKED or ERROR.
open Attempts before changing status.
DONE Unit has missing outputs, reopen it through the adapter with anexplanatory note; never repair the CSV projection alone.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 4,803 | 5,723 | +19% | 1 | 1 | 0% | 228 | 1,212 | +432% | 0 | 0 | — |
case-02 | fail→fail | 4,594 | 6,157 | +34% | 1 | 1 | 0% | 220 | 1,289 | +486% | 0 | 0 | — |
case-03 | fail→fail | 5,888 | 5,797 | -2% | 1 | 1 | 0% | 188 | 1,201 | +539% | 0 | 0 | — |
case-04 | fail→pass | 13,236 | 9,007 | -32% | 1 | 1 | 0% | 1,919 | 2,348 | +22% | 0 | 0 | — |
case-05 | fail→fail | 12,466 | 7,744 | -38% | 1 | 1 | 0% | 1,832 | 1,329 | -27% | 0 | 0 | — |
case-06 | fail→pass | 5,234 | 4,338 | -17% | 1 | 1 | 0% | 798 | 1,526 | +91% | 0 | 0 | — |
case-07 | fail→pass | 10,485 | 4,166 | -60% | 1 | 1 | 0% | 1,628 | 1,571 | -4% | 0 | 0 | — |
case-08 | fail→pass | 10,006 | 2,313 | -77% | 1 | 1 | 0% | 1,505 | 1,335 | -11% | 0 | 0 | — |
case-09 | pass→pass | 11,416 | 2,009 | -82% | 1 | 1 | 0% | 1,773 | 1,295 | -27% | 0 | 0 | — |
case-10 | pass→pass | 5,158 | 1,992 | -61% | 1 | 1 | 0% | 634 | 1,175 | +85% | 0 | 0 | — |
case-11 | fail→pass | 12,937 | 1,572 | -88% | 1 | 1 | 0% | 1,827 | 1,148 | -37% | 0 | 0 | — |
case-12 | fail→pass | 13,945 | 2,692 | -81% | 1 | 1 | 0% | 2,234 | 1,346 | -40% | 0 | 0 | — |
case-13 | fail→pass | 9,157 | 2,556 | -72% | 1 | 1 | 0% | 1,343 | 1,324 | -1% | 0 | 0 | — |
case-14 | fail→pass | 7,735 | 5,291 | -32% | 1 | 1 | 0% | 1,180 | 1,339 | +13% | 0 | 0 | — |
case-15 | fail→pass | 9,015 | 5,533 | -39% | 1 | 1 | 0% | 1,437 | 1,878 | +31% | 0 | 0 | — |
case-16 | fail→pass | 12,833 | 3,034 | -76% | 1 | 1 | 0% | 1,944 | 1,488 | -23% | 0 | 0 | — |
case-17 | fail→pass | 7,328 | 2,901 | -60% | 1 | 1 | 0% | 1,161 | 1,416 | +22% | 0 | 0 | — |
case-18 | pass→pass | 9,767 | 1,880 | -81% | 1 | 1 | 0% | 1,495 | 1,245 | -17% | 0 | 0 | — |
case-19 | fail→pass | 4,990 | 1,812 | -64% | 1 | 1 | 0% | 737 | 1,241 | +68% | 0 | 0 | — |
case-20 | fail→pass | 6,866 | 2,224 | -68% | 1 | 1 | 0% | 1,085 | 1,288 | +19% | 0 | 0 | — |
case-21 | pass→pass | 13,607 | 2,149 | -84% | 1 | 1 | 0% | 2,041 | 1,285 | -37% | 0 | 0 | — |
case-22 | fail→pass | 10,431 | 3,457 | -67% | 1 | 1 | 0% | 1,567 | 1,527 | -3% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +64 percentage points is the difference between those two pass rates over the 18 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.