View on GitHub

campaign-mode

Work with a party of AI advisors with genuinely different perspectives.

ADR-CM-006: Character Generation

Field Value
Decision ID ADR-CM-006
Initiative Campaign Mode
Proposed By Chris Barlow
Date 2026-02-14
Status Accepted

WH(Y) Decision Statement

In the context of Campaign Mode’s Phase 2 (Character Setup) and the desire to let users customise how animal agents present and behave within a campaign,

facing the need for a character generation system that supports multiple depths (flavour vs. behavioural modifiers), is theme-agnostic, preserves core animal archetypes as hard constraints, and stores profiles as exportable campaign state,

we decided for a user-driven character generation system facilitated by Gandalf during Phase 2, with two depth levels (narrative flavour and behavioural modifiers), theme-agnostic profiles stored as markdown files in .campaign/profiles/, selective application to any subset of animals, and light thematic skins for NPCs,

and neglected auto-generated profiles (animals self-assign – removes user agency), full D&D character sheets (too niche, violates Broad Appeal First), a separate /character-gen skill (Gandalf already owns Phase 2), and persistent cross-campaign rosters (over-engineering state management for v1),

to achieve user agency over party composition, thematic flexibility across cultures and contexts, preserved animal archetype integrity, and exportable campaign state,

accepting that Gandalf’s SKILL.md grows more complex, the .campaign/ directory introduces state management concerns, and theme-agnostic profiles require more abstraction than a fantasy-only system.


Context

Campaign Mode’s Phase 2 (Character Setup) was originally scoped as a post-v1 feature: “Character generation is post-v1 scope. In v1, this phase is a simple narrative exercise.” The initiation conversation between Simon and Chris envisioned applying D&D-style character profiles to animals (“Cat becomes Human Paladin or perhaps Halfling Thief”), and the north-star listed it as a post-v1 possibility.

This ADR promotes character generation to a fully specified v1 feature. The system allows users to optionally assign character profiles to any subset of the six animal agents, choosing between narrative flavour (changes tone and vocabulary) and behavioural modifiers (tunes how animals contribute within archetype bounds). NPCs can receive light thematic skins, including name changes.

Design Decisions

Decision Answer
Profile depth User chooses: vanilla (no profile), narrative flavour, or behavioural modifiers
Theme scope Theme-agnostic from day 1. Neutral defaults, themes opt-in. User can design custom via Socratic dialogue
Who generates User assigns all. Gandalf provides guidance if selections conflict with Six Animals theory
Persistence Per-campaign, exportable (user can save/reuse but system doesn’t manage a roster)
Partial profiles Selective – user can profile any subset of animals, rest stay vanilla
NPC profiles NPCs keep core identities but get light thematic skin including name changes
Storage Profile files (.md) in a .campaign/profiles/ directory
Default suggestions Neutral language (“Visionary Leader”, “Risk Analyst”), fantasy/other themes opt-in
Guardrails Hard constraints – core archetypes non-negotiable, Gandalf warns AND blocks incompatible profiles
Implementation Gandalf owns Phase 2 character generation (no new skill)

Options Considered

Option 1: User-Driven Character Generation via Gandalf (Selected)

Users assign profiles to animals during Phase 2, facilitated by Gandalf. Two depth levels (flavour and modifier), theme-agnostic, stored as markdown files in .campaign/profiles/.

Pros:

Cons:

Option 2: Auto-Generated Profiles (Rejected)

Animals self-assign profiles based on quest context and theme.

Why rejected: Removes user agency. The user-as-protagonist principle requires the user to make meaningful choices. Auto-generation reduces character setup to a spectator experience.

Option 3: Full D&D Character Sheets (Rejected)

Detailed character sheets with stats, abilities, classes, and levels.

Why rejected: Too niche. Violates the Broad Appeal First principle (Design Principle #3). Users who’ve never played D&D would find this alienating. The system must be accessible before it is deep.

Option 4: Separate /character-gen Skill (Rejected)

A dedicated skill for character generation, separate from Gandalf.

Why rejected: Gandalf already owns Phase 2 (Character Setup). Adding a separate skill fragments the quest flow and creates coordination overhead between skills. Character generation is a natural extension of quest framing.

Option 5: Persistent Cross-Campaign Roster (Rejected)

A managed roster of character profiles that persists across campaigns with version history and selection UI.

Why rejected: Over-engineers state management for v1. The simpler “exportable per-campaign files” model gives users the same capability (copy files to reuse) without system complexity. If demand emerges, a roster system can be added later.


Specifications

Spec ID Title Description
SPEC-CM-006-A Character Profile Format Profile file structure, depth levels, themes, core vs flex behaviours, NPC skins
SPEC-CM-006-B Campaign State Directory .campaign/ directory structure, profile storage, and export protocol

Dependencies

Relationship ADR ID Title Notes
Part Of ADR-CM-001 Campaign Mode Architecture Parent initiative
Relates To ADR-CM-002 Quest Agent Decomposition Profiles modify animal behaviour within campaigns
Relates To ADR-CM-005 Campaign Mode Selection Mode determines whether Phase 2 is offered

References

Reference ID Title Type Location
REF-001 Six Animals Framework External Project github.com/SimonMcCallum/six-animals
REF-002 Campaign Mode North Star Vision Document docs/north-star.md
REF-003 Initiation Conversation Source Material docs/initiation/initial-thinking-on-campaign-mode.txt

Governance

Review Board Date Outcome Action Review Cadence Next Review
Quarterly

Status History

Status Approver Date
Proposed Chris Barlow 2026-02-14
Accepted Chris Barlow 2026-02-14