@dailephd/my-frontend-observer 0.8.1 → 0.9.0

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.
Files changed (107) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/README.md +107 -7
  3. package/dist/application/projectWorkflowService.d.ts +18 -1
  4. package/dist/application/projectWorkflowService.js +40 -2
  5. package/dist/application/projectWorkflowService.js.map +1 -1
  6. package/dist/application/visualAnnotationContractPromotionService.d.ts +41 -0
  7. package/dist/application/visualAnnotationContractPromotionService.js +143 -0
  8. package/dist/application/visualAnnotationContractPromotionService.js.map +1 -0
  9. package/dist/application/visualAnnotationPersistenceService.d.ts +34 -0
  10. package/dist/application/visualAnnotationPersistenceService.js +68 -0
  11. package/dist/application/visualAnnotationPersistenceService.js.map +1 -0
  12. package/dist/application/visualAnnotationReferenceMaterializationService.d.ts +53 -0
  13. package/dist/application/visualAnnotationReferenceMaterializationService.js +194 -0
  14. package/dist/application/visualAnnotationReferenceMaterializationService.js.map +1 -0
  15. package/dist/artifacts/visualAnnotationArtifactReader.d.ts +19 -0
  16. package/dist/artifacts/visualAnnotationArtifactReader.js +66 -0
  17. package/dist/artifacts/visualAnnotationArtifactReader.js.map +1 -0
  18. package/dist/artifacts/visualAnnotationArtifactWriter.d.ts +42 -0
  19. package/dist/artifacts/visualAnnotationArtifactWriter.js +85 -0
  20. package/dist/artifacts/visualAnnotationArtifactWriter.js.map +1 -0
  21. package/dist/cli.js +464 -454
  22. package/dist/cli.js.map +1 -1
  23. package/dist/domain/visualAnnotation.d.ts +217 -0
  24. package/dist/domain/visualAnnotation.js +584 -0
  25. package/dist/domain/visualAnnotation.js.map +1 -0
  26. package/dist/domain/visualAnnotationIdentity.d.ts +17 -0
  27. package/dist/domain/visualAnnotationIdentity.js +47 -0
  28. package/dist/domain/visualAnnotationIdentity.js.map +1 -0
  29. package/dist/index.d.ts +11 -0
  30. package/dist/index.js +6 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/projectWorkflow/projectPaths.d.ts +9 -0
  33. package/dist/projectWorkflow/projectPaths.js +21 -0
  34. package/dist/projectWorkflow/projectPaths.js.map +1 -1
  35. package/dist/viewer/assets/{index-CN_yb9Uf.css → index-BN41MI7m.css} +1 -1
  36. package/dist/viewer/assets/index-CkKXnlrI.js +9 -0
  37. package/dist/viewer/index.html +2 -2
  38. package/dist/viewer/sw.js +1 -1
  39. package/dist/viewerServer/annotationAuthoring.d.ts +64 -0
  40. package/dist/viewerServer/annotationAuthoring.js +230 -0
  41. package/dist/viewerServer/annotationAuthoring.js.map +1 -0
  42. package/dist/viewerServer/annotationContractPromotion.d.ts +51 -0
  43. package/dist/viewerServer/annotationContractPromotion.js +105 -0
  44. package/dist/viewerServer/annotationContractPromotion.js.map +1 -0
  45. package/dist/viewerServer/annotationReferenceMaterialization.d.ts +40 -0
  46. package/dist/viewerServer/annotationReferenceMaterialization.js +91 -0
  47. package/dist/viewerServer/annotationReferenceMaterialization.js.map +1 -0
  48. package/dist/viewerServer/authoringSecurity.d.ts +59 -0
  49. package/dist/viewerServer/authoringSecurity.js +112 -0
  50. package/dist/viewerServer/authoringSecurity.js.map +1 -0
  51. package/dist/viewerServer/evidence/annotationView.d.ts +28 -0
  52. package/dist/viewerServer/evidence/annotationView.js +43 -0
  53. package/dist/viewerServer/evidence/annotationView.js.map +1 -0
  54. package/dist/viewerServer/evidence/classify.d.ts +3 -1
  55. package/dist/viewerServer/evidence/classify.js +12 -0
  56. package/dist/viewerServer/evidence/classify.js.map +1 -1
  57. package/dist/viewerServer/evidence/discovery.d.ts +2 -0
  58. package/dist/viewerServer/evidence/discovery.js +6 -0
  59. package/dist/viewerServer/evidence/discovery.js.map +1 -1
  60. package/dist/viewerServer/evidence/handles.js +1 -0
  61. package/dist/viewerServer/evidence/handles.js.map +1 -1
  62. package/dist/viewerServer/evidence/index.d.ts +29 -0
  63. package/dist/viewerServer/evidence/index.js +43 -1
  64. package/dist/viewerServer/evidence/index.js.map +1 -1
  65. package/dist/viewerServer/evidence/mediaResolver.d.ts +1 -1
  66. package/dist/viewerServer/evidence/mediaResolver.js +28 -2
  67. package/dist/viewerServer/evidence/mediaResolver.js.map +1 -1
  68. package/dist/viewerServer/evidence/projection.d.ts +5 -1
  69. package/dist/viewerServer/evidence/projection.js +19 -0
  70. package/dist/viewerServer/evidence/projection.js.map +1 -1
  71. package/dist/viewerServer/httpServer.d.ts +13 -2
  72. package/dist/viewerServer/httpServer.js +278 -4
  73. package/dist/viewerServer/httpServer.js.map +1 -1
  74. package/dist/viewerServer/viewerService.d.ts +8 -0
  75. package/dist/viewerServer/viewerService.js +38 -2
  76. package/dist/viewerServer/viewerService.js.map +1 -1
  77. package/docs/ARCHITECTURE.md +108 -21
  78. package/docs/CI_CD.md +57 -1
  79. package/docs/COMMANDS.md +44 -4
  80. package/docs/CONTRACTS.md +78 -8
  81. package/docs/CURRENT_STATE.md +157 -35
  82. package/docs/DEVELOPMENT.md +8 -3
  83. package/docs/PROJECT_DESCRIPTION.md +4 -1
  84. package/docs/PROJECT_MILESTONES.md +4 -0
  85. package/docs/PROJECT_OVERVIEW.md +41 -17
  86. package/docs/QUICKSTART.md +52 -39
  87. package/docs/RELEASE.md +16 -11
  88. package/docs/ROADMAP.md +406 -66
  89. package/docs/SECURITY.md +71 -14
  90. package/docs/WORKFLOWS.md +151 -23
  91. package/docs/plans/v0.9-implementation-plan.md +1529 -0
  92. package/docs/reports/v0.9-architecture-retrieval.md +567 -0
  93. package/docs/reports/v0.9-batch1-visual-annotation-foundation.md +351 -0
  94. package/docs/reports/v0.9-batch2-viewer-annotation-authoring-boundary.md +438 -0
  95. package/docs/reports/v0.9-batch3-runtime-screenshot-annotation-authoring.md +412 -0
  96. package/docs/reports/v0.9-batch4-external-reference-annotation-authoring.md +452 -0
  97. package/docs/reports/v0.9-batch5-runtime-intent-contract-promotion.md +535 -0
  98. package/docs/reports/v0.9-batch6-reference-materialization.md +514 -0
  99. package/docs/reports/v0.9-batch7-integrated-acceptance.md +644 -0
  100. package/docs/reports/v0.9-demo-foundation.md +589 -0
  101. package/docs/reports/v0.9-final-pre-release-readiness.md +209 -0
  102. package/docs/reports/v0.9-final-readiness-corrections.md +530 -0
  103. package/docs/reports/v0.9-pre-release-readiness.md +170 -0
  104. package/docs/reports/v0.9-tutorial-end-to-end-acceptance.md +980 -0
  105. package/docs/reports/v0.9-tutorial-integration.md +731 -0
  106. package/package.json +2 -2
  107. package/dist/viewer/assets/index-D98S1_2d.js +0 -9
@@ -1,15 +1,26 @@
1
1
  # Current State
2
2
 
3
- v0.8.1 is released and published as `@dailephd/my-frontend-observer@0.8.1`.
4
- Project aliases, `init`, `capture`, project-aware `view`, and `check`
5
- orchestration are implemented and MIT licensed.
6
-
7
- The project is published at package version `0.8.1` (roadmap v0.8.1,
8
- Interactive Local Observation Viewer; observation schema `1.2.0`; comparison
9
- schema `1.0.0`; frontend contract schema `1.0.0`; evaluation artifact schema
10
- `1.0.0`; bounded-agent-context schema `1.0.0`; external-reference schema
11
- `1.0.0` - no schema version changed for v0.8) - see "v0.8 status" below for
12
- the final, complete v0.8 state.
3
+ v0.9.0 is released and published as `@dailephd/my-frontend-observer@0.9.0`.
4
+ v0.9 (Human Visual Annotation and Design-Intent Capture) adds structured visual
5
+ annotation to the project-aware viewer. It passed integrated real-Chromium
6
+ acceptance and final exact-candidate pre-release readiness on Windows, Linux
7
+ and macOS, including all four tutorials. The viewer protocol is `1.3.0` and the
8
+ visual annotation schema is `1.0.0`. Project aliases, `init`, `capture`,
9
+ project-aware `view`, and `check` orchestration from v0.8.1 remain implemented,
10
+ and the package is MIT licensed. The
11
+ repository also holds a deterministic demo and four tutorial scenarios for
12
+ v0.9, recorded by the external `@dailephd/my-dev-kit-lab@0.4.9` tool. See
13
+ "v0.9 status" below.
14
+
15
+ The project is published at package version `0.9.0` (roadmap v0.9, Human
16
+ Visual Annotation and Design-Intent Capture; observation schema `1.2.0`;
17
+ comparison schema `1.0.0`; frontend contract schema `1.0.0`; evaluation
18
+ artifact schema `1.0.0`; bounded-agent-context schema `1.0.0`;
19
+ external-reference schema `1.0.0`; visual annotation schema `1.0.0`). v0.9.0
20
+ added the visual annotation schema and did not change any other canonical
21
+ evidence schema version. v0.8.1 did not change any canonical evidence schema
22
+ version either; see "v0.8 status" below for the final, complete v0.8 viewer
23
+ state.
13
24
 
14
25
  v0.8 (Interactive Local Observation Viewer) is fully implemented, tested,
15
26
  formally cross-platform/security validated, and released. All eight v0.8
@@ -38,13 +49,14 @@ The retained repository contains:
38
49
  and standardized documentation.
39
50
 
40
51
  The package bin (`src/cli.ts`) now exposes the real current public CLI
41
- surface described below - the five commands released through `0.6.0`
52
+ surface described below: the five low-level commands released through `0.6.0`
42
53
  (`observe`, `compare`, `approve-baseline`, `save-change-contract`,
43
- `evaluate-contract`) plus three additional commands released as part of
44
- `0.7.0` (`import-reference`, `approve-reference`,
45
- `evaluate-reference-fidelity` - see "v0.7 Prompt 1/6 status" below) - while
46
- remaining a thin parsing/dispatch/presentation boundary; it is no longer the
47
- not-implemented placeholder.
54
+ `evaluate-contract`); three reference commands released in `0.7.0`
55
+ (`import-reference`, `approve-reference`, `evaluate-reference-fidelity`);
56
+ `view`, released in `0.8.0`; and the v0.8.1 high-level `init`, `capture`, and
57
+ `check` commands. v0.8.1 also makes `view` project-aware while preserving its
58
+ standalone `--root` form. `src/cli.ts` remains a thin parsing/dispatch/
59
+ presentation boundary; it is no longer the not-implemented placeholder.
48
60
 
49
61
  ## v0.1 progress (Batch 1–6; implemented and released as 0.1.0)
50
62
 
@@ -546,13 +558,11 @@ binding, or fidelity evaluation yet.
546
558
  extends outside the owning image's bounds.
547
559
  - **Domain** (`src/domain/externalReferenceRegionRelationships.ts`): reuses
548
560
  the exact pure geometry predicates `deriveLayoutRelationships` uses for
549
- runtime targets (now exported additively from `relationships.ts`, formulas
550
- unchanged) to derive the six geometry-only relationship families
551
- (horizontal order, vertical order, area overlap, relative width, geometric
552
- fit, vertical sequencing) between reference regions. Not persisted -
553
- `deriveReferenceRegionRelationships()` is a pure function callers invoke
554
- on demand against an artifact's own `regions`, bounded at
555
- `MAX_REFERENCE_REGION_RELATIONSHIP_RECORDS`.
561
+ runtime targets (now exported additively) from `relationships.ts` rather
562
+ than reimplemented, so reference-region geometry and runtime-target
563
+ geometry can never diverge on the same underlying formula; only the
564
+ geometry-only relationship families apply, since a static image exposes
565
+ no DOM, scroll, or viewport evidence.
556
566
  - **Schema**: `ExternalReferenceArtifact` gained one additive, optional
557
567
  `regions?: ReferenceRegion[]` field. No schema version bump
558
568
  (`EXTERNAL_REFERENCE_SCHEMA_VERSION` remains `'1.0.0'`) - every Prompt 1
@@ -980,7 +990,9 @@ most one designated server-side call site, and several (`compareObservations`,
980
990
  never called by the viewer at all. The viewer never runs
981
991
  `@dailephd/my-dev-kit`, never mutates target source or any Observer
982
992
  artifact, never persists a new viewer-owned evidence family, and every route
983
- rejects non-`GET`/`HEAD` methods.
993
+ rejects non-`GET`/`HEAD` methods. (That was the complete v0.8 surface. v0.9
994
+ later adds exactly three project-aware authoring `POST` routes. See "v0.9
995
+ status" below.)
984
996
 
985
997
  **Validated on the canonical worktree**: `npm run typecheck`, `npm run
986
998
  lint`, `npm test`, `npm run build`, `npm run check:docs`, `npm run
@@ -998,25 +1010,132 @@ viewer surface both passed - see the readiness report above, including the
998
1010
  one security finding it found and fixed (a symlinked-media evidence-root
999
1011
  escape in the viewer's media route).
1000
1012
 
1013
+ ## v0.9 status (Human Visual Annotation and Design-Intent Capture) - released as 0.9.0
1014
+
1015
+ v0.9 is implemented against the frozen plan
1016
+ `docs/plans/v0.9-implementation-plan.md` and released as
1017
+ `@dailephd/my-frontend-observer@0.9.0`.
1018
+
1019
+ - **Prompt 1** (`docs/reports/v0.9-batch1-visual-annotation-foundation.md`)
1020
+ added the `VisualAnnotationArtifact` domain (schema `1.0.0`), structured
1021
+ point/rectangle/line/arrow/note marks, runtime and reference coordinate
1022
+ spaces, explicit associations, candidate/confirmed interpretation,
1023
+ deterministic identity, the atomic writer, the canonical reader, the
1024
+ persistence service, and the derived overlay SVG.
1025
+ - **Prompt 2**
1026
+ (`docs/reports/v0.9-batch2-viewer-annotation-authoring-boundary.md`) added
1027
+ viewer discovery of annotations, the source-resolving annotation view
1028
+ route, the verified overlay media role, and the project-aware authoring
1029
+ boundary with `POST /api/annotations`. `view --root` stays read-only.
1030
+ - **Prompt 3**
1031
+ (`docs/reports/v0.9-batch3-runtime-screenshot-annotation-authoring.md`)
1032
+ added runtime screenshot annotation in runtime CSS pixels with zoom, pan,
1033
+ keyboard selection, save, reload, revisions, and stale-parent conflicts.
1034
+ - **Prompt 4**
1035
+ (`docs/reports/v0.9-batch4-external-reference-annotation-authoring.md`)
1036
+ added external-reference annotation in reference-image pixels, candidate
1037
+ region create and refine proposals, candidate reference requirements, and
1038
+ informational and asset-sensitive intent.
1039
+ - **Prompt 5**
1040
+ (`docs/reports/v0.9-batch5-runtime-intent-contract-promotion.md`) added
1041
+ runtime intent, explicit confirmation, promotion of selected confirmed
1042
+ `move`/`resize`/`preserve` intent into a canonical per-change contract
1043
+ (`POST /api/annotations/:handle/promote-contract`), optional explicit
1044
+ project contract activation, and `.tmp-*` discovery exclusion. Confirmed
1045
+ `remove` intent is honestly non-promotable.
1046
+ - **Prompt 6** (`docs/reports/v0.9-batch6-reference-materialization.md`)
1047
+ added materialization of selected confirmed reference regions and
1048
+ requirements into a new imported external-reference revision
1049
+ (`POST /api/annotations/:handle/materialize-reference`). The source is never
1050
+ changed and nothing is approved automatically.
1051
+ - **Prompt 7** (`docs/reports/v0.9-batch7-integrated-acceptance.md`) added the
1052
+ integrated real-Chromium acceptance suite
1053
+ (`tests/browser/v09IntegratedAcceptance.test.ts`), the packed installed
1054
+ annotation smoke (`scripts/ci/runPackedV09AnnotationSmoke.mjs`), its step in
1055
+ the pre-release readiness matrix, and this documentation reconciliation.
1056
+
1057
+ Current versions: package `0.9.0`, viewer protocol `1.3.0`, visual annotation
1058
+ schema `1.0.0`, frontend contract schema `1.0.0`, external-reference schema
1059
+ `1.0.0`. No other schema changed.
1060
+
1061
+ Invariants: annotations are evidence, not contracts. Only selected confirmed
1062
+ supported intent is promoted or materialized, always through the existing
1063
+ canonical contract and external-reference services. The existing contract,
1064
+ reference relationship, adequacy, and fidelity evaluators remain the only
1065
+ source of verdicts. Observer never edits target source, never approves a
1066
+ baseline or reference automatically, and never updates project reference
1067
+ acceptance.
1068
+
1069
+ Validation state: the full local validation suite, the integrated acceptance
1070
+ suite, and all three packed installed-candidate smokes passed locally on
1071
+ Windows. See the Prompt 7 report for exact results. A cross-platform
1072
+ pre-release readiness run passed on Windows, Linux, and macOS for the Prompt 7
1073
+ commit `a78a058` (`docs/reports/v0.9-pre-release-readiness.md`). That run is
1074
+ historical evidence only. It did not contain the demo and tutorial commits
1075
+ described below, so it is not readiness evidence for the final candidate.
1076
+
1077
+ ### v0.9 demo and tutorials (release support, not product behavior)
1078
+
1079
+ - **Demo foundation** (commit `59ae009`,
1080
+ `docs/reports/v0.9-demo-foundation.md`): a deterministic demo application
1081
+ in `examples/v09-demo/` with ten stable region names, nine frozen states, a
1082
+ loopback-only demo server, a disposable-target materializer, and a fixed
1083
+ 1440x900 reference PNG.
1084
+ - **Tutorial integration** (commit `6895b30`,
1085
+ `docs/reports/v0.9-tutorial-integration.md`): four `TutorialScenarioV1`
1086
+ scenarios in `examples/v09-demo/tutorials/`, a per-run target-contract
1087
+ generator, and a prepare command that builds each disposable target through
1088
+ the canonical `init`, `capture`, contract, and reference commands. The only
1089
+ product change was two optional `data-testid` attributes on the viewer
1090
+ drawing surfaces.
1091
+ - **End-to-end acceptance**
1092
+ (`docs/reports/v0.9-tutorial-end-to-end-acceptance.md`): all four tutorials
1093
+ regenerated from clean targets with `@dailephd/my-dev-kit-lab@0.4.9`,
1094
+ structural and content acceptance, canonical evidence checks, and a full
1095
+ local regression. Scenario narration, reading pauses, and screenshot
1096
+ requests were corrected in this stage. Human visual review of the videos
1097
+ was completed and approved before release.
1098
+ - **Final pre-release readiness**
1099
+ (`docs/reports/v0.9-final-pre-release-readiness.md`, with corrections in
1100
+ `docs/reports/v0.9-final-readiness-corrections.md`): one exact candidate
1101
+ package passed the packed observation, viewer and v0.9 annotation smokes and
1102
+ all four tutorials on Windows, Linux and macOS, using
1103
+ `@dailephd/my-dev-kit-lab@0.4.9` semantic `select-option` for native
1104
+ selects.
1105
+
1106
+ The four scenarios are annotation basics, runtime intent to an active change
1107
+ contract, reference authoring, and reference materialization. After each run
1108
+ the canonical evidence is read directly from the disposable target. The checks
1109
+ prove, for example, that only the two selected clauses were promoted, that
1110
+ `remove` and `inspect` never became clauses, and that a materialized reference
1111
+ revision is `imported`, supersedes its approved source, and reuses the source
1112
+ image bytes unchanged.
1113
+
1114
+ `my-dev-kit-lab` is an external tool invoked through `npx`. It is not an
1115
+ Observer dependency, and Observer has no tutorial command, recorder, subtitle
1116
+ writer, or tutorial manifest schema. `examples/v09-demo/` is excluded from the
1117
+ npm package.
1118
+
1001
1119
  ## Not implemented
1002
1120
 
1003
1121
  - v0.5 baseline-selection/discovery policy (the caller must supply which
1004
1122
  baseline to approve/evaluate against; there is no "find the current
1005
- baseline" command), source ownership, orchestrator/lab product
1006
- integration, and annotation all remain unimplemented in this repository.
1123
+ baseline" command), source ownership, and orchestrator/lab product
1124
+ integration all remain unimplemented in this repository.
1007
1125
  (v0.6's bounded runtime projection and runtime/static correlation, the
1008
1126
  complete v0.7 external-reference correction workflow described above, and
1009
1127
  the v0.8 interactive viewer described in "v0.8 status" above, *are* now
1010
1128
  implemented.) A CLI surface for Prompt 8's correction workflow specifically
1011
1129
  remains unimplemented by design (programmatic-only, library-level use is
1012
1130
  the current supported entry point) - see "v0.7 Prompt 8 status" above.
1013
- Structured visual annotation (v0.9) and the full graphical human-LLM
1014
- workflow (v0.10) remain future and unimplemented.
1131
+ The full graphical human-LLM workflow (v0.10) remains future and
1132
+ unimplemented. Structured visual annotation (v0.9) is implemented and
1133
+ released as `0.9.0` - see "v0.9 status" above.
1015
1134
 
1016
1135
  ## Next target
1017
1136
 
1018
- v0.1-v0.8 are implemented, validated, and released (`0.1.0`, `0.2.0`,
1019
- `0.3.0`, `0.4.0`, `0.5.0`, `0.6.0`, `0.7.0`, `0.8.0`). v0.7 (End-to-End
1137
+ v0.1-v0.9 are implemented, validated, and released (`0.1.0`, `0.2.0`,
1138
+ `0.3.0`, `0.4.0`, `0.5.0`, `0.6.0`, `0.7.0`, `0.8.0`, `0.8.1`, `0.9.0`). v0.7 (End-to-End
1020
1139
  Coding-Agent Frontend Change Review) is fully implemented and released: the
1021
1140
  external-reference artifact foundation, explicit reference
1022
1141
  regions/relationships, selected design requirements/tolerance
@@ -1035,8 +1154,8 @@ for the completeness audit, and
1035
1154
  readiness validation that preceded this release.
1036
1155
 
1037
1156
  v0.8 (Interactive Local Observation Viewer) is fully implemented, tested,
1038
- and released - see "v0.8 status" above. v0.8.1 is the current package
1039
- release: `@dailephd/my-frontend-observer@0.8.1`. All
1157
+ and released - see "v0.8 status" above. v0.8.1 was released as
1158
+ `@dailephd/my-frontend-observer@0.8.1`. All
1040
1159
  eight implementation batches, the hardened documentation/implementation-
1041
1160
  completeness audit, and formal pre-release readiness (cross-platform and
1042
1161
  security validation) have passed - see `docs/ROADMAP.md` for v0.8's full
@@ -1044,6 +1163,9 @@ scope,
1044
1163
  `docs/reports/v0.8-implementation-completeness-documentation-reconciliation.md`
1045
1164
  for the completeness audit, and
1046
1165
  `docs/reports/v0.8-prerelease-readiness-cross-platform-security-code-rot.md`
1047
- for the cross-platform readiness validation that preceded this release. v0.9
1048
- (structured visual annotation) and v0.10 (full graphical human-LLM workflow)
1049
- remain future - see `docs/ROADMAP.md`.
1166
+ for the cross-platform readiness validation that preceded this release.
1167
+
1168
+ v0.9 (structured visual annotation) is released as
1169
+ `@dailephd/my-frontend-observer@0.9.0` - see "v0.9 status" above. The next
1170
+ target is v0.10 (full graphical human-LLM workflow), which remains future and
1171
+ unimplemented - see `docs/ROADMAP.md`.
@@ -1,7 +1,8 @@
1
1
  # Development
2
2
 
3
- The released v0.8.1 workflow is published as
4
- `@dailephd/my-frontend-observer@0.8.1` (CLI `my-frontend-observer`).
3
+ The released v0.9.0 package is published as
4
+ `@dailephd/my-frontend-observer@0.9.0` (CLI `my-frontend-observer`). It keeps
5
+ the v0.8.1 project workflow and adds structured visual annotation.
5
6
 
6
7
  The v0.8.1 workflow is exercised through unit and real-Chromium tests. Project fixtures use `init`, `capture baseline`, and `check`; coding-agent consumers use bounded `check --json`. `tests/browser/projectCheckWorkflow.test.ts` covers REVIEW_REQUIRED, contract FAIL-to-PASS, reference FAIL/PASS/BLOCKED, incomparable BLOCKED, current history, and contained acceptance paths. `scripts/ci/runPackedViewerSmoke.mjs` is the single installed-package viewer/project-workflow smoke owner: it repeats REVIEW_REQUIRED and unchanged-contract FAIL-to-PASS before alias-aware viewer proof. Run the full unit, browser, security, build, documentation, and packed-consumer validations before release readiness.
7
8
 
@@ -187,7 +188,11 @@ This starts a real, loopback-only server serving the actual built PWA. As of
187
188
  v0.8 (all eight implementation batches), it reads `--root` only for bounded,
188
189
  read-only evidence discovery through the existing canonical
189
190
  readers/classifiers - it never writes to `--root` or modifies any artifact
190
- under it.
191
+ under it. The v0.9 annotation authoring surface (implemented, not yet
192
+ released) is available only from the project-aware `node dist/cli.js view`
193
+ inside an initialized project, never from `--root`. Its end-to-end browser
194
+ proof is `tests/browser/v09IntegratedAcceptance.test.ts`, and its packed
195
+ installed proof is `scripts/ci/runPackedV09AnnotationSmoke.mjs`.
191
196
 
192
197
  Unlike `scripts/ci/runPackedObservationSmoke.mjs`, none of these five dev
193
198
  smokes is wired into any CI workflow or is a release gate - they are
@@ -1357,7 +1357,10 @@ The viewer must consume the reusable observation, reference, comparison, contrac
1357
1357
 
1358
1358
  It must not contain a second browser-observation implementation, a second reference model, a second binding engine, a second reference-evaluation implementation, a second contract engine, or a second bounded-context builder.
1359
1359
 
1360
- ## Future capability — Human visual annotation
1360
+ ## Implemented capability (v0.9) — Human visual annotation
1361
+
1362
+ Status: implemented and released as `0.9.0`. The intent below is unchanged and
1363
+ remains the capability authority.
1361
1364
 
1362
1365
  A later phase should allow the user to communicate visual intent directly on top of either an observed frontend or an approved external reference.
1363
1366
 
@@ -1715,6 +1715,10 @@ Milestone 8 is complete when:
1715
1715
 
1716
1716
  ## Milestone 9 — Human Visual Annotation and Design-Intent Capture
1717
1717
 
1718
+ Implementation status: implemented and released as `0.9.0`. The milestone
1719
+ design below is unchanged and remains the capability authority. Milestone 10
1720
+ remains future.
1721
+
1718
1722
  ### Objective
1719
1723
 
1720
1724
  Add visual human intent to the already working Milestone 7 coding-agent/reference workflow through the Milestone 8 viewer.
@@ -1,8 +1,9 @@
1
1
  # Project Overview
2
2
 
3
- The repository contains the complete v0.8.1 source workflow (`init`, `capture`,
4
- `check`, project-aware `view`), released as
5
- `@dailephd/my-frontend-observer@0.8.1` under the MIT license.
3
+ The repository contains the complete v0.9.0 release, published as
4
+ `@dailephd/my-frontend-observer@0.9.0` under the MIT license. It adds
5
+ structured visual annotation to the v0.8.1 project workflow (`init`,
6
+ `capture`, `check`, project-aware `view`).
6
7
 
7
8
  `my-frontend-observer` is the rendered browser/runtime evidence producer in
8
9
  the my-dev-kit ecosystem. It addresses the gap between source-level evidence
@@ -28,13 +29,16 @@ Region Identity; v0.3, Runtime Scrolling, Overflow, and Visibility Behavior;
28
29
  v0.4, Layout Relationships, Dependency Evidence, and Before/After
29
30
  Comparison; v0.5, Executable Frontend Contracts and Explicit Change Scope;
30
31
  v0.6, Bounded Agent Context and Native my-dev-kit Ecosystem Integration;
31
- v0.7, End-to-End Coding-Agent Frontend Change Review; and v0.8, Interactive
32
- Local Observation Viewer, are released and published to npm. The current
33
- package version is `0.8.1` as `@dailephd/my-frontend-observer` (observation schema `1.2.0`, comparison schema
32
+ v0.7, End-to-End Coding-Agent Frontend Change Review; v0.8, Interactive
33
+ Local Observation Viewer; v0.8.1, Project Workflow CLI and Human-Readable
34
+ Evidence Aliases; and v0.9, Human Visual Annotation and Design-Intent Capture,
35
+ are released and published to npm. The current package version is `0.9.0` as
36
+ `@dailephd/my-frontend-observer` (observation schema `1.2.0`, comparison schema
34
37
  `1.0.0`, frontend contract schema `1.0.0`, evaluation artifact schema `1.0.0`,
35
- bounded-agent-context schema `1.0.0`, external-reference schema `1.0.0`). The
36
- released package was validated as a packed npm tarball in a clean consumer
37
- environment across Windows, Linux, and macOS.
38
+ bounded-agent-context schema `1.0.0`, external-reference schema `1.0.0`,
39
+ visual annotation schema `1.0.0`). The released package was validated as a
40
+ packed npm tarball in a clean consumer environment across Windows, Linux, and
41
+ macOS.
38
42
 
39
43
  The released low-level command surface remains artifact-oriented: a real
40
44
  `observe` command launches Chromium, enforces loopback-only safety, captures
@@ -81,8 +85,8 @@ engines used by the CLI, never a second implementation of them. See
81
85
  and `docs/reports/v0.8-prerelease-readiness-cross-platform-security-code-rot.md`
82
86
  for the implementation and release evidence.
83
87
 
84
- The repository implementation now includes released v0.8.1, a project-workflow
85
- CLI usability patch published as `@dailephd/my-frontend-observer@0.8.1`. It does
88
+ v0.8.1 was a project-workflow CLI usability patch published as
89
+ `@dailephd/my-frontend-observer@0.8.1`. It does
86
90
  not introduce a new evidence model. It adds project configuration,
87
91
  human-readable aliases, managed project-local Observer state, and a small
88
92
  high-level `init` / `capture` / `check` / project-aware `view` workflow above
@@ -92,10 +96,23 @@ artifact identifiers during ordinary use. Existing low-level commands remain
92
96
  supported. The frozen plan is
93
97
  `docs/plans/v0.8.1-cli-usability-patch-plan.md`.
94
98
 
95
- v0.9 and v0.10 remain future and unimplemented. v0.9 adds structured visual
96
- annotation through the existing viewer. v0.10 completes the visual human-LLM
97
- workflow and should consume the v0.8.1 high-level acceptance surface rather than
98
- introduce another Observer command architecture.
99
+ The latest published release is v0.9.0. v0.9 adds structured
100
+ visual annotation to the project-aware viewer for both runtime observations and
101
+ external references. People draw marks, explicitly associate them, and confirm
102
+ structured intent. Selected confirmed runtime intent can become a normal
103
+ per-change contract, and selected confirmed reference intent can become a new
104
+ imported external-reference revision. The existing contract and reference
105
+ evaluators stay authoritative. It followed the frozen plan in
106
+ `docs/plans/v0.9-implementation-plan.md`, grounded by
107
+ `docs/reports/v0.9-architecture-retrieval.md`.
108
+ The repository-owned deterministic demo and its four tutorial scenarios
109
+ (`examples/v09-demo/`, recorded by the external
110
+ `@dailephd/my-dev-kit-lab@0.4.9` tool) passed final cross-platform readiness
111
+ with the release. They are release support and documentation, not product
112
+ behavior, and they are not shipped in the npm package.
113
+ v0.10 remains future and unimplemented and completes the visual human-LLM
114
+ workflow on top of the v0.9 annotation model and v0.8.1 high-level acceptance
115
+ surface.
99
116
 
100
117
  The revised dependency path reaches practical coding-agent use before graphical
101
118
  interaction and keeps later visual work on the same canonical evidence system:
@@ -109,9 +126,9 @@ runtime observation and stable identity
109
126
  + reference-vs-candidate structured fidelity evaluation
110
127
  + controlled end-to-end correction workflow (released as 0.7.0)
111
128
  → interactive viewer with reference/candidate inspection (released as 0.8.0)
112
- → project workflow CLI + human-readable evidence aliases (implemented in source; not published)
129
+ → project workflow CLI + human-readable evidence aliases (released as 0.8.1)
113
130
  → structured visual annotation on runtime screenshots and external references
114
- (planned v0.9)
131
+ (released as 0.9.0)
115
132
  → full visual human-LLM workflow with actual-frontend-driven and
116
133
  reference-driven entry modes (planned v0.10)
117
134
  ```
@@ -145,6 +162,13 @@ Repository-local authorities and navigation:
145
162
  release state.
146
163
  - [plans/v0.8.1-cli-usability-patch-plan.md](plans/v0.8.1-cli-usability-patch-plan.md)
147
164
  freezes the concrete implementation plan for the v0.8.1 patch.
165
+ - [plans/v0.9-implementation-plan.md](plans/v0.9-implementation-plan.md)
166
+ freezes the concrete implementation architecture, seven ordered batches,
167
+ gates, and validation expectations for v0.9. It is planning authority only;
168
+ the v0.9 implementation state is recorded in CURRENT_STATE.md and the
169
+ `reports/v0.9-*.md` reports.
170
+ - [reports/v0.9-architecture-retrieval.md](reports/v0.9-architecture-retrieval.md)
171
+ preserves the bounded current-source retrieval that grounded the v0.9 plan.
148
172
 
149
173
  Historical greenfield artifacts and reports are retained as evidence that an
150
174
  earlier run overreached into v0.1; they are not current-state authority.
@@ -1,28 +1,46 @@
1
1
  # Quickstart
2
2
 
3
+ For complete coding-agent features, runtime-to-source repair, shared-component
4
+ protection, and ecosystem failure feedback, use the single
5
+ [ecosystem workflow guide in my-dev-kit](https://github.com/dailephd/my-dev-kit/blob/main/docs/ECOSYSTEM_DEVELOPMENT_WORKFLOWS.md).
6
+ Observer owns the browser evidence and its canonical evaluations. Project tests
7
+ own application actions and backend/frontend integration. Orchestrator owns
8
+ native lifecycle when selected. Lab supplies applicable assurance separately.
9
+ This repository does not maintain another ecosystem-guide copy.
10
+
3
11
  The common source workflow is:
4
12
 
5
13
  ```powershell
6
14
  node dist/cli.js init --url http://127.0.0.1:3000 --target app=#app
7
15
  node dist/cli.js capture baseline
8
16
  # make a frontend change
9
- node dist/cli.js check baseline
17
+ node dist/cli.js check baseline --json
10
18
  node dist/cli.js view
11
19
  ```
12
20
 
13
- Use `check baseline --json` for a coding agent: on `FAIL`, use the returned
14
- bounded runtime evidence, correct source externally, and rerun until `PASS`.
15
- Observer never edits source. Canonical IDs remain available in details and
16
- provenance but are not required as ordinary command input.
21
+ Use `check baseline --json` for a coding agent. It captures a new immutable
22
+ candidate, compares it canonically, and evaluates configured acceptance. The
23
+ result and exit status are `PASS`/0, `FAIL`/1, `REVIEW_REQUIRED`/2, or `BLOCKED`/3.
24
+ Comparison alone returns `REVIEW_REQUIRED`, even when no differences are found.
25
+ Configure the applicable contract and/or approved reference through the current
26
+ project schema before expecting an acceptance PASS. See
27
+ [COMMANDS.md](COMMANDS.md#v081-common-workflow) for the exact fields.
28
+
29
+ On a failure, preserve the bounded evidence, correct source externally, and
30
+ recheck against the same baseline. Do not replace the baseline, relax protected
31
+ requirements, or treat REVIEW_REQUIRED/BLOCKED as success. Observer never edits
32
+ source. Canonical IDs remain available in details and provenance but are not
33
+ required as ordinary project-command input.
17
34
 
18
- Prerequisites are Node.js 24 or later and npm. For the published package:
35
+ Prerequisites are Node.js 24 or later and npm. The package identity is:
19
36
 
20
37
  ```powershell
21
38
  npm install --save-dev @dailephd/my-frontend-observer
22
39
  npx playwright install chromium
23
40
  ```
24
41
 
25
- The installed CLI is still named `my-frontend-observer`.
42
+ The installed CLI remains `my-frontend-observer`. Use the resolved local binary
43
+ or `npx @dailephd/my-frontend-observer` and record its version. For source setup:
26
44
 
27
45
  ```powershell
28
46
  npm install
@@ -30,7 +48,7 @@ npx playwright install chromium
30
48
  npm run build
31
49
  ```
32
50
 
33
- Run a real observation against your own local frontend:
51
+ The advanced observation workflow remains supported:
34
52
 
35
53
  ```powershell
36
54
  node dist/cli.js observe `
@@ -41,37 +59,32 @@ node dist/cli.js observe `
41
59
  --output observations
42
60
  ```
43
61
 
44
- This launches Chromium, captures a screenshot plus bounded page/target
45
- evidence, and writes one portable artifact under `observations/<observation-id>/`.
46
- See [COMMANDS.md](COMMANDS.md) for the full flag reference, including the
47
- `--targets-file` structured semantic-target input and the
48
- `--scroll-scenario-file` bounded runtime scroll scenario input.
49
-
50
- Once you have two such artifacts, `node dist/cli.js compare --before
51
- <root> --after <root> --output comparisons` derives before/after evidence
52
- between them without launching a browser again - see
53
- [COMMANDS.md](COMMANDS.md#compare) for details.
54
-
55
- You can then approve a baseline, save a per-change contract, and evaluate a
56
- candidate change against them plus the observation/comparison evidence
57
- above - see [COMMANDS.md](COMMANDS.md#approve-baseline) for the exact flags
58
- and [WORKFLOWS.md](WORKFLOWS.md) for the full flow.
59
-
60
- If you also have an external design-reference image, `import-reference`/
61
- `approve-reference`/`evaluate-reference-fidelity` let you compare a
62
- candidate observation against it (implemented in the current development
63
- state; see [COMMANDS.md](COMMANDS.md) and [CONTRACTS.md](CONTRACTS.md) for
64
- the exact flags and contract).
65
-
66
- To inspect a project visually instead of opening raw artifact files,
67
- `my-frontend-observer view --no-open` starts a local,
68
- loopback-only viewer server (usable in a normal browser or as an installed
69
- PWA) over managed project evidence. For existing standalone evidence roots,
70
- use `my-frontend-observer view --root observations --no-open`. See
71
- [COMMANDS.md](COMMANDS.md#view) for the full
72
- flag reference, including `--bindings-file` and `--context-file`.
73
-
74
- To validate the repository itself instead:
62
+ It launches Chromium, captures a screenshot plus bounded page/target evidence,
63
+ and writes a portable artifact under `observations/<observation-id>/`.
64
+ [COMMANDS.md](COMMANDS.md) documents structured `--targets-file` input, bounded
65
+ `--scroll-scenario-file` actions, and declared `--state-file` identity. Declaring
66
+ state does not log in, seed data, or execute a user journey. Establish required
67
+ application state with the project's actual setup/browser test commands.
68
+
69
+ With two observations, `compare --before <root> --after <root> --output
70
+ comparisons` derives before/after evidence without launching another browser.
71
+ It can report incomparable evidence successfully, so inspect the semantic
72
+ result rather than treat advanced-command exit 0 as acceptance.
73
+
74
+ `approve-baseline`, `save-change-contract`, and `evaluate-contract` expose the
75
+ advanced frontend contract flow. A selected external image additionally uses
76
+ `import-reference`, `approve-reference`, and `evaluate-reference-fidelity`.
77
+ Reference requirements, applicability, explicit bindings, and protected behavior
78
+ remain independent acceptance responsibilities. A raw image import does not
79
+ approve a reference or prove every aesthetic requirement. See
80
+ [CONTRACTS.md](CONTRACTS.md) and [WORKFLOWS.md](WORKFLOWS.md).
81
+
82
+ `my-frontend-observer view --no-open` starts the loopback-only viewer over managed
83
+ project evidence. Use `view --root observations --no-open` for standalone roots.
84
+ The viewer is inspect-only. Its `--bindings-file` and `--context-file` inputs do
85
+ not create a second evaluator or automatic source-owner mapping.
86
+
87
+ To validate this repository itself, rather than the target application:
75
88
 
76
89
  ```powershell
77
90
  npm run typecheck
package/docs/RELEASE.md CHANGED
@@ -1,24 +1,29 @@
1
1
  # Release
2
2
 
3
- `v0.8.1` (Project Workflow CLI and Human-Readable Evidence Aliases) is
4
- released and published to npm as `@dailephd/my-frontend-observer`. The
5
- release includes the managed project workflow, bounded check interface,
6
- alias-aware viewer, cross-platform validation, and MIT license.
3
+ `v0.9.0` (Human Visual Annotation and Design-Intent Capture) is released and
4
+ published to npm as `@dailephd/my-frontend-observer`. The release adds
5
+ structured visual annotation of runtime observations and external references
6
+ to the project-aware viewer, selected promotion of confirmed runtime intent
7
+ into canonical change contracts, and selected materialization of confirmed
8
+ reference intent into new imported reference revisions, with final
9
+ Windows/Linux/macOS readiness and the MIT license.
7
10
 
8
11
  The CLI remains `my-frontend-observer`; package identity and product identity
9
12
  are intentionally distinct. Canonical artifact schemas remain versioned
10
13
  independently from the npm package version.
11
14
 
12
15
  Observation, comparison, frontend contract, evaluation artifact,
13
- bounded-agent-context, external-reference, and package version all remain
14
- separate: package version is `0.7.0`; observation schema is `1.2.0`,
15
- comparison schema is `1.0.0`, frontend contract schema is `1.0.0`,
16
+ bounded-agent-context, external-reference, visual annotation, and package
17
+ version all remain separate: package version is `0.9.0`; observation schema is
18
+ `1.2.0`, comparison schema is `1.0.0`, frontend contract schema is `1.0.0`,
16
19
  evaluation artifact schema is `1.0.0`, bounded-agent-context schema is
17
- `1.0.0`, and external-reference schema is `1.0.0` - none of which changes
18
- automatically with the package version, and none of which was bumped by
19
- the v0.7 work.
20
+ `1.0.0`, external-reference schema is `1.0.0`, and visual annotation schema is
21
+ `1.0.0` - none of which changes automatically with the package version. v0.9
22
+ introduced the visual annotation schema and bumped no existing schema.
20
23
 
21
- Prior releases: `v0.6.0` (Bounded Agent Context and Native my-dev-kit
24
+ Prior releases: `v0.8.1` (Project Workflow CLI and Human-Readable Evidence
25
+ Aliases), `v0.8.0` (Interactive Local Observation Viewer), `v0.7.0` (End-to-End
26
+ Coding-Agent Frontend Change Review), `v0.6.0` (Bounded Agent Context and Native my-dev-kit
22
27
  Ecosystem Integration), `v0.5.0` (Executable Frontend Contracts and
23
28
  Explicit Change Scope), `v0.4.0` (Layout Relationships, Dependency
24
29
  Evidence, and Before/After Comparison), `v0.3.0` (Runtime Scrolling,