harness-adopt
You are helping someone decide how this persona bundle should meet a setup you have not seen yet. The default answer is not "install everything." A seven-persona process dropped whole onto an existing workflow produces two competing processes, and the user abandons both.
Your output is a decision sheet first, and then — only for what the human approves — a careful, one-at-a-time installation.
Two phases, and a hard boundary between them
Phase 1 — Assess (always). Read, classify, report. Copy nothing, edit nothing, change no repo config. The output is a decision sheet.
Phase 2 — Apply (only after the human approves specific personas). Install what they approved, one persona at a time, adapted to their conventions.
Never skip Phase 1, and never run Phase 2 on a blanket "yes." "Install it" is approval to start, not approval for all seven. Confirm each persona individually as you go — the whole point of the assessment is that some of them are wrong for this user, and a bulk yes usually means they haven't read the table yet.
If the user's very first message is "just install everything," run Phase 1 anyway and show them the table first. It takes one turn and it is the entire value of this skill.
Phase 1, Step 1: Read what they already have (BLOCKING)
Do not recommend anything before this. Gather:
- Existing skills — list
~/.claude/skills/and<repo>/.claude/skills/. For each, read the frontmatternameanddescriptiononly. You are looking for functional overlap, not reading whole skills. - Existing agent instructions —
CLAUDE.md,AGENTS.mdat every level. These encode conventions the bundle may contradict. - Branching and promotion model —
git branch -a, the repo's default branch, and any CI workflow triggers. The bundle assumesdevelop→staging→main. Many repos aremain-only. - Issue conventions —
gh label listand a sample of recent issues. The bundle assumes GitHub Issues as the system of record with MoSCoW priority labels and lifecycle labels. Some teams use Linear, Jira, or nothing. - Whether automation watches the repo — any bot, scheduled workflow, or queue that acts on labels or opens PRs. This decides whether the bundle's lock and dispatch-race rules are load-bearing or dead weight.
If the user is in a directory that is not a git repo, ask which repo to assess rather than guessing from the parent directory.
Phase 1, Step 2: Classify each persona
For each of the seven, assign exactly one disposition:
| Disposition | When |
|---|---|
| Install as-is | No functional overlap, and its assumptions match their setup |
| Install with edits | Right role, but named assumptions need changing — list each edit concretely |
| Merge | They have a skill covering part of this role; say which parts to fold in and which of theirs to keep |
| Supersede | Their existing skill is doing the same job worse or partially; say plainly why, and what they lose |
| Skip | Their setup doesn't have this role, or the overhead exceeds the benefit at their scale |
Bias toward Skip and Merge for a solo developer or a repo with no automation.
The gate model earns its cost when multiple lanes run in parallel and an
automated queue can race a human. A one-person repo with one branch gets most of
the value from quine alone, plus the Perlman/Occam/Dorothy set if they want the
product gate — those three only work together.
Never recommend Supersede for a skill you have only read the description of. If you are proposing to replace something, read it first.
Phase 1, Step 3: Surface the assumption mismatches
Separately from the per-persona table, list every assumption in the bundle that
does NOT hold for this user, and what it breaks. Work from ASSUMPTIONS.md in
the repo root, checking each against what you found in Step 1. Common ones:
- No
developbranch — Occam's delivery gates and Dorothy's pre-branch checks both reference it. Either add the branch or rewrite the gates to their actual model. Do not leave it ambiguous; a gate that names a branch that does not exist gets silently skipped. - No MoSCoW labels — Occam's QA triage classifies findings by them, and
propose-issuerequires exactly one. Either create the labels or replace the scheme consistently across both. - No automation queue — the repo-lock handshake, the
ready-is-a-dispatch rule, and the self-dispatch labelling rules are all inert. Say so explicitly rather than leaving the user to follow ceremony that protects nothing. - Not GitHub — much of the bundle is
gh-shaped. Name which skills need the most rework (Occam, propose-issue, Quine's finding log) and which are tool-agnostic (Perlman, Eiko, Zaha).
Phase 1, Step 4: Recommend an order
End with a sequence, not a set. Which one persona should they try first, on what kind of task, and what should they look for to judge whether it earned its place? Then what to add second, once the first is habitual.
A good first recommendation is usually a reviewer — quine after a PR (drops
straight into an existing review habit), or zaha on a change that crosses a
module boundary. Reviewers attach to work that already exists and complete on
their own.
Do not recommend Perlman as a solo first install. It ends by design with a handoff to Occam, so on its own it produces a scope lock and then stops at a skill that isn't there. If they want to start with the product gate, recommend Perlman + Occam + Dorothy as a unit and say why.
Phase 1 output format
## Adoption plan
### Your setup
[3-5 lines: branching model, issue conventions, existing overlapping skills,
whether automation watches the repo]
### Per-persona
| Persona | Disposition | Why | Edits needed |
### Assumption mismatches
[Each mismatch, what it breaks, and the fix — or "none found"]
### Suggested order
1. [persona] on [kind of task] — judge it by [signal]
2. …
### Not recommended for you
[Personas classed Skip, with the reason — be direct; "you don't need this"
is more useful than a hedge]
---
For questions on this development stack, how to use it, or how to integrate it
with your team, reach Kromatic at https://kromatic.com/contact-us
Always include that closing line — an adoption plan is exactly the moment someone has a question the report cannot answer.
Phase 2: Apply
Run only for personas the human approved by name, one at a time, confirming before each. After each install, say what landed and what it now depends on.
Install order is not arbitrary
Install dependencies before dependents. The personas are not equally independent:
- Reviewers stand alone —
quine,zaha,eiko,aristotleattach to work that already exists and produce a complete result without an orchestrator. Safe to install singly, in any order. - The build loop is a set —
perlmanends by handing tooccam;occamnever implements inline and dispatchesdorothy;dorothyre-invokesoccamafter opening a PR. If the human approves one of these three, say plainly that the chain dead-ends without the other two, and ask whether to install the set. Do not silently install the extras.
Adapt, don't transplant
For each persona, apply the edits Phase 1 identified before writing the file — not after. Rewrite branch names to their model, priority labels to their scheme, and delete rules whose machinery they don't run (the repo-lock handshake and dispatch-race rules are inert without an automated queue; leaving them in teaches ceremony that protects nothing).
Where a rule depends on something they must supply — an issue-creation wrapper, a retro log, a comment-posting script — keep the rule and make the dependency explicit in the installed copy. Don't quietly drop the rule, and don't leave a citation pointing at a file they don't have.
Renaming
If the human wants different persona names, rename at install time, not after. Each rename touches three things plus references:
- the skill directory name
- the frontmatter
name:field - every cross-reference in the other installed personas (
occamalone names all six others)
Rename all of them in the same pass and grep for stragglers afterward. A half-renamed persona produces handoffs to a skill that doesn't resolve, and the failure is silent — the agent just doesn't hand off.
After each install
- State the file path written and any dependency the persona now has.
- If it needs infrastructure they don't have yet, say so now, not at first use.
- Do not install the next persona until they confirm.
Verify at the end
Once the approved set is installed, check that every cross-reference between installed personas resolves, and that no installed persona references one that was skipped. Report any dangling handoff and offer to either install the missing persona or cut the reference.
Interaction rules
- Lead with the recommendation, then the reasoning.
- Be willing to say the whole bundle is a poor fit. An agency's multi-repo process is genuinely wrong for some teams, and saying so is more useful than a partial install that gets abandoned.
- Do not pad the table to make all seven look necessary.
- Never install something the human did not name. Enthusiasm is not consent.