Specification
Skill ID
paulnsorensen/easy-cheese/age
Publisher
paulnsorensen
Repository
easy-cheese
Installs
0
Files
16
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/ageInstalls these files
  • SKILL.md
  • phase-contract.yaml
  • references/commands.md
  • references/deslop-go.md
  • references/deslop-python.md
  • references/deslop-rust.md
  • references/deslop-shell.md
  • references/deslop-typescript.md
  • references/dimensions.md
  • references/fan-out.md
  • references/handoff-detail.md
  • references/packet.md
  • references/report-example.md
  • references/sub-agent-gate.md
  • references/voice.md
  • scripts/age.pyz

What this skill tells the agent

/age

Review a diff or scoped path before merging or after /press. Use this skill whenever the user wants evidence-backed observations rather than an approval verdict. Do not apply fixes in this skill. Let /cure apply them.

Phase entry

Run python3 skills/age/scripts/age.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

/age [<ref-or-range>] [--scope <path>]... [--slug <slug>] [--effort quick|normal|deep] [--overall] [--full] [--safe] [--open-pr] [--auto] [--hard] [--html]
/age <slug> [--effort quick|normal|deep] [--overall] [--full] [--safe] [--open-pr] [--auto] [--hard] [--html]

Repeat --scope <path> for each reviewed path. Every report needs a slug. Take the slug from the <slug> form. Take it from --slug <slug> on a scoped or range review. Derive it with slugify only when the caller supplies neither. A caller in a pipeline always passes the pipeline slug.

--full expands the ## Low section when ten or more low-severity findings exist. The default report collapses that section to a one-line summary.

--safe re-introduces cure selection. --open-pr propagates through /cure to terminal /plate. A new PR follows /plate's explicit-choice and review-shape policy.

After phase entry, use .cheese/press/<slug>.md (if present) as Press context.

Review the current working diff. For a <ref-or-range>, review that range. Review the current working diff when the user supplies neither input. If the base branch is unclear, ask or use the repository's documented default.

--auto is the propagated autonomous-mode flag from /cook --auto. See ## Handoff and references/handoff-detail.md § Auto mode for the cap rule and the full chain.

handoff_context.wiki_hits is optional routed input from /cheese. Each hit carries page, line, and why. Reuse each valid hit before you ground the review again. Render the reused hits in ## Wiki context.

--hard propagates through /cure to /plate. Age never fires the gate. /plate gives /hard-cheese the final verified artifact state before publication.

--html emits a static HTML copy alongside .cheese/age/<slug>.md. Write the markdown first. Then run python3 skills/age/scripts/age.pyz html-report --report .cheese/age/<slug>.md --slug <slug>. Print the returned path. The HTML groups findings by severity into the shared HTML shell. The output is offline and uses no CDN or JS.

Read `../cheese/references/harness-portability.md` for helper resolution, sub-agent dispatch, GitHub operations, and handoff transitions. Prefer the bundled or repo-local helper. Treat ${CLAUDE_SKILL_DIR} as an optional host-provided fallback. The handoff blocks below define the portable contract. Remember: slash commands are host renderings, not the control model.

Review effort and scope

Use --effort quick|normal|deep; the default is normal. Use --overall for full subject fan-out across the review target. --full still controls finding visibility, not review scope.

Review dimensions

Review correctness, security, encapsulation, spec, complexity, deslop, assertions, NIH, efficiency, telemetry, conventions, and altitude. Assign one blocker, high, medium, or low severity to each finding. Use references/dimensions.md for severity rules and recommendation shapes. This workflow omits the git-history/precedent dimension.

Flow

  1. Identify the diff, scope, and relevant specification or issue. Read references/fan-out.md for the context checklist and deterministic planning contract. Collect instruction sources, build context, and run age.pyz age-route through its bundle path. Use the returned assignments, effort, dispatch batches, and explicit capability restrictions. Assemble shared evidence and the plan before the lock; do not launch a separate classifier agent. The lock covers the packet, because the packet is review evidence. Then run python3 skills/age/scripts/age.pyz review-lock --slug <slug> to lock the production tree. Use the resolved slug from ## Inputs. Step 5 rejects the report when a production file changes.
  2. Gather evidence from the diff, touched files, tests, and callers/imports. Resolve the upstream report with python3 skills/age/scripts/age.pyz artifact-path --phase press --slug <slug>. Validate its preamble with python3 skills/age/scripts/age.pyz read-handoff-slug --phase press --slug <slug>. That command returns preamble fields only. Read the resolved file itself for the ## Review follow-ups section and every unresolved item. Copy each unresolved item into a ## Press findings sub-section. Keep the artifact and baseline values from that preamble for step 5. /cure reads only .cheese/age/<slug>.md.

If no press report exists but a cook handoff exists, record press: skipped (see ## Output). Print the warning at handoff. If no cook artifact exists either, omit the marker and continue. If .cheese/glossary/<slug>.md exists, read it to flag naming drift as a deslop finding.

  1. Review every dimension. Omit dimensions with no findings. Report every defect, however minor. Do not filter findings by perceived significance. Verification filters findings after reconciliation. Do not report a gate failure that matches the diff's recorded baseline: block. Read `../cook/references/quality-gates.md` for the baseline rules. Report only new or changed failures.
  2. Compute severity per finding (base + location bump + compounding bump, capped at blocker). Group findings by severity (## Blocker → ## High → ## Medium → ## Low). Order findings by file within each severity group. Follow references/fan-out.md for verification and the deep-only gap sweep before writing.
  3. Write the report body to .cheese/age/<slug>-body.md. Write the body only. Do not write the handoff preamble into that file. Do not write .cheese/age/<slug>.md yourself. The gated writer creates it. Compute the recommended set first (see ## Handoff). Set <next> to cure when that set is not empty. Set <next> to done when that set is empty. Set <artifact> to the upstream report path from step 2. Use "" only when no upstream report exists. Set <baseline> to the baseline block from that upstream handoff. Omit --baseline only when the upstream handoff has none. Run python3 skills/age/scripts/age.pyz write-handoff-artifact --phase age --slug <slug> --status ok --next <next> --artifact "<artifact>" --orientation "<one-line orientation>" --durable-flags "<none | one line per flag>" --baseline "<baseline>" --grounded <path[#start-end]> --body-file ".cheese/age/<slug>-body.md".

Print the path. Only a new packet for this slug permits recovery; follow references/packet.md § Late evidence. Other changes require a fresh review.

  1. Hand off (see ## Handoff below).

Sub-agent fan-out

/age plans independent review subjects with the contextual age router (src/easy_cheese/shared/fanout/age_route.py). See references/fan-out.md, references/packet.md, and references/sub-agent-gate.md for mechanics.

Call each source-code backend through the shared `code-intelligence-routing.md` contract.

Output

Use `../cheese/references/formatting.md` for cross-cutting house style and citation form. This section defines the findings-report shape. formatting.md defines the voice rules and footnote primitive.

The gated writer writes .cheese/age/<slug>.md.

Use this skill in a project

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

Use this skill