Skip to main content

What is a Unit?

A Unit is a cohesive, self-contained work element derived from an Intent. Units are loosely coupled and can be developed independently.
A Unit is analogous to a Subdomain in DDD or an Epic in Scrum, but with clearer boundaries and AI-assisted decomposition.

Unit Characteristics

Cohesive

All elements within a unit serve a single, focused purpose

Self-Contained

Can be developed and tested independently

Loosely Coupled

Minimal dependencies on other units

Well-Bounded

Clear interfaces with the rest of the system

Example: Authentication Intent → Units

An “User Authentication System” intent might decompose into:

Unit Structure

Each unit lives in its own directory:

Unit Brief

The unit-brief.md defines the unit:

Decomposing into Units

The Inception Agent helps decompose intents:
The agent will:
1

Analyze Requirements

Review user stories and NFRs from the intent
2

Identify Boundaries

Find natural groupings based on cohesion
3

Propose Units

Suggest unit structure with rationale
4

Define Interfaces

Establish how units communicate
5

Map Dependencies

Identify unit interdependencies

Unit Dependencies

Units should be loosely coupled, but some dependencies are natural:
Circular dependencies between units indicate poor decomposition. If Unit A depends on Unit B and Unit B depends on Unit A, consider merging them or extracting the shared concern.

Best Practices

Each unit should have one clear purpose. If a unit is doing too many things, split it.
Define explicit interfaces. Other units should only interact through these interfaces.
You should be able to work on a unit without constantly coordinating with other units.
A unit should be testable without requiring the full system.

Next Steps

Bolts

Learn how Units are implemented through Bolts