26 lines
1.5 KiB
Markdown
26 lines
1.5 KiB
Markdown
# CLAUDE.md
|
|
|
|
`relay` is a small Ruby CLI that delivers webhook payloads to configured endpoints and
|
|
reports on delivery outcomes. Configuration lives in `config/relay.yml`; failed deliveries
|
|
that exhaust retries go to the dead-letter file.
|
|
|
|
## Architecture decisions
|
|
|
|
This project records architecture decisions as ADRs in `docs/adr/` (index:
|
|
`docs/adr/README.md`).
|
|
|
|
- **When** your task involves making an architecture-level choice, or changing/replacing an
|
|
approach this codebase already uses (persistence, delivery/retry strategy, file formats,
|
|
libraries, conventions) → **first** run `/os-adr:find` to check whether a recorded decision
|
|
already covers it.
|
|
- Mechanical rule: **before your first edit to any existing source or config file**, run
|
|
`/os-adr:find` on the paths you are about to touch — one cheap, deterministic CLI call.
|
|
This applies to additions too: a new method or option can bypass a decided constraint just
|
|
as easily as a rewrite can.
|
|
- **When** you make such a choice → record it with `/os-adr:create`.
|
|
- If an Accepted ADR covers the approach you are changing, you are **reversing a recorded
|
|
decision**. A task that reverses a recorded decision is **not complete until the superseding
|
|
ADR is created** (`/os-adr:create` with `supersedes`) — implementing the change and stopping
|
|
leaves `docs/adr/` asserting the opposite of what the code does. Create the superseding ADR
|
|
(or explicitly propose it to the user) before you consider the task done.
|