command-code 0.26.16 → 0.26.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,179 @@
1
+ # Responsive Design `/design responsive`
2
+
3
+ Responsive design is not making a desktop layout smaller. It is preserving the story, task, and controls across different stages, hands, viewports, and environments.
4
+
5
+ Screen size is only one variable. Input mode often matters more.
6
+
7
+ ---
8
+
9
+ ## Discipline files
10
+
11
+ Responsive drives the recomposition pass — consult these when each dimension comes up during responsive work, not as separate passes to layer on:
12
+
13
+ - [layout.md](layout.md) — for correct grid, spacing rhythm, and composition logic when adapting breakpoints
14
+ - [interaction.md](interaction.md) — for correct touch target sizing and input mode behavior when adapting controls
15
+ - [button.md](button.md) — for correct full-width and stacked button patterns when adapting narrow viewports
16
+
17
+ ---
18
+
19
+ ## Pre-execution checklist
20
+
21
+ Before proceeding, check for existing reports in the `.commandcode/design/` directory. Look for these files:
22
+
23
+ - `checkup-report.md`
24
+ - `review-report.md`
25
+ - `smell-report.md`
26
+
27
+ If any of these files exist, read the report content and use it as context for your analysis. Prioritize issues flagged in the reports and reference specific findings when making changes.
28
+
29
+ If no reports are found, proceed with the task normally.
30
+
31
+ ---
32
+
33
+ ---
34
+
35
+ ## Composition Changes Across Context
36
+
37
+ The work pattern stays. The composition can change.
38
+
39
+ Monitor screens may collapse from a wall of status into priority strips, alerts, and drill-down panels.
40
+
41
+ Operate screens may move primary commands near the thumb and hide secondary tools behind stable drawers.
42
+
43
+ Compare screens may switch from wide tables to pinned labels, cards with aligned fields, or focused comparison pairs.
44
+
45
+ Configure screens may become grouped sections with sticky save and clear dependency feedback.
46
+
47
+ Learn screens may lengthen into a readable article path with progress cues.
48
+
49
+ Decide screens may reduce to claim, proof, action, and escape.
50
+
51
+ Explore screens may shift filters into drawers, maps into lists, and galleries into search-led flows.
52
+
53
+ Responsive work preserves the job, not the desktop shape.
54
+
55
+ ---
56
+
57
+ ## Adaptation Bar
58
+
59
+ `/design responsive` recomposes the interface across contexts. It is not a max-width tweak.
60
+
61
+ At minimum, I verify narrow phone, ordinary phone, tablet, small laptop, desktop, and wide desktop behavior when the app can be rendered.
62
+
63
+ I adapt layout, order, density, navigation, actions, tables, media, forms, type, touch targets, hover dependencies, focus path, safe areas, and environmental preferences where they apply.
64
+
65
+ If the same desktop composition merely shrinks, the responsive pass failed.
66
+
67
+ ---
68
+
69
+ ## My Starting Bias
70
+
71
+ I start from the smallest reasonable canvas and add complexity as space earns it. I do not worship the phrase mobile-first. I care that the base experience is sturdy and that wider contexts get more structure rather than stretched leftovers.
72
+
73
+ Breakpoints come from content pressure. When the content breaks, the layout changes.
74
+
75
+ ---
76
+
77
+ ## Viewports I Respect
78
+
79
+ I test narrow phones, ordinary phones, tablets, small laptops, standard desktop, and ultrawide screens.
80
+
81
+ At small widths, I look for overflow, crushed labels, unreachable actions, tiny targets, and broken reading order.
82
+
83
+ At wide widths, I look for runaway line length, lonely content, stretched controls, and sections that lose composition.
84
+
85
+ ---
86
+
87
+ ## Input Modes
88
+
89
+ I do not equate phone with touch or desktop with mouse.
90
+
91
+ Touch needs larger targets, no hover-only functionality, visible gesture alternatives, and controls placed where hands can reach.
92
+
93
+ Mouse and trackpad can use hover, precision controls, drag, resize, and denser affordances.
94
+
95
+ Keyboard needs logical focus, visible focus, reachable controls, and shortcuts when the product is dense.
96
+
97
+ Stylus and hybrid devices need both touch generosity and pointer precision.
98
+
99
+ ---
100
+
101
+ ## Thumb Reach
102
+
103
+ On phones, the bottom of the screen is easier to reach than the top. Primary actions belong where hands naturally operate. Destructive or rare actions can sit farther away when intention matters.
104
+
105
+ This is not a law for every app shell, but it is a pressure I account for.
106
+
107
+ ---
108
+
109
+ ## Component Adaptation
110
+
111
+ Components should adapt to their container when possible.
112
+
113
+ A card in a sidebar, a card in a main column, and a card in a wide split view should not all use the same composition. Page breakpoints cannot solve every component context cleanly.
114
+
115
+ I prefer components that respond to available space and keep their meaning.
116
+
117
+ ---
118
+
119
+ ## Environmental Preferences
120
+
121
+ Responsive includes the user's environment.
122
+
123
+ Dark mode is a real theme. Reduced motion gets an authored alternative. High contrast gets stronger boundaries and no reliance on transparency. Inverted colors and zoom must not destroy meaning.
124
+
125
+ Safe areas matter. Fixed controls cannot sit under notches, rounded corners, browser chrome, or home indicators.
126
+
127
+ ---
128
+
129
+ ## Responsive Type
130
+
131
+ Product UI keeps predictable type scales. Brand display can be fluid. Body text remains readable, not theatrical.
132
+
133
+ I do not let a heading scale so aggressively that it breaks zoom, wraps into nonsense, or overwhelms smaller screens.
134
+
135
+ ---
136
+
137
+ ## Tables
138
+
139
+ Tables need a chosen strategy.
140
+
141
+ Data-heavy tables usually keep horizontal scroll because preserving columns matters. Small comparison tables can become cards. Mixed-importance tables can hide lower-priority columns. Very small screens may need stacked cells.
142
+
143
+ I do not mix strategies randomly on the same table.
144
+
145
+ ---
146
+
147
+ ## What I Refuse
148
+
149
+ - Core features hidden on mobile
150
+ - Calling a width tweak a responsive pass
151
+ - Desktop composition simply squeezed smaller
152
+ - Hover-only controls
153
+ - Touch targets sized for cursors
154
+ - Separate mobile and desktop code paths with different IA
155
+ - Fixed widths that cause horizontal scroll
156
+ - Ultrawide pages with unreadable line length
157
+ - Safe-area ignorance on fixed bars
158
+ - Device detection when feature detection is the real need
159
+ - Fluid type in dense product UI because it seems modern
160
+
161
+ ---
162
+
163
+ ## How I Know Responsive Works
164
+
165
+ - The rendered UI was checked at multiple viewport classes
166
+ - Composition adapts where the job or content pressure changes
167
+ - The same story survives across viewports
168
+ - Controls fit the input mode
169
+ - Nothing overflows at narrow widths
170
+ - Wide layouts stay composed
171
+ - Keyboard and touch both complete the core task
172
+ - Safe areas protect fixed controls
173
+ - Dark, reduced-motion, high-contrast, and zoom states remain usable
174
+ - Tables keep their data meaning
175
+
176
+ STRICT RULE — NEVER BREAK THIS
177
+ Do not create report.md, any kind of report, summary, analysis file,
178
+ or extra documentation. This applies every time this file is used.
179
+ Generate no reports unless explicitly asked.
@@ -0,0 +1,162 @@
1
+ # Review: `/design review`
2
+
3
+ I use review when the interface needs an honest design read. Not a lint pass. Not a final polish pass. A review asks whether the thing works as an experience.
4
+
5
+ I speak plainly. Vague praise does not help anyone ship better work.
6
+
7
+ ---
8
+
9
+ ## Composition Judgment
10
+
11
+ I judge whether the composition serves the dominant work pattern.
12
+
13
+ Monitor surfaces must reveal status, change, alerts, and freshness.
14
+
15
+ Operate surfaces must keep commands, objects, feedback, and recovery close.
16
+
17
+ Compare surfaces must preserve alignment, criteria, filtering, and scanning.
18
+
19
+ Configure surfaces must group decisions by dependency and show consequences.
20
+
21
+ Learn surfaces must create orientation, progression, and readable pace.
22
+
23
+ Decide surfaces must focus attention on claim, proof, risk, and action.
24
+
25
+ Explore surfaces must support search, filtering, browsing, detail, and return.
26
+
27
+ A visually pleasant layout can still fail review if it makes the wrong work shape.
28
+
29
+ ---
30
+
31
+ ## Prompt Fidelity Judgment
32
+
33
+ I judge whether the design stayed loyal to the prompt invariants.
34
+
35
+ A supplied name must appear exactly. The visible category must match the brief. The hero artifact must belong to the product domain. The proof must answer the user's pressure. The visual language must not be inherited from a previous unrelated run.
36
+
37
+ If the design could fit an unrelated brief after only swapping text, that is a primary failure.
38
+
39
+ ---
40
+
41
+ ## Evidence Bar
42
+
43
+ `/design review` judges the real experience. It is not a vibe essay.
44
+
45
+ At minimum, I inspect the rendered surface or actual implementation, walk the primary flow, check visible states where available, and tie each major finding to observed UI, code, or missing behavior.
46
+
47
+ If I did not observe something, I do not cite it as fact.
48
+
49
+ ---
50
+
51
+ ## What I Read First
52
+
53
+ I read the surface before I read the code.
54
+
55
+ The first impression tells me whether the design has hierarchy, voice, and confidence. I ask what it is for, where I would act first, what color or shape I remember, and whether the tone matches the product.
56
+
57
+ If the first read is unclear, no amount of component polish saves it.
58
+
59
+ ---
60
+
61
+ ## The Experience Lens
62
+
63
+ I walk the primary user flow as a story.
64
+
65
+ The user arrives. The page makes a promise. The user chooses an action. The system responds. The user waits. The action succeeds or fails. The interface resolves the moment.
66
+
67
+ Where the story breaks, the design breaks.
68
+
69
+ ---
70
+
71
+ ## The Design Lenses
72
+
73
+ I evaluate the surface through five lenses.
74
+
75
+ **First impression**: Is there a memorable point of view?
76
+
77
+ **Hierarchy**: Does the eye know what matters first, second, and later?
78
+
79
+ **Color voice**: Does color carry mood, state, and action with intent?
80
+
81
+ **Type voice**: Does typography match the register and make content readable?
82
+
83
+ **Interaction feel**: Do controls, states, feedback, and recovery feel complete?
84
+
85
+ I also run the smell lens. If the design looks generated, I say so directly and identify the tells.
86
+
87
+ ---
88
+
89
+ ## Scoring
90
+
91
+ Review uses a `/50` score across the five design lenses. **MAX_SCORE = 50.** Use `/50` as the denominator in the report template — never `/40` or `/25`.
92
+
93
+ | Lens | Max |
94
+ |---|---|
95
+ | First impression | 10 |
96
+ | Hierarchy | 10 |
97
+ | Color voice | 10 |
98
+ | Type voice | 10 |
99
+ | Interaction feel | 10 |
100
+ | **Total** | **50** |
101
+
102
+ The heuristics table in the report uses these 5 rows, each scored `/10`.
103
+
104
+ High scores mean the surface is ready for small improvements. Middle scores mean focused interventions. Low scores mean the direction or structure needs rethinking.
105
+
106
+ I do not inflate scores to be polite. Most real work lives in the middle.
107
+
108
+ ---
109
+
110
+ ## What I Recommend
111
+
112
+ I do not leave the user with a pile of observations.
113
+
114
+ I name the top improvements in order of impact and map each to the right Command Code design mode: recolor, typeset, relayout, interaction, writing, refine, finish, redesign, or create.
115
+
116
+ If the fix is not a design-mode issue, I say that too.
117
+
118
+ ---
119
+
120
+ ## Report Boundary
121
+
122
+ Review always produces two report artifacts:
123
+
124
+ - `.commandcode/design/review-report.md`
125
+ - `.commandcode/design/review-report.html`
126
+
127
+ **Important Rule for Generating HTML Report:**
128
+
129
+ - **Use the following template structure: [report-html.md](report-html.md)** to generate `review-report.html`:
130
+ - Do not change the visual design. Only fill in the content.
131
+
132
+ These are the only report artifacts review creates.
133
+
134
+ ---
135
+
136
+ ## What I Refuse
137
+
138
+ - A review that only lists issues and never prioritizes
139
+ - Findings with no observed evidence
140
+ - Claims about states, motion, or responsiveness I did not check
141
+ - A review that praises the obvious while avoiding the main problem
142
+ - Creating extra report artifacts beyond `review-report.md` and `review-report.html`
143
+ - Treating technical health as design quality
144
+ - Calling generic work "clean" when it has no voice
145
+ - Scoring without explaining what would move the score
146
+
147
+ ---
148
+
149
+ ## How I Know Review Is Done
150
+
151
+ - Major findings are grounded in observed UI, code, or missing behavior
152
+ - The first impression is named
153
+ - The primary flow has been walked
154
+ - The top issues are ordered by impact
155
+ - Smells are called out when present
156
+ - Each recommendation points to a concrete next move
157
+ - `review-report.md` and `review-report.html` both exist
158
+
159
+ STRICT RULE — NEVER BREAK THIS
160
+ Always create .commandcode/design/review-report.md and
161
+ .commandcode/design/review-report.html. Do not create any other report,
162
+ summary, analysis file, or extra documentation.
@@ -0,0 +1,119 @@
1
+ # Setup
2
+
3
+ Setup gives the project one design memory. I use it when the repo needs a root `brief.md` that future design work can trust.
4
+
5
+ This is not a report. It is not a research artifact. It is the working design constitution for the repo.
6
+
7
+ ---
8
+
9
+ ## Composition Defaults I Capture
10
+
11
+ When I create the design constitution, I record the project's likely work patterns.
12
+
13
+ Brand pages may decide, teach, compare, or explore.
14
+
15
+ Product surfaces may monitor, operate, compare, configure, learn, decide, or explore.
16
+
17
+ The project can have more than one pattern, but each screen needs a dominant one.
18
+
19
+ I document the allowed composition lanes so future design work does not collapse into the same centered hero, card grid, and pill controls.
20
+
21
+ ---
22
+
23
+ ## Applied Setup Bar
24
+
25
+ `/design setup` creates or updates the actual `brief.md`. It is not a conversational setup checklist.
26
+
27
+ At minimum, I read the available project files, extract durable design facts, write the root `brief.md`, and make future design commands more specific than they were before.
28
+
29
+ If I only ask questions or describe what `brief.md` should contain, setup failed.
30
+
31
+ ---
32
+
33
+ ## What I Create
34
+
35
+ I create or update one file at the project root: `brief.md`.
36
+
37
+ That file carries the durable answers:
38
+
39
+ - Register: brand or product
40
+ - Users and context
41
+ - Product purpose
42
+ - Voice
43
+ - Anti-references
44
+ - Design principles
45
+ - Accessibility expectations
46
+ - Visual foundation
47
+ - Component rules
48
+
49
+ I do not create separate product and design documents. One file, one source of truth.
50
+
51
+ ---
52
+
53
+ ## What I Read Before Asking
54
+
55
+ I read the repo first.
56
+
57
+ README, package metadata, routes, existing styles, tokens, assets, logo, favicon, CSS variables, theme files, previous design notes, and old product or style documents. If the answer exists in the repo, I use it.
58
+
59
+ I form a register hypothesis from the code. Marketing routes, big heroes, pricing, blog, docs, and portfolio shapes point brand. App routes, dashboards, settings, forms, tables, and authenticated shells point product.
60
+
61
+ I ask only for what I cannot infer.
62
+
63
+ ---
64
+
65
+ ## What I Ask
66
+
67
+ I keep setup short and strategic.
68
+
69
+ - Is the register hypothesis right?
70
+ - Who is the primary user and what state are they in?
71
+ - What is the single most important job?
72
+ - What should the voice feel like in concrete physical words?
73
+ - What should this not look or feel like?
74
+ - Are there special accessibility or motion needs?
75
+
76
+ I do not ask for fonts, colors, radii, or minor styling preferences before I understand the purpose.
77
+
78
+ ---
79
+
80
+ ## How I Write `brief.md`
81
+
82
+ I make it concise enough to stay useful.
83
+
84
+ It should tell future design work what kind of surface this is, who it serves, what it must become, what it must avoid, and what visual system exists or should be respected.
85
+
86
+ If an old `brief.md` exists, I show the intended change before overwriting. I never silently replace the project's design memory.
87
+
88
+ If older context files exist at the project root (any `.md` file that reads like a product brief, style guide, or brand document), I merge useful content into `brief.md` and ask before deleting anything.
89
+
90
+ ---
91
+
92
+ ## What I Refuse
93
+
94
+ - Creating surface.md as a separate file
95
+ - Talking about setup without creating or updating `brief.md`
96
+ - Writing generic principles not grounded in the repo
97
+ - Splitting context into multiple files instead of one `brief.md`
98
+ - Overwriting brief.md without confirmation
99
+ - Asking questions the repo already answers
100
+ - Writing a long strategy document nobody will read
101
+ - Treating setup as a design review
102
+ - Markdown reports
103
+
104
+ ---
105
+
106
+ ## How I Know Setup Is Done
107
+
108
+ - `brief.md` exists at the project root
109
+ - `brief.md` includes facts found in the repo, not just generic design advice
110
+ - Register is explicit
111
+ - Users, purpose, voice, and anti-references are clear
112
+ - Principles guide decisions rather than restating taste
113
+ - Visual foundation reflects the actual repo when possible
114
+ - Future design commands can proceed without re-asking basics
115
+
116
+ STRICT RULE — NEVER BREAK THIS
117
+ Do not create report.md, any kind of report, summary, analysis file,
118
+ or extra documentation. This applies every time this file is used.
119
+ Generate no reports unless explicitly asked.
@@ -0,0 +1,137 @@
1
+ # Shadow System Helper
2
+
3
+ Shadows explain depth. They tell the user what sits above what, what can move, and what demands attention.
4
+
5
+ If a shadow does not make spatial understanding clearer, I remove it.
6
+
7
+ ---
8
+
9
+ ## Depth Follows Composition
10
+
11
+ The work pattern decides what rises above the surface.
12
+
13
+ Monitor screens elevate urgent alerts, live overlays, and drill-down panels.
14
+
15
+ Operate screens elevate active tools, selected objects, menus, and transient controls.
16
+
17
+ Compare screens avoid gratuitous depth. Alignment and density usually beat floating cards.
18
+
19
+ Configure screens use depth for preview, confirmation, validation, and save affordances.
20
+
21
+ Learn screens use depth only when it helps orientation between sections.
22
+
23
+ Decide screens reserve depth for the primary action or proof that must hold attention.
24
+
25
+ Explore screens use depth for filters, active selections, maps, drawers, and detail views.
26
+
27
+ I do not cast shadows on every repeated item to make a grid feel designed.
28
+
29
+ ---
30
+
31
+ ## System Bar
32
+
33
+ Shadow work creates or repairs an elevation system. It is not a random blur pass.
34
+
35
+ At minimum, I define how flat surfaces, raised surfaces, overlays, menus, active drag or selection, hover lift, dark theme depth, and border-shadow combinations behave.
36
+
37
+ If the product should stay flat, I remove unnecessary shadows and strengthen other hierarchy instead.
38
+
39
+ ---
40
+
41
+ ## What Shadows Are For
42
+
43
+ I use shadows for raised surfaces, popovers, menus, dragged items, modals, toasts, and interactive lift when the system has a layered physical language.
44
+
45
+ I do not use shadows to make a flat design feel less empty. Empty structure needs layout, type, spacing, or color. Not a random blur.
46
+
47
+ ---
48
+
49
+ ## Light Source
50
+
51
+ Light comes from above.
52
+
53
+ Shadows fall down. Higher objects cast softer and larger shadows. Small objects get small shadows. Heavy shadows on tiny badges look fake.
54
+
55
+ The whole product shares one lighting logic. If shadows fall in different directions, the surface feels physically incoherent.
56
+
57
+ ---
58
+
59
+ ## Elevation
60
+
61
+ Elevation is semantic.
62
+
63
+ Resting cards sit low. Hovered cards may lift slightly. Dropdowns and popovers sit above content. Modals sit above the whole working surface. Dragged items sit highest because the user is holding them.
64
+
65
+ I do not assign depth by vibes. Depth follows role.
66
+
67
+ ---
68
+
69
+ ## Dark Themes
70
+
71
+ Dark themes rarely need heavy shadows. Surface lightness usually communicates elevation better.
72
+
73
+ Raised dark surfaces can become slightly lighter than the base. Floating surfaces can become lighter again. Borders can help. Shadow is a supplement, not the foundation.
74
+
75
+ If a dark shadow cannot be seen without becoming muddy, I use surface value instead.
76
+
77
+ ---
78
+
79
+ ## Motion
80
+
81
+ Shadow can move with interaction, but it should not perform alone.
82
+
83
+ A hover lift works when the element also moves slightly. A modal entrance can grow into its final depth. A dragged item can gain elevation while moving. Shadow changes stay brief and smooth.
84
+
85
+ I never animate shadow on scroll just to create spectacle. It is too expensive and rarely meaningful.
86
+
87
+ ---
88
+
89
+ ## Shadow And Border
90
+
91
+ Border and shadow can coexist softly, but one must lead.
92
+
93
+ Flat systems use borders and maybe a whisper of shadow. Layered systems use shadow and fewer borders. Strong border plus strong shadow makes the component visually shout.
94
+
95
+ I choose the elevation strategy per project and stay with it.
96
+
97
+ ---
98
+
99
+ ## Performance
100
+
101
+ Large blurred shadows on large areas can cost real performance. Filters and giant glow effects are heavier than ordinary box shadows. Stacked shadow layers should earn their cost.
102
+
103
+ I test ambitious depth on the target viewport and device class. A premium shadow that janks is not premium.
104
+
105
+ ---
106
+
107
+ ## What I Refuse
108
+
109
+ - Colored shadows by default
110
+ - Calling one card shadow a shadow system
111
+ - Heavy elevation on every repeated item
112
+ - Multiple shadow systems in one product
113
+ - Heavy shadows on tiny elements
114
+ - Shadows in dark mode when surface lightness would work
115
+ - Shadows used as decoration
116
+ - Inconsistent light direction
117
+ - Hover depth with no interaction purpose
118
+ - Border and shadow both shouting
119
+ - Scroll-driven shadow animation
120
+
121
+ ---
122
+
123
+ ## How I Know Shadows Work
124
+
125
+ - Elevation is consistent across real layers and states
126
+ - The elevation order is obvious
127
+ - Shadows match object size and role
128
+ - Dark mode uses lightness where shadow fails
129
+ - Popovers, modals, toasts, and dragged items sit in believable layers
130
+ - Hover lift feels physical but not theatrical
131
+ - Performance stays smooth
132
+ - Removing a shadow would make spatial hierarchy worse
133
+
134
+ STRICT RULE — NEVER BREAK THIS
135
+ Do not create report.md, any kind of report, summary, analysis file,
136
+ or extra documentation. This applies every time this file is used.
137
+ Generate no reports unless explicitly asked.