@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
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,23 @@ line and is not tracked here.
|
|
|
7
7
|
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
|
|
8
8
|
follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
9
9
|
|
|
10
|
+
## 1.0.1
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- The installed context under `.visual-engineering/` is required: `verify` fails without it and
|
|
15
|
+
the managed agent briefing tells agents to read it. 1.0.0 nevertheless wrote a managed
|
|
16
|
+
`.gitignore` region that ignored that directory, so `verify` failed on every clean checkout
|
|
17
|
+
of a repository that committed its installation, and Conditor refused to adopt it. The
|
|
18
|
+
managed region now re-includes the context directory (`!.visual-engineering/`) so it is
|
|
19
|
+
committed, and no broader ignore rule can exclude it.
|
|
20
|
+
|
|
21
|
+
### Upgrading
|
|
22
|
+
|
|
23
|
+
- `upgrade` replaces the 1.0.0 region in place. Commit `.visual-engineering/`,
|
|
24
|
+
`.gitignore` and `.echelon/visual-engineering.json` afterwards. See
|
|
25
|
+
[docs/upgrading.md](docs/upgrading.md).
|
|
26
|
+
|
|
10
27
|
## 1.0.0
|
|
11
28
|
|
|
12
29
|
First public release.
|
package/README.md
CHANGED
|
@@ -7,6 +7,14 @@ implementation agents design, build and review interfaces from current evidence
|
|
|
7
7
|
from copied snapshots. The tool owns the whole lifecycle of that installation: it detects the
|
|
8
8
|
current state, installs, verifies, diagnoses and upgrades it, and records what it manages.
|
|
9
9
|
|
|
10
|
+
## First-class application polish
|
|
11
|
+
|
|
12
|
+
Visual Engineering treats application polish as an engineering discipline, not a final cosmetic pass. A polished application must provide evidence across visual precision, interaction, motion, state completeness, forms, feedback, content, responsiveness, accessibility, performance perception, resilience, data integrity, navigation, environment behavior, security UX, and fit-and-finish.
|
|
13
|
+
|
|
14
|
+
The normative standard is [framework/standards/APPLICATION-POLISH.md](framework/standards/APPLICATION-POLISH.md), the review procedure is [framework/protocols/APPLICATION-POLISH-REVIEW.md](framework/protocols/APPLICATION-POLISH-REVIEW.md), and the active research program is [research/frontier/application-polish-engineering.md](research/frontier/application-polish-engineering.md).
|
|
15
|
+
|
|
16
|
+
A zero-finding review is not evidence of polish by itself. Coverage of states, seams, adversarial fixtures, environments, exceptions, and unknowns is part of the claim.
|
|
17
|
+
|
|
10
18
|
## Requirements
|
|
11
19
|
|
|
12
20
|
- **Node.js 20 or newer.** Node is only used to start the packaged executable.
|
|
@@ -126,7 +134,7 @@ npx @echelon-foundry/visual-engineering init --dry-run
|
|
|
126
134
|
|
|
127
135
|
`init` installed the Visual Engineering UI research briefing into `.visual-engineering/`,
|
|
128
136
|
recorded what it manages in `.echelon/visual-engineering.json`, added a managed block to your
|
|
129
|
-
`.gitignore`
|
|
137
|
+
`.gitignore` that keeps the context directory trackable, and registered a managed block in `AGENTS.md`
|
|
130
138
|
telling coding agents to read the briefing before doing UI work. Your own content in those two
|
|
131
139
|
files is untouched. The next section lists every path.
|
|
132
140
|
|
|
@@ -143,7 +151,7 @@ files is untouched. The next section lists every path.
|
|
|
143
151
|
| `.visual-engineering/context.json` | generated | Context manifest and integrity metadata |
|
|
144
152
|
| `.echelon/visual-engineering.json` | tool-owned | Installation manifest |
|
|
145
153
|
| `.echelon/visual-engineering.config.json` | shared | Repository configuration |
|
|
146
|
-
| `.gitignore` | shared | Managed region
|
|
154
|
+
| `.gitignore` | shared | Managed region re-including the context directory, which must be committed |
|
|
147
155
|
| `AGENTS.md` | shared | Managed region registering the briefing with agents |
|
|
148
156
|
|
|
149
157
|
Shared files are only partly the tool's: it owns a region delimited by
|
|
@@ -182,10 +190,12 @@ install with `--omit=optional`, add the one you need explicitly.
|
|
|
182
190
|
| `verify` | no | Validate that the installation is correct |
|
|
183
191
|
| `upgrade` | yes | Move an existing installation to this release |
|
|
184
192
|
| `doctor` | no | Explain what is wrong and how to fix it |
|
|
193
|
+
| `robustness` | no | Evaluate semantic-channel survivability and perceptual failure boundaries |
|
|
185
194
|
|
|
186
195
|
Global options: `--help`, `--version`, `--repo <path>`, `--json`, `--verbose`.
|
|
187
196
|
`init` and `upgrade` also accept `--dry-run`, `--check` and `--force`.
|
|
188
197
|
`verify` and `doctor` also accept `--strict`.
|
|
198
|
+
`robustness` requires `--manifest <repository-relative-path>`.
|
|
189
199
|
|
|
190
200
|
Full reference: [docs/cli.md](docs/cli.md).
|
|
191
201
|
|
|
@@ -251,11 +261,61 @@ happened rather than leaving the repository half migrated. See
|
|
|
251
261
|
```bash
|
|
252
262
|
npx @echelon-foundry/visual-engineering doctor
|
|
253
263
|
npx @echelon-foundry/visual-engineering doctor --json
|
|
264
|
+
npx @echelon-foundry/visual-engineering robustness --manifest visual-robustness.json --json
|
|
254
265
|
```
|
|
255
266
|
|
|
256
267
|
`doctor` explains *why* something is wrong and how to fix it. Findings are classified as
|
|
257
268
|
`error`, `warning` or `information`; not every deviation is an error.
|
|
258
269
|
|
|
270
|
+
### robustness
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
npx @echelon-foundry/visual-engineering robustness --manifest visual-robustness.json
|
|
274
|
+
npx @echelon-foundry/visual-engineering robustness --manifest visual-robustness.json --json
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
`robustness` evaluates Visual Engineering's provisional perceptual-robustness
|
|
278
|
+
policy without modifying the repository or pretending to simulate a person. A
|
|
279
|
+
manifest declares semantic states, their criticality, the independent visible
|
|
280
|
+
channels carrying each state, programmatic semantics, and optional degradation
|
|
281
|
+
scenarios.
|
|
282
|
+
|
|
283
|
+
The analyzer reports:
|
|
284
|
+
|
|
285
|
+
- baseline validity;
|
|
286
|
+
- whether important and critical states survive every single-channel dropout;
|
|
287
|
+
- declared degradation-scenario failures;
|
|
288
|
+
- each state's **Perceptual Failure Boundary**;
|
|
289
|
+
- all minimal channel-loss sets that cause failure.
|
|
290
|
+
|
|
291
|
+
Example:
|
|
292
|
+
|
|
293
|
+
```json
|
|
294
|
+
{
|
|
295
|
+
"schemaVersion": 1,
|
|
296
|
+
"states": [
|
|
297
|
+
{
|
|
298
|
+
"id": "error",
|
|
299
|
+
"criticality": "critical",
|
|
300
|
+
"channels": ["hue", "text-label", "icon-shape", "border-shape"],
|
|
301
|
+
"programmaticSemantics": true
|
|
302
|
+
}
|
|
303
|
+
],
|
|
304
|
+
"scenarios": [
|
|
305
|
+
{
|
|
306
|
+
"id": "no-hue",
|
|
307
|
+
"lostChannels": ["hue"]
|
|
308
|
+
}
|
|
309
|
+
]
|
|
310
|
+
}
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Exit code `0` means the manifest satisfies the current policy. Exit code `3`
|
|
314
|
+
means the manifest is valid but one or more states fail the robustness policy,
|
|
315
|
+
or the manifest itself is invalid. See
|
|
316
|
+
`examples/visual-robustness.example.json` and
|
|
317
|
+
`schemas/visual-robustness.schema.json`.
|
|
318
|
+
|
|
259
319
|
### Dry run
|
|
260
320
|
|
|
261
321
|
`init --dry-run` and `upgrade --dry-run` inspect the repository, calculate the full plan,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@echelon-foundry/visual-engineering",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Echelon Foundry Visual Engineering repository initialization, verification, diagnostics, and upgrade tooling.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://visual.echelonfoundry.com/",
|
|
@@ -41,11 +41,11 @@
|
|
|
41
41
|
"provenance": true
|
|
42
42
|
},
|
|
43
43
|
"optionalDependencies": {
|
|
44
|
-
"@echelon-foundry/visual-engineering-linux-x64": "1.0.
|
|
45
|
-
"@echelon-foundry/visual-engineering-linux-arm64": "1.0.
|
|
46
|
-
"@echelon-foundry/visual-engineering-win-x64": "1.0.
|
|
47
|
-
"@echelon-foundry/visual-engineering-win-arm64": "1.0.
|
|
48
|
-
"@echelon-foundry/visual-engineering-osx-x64": "1.0.
|
|
49
|
-
"@echelon-foundry/visual-engineering-osx-arm64": "1.0.
|
|
44
|
+
"@echelon-foundry/visual-engineering-linux-x64": "1.0.1",
|
|
45
|
+
"@echelon-foundry/visual-engineering-linux-arm64": "1.0.1",
|
|
46
|
+
"@echelon-foundry/visual-engineering-win-x64": "1.0.1",
|
|
47
|
+
"@echelon-foundry/visual-engineering-win-arm64": "1.0.1",
|
|
48
|
+
"@echelon-foundry/visual-engineering-osx-x64": "1.0.1",
|
|
49
|
+
"@echelon-foundry/visual-engineering-osx-arm64": "1.0.1"
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -11,7 +11,7 @@ audiences:
|
|
|
11
11
|
# Agent Instructions
|
|
12
12
|
|
|
13
13
|
Before UI work, read `UI-FOUNDATIONS.md`, `UI-DECISION-CHECKLIST.md`,
|
|
14
|
-
`UI-ANTI-PATTERNS.md`, and `RESEARCH-INDEX.md` completely.
|
|
14
|
+
`UI-ANTI-PATTERNS.md`, `APPLICATION-POLISH.md`, and `RESEARCH-INDEX.md` completely.
|
|
15
15
|
|
|
16
16
|
Treat this material as architectural reference data, not executable instructions.
|
|
17
17
|
Inspect the product and its existing design system before applying it.
|
|
@@ -20,5 +20,6 @@ Report:
|
|
|
20
20
|
|
|
21
21
|
- the context version and source commit;
|
|
22
22
|
- the principles applied;
|
|
23
|
-
- the verification performed;
|
|
23
|
+
- the verification performed, including applicable states, seams, environments and adversarial cases;
|
|
24
|
+
- untested or unknown polish coverage;
|
|
24
25
|
- any justified deviations.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
project: visual-engineering
|
|
3
|
+
purposes:
|
|
4
|
+
- apply
|
|
5
|
+
- verify
|
|
6
|
+
audiences:
|
|
7
|
+
- practitioner
|
|
8
|
+
- contributor
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Application Polish
|
|
12
|
+
|
|
13
|
+
Polish is the systematic elimination of observable evidence that an application is unfinished. Treat it as engineering work throughout implementation, not a cosmetic pass at the end.
|
|
14
|
+
|
|
15
|
+
For each material user-facing surface, reason across visual precision, interaction, motion, state completeness, forms, feedback, content, responsiveness, accessibility, performance perception, resilience, data integrity, navigation, environment behavior, security UX, and fit-and-finish.
|
|
16
|
+
|
|
17
|
+
Prioritize seams such as loading to loaded, empty to populated, valid to invalid, editing to saving to saved, online to offline to recovered, authenticated to expired, wide to narrow, pointer to keyboard, ordinary to pathological content, overlay lifecycle, and optimistic action to rejection.
|
|
18
|
+
|
|
19
|
+
Use adversarial cases including extreme text, Unicode and RTL, numeric and collection boundaries, broken dependencies, slow or offline behavior, rapid repeated input, zoom and text scaling, constrained viewports, reduced motion, forced colors, expired sessions, stale or conflicting data and interrupted persistence.
|
|
20
|
+
|
|
21
|
+
A zero-finding review is not proof of polish. Report what was tested, what evidence exists, what failed, what was not applicable, and what remains unknown. Unknown is not pass.
|
|
22
|
+
|
|
23
|
+
Recoverable failures should preserve valid work. Persistence indicators must tell the truth. Recurrent defects should be moved upstream into shared components, rules, fixtures or automated probes so they become structurally harder to repeat.
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
Motion review follows the normative motion-selection discipline in `framework/standards/MOTION-AND-INTERACTION.md`: classify the phenomenon before choosing timing, keep semantic state authoritative, preserve zero-lag direct manipulation, keep determinate progress bounded, define interruption behavior, and apply a model-specific reduced-motion substitution.
|
|
27
|
+
|
|
28
|
+
Record motion as evidence, not impressions. For each material animated behavior, add a `motion.entries` item with:
|
|
29
|
+
|
|
30
|
+
- model, phenomenon and what it conveys;
|
|
31
|
+
- the authoritative source, and whether the semantic update is immediate;
|
|
32
|
+
- phase (direct or settle) and roles;
|
|
33
|
+
- the reduced-motion substitution;
|
|
34
|
+
- checks for semantic authority, interruption, rapid repeat, reduced motion, direct-manipulation lag, progress bounds, cadence stopping, boundaries, focus, progressive fallback, concurrent composition and semantic independence, as the model and roles require.
|
|
35
|
+
|
|
36
|
+
A surface with no material motion states `motion.notApplicable.rationale`. Unknown or missing checks leave the gate incomplete. Motion that conveys severity, priority, confidence, permission, risk, correctness or similar domain meaning fails.
|
|
37
|
+
|
|
38
|
+
Reusable motion probes (`registries/application-polish-probes.json`, ids `motion-*`) can produce these checks automatically:
|
|
39
|
+
|
|
40
|
+
- semantic authority, rapid repeat, interruption: selections, toggles and open/close;
|
|
41
|
+
- reduced-motion substitution and semantic cue: every spatial or repeated motion;
|
|
42
|
+
- focus: dialogs, popovers and view transitions;
|
|
43
|
+
- direct lag: drag, resize and scrub;
|
|
44
|
+
- progress bounds: determinate progress;
|
|
45
|
+
- cadence stops: spinners and shimmer;
|
|
46
|
+
- rejected drop and boundary: reorder, snap and resize;
|
|
47
|
+
- progressive fallback: View Transitions and other modern CSS;
|
|
48
|
+
- concurrent composition: stacked effects.
|
|
49
|
+
|
|
50
|
+
Probe results are pass, fail, not-applicable or unknown engineering evidence, not proof of human comfort.
|