MCPInstall

press

Run the tests-only adversarial pass that /cook dispatches after a behavior change; also callable as a manual re-run. Use this skill when the user says "press the changes", "harden this", "re-run press", or "/press". Do not edit production code.

Installs
643
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/paulnsorensen/easy-cheese --skill press
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads press automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

/press

Press is the adversarial pass that Cook dispatches inside its Press loop. /press <slug> stays callable for a manual re-run. It reports a GREEN pass to /age and a finding or coverage_gap to Cook.

Press never edits production code. Cook owns the implementation and first acceptance coverage. Press attacks the approved contract and reports each defect it exposes.

Phase entry

Run python3 skills/press/scripts/press.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. Keep its record.revision_id as <base> (§ Base revision).

Inputs

Cook dispatches Press automatically after its taste test on behavior work, so no invocation is needed. For a manual re-run, Press accepts this invocation and hands off to Age on GREEN:

/press <slug> [--auto] [--hard] [--open-pr]

After phase entry, Press reads .cheese/cook/<slug>.md for the Cook handoff.

--auto selects the autonomous chain. See ## Auto mode.

--hard requests the optional final gate. Press forwards this flag to Age.

--open-pr is publication permission. Only the user supplies it. Press forwards this flag to Age. Press never adds it.

Press preserves the Cook durable_flags: value without change. Press ignores the Cook taste_test: value.

Adversarial loop

Ask one question: "Can the user's original complaint still occur while every test passes?" Select ONE relevant false-success attack, not all four. Record the question, the attack, and why it threatens the claim. Confirm the acceptance check rejects that case. references/gap-analysis.md lists the attacks and the evidence sequence.

Press does not write first coverage. When it is missing, Press reports coverage_gap. Replay the same attack after each Cook correction, with the same attack and test digest. Invalid evidence and a production tree change stop the run. The outcome table defines the caps.

Press has no global dispatch: /cook action.

Baseline-aware gates

Press preserves baseline-aware readiness for project gates. The Cook baseline: line names one artifact. That artifact holds the settled state.

Read the artifact through the baseline: path. Do not re-flag a failure when its test and signature match the artifact. New or changed failures block the route.

See ../cook/references/quality-gates.md. Also see references/gap-analysis.md.

Flow

  1. Read — Load the approved spec, Cook handoff, and baseline block. Use canonical terms from .cheese/glossary/<slug>.md when that file exists.
  2. Inspect — Read the acceptance check before you add tests.
  3. Attack — Add or run only adversarial tests. Do not change production paths.
  4. Classify — Select green, finding, coverage_gap, invalid_evidence, or production_changed.
  5. Report — Write .cheese/press/<slug>.md. Include the question, the selected attack, why it threatens the claim, the attempts, evidence, and review follow-ups.
  6. Hand off — Send GREEN to /age. Send a finding or coverage_gap to Cook.

Use code-intelligence-routing.md for source changes.

Use ../cheese/references/harness-portability.md for portability. The reference states that slash commands are host renderings, not the control model.

Press reports one readiness value. Map ready for /age to status: ok and next: age.

Map follow-up recommended to status: ok-with-concerns: <concern> and next: age. Use this status for a GREEN pass that also records a review follow-up. Age owns each recorded concern.

Map finding to status: ok-with-concerns: <defect> and next: cook. Map coverage_gap to status: ok-with-concerns: coverage-gap: <gap> and next: cook.

Map blocked to status: halt: <reason> and next: done. blocked means invalid evidence or a production change.

Auto mode

--auto runs the same adversarial loop. It also selects the next phase without a user prompt.

Dispatch /age <slug> --auto after ready for /age or follow-up recommended. Add --hard when the user supplied it. Add --open-pr when the user supplied it.

Stop after blocked, halt: correction-cap, or halt: coverage-gap. Do not dispatch Age.

Honor the no-chain directive when the caller supplies it. Write the Press handoff and stop. Do not start another phase. Cook's fan pathway owns this directive. The retired /ultracook orchestrator previously owned it. Test for the directive itself. Do not test for the source name. See ../cook/references/auto-mode.md.

Output

Write .cheese/press/<slug>.md at each Press result.

Write the file with python3 skills/press/scripts/press.pyz write-handoff-artifact; include one or more --grounded <path[#start-end]> arguments. Use the canonical preamble:

python3 skills/press/scripts/press.pyz write-handoff-artifact \
  --slug <slug> --status <status> --phase press --next <next> [--base <base>] \
  --artifact .cheese/cook/<slug>.md --orientation "<one-line orientation>" \
  --durable-flags "<preserved Cook value>" --baseline "<baseline artifact path>" \
  --grounded <path[#start-end]> --body-file <body-path>
status: <canonical status field>
next: age | cook | done
artifact: .cheese/cook/<slug>.md
durable_flags: <preserved Cook value>
baseline: none | <baseline artifact path>
<one-line orientation>

The handback contract defines the status: grammar. The preamble accepts no other keys. Put every Press value in the report body.

artifact: names the consumed Cook report. Do not put attack evidence on this line.

baseline: names the one artifact that Cook recorded. See ../cook/references/quality-gates.md.

Write these body sections under the preamble:

  • ## Attempts — one row for each attempt. Give the attempt number and outcome.
  • ## Evidence — the stable attack identity, the test digest, and the failing test for a finding.
  • ## Review follow-ups — each out-of-contract concern. Write none when the run records no concern. Age reads this section.

Map the outcome to the terminal preamble:

outcomestatusnext
GREENokage
GREEN with a recorded concernok-with-concerns: <concern>age
finding (an attack test exposes a defect)ok-with-concerns: <defect>cook
coverage_gapok-with-concerns: coverage-gap: <gap>cook
second coverage_gap in one Cook runhalt: coverage-gapdone
invalid evidence or production change (blocked)halt: <reason>done
third finding on the same attackhalt: correction-capdone
sixth Press round that does not end greenhalt: press-round-limitdone

next: done is terminal. It never starts another phase.

A next: cook handoff is a Cook correction (correction = true), for a finding or a coverage_gap. Press then replays or reruns the same attack.

Cook counts the rounds. Cook passes the round number and attack identity in the dispatch. Press emits halt: correction-cap or halt: coverage-gap only from that round number. A manual /press <slug> run reads prior rounds from .cheese/press/<slug>.md. references/gap-analysis.md holds the caps, including the 6-round press-round-limit.

Handoff

Pipeline: culture → mold → cook (⇄ press) → age → cure → plate

When Cook dispatched Press, return the handoff to Cook and stop. After a manual GREEN re-run, use the shared handoff gate. Start the review with /age <slug>.

After a finding or coverage_gap, hand off to Cook with the failing test or the gap named in the report.

Forward --hard, --auto, and --open-pr to /age when the caller supplied them. Never add --open-pr.

Rules

  • Do not edit production code, production fixtures, or production adapters.
  • Do not change the attack between replays.
  • Do not treat out-of-contract behavior as an implementation request. Record it under ## Review follow-ups. Report the run as ok-with-concerns on a GREEN pass.
  • Preserve baseline-aware readiness.

Discipline

Press uses evidence first. An unverified failure is not a finding.

Name the outcome before each handoff decision. Name the attack digest. Stop if one value is missing. Do not guess.

Generated bundle command inventory: references/commands.md.

FAQ

What does the press skill do?

Run the tests-only adversarial pass that /cook dispatches after a behavior change; also callable as a manual re-run. Use this skill when the user says "press the changes", "harden this", "re-run press", or "/press". Do not edit production code.

How do I install press?

Run npx skills add https://github.com/paulnsorensen/easy-cheese --skill press in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/press/ (personal) or .claude/skills/press/ (project).

Which AI agents can use press?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is press safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains press?

It is published by paulnsorensen in paulnsorensen/easy-cheese. It has 643 recorded installs.

More from paulnsorensen/easy-cheese

View all →

cook

paulnsorensen/easy-cheese

Implement an approved spec or focused task through stale-safe source edits. Use this skill when the user says "implement this", "cook this spec", or "fix this bug". Use it for /cook .cheese/specs/ .md. Also use it when the user says "go" with clear acceptance criteria. Run it alone for an unambiguous task. Use --prototype when the user says "prototype this", "go prototype it", or "spike this out" and wants to refine the result round by round. A spec helps but is not required. Do not use it for fuzzy planning (/mold). Do not use it for no-write discussion (/culture) or review-only work (/age).

mold

paulnsorensen/easy-cheese

Turn a high-leverage design decision into a validated spec through grounded dialogue. Use it when a leverage trigger fires (auth, irreversible effects, concurrency, contracts, destructive ops, a new slice, a cross-slice dependency, an invariant gap) or when the user asks for a spec or design. Typical phrases include "let's design X", "shape this into a spec", "what should the API for Z look like", and "/mold". A feature ask with zero fired triggers is a /cook mini-spec, not a mold; route it through /cheese. Do NOT use it for free-form discussion without artifact intent (/culture), direct implementation (/cook), or research-only questions (/briesearch). Ceremony scales to the ask through references/tiers.md, so a small clear change gets a validated mini-spec without a write-approval turn.

cure

paulnsorensen/easy-cheese

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.

DevOps & Cloud649 installs

age

paulnsorensen/easy-cheese

Review a diff, PR, branch, or path across thirteen dimensions. Emit a severity-grouped findings report. Use when the user wants a code review. Trigger on "review this", "/age", "is this safe to merge", or "find bugs". Also trigger on "spot security issues", "check for slop", "review my PR", or "what's wrong with this code". Review every requested dimension. Review all thirteen dimensions by default. Do not apply fixes. Route them to /cure. Do not harden tests; route that work to /press.

cheese

paulnsorensen/easy-cheese

Route an idea, path, pull request, issue, failure, question, or bare /cheese to the correct workflow skill. Use this skill for /cheese, routing requests, help requests, or opening messages without a named workflow skill.

culture

paulnsorensen/easy-cheese

Models problems and trade-offs without writing code or specifications. Use when a workflow needs silent reasoning, or the user asks for "/culture", "no writes", "rubber-duck this", or "these bugs feel connected". Not for specs (/mold), code (/cook), or bug diagnosis and fixes (/pasteurize).

Popular testing & qa skills

View category →

tdd

mattpocock/skills

Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.

Testing & QA1.2M installs

grilling

mattpocock/skills

Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.

Testing & QA996.2K installs

migrate-to-shoehorn

mattpocock/skills

Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.

Testing & QA484.1K installs

run-train

lllllllama/rigorpilot-skills

Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.

Testing & QA337.8K installs

test-driven-development

obra/superpowers

Use when implementing any feature or bugfix, before writing implementation code

Testing & QA261.8K installs

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work

Testing & QA216.8K installs