aboutsummaryrefslogtreecommitdiff
path: root/inbox
diff options
context:
space:
mode:
Diffstat (limited to 'inbox')
-rw-r--r--inbox/PROCESSED-2026-07-11-0222-from-.emacs.d-ui-prototype-rule-proposal.org55
-rw-r--r--inbox/lint-followups.org8
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)