feat(campaigns): add the campaign template
A campaign holds only play state and names its game in frontmatter; new-campaign copies this template.
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
---
|
||||
name: {{name}}
|
||||
game: {{game}}
|
||||
created: {{date}}
|
||||
---
|
||||
|
||||
# {{name}}
|
||||
|
||||
## Premise
|
||||
|
||||
One or two sentences describing the situation the PC starts in.
|
||||
|
||||
## Tone & themes
|
||||
|
||||
What kind of story this is — genre, mood, and the questions it explores.
|
||||
|
||||
## Boundaries
|
||||
|
||||
Lines and veils, and anything that should stay off the table.
|
||||
|
||||
## Starting situation
|
||||
|
||||
Where the PC is and what is already in motion when Session 0001 opens.
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
name:
|
||||
game:
|
||||
stats: {}
|
||||
tracks: {}
|
||||
conditions: []
|
||||
inventory: []
|
||||
---
|
||||
|
||||
#
|
||||
|
||||
## Description
|
||||
|
||||
## Background
|
||||
|
||||
## Relationships
|
||||
|
||||
## Notes
|
||||
@@ -0,0 +1,5 @@
|
||||
# House rules
|
||||
|
||||
This campaign's overrides and additions to the game's rules. The game package
|
||||
is authoritative; anything written here takes precedence for this campaign
|
||||
only. Leave it empty if the game runs as written.
|
||||
@@ -0,0 +1,4 @@
|
||||
# Sessions
|
||||
|
||||
One file per session, named `NNNN-slug.md` (zero-padded, e.g. `0001-the-ash-gate.md`).
|
||||
Session logs are append-only; see `AGENTS.md` for the format.
|
||||
@@ -0,0 +1,7 @@
|
||||
# Clocks
|
||||
|
||||
Ticking pressures. Fill a segment whenever the fiction advances the clock.
|
||||
|
||||
| Clock | Segments | Filled | Notes |
|
||||
|-------|----------|--------|-------|
|
||||
| | | | |
|
||||
@@ -0,0 +1,7 @@
|
||||
# Threads
|
||||
|
||||
Open questions and unresolved goals. Status is one of: open, resolved, abandoned.
|
||||
|
||||
| Thread | Status | Notes |
|
||||
|--------|--------|-------|
|
||||
| | | |
|
||||
@@ -0,0 +1,13 @@
|
||||
# Campaign tables
|
||||
|
||||
Tables placed here belong to this campaign and override the game's tables when
|
||||
names collide. The lookup order for `journal roll <name>` is:
|
||||
|
||||
1. `campaigns/<name>/tables/<name>.csv`
|
||||
2. `games/<game>/tables/<name>.csv`
|
||||
|
||||
Use this directory for tables specific to this campaign's setting or cast. The
|
||||
game's own tables do not need to be copied here.
|
||||
|
||||
Format: a CSV with a `min,max,text` header and an optional `tags` column. See
|
||||
`docs/oracle.md`.
|
||||
@@ -0,0 +1,21 @@
|
||||
# Factions
|
||||
|
||||
One file per faction, named `kebab-case.md`.
|
||||
|
||||
```markdown
|
||||
---
|
||||
name:
|
||||
goal:
|
||||
disposition: friendly | neutral | hostile | unknown
|
||||
---
|
||||
|
||||
# <name>
|
||||
|
||||
## Description
|
||||
|
||||
## Members
|
||||
|
||||
## Resources
|
||||
|
||||
## History
|
||||
```
|
||||
@@ -0,0 +1,23 @@
|
||||
# Locations
|
||||
|
||||
One file per location, named `kebab-case.md`. Keep the frontmatter stable so
|
||||
the agent can update it in place.
|
||||
|
||||
```markdown
|
||||
---
|
||||
name:
|
||||
type:
|
||||
region:
|
||||
status: visited | known | rumored
|
||||
---
|
||||
|
||||
# <name>
|
||||
|
||||
## Description
|
||||
|
||||
## Notable features
|
||||
|
||||
## Inhabitants
|
||||
|
||||
## History
|
||||
```
|
||||
@@ -0,0 +1,23 @@
|
||||
# NPCs
|
||||
|
||||
One file per NPC, named `kebab-case.md`.
|
||||
|
||||
```markdown
|
||||
---
|
||||
name:
|
||||
role:
|
||||
location:
|
||||
status: alive | dead | missing | unknown
|
||||
disposition: friendly | neutral | hostile | unknown
|
||||
---
|
||||
|
||||
# <name>
|
||||
|
||||
## Description
|
||||
|
||||
## Wants
|
||||
|
||||
## Relationships
|
||||
|
||||
## History
|
||||
```
|
||||
Reference in New Issue
Block a user