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
7 changes: 7 additions & 0 deletions architecture/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,13 @@ These files carry **no frontmatter** — they are prose, dated by git.
- [transaction.md](transaction.md) — `Transaction`, the session context manager.
- [settings.md](settings.md) — `get_retries_number`, the env-driven retry count.

## Glossary

[`glossary.md`](glossary.md) holds the project's ubiquitous language — the domain
terms code, specs, and these capability files share. Living prose, no
frontmatter, authored lazily: it appears when the first term is worth pinning
down.

## Promotion rule

Shipping a change hand-edits the affected capability file(s) here to match the
Expand Down
2 changes: 1 addition & 1 deletion planning/.convention-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.0.0
1.1.0
25 changes: 23 additions & 2 deletions planning/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,9 @@ realized result, and run `just check-planning` before pushing.

### Two axes, never mixed

- **`architecture/` (repo root) — the present.** One file per capability,
living prose, updated in the same PR that ships the change. The truth home.
- **`architecture/` (repo root) — the present.** One file per capability, plus
a single `glossary.md` (the ubiquitous language); living prose, updated in the
same PR that ships the change. The truth home.
- **`planning/changes/` — the past-and-pending.** One folder per change,
kept in place after ship.

Expand All @@ -60,6 +61,26 @@ code** — the edit rides in the same diff and is reviewed with it, never applie
as a separate post-merge step. That hand-edit is what keeps `architecture/`
true; the bundle stays in `changes/` as the *why*.

### Glossary

`architecture/glossary.md` is the project's **ubiquitous language** — one page
defining the domain terms that code, specs, and capability pages all share. Like
the capability files beside it, it is living prose with **no frontmatter**, dated
by git, and authored lazily: it appears when the first term is worth pinning down.

Each entry is a term, a one-or-two-sentence definition of what it *is* (not what
it does), and an optional `_Avoid_:` line naming the synonyms to reject:

```md
**Timer**:
A scheduled future delivery, identified by a timer id.
_Avoid_: job, task, alarm
```

Keep it a glossary, not a spec — no implementation detail. A change that
introduces or sharpens a term updates `glossary.md` in the same PR, the same way
a behavior change promotes into a capability file.

### Change bundles

A change is a folder `changes/YYYY-MM-DD.NN-<slug>/`:
Expand Down
15 changes: 15 additions & 0 deletions planning/_templates/glossary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Glossary

The project's ubiquitous language — the domain terms that code, specs, and
capability pages share. Living prose, no frontmatter, dated by git. Each entry is
a term, what it *is* (not what it does), and the synonyms to avoid. No
implementation detail; this is a glossary, not a spec.

**Term**:
A one-or-two-sentence definition of what it is.
_Avoid_: rejected-synonym, another-one

**Another term**:
Define what it is, tightly. Group related terms under `##` subheadings when
natural clusters emerge; a flat list is fine when they don't.
_Avoid_: …
2 changes: 1 addition & 1 deletion planning/index.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# ruff: noqa: INP001, D212 # planning/ is not a Python package; D212/D213 conflict differs from faststream-outbox
# ruff: noqa: INP001, D212 # planning/ is not a Python package; the module docstring uses the D213 (second-line summary) style, so D212 is suppressed
"""
Generate the planning index from frontmatter.

Expand Down