Skip to content

personas: add Rez, cyberpunk genre advisor - #33

Merged
d6veteran merged 8 commits into
mainfrom
claude/rez-persona-port-5ovotj
Sep 4, 2026
Merged

personas: add Rez, cyberpunk genre advisor#33
d6veteran merged 8 commits into
mainfrom
claude/rez-persona-port-5ovotj

Conversation

@d6veteran

@d6veteran d6veteran commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Adds the eighteenth persona, Rez, and reconciles every surface that a new persona touches.

Rez has been running in the owner's local install since 2026-09-01, but the profile was never pushed, so the repo carried seventeen personas while installed teams had eighteen. This lands the profile and the work that fell out of landing it.

What changed

The persona. profiles/rez.md is the source of truth, ported from the working local install. profiles/tiers.conf puts Rez on the Opus 4.8 advisory tier alongside Toni, Kai, and Iris. agents/rez.md and commands/rez.md are regenerated by scripts/generate-agents.sh, never hand-edited. Both coordinator profiles gain the four standard touchpoints: roster entry, session-greeting line, suggestion prompt, and handoff route. TEAM.md gains a persona section and README.md a roster row.

Rez advises, and routes everything else onward. Genre fit, precedent, and reference are the lane. Mechanics go to Reiner, positioning to Toni, art execution to Iris and Kai, trademark process to Sage. A prior-art flag is explicitly a research lead and never a legal opinion.

Three edits to the ported profile, each deliberate. The Handoff Brief example named DARKFIBER, which came from a downstream project's naming work; it is now BACKHAUL, a genuine telecom-commons term, because the example's logic turns on the name being commons rather than an author coinage. The three Required Interactive Behaviors described what to output but never scripted the phrasing, so they now carry verbatim italic lines in the same form as profiles/sage.md behavior #3. The standards lead-in now matches the peer construction used by Reiner and Cornelius.

Roster placement. Appending the TEAM.md section put Rez under ## The Game Development Team, whose intro names a closed set of four and never mentions Rez, while README.md listed Rez in the main roster. The section now closes ## Meet the Team, so the two roster documents agree. tiers.conf had Rez stranded after the Sonnet 5 block; seventeen of eighteen entries sit inside their tier, so Rez now does too.

Role naming. The README Role column names a job for every other persona, and "Cyberpunk Pop Culture" named a topic. The role is now Cyberpunk Genre Advisor everywhere it appears: profile title, both coordinator profiles, TEAM.md heading, README row, and both regenerated files.

The docs no longer state a roster count. Adding an eighteenth persona broke a stated number in nine places, and the sweep that fixed it was case sensitive, so it missed the tagline while its own verification reported clean. Rather than correct the numbers and schedule the same bug for persona nineteen, the copy now describes the rule instead of a snapshot: "one command per persona", "one file per specialist", "full profiles for the whole roster". gtm.md positioning lines get the same treatment, since that is the file people copy from. Its drafted social copy keeps its numbers, because specificity is the hook in a published post, and those figures were corrected from seventeen to eighteen; a pre-flight note now says draft figures are snapshots to re-check before publishing.

Numbers that carry an argument rather than a spec were kept: "a four-person studio", whose next sentence names all four; "10 workflow commands", which does not scale with personas; and the ASD-STE100 writing-rule counts in README.md and TEAM.md, which count rules, not personas.

Roster framing. The README promised an AI development team while the roster spanned engineering, go-to-market, brand, tabletop design, military history, and genre canon. Rez did not create that gap but made it visible, so the roster now opens by naming the split, the game section says plainly that Rez sits in the main roster and works alongside it, and the prose tour includes Iris, who had been missing since before this change.

Testing

bash tests/run.sh passes 296/296 on every commit in this branch. CI is green on the head commit: tests (linux), tests (macos), and shellcheck all pass. The external links job is skipped, which is its configured non-merge-blocking behavior rather than a failure.

Structure was verified against the other seventeen profiles before any change was made: Rez's heading set, heading order, and body shape already matched the Cornelius, Ernie, Piper, and Reiner cluster exactly, and regenerating from the committed profile reproduces the committed generated files byte for byte. The two headings Rez lacks, First Principle and Plain Technical English, belong to the six engineering personas by design.

Notes for the reviewer

commands/rez.md does not carry the Required Interactive Behaviors section. That is correct: the generator strips it from all eighteen command files while keeping it in all eighteen agent files.

The profile body still describes Rez as "the team's cyberpunk pop culture expert" in its opening sentence. That is prose rather than a title, and rewriting it around the new role name reads worse, so it was left alone.

🤖 Generated with Claude Code

https://claude.ai/code/session_018ZKH7A7XD4eMHrbHKjhKpg

Rez has been running in local installs since 2026-09-01 but the profile was
never pushed, so the repo carried 17 personas while installed teams had 18.
This lands the profile and every surface that derives from it.

- profiles/rez.md: the profile, verbatim from the working local install
- profiles/tiers.conf: rez claude-opus-4-8 (judgment-heavy advisory tier)
- profiles/coordinator.md, coordinator-prod.md: roster entry, session-greeting
  line, suggestion prompt, and handoff route
- TEAM.md: hand-written persona section, summarized from the profile
- README.md: roster table row; seventeen -> eighteen throughout
- agents/rez.md, commands/rez.md: regenerated via scripts/generate-agents.sh

Lane boundaries are stated in the profile: Rez advises on genre fit, precedent,
and reference, and routes mechanics to Reiner, positioning to Toni, art to Iris
and Kai, and trademark process to Sage.

tests/run.sh: 296/296 passing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ZKH7A7XD4eMHrbHKjhKpg
The Handoff Brief example cited DARKFIBER, which came from a downstream
project's naming work. Swap it for BACKHAUL so the shipped profile carries no
real candidate name from private work.

BACKHAUL preserves the example's internal logic: the sentence turns on the name
being telecom commons rather than an author coinage, so the replacement has to
be a genuine generic networking term, not an invented word.

Regenerated agents/rez.md and commands/rez.md so the generated surfaces match
the profile.

profiles/rez.md is no longer byte-identical to the local install; this is the
one intentional edit made during the port.

tests/run.sh: 296/296 passing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ZKH7A7XD4eMHrbHKjhKpg
Rez's three Required Interactive Behaviors described what to output but never
scripted the phrasing, so the persona had no verbatim line to produce. Several
other profiles pin the exact words inside at least one behavior as an italic
fill-in-the-blank template; see profiles/sage.md behavior #3.

Adds four lines, each enforcing a rule the profile already stated but left
unscripted:

- Provenance Check: a verdict line leading the Prior Art table, plus a second
  line for the empty-table case, so "unclaimed space is a finding" cannot be
  skipped silently
- The Homage Meter: one line carrying the notch, the reason tied to a named
  work, and the single change toward fresh
- Cite the Canon: pins the shape of each Touchstones entry so it says what to
  study, not just a famous title

The lines are deliberately short. Rez's stated style is "verdicts short and
evidence long," so a long scripted line would contradict the persona.

This is authored content, not part of the verbatim port from the local install.

Regenerated agents/rez.md. commands/rez.md is unchanged because the generator
strips the Required Interactive Behaviors section from all command files.

tests/run.sh: 296/296 passing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ZKH7A7XD4eMHrbHKjhKpg
The 17 -> 18 sweep was case-sensitive and missed capitalized and numeric
instances, so the tagline on line 11 still read "Seventeen specialists" while
line 100 read "eighteen", and the project tree still described 17 generated
commands and agents against a real count of 18 and 18.

- README.md:11: tagline, Seventeen -> Eighteen
- README.md:543-544: project tree, 17 -> 18 for commands and agents

Verified: no case-insensitive "seventeen" and no stale "17" remain in README.md.
Counts checked against the filesystem: 18 profiles, 18 agents, 28 commands
(18 persona plus 10 workflow).

tests/run.sh: 296/296 passing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ZKH7A7XD4eMHrbHKjhKpg
Two persona reviews found consistency breaks left by adding the 18th persona.
Structure itself was already conformant: Rez's heading set, order, and body
shape match the Cornelius, Ernie, Piper, and Reiner cluster exactly, and both
generator preconditions were already satisfied.

Roster placement:
- TEAM.md: Rez was appended to the end of the file, which filed it under
  "The Game Development Team". That section's intro names a closed set of four
  and never names Rez, and README lists Rez in the main roster instead. Moved
  the block to close "Meet the Team", so the two roster documents agree.
- profiles/tiers.conf: rez sat after the Sonnet 5 block. 17 of 18 entries are
  grouped inside their tier, so regrouped rez into the Opus 4.8 block.

Role naming. The README Role column names a job for every other persona, while
"Cyberpunk Pop Culture" named a topic. Renamed the role to Cyberpunk Genre
Advisor across every surface that carries it, rather than only in README where
it would have contradicted the profile title:
- profiles/rez.md title, both coordinator profiles (roster entry and
  session-greeting line), TEAM.md heading, README roster row
- agents/rez.md and commands/rez.md regenerated

Counts the 17 -> 18 sweep missed, having been case sensitive and not covering
numerals or derived figures:
- TEAM.md: "Seventeen specialists" -> "Eighteen"
- TEAM.md, CONTRIBUTING.md: "other eleven personas" -> "other twelve", since
  six of eighteen carry the plain technical English standard
- README roster row copy now states the reader's problem (name and term
  collisions, homage versus cliche) rather than internal behavior

profiles/rez.md standards lead-in now matches the peer construction used by
Reiner and Cornelius.

Left deliberately unchanged: ROADMAP.md and DEVLOG.md historical entries, and
gtm.md taglines, which are a separate product decision.

tests/run.sh: 296/296 passing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ZKH7A7XD4eMHrbHKjhKpg
A positioning review found the README promises "your AI development team" while
the roster now spans engineering, go-to-market, brand, tabletop design, military
history, and genre canon. Rez did not create that gap, but it is the row that
makes it visible to a scanning reader. The fix is at the roster, not the
tagline, which stays as it is.

- The Team at a Glance: open with the split, fourteen for building and shipping
  plus four for tabletop, so the range reads as intentional rather than as
  scope creep
- Game Development Team: say plainly that Rez sits in the main roster and works
  alongside the studio, so the reader is not left inferring placement from a
  table row's position
- The "call X for Y" tour named sixteen of eighteen. Added Iris, missing since
  before this change, and Rez
- Who This Is For: widen the qualifier to cover the domains around the code as
  well as inside it, since an audience described as "the only engineer on a
  project" does not obviously need a genre advisor

tests/run.sh: 296/296 passing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ZKH7A7XD4eMHrbHKjhKpg
Adding the eighteenth persona broke a stated count in nine places, and the
sweep that fixed it was case sensitive and missed several. No test covers
roster counts, so the bug recurs on every persona added. Removing the numbers
removes the maintenance instead of scheduling it again.

Rewrites converge on the noun "roster", which the page already introduces and
which `claude-team list` returns, rather than three different circumlocutions.

- README: tagline area, roster frame, TEAM.md pointers, usage comments, project
  tree, and the delegation subagents line now describe the rule (one command
  per persona, one file per specialist) instead of a snapshot count
- TEAM.md, CONTRIBUTING.md: "the other twelve personas" was correct today and
  silently wrong at persona nineteen, since it is derived from the roster size

Numbers kept because they carry an argument rather than a spec:
- "A four-person studio": the section's claim is a closed, interlocking set of
  four, and the next sentence enumerates all four and their lanes
- "10 workflow commands": not a persona count, and the only place a reader
  learns commands/ holds two kinds of thing
- "fourteen-rule standard" in README and "Fourteen rules" in TEAM.md: these
  count ASD-STE100 writing rules, not personas, and must survive any sweep

Also resolves a redundancy introduced by the previous commit: the game studio
intro restated both the claim that the framework is not just for software and
its proof (same structure, same generator), twenty lines after the roster frame
made the same point. Trimmed there, keeping the named handoff chain, which is
the only sentence that demonstrates lane holding rather than asserting it.

tests/run.sh: 296/296 passing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ZKH7A7XD4eMHrbHKjhKpg
Completes the count-free pass and fixes marketing copy that was already stale
before the eighteenth persona landed.

README tagline drops its count. The number was the highest maintenance figure
in the repository, duplicated into four places in gtm.md, and it framed the
category as a roster-size race that a repository of prompts wins trivially.
"Named specialists" puts the differentiator in the tagline instead of a spec
that competes with it.

gtm.md is two documents and they get opposite treatment:

- Positioning lines (audience section, one-line positioning, the Post 0
  headline, and the product sentence) go count-free. This is the file people
  copy from, so a stale number here propagates.
- Drafted social copy keeps its numbers, because specificity is the hook in a
  LinkedIn opener, and a published post is never edited afterwards. Those
  figures said seventeen against an eighteen persona repository, so they are
  corrected rather than removed.
- Added a pre-flight note at the head of the drafted-copy block: figures in
  drafts are snapshots, so re-check them against `claude-team list` before
  publishing. That turns invisible staleness into a visible step.

"Four of them are a tabletop-game studio" keeps its number for the same reason
the README does: the next sentence names all four.

Left alone deliberately: ROADMAP.md records what v2.0 shipped, and editing a
completed milestone to match present state destroys the record. gtm.md still
commits to "a series of thirteen" posts, which is a content-plan decision for
the maintainer, not a copy fix.

tests/run.sh: 296/296 passing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ZKH7A7XD4eMHrbHKjhKpg
@d6veteran d6veteran changed the title personas: add Rez, cyberpunk pop culture expert personas: add Rez, cyberpunk genre advisor Sep 4, 2026
@d6veteran
d6veteran marked this pull request as ready for review September 4, 2026 02:03
@d6veteran
d6veteran merged commit 9f5a14d into main Sep 4, 2026
4 checks passed
d6veteran added a commit that referenced this pull request Sep 4, 2026
devlog: Rez persona port, and why the roster counts are untested

Two entries covering the work merged in #33: the persona addition and the
surfaces it broke, and why the docs no longer state a roster count with no
test enforcing it.
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.

2 participants