feat(person): add the Game Developer role and the immersed personality #314

Merged
coilysiren merged 1 commit from feat/gamedev-role into main 2026-08-20 10:29:42 +00:00
Member

Ninth Core Roster role, for the gamedev meld in agentic-os#1151. Game code, produced assets, and the build carrying both are one seat, because a mesh change, the importer that ingests it, and the code that spawns it are one change wearing three costumes.

The meld

tenacious + imaginative + immersed, and the nineteenth personality is new rather than a rearrangement. Nothing in the roster covered judging an artifact from inside the position that experiences it, and no other role wants that trait. Its grading anchor distinguishes it from grounded, which contacts what is concretely true without contacting it from in there.

meticulous was unavailable: it already sits in ai, engineer, and qa, which is the per-personality cap of three.

Measured, not guessed

immersed = #0084fd came out of sweeping the legible band against color.Favorites rather than being picked by eye. It hits the achievable role-palette ceiling and sits furthest of any blue from an existing personality color.

A ninth role costs palette separation, and that is worth stating plainly:

  • minimum separation falls 0.1312 to 0.1230, still well clear of the 0.08 floor in validateCorePersonalityMelds
  • the binding pair becomes engineer/director rather than anything involving gamedev
  • seven existing personalities are unusable in the third slot, because each pushes ops to OKLab lightness exactly 0.60 and out of the legible band. Ops already sat on that boundary. A new personality dodges this entirely, which is the strongest argument for authoring one.

Because Favorites discounts a personality by how many roles share it, tenacious going from one owner to two re-tints engineer: #a88840 to #d08b39, a 0.0678 shift. Every other role moves under 0.023, which is imperceptible. Engineer's is visible and is the one cosmetic consequence of this PR.

Charter placement

The issue asks for two rules at the role level, and both are stated generically in role-gamedev/SKILL.md:

  • commit and push on every completed artifact, not at the end of the task, because a lost afternoon of modeling is not recoverable from source the way a lost afternoon of code usually is
  • serialized checkouts invert workspace isolation, so work them in place and confirm nothing else holds the checkout first

The named serialized set stays host-scoped in agentic-os. The roster ships public and holds no repository identities, and the charter points at host context instead.

A pre-existing bug fixed in passing

web/personality-palette runs a bidirectional drift check against the canonical catalog and was already failing on main: empirical and outward were missing from a 16-entry list against an 18-personality roster. Adding immersed alongside both, rather than leaving a startup check half-correct while editing that exact list.

Verification

  • agent-compose overlay --role gamedev --seat claude renders ⟐ ✧ ◉ Gale [they] // gamedev // tenacious + imaginative + immersed // #587fe0
  • pre-commit run --all-files passes, including the role palette snapshot hook
  • go test ./... passes except three internal/statusline failures that reproduce unchanged on a clean checkout of main on this host, so they are host-state dependent and predate this branch

🤖 Generated with Claude Code

Ninth Core Roster role, for the `gamedev` meld in agentic-os#1151. Game code, produced assets, and the build carrying both are one seat, because a mesh change, the importer that ingests it, and the code that spawns it are one change wearing three costumes. ## The meld `tenacious + imaginative + immersed`, and the nineteenth personality is new rather than a rearrangement. Nothing in the roster covered judging an artifact from inside the position that experiences it, and no other role wants that trait. Its grading anchor distinguishes it from grounded, which contacts what is concretely true without contacting it from in there. `meticulous` was unavailable: it already sits in ai, engineer, and qa, which is the per-personality cap of three. ## Measured, not guessed `immersed = #0084fd` came out of sweeping the legible band against `color.Favorites` rather than being picked by eye. It hits the achievable role-palette ceiling and sits furthest of any blue from an existing personality color. A ninth role costs palette separation, and that is worth stating plainly: * minimum separation falls `0.1312` to `0.1230`, still well clear of the `0.08` floor in `validateCorePersonalityMelds` * the binding pair becomes engineer/director rather than anything involving gamedev * seven existing personalities are unusable in the third slot, because each pushes **ops** to OKLab lightness exactly `0.60` and out of the legible band. Ops already sat on that boundary. A new personality dodges this entirely, which is the strongest argument for authoring one. Because `Favorites` discounts a personality by how many roles share it, `tenacious` going from one owner to two re-tints engineer: `#a88840` to `#d08b39`, a `0.0678` shift. Every other role moves under `0.023`, which is imperceptible. Engineer's is visible and is the one cosmetic consequence of this PR. ## Charter placement The issue asks for two rules at the role level, and both are stated generically in `role-gamedev/SKILL.md`: * commit and push on every completed artifact, not at the end of the task, because a lost afternoon of modeling is not recoverable from source the way a lost afternoon of code usually is * serialized checkouts invert workspace isolation, so work them in place and confirm nothing else holds the checkout first The **named** serialized set stays host-scoped in agentic-os. The roster ships public and holds no repository identities, and the charter points at host context instead. ## A pre-existing bug fixed in passing `web/personality-palette` runs a bidirectional drift check against the canonical catalog and was **already failing on main**: `empirical` and `outward` were missing from a 16-entry list against an 18-personality roster. Adding `immersed` alongside both, rather than leaving a startup check half-correct while editing that exact list. ## Verification * `agent-compose overlay --role gamedev --seat claude` renders `⟐ ✧ ◉ Gale [they] // gamedev // tenacious + imaginative + immersed // #587fe0` * `pre-commit run --all-files` passes, including the role palette snapshot hook * `go test ./...` passes except three `internal/statusline` failures that reproduce unchanged on a clean checkout of main on this host, so they are host-state dependent and predate this branch 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(person): add the Game Developer role and the immersed personality
All checks were successful
ci / test (pull_request) Successful in 46s
9087fe5777
Ninth Core Roster role, for agentic-os#1151. Game code, produced assets, and
the build carrying both are one seat, because a mesh change, the importer that
ingests it, and the code that spawns it are one change wearing three costumes.

## The meld

`tenacious + imaginative + immersed`. The nineteenth personality is new rather
than a rearrangement: nothing in the roster covered judging an artifact from
inside the position that experiences it, and no other role wants that trait.
Its grading anchor distinguishes it from grounded, which contacts what is
concretely true without contacting it from in there.

`meticulous` was unavailable at three roles, the per-personality cap.

## Measured, not guessed

`immersed = #0084fd` was chosen by sweeping the legible band against
`color.Favorites`: it hits the achievable role-palette ceiling and sits
furthest of any blue from an existing personality color.

A ninth role costs palette separation. The minimum falls 0.1312 to 0.1230, well
clear of the 0.08 floor, and the binding pair becomes engineer/director rather
than anything involving gamedev. Seven existing personalities were unusable in
the third slot because they push ops to lightness exactly 0.60 and out of the
band.

Because `Favorites` discounts a personality by how many roles share it,
`tenacious` going from one owner to two re-tints engineer, `#a88840` to
`#d08b39`, a 0.0678 shift. Every other role moves under 0.023.

## Charter placement

The two rules the issue asks for, push-per-completed-artifact and
serialized-checkouts-invert-isolation, are stated generically here. The named
serialized set stays host-scoped in agentic-os, since the roster ships public
and holds no repository identities.

## Also

`web/personality-palette` was already failing its own bidirectional drift check
on main: `empirical` and `outward` were missing from a 16-entry list against an
18-personality roster. Adding `immersed` alongside them, rather than leaving a
startup check half-correct while editing that exact list.

`go test ./...` passes except three pre-existing `internal/statusline`
failures, which reproduce unchanged on a clean checkout of main on this host.
`pre-commit run --all-files` passes.

Co-Authored-By: Claude Opus 5 (1M context) <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!314
No description provided.