@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 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` so the context is not committed, and registered a managed block in `AGENTS.md`
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 ignoring the context directory |
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.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.0",
45
- "@echelon-foundry/visual-engineering-linux-arm64": "1.0.0",
46
- "@echelon-foundry/visual-engineering-win-x64": "1.0.0",
47
- "@echelon-foundry/visual-engineering-win-arm64": "1.0.0",
48
- "@echelon-foundry/visual-engineering-osx-x64": "1.0.0",
49
- "@echelon-foundry/visual-engineering-osx-arm64": "1.0.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.