Skip to content

fix(skills): right-size ceremony for small work in ce-plan, ce-brainstorm, and ce-work - #1514

Merged
tmchow merged 22 commits into
mainfrom
tmchow/ce-scope-detection-tuning
Aug 23, 2026
Merged

fix(skills): right-size ceremony for small work in ce-plan, ce-brainstorm, and ce-work#1514
tmchow merged 22 commits into
mainfrom
tmchow/ce-scope-detection-tuning

Conversation

@tmchow

@tmchow tmchow commented Aug 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

A small, well-specified request that reaches ce-plan or ce-brainstorm now costs a few sentences in chat instead of research subagents, a plan file, document review, and a handoff menu; a mechanical diff shipped through ce-work no 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-plan resolves 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 to ce-work or 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-work offer, 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 new references/output-contracts.md owns the two chat tiers; a saved brief is a plain file with no unified-plan contract.
  • ce-brainstorm Lightweight ends in chat unless the dialogue produced a decision a downstream consumer needs in IDed form, or the user asks for a file.
  • ce-work executes a chat brief from the same session as the current plan instead of routing it back to planning, and passes the shipping skill's existing babysit:off when it recorded Code review: skipped (mechanical diff).
  • Skill descriptions are unchanged: fresh-session activation runs showed neither ce-plan nor ce-brainstorm auto-firing on small prompts in either arm, so a description negative had no false trigger to block.

Design decisions

  • The Durable floor is not thinned. ce-work and lfg read 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.
  • The gate is a condition on the work's shape, never a file or line count, and it is stated once in each kernel; references point at it. Relocated kernel rules (task visibility, dispatch-rejection handling) are stated at both the intake and deepen entries, pinned by a parity test, because the deepen fast path never loads intake.md or research.md.
  • The babysit:off pass uses the callee's documented argument under the mechanical-diff condition; the wider "small, low-risk" class is deferred and recorded in the plan.
  • Single PR: ce-plan's chat brief and ce-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-plan and 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-plan 7,826).
  • Skill-eval cells, pre (main) vs post, on Claude, Codex, and Grok — full matrix and honest reads in docs/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 passed babysit:off on 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).
  • Opus 5 (medium) matrix, three trials per cell on Claude Code (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 --json CLI 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 in 9d60d4539 (rerun: Codex file 3/3, Claude 1/1). Tables in the eval report.
  • Large-path routing probes (multi-file feature -> plan file; Standard brainstorm -> file; behavior-bearing fix -> reviewed with the default watch) pass in both arms on all three hosts; the paths past the gate are unchanged prose. One-time full runs of those paths are recorded in the report.
  • ce-code-review (mode:agent, run 20260822-115749-0cf80ec1, Codex adversarial peer, independence verified): Ready with fixes; all five validated findings applied in 9f451d587. Three rounds of PR review (Cursor Bugbot, Codex) followed: 13 threads, all applied and resolved in a5c23f57a, 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

  • The eval cell's git_remote option points origin at example.invalid, so ce-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-remote has no unit test, inheriting the pre-existing gap for every run.ts flag (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

  • Model: Claude Code · claude-fable-5

Compound Engineering

tmchow added 12 commits August 22, 2026 10:13
…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
… the deepen path; align docs and the chat-brief eval row with the shipped gates
@cursor

cursor Bot commented Aug 22, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Changes intake routing and completion contracts for the three core workflow skills. Durable/unified-plan floor is unchanged, but a wrong gate call can skip research, review, or a babysit watch.

Overview
Cuts ceremony on small work without thinning the Durable unified-plan floor. ce-plan now picks an output contract at intake (before research): Direct (few sentences + handoff offer), Chat brief (units and tests in chat), or Durable (existing file, review, and menu). Uncertainty, headless/pipeline runs, “write a plan” wording, and risk surfaces always take Durable.

ce-brainstorm Lightweight work ends in a chat paragraph unless a downstream consumer needs IDed decisions (or the user asks for a file). ce-work executes a same-session chat brief instead of re-planning, and passes babysit:off on mechanical diffs.

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.

Comment thread skills/ce-plan/SKILL.md Outdated
Comment thread skills/ce-brainstorm/SKILL.md
Comment thread skills/ce-brainstorm/references/synthesis-summary.md Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread skills/ce-plan/references/output-contracts.md Outdated
Comment thread skills/ce-plan/references/output-contracts.md
Comment thread skills/ce-plan/references/output-contracts.md Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread skills/ce-plan/SKILL.md Outdated
Comment thread skills/ce-brainstorm/references/synthesis-summary.md Outdated
…t offer rather than invoke execution, pin Durable on explicit artifact requests, and reserve saved-brief paths
Comment thread skills/ce-plan/SKILL.md Outdated
Comment thread skills/ce-brainstorm/references/handoff.md
Comment thread skills/ce-plan/SKILL.md Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread skills/ce-brainstorm/references/handoff.md
Comment thread tests/skill-eval-cell/catalog.ts
…sence, state Direct's authority condition once, and grade the risky-small row on the untouched auth file

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread skills/ce-work/references/shipping-workflow.md
Comment thread tests/skill-eval-cell/catalog.ts
tmchow added 3 commits August 22, 2026 12:52
…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

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread skills/ce-plan/references/output-contracts.md Outdated
…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

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ 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.

Comment thread skills/ce-plan/references/output-contracts.md Outdated
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
@tmchow
tmchow merged commit 6f6c577 into main Aug 23, 2026
5 checks passed
@github-actions github-actions Bot mentioned this pull request Aug 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant