Skip to content

feat(udd): design-intake beat — four-axis design interview before domain#97

Merged
TinDang97 merged 2 commits into
mainfrom
feat/udd-design-intake
Jun 26, 2026
Merged

feat(udd): design-intake beat — four-axis design interview before domain#97
TinDang97 merged 2 commits into
mainfrom
feat/udd-design-intake

Conversation

@TinDang97

Copy link
Copy Markdown
Collaborator

Summary

Adds a fifth UDD beat — design-intake (beat 0) — to the design-definition loop. Before reading the domain, the agent interviews the human on four design axes so the look is directed, not guessed:

  • FIDELITY — lo-fi wireframe / hi-fi mockup / production (recorded intent that informs later beats; not an engine gate)
  • CONCEPT — idea / mood / direction
  • LAYOUT — structure / grid / hierarchy
  • VISUAL DESIGN — color / type / spacing / imagery (surfaces identity for the human; never auto-picks a brand value)

Answers are recorded at both levels: project defaults in DESIGN.md's new ## Design intake section, per-screen overrides in the per-feature design note.

Convention-only

No add.py / state.json / ENGINE_MD5 / add_engine change — the engine never renders. Edits propagate byte-identical across the skill mirror trees and the four book trees. The orchestration lean fence is rebaselined (50098 → 51732, ratio 0.75 kept), not bypassed.

Surfaces touched

Domain Change
skill design.md gains the beat + a hard rule; SKILL.md pointer updated (×3 trees)
tooling DESIGN.md.tmpl gains ## Design intake (×3 trees)
book 14-foundation.md narrates five beats; appendix-c-glossary.md defines the four axis terms (×4 book trees)
tests new test_design_intake_beat.py (15 assertions); test_skill_lean.py rebaseline

ADD provenance

Milestone udd-design-intake (one task), contract FROZEN @ v1 (recording model: both — human-approved at freeze), verify PASS, foundation folded to version 53, milestone closed + archived. Closes backlog todo #13.

Evidence

  • Full suite 1995/0
  • add.py check 421/0 (22 pre-existing warnings)
  • All skill/book mirror trees byte-identical; ENGINE_MD5 unchanged

Note: during build the tamper-tripwire flagged a legitimate test region-slice fix; honored by re-crossing tests→build to re-baseline the snapshot (not edited around the gate).

…-version 52

Consolidate the open OBSERVE deltas from the engine-modularization work
(shipped in 1.11.0/1.12.0) into the versioned foundation, then compact the
raw transcription into lean prose.

- add.py fold: 16 open ADD competency lessons → folded, foundation-version
  51 → 52; stamps written to PROJECT.md §Key Decisions, CONVENTIONS.md
  §Method learnings, and the 15 source TASK.md OBSERVE blocks (full verbatim
  text retained there for traceability).
- compaction door (compact-foundation.md): merged the 16 raw fv-52 bullets
  into 5 durable rules in CONVENTIONS.md, newest-first, with merged
  provenance — lossless on technique + evidence, one-screen foundation:
    1. closed cluster moves by plain re-export (AST scan + monkeypatch/
       rebind rules + dual-path call-qualification exception)
    2. group by concern, not module count
    3. constants & guards routing (shared→constants.py, replicated stdlib guard)
    4. modularization terminates at the orchestrator spine (load_state web)
    5. derive invariants; re-baseline the tripwire honestly

0 open competency lessons remain. 68 SPEC deltas stay live as forward backlog
(resolved separately via new-task --from-delta / drop-delta). No package-code
or test-suite impact — .add/ dogfood runtime files only.

author: Tin Dang
… domain

Add a fifth UDD beat, `design-intake` (beat 0), to the design-definition loop.
Before reading the domain, the agent interviews the human on four design axes —
FIDELITY (lo-fi wireframe / hi-fi mockup / production), CONCEPT (idea / mood /
direction), LAYOUT (structure / grid / hierarchy), and VISUAL DESIGN (color /
type / spacing / imagery) — so the look is directed, not guessed. Answers are
recorded at both levels: project defaults in DESIGN.md's new `## Design intake`
section, per-screen overrides in the per-feature design note. VISUAL DESIGN
surfaces identity for the human to choose and never auto-picks a brand value;
FIDELITY is recorded intent that informs the later beats, not an engine gate.

Convention-only: no add.py / state.json / ENGINE_MD5 change (the engine never
renders). Edits propagate byte-identical across the skill mirror trees and the
four book trees; the orchestration lean fence is rebaselined (50098 -> 51732,
ratio 0.75 kept), not bypassed.

Surfaces:
- skill: design.md gains the design-intake beat + a hard rule; SKILL.md pointer
  updated (canonical + _bundled + dogfood, byte-identical)
- tooling: DESIGN.md.tmpl gains a `## Design intake` section (x3 trees)
- book: 14-foundation.md narrates five beats; appendix-c-glossary.md defines the
  four axis terms (x4 book trees synced)
- tests: new test_design_intake_beat.py (15 assertions); test_skill_lean.py
  orchestration baseline rebaselined

ADD flow: milestone udd-design-intake (one task), contract FROZEN @ v1, verify
PASS, foundation folded to version 53, milestone closed + archived. Suite 1995/0,
check 421/0.

Closes backlog todo #13.

author: Tin Dang
@TinDang97 TinDang97 merged commit 2306421 into main Jun 26, 2026
9 checks passed
@TinDang97 TinDang97 deleted the feat/udd-design-intake branch June 26, 2026 08:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant