plans/ held 58 documents and exactly one said whether it was open. The rest
mixed finished work, reviews of shipped work, parked specs and genuinely
pending ones, with nothing distinguishing them, so "how many plans are in
the queue" had no answer short of reading all 58.
Now `grep -H '^Status:' plans/*.md` is the answer:
50 done 3 in progress 2 planned 2 reference 1 parked
Statuses were derived rather than guessed: CLAUDE.md's own built list and
"What's NOT built yet" section, plus checking the subject exists in the
code. A review of work that shipped counts as done -- it records what was
found, it is not a request for anything. `reference` separates the two docs
that are conventions rather than work items (admin-design-standards,
admin-work-framework), which otherwise read as permanently-open plans.
The vocabulary is deliberately five words. A larger one invites "mostly
done" and "blocked-ish", which is how the directory became unreadable.
test_plans_declare_status.py keeps it from rotting: a new plan without a
marker fails, as does an unknown status, one buried below the eighth line,
or an open status with no reason -- "planned" alone is the state that rots,
since nobody can tell later whether it waits on a decision, a dependency,
or just nobody's turn.
Also updates the sweep plan with what landed and what did not, including
that #9 was not a defect.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VRQXz5SYZYVWscxS1QqF6U
105 lines
5.4 KiB
Markdown
105 lines
5.4 KiB
Markdown
# Review: README restructure (commit `14a7653`)
|
|
|
|
Status: done -- review of shipped work
|
|
|
|
**What it was reviewing:** opencode's implementation of
|
|
`plans/readme-restructure.md` — reshaping `README.md` around a
|
|
pitch → features → install → per-command usage structure borrowed from
|
|
`supabase-plus`'s README shape. Checked the actual diff (`git show
|
|
14a7653`) line by line against the spec's explicit constraints, not just the
|
|
new document's surface quality.
|
|
|
|
## Verdict: the restructuring itself is well done; one section's content was silently dropped, and one TOC link is dead
|
|
|
|
### What's correct, including the part most likely to go wrong
|
|
|
|
The spec's two "needs a decision, don't invent" items — a `## License`
|
|
section and a `## Repo & Contributions` section — are both correctly
|
|
**absent** from the new README. Neither a LICENSE file nor an honest
|
|
contributions policy exists yet, and the plan was explicit that opencode
|
|
should not fabricate either. Checked directly (`grep -i
|
|
"license\|contribut"` against every heading): nothing was invented. This
|
|
was the single most important constraint in the spec and it held.
|
|
|
|
Everything else structural matches: `## Features` uses the five bullets the
|
|
plan proposed, pulled from existing claims rather than invented ones;
|
|
`## Requirements` is pulled out as its own section; `## Installation` has
|
|
exactly the two real sub-methods (`Local (venv)`, `As a systemd service`)
|
|
rather than fabricated ones; `## Usage` is restructured into nine
|
|
per-command sections matching the plan's mapping table, and spot-checking
|
|
"Watch it live" and "Probe routing without spending" confirms the
|
|
Monitoring section's content (all five tools: `/metrics`, `/events/decisions`,
|
|
`tui.py`, `baseline_report.py`, `router_cli.py`) survived the reflow intact,
|
|
just condensed. A Table of Contents now exists where none did before.
|
|
|
|
### `## Setup`'s "Where Ollama lives" subsection was deleted, not moved
|
|
|
|
**Confirmed by diff, not inference.** `git show 14a7653 -- README.md`
|
|
shows this entire block removed with no corresponding addition anywhere in
|
|
the new document:
|
|
|
|
```
|
|
-### Where Ollama lives
|
|
-
|
|
-```bash
|
|
-ollama pull mistral-nemo:12b # or whatever you set as classifier.model
|
|
-```
|
|
-
|
|
-...To use one across a VPN, point **both** endpoints at it:
|
|
-...and apply `deploy/ollama-over-vpn.conf` on the serving host — Ollama binds
|
|
-`127.0.0.1` by default and will otherwise refuse. Bind it to the VPN address
|
|
-rather than `0.0.0.0`: Ollama has no authentication, so anything reaching the
|
|
-port can run inference and enumerate your models.
|
|
-
|
|
-Both endpoints move together because the verifier speaks Ollama's *native*
|
|
-API and cannot follow the classifier to a cloud provider...
|
|
```
|
|
|
|
Grepped the current `README.md` for `ollama-over-vpn`, `ollama pull
|
|
mistral-nemo`, and `Both endpoints move together` — zero hits. This isn't a
|
|
paraphrase living somewhere else; the content is gone.
|
|
|
|
**Why this matters more than an ordinary trim.** This section carried a real
|
|
security instruction, not just background — Ollama has no authentication of
|
|
its own, and the doc's own words were the thing telling a reader to bind it
|
|
to a VPN address rather than `0.0.0.0`. The plan's own "What must NOT
|
|
change" section was explicit: *"Everything below stays exactly as it is,
|
|
moved but not rewritten"* and *"No new measurements, dates, or claims"* —
|
|
the inverse, dropping an existing one, was never authorized either. The most
|
|
likely mechanical cause: the old "Setup" section's opening sentence moved to
|
|
`## Requirements` and its venv steps moved to `## Installation`, and
|
|
"Where Ollama lives" — a `###` subsection of the same old `## Setup` — seems
|
|
to have been left behind in that split rather than carried to either
|
|
destination.
|
|
|
|
### Dead TOC link: "Scheduled Jobs (systemd)"
|
|
|
|
The Table of Contents (line 74) still has an entry
|
|
`- [Scheduled Jobs (systemd)](#scheduled-jobs-systemd)`. That heading no
|
|
longer exists — the content it pointed to was correctly moved into `###
|
|
As a systemd service` under Installation, which already has its own
|
|
correct TOC entry at line 43. The old line was never removed, so it's a
|
|
link to nowhere sitting in a document whose main improvement this pass was
|
|
*adding working navigation*. One line to delete.
|
|
|
|
A handful of other headings with em-dashes, backticks, or `&` (e.g.
|
|
`` `models` — one row per served model variant``, `Known Limitations & Open
|
|
Items`) produced anchor mismatches against a straightforward slugify check,
|
|
but GitHub- and Gitea-flavored anchor generation both have their own
|
|
non-obvious rules for those characters that a quick script can't be trusted
|
|
to reproduce exactly — these are worth a manual click-through in whatever
|
|
renderer this repo actually displays in (Gitea, at `git.adlee.work`), not
|
|
something to fix on the strength of this review alone.
|
|
|
|
## Recommendation
|
|
|
|
Restore "Where Ollama lives" verbatim — it's sitting in `git show
|
|
14a7653^:README.md` (the pre-restructure version) if a clean copy is
|
|
needed — into `## Installation`, most naturally as a third subsection
|
|
alongside `Local (venv)` and `As a systemd service` (it's setup guidance
|
|
that applies to either), or folded into `Local (venv)` if a separate
|
|
heading feels like too much for one paragraph plus a warning. Delete the
|
|
dead `Scheduled Jobs (systemd)` TOC line. Then do one manual pass clicking
|
|
every TOC link in the actual Gitea-rendered view, since that's the renderer
|
|
that matters here and not something worth guessing at from a script.
|