@tacuchi/agent-workflow-cli 21.0.0 → 21.1.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 (153) hide show
  1. package/README.md +1 -0
  2. package/dist/application/capability/compose.js +161 -0
  3. package/dist/application/capability/compose.js.map +1 -0
  4. package/dist/application/capability/descriptor-loader.js +109 -0
  5. package/dist/application/capability/descriptor-loader.js.map +1 -0
  6. package/dist/application/capability/design-handler.js +299 -0
  7. package/dist/application/capability/design-handler.js.map +1 -0
  8. package/dist/application/capability/dispatcher.js +312 -0
  9. package/dist/application/capability/dispatcher.js.map +1 -0
  10. package/dist/application/capability/durable-effect.js +220 -0
  11. package/dist/application/capability/durable-effect.js.map +1 -0
  12. package/dist/application/capability/installed-inventory.js +168 -0
  13. package/dist/application/capability/installed-inventory.js.map +1 -0
  14. package/dist/application/capability/readiness.js +204 -0
  15. package/dist/application/capability/readiness.js.map +1 -0
  16. package/dist/application/capability/resolution.js +264 -0
  17. package/dist/application/capability/resolution.js.map +1 -0
  18. package/dist/application/capability/wrapper.js +187 -0
  19. package/dist/application/capability/wrapper.js.map +1 -0
  20. package/dist/application/context/manifest.js +11 -5
  21. package/dist/application/context/manifest.js.map +1 -1
  22. package/dist/application/context/measure.js +5 -2
  23. package/dist/application/context/measure.js.map +1 -1
  24. package/dist/application/context/plan-service.js +6 -6
  25. package/dist/application/context/plan-service.js.map +1 -1
  26. package/dist/application/design/design-bundle-service.js +148 -0
  27. package/dist/application/design/design-bundle-service.js.map +1 -0
  28. package/dist/application/design/design-proposal-service.js +69 -0
  29. package/dist/application/design/design-proposal-service.js.map +1 -0
  30. package/dist/application/design/design-publish-service.js +275 -7
  31. package/dist/application/design/design-publish-service.js.map +1 -1
  32. package/dist/application/design/design-record-service.js +100 -0
  33. package/dist/application/design/design-record-service.js.map +1 -0
  34. package/dist/application/flow/advance.js +533 -0
  35. package/dist/application/flow/advance.js.map +1 -0
  36. package/dist/application/flow/flow-service.js +65 -0
  37. package/dist/application/flow/flow-service.js.map +1 -0
  38. package/dist/application/flow/run-projection.js +80 -0
  39. package/dist/application/flow/run-projection.js.map +1 -0
  40. package/dist/application/flow/run-state-service.js +107 -0
  41. package/dist/application/flow/run-state-service.js.map +1 -0
  42. package/dist/application/flow/submit.js +423 -0
  43. package/dist/application/flow/submit.js.map +1 -0
  44. package/dist/application/resume-service.js +23 -10
  45. package/dist/application/resume-service.js.map +1 -1
  46. package/dist/application/self/install-skill.js +11 -0
  47. package/dist/application/self/install-skill.js.map +1 -1
  48. package/dist/application/self/uninstall.js +21 -0
  49. package/dist/application/self/uninstall.js.map +1 -1
  50. package/dist/application/skills-resolver-service.js +8 -2
  51. package/dist/application/skills-resolver-service.js.map +1 -1
  52. package/dist/application/status-service.js +4 -1
  53. package/dist/application/status-service.js.map +1 -1
  54. package/dist/application/workspace-init-service.js +13 -1
  55. package/dist/application/workspace-init-service.js.map +1 -1
  56. package/dist/cli/commands/capability.js +182 -0
  57. package/dist/cli/commands/capability.js.map +1 -0
  58. package/dist/cli/commands/flow.js +71 -0
  59. package/dist/cli/commands/flow.js.map +1 -0
  60. package/dist/cli/commands/index.js +4 -0
  61. package/dist/cli/commands/index.js.map +1 -1
  62. package/dist/cli/commands/skills.js +55 -2
  63. package/dist/cli/commands/skills.js.map +1 -1
  64. package/dist/cli/commands/status.js +5 -0
  65. package/dist/cli/commands/status.js.map +1 -1
  66. package/dist/cli/help-groups.js +6 -0
  67. package/dist/cli/help-groups.js.map +1 -1
  68. package/dist/cli/parser.js +6 -0
  69. package/dist/cli/parser.js.map +1 -1
  70. package/dist/cli/tui/data/workflow-content.js +5 -0
  71. package/dist/cli/tui/data/workflow-content.js.map +1 -1
  72. package/dist/cli/tui/tabs/workflow-tab.js +5 -1
  73. package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
  74. package/dist/domain/capability/descriptor.js +553 -0
  75. package/dist/domain/capability/descriptor.js.map +1 -0
  76. package/dist/domain/capability/effects.js +90 -0
  77. package/dist/domain/capability/effects.js.map +1 -0
  78. package/dist/domain/capability/protocol.js +494 -0
  79. package/dist/domain/capability/protocol.js.map +1 -0
  80. package/dist/domain/contract-reader.js +84 -0
  81. package/dist/domain/contract-reader.js.map +1 -0
  82. package/dist/domain/design/adapter.js +161 -0
  83. package/dist/domain/design/adapter.js.map +1 -0
  84. package/dist/domain/design/artifact.js +148 -4
  85. package/dist/domain/design/artifact.js.map +1 -1
  86. package/dist/domain/design/capability.js +263 -4
  87. package/dist/domain/design/capability.js.map +1 -1
  88. package/dist/domain/design/direct.js +108 -0
  89. package/dist/domain/design/direct.js.map +1 -0
  90. package/dist/domain/design/external-send.js +65 -0
  91. package/dist/domain/design/external-send.js.map +1 -0
  92. package/dist/domain/design/maturity.js +71 -0
  93. package/dist/domain/design/maturity.js.map +1 -1
  94. package/dist/domain/design/offline.js +92 -0
  95. package/dist/domain/design/offline.js.map +1 -0
  96. package/dist/domain/design/profiles.js +212 -0
  97. package/dist/domain/design/profiles.js.map +1 -0
  98. package/dist/domain/design/proposal.js +234 -0
  99. package/dist/domain/design/proposal.js.map +1 -0
  100. package/dist/domain/design/render-bundle.js +0 -0
  101. package/dist/domain/design/render-bundle.js.map +1 -0
  102. package/dist/domain/design/rendition.js +472 -0
  103. package/dist/domain/design/rendition.js.map +1 -0
  104. package/dist/domain/design/sources.js +180 -0
  105. package/dist/domain/design/sources.js.map +1 -0
  106. package/dist/domain/design/validation.js +12 -68
  107. package/dist/domain/design/validation.js.map +1 -1
  108. package/dist/domain/design/visual-evidence.js +155 -0
  109. package/dist/domain/design/visual-evidence.js.map +1 -0
  110. package/dist/domain/flow/answer.js +459 -0
  111. package/dist/domain/flow/answer.js.map +1 -0
  112. package/dist/domain/flow/authority.js +2276 -0
  113. package/dist/domain/flow/authority.js.map +1 -0
  114. package/dist/domain/flow/authorization.js +62 -0
  115. package/dist/domain/flow/authorization.js.map +1 -0
  116. package/dist/domain/flow/directive.js +421 -0
  117. package/dist/domain/flow/directive.js.map +1 -0
  118. package/dist/domain/flow/rules.js +140 -0
  119. package/dist/domain/flow/rules.js.map +1 -0
  120. package/dist/domain/flow/run-state.js +317 -0
  121. package/dist/domain/flow/run-state.js.map +1 -0
  122. package/dist/domain/harnesses.js +21 -0
  123. package/dist/domain/harnesses.js.map +1 -1
  124. package/dist/domain/skills.js +13 -14
  125. package/dist/domain/skills.js.map +1 -1
  126. package/package.json +1 -1
  127. package/skills/w/SKILL.md +5 -5
  128. package/skills/w/context/MANIFEST.json +38 -1
  129. package/skills/w/harness/HARNESS.md +20 -0
  130. package/skills/w/loops/CHASSIS.md +11 -20
  131. package/skills/w/loops/CODE-POLICIES.md +9 -15
  132. package/skills/w/loops/plan-exec-loop/LOOP.md +11 -13
  133. package/skills/w/loops/plan-new-loop/LOOP.md +6 -4
  134. package/skills/w/loops/plan-refine-loop/LOOP.md +5 -3
  135. package/skills/w/loops/quick-loop/LOOP.md +18 -26
  136. package/skills/w/loops/spec-refine-loop/LOOP.md +14 -18
  137. package/skills/w/modules/COMPACTION.md +2 -6
  138. package/skills/w/modules/DB-SCRIPTS-ONLY.md +2 -0
  139. package/skills/w/modules/DESIGN-REFERENCES.md +15 -11
  140. package/skills/w/modules/IDEATION-GATE.md +3 -3
  141. package/skills/w/modules/PLAN-EXECUTION-BATCHES.md +17 -36
  142. package/skills/w/modules/PLAN-INPUT.md +5 -3
  143. package/skills/w/modules/PLAN-REFINE-SPLIT.md +3 -1
  144. package/skills/w/modules/PLAN-SPLIT-GATE.md +7 -5
  145. package/skills/w/modules/PROMPT-CONTINUITY.md +3 -1
  146. package/skills/w/modules/SPEC-CHANGE-SHAPE.md +4 -4
  147. package/skills/w/roles/README.md +2 -0
  148. package/skills/w/roles/design/CONTRACT.md +80 -0
  149. package/skills/w/roles/design/ROLE.md +7 -0
  150. package/skills/w/schemas/capability-descriptor.schema.json +260 -0
  151. package/skills/w/schemas/design/design-render-bundle.v1.schema.json +191 -0
  152. package/skills/w/schemas/design/design-rendition.v1.schema.json +232 -0
  153. package/skills/w/schemas/design/ui-screen.v1.schema.json +29 -1
@@ -0,0 +1,84 @@
1
+ /**
2
+ * The shared machinery every hand-written contract validator is built on.
3
+ *
4
+ * Three properties hold across every published contract — the design formats and
5
+ * the capability descriptor alike — and they live here so no validator can
6
+ * quietly drop one:
7
+ *
8
+ * - **Every diagnostic names an artifact and a corrective action.** A rejection
9
+ * that only says "invalid" is a dead end for whoever has to fix it.
10
+ * - **Objects are closed.** The published JSON Schemas declare
11
+ * `additionalProperties: false`, so a key the contract does not declare is a
12
+ * typo of a real one, never an extension.
13
+ * - **Coverage is measured, not promised.** Every property read is recorded, and
14
+ * each drift guard compares that set against its published schema. A property
15
+ * declared in the schema and forgotten in the validator cannot ship.
16
+ *
17
+ * The failure CODE prefix is a constructor argument rather than a literal: the
18
+ * design formats answer `DESIGN_*` and the capability descriptor `CAPABILITY_*`,
19
+ * and a caller reading a code should learn which contract rejected it. That one
20
+ * parameter is the whole reason this is shared instead of copied — a second copy
21
+ * of `closed()` is a second place for the closed-object rule to rot.
22
+ */
23
+ export class ContractReader {
24
+ codePrefix;
25
+ allowedKeys;
26
+ touched = new Set();
27
+ failures = [];
28
+ constructor(codePrefix, allowedKeys) {
29
+ this.codePrefix = codePrefix;
30
+ this.allowedKeys = allowedKeys;
31
+ }
32
+ /** Read `path`'s last segment off `node`, recording the property as covered. */
33
+ read(node, path) {
34
+ this.touched.add(path);
35
+ const segments = path.split(".");
36
+ const key = segments[segments.length - 1].replace("[]", "");
37
+ return node[key];
38
+ }
39
+ fail(code, artifact, message, action) {
40
+ this.failures.push({ code, artifact, message, action });
41
+ }
42
+ invalid(artifact, message, action) {
43
+ this.fail(`${this.codePrefix}_FIELD_INVALID`, artifact, message, action);
44
+ }
45
+ /** Reject anything the contract does not declare at `path` (closed objects). */
46
+ closed(node, path, artifact) {
47
+ const allowed = this.allowedKeys[path];
48
+ if (allowed === undefined)
49
+ return;
50
+ for (const key of Object.keys(node)) {
51
+ if (allowed.includes(key))
52
+ continue;
53
+ this.fail(`${this.codePrefix}_KEY_UNKNOWN`, artifact, `${path === "" ? "el documento" : `'${path}'`} no admite la clave '${key}'`, `quitala o corregí el nombre; las claves válidas son: ${allowed.join(", ")}`);
54
+ }
55
+ }
56
+ }
57
+ /**
58
+ * Walk an array-of-objects field. Every list in every contract shares the same
59
+ * three failure modes — not an array, an item that is not an object, an item
60
+ * carrying a key the schema does not declare — so they are stated once here and
61
+ * each reader stays about ITS own fields.
62
+ */
63
+ export function* eachRecord(r, node, path, artifact, emptyMeans = "") {
64
+ const list = r.read(node, path);
65
+ if (!Array.isArray(list)) {
66
+ r.invalid(artifact, `'${path}' debe ser un array${emptyMeans}`, `escribí '${path}': []`);
67
+ return;
68
+ }
69
+ for (const entry of list) {
70
+ if (!isRecord(entry)) {
71
+ r.invalid(artifact, `cada entrada de '${path}' debe ser un objeto`, `revisá el array '${path}'`);
72
+ continue;
73
+ }
74
+ r.closed(entry, `${path}[]`, artifact);
75
+ yield entry;
76
+ }
77
+ }
78
+ export function isRecord(value) {
79
+ return typeof value === "object" && value !== null && !Array.isArray(value);
80
+ }
81
+ export function isNonEmptyString(value) {
82
+ return typeof value === "string" && value.trim().length > 0;
83
+ }
84
+ //# sourceMappingURL=contract-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-reader.js","sourceRoot":"","sources":["../../src/domain/contract-reader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * What a renderer or adapter says it can do — and the refusal to infer the rest.
3
+ *
4
+ * Every integration declares a COMPLETE matrix. That is the whole content of
5
+ * this module: an absent capability is never "probably fine", never "try it and
6
+ * see", never a call that silently does half the job. Asking for one that was
7
+ * not declared comes back as an explicit degradation naming what is missing and
8
+ * what does exist instead — or, when the caller cannot continue without it, as a
9
+ * failure. Never as silence.
10
+ *
11
+ * The matrix is a TYPE, not a document: `Record<RenderCapability, boolean>` is
12
+ * exhaustive, so a profile that forgets to answer for `compare` does not
13
+ * compile. There is no JSON schema here on purpose — a profile is code shipped
14
+ * with the CLI, and validating it at runtime would be checking a fact the
15
+ * compiler already proved.
16
+ *
17
+ * A one-way adapter is perfectly valid. `handoff + record` — prepare the context,
18
+ * register where the result ended up — is the whole Figma conformance profile of
19
+ * v1, and it is honest precisely because it declares the other five as absent.
20
+ */
21
+ /**
22
+ * The seven capabilities, in decreasing order of how local they are.
23
+ *
24
+ * - `handoff` — hand the bundle over. The floor: no account, no network.
25
+ * - `record` — register where a result lives, as a rendition.
26
+ * - `snapshot` — keep a local, consultable copy of the result.
27
+ * - `generate` — create the visual result in the tool, automatically.
28
+ * - `push` — write Workline's semantics into the tool.
29
+ * - `pull` — bring the tool's state back.
30
+ * - `compare` — diff the tool's state against a revision.
31
+ */
32
+ export const RENDER_CAPABILITIES = [
33
+ "handoff",
34
+ "record",
35
+ "snapshot",
36
+ "generate",
37
+ "push",
38
+ "pull",
39
+ "compare",
40
+ ];
41
+ /**
42
+ * The three v1 conformance is defined in terms of. Optional means "may be
43
+ * declared false", never "may be left out of the matrix": the difference between
44
+ * those two is exactly what this contract exists to remove.
45
+ */
46
+ export const CONFORMANCE_CAPABILITIES = ["handoff", "record", "snapshot"];
47
+ /** The four that no v1 profile implements, and that all of them must declare. */
48
+ export const OPTIONAL_CAPABILITIES = ["generate", "push", "pull", "compare"];
49
+ /**
50
+ * The nearest declared capability that answers the SAME need, so a degradation
51
+ * can offer a way forward instead of just a refusal. `handoff` has none below
52
+ * it: it is the floor, and a profile that cannot even hand the bundle over has
53
+ * nothing to fall back to.
54
+ */
55
+ const FALLBACK = {
56
+ handoff: null,
57
+ record: "handoff",
58
+ snapshot: "record",
59
+ generate: "handoff",
60
+ push: "handoff",
61
+ pull: "record",
62
+ compare: "snapshot",
63
+ };
64
+ const HOW_TO_INSTEAD = {
65
+ handoff: "entregá el bundle y operá la herramienta a mano",
66
+ record: "registrá el resultado como rendition con su locator",
67
+ snapshot: "conservá una copia local del resultado y sellala con su source_digest",
68
+ generate: "creá el diseño en la herramienta a partir del bundle",
69
+ push: "aplicá los cambios en la herramienta a mano",
70
+ pull: "traé el resultado a mano y registralo como propuesta",
71
+ compare: "compará contra el snapshot local",
72
+ };
73
+ /**
74
+ * Resolve a request against the matrix.
75
+ *
76
+ * The two outcomes are the contract: a declared capability is exercised, an
77
+ * undeclared one degrades. There is no third branch where the caller guesses,
78
+ * and no branch at all where the answer is nothing.
79
+ */
80
+ export function resolveCapability(adapter, capability) {
81
+ if (adapter.capabilities[capability])
82
+ return { ok: true, capability };
83
+ const fallback = FALLBACK[capability];
84
+ const alternative = fallback !== null && adapter.capabilities[fallback]
85
+ ? fallback
86
+ : (RENDER_CAPABILITIES.find((c) => adapter.capabilities[c]) ?? null);
87
+ return {
88
+ ok: false,
89
+ degradation: {
90
+ adapter: adapter.id,
91
+ capability,
92
+ message: `el perfil '${adapter.id}' no declara '${capability}'`,
93
+ alternative,
94
+ action: alternative === null
95
+ ? "este perfil no declara ninguna capacidad: elegí otro adapter, o hacé el handoff neutral local"
96
+ : `usá '${alternative}': ${HOW_TO_INSTEAD[alternative]}`,
97
+ },
98
+ };
99
+ }
100
+ /** The same degradation as a failure, for a caller that cannot continue without it. */
101
+ export function degradationFailure(degradation, artifact) {
102
+ return {
103
+ code: "DESIGN_CAPABILITY_UNDECLARED",
104
+ artifact,
105
+ message: degradation.message,
106
+ action: degradation.action,
107
+ };
108
+ }
109
+ /** Look an adapter up. Null — never a guess — when the registry does not have it. */
110
+ export function findAdapter(id, registry) {
111
+ return registry[id] ?? null;
112
+ }
113
+ /**
114
+ * Ask for an adapter that has to be there. Separate from `findAdapter` so the
115
+ * diagnostic can list what IS registered: "no existe 'figma-api'" is a dead end
116
+ * when the answer the caller needed was "hay 'figma' y 'portable-html'".
117
+ */
118
+ export function requireAdapter(id, registry, artifact) {
119
+ const found = findAdapter(id, registry);
120
+ if (found !== null)
121
+ return { ok: true, value: found };
122
+ const known = Object.keys(registry).sort();
123
+ return {
124
+ ok: false,
125
+ failure: {
126
+ code: "DESIGN_ADAPTER_UNKNOWN",
127
+ artifact,
128
+ message: `no hay ningún perfil de renderer/adapter '${id}'`,
129
+ action: known.length === 0
130
+ ? "no hay perfiles registrados: el camino local (validar, leer y handoff neutral) no necesita ninguno"
131
+ : `los perfiles registrados son: ${known.join(", ")}`,
132
+ },
133
+ };
134
+ }
135
+ /** The adapter facet a bundle records. */
136
+ export function bundleAdapterOf(adapter) {
137
+ return { profile: adapter.id, version: adapter.version };
138
+ }
139
+ /**
140
+ * Everything this profile cannot represent, as a bundle's loss report.
141
+ *
142
+ * Its own declared losses PLUS one entry per undeclared capability. The second
143
+ * half is what makes the report answer "what can this not do with my design"
144
+ * rather than only "what does this renderer draw badly".
145
+ */
146
+ export function declaredLosses(adapter) {
147
+ return [
148
+ ...adapter.losses,
149
+ ...RENDER_CAPABILITIES.filter((c) => !adapter.capabilities[c]).map((c) => ({
150
+ subject: `capability:${c}`,
151
+ why: `el perfil '${adapter.id}' no declara '${c}'${FALLBACK[c] !== null && adapter.capabilities[FALLBACK[c]]
152
+ ? `; lo más cercano que declara es '${FALLBACK[c]}'`
153
+ : ""}`,
154
+ })),
155
+ ];
156
+ }
157
+ /** Does this profile satisfy v1 conformance for the capabilities it claims? */
158
+ export function conformanceOf(adapter) {
159
+ return CONFORMANCE_CAPABILITIES.filter((c) => adapter.capabilities[c]);
160
+ }
161
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/domain/design/adapter.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,11 @@ export const SCHEMA_ID = {
20
20
  flow: FLOW_SCHEMA_ID,
21
21
  screen: SCREEN_SCHEMA_ID,
22
22
  };
23
+ export const CRITERION_CLASSIFICATIONS = [
24
+ "visual",
25
+ "interaction",
26
+ "not_visual",
27
+ ];
23
28
  const COMMON_KEYS = [
24
29
  "schema",
25
30
  "id",
@@ -43,7 +48,7 @@ export const FLOW_ALLOWED_KEYS = {
43
48
  export const SCREEN_ALLOWED_KEYS = {
44
49
  "": [...COMMON_KEYS, "title", "default_state", "states", "flow_refs", "dependencies"],
45
50
  "states[]": ["anchor", "purpose"],
46
- "trace[]": ["criterion", "source"],
51
+ "trace[]": ["criterion", "source", "classification", "states", "renditions", "reason"],
47
52
  "unknowns[]": ["question", "blocking"],
48
53
  "external[]": ["provider", "revision", "digest"],
49
54
  dependencies: ["rules", "tokens", "assets"],
@@ -113,6 +118,12 @@ export function validateDesignArtifact(text, kind, artifact) {
113
118
  const body = parseBody(split.body, split.bodyLine);
114
119
  checkHeadings(r, body, kind, artifact);
115
120
  checkNotApplicable(r, common.not_applicable, kind, artifact);
121
+ // The classification matrix names states, so it can only be checked once the
122
+ // states have been read. Coherence only — whether the matrix is COMPLETE is
123
+ // the `handoff` gate's question, and an `outline` is allowed to leave it open.
124
+ if (kind === "screen") {
125
+ checkTraceCoherence(r, artifact, common.trace, specific.states);
126
+ }
116
127
  checkBodyAgainstFrontmatter(r, body, kind, artifact, common, specific);
117
128
  if (r.failures.length > 0) {
118
129
  return { ok: false, value: null, failures: r.failures, touched: r.touched };
@@ -153,7 +164,7 @@ function readCommon(r, front, kind, artifact) {
153
164
  supersedes: typeof supersedes === "string" ? supersedes : null,
154
165
  purpose: typeof purpose === "string" ? purpose : "",
155
166
  platform: typeof platform === "string" ? platform : "",
156
- trace: readTrace(r, front, artifact),
167
+ trace: readTrace(r, front, artifact, kind),
157
168
  unknowns: readUnknowns(r, front, artifact),
158
169
  not_applicable: readNotApplicable(r, front, artifact),
159
170
  external: readExternal(r, front, artifact),
@@ -219,7 +230,7 @@ function checkSupersedes(r, supersedes, artifact, rawId, revision) {
219
230
  r.fail("DESIGN_RELATION_BROKEN", artifact, `'supersedes' apunta a r${ref.revision} y esta revisión es r${revision}`, "solo se supersede una revisión anterior");
220
231
  }
221
232
  }
222
- function readTrace(r, front, artifact) {
233
+ function readTrace(r, front, artifact, kind) {
223
234
  const out = [];
224
235
  for (const entry of eachRecord(r, front, "trace", artifact, " de entradas de trazabilidad")) {
225
236
  const criterion = r.read(entry, "trace[].criterion");
@@ -232,10 +243,136 @@ function readTrace(r, front, artifact) {
232
243
  !checkText(r, artifact, `trace[${criterion}].source`, source, "poné el path del documento que define el criterio, o null")) {
233
244
  continue;
234
245
  }
235
- out.push({ criterion, source: typeof source === "string" ? source : null });
246
+ const base = { criterion, source: typeof source === "string" ? source : null };
247
+ // Only a screen declares the evidence half, so only a screen's validator may
248
+ // READ those properties: the drift guard proves a validator reads nothing the
249
+ // published schema does not declare, and `ui-flow/v1` does not declare them.
250
+ out.push(kind === "flow" ? base : { ...base, ...readEvidence(r, entry, artifact, criterion) });
236
251
  }
237
252
  return out;
238
253
  }
254
+ /** The evidence half of a screen's trace entry. Shape only — completeness is the gate's. */
255
+ function readEvidence(r, entry, artifact, criterion) {
256
+ const empty = { classification: null, states: [], renditions: [], reason: null };
257
+ const raw = r.read(entry, "trace[].classification");
258
+ const states = r.read(entry, "trace[].states");
259
+ const renditions = r.read(entry, "trace[].renditions");
260
+ const reason = r.read(entry, "trace[].reason");
261
+ const classification = raw === undefined || raw === null
262
+ ? null
263
+ : CRITERION_CLASSIFICATIONS.includes(raw)
264
+ ? raw
265
+ : undefined;
266
+ if (classification === undefined) {
267
+ r.invalid(artifact, `trace['${criterion}']: 'classification' debe ser ${CRITERION_CLASSIFICATIONS.join(", ")} o null y llegó ${JSON.stringify(raw)}`, "clasificá cómo se demuestra el criterio, o dejalo en null hasta hacerlo");
268
+ return empty;
269
+ }
270
+ const anchors = readAnchorList(r, artifact, `trace['${criterion}'].states`, states);
271
+ const shown = readRenditionList(r, artifact, `trace['${criterion}'].renditions`, renditions);
272
+ const why = reason === null || reason === undefined
273
+ ? null
274
+ : checkText(r, artifact, `trace['${criterion}'].reason`, reason, "escribí por qué el criterio no tiene nada que mirar, o poné null")
275
+ ? reason
276
+ : null;
277
+ const contradiction = contradictionIn(classification, anchors.length + shown.length, why);
278
+ if (contradiction !== null) {
279
+ r.invalid(artifact, `trace['${criterion}']: ${contradiction.what}`, contradiction.action);
280
+ return empty;
281
+ }
282
+ return { classification, states: anchors, renditions: shown, reason: why };
283
+ }
284
+ /**
285
+ * The three ways the evidence half can contradict its own classification.
286
+ *
287
+ * A contradiction is malformed whatever the maturity: `not_visual` MEANS there is
288
+ * nothing to look at, so enumerating a picture of it is not an incomplete claim to
289
+ * be finished later — it is two claims that cannot both hold. Incompleteness is a
290
+ * different verdict and belongs to the `handoff` gate.
291
+ */
292
+ function contradictionIn(classification, enumerated, reason) {
293
+ if (classification === null) {
294
+ if (enumerated === 0 && reason === null)
295
+ return null;
296
+ return {
297
+ what: "declara evidencia sin clasificar el criterio",
298
+ action: "poné 'classification' en visual, interaction o not_visual",
299
+ };
300
+ }
301
+ if (classification === "not_visual") {
302
+ if (enumerated === 0)
303
+ return null;
304
+ return {
305
+ what: "está clasificado 'not_visual' y enumera estados o renditions",
306
+ action: "si hay algo que mirar, clasificalo 'visual' o 'interaction'",
307
+ };
308
+ }
309
+ if (reason === null)
310
+ return null;
311
+ return {
312
+ what: `'reason' explica por qué NO hay nada que mirar y este criterio es '${classification}'`,
313
+ action: "quitá 'reason', o reclasificá el criterio como 'not_visual'",
314
+ };
315
+ }
316
+ function readAnchorList(r, artifact, path, raw) {
317
+ if (raw === undefined)
318
+ return [];
319
+ if (!Array.isArray(raw)) {
320
+ r.invalid(artifact, `'${path}' debe ser un array de anchors`, `escribí '${path}': []`);
321
+ return [];
322
+ }
323
+ const out = [];
324
+ for (const value of raw) {
325
+ if (typeof value !== "string" || !ANCHOR_RE.test(value)) {
326
+ r.invalid(artifact, `'${path}' trae un anchor inválido: ${JSON.stringify(value)}`, "nombrá el anchor de un estado declarado, sin '#'");
327
+ continue;
328
+ }
329
+ if (out.includes(value)) {
330
+ r.fail("DESIGN_ID_DUPLICATE", artifact, `'${path}' repite '${value}'`, "dejá una sola aparición");
331
+ continue;
332
+ }
333
+ out.push(value);
334
+ }
335
+ return out;
336
+ }
337
+ function readRenditionList(r, artifact, path, raw) {
338
+ if (raw === undefined)
339
+ return [];
340
+ if (!Array.isArray(raw)) {
341
+ r.invalid(artifact, `'${path}' debe ser un array de referencias`, `escribí '${path}': []`);
342
+ return [];
343
+ }
344
+ const out = [];
345
+ for (const value of raw) {
346
+ const ref = parseArtifactRef(value);
347
+ if (ref === null || !ref.artifact.startsWith("VIS-")) {
348
+ r.invalid(artifact, `'${path}' solo admite renditions DES-NNN/VIS-NNN@rN y llegó ${JSON.stringify(value)}`, "referenciá la rendition exacta que muestra el criterio");
349
+ continue;
350
+ }
351
+ if (out.includes(value)) {
352
+ r.fail("DESIGN_ID_DUPLICATE", artifact, `'${path}' repite ${value}`, "dejá una sola aparición");
353
+ continue;
354
+ }
355
+ out.push(value);
356
+ }
357
+ return out;
358
+ }
359
+ /**
360
+ * The matrix names states of THIS screen. A criterion demonstrated on an anchor
361
+ * the revision does not declare points at nothing, and a gate that accepted it
362
+ * would report coverage of a state nobody can open.
363
+ */
364
+ function checkTraceCoherence(r, artifact, trace, states) {
365
+ if (states.length === 0)
366
+ return; // ya reportado por readScreen
367
+ const anchors = new Set(states.map((s) => s.anchor));
368
+ for (const entry of trace) {
369
+ for (const anchor of entry.states ?? []) {
370
+ if (anchors.has(anchor))
371
+ continue;
372
+ r.fail("DESIGN_RELATION_BROKEN", artifact, `trace['${entry.criterion}'] se demuestra en '${anchor}' y no está entre los states declarados (${[...anchors].join(", ")})`, "declaralo en 'states' o nombrá uno existente");
373
+ }
374
+ }
375
+ }
239
376
  function readUnknowns(r, front, artifact) {
240
377
  const out = [];
241
378
  for (const entry of eachRecord(r, front, "unknowns", artifact, " (vacío si no quedan incógnitas)")) {
@@ -587,6 +724,13 @@ function declaredReferences(common, specific) {
587
724
  const declared = new Set();
588
725
  if (common.supersedes !== null)
589
726
  declared.add(common.supersedes);
727
+ // The evidence a screen's matrix enumerates IS declared in the frontmatter, so
728
+ // prose that names it is citing something the document already committed to.
729
+ // Without this, the section that explains the evidence could not mention it.
730
+ for (const entry of common.trace) {
731
+ for (const ref of entry.renditions ?? [])
732
+ declared.add(ref);
733
+ }
590
734
  if ("nodes" in specific) {
591
735
  for (const ref of [...specific.nodes, ...specific.dependencies])
592
736
  declared.add(ref);
@@ -1 +1 @@
1
- {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../../src/domain/design/artifact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../../src/domain/design/artifact.ts"],"names":[],"mappings":"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"}