Add kaizen friction log and schedule the kaizen-loop setup
docs/FRICTION.md: a running log of friction/gotchas/recurring-fixes/unused tooling, seeded with this session's real signals — raw material for the periodic kaizen review. docs/TODO.md: schedule building /retro in ~1 week, and record the Claude-setup decision. (Also carries your earlier backlog edits.) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
778b581729
commit
11af84938d
2 changed files with 52 additions and 1 deletions
37
docs/FRICTION.md
Normal file
37
docs/FRICTION.md
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
# FRICTION.md — kaizen friction log
|
||||||
|
|
||||||
|
Raw signals for the periodic **kaizen review** (the methodology retrospective; see
|
||||||
|
`docs/TODO.md`). This is the input that keeps our tooling and conventions sharpening
|
||||||
|
over time instead of only accreting.
|
||||||
|
|
||||||
|
**How to use:** append freely *during* work — don't curate, don't fix here. Capture
|
||||||
|
friction, surprises, fixes that keep recurring, and tooling that isn't earning its
|
||||||
|
keep. The kaizen review reads this, then proposes **add / change / remove** (biased
|
||||||
|
toward *remove*) and records the decisions as ADRs.
|
||||||
|
|
||||||
|
**Entry format:** `date — [tag] observation — (optional) → systematization idea`
|
||||||
|
Tags: `[friction]` recurring annoyance · `[gotcha]` surprising behaviour ·
|
||||||
|
`[recurring]` keeps coming back, should be systematized · `[unused]` tooling not
|
||||||
|
earning its keep.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2026-05-30 — initial seed (from the Claude-Code setup session)
|
||||||
|
|
||||||
|
- `[recurring]` Every `git commit` needs `rbw` unlocked (the pre-commit ansible-lint
|
||||||
|
hook decrypts `vault.yml` for its syntax-check). Mitigated with a 5h lock timeout
|
||||||
|
and an `rbw unlocked` pre-flight convention. → *Open:* could ansible-lint skip vault
|
||||||
|
decryption for syntax-check, so committing doesn't need the vault at all?
|
||||||
|
- `[gotcha]` pre-commit stashes *unstaged* changes before running hooks, so a partial
|
||||||
|
commit reverted an interdependent file (`ansible.cfg`) and failed. → Commit
|
||||||
|
interdependent changes together, or stage the config change first.
|
||||||
|
- `[gotcha]` `make new-role` had never worked on this host: `mkdir {a,b,c}` brace
|
||||||
|
expansion fails under `/bin/sh` (dash). Fixed with explicit paths. → A real run
|
||||||
|
catches what static review can't; consider smoke-testing scaffold commands.
|
||||||
|
- `[gotcha]` `rbw sync` is required after adding a Vaultwarden item before `rbw get`
|
||||||
|
finds it (stale local cache).
|
||||||
|
- `[gotcha]` This shell is zsh — unquoted `$VAR` does not word-split, so a variable
|
||||||
|
holding a file list was passed as a single argument. → Use explicit args/arrays.
|
||||||
|
- `[friction]` Long sessions: I make a batch of edits but can't commit until you
|
||||||
|
`rbw unlock`. The 5h timeout + pre-flight check address the symptom; watch whether
|
||||||
|
it still bites.
|
||||||
16
docs/TODO.md
16
docs/TODO.md
|
|
@ -3,7 +3,7 @@
|
||||||
- [x] Main readme only says ansible, not terraform. Should properbly be included.
|
- [x] Main readme only says ansible, not terraform. Should properbly be included.
|
||||||
- [x] Main readme does not include a description of the name boma, nor the scope (i.e. infrastructure - not laptops)
|
- [x] Main readme does not include a description of the name boma, nor the scope (i.e. infrastructure - not laptops)
|
||||||
|
|
||||||
- [ ] Method to review repo to ensure
|
- [x] Method to review repo to ensure
|
||||||
- We dont carry around code, comments, notes, etc. that is no longer needed but was perhaps added to fix an issue that has been resolved.
|
- We dont carry around code, comments, notes, etc. that is no longer needed but was perhaps added to fix an issue that has been resolved.
|
||||||
- That all code, structure, comments, notes etc. follow our design decisions.
|
- That all code, structure, comments, notes etc. follow our design decisions.
|
||||||
- That clear intent is documented throughout - and that there are not any overlaps, contradictions etc.
|
- That clear intent is documented throughout - and that there are not any overlaps, contradictions etc.
|
||||||
|
|
@ -21,6 +21,8 @@
|
||||||
- What to install on nodes?
|
- What to install on nodes?
|
||||||
- firewalls?
|
- firewalls?
|
||||||
- apps?
|
- apps?
|
||||||
|
- wirering up loki, prometheous, grafana dashboards, grafana alerts, uptimekuma alerts on askari
|
||||||
|
- tagging strategy - we need a specific standard so that we can target runs, but dont over-tag.
|
||||||
|
|
||||||
- [ ] Split horizon FQDN - with or without nyumbani
|
- [ ] Split horizon FQDN - with or without nyumbani
|
||||||
|
|
||||||
|
|
@ -48,3 +50,15 @@
|
||||||
managed /etc/cron.d file. Open Qs: general role vs control-node-only; prune
|
managed /etc/cron.d file. Open Qs: general role vs control-node-only; prune
|
||||||
undeclared jobs (repo authoritative) vs additive; validate headless email + that
|
undeclared jobs (repo authoritative) vs additive; validate headless email + that
|
||||||
cron's env has the `claude` CLI. The /review-repo fortnightly job is the first entry.
|
cron's env has the `claude` CLI. The /review-repo fortnightly job is the first entry.
|
||||||
|
|
||||||
|
- [ ] Claude setup
|
||||||
|
- superpowers or other methodologies? → decided: brainstorm for intent, capture as
|
||||||
|
ADRs (skip plan files); hooks + slash commands + /review-repo for enforcement at scale.
|
||||||
|
|
||||||
|
- [ ] Kaizen loop — set up ~2026-06-06 (one week from now)
|
||||||
|
- Build `/retro`: reads `docs/FRICTION.md` + `/review-repo` recurring findings + a
|
||||||
|
tooling-usage inventory; proposes add / change / **remove** (biased to remove);
|
||||||
|
records decisions as ADRs; evaluates itself. Recurrence-triggered + light periodic sweep.
|
||||||
|
- `docs/FRICTION.md` is live now — keep appending raw signals until the retro consumes them.
|
||||||
|
|
||||||
|
- [ ] What is the right order of operation when spinning up from scratch? (OS, DNS, authentik, traefik...?)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue