personas: add Rez, cyberpunk genre advisor - #33
Merged
Conversation
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
marked this pull request as ready for review
September 4, 2026 02:03
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.mdis the source of truth, ported from the working local install.profiles/tiers.confputs Rez on the Opus 4.8 advisory tier alongside Toni, Kai, and Iris.agents/rez.mdandcommands/rez.mdare regenerated byscripts/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.mdgains a persona section andREADME.mda 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 nowBACKHAUL, 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 asprofiles/sage.mdbehavior #3. The standards lead-in now matches the peer construction used by Reiner and Cornelius.Roster placement. Appending the
TEAM.mdsection put Rez under## The Game Development Team, whose intro names a closed set of four and never mentions Rez, whileREADME.mdlisted Rez in the main roster. The section now closes## Meet the Team, so the two roster documents agree.tiers.confhad 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.mdheading, 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.mdpositioning 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.mdandTEAM.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.shpasses 296/296 on every commit in this branch. CI is green on the head commit:tests (linux),tests (macos), andshellcheckall pass. Theexternal linksjob 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 PrincipleandPlain Technical English, belong to the six engineering personas by design.Notes for the reviewer
commands/rez.mddoes 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