@adia-ai/a2ui-mcp 0.7.24 → 0.7.26

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
@@ -1,5 +1,16 @@
1
1
  # Changelog — @adia-ai/a2ui-mcp
2
2
 
3
+ ## [0.7.26] — 2026-07-04
4
+
5
+ ### Maintenance
6
+ - **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.26 work shipped in variant="outline" retired as the reach-for-secondary generation-time habit. See `packages/a2ui/compose/CHANGELOG.md#unreleased` for details.
7
+
8
+ ## [0.7.25] — 2026-07-03
9
+
10
+ ### Maintenance
11
+ - **Lockstep version bump.** No functional source changes; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.25 work shipped in accordion-ui variant="flat|contained" posture + 2 footnote fixes + keyboard a11y. See `packages/web-components/CHANGELOG.md#0725--2026-07-03` for details.
12
+ - **Doc-comment path reference corrected** (`docs/specs/...` → `.claude/docs/specs/...`) in `tools/synthesis.ts` — propagated from the repo-wide `docs/` → `.claude/docs/` migration (2026-07-01); no functional change.
13
+
3
14
  ## [0.7.24] — 2026-07-01
4
15
 
5
16
  ### Maintenance
@@ -317,7 +328,7 @@
317
328
  ## [0.6.15] — 2026-05-21
318
329
 
319
330
  ### Maintenance
320
- - **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.15 work shipped in `@adia-ai/web-components` — `installIconLoaders` shape-detects malformed flat globs (FB-07 auto-promote + warn), `icons-phosphor.js` surfaces silent-fail diagnostics (FB-08), and docs/skill examples corrected (FB-09). See `packages/web-components/CHANGELOG.md#0615--2026-05-21` for details.
331
+ - **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.15 work shipped in `@adia-ai/web-components` — `installIconLoaders` shape-detects malformed flat globs (FB-07 auto-promote + warn), `icons-phosphor.js` surfaces silent-fail diagnostics (FB-08), and .claude/docs/skill examples corrected (FB-09). See `packages/web-components/CHANGELOG.md#0615--2026-05-21` for details.
321
332
 
322
333
  ## [0.6.14] — 2026-05-21
323
334
 
@@ -644,7 +655,7 @@ Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4
644
655
 
645
656
  ### Added
646
657
 
647
- - `scripts/shadow-compare-classify.mjs` — Phase 3 shadow-compare classifier tool (139 lines). Compares the deterministic `classifyIntent` + `scoreAgainstSpec` (from `@adia-ai/a2ui-validator` Phase 3 foundation, shipped in v0.4.1) against the LLM judge baseline. Used to identify IntentSpecs eligible for fast-path promotion (`≥ 95%` agreement threshold per spec § 3c). First report at `docs/reports/semantic-shadow-compare-2026-05-10.md` flagged `auth.signin` + `auth.signup` as eligible. Surfaces alongside `npm run semantic:shadow-compare`.
658
+ - `scripts/shadow-compare-classify.mjs` — Phase 3 shadow-compare classifier tool (139 lines). Compares the deterministic `classifyIntent` + `scoreAgainstSpec` (from `@adia-ai/a2ui-validator` Phase 3 foundation, shipped in v0.4.1) against the LLM judge baseline. Used to identify IntentSpecs eligible for fast-path promotion (`≥ 95%` agreement threshold per spec § 3c). First report at `.claude/docs/reports/semantic-shadow-compare-2026-05-10.md` flagged `auth.signin` + `auth.signup` as eligible. Surfaces alongside `npm run semantic:shadow-compare`.
648
659
 
649
660
  ### Ride-along (otherwise no source changes)
650
661
 
@@ -682,7 +693,7 @@ Lockstep version bump only — source byte-identical to v0.3.4. Internal `@adia-
682
693
  Lockstep version bump only — source byte-identical to v0.3.3. Internal `@adia-ai/*` dep ranges remain at `^0.3.0`. See root [CHANGELOG.md `## [0.3.4]`](../../../CHANGELOG.md) for the cut narrative.
683
694
  ## [0.3.3] - 2026-05-07
684
695
 
685
- **Lockstep cut.** All 9 published `@adia-ai/*` packages now share version `0.3.3`, governed by [`docs/specs/package-architecture.md` § 15](../../../docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` ranges stay at `^0.3.0` (patch-cut asymmetry — caret floats `0.3.x`).
696
+ **Lockstep cut.** All 9 published `@adia-ai/*` packages now share version `0.3.3`, governed by [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` ranges stay at `^0.3.0` (patch-cut asymmetry — caret floats `0.3.x`).
686
697
 
687
698
  ### Added
688
699
 
@@ -720,7 +731,7 @@ Lockstep version bump only — source byte-identical to v0.3.3. Internal `@adia-
720
731
  ## [0.3.2] - 2026-05-06
721
732
 
722
733
  **9-package lockstep patch cut to v0.3.2.** All lockstep members share
723
- one version per [`docs/specs/package-architecture.md` § 15](../../../docs/specs/package-architecture.md#15-versioning-policy).
734
+ one version per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
724
735
  Internal `@adia-ai/*` dep ranges unchanged at `^0.3.0`.
725
736
 
726
737
  ### Added
@@ -744,7 +755,7 @@ Internal `@adia-ai/*` dep ranges unchanged at `^0.3.0`.
744
755
  - `version`: `0.3.1` → `0.3.2`.
745
756
  ## [0.3.1] - 2026-05-06
746
757
 
747
- **9-package lockstep patch cut.** All 9 published `@adia-ai/*` packages bump 0.3.0 → 0.3.1 per [`docs/specs/package-architecture.md` § 15](../../../docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges remain at `^0.3.0` (covers `0.3.1` under semver — patch-cut asymmetry).
758
+ **9-package lockstep patch cut.** All 9 published `@adia-ai/*` packages bump 0.3.0 → 0.3.1 per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges remain at `^0.3.0` (covers `0.3.1` under semver — patch-cut asymmetry).
748
759
 
749
760
  This package itself ships **no source changes** in v0.3.1. The cut bumps version only — substantive content lives in [`@adia-ai/web-components`](https://github.com/adiahealth/gen-ui-kit/releases/tag/web-components-v0.3.1) (folder-per-trait restructure; barrel API unchanged).
750
761
 
@@ -754,7 +765,7 @@ This package itself ships **no source changes** in v0.3.1. The cut bumps version
754
765
  - Internal `@adia-ai/*` dep ranges: unchanged at `^0.3.0` (covers `0.3.1` under semver — patch-cut asymmetry).
755
766
  ## [0.3.0] - 2026-05-05
756
767
 
757
- **9-package lockstep cut + new `@adia-ai/llm` dep.** All 9 published `@adia-ai/*` packages bump 0.2.5 → 0.3.0 per [`docs/specs/package-architecture.md` § 15](../../../docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges bump `^0.2.0` → `^0.3.0`.
768
+ **9-package lockstep cut + new `@adia-ai/llm` dep.** All 9 published `@adia-ai/*` packages bump 0.2.5 → 0.3.0 per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges bump `^0.2.0` → `^0.3.0`.
758
769
 
759
770
  The MCP synthesis tool now resolves `createLLMAdapter` from `@adia-ai/llm` (9th lockstep package, first publish in this cut) rather than `@adia-ai/a2ui-compose/llm` (subpath dropped). Behavior unchanged.
760
771
 
@@ -779,9 +790,9 @@ If you depend on `@adia-ai/a2ui-mcp` directly (typically as a CLI via `npx adiau
779
790
  `@adia-ai/llm` is a transitive dep — npm install handles it.
780
791
  ## [0.2.5] - 2026-05-04
781
792
 
782
- **8-package lockstep cut.** All 8 published `@adia-ai/*` packages bump 0.2.4 → 0.2.5 per [`docs/specs/package-architecture.md` § 15](../../../docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges remain at `^0.2.0` (covers 0.2.5 under semver — patch-cut asymmetry).
793
+ **8-package lockstep cut.** All 8 published `@adia-ai/*` packages bump 0.2.4 → 0.2.5 per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges remain at `^0.2.0` (covers 0.2.5 under semver — patch-cut asymmetry).
783
794
 
784
- This is a **patch cut on top of v0.2.4, no BREAKING changes.** Substantive content lives in `web-components` (new `<fields-ui>` form-grid primitive + `draggable-list-item` last-item drop-zone fix, both surfaced by the Tasks UI Playground at `docs/projects/tasks-playground/`); `a2ui-corpus` ships a catalog regen for the new `<fields-ui>` yaml. `a2ui-mcp` rides along at version bump only — no source change.
795
+ This is a **patch cut on top of v0.2.4, no BREAKING changes.** Substantive content lives in `web-components` (new `<fields-ui>` form-grid primitive + `draggable-list-item` last-item drop-zone fix, both surfaced by the Tasks UI Playground at `.claude/docs/projects/tasks-playground/`); `a2ui-corpus` ships a catalog regen for the new `<fields-ui>` yaml. `a2ui-mcp` rides along at version bump only — no source change.
785
796
 
786
797
  ### Changed
787
798
 
@@ -789,7 +800,7 @@ This is a **patch cut on top of v0.2.4, no BREAKING changes.** Substantive conte
789
800
  - Internal `@adia-ai/*` dep ranges: unchanged at `^0.2.0` (covers `0.2.5` under semver — patch-cut asymmetry).
790
801
  ## [0.2.4] - 2026-05-04
791
802
 
792
- **8-package lockstep cut.** All 8 published `@adia-ai/*` packages bump 0.2.3 → 0.2.4 per [`docs/specs/package-architecture.md` § 15](../../../docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges remain at `^0.2.0` (covers 0.2.4 under semver — patch-cut asymmetry).
803
+ **8-package lockstep cut.** All 8 published `@adia-ai/*` packages bump 0.2.3 → 0.2.4 per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges remain at `^0.2.0` (covers 0.2.4 under semver — patch-cut asymmetry).
793
804
 
794
805
  This is a **patch cut on top of v0.2.3, no BREAKING changes.** Substantive content lives in `web-components` (Tier 4 trait library lift, 11 new traits + 2 architectural rewrites, plus accumulated bug fixes); `a2ui-corpus` ships a catalog regen for the new `<demo-toggle-ui>` primitive. Six packages ride along at version + dep-range bump.
795
806
 
@@ -809,7 +820,7 @@ _Nothing yet._
809
820
 
810
821
  **Lockstep cut.** All 8 published `@adia-ai/*` packages bump
811
822
  0.2.2 → 0.2.3 per
812
- [`docs/specs/package-architecture.md` § 15](../../../docs/specs/package-architecture.md#15-versioning-policy).
823
+ [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
813
824
  Patch cut — no breaking changes.
814
825
 
815
826
  ### Changed
@@ -824,7 +835,7 @@ Patch cut — no breaking changes.
824
835
  `@adia-ai/a2ui-mcp` source is byte-identical to `0.2.2`. The cut bumps version + the internal dep range entries only.
825
836
  ## [0.2.2] - 2026-05-02
826
837
 
827
- **Lockstep cut.** All 8 published `@adia-ai/*` packages bump 0.2.1 → 0.2.2 per [`docs/specs/package-architecture.md` § 15](../../../docs/specs/package-architecture.md#15-versioning-policy). Patch cut — no breaking changes.
838
+ **Lockstep cut.** All 8 published `@adia-ai/*` packages bump 0.2.1 → 0.2.2 per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Patch cut — no breaking changes.
828
839
 
829
840
  ### Changed
830
841
 
@@ -842,7 +853,7 @@ Patch cut — no breaking changes.
842
853
  ---
843
854
  ## [0.2.1] - 2026-05-02
844
855
 
845
- **Lockstep cut + `report_issue` trigger phrases + scope-drift auto-fire on canvas-drift detection.** All 8 published `@adia-ai/*` packages bump 0.2.0 → 0.2.1 per [`docs/specs/package-architecture.md` § 15](../../../docs/specs/package-architecture.md#15-versioning-policy). Patch cut — no breaking changes.
856
+ **Lockstep cut + `report_issue` trigger phrases + scope-drift auto-fire on canvas-drift detection.** All 8 published `@adia-ai/*` packages bump 0.2.0 → 0.2.1 per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Patch cut — no breaking changes.
846
857
 
847
858
  ### Changed
848
859
 
@@ -874,7 +885,7 @@ When the composer's scope-drift gate (a2ui-compose) flags `result.scopeDrift.dri
874
885
 
875
886
  **Lockstep cut + corpus caret-lock fix.** All 8 published `@adia-ai/*`
876
887
  packages now share one version, governed by
877
- [`docs/specs/package-architecture.md` § 15 (Versioning Policy)](../../../docs/specs/package-architecture.md#15-versioning-policy).
888
+ [`.claude/docs/specs/package-architecture.md` § 15 (Versioning Policy)](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
878
889
 
879
890
  This release **fixes a live shipping bug** in 0.1.3: the `dependencies`
880
891
  range `"@adia-ai/a2ui-corpus": "^0.0.6"` locked to *exactly* `0.0.6`
@@ -915,7 +926,7 @@ BREAKING changes.
915
926
 
916
927
  - **`compose_from_chunks` eval runner + hold-out set**. Closes the
917
928
  spec at
918
- [`docs/specs/compose-from-chunks-eval.md`](../../../docs/specs/compose-from-chunks-eval.md):
929
+ [`.claude/docs/specs/compose-from-chunks-eval.md`](../../../.claude/docs/specs/compose-from-chunks-eval.md):
919
930
  - `evals/compose-from-chunks-holdout.jsonl` — 20 intents (10
920
931
  single-turn compose + 10 multi-turn refine) across 9
921
932
  categories (data-display, forms, layout, data, data-viz,
@@ -945,7 +956,7 @@ BREAKING changes.
945
956
  ---
946
957
  ## [0.1.2] - 2026-05-01
947
958
 
948
- Phase 2 of [`docs/specs/semantic-validator.md`](../../../docs/specs/semantic-validator.md)
959
+ Phase 2 of [`.claude/docs/specs/semantic-validator.md`](../../../.claude/docs/specs/semantic-validator.md)
949
960
  **promoted to default**. When `--semantic` is set, `eval-diff.mjs`
950
961
  now gates on the combined score at threshold 80 by default, instead
951
962
  of running in Phase 1 shadow-mode. **Behavior change** — see § Opt
@@ -1001,7 +1012,7 @@ Pass rate drops from 83 → 79 (4 percentage points), all justified.
1001
1012
 
1002
1013
  ### Updated baseline thresholds
1003
1014
 
1004
- Per [`docs/specs/semantic-validator.md`](../../../docs/specs/semantic-validator.md)
1015
+ Per [`.claude/docs/specs/semantic-validator.md`](../../../.claude/docs/specs/semantic-validator.md)
1005
1016
  § Phase 2 status (2026-05-01):
1006
1017
 
1007
1018
  - `avgScore ≥ 88` (structural — unchanged)
@@ -1019,7 +1030,7 @@ Per [`docs/specs/semantic-validator.md`](../../../docs/specs/semantic-validator.
1019
1030
  threshold revalidation passes
1020
1031
  ## [0.1.1] - 2026-05-01
1021
1032
 
1022
- Phase 2 of [`docs/specs/semantic-validator.md`](../../../docs/specs/semantic-validator.md)
1033
+ Phase 2 of [`.claude/docs/specs/semantic-validator.md`](../../../.claude/docs/specs/semantic-validator.md)
1023
1034
  — opt-in combined-gating in `eval-diff.mjs` + new
1024
1035
  `semantic-stats.mjs` companion script. **No breaking changes.**
1025
1036
  Default `eval-diff` behavior unchanged — Phase 1 shadow-mode is
@@ -1090,8 +1101,8 @@ MCP tools that turn the chunk-composition pipeline from single-shot into a
1090
1101
  multi-turn surface, plus extends `compose_from_chunks` to mint a `state_id`
1091
1102
  for refinement chains.
1092
1103
 
1093
- Spec: [`docs/specs/genui-multiturn-architecture.md`](../../../docs/specs/genui-multiturn-architecture.md) (Active v0.1.0).
1094
- Plan: [`docs/plans/genui-multiturn-rollout-2026-04-28.md`](../../../docs/plans/genui-multiturn-rollout-2026-04-28.md) (Phase A scoped).
1104
+ Spec: [`.claude/docs/specs/genui-multiturn-architecture.md`](../../../.claude/docs/specs/genui-multiturn-architecture.md) (Active v0.1.0).
1105
+ Plan: [`.claude/docs/plans/genui-multiturn-rollout-2026-04-28.md`](../../../.claude/docs/plans/genui-multiturn-rollout-2026-04-28.md) (Phase A scoped).
1095
1106
  ADR: [`0008-multiturn-genui-architecture.md`](../../../.brain/adrs/0008-multiturn-genui-architecture.md).
1096
1107
 
1097
1108
  ### Added (MCP tools)
@@ -1328,8 +1339,8 @@ before HTML is materialized.
1328
1339
 
1329
1340
  ### Convention reference
1330
1341
 
1331
- - Spec: [`docs/specs/genui-chunk-marker.md`](../../../docs/specs/genui-chunk-marker.md).
1332
- - Plan: [`docs/plans/training-pipeline-chunk-harvest-2026-04-27.md`](../../../docs/plans/training-pipeline-chunk-harvest-2026-04-27.md).
1342
+ - Spec: [`.claude/docs/specs/genui-chunk-marker.md`](../../../.claude/docs/specs/genui-chunk-marker.md).
1343
+ - Plan: [`.claude/docs/plans/training-pipeline-chunk-harvest-2026-04-27.md`](../../../.claude/docs/plans/training-pipeline-chunk-harvest-2026-04-27.md).
1333
1344
 
1334
1345
  ### Other
1335
1346
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adia-ai/a2ui-mcp",
3
- "version": "0.7.24",
3
+ "version": "0.7.26",
4
4
  "description": "AdiaUI A2UI MCP server. Exposes the compose engine over MCP with an engine selector for monolithic + zettel strategies.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * eval-compose-from-chunks.mjs — Hold-out eval for the chunk-aware
4
- * synthesizer. Per `docs/specs/compose-from-chunks-eval.md`.
4
+ * synthesizer. Per `.claude/docs/specs/compose-from-chunks-eval.md`.
5
5
  *
6
6
  * Reads `packages/a2ui/corpus/evals/holdout-compose-from-chunks.jsonl`,
7
7
  * runs each intent through `composeFromIntent`, and emits a per-intent
@@ -37,7 +37,7 @@
37
37
  * npm run eval:compose-from-chunks -- --real-llm # real-LLM
38
38
  * npm run eval:compose-from-chunks -- --limit 5 # first 5 intents
39
39
  * npm run eval:compose-from-chunks -- --json # JSON report
40
- * npm run eval:compose-from-chunks -- --report-file # write to docs/reports/
40
+ * npm run eval:compose-from-chunks -- --report-file # write to .claude/docs/reports/
41
41
  */
42
42
 
43
43
  import '../../../../scripts/load-env.mjs';
@@ -247,7 +247,7 @@ async function main() {
247
247
 
248
248
  if (FLAG_REPORT) {
249
249
  const date = new Date().toISOString().slice(0, 10);
250
- const dir = path.join(REPO_ROOT, 'docs/reports');
250
+ const dir = path.join(REPO_ROOT, '.claude/docs/reports');
251
251
  if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
252
252
  const file = path.join(dir, `eval-compose-from-chunks-${date}.md`);
253
253
  fs.writeFileSync(file, output + '\n');
@@ -12,8 +12,8 @@
12
12
  * - ≥ 90% of returned ops apply cleanly (validator + applyOps).
13
13
  * - ≤ 5 auto-fired issues across the full run (plan §1.8 #3).
14
14
  *
15
- * Spec: docs/specs/genui-multiturn-architecture.md (Active v0.1.0).
16
- * Plan: docs/plans/genui-multiturn-rollout-2026-04-28.md (Phase A).
15
+ * Spec: .claude/docs/specs/genui-multiturn-architecture.md (Active v0.1.0).
16
+ * Plan: .claude/docs/plans/genui-multiturn-rollout-2026-04-28.md (Phase A).
17
17
  *
18
18
  * Usage:
19
19
  * ANTHROPIC_API_KEY=… node packages/a2ui/mcp/scripts/eval-refine-synthesis.mjs
@@ -3,7 +3,7 @@
3
3
  * Compare two eval-diff run artifacts (JSON) and surface verdict-distribution
4
4
  * + pass-rate deltas. Used to verify "no unexplained regressions" between
5
5
  * baseline and a candidate gating-mode run, per Phase 2 exit criteria of
6
- * `docs/specs/semantic-validator.md`.
6
+ * `.claude/docs/specs/semantic-validator.md`.
7
7
  *
8
8
  * Usage:
9
9
  * node packages/a2ui/mcp/scripts/semantic-stats.mjs <baseline.json> <candidate.json>
@@ -9,7 +9,7 @@
9
9
  *
10
10
  * Goal: identify which IntentSpecs the rule classifier agrees with the LLM
11
11
  * judge on ≥ 95% of the time. Those graduate to fast-path per
12
- * docs/specs/semantic-validator.md § Phase 3 exit criteria.
12
+ * .claude/docs/specs/semantic-validator.md § Phase 3 exit criteria.
13
13
  *
14
14
  * Note: the rule SCORER (scoreAgainstSpec) needs the emitted A2UI tree,
15
15
  * which is not stored in eval-diff archives. This tool measures only
@@ -134,6 +134,6 @@ if (withDisagreements.length > 0) {
134
134
  }
135
135
 
136
136
  console.log(`\n---\n`);
137
- console.log(`*Generated by \`shadow-compare-classify.mjs\` from \`packages/a2ui/validator/semantic/classify-intent.js\`. See [docs/specs/semantic-validator.md § Phase 3](../../../docs/specs/semantic-validator.md) for exit criteria.*`);
137
+ console.log(`*Generated by \`shadow-compare-classify.mjs\` from \`packages/a2ui/validator/semantic/classify-intent.js\`. See [.claude/docs/specs/semantic-validator.md § Phase 3](../../../.claude/docs/specs/semantic-validator.md) for exit criteria.*`);
138
138
 
139
139
  process.exit(0);
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  // Smoke test: issue-reporter (write, trace attach, auto-fire, coalesce, evalMode).
3
- // Spec: docs/specs/genui-multiturn-architecture.md §3.5 + §4.6 + §6.4 + §11.
3
+ // Spec: .claude/docs/specs/genui-multiturn-architecture.md §3.5 + §4.6 + §6.4 + §11.
4
4
 
5
5
  import {
6
6
  reportIssue,
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  // Smoke test: chunk-refiner (validator + applier + 2-pass synthesis with stub LLM).
3
- // Spec: docs/specs/genui-multiturn-architecture.md §4.
3
+ // Spec: .claude/docs/specs/genui-multiturn-architecture.md §4.
4
4
 
5
5
  import {
6
6
  refineFromIntent,
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  // Smoke test: state-cache (LRU + state-id minting).
3
- // Spec: docs/specs/genui-multiturn-architecture.md §2.2 + §4.4.
3
+ // Spec: .claude/docs/specs/genui-multiturn-architecture.md §2.2 + §4.4.
4
4
  import {
5
5
  StateCache,
6
6
  mintStateId,
@@ -287,7 +287,7 @@ try {
287
287
  }
288
288
 
289
289
  // ── Test 7: Multi-turn refinement modules (Phase A) ─────────────────
290
- // Spec: docs/specs/genui-multiturn-architecture.md.
290
+ // Spec: .claude/docs/specs/genui-multiturn-architecture.md.
291
291
 
292
292
  console.log('\n7. Multi-turn refinement (Phase A)');
293
293
 
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Wired into:
9
9
  * - npm run smoke:chunks
10
- * - Phase D verification gate (docs/plans/training-pipeline-chunk-harvest-2026-04-27.md)
10
+ * - Phase D verification gate (.claude/docs/plans/training-pipeline-chunk-harvest-2026-04-27.md)
11
11
  */
12
12
 
13
13
  import {