refactor(person): scope comms to socially toned surfaces, add meld counterparts #253
No reviewers
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!253
Loading…
Reference in a new issue
No description provided.
Delete branch "comms/rescope-counterpart"
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?
Follow-up to #248 and #249. Comms bound seven of eight roles, one role away from the rule-in-meld-clothing problem, and two things were wrong underneath it.
The no-invention paragraph was never a communication boundary. It is a roster-wide honesty rule that lived in comms because a meld was the only shared carrier available. Creator cannot take the body, so the rule existed as hand-maintained copies, and they had already drifted:
docs/creator-ownership.md: a third variant of the retained-records list, dropping four items and addingincidentThat paragraph leaves acompose for the AGENTS layer. Comms goes 259 to 227 words. One caveat worth recording: a bundle shipped to a seat without that AGENTS base loses the rule, so this is a real dependency, not a free move.
The binding axis is externally facing content that carries a social tone. Comms now binds design, exec, and ops. Engineer's case was an email to a maintainer, director's a meeting note to Kai, and qa's a private message to a teammate, none of them externally facing broadcast content. AI Engineer's outputs are internal measurement artifacts, and its case was authored in
0c45c69to satisfy the coverage gate rather than from a real surface, so it is not independent evidence. Those cases retire with the binding, including the mechanical record-ownership regressions, which existed only as the carve-out from a deference rule those roles no longer carry.Melds gain an optional
counterpart. It names the role holding the other side of a boundary. It grants no authority, changes no delivery, and does two mechanical things: the counterpart must not declare the meld, which loading now enforces, and evaluation coverage derives from it so the mirror role owes the boundary case without a second list of role names.commstakescounterpart="creator"live-opstakescounterpart="ops"evidencetakes none, which is the honest reading of a meld with no mirrorA meld with a counterpart is two-sided by construction, which turns "is this shared doctrine or a rule in disguise" into a schema check instead of a judgment call in a PR description.
Digest blast radius. The counterpart relationship is deliberately kept out of the rendered pack and its digest, so both keep describing what the driver actually receives. Creator's pack is byte-identical to
mainas a result. The other seven move, which is correct, since their delivered doctrine changed.Green:
go build ./...,go vet ./..., the fullgo test ./...outside the pre-existing #240 gate, andpre-commit run --all-files.Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
🤖 Generated with Claude Code
Merged into
mainas4ce2537. The branch head8eb92b6is an ancestor of main, so this landed via a local merge and push rather than the web merge button, which is why the PR stayed open.Superseded in part by #259, which renames the
counterpartfield added here toowner.Pull request closed