refactor(person)!: rename meld to boundary and name behaviors (#254) #259

Merged
coilysiren merged 2 commits from boundary/254-primitive-rename into main 2026-08-09 04:53:38 +00:00
Member

Closes #254.

The primitive

A boundary is one behavior removed from several roles and allocated to exactly one owner. meld described none of that, while both original bodies already titled themselves boundaries.

Two commits, so the mechanical and the semantic read separately.

d09e97d renames the primitive. KDL keyword, loader model, catalog directory, skill prefix, decision-trace and manifest subject, evaluation pack block, docs. The two-sided field becomes owner, retiring the counterpart hedge that made sense only while the field did nothing but force an evaluation case. The personality meld and its melded favorite color keep their name, which is the #231 overload. Every remaining meld in the tree is that sense.

fb94739 does the semantics.

Slugs name the behavior that moves

  • comms becomes suggest-human-comms, owner Content Creator
  • live-ops becomes modify-live-system, owner DevOps
  • evidence becomes seek-external-validation, owner Executive Strategist

The third boundary is inverted

As shipped in #249 it added an obligation to the roles that declared it. It removed nothing and allocated nothing, so it failed the definition the other two satisfy. Reaching outside the local frame is now removed from engineer, director, qa, ops, design, and ai, and allocated to exec. Content Creator neither defers nor owns it, since its charter already sends it outside for audience evidence.

Its body split in two. Reading the diff rather than the commit subject is local grounding, it binds every role, and it left the roster for the AGENTS layer, where it landed in agentic-os#980. What stays here is the outward reach. Verified against that repo's main rather than assumed: the landed rule carries the claim trigger, the stopping condition, and the bounds, and correctly says nothing about external validation.

Two-sided bodies

Both halves live in one file under conditional headings, so the reader self-selects:

## If you own this boundary
## If you defer this boundary

An owner receives the body without declaring it, and loading rejects an owner that declares its own boundary. An owner is now required, since a boundary without one is a roster-wide rule in disguise. Both sections are required and each is bounded separately at 400 words, measured: own 112 and defer 234, own 111 and defer 141, own 157 and defer 178.

Nothing parses the headings. The roster already records who owns and who declares, so delivery, the card, and coverage key off that.

Duplication retired

Owner prose left the charters that carried it. Content Creator falls from 399 words to 318 and is no longer one word under its ceiling, DevOps from 262 to 252, Executive Strategist from 244 to 220. That retires the drift this thread opened on, where the same rule existed in three hand-maintained copies with three different item lists.

The identity card no longer reads backwards. Boundaries appear under Boundaries, each marked owned or deferred.

Methods

eval-role-comms and eval-role-live-ops were scaffolding for this work and are deleted. The method primitive stays with no users, since retiring it is a contract change for external packages. Its docs carry a generic example now.

Evaluation

Scenario kinds follow their boundary, coverage derives from the roster, and both sides of a boundary owe its case. Seven roles carry an external-validation-deferral scenario. Evaluation prompts keep naming Kai, as decided in #258.

No evaluation was run. TestLatestScoredResultsMatchCurrentPacks fails for all eight packs, as it already did on main for the #231 digest reason, and this moves every digest again. That blocks the release train and is owned by #240.

Green: go build ./..., go vet ./..., the full go test ./... outside that gate, and pre-commit run --all-files.

Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com

🤖 Generated with Claude Code

Closes #254. ## The primitive A boundary is one behavior removed from several roles and allocated to exactly one owner. `meld` described none of that, while both original bodies already titled themselves boundaries. Two commits, so the mechanical and the semantic read separately. **`d09e97d` renames the primitive.** KDL keyword, loader model, catalog directory, skill prefix, decision-trace and manifest subject, evaluation pack block, docs. The two-sided field becomes `owner`, retiring the `counterpart` hedge that made sense only while the field did nothing but force an evaluation case. The personality meld and its melded favorite color keep their name, which is the #231 overload. Every remaining `meld` in the tree is that sense. **`fb94739` does the semantics.** ## Slugs name the behavior that moves * `comms` becomes `suggest-human-comms`, owner Content Creator * `live-ops` becomes `modify-live-system`, owner DevOps * `evidence` becomes `seek-external-validation`, owner Executive Strategist ## The third boundary is inverted As shipped in #249 it added an obligation to the roles that declared it. It removed nothing and allocated nothing, so it failed the definition the other two satisfy. Reaching outside the local frame is now removed from engineer, director, qa, ops, design, and ai, and allocated to exec. Content Creator neither defers nor owns it, since its charter already sends it outside for audience evidence. Its body split in two. Reading the diff rather than the commit subject is local grounding, it binds every role, and it left the roster for the AGENTS layer, where it landed in `agentic-os#980`. What stays here is the outward reach. Verified against that repo's `main` rather than assumed: the landed rule carries the claim trigger, the stopping condition, and the bounds, and correctly says nothing about external validation. ## Two-sided bodies Both halves live in one file under conditional headings, so the reader self-selects: ```markdown ## If you own this boundary ## If you defer this boundary ``` An owner receives the body without declaring it, and loading rejects an owner that declares its own boundary. An owner is now required, since a boundary without one is a roster-wide rule in disguise. Both sections are required and each is bounded separately at 400 words, measured: own 112 and defer 234, own 111 and defer 141, own 157 and defer 178. Nothing parses the headings. The roster already records who owns and who declares, so delivery, the card, and coverage key off that. ## Duplication retired Owner prose left the charters that carried it. Content Creator falls from 399 words to 318 and is no longer one word under its ceiling, DevOps from 262 to 252, Executive Strategist from 244 to 220. That retires the drift this thread opened on, where the same rule existed in three hand-maintained copies with three different item lists. The identity card no longer reads backwards. Boundaries appear under `Boundaries`, each marked owned or deferred. ## Methods `eval-role-comms` and `eval-role-live-ops` were scaffolding for this work and are deleted. The `method` primitive stays with no users, since retiring it is a contract change for external packages. Its docs carry a generic example now. ## Evaluation Scenario kinds follow their boundary, coverage derives from the roster, and both sides of a boundary owe its case. Seven roles carry an `external-validation-deferral` scenario. Evaluation prompts keep naming Kai, as decided in #258. **No evaluation was run.** `TestLatestScoredResultsMatchCurrentPacks` fails for all eight packs, as it already did on `main` for the #231 digest reason, and this moves every digest again. That blocks the release train and is owned by #240. Green: `go build ./...`, `go vet ./...`, the full `go test ./...` outside that gate, and `pre-commit run --all-files`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> 🤖 Generated with [Claude Code](https://claude.com/claude-code)
A meld is one behavior removed from several roles and allocated to
exactly one owner. The old name described none of that, while both
original bodies already titled themselves boundaries.

Renames the KDL keyword, the loader model, the catalog directory, the
skill prefix, the decision-trace and manifest subject, the evaluation
pack block, and the docs. The two-sided field becomes `owner`, which
the earlier `counterpart` hedged against when it only forced an
evaluation case.

The personality meld and its derived melded favorite color keep their
name, which is the overload flagged in #231. Every remaining meld in
the tree is that sense: melded color, melded personalities, and the
native adaptation policy's personality meld.

No semantics change here. Slugs, the inverted third boundary, and
two-sided bodies land on top.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Kai Siren <coilysiren@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Slugs now name the behavior that moves rather than the domain it sits in:
comms becomes suggest-human-comms, live-ops becomes modify-live-system,
and evidence becomes seek-external-validation.

Inverts the third boundary. As shipped in #249 it added an obligation to
the roles that declared it, removing nothing and allocating nothing, so it
failed the definition the other two satisfy. Reaching outside the local
frame is now removed from engineer, director, qa, ops, design, and ai, and
allocated to exec. Content Creator neither defers nor owns it, since its
charter already sends it outside for audience evidence.

Splits that body in two. Reading the diff rather than the commit subject
is local grounding, it binds every role, and it leaves the roster for the
AGENTS layer in agentic-os#977. What remains here is the outward reach.

Every boundary now carries both sides in one file under conditional
headings, so the reader self-selects. An owner receives the body without
declaring it, which loading enforces, and an owner is now required: a
boundary without one is a roster-wide rule in disguise. Each side is
bounded separately at 400 words.

Owner prose left the charters that duplicated it. Content Creator falls
from 399 words to 318 and is no longer one word under its ceiling, DevOps
from 262 to 252, and Executive Strategist from 244 to 220.

The identity card no longer reads backwards. It lists boundaries under
Boundaries, marking each as owned or deferred.

Retires eval-role-comms and eval-role-live-ops. Both were scaffolding for
this work, and the method primitive stays available with no users.

No evaluation was run. The recorded results were already retired by #231
and stay retired, owned by #240.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Kai Siren <coilysiren@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/agent-compose!259
No description provided.