@echelon-foundry/visual-engineering 1.0.0 → 1.0.1
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.
- package/CHANGELOG.md +17 -0
- package/README.md +62 -2
- package/package.json +7 -7
- package/payload/context/AGENT-INSTRUCTIONS.md +3 -2
- package/payload/context/APPLICATION-POLISH.md +50 -0
- package/payload/context/RESEARCH-INDEX.md +251 -101
- package/payload/context/UI-ANTI-PATTERNS.md +16 -0
- package/payload/context/UI-DECISION-CHECKLIST.md +75 -0
- package/payload/context/UI-FOUNDATIONS.md +74 -5
- package/payload/context/context.json +14 -10
- package/payload/context/sources.json +306 -102
|
@@ -26,3 +26,19 @@ audiences:
|
|
|
26
26
|
- Accessibility treated as a final audit
|
|
27
27
|
- Visual novelty prioritized over recognition and verification
|
|
28
28
|
- Research guidance applied without inspecting the product context
|
|
29
|
+
|
|
30
|
+
- Semantic state collapsed into a generic success, failure, loading, empty, or complete state when the product distinguishes consequential alternatives
|
|
31
|
+
- Presentation code independently recreates domain action legality instead of consuming the authoritative capability or legal-action model when one exists
|
|
32
|
+
- Scoped uncertainty or coverage flattened into a global completion percentage, pass/fail verdict, or status without a valid product aggregation rule
|
|
33
|
+
- Unknown external effect presented as definite failure with an unsafe blind retry path
|
|
34
|
+
- Previous render, screenshot, or cached presentation state treated as authority for a newer semantic state
|
|
35
|
+
|
|
36
|
+
- Arbitrary component-local animation durations or easing curves with no named interaction model
|
|
37
|
+
- Spring or bounce applied to every state change regardless of the phenomenon
|
|
38
|
+
- Decorative lag layered onto drag, resize, scrub, scroll, slider, or other direct manipulation
|
|
39
|
+
- Determinate progress that overshoots, bounces past, or visually outruns the authoritative value
|
|
40
|
+
- Infinite shimmer, spin, pulse, or other repeated motion with no reduced-motion substitution
|
|
41
|
+
- Animation speed, mass, bounce, or travel used to imply severity, priority, permission, confidence, or correctness
|
|
42
|
+
- View-transition morphs between elements that do not represent continuous identity
|
|
43
|
+
- Concurrent animations that overwrite the same transform/property and silently cancel one another
|
|
44
|
+
- Motion used as the only cue that state, activity, success, failure, selection, or validation changed
|
|
@@ -19,6 +19,13 @@ audiences:
|
|
|
19
19
|
- Which relationships must remain visible?
|
|
20
20
|
- What are the consequences of misunderstanding or error?
|
|
21
21
|
- Which existing product and design-system constraints apply?
|
|
22
|
+
- What is authoritative for the state, uncertainty, completion, unresolved work, and legal actions this view presents?
|
|
23
|
+
- Which state distinctions change what the user may safely conclude or do?
|
|
24
|
+
- Which semantic scopes must remain distinct rather than being combined into one status?
|
|
25
|
+
- Which visual channels carry consequential meaning, and what happens if hue, iconography, border, position, motion, or another channel is unavailable?
|
|
26
|
+
- What is the Perceptual Failure Boundary for each important or critical semantic state?
|
|
27
|
+
- Is a proposed accessibility preset based on measured need, explicit user choice, or an unsupported assumption about a diagnosis?
|
|
28
|
+
- Does this task contain strong linguistic context, or is it low-context content such as an identifier, code, unfamiliar name, or critical value?
|
|
22
29
|
|
|
23
30
|
## During implementation
|
|
24
31
|
|
|
@@ -32,6 +39,14 @@ audiences:
|
|
|
32
39
|
- Is native HTML being replaced without a demonstrated benefit?
|
|
33
40
|
- Does responsive behavior preserve meaning and task priority?
|
|
34
41
|
- Are loading, empty, error, success, and recovery states designed?
|
|
42
|
+
- Has an unknown, partial, stale, or unverifiable state been strengthened into a definite success, failure, empty, or complete state?
|
|
43
|
+
- Where authoritative capabilities or legal actions exist, do controls derive from them rather than recreate legality locally?
|
|
44
|
+
- Do summaries preserve the scope and uncertainty of the facts they aggregate?
|
|
45
|
+
- Is decision-relevant unresolved work visible enough that users do not have to infer it from missing controls or generic errors?
|
|
46
|
+
- Does consequential state remain identifiable without hue alone?
|
|
47
|
+
- If CVD simulation is used, is it treated as screening rather than proof?
|
|
48
|
+
- If presentation adapts to a user profile, are semantic meaning, legal actions, reading order, and programmatic state unchanged?
|
|
49
|
+
- Are user preference and measured performance being kept distinct when either is used to justify a design decision?
|
|
35
50
|
|
|
36
51
|
## Required verification
|
|
37
52
|
|
|
@@ -42,10 +57,68 @@ audiences:
|
|
|
42
57
|
- Reduced motion
|
|
43
58
|
- Forced colors or high contrast
|
|
44
59
|
- Color-independent state recognition
|
|
60
|
+
- Grayscale plus protan, deutan, and tritan simulation as screening conditions where color carries categorization
|
|
61
|
+
- Text-spacing overrides where reading content is material
|
|
62
|
+
- Semantic channel dropout for consequential states: remove each declared visible channel independently and verify important and critical meaning survives
|
|
63
|
+
- Run the Visual Engineering robustness manifest when the repository defines important or critical semantic states
|
|
64
|
+
- Review the minimal failure sets and improve low-boundary states when practical
|
|
45
65
|
- Long, missing, and extreme content
|
|
46
66
|
- Screen-reader semantics for critical workflows
|
|
47
67
|
- First-glance hierarchy inspection
|
|
48
68
|
- Deliberate verification of consequential information
|
|
69
|
+
- Exercise at least one consequential non-happy semantic state and compare the rendered actions/status with the authoritative product state
|
|
70
|
+
- Where stale state can change meaning or legal action, verify that old presentation evidence is not treated as proof of the current state
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
## Motion model selection
|
|
74
|
+
|
|
75
|
+
Before adding or reviewing motion:
|
|
76
|
+
|
|
77
|
+
- What does the motion communicate?
|
|
78
|
+
- What state or input is authoritative?
|
|
79
|
+
- Is the phenomenon inertial/spring, gravity-derived, constant-velocity/cadence, direct-manipulation/value tracking, or perceptual interpolation?
|
|
80
|
+
- Is overshoot physically and semantically safe?
|
|
81
|
+
- Can the user interrupt or rapidly repeat the interaction without stale queued motion?
|
|
82
|
+
- Does direct manipulation track the pointer, scroll position, or authoritative value without decorative lag?
|
|
83
|
+
- Can determinate progress ever visually exceed the authoritative value?
|
|
84
|
+
- Does repeated activity stop when the activity stops?
|
|
85
|
+
- Is a new duration/easing inherited from the shared model, or is there a documented reason for a new one?
|
|
86
|
+
- What is the model-specific reduced-motion substitution?
|
|
87
|
+
- Is the interface still correct when progressive animation support is unavailable?
|
|
88
|
+
|
|
89
|
+
During verification:
|
|
90
|
+
|
|
91
|
+
- Exercise rapid repeated activation and interruption.
|
|
92
|
+
- Verify final visual state equals actual semantic state.
|
|
93
|
+
- Verify focus movement/restoration does not wait on decoration.
|
|
94
|
+
- Verify pointer drag/resize/scrub does not lag.
|
|
95
|
+
- Verify determinate progress remains bounded.
|
|
96
|
+
- Verify indeterminate cadence does not imply false progress.
|
|
97
|
+
- Verify reduced motion removes spatial/repeated effects without losing state or feedback.
|
|
98
|
+
- Verify simultaneous effects do not clobber one another.
|
|
99
|
+
- Verify animation is not the only carrier of consequential meaning.
|
|
100
|
+
|
|
101
|
+
## Application polish gate
|
|
102
|
+
|
|
103
|
+
- Have applicable polish dimensions been identified?
|
|
104
|
+
- Have reachable non-happy states been exercised rather than inferred?
|
|
105
|
+
- Have high-risk state and environment seams been tested?
|
|
106
|
+
- Have pathological content and boundary fixtures been used?
|
|
107
|
+
- Does persistence presentation tell the truth about local, pending, persisted, failed and conflicting state?
|
|
108
|
+
- Are untested environments and states recorded as unknown rather than passed?
|
|
109
|
+
- Is there evidence behind a zero-finding review?
|
|
110
|
+
- Have recurring defect classes been pushed upstream into shared components, rules or fixtures where appropriate?
|
|
111
|
+
|
|
112
|
+
## Application polish gate
|
|
113
|
+
|
|
114
|
+
- Have applicable polish dimensions been identified?
|
|
115
|
+
- Have reachable non-happy states been exercised rather than inferred?
|
|
116
|
+
- Have high-risk state and environment seams been tested?
|
|
117
|
+
- Have pathological content and boundary fixtures been used?
|
|
118
|
+
- Does persistence presentation tell the truth about local, pending, persisted, failed and conflicting state?
|
|
119
|
+
- Are untested environments and states recorded as unknown rather than passed?
|
|
120
|
+
- Is there evidence behind a zero-finding review?
|
|
121
|
+
- Have recurring defect classes been pushed upstream into shared components, rules or fixtures where appropriate?
|
|
49
122
|
|
|
50
123
|
## Agent handoff
|
|
51
124
|
|
|
@@ -56,3 +129,5 @@ Report:
|
|
|
56
129
|
- Verification performed
|
|
57
130
|
- Material deviations and rationale
|
|
58
131
|
- Unresolved evidence or product questions
|
|
132
|
+
- Material semantic-projection assumptions, including the authoritative state source when it is not obvious
|
|
133
|
+
- Perceptual robustness manifest result, failure boundaries, and any accepted low-boundary states
|
|
@@ -52,8 +52,12 @@ Visual quality is not decoration applied after structure. Architecture, content
|
|
|
52
52
|
## Typography and reading
|
|
53
53
|
|
|
54
54
|
- Typography must expose hierarchy, grouping, sequence, and status.
|
|
55
|
-
- Optimize measure, line height, weight,
|
|
56
|
-
-
|
|
55
|
+
- Optimize measure, line height, weight, width, spacing, and size for the actual content and reading task.
|
|
56
|
+
- Distinguish high-context prose from low-context identifiers, codes, names, labels, and safety-critical values. Low-context content has less linguistic error correction and may require stronger glyph distinction.
|
|
57
|
+
- Preserve user control over text size, spacing, reflow, and browser or OS text preferences.
|
|
58
|
+
- Do not assume that a font marketed for dyslexia is generally superior. Current evidence does not support a universal dyslexia-font benefit.
|
|
59
|
+
- When a population is heterogeneous, prefer measuring the relevant bottleneck or offering direct controls over assigning a visual preset from a diagnosis.
|
|
60
|
+
- Treat user preference and measured reading performance as separate evidence.
|
|
57
61
|
- Do not depend on font size alone to establish hierarchy.
|
|
58
62
|
- Avoid low-contrast secondary text that becomes functionally invisible.
|
|
59
63
|
- Use labels and language that reflect the user's domain, not implementation terminology.
|
|
@@ -61,10 +65,13 @@ Visual quality is not decoration applied after structure. Architecture, content
|
|
|
61
65
|
## Color
|
|
62
66
|
|
|
63
67
|
- Treat color as relational and context-dependent; evaluate colors in their actual surroundings.
|
|
64
|
-
- Use
|
|
68
|
+
- Use task-appropriate color spaces and measurable contrast, but do not treat color-distance metrics as proof of accessibility.
|
|
69
|
+
- Treat WCAG contrast requirements as mandatory conformance floors, not universal human-performance thresholds.
|
|
65
70
|
- Never use color as the only carrier of state, urgency, selection, or error.
|
|
71
|
+
- Design consequential states for semantic channel survivability: meaning should survive loss of hue or another nonessential visual channel.
|
|
72
|
+
- Use CVD simulation and grayscale as fault-injection screens, not as substitutes for affected-user validation.
|
|
66
73
|
- Reserve high chromatic or luminance contrast for information that earns attention.
|
|
67
|
-
- Validate light, dark, forced-color,
|
|
74
|
+
- Validate light, dark, forced-color, color-vision, low-brightness, and relevant glare conditions.
|
|
68
75
|
- Distinguish semantic color roles from raw palette values.
|
|
69
76
|
|
|
70
77
|
## Wayfinding and interaction
|
|
@@ -76,14 +83,51 @@ Visual quality is not decoration applied after structure. Architecture, content
|
|
|
76
83
|
- Do not hide critical actions behind unfamiliar gestures or unexplained icons.
|
|
77
84
|
- Ensure keyboard order, reading order, focus order, and visual order tell the same story.
|
|
78
85
|
|
|
86
|
+
|
|
87
|
+
## Motion and temporal behavior
|
|
88
|
+
|
|
89
|
+
- Choose the animation model from the phenomenon before choosing duration or easing.
|
|
90
|
+
- Use inertial/spring response for perceived objects settling after activation or release.
|
|
91
|
+
- Use gravity-derived timing only for an intentionally modeled directional cue; mass does not change gravity-derived timing.
|
|
92
|
+
- Use constant-velocity/cadence motion for repeated activity such as spinners or skeleton shimmer.
|
|
93
|
+
- Use direct-manipulation/value tracking when pointer, scroll, native control value, or application value is authoritative. Do not add decorative lag or overshoot.
|
|
94
|
+
- Use perceptual interpolation for opacity, color, backdrop, and other non-spatial state changes rather than inventing fake mechanical behavior.
|
|
95
|
+
- Semantic state changes immediately. Motion represents state and never authorizes it.
|
|
96
|
+
- Determinate progress never overshoots the authoritative value.
|
|
97
|
+
- Press and selection motion must not move the hit target or queue stale responses.
|
|
98
|
+
- Repeated motion stops when the represented activity stops.
|
|
99
|
+
- Equivalent phenomena should use equivalent motion unless a documented context difference justifies otherwise.
|
|
100
|
+
- New component-local durations and easing curves require an explicit reason. Arbitrary `200ms ease` is not a design rationale.
|
|
101
|
+
- Reduced motion is model-aware: remove spatial travel, bounce, repeated motion, and decorative compression while preserving direct mappings, final state, focus, feedback, and activity semantics.
|
|
102
|
+
- Progressive animation features must fail back to a correct static interface.
|
|
103
|
+
|
|
104
|
+
## Semantic projection
|
|
105
|
+
|
|
106
|
+
A UI is often a purpose-specific projection of richer product state. Treat that projection as a semantic boundary, not only a visual transformation.
|
|
107
|
+
|
|
108
|
+
- Identify what is authoritative for the state, uncertainty, completion, unresolved work, and legal actions shown on the screen.
|
|
109
|
+
- Do not communicate stronger certainty, success, completeness, or authority than the source state supports. Loading is not empty; unknown is not failed; partial is not complete; unverifiable is not pass.
|
|
110
|
+
- Preserve domain alternatives when they differ in legal next action, authority, uncertainty, reconciliation, recovery, completion meaning, or another material user conclusion.
|
|
111
|
+
- Preserve scope. A fact that is complete for one dimension does not imply completeness for another.
|
|
112
|
+
- Where the product exposes legal actions or capabilities, derive available UI actions from that authority rather than re-implementing legality in presentation code.
|
|
113
|
+
- Keep decision-relevant unresolved work perceptible. Do not make users infer reconciliation, pending review, stale state, or partial coverage from generic errors or missing controls.
|
|
114
|
+
- Do not invent aggregate percentages, pass/fail verdicts, or global completion states unless the product defines a valid aggregation rule.
|
|
115
|
+
- Preserve the purpose of the projection. A task-focused view need not expose every domain fact, but it must not imply that omitted state does not exist.
|
|
116
|
+
|
|
117
|
+
These constraints preserve meaning, not visual form. Visual Engineering still determines hierarchy, grouping, density, wording, interaction pattern, responsive composition, and aesthetic expression.
|
|
118
|
+
|
|
79
119
|
## Accessibility and human factors
|
|
80
120
|
|
|
81
121
|
- Begin with semantic HTML and native behavior.
|
|
82
122
|
- Components own intrinsic behavior; products still own meaningful labels, page hierarchy, instructions, and contextual correctness.
|
|
83
|
-
- Support keyboard navigation, visible focus, zoom, text scaling, reduced motion, forced colors, and assistive technology.
|
|
123
|
+
- Support keyboard navigation, visible focus, zoom, text scaling, text-spacing overrides, reduced motion, forced colors, and assistive technology.
|
|
124
|
+
- Use strong accessible defaults before introducing personalization.
|
|
125
|
+
- Apply **mechanism before mode**: a disability label may guide research or recruitment, but do not assume it identifies the active visual bottleneck or the correct presentation.
|
|
126
|
+
- Preserve user choice. Adaptive presentation must be inspectable, reversible, and unable to change semantic meaning or legal actions.
|
|
84
127
|
- Treat error prevention and recovery as part of the information architecture.
|
|
85
128
|
- In high-consequence contexts, prioritize unambiguous identification and verification over visual novelty.
|
|
86
129
|
- Test with realistic stress, interruption, density, and degraded-display conditions when those conditions are plausible.
|
|
130
|
+
- Separate standards conformance, preference, comfort, and task performance. Passing one does not prove the others.
|
|
87
131
|
|
|
88
132
|
## Responsive behavior
|
|
89
133
|
|
|
@@ -102,6 +146,31 @@ Visual quality is not decoration applied after structure. Architecture, content
|
|
|
102
146
|
- Separate source tokens, semantic tokens, theme mappings, and component consumption.
|
|
103
147
|
- Validate components in real consumer contexts rather than assuming framework interoperability.
|
|
104
148
|
|
|
149
|
+
## Perceptual robustness operating assumptions
|
|
150
|
+
|
|
151
|
+
Visual Engineering currently treats Perceptual Envelope, Semantic Channel
|
|
152
|
+
Survivability, and Perceptual Failure Boundary as **provisional engineering
|
|
153
|
+
defaults**. They are sufficiently supported to guide architecture and
|
|
154
|
+
implementation even where complete human validation is unavailable.
|
|
155
|
+
|
|
156
|
+
- Do not block implementation waiting for perfect experimental certainty.
|
|
157
|
+
- Keep the assumptions explicit, versioned, reversible, and testable.
|
|
158
|
+
- Important and critical semantic states should survive loss of any single
|
|
159
|
+
declared visible channel.
|
|
160
|
+
- Critical states should retain an explicit text or icon cue and programmatic
|
|
161
|
+
semantics.
|
|
162
|
+
- Treat the smallest channel-loss combination that breaks meaning as the
|
|
163
|
+
Perceptual Failure Boundary.
|
|
164
|
+
- Prefer designs with a larger failure boundary when other task requirements are
|
|
165
|
+
equivalent.
|
|
166
|
+
- Use repository-specific evidence to override these defaults when that evidence
|
|
167
|
+
is stronger, and record the reason.
|
|
168
|
+
- Never describe the channel model as a simulation of a disability or as proof
|
|
169
|
+
of individual human performance.
|
|
170
|
+
|
|
171
|
+
Repositories may encode these assumptions in a Visual Engineering robustness
|
|
172
|
+
manifest and evaluate them with the `robustness` CLI command.
|
|
173
|
+
|
|
105
174
|
## Evidence-sensitive decision making
|
|
106
175
|
|
|
107
176
|
- Distinguish established guidance, supported hypotheses, working theory, and unresolved research.
|
|
@@ -1,37 +1,41 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0",
|
|
3
|
-
"contextVersion": "1.0.
|
|
3
|
+
"contextVersion": "1.0.1",
|
|
4
4
|
"sourceRepository": "https://github.com/kemiller2002/Visual-Engineering",
|
|
5
|
-
"sourceCommit": "
|
|
6
|
-
"generatedAt": "2026-
|
|
5
|
+
"sourceCommit": "b648cdef291d39c443ccb10215529ad69afe8b32",
|
|
6
|
+
"generatedAt": "2026-10-06T15:52:16.005Z",
|
|
7
7
|
"researchCatalogVersion": "1.1",
|
|
8
|
-
"researchDocuments":
|
|
8
|
+
"researchDocuments": 112,
|
|
9
9
|
"profile": "ui-foundations",
|
|
10
10
|
"classification": "public",
|
|
11
11
|
"artifacts": [
|
|
12
12
|
{
|
|
13
13
|
"file": "AGENT-INSTRUCTIONS.md",
|
|
14
|
-
"sha256": "
|
|
14
|
+
"sha256": "3736636964f88644de0a5c9c255dfd88d4275f254ee179166203579e823d4d2e"
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
"file": "UI-FOUNDATIONS.md",
|
|
18
|
-
"sha256": "
|
|
18
|
+
"sha256": "7dee7189eedd9448f9fc7816bdc22fa41e32bd1ac465c880df0754faa30a8b73"
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
"file": "UI-DECISION-CHECKLIST.md",
|
|
22
|
-
"sha256": "
|
|
22
|
+
"sha256": "47bcb1191362e43ebbd8064bde87015186dbe47c1a72bfbadfd2e0a3a611b629"
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
"file": "UI-ANTI-PATTERNS.md",
|
|
26
|
-
"sha256": "
|
|
26
|
+
"sha256": "6066b2faca907eb0afde78b9840020186901d782880fbad23bb41599e88bafc1"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"file": "APPLICATION-POLISH.md",
|
|
30
|
+
"sha256": "94da532ba5f54617e269525a2b7188b9bf2ba531f96fa9e8c88023a08a38cf51"
|
|
27
31
|
},
|
|
28
32
|
{
|
|
29
33
|
"file": "RESEARCH-INDEX.md",
|
|
30
|
-
"sha256": "
|
|
34
|
+
"sha256": "1e1f7f9ebdf7ae99de1b81b18837a6d5ce2497617dc2a7a21e61d5be9badfb22"
|
|
31
35
|
},
|
|
32
36
|
{
|
|
33
37
|
"file": "sources.json",
|
|
34
|
-
"sha256": "
|
|
38
|
+
"sha256": "07b5fef9d83664e5c8aa6d00e7d20db146798e8db3b2175f97eb4c863526897c"
|
|
35
39
|
}
|
|
36
40
|
]
|
|
37
41
|
}
|