spec-kitty

Why the Divio Documentation System?

Spec Kitty uses the Divio documentation system to organize its docs. This document explains why we chose this system and how it works.

The Problem with Traditional Documentation

Most documentation suffers from mixed concerns:

Common problems:

The result:

The Four Types of Documentation

The Divio system identifies four distinct types of documentation, each serving a different purpose:

1. Tutorials (Learning-Oriented)

Purpose: Teach a beginner through doing.

Characteristics:

Spec Kitty example: “Your First Feature with Spec Kitty” - walks through creating a feature from start to finish

2. How-To Guides (Task-Oriented)

Purpose: Help accomplish a specific goal.

Characteristics:

Spec Kitty example: “How to Review a Work Package” - steps to review, without explaining why review matters

3. Reference (Information-Oriented)

Purpose: Describe the machinery.

Characteristics:

Spec Kitty example: “CLI Reference” - all commands, flags, and options documented

4. Explanations (Understanding-Oriented)

Purpose: Help understand concepts.

Characteristics:

Spec Kitty example: This document you’re reading right now

The Four Quadrants

                        PRACTICAL                    THEORETICAL
                           ↓                              ↓
           ┌───────────────────────────┬───────────────────────────┐
           │                           │                           │
 STUDYING  │        TUTORIALS          │       EXPLANATIONS        │
           │    (learning-oriented)    │  (understanding-oriented) │
           │                           │                           │
           │    "Follow along to       │    "Why does this work    │
           │     learn X"              │     this way?"            │
           │                           │                           │
           ├───────────────────────────┼───────────────────────────┤
           │                           │                           │
 WORKING   │       HOW-TO GUIDES       │        REFERENCE          │
           │     (task-oriented)       │  (information-oriented)   │
           │                           │                           │
           │    "Steps to             │    "Complete list of      │
           │     accomplish X"         │     all options"          │
           │                           │                           │
           └───────────────────────────┴───────────────────────────┘

Why This Works

Different users need different things at different times:

User State Need Doc Type
New to Spec Kitty Learn the basics Tutorial
Need to do something specific Practical steps How-To
Looking up a specific flag Accurate information Reference
Want to understand design decisions Context and reasoning Explanation

The same user might need all four types at different times:

  1. Day 1: Follow the tutorial
  2. Week 1: How to handle a specific case
  3. Week 2: Look up command syntax
  4. Month 1: Understand why the architecture is this way

How Spec Kitty Uses Divio

Documentation Structure

docs/
├── tutorial/                    # Learning-oriented
│   ├── first-feature.md         # Your first feature end-to-end
│   ├── working-with-agents.md   # Multi-agent basics
│   └── ...
│
├── how-to/                      # Task-oriented
│   ├── review-work-package.md   # How to review
│   ├── resolve-conflicts.md     # How to handle merge conflicts
│   └── ...
│
├── reference/                   # Information-oriented
│   ├── cli-reference.md         # All commands and flags
│   ├── configuration.md         # All config options
│   └── ...
│
└── explanation/                 # Understanding-oriented
    ├── spec-driven-development.md
    ├── divio-documentation.md   # (this file)
    ├── workspace-per-wp.md
    └── ...

Cross-Referencing

Each doc type links to related docs of other types:

Writing Guidelines

When writing tutorials:

When writing how-tos:

When writing reference:

When writing explanations:

Common Mistakes to Avoid

Mixing Types

Bad (tutorial mixed with reference):

# Getting Started

Run `spec-kitty init`. This command accepts the following flags:
--force, --quiet, --verbose, --config=PATH, --mission=TYPE...
[100 lines of flag documentation]

Good (tutorial with link to reference):

# Getting Started

Run `spec-kitty init` to set up your project.
For all available options, see the [CLI Reference](/spec-kitty/reference/cli-commands.html#spec-kitty-init).

Wrong Type for User State

Bad (explanation when user needs how-to):

# How to Resolve Merge Conflicts

First, let's understand why merge conflicts occur. When Git
encounters changes to the same file from different branches,
it cannot automatically determine which changes to keep...
[500 words of theory]

Good (how-to focused on doing):

# How to Resolve Merge Conflicts

1. Identify conflicting files: `git status`
2. Open each file and find `<<<<<<<` markers
3. Choose which changes to keep
4. Remove conflict markers
5. Stage and commit: `git add . && git commit`

For background on why conflicts occur, see [Git Worktrees Explained](/spec-kitty/explanation/git-worktrees.html).

Further Reading

See Also


This document explains why we use Divio. For how to write documentation, see the tutorials and how-to guides.

Try It

How-To Guides

Reference