Skip to content
New from the specs.md team — fabriqa orchestrates Claude Code, Codex, Gemini CLI & more in one workflow.Download free →
v1
Esc
navigateopen⌘Jpreview
On this page

Units

Cohesive, self-contained work elements derived from Intents

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.

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:

Intent: User Authentication System
├── Unit: User Registration
│   ├── Registration form
│   ├── Email validation
│   └── Account creation
├── Unit: User Login
│   ├── Login form
│   ├── Session management
│   └── Remember me
├── Unit: Password Management
│   ├── Password reset
│   ├── Password change
│   └── Password policies
└── Unit: Session Management
    ├── Token handling
    ├── Session expiry
    └── Logout

Unit Structure

Each unit lives in its own directory:

memory-bank/intents/{intent}/units/{unit-name}/
├── unit-brief.md        # Unit definition and scope
├── stories/             # User stories for this unit
│   ├── story-001.md
│   └── story-002.md
└── bolts/               # Bolt execution records
    ├── bolt-001/
    └── bolt-002/

Unit Brief

The unit-brief.md defines the unit:

# Unit: User Registration

## Purpose
Enable new users to create accounts in the system.

## Scope

### In Scope
- Email/password registration
- Email validation
- Account creation in database
- Welcome email

### Out of Scope
- Social login (separate unit)
- Profile management (separate unit)

## Dependencies
- Email Service (external)
- User Database (shared)

## Interfaces

### Inputs
- Registration form data (email, password)

### Outputs
- User account created
- Confirmation email sent

## Stories
- US-001: User Registration Form
- US-002: Email Validation
- US-003: Welcome Email

Decomposing into Units

The Inception Agent helps decompose intents:

/specsmd-inception-agent units

The agent will:

Analyze Requirements

Review user stories and NFRs from the intent

Identify Boundaries

Find natural groupings based on cohesion

Propose Units

Suggest unit structure with rationale

Define Interfaces

Establish how units communicate

Map Dependencies

Identify unit interdependencies

Unit Dependencies

Units should be loosely coupled, but some dependencies are natural:

Best Practices

Single Responsibility

Each unit should have one clear purpose. If a unit is doing too many things, split it.

Clear Boundaries

Define explicit interfaces. Other units should only interact through these interfaces.

Independent Development

You should be able to work on a unit without constantly coordinating with other units.

Testable in Isolation

A unit should be testable without requiring the full system.

Next Steps

Bolts

Learn how Units are implemented through Bolts

Was this page helpful?