steid

@jamesgill /

docs: record the icon staging trap and tick the repo-creation check

Both belong in 285f5fd and were missed there — a separate docs commit is the symptom
CLAUDE.md warns about, recorded rather than tidied away.

`topcoat ui add select` advertises copying a file but also needs the `icon-iconify`
feature and an icon set staged in build.rs. The build fails with a clear message, so it
is discoverable, but not from the command's description.

The manual verification checklist's first row is a Milestone 3 item and is now actually
done, so it is ticked with what was checked alongside it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
JamesPatrickGill authored 24 days agoparent285f5fdBrowse files64222c3ed20511ce5802c12b1a0361db72c3bd04

2 files changed+21 −2

plans/runbook.md+4 −2View file
@@ -125,8 +125,10 @@ Attempt #2 verified these by hand each milestone but never wrote down the steps.
125125 are the smoke test for Milestones 4–5. The auth rows assumed SSH keys; the shape of
126126 the check still holds with tokens substituted:
127127
128- [ ] Create a repo via the web UI → bare repo appears at
129 `{data_dir}/{org}/{repo}.git`
128+- [x] Create a repo via the web UI → bare repo appears at
129+ `{data_dir}/{handle}/{name}.git` *(Milestone 3; also checked that the name
130+ normalises, that a duplicate re-renders the form, and that a private repo 404s
131+ for a signed-out visitor)*
130132 - [ ] `git clone` an empty repo → succeeds
131133 - [ ] `git clone` a repo with history → succeeds
132134 - [ ] `git clone` a non-existent repo → clean error, not a hang or panic
plans/ui.md+17 −0View file
@@ -69,6 +69,23 @@ topcoat ui list # what the registry offers
6969 topcoat ui add <name> # copies source into src/components/
7070 ```
7171
72+`components.toml` is the record of what is installed; don't duplicate that list here.
73+
74+**A registry component can need more than a copy.** `select` draws its chevron with an
75+Iconify icon, which needs the `icon-iconify` feature on `topcoat` *and* the icon set
76+staged in `build.rs`:
77+
78+```rust
79+topcoat::icon::iconify::BuildConfig::new().icon_set("feather").stage().unwrap();
80+```
81+
82+The build fails with a message naming the missing set, so it is discoverable — but the
83+build.rs edit is easy not to expect from a command that only advertises copying a file.
84+Icons are embedded at build time; nothing is fetched at runtime.
85+
86+`topcoat ui add` also rewrites the module list in `src/components.rs` by appending, so
87+re-alphabetise it afterwards.
88+
7289 ## Prior art
7390
7491 Attempt #1 (`steid-backup/AGENTS/UI.md`) has a complete 643-line design system —