Skip to content

feat!: required headline parameter — 3-4 word ask in HUD callout#6

Merged
dshanklin-bv merged 1 commit into
mainfrom
feat/required-headline
Apr 29, 2026
Merged

feat!: required headline parameter — 3-4 word ask in HUD callout#6
dshanklin-bv merged 1 commit into
mainfrom
feat/required-headline

Conversation

@dshanklin-bv

Copy link
Copy Markdown
Contributor

Summary

Every cept call now requires a 3-4 word `headline` describing the ask. Surfaces in the floating HUD popup (so the human watching sees what's happening), in `packet.meta.headline` (so the model gets the agent's own self-summary alongside the longer goal), and in the return value.

Discipline-as-schema, not summarization. The calling agent (Claude Code) already has full context — it doesn't need a model to derive a headline; it needs to be required to write one. The pause to articulate the ask in 3-4 words IS the proprioceptive value. If the agent can't compress, it doesn't know what it's asking — and that's exactly the moment cept exists for.

Why no T5/local-summarizer (which is where this conversation started): `packet.objective` already carries the goal verbatim. A model running on it would just reword something cept already has, plus 60-200 MB of deps and 1-2s of latency. Schema beats inference.

What changed

Surface Change
MCP tool `headline: str` is now required (was missing entirely)
cept-cli `--headline` is now required
Packet new `meta.headline` field
Events new `request.headline` event fires at seq=1, before all other phases
HUD 15pt semibold header above the existing phase row; panel grew 70 → 96 px
Result new top-level `headline` field for caller confirmation

Validation

  • Soft cap: 4 words (warning emitted at 5; doesn't fail the call)
  • Hard cap: 6 words (truncated with `…` at 7+)
  • Empty / whitespace-only: rejected with the contract message: "headline is required — pass 3-4 words describing what you're asking. If you can't compress the ask to a phrase, you're not clear on what you need."

BREAKING CHANGE — v0.4.0

Existing call sites must add `headline=`. The validation error names the contract so failing sites self-document.

Test plan

  • `uv run pytest -x -q` — 94 passed (10 new in `test_headline.py`)
  • `uv run ruff check src/cept tests` — clean
  • `swift build -c release` in `hud/` — clean
  • CLI smoke-tests: verbatim 3-word headline lands; 8-word headline truncates to 6 + ellipsis; empty rejected with contract message
  • JSONL smoke: `request.headline` fires as seq=1 with `data.headline` payload
  • Manual: launch HUD with a real cept call, confirm headline header renders prominently and persists across phase updates

🤖 Generated with Claude Code

The calling agent must compress its ask to 3-4 words. The headline:

- Fires as a `request.headline` event at seq=1, before any other phase,
  so the floating HUD popup shows it the moment the call lands and
  keeps it visible for the rest of the run.
- Embeds in `packet.meta.headline` so the model sees the agent's own
  self-summary alongside the longer goal — useful signal for catching
  when goal and headline drift apart (sign of confused intent).
- Returns at the top of the result so the calling agent can confirm
  what got logged.

Soft cap 4 words (warning emitted at 5); hard cap 6 (truncated with …
at 7+). Empty/whitespace rejected with a contract message that names
the discipline: "if you can't compress the ask to a phrase, you're not
clear on what you need."

The pause to write the headline IS part of cept's value. Today the
agent calls cept reactively; with a required headline the agent has to
articulate the gist in newspaper-headline style before the call goes
out — that's a proprioceptive moment by construction.

HUD redesigned: 15 pt semibold headline header above the existing
phase row (now 11 pt monospace, secondary). Panel grew 70 → 96 px.

BREAKING CHANGE: v0.4.0. Existing call sites must add `headline=`.
The validation error names the contract so any failing site self-documents.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@dshanklin-bv dshanklin-bv merged commit 6ea5300 into main Apr 29, 2026
0 of 3 checks passed
@dshanklin-bv dshanklin-bv deleted the feat/required-headline branch April 29, 2026 18:51
dshanklin-bv added a commit to eidos-agi/eidos-marketplace that referenced this pull request Apr 29, 2026
eidos-agi/cept#6 (BREAKING): cept now requires a 3-4 word `headline`
parameter that surfaces in the HUD callout, the packet's `meta.headline`,
and the result. Discipline-as-schema: forces the calling agent to
articulate the ask in newspaper-headline style before invoking.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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