← Spec-driven workflows guides

How to configure team rules in bootstrap.project.md

How-To Spec-driven workflows Beginner 1081005HOWTO-1081005

HOWTO-1081005Spec-driven workflowsBeginner

This guide shows you how to configure shared team rules for a spec-driven development project in .specdd/bootstrap.project.md.

Use this file for project-wide conventions such as commands, formatting, naming, syntax choices, repository layout notes, and links to existing team docs. Keep product behavior, local ownership, and implementation boundaries in .sdd specs.

Short answer

Put shared repository conventions in .specdd/bootstrap.project.md. The file is loaded after .specdd/bootstrap.md and before .specdd/bootstrap.local.md, so it is the right place for team rules that all contributors and agents should share. Do not put durable local behavior or area-specific write authority there.

When to use this guide

Use this guide when:

What belongs in bootstrap.project.md

Good shared rules include:

Do not put these in .specdd/bootstrap.project.md:

Steps

1. Identify shared team rules

Collect rules that apply to the whole repository or most contributors.

Good candidates:

Use pnpm for package commands.
Run pnpm test before marking implementation tasks complete.
Use lowercase same-basename .sdd files for JavaScript modules.
Put generated API docs under docs/api.

Not a team bootstrap rule:

The itinerary module rejects missing place names.

That belongs in the local Itinerary spec because it describes behavior owned by one area.

2. Edit bootstrap.project.md

Create or update:

.specdd/bootstrap.project.md

Example:

# Project Rules

## Commands

- Install dependencies with `pnpm install`.
- Run unit tests with `pnpm test`.
- Run linting with `pnpm lint`.
- Run formatting with `pnpm format`.

## SpecDD Conventions

- Use same-basename `.sdd` files for file-level behavior.
- Use directory-level specs for module boundaries.
- Use explicit `./`, `../`, or `/` path prefixes when a spec entry should resolve as a path.
- Use `Can modify` when writable scope is narrower than `Owns`.

## Documentation Locations

- Architecture decisions live in `docs/adr/`.
- Runbooks live in `docs/runbooks/`.
- Product notes live in `docs/product/`.

Keep the file direct. It should tell contributors what convention to follow, not recreate every project document.

3. Keep product behavior in specs

If a rule describes what a feature must do, put it in a .sdd spec near the feature.

Spec: Itinerary

Must:
  Reject itinerary items without a place name.

Team conventions belong in .specdd/bootstrap.project.md. Local behavior belongs in .sdd files.

If the team already has style, architecture, or operations docs, reference their locations from the project bootstrap instead of copying all content.

## Existing Project Docs

- API design guidance lives in `docs/api-guidelines.md`.
- Release runbooks live in `docs/runbooks/release.md`.
- Domain glossary lives in `docs/domain-glossary.md`.

When a local spec needs a specific outside contract, use the spec’s References or Can read sections. The bootstrap file makes shared locations discoverable; local specs decide what matters for a target.

5. Commit shared rules

Commit .specdd/bootstrap.project.md with the project. It is shared setup context.

Do not commit personal preferences in .specdd/bootstrap.local.md. That file is for local operator or environment overrides and is normally ignored.

6. Verify agents can apply the rules

Use a simple workflow check:

Explain the shared project conventions.

Then check whether the answer names the right package manager, commands, spec naming conventions, and docs locations. If the answer is vague, tighten the bootstrap project file.

Best practices

Common mistakes

How to verify the result

Your team bootstrap is working when:

← Spec-driven workflows guides