All 19 Skills
Core Workflow
| Skill | Trigger | Description |
| /storytime | "storytime", "build a spec", "design a feature" | Full workflow: survey → team → icebreaker → breakouts → plan |
| /storytime-survey | "survey the codebase", "scan for artifacts" | Standalone survey with artifact inventory and coverage fingerprint |
| /storytime-breakout | "breakout on", "deep dive", "investigate" | Focused investigation: one driver + silent supporters |
| /storytime-converge | "converge", "merge the breakouts", "make the plan" | Synthesize breakout results into a unified plan |
| /storytime-buildout | "build it", "implement", "buildout", "let's code" | Implement the plan — persona pair programming with trace docs |
| /storytime-retro | "retro on", "how did it go", "plan vs built" | Reconvene team: compare plan against implementation + scorecard |
Team and QA
| Skill | Trigger | Description |
| /storytime-cohort | "hire", "fire", "bench", "promote", "evolve" | Manage the permanent persona team |
| /storytime-qa | "ask the team", "what did we decide", "@team" | Formal queries with context + decision-log loading. Not for casual @role lens directives. |
| /storytime-echo | "echo", "spawn a voice", "what would X say" | One-shot spawning-pool voice test. Ephemeral, no state. |
| /storytime-pr-qa | "handle PR comments", "respond to PR" | Team formulates responses to PR review comments |
Continuity
| Skill | Trigger | Description |
| /storytime-remember | "remember", "stage remembrance", "prepare for /compact" | Stage workday-shaped remembrance.md (wakeup + prompt) for /compact |
| /storytime-lint | "lint storytime", "validate session", "check the spec" | Mechanical + reasoning-tier validation. Two tiers: scripts for grep, estimator agent for prose. |
| /storytime-bootstrap | "bootstrap storytime", "set up storytime" | Initialize .storytime/ structure in a repo |
| /storytime-consolidate | "consolidate", "organize docs", "archive" | Organize, archive, roll up, backfill timestamps |
| /storytime-absorb | "absorb this", "have the team review" | Team reads and interprets existing docs or code |
| /storytime-export | "export", "convert to ADRs", "create issues" | Transform output to ADRs, issues, Kiro specs |
| /storytime-status | "storytime status", "where are we" | Dashboard: cohort, threads, decisions, tutorial progress |
| /storytime-undo | "undo", "cancel", "roll back", "scratch that" | Revert at any granularity: phase, episode, thread, file |
Consolidation Scales
| Scale | Trigger | Output |
| phase | Phase boundary in a skill | Phase artifact + digest to thread |
| commit | LLM-drafted + user-confirmed commit | Thread update + decision pin + optional dream |
| nap | Model detects 1 degradation signal | Quick remembrance refresh |
| shift | 2+ signals or framing-loss alone | Remembrance + frame change (driver swap, mode shift) |
| session | Session DONE or walk-away | Persona context delta + archive rollup |
| compact | Context approaching budget or explicit | Remembrance finalized; user confirms /compact |
Breakout Skills (Available Mid-Conversation)
| Skill | Backing | When to use |
| VERIFY | Grep + Read | Check a claim against code |
| GROUND | Read | Check a claim against repo files (README, ADRs, config) |
| RESEARCH | WebSearch + WebFetch | Look up library docs, API docs, RFCs, benchmarks |
| DISCOVERY | Explore agent | Map dependencies, understand code structure |
| PROTOTYPE | Agent + Write | Sketch implementation for illustration |
| BENCHMARK | Agent + Bash | Measure performance |
Citation Formats
| Source | Format | Example |
| Code | file:line | src/middleware/auth.ts:32 — JWT extraction |
| Repo file | file:line | docs/api-design.md:15 — auth requirement |
| Library docs | [url] | [redis.io/commands/zrangebyscore] — range query |
| Git | commit sha | commit abc123 — revert decoder |
| Standard | RFC N §S | RFC 6585 §4 — 429 status code |
| Web | [url] | [blog.example.com/benchmarks] |
Evidence hierarchy: Code > Git > Repo files > Library docs > Standards > Web
Output Structure
specs/.storytime/
├── .version "1.0" (positive v1.0 marker)
├── remembrance.md Workday-shaped wakeup (staged pre-/compact)
├── sessions/<topic>/
│ ├── _thread.md Continuity ledger + decision log
│ ├── 001/ Episode 1
│ │ ├── survey.md Codebase context + fingerprint
│ │ ├── team.md Persona definitions
│ │ ├── icebreaker.md Status quo discussion
│ │ ├── breakout-*.md Sub-problem deep dives
│ │ ├── plan.md Slide deck + decisions + roadmap
│ │ └── buildout-*.md Implementation traces
│ └── 002/ Episode 2 (warm start)
├── cohort/ Permanent personas (non-human codenames)
│ ├── _roster.md Address-resolution table
│ ├── _user.md You — @user as a first-class persona (v1.0.1)
│ └── <codename>-<archetype>-<focus>.md
├── specialists/ Temporary personas (scoped contracts)
├── dreams/ Optional ancillary per-commit byproducts
├── history/sessions/ Session summaries
├── archive/ hot/warm/cold tiers
├── intents.md Extracted user-intent log (v1.0.1)
├── commit-patterns.md Adaptive commit-learning state
├── tutorial-state.md Per-skill tutorial graduation progress
└── config.md Project settings
Process Rules (29)
- SURVEY before ASSEMBLE. Never build a team blind.
- ICEBREAKER before BREAKOUT. Shared understanding first.
- CONVERGE before showing the user. Internal consensus first.
- Every claim grounded — code, docs, web, or git.
- Default core: OWNER, OPERATOR, CRITIC ×2 (two critics contest).
- Non-goals + success criteria required on every plan.
- Visuals use ASCII box-drawing. No external tools.
- Personas are lenses, not characters. No role-play.
- Team size project-appropriate. Bias small. Ceiling 12.
- User has veto power everywhere.
- Phases collapse when empty.
- Every phase writes output — run is a complete snapshot.
- Prior runs are prior art — never silently overwrite.
- Survey writes a coverage fingerprint.
- Effort = Complexity + Scale (never time). ≥13 decomposes.
- Evaluation hygiene: observe metrics and conclusions separately.
- Warm entry detected, not requested. If thread exists, warm.
- Remembrance is pre-staged (at pause/compact), never reactive.
- Post-breakout pause mandatory unless auto. Present options considered, not just recommendations.
- Grounding multi-source: code > git > repo > library > standards > web.
@role is a lens directive, not a skill trigger.
- Codenames non-human by default.
- One driving persona per leg. Supporters silent unless useful AND non-distortive.
- LLM drafts every commit. User confirms every one. No auto-commit.
- Pauses are model-driven, not threshold-driven (threshold is opt-in fallback).
- All consolidation writes atomic (tmp+fsync+mv).
- Cross-topic decisions use callouts (
Callout-> / Callout<-), not merging.
- Thread IS decision log — per-topic, append-only, commit-pinned.
- Dreams ancillary and disablable. Never on critical path.
Configuration
# specs/.storytime/config.md
mode: native # native | adapt | export
default_mode: inline # inline | deliberation
automation: tutorial # tutorial | manual | guided | auto
team_size: project-appropriate # bias small; sized to the work
max_team_size: 12 # hard ceiling, override required
max_concurrent_breakouts: 10
default_core: [owner, operator, critic]
naming: codename # non-human by default
driving_persona: required # one driver per leg
require_nongoals: true
visual_style: ascii
citation_format: "file:line — snippet"
auto_update_personas: true
# v1.0 consolidation
pause_mode: model-introspection # model-introspection | threshold
dreams_enabled: false # off by default, opt-in
post_commit_hook: disabled # opt-in
remembrance_load_on_compact: true
commit_learning: enabled # V1-014 adaptive quieter prompts
tutorial_graduation: adaptive # V1-013 per-skill friction detection
Automation Tiers
| Tier | Phase transitions | Breakouts | Post-breakout | Commits | Pauses surfaced |
| tutorial | prompt + explain | prompt + explain | pause + explain | full prompt + explain | all (nap, shift, compact) |
| manual | prompt + wait | prompt + wait | pause + wait | full prompt | shift, compact |
| guided | auto | auto | pause + wait | full (quieter if learned) | shift, compact |
| auto | auto | auto | auto-proceed | full (never skipped) | shift, compact |
Commits are never auto-approved across any tier (V1-001). Tutorial
is the fresh-install default; graduation is adaptive and per-skill.
Intent Graph (v1.0.1+)
Decisions form a typed DAG. Each TOPIC-NNN is a node; edges carry
type via the edge_type field on the child.
Edge vocabulary
| edge_type | Meaning |
refines | Child adds constraints to parent |
specializes | Child is a more specific case of parent |
implements | Child realizes parent at lower level |
co-implies | Two siblings jointly imply a third |
tensions | Siblings partially contradict (symmetric) |
supersedes | Replaces an earlier subtree |
Decision frontmatter v2.1 fields (optional)
### RATE-003 — Middleware position
At: 2026-04-15
Commit: abc1234
Drivers: @owner [anchor]
Parent: RATE-001 # intent-graph edge target
Edge_type: refines # refines | specializes | implements | co-implies | tensions | supersedes
Tensions: [] # symmetric; lint reconciles
Realized_at: def5678 # commit that delivered (sealed → realized)
Lifecycle_state: realized # proposed | focused | sealed | realized | retired
Cross-topic callouts
Forward authoritative, reverse lint-cached:
### RATE-003 — Middleware position
At: 2026-04-15
Drivers: @owner [anchor]
Callout-> auth-refactor#AUTH-007 (depends-on)
Callout<- monitoring#MON-002 (affected-by)
Read-side queries
./scripts/intent-graph-query.sh list_nodes # all decisions, all topics
./scripts/intent-graph-query.sh get_node RATE-003
./scripts/intent-graph-query.sh get_children RATE-001
./scripts/intent-graph-query.sh get_parents RATE-003
./scripts/intent-graph-query.sh get_path RATE-003 # walk to root
./scripts/intent-graph-query.sh get_orphans # sealed without parent
./scripts/intent-graph-query.sh get_unrealized # sealed without realized_at
./scripts/intent-graph-query.sh get_tensions # contradicting siblings
./scripts/intent-graph-query.sh get_supersedes # supersession edges
./scripts/intent-adherence.sh # sealed-vs-realized grid (repo-wide)
./scripts/intent-adherence.sh rate-limiting # filtered to one topic
./scripts/intent-adherence.sh --csv > adherence.csv # for downstream tooling
Read-side only in v1.0.1. Write-side mutations remain hand-edits to
frontmatter. Composition (distillation, naming) deferred to v1.2+.
Scripts
# Check for stale code citations
./scripts/validate-citations.sh specs/.storytime/sessions/rate-limiting/
# Verify breakout output completeness
./scripts/validate-breakouts.sh specs/.storytime/sessions/rate-limiting/001/
# Validate cross-topic callouts
./scripts/validate-callouts.sh
# On-demand decisions view across all threads
./scripts/decisions-view.sh --status=active
# Read-side intent graph queries (v1.0.1)
./scripts/intent-graph-query.sh get_orphans
./scripts/intent-graph-query.sh get_unrealized
# Adherence visualization — sealed vs realized (v1.0.1)
./scripts/intent-adherence.sh
# Convention enforcement (version, schema, drivers, etc.)
./scripts/check-conventions.sh
# Migrate v0.9.x repo to v1.0 shapes
./scripts/migrate-to-v1.sh --apply --commit
# Bump version across all files (storytime + plugin.json + README + site)
./scripts/bump-version.sh 1.1.0