Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .abcd/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# .abcd/

ferry's development namespace. Everything here is developer-facing material — it
stays in the repo (transparent) but never ships to a ferry user. User-facing
documentation lives under [`../docs/`](../docs/), which is the only dev-adjacent
tree written for the reader of the CLI.

- **[`development/`](development/)** — the durable record (committed): plans,
research, and architecture decisions. The specification the build works from.

Working memory (`.work/`, committed shared orientation, and `.work.local/`,
git-ignored local ephemera) currently sits at the repo root; a phase-2 migration
folds it under this namespace (`.abcd/work/`, `.abcd/.work.local/`). Until then,
see [`../AGENTS.md`](../AGENTS.md) for the working-memory split.
17 changes: 17 additions & 0 deletions .abcd/development/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Development record

ferry's durable design record — the "what / why" the build works from. Kept in
the repo (transparent) but developer-facing, never shipped to a ferry user;
user-facing documentation lives under [`../../docs/`](../../docs/). Organised
flat by artefact type, one canonical home per concept:

| Folder | What it holds | Naming |
|---|---|---|
| [`plans/`](plans) | Dated design / implementation plans — "here's how we will build X". | `YYYY-MM-DD-topic.md` |
| [`research/`](research) | Investigations that inform design without being decisions — SOTA surveys, spikes, prior-art reviews. | `YYYY-MM-DD-topic.md` |
| [`decisions/`](decisions) | Architecture Decision Records (MADR) — settled decisions, the *why* plus rejected alternatives. | `NNNN-title.md` |

**Conventions.** Plans and research notes are date-prefixed (chronological);
ADRs use a sequential `NNNN` prefix (stable cross-reference handles). Present
tense only — history lives in git. A decision extracted from a plan graduates to
an ADR in [`decisions/`](decisions).
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@

## Context and problem statement

ferry records architecture decisions as MADR files under `docs/decisions/`. We
ferry records architecture decisions as MADR files under
`.abcd/development/decisions/`. We
need one naming convention that sorts stably, reads unambiguously, and does not
force coordination between branches before a decision can be written down. A
superseded draft proposed a `<date>--<slug>` scheme (for example
Expand Down
11 changes: 11 additions & 0 deletions .abcd/development/decisions/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Decision records

Architecture Decision Records (ADRs) in [MADR](https://adr.github.io/madr/)
format — retrospective, settled decisions that record the *why* and the
alternatives rejected.

Each ADR is named `NNNN-title.md` with a sequential `NNNN` prefix (stable
cross-reference handles, unlike the date-prefixed plans and research). Authors
take the next free number optimistically on their branch; a collision blocks the
merge so the second branch to land renumbers (see
[ADR 0001](0001-adr-naming-sequential-madr.md)). Present tense only.
45 changes: 45 additions & 0 deletions .abcd/development/plans/2026-07-08-v0.7.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# ferry v0.7.1 — developer documentation moves to the `.abcd/` namespace

**Status:** shipped in v0.7.1 — the durable-record move and its tooling ripple
are delivered.
**Owner:** REPPL. **Type:** implementation plan (Diátaxis: one plan, no mixing).

## 1. Goal and scope

Align ferry with the sibling `abcd-cli` model so `docs/` carries user-facing
documentation only and developer-facing records move to a `.abcd/development/`
namespace. This is a structural migration — `git mv` plus text edits, no runtime
behaviour change.

In scope for v0.7.1 (the durable-record move and its ripple):

- Move `docs/plans/`, `docs/research/`, and `docs/decisions/` (ADRs) to
`.abcd/development/{plans,research,decisions}/`.
- Add structure READMEs: `.abcd/README.md`, `.abcd/development/README.md`, and
the per-directory READMEs, describing what each area holds and the naming
conventions (`YYYY-MM-DD-topic.md` for plans and research; `NNNN-title.md`
MADR for decisions).
- Change the scaffold generator (`internal/agents/scaffold.go`) so a scaffolded
repo gets `docs/` = Diátaxis only and `.abcd/development/{plans,research,
decisions}` for developer records; regenerate the golden fixtures.
- Repoint the release and consistency tooling (`scripts/check-plan-shipped.sh`,
`scripts/consistency-lint.sh`, `.github/workflows/release.yml`) and the docs
and agent text at the new paths.

## 2. Out of scope (deferred)

- Folding working memory (`.work/`, `.work.local/`) under the `.abcd/`
umbrella. That is an approved phase-2 migration handled separately.
- Any cross-repo convention change to the shared `ABCDevelopment/CLAUDE.md`.

## 3. Approach

The proposal in
[`.abcd/development/research/2026-07-08-docs-structure-proposal.md`](../research/2026-07-08-docs-structure-proposal.md)
maps both repos and sets the ordered migration ripple. Because the release gate
is tag-triggered on `main`, the moves and the tooling updates land in one change
so `main` is always internally consistent. The scaffold golden tests fail loudly
until their fixtures match the new layout — that lockstep is the safety net.

The change is fully reversible: `git mv` plus text edits, no data migration and
no release cutover.
2 changes: 1 addition & 1 deletion docs/plans/README.md → .abcd/development/plans/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Release plans

Reference for the design plans under `docs/plans/`.
Reference for the design plans under `.abcd/development/plans/`.

Each plan captures the design for one release. A plan is named
`YYYY-MM-DD-vX.Y.Z.md`, where the date is when the plan was written and the
Expand Down
Loading
Loading