The identity card summarizes the doctrine it tells the agent to load, so the load step gets skipped and nothing notices #303
Labels
No labels
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agent-compose#303
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The identity card ends with
## Active doctrine / Before acting, load:and six skill slugs. Everything above that line already delivers substance, including a one-line description of each personality and boundary. The result is a card that reads as complete, so the load step reads as optional, and nothing anywhere observes whether it happened.Filed after it happened to a live exec session on 2026-08-17. The session answered a substantive question, with tool calls and a durable conclusion, having loaded none of its six named skills. It only surfaced because Kai asked directly.
Evidence
The renderer is
internal/person/metadata.go:44-118. It emits, in order:Measured against
origin/mainat3c3caa7, for exec:Referenced body bytes for every role, same measurement:
So between 7 KB and 13 KB of operative doctrine per role sits behind a list of names, under a set of summaries good enough to pass for the thing itself.
Why the summaries make it worse, not better
They are accurate.
personality-outwardcompresses to "Check the local answer against the world outside it before trusting it," which is a fair reading of the body. That is exactly the problem. A stub would announce itself as a stub. A good summary does not, and the operative clauses live only in the body.boundary-seek-external-validationcarries the rule that naming a reachable gap and stopping is itself a failure. Nothing in the one-liner hints that such a rule is down there.Why this is not a discipline problem
The instruction is unconditional, and the session that skipped it was wrong to. But an instruction that gets skipped under a plausible task shape will keep getting skipped, and no amount of restating it changes the rendering. Two properties make the skip likely and invisible:
The triggering question was a repository lookup. Nothing about "did the latest acompose changes land" cues "load your charter first." Scope is unconditional, salience is not, and the agent responded to salience.
Recommendation
Make the omission observable before trying to prevent it. Ordered:
Deriving a hard gate is a third option and probably premature. Measure first.
Complete when
Related
Ownership
Filed by the exec seat as a recommendation and capability-posture record. The renderer change and the eval item are Engineer's to implement. No code changed here.
Provenance
Session with Kai on 2026-08-17, immediately after the round that merged #296, #299, #300, and #301. Every measurement above was taken against
origin/mainat3c3caa7.