diff options
Diffstat (limited to 'inbox')
| -rw-r--r-- | inbox/PROCESSED-2026-07-11-0222-from-.emacs.d-ui-prototype-rule-proposal.org | 55 | ||||
| -rw-r--r-- | inbox/lint-followups.org | 8 |
2 files changed, 60 insertions, 3 deletions
diff --git a/inbox/PROCESSED-2026-07-11-0222-from-.emacs.d-ui-prototype-rule-proposal.org b/inbox/PROCESSED-2026-07-11-0222-from-.emacs.d-ui-prototype-rule-proposal.org new file mode 100644 index 0000000..eeb60e7 --- /dev/null +++ b/inbox/PROCESSED-2026-07-11-0222-from-.emacs.d-ui-prototype-rule-proposal.org @@ -0,0 +1,55 @@ +#+TITLE: Proposal: UI features require a prototype phase before build-to-spec +#+AUTHOR: Craig Jennings +#+DATE: 2026-07-11 + +* The rule (Craig approved promotion 2026-07-11) + +When a spec'd feature has a UI, don't build straight from the spec. After the +initial spec, run several UI/UX prototype feedback loops — iteratively driving +the remaining functionality alongside the look and feel — then fold what settled +back into the spec. Only then "build to the prototype": the built feature should +look and behave as close to the prototype as possible, and any deviation is +documented in an addendum section of the prototype/spec itself. + +* Where it should live (rulesets session decides exact home) + +Two natural homes; probably both: + +1. The =brainstorm= skill's Phase 3. Today Phase 3 presents the design in chunks + and stops. Add: if the feature has a UI, the design isn't "accepted" until it + has been through a prototype UI/UX phase (several feedback loops), and the + spec records what the prototype settled. The spec's Next Steps then say + "build to the prototype," not "build to the spec." + +2. A spec-lifecycle rule (=docs-lifecycle.md=, or a small new workflow rule). + The lifecycle for a UI feature gains a prototype stage between DRAFT/READY and + build, and the spec carries a "Prototype & deviations" addendum section that + the build keeps current. + +Companion touch points to reconcile: =spec-create= (emit the prototype stage + +the deviations-addendum section for UI specs), =spec-response= (a UI spec +decomposes into a prototype loop first, then build-to-prototype tasks), +=start-work= (its verify phase already drives the UI end-to-end; here the bar is +"matches the prototype," with deviations logged). + +* Why — worked example (takuzu, 2026-07-11) + +Building the takuzu (Binairo) Emacs game. The spec chose "colored tiles, glyph +overlay optional." Built straight to that and the first launch in Craig's actual +terminal frame was all black — the dark background-color faces read as black and +the cursor was a GUI-only =:box=, so the whole grid was invisible. The +colored-tiles-are-readable assumption was false in the real environment. A +prototype loop caught it on the first screenshot; had we "built to spec" and +called it done, we'd have shipped an unusable board. The fix (glyphs as the +primary signal, inverse-video cursor) is exactly the kind of adjustment that only +surfaces by looking at the running UI, and it now needs to flow back into the +spec so the build target is the prototype, not the original spec text. + +Jotto (the other game spec'd the same day) also has a UI and will follow the same +path. + +* Requested action + +Fold the rule into the brainstorm skill and the spec-lifecycle rules so it +governs every project's UI features, then re-sync. This proposal is the durable +channel; the two game projects apply it locally in the meantime. diff --git a/inbox/lint-followups.org b/inbox/lint-followups.org index 9390037..85580a0 100644 --- a/inbox/lint-followups.org +++ b/inbox/lint-followups.org @@ -1,6 +1,8 @@ * 2026-07-02 Thu — Task-review health: 2 top-level [#A]/[#B]/[#C] tasks unreviewed for >30 days (daily review may have slipped) -* lint-org follow-ups — todo.org (2026-07-04) -** TODO link-to-local-file — Link to non-existent local file "→id" (line 1387) - * 2026-07-04 Sat — Task-review health: 5 top-level [#A]/[#B]/[#C] tasks unreviewed for >30 days (daily review may have slipped) + +* lint-org follow-ups — todo.org (2026-07-11) +** TODO link-to-local-file — Link to non-existent local file "→id" (line 1314) + +* 2026-07-11 Sat — Task-review health: 11 top-level [#A]/[#B]/[#C] tasks unreviewed for >30 days (daily review may have slipped) |
