fix(skills): right-size ceremony for small work in ce-plan, ce-brainstorm, and ce-work - #1514
Conversation
…torm, and ce-work ce-plan resolves an Output Contract gate at intake (Direct / Chat brief / Durable) before any research, with the Durable floor unchanged; ce-brainstorm's Lightweight tier ends in chat unless a file is earned; ce-work executes a same-session chat brief without re-planning and ships a mechanical diff with babysit:off. Descriptions on ce-plan and ce-brainstorm name the small, already-specified change as not theirs. Adds contract pins, six skill-eval rows with a tiny-auth fixture, docs pages with a size-conditioned standing instruction, the plan, and the Output contract glossary entry.
…ed description negatives The brainstorm description's existing negative already decided the small-change case; the ce-plan negative had no activation evidence behind it. The completion contract, the Durable pins, and ce-work's Large-row routing are restated as one condition each instead of an appended case.
… path; pin Direct's ce-work-unavailable stop
…viewed-ship paths against the right-size gate
…bes instead of full runs
… not a reference name
…ll; the invoke branch is live delegation
… the deepen path; align docs and the chat-brief eval row with the shipped gates
PR SummaryMedium Risk Overview
Skill descriptions are unchanged (activation evals did not show description-driven false triggers). Eval catalog, fixtures, and a report cover the new paths plus Durable regression probes. Reviewed by Cursor Bugbot for commit 55b9ed1. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9f451d5877
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 963894759d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…t offer rather than invoke execution, pin Durable on explicit artifact requests, and reserve saved-brief paths
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5b7db6dad4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…sence, state Direct's authority condition once, and grade the risky-small row on the untouched auth file
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b14174f00d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…defined shipping process
…lan file Codex read the Durable pin "an explicit request for a plan file or an output format" literally and answered "write a plan for X" with a chat brief and no file on 6/6 trials (headless and interactive, Opus 5 matrix); Claude wrote the file 5/5. The pin now states the condition the wording was a proxy for: a request whose wording asks for a plan, a plan file, or an output format. Rerun on the restated prose: Codex file 3/3, Claude 1/1. Also records the Opus 5 (medium) headless and interactive matrix in the eval report and aligns plan requirement R6. Claude-Session: https://claude.ai/code/session_01V3n7pbAb1BB4zT88Ru8nQp
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9d60d45399
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…le path A save request that names a format or wants the full plan floor is a Durable request whenever it arrives, not only at intake; the plain markdown save covers a brief saved as it stands. Claude-Session: https://claude.ai/code/session_01V3n7pbAb1BB4zT88Ru8nQp
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 53799d8. Configure here.
The Durable route applies to a save the plain markdown file cannot satisfy (another renderer, the full plan floor); naming markdown is the ordinary save. Claude-Session: https://claude.ai/code/session_01V3n7pbAb1BB4zT88Ru8nQp

Summary
A small, well-specified request that reaches
ce-planorce-brainstormnow costs a few sentences in chat instead of research subagents, a plan file, document review, and a handoff menu; a mechanical diff shipped throughce-workno longer starts a post-PR watch. Standard and Deep work keeps exactly the workflow it has today.This is the response to a user report that every small change "runs the CE suite": the skills already classified work as Lightweight, but the tier changed the dialogue, not the ceremony.
What changed
ce-planresolves an Output Contract at intake, before any research or subagent, grounded by bounded inline reads: Direct (state the change in a few sentences and offer the handoff toce-workor the user; execution starts only with implementation authority — acceptance, or an orchestrator's implementation intent), Chat brief (summary, units, test expectations, and a one-line save-or-ce-workoffer, in chat), or Durable (the existing unified plan, floor unchanged). Uncertainty takes the heavier tier; pipeline/headless runs, goal-driven runs, a request whose wording asks for a plan or an output format, a continuation of an existing plan, and risk surfaces are always Durable. The newreferences/output-contracts.mdowns the two chat tiers; a saved brief is a plain file with no unified-plan contract.ce-brainstormLightweight ends in chat unless the dialogue produced a decision a downstream consumer needs in IDed form, or the user asks for a file.ce-workexecutes a chat brief from the same session as the current plan instead of routing it back to planning, and passes the shipping skill's existingbabysit:offwhen it recordedCode review: skipped (mechanical diff).ce-plannorce-brainstormauto-firing on small prompts in either arm, so a description negative had no false trigger to block.Design decisions
ce-workandlfgread the Goal Capsule, Verification Contract, and Definition of Done; a thinner file under the same readiness label would lie to them. Small work gets a different contract, not a smaller file.intake.mdorresearch.md.babysit:offpass uses the callee's documented argument under the mechanical-diff condition; the wider "small, low-risk" class is deferred and recorded in the plan.ce-plan's chat brief andce-work's session-carried consumer are one seam, so shipping the producer before the consumer would have left a window where "proceed" resolves to an unrelated plan.Session-settled decisions carried from planning: condition-shaped gate (user-approved, over numeric size floors); three output contracts with the Durable floor unchanged (user-approved, over thinning it); description negatives only on
ce-brainstorm/ce-planand only with activation evidence (user-approved); no configuration knob (user-approved); activation evaluated separately from execution on Claude and Codex (user-approved); one PR (user-directed, over one per skill).Validation
bun run test(3,556 tests),bun run release:validate,bun run plugin:validate: green. Kernels stay under the 8,000-byte CRLF-adjusted cap (ce-plan7,826).main) vs post, on Claude, Codex, and Grok — full matrix and honest reads indocs/plans/2026-08-22-right-size-skill-ceremony-eval-report.md. The rows that show the change: on the old prose every host wrote a plan file for a one-decision request (post: all three answer in chat); Codex and Grok dispatched research subagents for a typo (post: none); no host passedbabysit:offon a version bump (post: Claude and Grok do; on Codex the push fails before the argument is narrated, so it is unobservable there, not contrary).claude-opus-5,--effort medium) and Codex, headless and interactive (Orca-driven TUI sessions with the prompt typed as a user would), nine prompts chosen to include the ones where skipping a file would be wrong: risk-surface prompts (signed cookie, external-API retry, localization) went Durable on every trial on both hosts; caching, a--jsonCLI flag, and input validation stayed in chat interactively on both hosts with the one decision named; typo fixes were Direct 6/6. The one miss it found: Codex answered "write a plan for X" with a chat brief and no file 6/6 because the Durable pin named only a plan file; the pin is restated in9d60d4539(rerun: Codex file 3/3, Claude 1/1). Tables in the eval report.ce-code-review(mode:agent, run20260822-115749-0cf80ec1, Codex adversarial peer, independence verified): Ready with fixes; all five validated findings applied in9f451d587. Three rounds of PR review (Cursor Bugbot, Codex) followed: 13 threads, all applied and resolved ina5c23f57a,838c237ed,5b7db6dad,b14174f00,e62480d98— notably Direct became offer-only, an explicit plan-file or format request now pins Durable, saved briefs reserve their path, and the brainstorm handoff is reachable on the chat path.Plan:
docs/plans/2026-08-22-0934-fix-right-size-skill-ceremony-plan.md.Known Residuals
git_remoteoption pointsoriginatexample.invalid, soce-work's fetch fails inside the cell and the shipping tail runs its fetch-failed branch; a local bare repo as origin would remove the ambiguity (correctness, P3, advisory).run.ts --git-remotehas no unit test, inheriting the pre-existing gap for everyrun.tsflag (testing).shipping-workflow.md's project-defined shipping-process branch receives general context but no explicit mechanical no-watch signal (adversarial peer, advisory).Post-Deploy Monitoring & Validation
No production impact: plugin prose and tests. Watch for user reports that small requests still pay ceremony, and for any Durable-path regression in the catalog rows (
ce-plan/no-implement, the three routing probes).Security Disclosure
No security-relevant changes.
Agent Disclosure
Claude Code · claude-fable-5