paulnsorensen/easy-cheeseMIT9 files

Cure

Apply selected fixes from an /age report, findings list, or CI failure. Run the project gates and hand a clean result to /plate. Use when the user wants selected findings resolved. Do not use for review, test authoring, or direct publication.

Specification
Skill ID
paulnsorensen/easy-cheese/cure
Publisher
paulnsorensen
Repository
easy-cheese
Installs
0
Files
9
License
MIT
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

paulnsorensen/easy-cheese/cureInstalls these files
  • SKILL.md
  • phase-contract.yaml
  • references/auto-mode.md
  • references/commands.md
  • references/cure-discipline.md
  • references/domain-model-correction.md
  • references/post-pr-writeback.md
  • references/selection.md
  • scripts/cure.pyz

What this skill tells the agent

/cure

Use this skill after /age, failed validation, or a request to fix selected review findings.

Phase entry

Run python3 skills/cure/scripts/cure.pyz wheypoint-resolve --ref <slug>. authoritative uses the record; its working_context is the first batched tilth_read. not-found proceeds cold; legacy shows its source and slug, then proceeds. gated, ambiguous, and error stop and show the payload. Show advisory stale-commit and grounded-path-missing findings.

Inputs

Accept an /age slug, a pasted findings list, a CI failure summary, or a scoped fix instruction.

After phase entry, /cure <slug> reads .cheese/age/<slug>.md.

Adopt a locked selection from /age or /affinage. The canonical format is in references/selection.md#handoff-from-age. Otherwise, apply the recommended composite from references/selection.md. That file also defines the selection gate conditions.

For an older report that omits finding fields, read references/selection.md § Older report shape.

Optional flags:

  • --safe — Restore the selection gate and the final publication gate.
  • --open-pr — Permit /plate to publish when no PR exists.
  • --auto — Use automatic mode from /cook --auto. Skip user selection. Require --stake <floor>.
  • --stake <floor> — Set the severity floor for --auto. Accept blocker, high, medium+, or all. Ignore this flag without --auto.
  • --hard — Pass the metacognitive gate flag to /plate.

Read references/selection.md for selection rules.

Read `harness-portability.md` for portability rules. Slash commands are host renderings, not the control model.

Flow

  1. Load. Read handoff_context.source_report first when the handoff supplies it. Confirm that the file exists and belongs to the named source_skill. Stop with status: halt: unreadable source report when this check fails. Read .cheese/age/<slug>.md when the handoff supplies only a slug. Take the typed path only when the handoff also supplies a CurdPlan. Call validate_curd_plan on that plan. Stop before dispatch when the plan or its digest is invalid. Do not rebuild a plan from a legacy manifest. Take the report path in every other case.
  2. Select. Adopt a locked selection from /age or /affinage. Otherwise, apply the recommended composite. Read references/selection.md for verbs and gate conditions. Expand a user verb with this command:
   python3 skills/cure/scripts/cure.pyz findings parse-selection --report <path> --selection "<verb>"

Use the same bundle command when the host only ships the bundle. Render the coder brief per references/selection.md § Coder brief.

  1. Apply. Fix one logical group at a time. Implement each recommendation: as the locked decision; rebut only under ### Deferred. Confirm each anchor with a fresh bounded read. The report path stops here and continues at step 4. The typed path also invokes easy_cheese.shared.workflow.cure with the validated plan. Add one CureDiagnosisBinding for each selected curd. Create each binding with bind_diagnosis(plan, curd, diagnosis_result). Use only a confirmed DiagnosisResult. Point the binding to the exact plan and curd digest. Set DiagnosisDisposition.CONFIRMED. A plausible but unrelated diagnosis does not unlock Cure. cure resolves each ArtifactRef with resolve_artifact. It accepts only observation-only CurdResultWriterView output. It uses normalize_agent_output to finalize one CurdResult per selected curd. It also finalizes executor failures.
  2. Validate. Run the narrowest test that proves each fix. Then run the relevant project gates. These gates include lint, type checks, and builds. When the handoff has a baseline: block, use `quality-gates.md`. Identical baseline failures do not block a clean cure or trigger a halt. Fix only new or changed failures.
  3. Taste-test behavioral fixes. Run the fresh-context taste test before you write the handoff slug. Resolve the read-only reviewer (taste-test) phase agent through `agent-resolution.md`. Request default minimum power and medium effort. Use the Cook review lenses over the cure diff. Reuse the step-2 rendered brief verbatim as the taste test's locked-decision block. Halt when fresh-context isolation is unavailable. Use an inline self-check only under the small-diff cost gate in `tdd-loop.md`. Skip this step for formatting, comments, imports, and logic-free renames. Send a revise verdict into one bounded correction pass. Stop for a human on a Locked-decision halt. A nested coder defers the authoritative review to the orchestrator.
  4. Correct the domain model. Correct only terms that the Cook diff touches. Read references/domain-model-correction.md first. Do not reverse a canonical term that Mold locked.
  5. Hand off for review. Recommend /age <slug> --scope <touched-path>. Repeat --scope once for each touched path. Send the current slug with every Age dispatch. Forward --hard when the run has that flag. Do not duplicate the Age review inside Cure. A new Age report can start a new /cure run.
  6. Write the report. Record changes, checks, deferred items, and residual risks. Put the handoff slug at the top of .cheese/cure/<slug>.md.
  7. Write back the durable facts. Run § Post-PR write-back before publication. Give each written path to /plate for its artifact inventory.
  8. Hand off for publication. Dispatch /plate after a clean cure. Follow ## Handoff.

Preferred tools and fallbacks

Route source work through `code-intelligence-routing.md`. Use its fallback when a preferred tool is absent. Stop only when the fallback cannot support a safe fix. Report the precision loss.

Validation

Run the narrowest test that proves each fix. Then run all relevant existing gates. Record why an unavailable gate cannot run. Do not declare readiness while selected findings remain unresolved.

Move a finding to Applied only after its proving test passes. Read references/cure-discipline.md for the Iron Law.

A clean cure has at least one applied fix and all gates pass. It also has no false-premise halt. Identical baseline: failures do not count against green status. Read `quality-gates.md`.

The agent judges the gate values. The CLI maps those values to a readiness verdict:

python3 skills/cure/scripts/cure.pyz gates classify \
  --press-status <label> \
  [--hard-floor-met] [--has-open-level-1-or-2] [--has-open-level-3] [--has-open-level-4-or-5] [--any-spinning]

Use the same bundle command when the host only ships the bundle.

Handoff slug

Write the report to .cheese/cure/<slug>.md. Put this minimum handoff slug at the top:

status: <canonical status field>
next: age | done
artifact: <path of the report that this run consumed>
baseline: none | <recorded baseline block copied from the upstream handoff — see ../cook/references/quality-gates.md>
<one-line orientation: what cure applied or deferred>

The handback contract defines the status: grammar. Only next: and the additional keyed lines are specific to this phase. artifact: names the source report that this run consumed. Use handoff_context.source_report for that value, or the resolved .cheese/age/<slug>.md path.

Write the report body to a separate file. Then let the canonical writer create .cheese/cure/<slug>.md once. Pass every optional field that this run has.

python3 skills/cure/scripts/cure.pyz write-handoff-artifact \

Use this skill in a project

Open any RiverX project, search the Skills panel for paulnsorensen/easy-cheese/cure, and install it in one click.

Use this skill