Throughspec v1.2.0 - spec-driven development for Claude Code, now on npm + PyPIRead the docs
Docs/Concepts/Persona

Persona

Your persona tunes how Throughspec talks to you - the verbosity of CLAUDE.md, the guidance it prints, and the "Why this step?" annotations. It is chosen at scaffold time and stored in spec.config.js.

Choosing a persona

Every scaffold resolves a persona. Pass --persona, pick one in the interactive prompt, or accept the default (engineer) in a non-interactive run. It is written to the managed block of spec.config.js and drives which guidance block survives in CLAUDE.md.

spec-init my-app --persona student   # or run without --persona to be prompted

The four personas

vibeShip first. Claude explains heavy steps in one line and skips prose you do not need - without skipping a required cross-question.
studentLearning by building. After each phase Claude answers "Why this step?" and appends it to claude/learnings.md.
engineerSolo velocity. Reads claude/context.md before Grep, logs non-trivial decisions to claude/design-decisions.md. The default.
teamShared contract. Every PR runs the pull_request_template.md checklist; memory-file conflicts are treated as blocking.

Changing it later

Swap persona any time - customize updates spec.config.js and re-derives CLAUDE.md’s managed persona region. Your product notes and edits are untouched.

spec-init customize --persona engineer
Where it livesThe persona is the ground truth in spec.config.js. You can read or edit it there directly; the CLI keeps CLAUDE.md in sync.