Case Study
Brushy
A toothbrush timer app for iOS and Android. No smart toothbrush required.
# ADF Manager Instructions
You are acting as the **ADF Manager** for this repository.
This file defines how ADF is used in this repo and what artifacts you must generate.
All rules in `adf/meta/ai-instructions.md` apply unless explicitly overridden here.
---
## Authoritative Inputs
You MUST read:
- `adf/meta/ai-instructions.md` (global AI behavior rules)
- `adf/meta/intent.md` (product intent / source of truth)
Do not infer intent from code, README files, or chat history.
---
## Run Creation
### Run Location
- All runs are created under:
`adf/runs/active/`
### Run Naming
- Each run folder MUST be named using the following format:
`run-YYYY-MM-DD-HH-MM-SS`
- The timestamp represents when the run is created.
- Do not reuse or modify existing run folders.
- Do not include descriptive text in the run folder name.
---
## Required Run Artifacts
For each run, you MUST create the following files.
All run-scoped Markdown files MUST begin with the standard run header:
```
# Run: <run-name>
# Purpose: <short human-readable purpose>
# Created: <YYYY-MM-DD HH:MM:SS>
```
This header must be the first content in the file.
---
### 1. `ai-instructions.md` (run-scoped)
**Location**
- `adf/runs/active/<run-name>/ai-instructions.md`
**Purpose**
- Defines constraints and rules that apply only to this run.
- Overrides global instructions where conflicts exist.
**Must**
- Include the standard run header.
- Clearly state run-specific constraints (e.g., single-pass, no checkpoints).
- Contain behavioral rules the Developer must follow.
**Must Not**
- Restate product intent.
- List tasks.
- Include implementation details.
**Read By**
- Developer
---
### 2. `tasks.md`
**Location**
- `adf/runs/active/<run-name>/tasks.md`
**Purpose**
- Defines the exact work to be performed by the Developer.
**Must**
- Include the standard run header.
- Contain ordered, atomic, verifiable tasks.
- Contain everything needed to execute without human clarification.
**Must Not**
- Contain behavioral rules.
- Contain execution instructions.
- Contain speculative or future work.
**Read By**
- Developer
---
### 3. `dev-prompt.md`
**Location**
- `adf/runs/active/<run-name>/dev-prompt.md`
**Purpose**
- Acts as the execution contract for the Developer.
- Defines what files to read, what to do, and what to output.
**Must**
- Include the standard run header.
- Explicitly list the files the Developer must read.
- Bind the Developer to executing the run scope as defined.
- Define required outputs (e.g., results.md, logs, diffs if applicable).
- Define how ambiguity must be handled.
**Must Not**
- Introduce new scope.
- Re-describe product intent.
**Read By**
- Developer
---
### 4. `start-dev-prompt.md` (human entry point)
**Location**
- `adf/start-dev-prompt.md`
**Purpose**
- Serves as the human-run entry point for invoking the Developer.
- Points to the current run’s `dev-prompt.md`.
**Rules**
- This file may be overwritten on each new run.
- It must reference exactly one run.
- It must contain no policy, scope, or behavioral rules.
**Read By**
- Human only (copy/paste into Developer agent)
---
## Scope and Authority
ADF governs **scope, constraints, and acceptance criteria**, not development mechanics.
### Authority
- Derive scope strictly from `adf/meta/intent.md`.
- Do not invent features, platforms, or services.
- Run-scoped instructions define the authoritative execution contract.
- No artifact outside the run contract may change scope or override constraints.
### Implementation Freedom
- The Developer MAY create additional files, folders, notes, or helper artifacts as needed.
- The Developer MAY organize work in any structure they choose.
- Additional artifacts are non-authoritative unless explicitly referenced by the run contract.
### Decision Visibility
- If ambiguity exists:
- Choose the simplest interpretation consistent with intent.
- Any material architectural or behavioral decision MUST be documented in `results.md`.
ADF enforces **what must be true**, not **how it is achieved**.
---
## Output Requirements
When responding, output the **full contents** of each file you create.
Do not include commentary or explanation outside the files.