Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fc6d5628a7 | ||
|
|
1f7f53e6c0 |
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "skills",
|
"name": "skills",
|
||||||
"description": "Mathias's engineering skills library, plus the hooks and MCP servers that make it enforceable: TDD, clean code, debugging, specs, discovery, CI, and secret hygiene.",
|
"description": "Mathias's engineering skills library, plus the hooks and MCP servers that make it enforceable: TDD, clean code, debugging, specs, discovery, CI, and secret hygiene.",
|
||||||
"version": "0.18.0",
|
"version": "0.18.1",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Mathias",
|
"name": "Mathias",
|
||||||
"url": "https://git.d-ma.be/mathias"
|
"url": "https://git.d-ma.be/mathias"
|
||||||
|
|||||||
+21
-2
@@ -58,8 +58,8 @@ adr: 0004
|
|||||||
title: <the decision, as a sentence — not "database choice">
|
title: <the decision, as a sentence — not "database choice">
|
||||||
status: proposed | accepted | superseded | amended
|
status: proposed | accepted | superseded | amended
|
||||||
date: 2026-08-29
|
date: 2026-08-29
|
||||||
deciders: <who accepted it, by name — or "pending: <name>" while proposed>
|
deciders: <who accepted it, by name — or "pending: <name>" (QUOTED) while proposed>
|
||||||
supersedes: <adr number, or ->
|
supersedes: <adr number, or null>
|
||||||
---
|
---
|
||||||
|
|
||||||
# ADR-0004 — <same title>
|
# ADR-0004 — <same title>
|
||||||
@@ -97,6 +97,25 @@ the condition that fires a revisit. An ADR with no validation section is a prefe
|
|||||||
with a template around it.
|
with a template around it.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### The frontmatter must actually parse
|
||||||
|
|
||||||
|
It exists to be machine-read, so a block that does not load is worse than no block at
|
||||||
|
all: it drops that ADR silently out of every "what is still open?" query, while looking
|
||||||
|
correct. Two shapes this template used to suggest are invalid YAML, and both were found
|
||||||
|
live in the estate on 2026-09-05 — `openbanking-api` ADR-0001 and `infra` ADR-0019, each
|
||||||
|
copied verbatim from here:
|
||||||
|
|
||||||
|
| Wrong | Why | Right |
|
||||||
|
|---|---|---|
|
||||||
|
| `supersedes: -` | a bare dash is a YAML *sequence entry*, not a string | `supersedes: null` |
|
||||||
|
| `deciders: pending: Mathias` | the second, unquoted colon reads as a nested mapping | `deciders: "pending: Mathias"` |
|
||||||
|
|
||||||
|
Check before committing:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
python3 -c "import yaml,sys;yaml.safe_load(open(sys.argv[1]).read().split('---')[1]);print('ok')" docs/adr/0004-*.md
|
||||||
|
```
|
||||||
|
|
||||||
## Preserving a productive tension
|
## Preserving a productive tension
|
||||||
|
|
||||||
Some tradeoffs are not unresolved because nobody thought hard enough. They are
|
Some tradeoffs are not unresolved because nobody thought hard enough. They are
|
||||||
|
|||||||
Reference in New Issue
Block a user