@tacuchi/agent-workflow-cli 21.15.0 → 21.16.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.
@@ -1,9 +1,16 @@
1
1
  import { localDateIso } from "./dates.js";
2
2
  import { runNextNumber } from "./dev-only-services.js";
3
+ import { resolveDocsCanon } from "./docs-canon-service.js";
3
4
  import { withCwdLock } from "./lock-service.js";
4
5
  import { runReleaseData } from "./release-data-service.js";
5
- import { approvalDigest, buildSemanticRequest, parseSemanticResponse, } from "./semantic-operation/protocol.js";
6
+ import { approvalDigest, buildSemanticRequest, parseSemanticResponse, readEnvelopeScope, } from "./semantic-operation/protocol.js";
6
7
  import { publishArtifacts } from "./semantic-operation/publish.js";
8
+ export const EXPORT_CATEGORIES = [
9
+ "diagrams",
10
+ "manuals",
11
+ "reports",
12
+ "scripts",
13
+ ];
7
14
  const POLICIES = {
8
15
  diagrams: {
9
16
  dir: "docs/diagrams",
@@ -18,8 +25,8 @@ const POLICIES = {
18
25
  required: ["README.md"],
19
26
  extensions: [".md"],
20
27
  // The only file an export may replace, and only with an explicit approval.
21
- overwritable: "docs/manuals/INDEX.md",
22
- contract: "Un dossier con README.md obligatorio y los manuales en Markdown. Podés incluir docs/manuals/INDEX.md para actualizar el índice: es el ÚNICO archivo sobrescribible y exige aprobación explícita.",
28
+ overwritable: "INDEX.md",
29
+ contract: "Un dossier con README.md obligatorio y los manuales en Markdown. Podés incluir el INDEX.md de la categoría para actualizar el índice: es el ÚNICO archivo sobrescribible y exige aprobación explícita.",
23
30
  },
24
31
  reports: {
25
32
  dir: "docs/reports",
@@ -33,14 +40,34 @@ const POLICIES = {
33
40
  shape: "dossier",
34
41
  required: ["00-ROLLBACK.sql", "README.md"],
35
42
  extensions: [".sql", ".md"],
36
- contract: "Un dossier con 00-ROLLBACK.sql y README.md obligatorios, más los forwards NN-<nombre>.sql numerados de forma continua desde 01. El CLI NUNCA ejecuta SQL.",
43
+ // The net-final-state doctrine travels HERE, in the contract the composer
44
+ // must obey, and not in the `skills/w` bundle: the bundle's context budget
45
+ // is a frozen gate with 121 B of headroom and this is ~700 B, so shipping it
46
+ // there would mean cutting live doctrine to pay for it. The contract reaches
47
+ // the same reader at the exact moment the bundle is being written, and its
48
+ // bytes are request bytes, which no frozen gate prices.
49
+ contract: "Un dossier con 00-ROLLBACK.sql y README.md obligatorios, más los forwards NN-<nombre>.sql numerados de forma continua desde 01. El CLI NUNCA ejecuta SQL. El bundle publica el ESTADO FINAL NETO de la secuencia, no una réplica por sesión: lo que nace y muere dentro de la secuencia se omite; lo migrado va directo a su forma final; lo que el contexto declara retirado se omite aunque ningún script lo elimine. 00-ROLLBACK.sql invierte ese ESTADO FINAL en orden seguro para las dependencias, no el reverso literal de los forwards. Reconciliá contra el código además de las sesiones y la base. Excluí identidades concretas y semillas de prueba; conservá funciones reutilizables, tablas maestras y el registro de menú/rol.",
37
50
  },
38
51
  };
39
52
  const LIMITS = { max_artifacts: 64, max_artifact_bytes: 512 * 1024 };
40
53
  const FORWARD_RE = /^(\d{2})-[^/]+\.sql$/;
41
54
  // ── prepare ──────────────────────────────────────────────────────────────────
42
- export async function prepareExport(fs, env, paths, category, selection = {}) {
43
- const policy = POLICIES[category];
55
+ export async function prepareExport(fs, env, paths, category, selection = {},
56
+ // Injected so the midnight boundary is testable: a preparation that outlives
57
+ // the day used to rename its own destination on the next stage.
58
+ now = () => new Date()) {
59
+ const canon = await resolveDocsCanon(fs, paths, EXPORT_CATEGORIES);
60
+ if (!canon.ok) {
61
+ return {
62
+ ok: false,
63
+ failure: {
64
+ code: "EXPORT_DESTINATION_INVALID",
65
+ message: canon.error,
66
+ action: "corregí la tabla [docs] de skills.toml, o quitala para usar el destino por defecto",
67
+ },
68
+ };
69
+ }
70
+ const policy = resolvePolicy(category, canon.canon[category]);
44
71
  const corpus = await readCorpus(fs, env, paths, selection);
45
72
  if ("error" in corpus) {
46
73
  return {
@@ -62,33 +89,72 @@ export async function prepareExport(fs, env, paths, category, selection = {}) {
62
89
  },
63
90
  };
64
91
  }
65
- const next = (await runNextNumber(fs, env, paths, { directory: policy.dir, dryRun: true })).next;
66
- const date = selection.date ?? localDateIso(new Date());
92
+ // Pinned when the answer echoed them, derived only on a first preparation:
93
+ // re-deriving either at `validate` renames the very unit the answer wrote to,
94
+ // and neither is workspace state that a stale check should be defending.
95
+ const next = selection.next ??
96
+ (await runNextNumber(fs, env, paths, { directory: policy.dir, dryRun: true })).next;
97
+ const date = selection.date ?? localDateIso(now());
98
+ // Rejected HERE and not only when the envelope comes back: `prepare` used to
99
+ // accept any string, mint `…-export-manuals-lunes` and let the composer be
100
+ // blamed at `validate` for a scope it had copied verbatim, exactly as asked.
101
+ // The invocation that supplied it is the one that can fix it.
102
+ if (!DATE_RE.test(date)) {
103
+ return {
104
+ ok: false,
105
+ failure: {
106
+ code: "EXPORT_SCOPE_INVALID",
107
+ message: `--date '${date}' no tiene la forma YYYY-MM-DD`,
108
+ action: "repetí la invocación con una fecha YYYY-MM-DD, o sin --date para usar la de hoy",
109
+ },
110
+ };
111
+ }
67
112
  const unit = policy.shape === "dossier" ? `${policy.dir}/${next}-export-${category}-${date}` : policy.dir;
113
+ const scope = {
114
+ ...(selection.sessions !== undefined ? { sessions: selection.sessions } : {}),
115
+ ...(selection.since !== undefined ? { since: selection.since } : {}),
116
+ ...(selection.source !== undefined ? { source: selection.source } : {}),
117
+ date,
118
+ next,
119
+ };
68
120
  const inventory = {
69
121
  category,
70
122
  destination: unit,
71
123
  shape: policy.shape,
72
124
  required: policy.required,
73
125
  extensions: policy.extensions,
74
- overwritable: policy.overwritable ?? null,
126
+ overwritable: policy.overwritable,
75
127
  sessions: corpus.sessions,
76
128
  date,
77
129
  };
78
130
  const readSet = corpus.sessions.map((s) => s.path ?? s.folder);
79
131
  const request = buildSemanticRequest({
80
132
  operation: `export-${category}`,
81
- // The corpus seals the request: a session appearing or closing between
82
- // prepare and apply changes what the dossier should have contained.
83
- inputs: { corpus: corpus.sessions, next, date },
84
- contract: `${policy.contract} Respondé artifacts con paths dentro de ${unit}${policy.overwritable ? ` (o exactamente ${policy.overwritable})` : ""}. El NNN es consultivo: el CLI reasigna el número dentro del lock.`,
133
+ // What the seal defends is workspace state: the corpus the scope covers (a
134
+ // session appearing or closing changes what the dossier should have
135
+ // contained) and the folder this workspace publishes to. The scope rides
136
+ // along so an altered echo cannot pass as the original one.
137
+ inputs: { corpus: corpus.sessions, dir: policy.dir, scope },
138
+ sealed: "el corpus de sesiones del alcance o el destino declarado de la categoría",
139
+ scope,
140
+ contract: `${policy.contract} Respondé artifacts con paths dentro de ${unit}${policy.overwritable === null ? "" : ` (o exactamente ${policy.overwritable})`}. El NNN es consultivo: el CLI reasigna el número dentro del lock. Copiá 'scope' TAL CUAL en tu respuesta: validate y apply lo leen en vez de re-derivarlo.`,
85
141
  inventory,
86
- allowedDestinations: [unit, ...(policy.overwritable ? [policy.overwritable] : [])],
142
+ allowedDestinations: [unit, ...(policy.overwritable === null ? [] : [policy.overwritable])],
87
143
  limits: LIMITS,
88
144
  readSet,
89
145
  readSetBytes: readSet.length,
90
146
  });
91
- return { ok: true, value: { category, request, next, unit } };
147
+ return { ok: true, value: { category, request, dir: policy.dir, scope, next, unit } };
148
+ }
149
+ /** The category's policy with the folder this workspace actually publishes to. */
150
+ function resolvePolicy(category, dir) {
151
+ const { overwritable, ...base } = POLICIES[category];
152
+ const resolved = dir ?? base.dir;
153
+ return {
154
+ ...base,
155
+ dir: resolved,
156
+ overwritable: overwritable === undefined ? null : `${resolved}/${overwritable}`,
157
+ };
92
158
  }
93
159
  async function readCorpus(fs, env, paths, selection) {
94
160
  const input = {
@@ -105,16 +171,107 @@ async function readCorpus(fs, env, paths, selection) {
105
171
  return { error: data.error };
106
172
  return { sessions: data.sessions };
107
173
  }
174
+ // ── the scope, travelling between stages ─────────────────────────────────────
175
+ const DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
176
+ const NEXT_RE = /^\d{3,}$/;
177
+ /**
178
+ * The scope an answer echoes back, so `validate` and `apply` rebuild the
179
+ * preparation the answer was written against.
180
+ *
181
+ * Three outcomes and no fourth: a scope that is there and well formed, no scope
182
+ * at all (an answer written before this field existed — the invocation's own
183
+ * flags still decide, exactly as they did), and a scope that is there but
184
+ * malformed, which is a rejection. Reading a broken echo as "no echo" would
185
+ * quietly export a different corpus than the one that was approved.
186
+ */
187
+ export function readExportScope(raw) {
188
+ const echoed = readEnvelopeScope(raw);
189
+ if (echoed === undefined || echoed === null)
190
+ return { ok: true, value: null };
191
+ if (typeof echoed !== "object" || Array.isArray(echoed))
192
+ return malformedScope("no es un objeto");
193
+ const scope = echoed;
194
+ const why = scopeShapeError(scope);
195
+ if (why !== null)
196
+ return malformedScope(why);
197
+ return {
198
+ ok: true,
199
+ value: {
200
+ ...(scope.sessions !== undefined ? { sessions: scope.sessions } : {}),
201
+ ...(scope.since !== undefined ? { since: scope.since } : {}),
202
+ ...(scope.source !== undefined ? { source: scope.source } : {}),
203
+ date: scope.date,
204
+ next: scope.next,
205
+ },
206
+ };
207
+ }
208
+ /** Why this echo is not the scope `prepare` emitted, or `null` when it is. */
209
+ function scopeShapeError(scope) {
210
+ if (typeof scope.date !== "string" || !DATE_RE.test(scope.date)) {
211
+ return "'date' tiene que ser YYYY-MM-DD";
212
+ }
213
+ if (typeof scope.next !== "string" || !NEXT_RE.test(scope.next)) {
214
+ return "'next' tiene que ser el correlativo de 3 dígitos";
215
+ }
216
+ if (scope.sessions !== undefined && !isStringArray(scope.sessions)) {
217
+ return "'sessions' tiene que ser una lista de códigos de texto";
218
+ }
219
+ for (const key of ["since", "source"]) {
220
+ if (scope[key] !== undefined && typeof scope[key] !== "string") {
221
+ return `'${key}' tiene que ser texto`;
222
+ }
223
+ }
224
+ return null;
225
+ }
226
+ function isStringArray(value) {
227
+ return Array.isArray(value) && value.every((item) => typeof item === "string");
228
+ }
229
+ function malformedScope(why) {
230
+ return {
231
+ ok: false,
232
+ failure: {
233
+ code: "SEMANTIC_RESPONSE_INVALID",
234
+ message: `el 'scope' del sobre no tiene la forma que prepare emitió: ${why}`,
235
+ action: "copiá el 'scope' del request TAL CUAL, sin reescribirlo",
236
+ },
237
+ };
238
+ }
239
+ /**
240
+ * Scope flags the invocation repeated that CONTRADICT the echoed scope.
241
+ *
242
+ * Repeating them is still supported and still works — that is what every
243
+ * existing invocation does. Repeating them with a different value is not the
244
+ * same thing: one of the two answers is not the one the proposal was written
245
+ * against, and picking either in silence hides which.
246
+ */
247
+ export function conflictingScopeFlags(echoed, flags) {
248
+ const same = (a, b) => (a ?? []).join(",") === (b ?? []).join(",");
249
+ const conflicts = [];
250
+ if (flags.sessions !== undefined && !same(flags.sessions, echoed.sessions)) {
251
+ conflicts.push("--sessions");
252
+ }
253
+ for (const [flag, key] of [
254
+ ["--since", "since"],
255
+ ["--source", "source"],
256
+ ["--date", "date"],
257
+ ]) {
258
+ if (flags[key] !== undefined && flags[key] !== echoed[key])
259
+ conflicts.push(flag);
260
+ }
261
+ return conflicts;
262
+ }
108
263
  // ── validate ─────────────────────────────────────────────────────────────────
109
264
  export function validateExport(raw, prepared) {
110
265
  const parsed = parseSemanticResponse(raw, prepared.request);
111
266
  if (!parsed.ok)
112
267
  return parsed;
113
- const policy = POLICIES[prepared.category];
268
+ // From what was prepared, never from the policy table: the folder is the
269
+ // workspace's, and re-reading it here would let the two stages disagree.
270
+ const policy = resolvePolicy(prepared.category, prepared.dir);
114
271
  const artifacts = parsed.value.artifacts ?? [];
115
272
  const inUnit = artifacts.filter((a) => a.path !== policy.overwritable);
116
273
  const overwrites = artifacts.some((a) => a.path === policy.overwritable)
117
- ? (policy.overwritable ?? null)
274
+ ? policy.overwritable
118
275
  : null;
119
276
  const shape = checkShape(inUnit, policy, prepared.unit);
120
277
  if (shape !== null)
@@ -199,7 +356,7 @@ export async function applyExport(fs, env, paths, input) {
199
356
  const parsed = parseSemanticResponse(input.raw, input.prepared.request);
200
357
  if (!parsed.ok)
201
358
  return parsed;
202
- const policy = POLICIES[input.prepared.category];
359
+ const policy = resolvePolicy(input.prepared.category, input.prepared.dir);
203
360
  const result = await withCwdLock(fs, paths, async () => {
204
361
  const minted = (await runNextNumber(fs, env, paths, { directory: policy.dir })).next;
205
362
  const artifacts = (parsed.value.artifacts ?? []).map((artifact) => renumber(artifact, input.prepared, minted, policy));
@@ -234,7 +391,14 @@ function renumber(artifact, prepared, minted, policy) {
234
391
  const name = artifact.path.slice(policy.dir.length + 1).replace(/^\d{3}-/, "");
235
392
  return { path: `${policy.dir}/${minted}-${name}`, content: artifact.content };
236
393
  }
237
- const unit = prepared.unit.replace(/\/\d{3}-/, `/${minted}-`);
394
+ // The number to move is the UNIT's own, which is its LAST segment — never the
395
+ // first `/NNN-` of the path. Since the category's folder became configurable,
396
+ // a canon that is itself numbered (`docs/003-manuales`) would eat the
397
+ // replacement: the export would be approved into `docs/003-manuales/…` and
398
+ // written into `docs/001-manuales/…`, a folder outside `allowed_destinations`
399
+ // that nothing downstream re-checks.
400
+ const unitName = prepared.unit.slice(policy.dir.length + 1).replace(/^\d{3}-/, `${minted}-`);
401
+ const unit = `${policy.dir}/${unitName}`;
238
402
  return {
239
403
  path: `${unit}/${artifact.path.slice(prepared.unit.length + 1)}`,
240
404
  content: artifact.content,
@@ -1 +1 @@
1
- {"version":3,"file":"export-service.js","sourceRoot":"","sources":["../../src/application/export-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export-service.js","sourceRoot":"","sources":["../../src/application/export-service.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,11 @@ export function buildSemanticRequest(input) {
53
53
  version: SEMANTIC_PROTOCOL_VERSION,
54
54
  operation: input.operation,
55
55
  input_digest: semanticDigest(input.inputs),
56
+ // Spread-on-defined, not `scope: input.scope`: an operation without a scope
57
+ // must produce the same bytes it produced before the field existed, or its
58
+ // `request_bytes` (a budgeted figure) moves for a field it never uses.
59
+ ...(input.scope !== undefined ? { scope: input.scope } : {}),
60
+ ...(input.sealed !== undefined ? { sealed: input.sealed } : {}),
56
61
  contract: input.contract,
57
62
  inventory: input.inventory,
58
63
  allowed_destinations: input.allowedDestinations,
@@ -105,6 +110,25 @@ export function parseSemanticResponse(raw, request) {
105
110
  },
106
111
  };
107
112
  }
113
+ /**
114
+ * The `scope` an answer echoes, read BEFORE the request it will be checked
115
+ * against exists — a stage needs it to rebuild that very request.
116
+ *
117
+ * `undefined` covers both "the answer carries no scope" (a pre-scope answer,
118
+ * which falls back to the invocation's own flags) and "the answer is not
119
+ * readable JSON": diagnosing the second is `parseSemanticResponse`'s job and it
120
+ * runs a moment later, so failing here would only move the same error earlier
121
+ * and word it worse.
122
+ */
123
+ export function readEnvelopeScope(raw) {
124
+ try {
125
+ const parsed = JSON.parse(raw);
126
+ return isRecord(parsed) ? parsed.scope : undefined;
127
+ }
128
+ catch {
129
+ return undefined;
130
+ }
131
+ }
108
132
  function parseJson(raw) {
109
133
  if (raw.trim().length === 0) {
110
134
  return {
@@ -134,23 +158,45 @@ function checkHeader(envelope, request) {
134
158
  if (!isRecord(envelope)) {
135
159
  return invalid("la respuesta no es un objeto JSON");
136
160
  }
161
+ // Absence is checked BEFORE value, header by header. Folding the two together
162
+ // makes the error name the missing value (`estado desconocido: undefined`)
163
+ // instead of the missing FIELD, and an executor who never saw the envelope
164
+ // cannot tell `state` from `status` by reading that.
165
+ if (envelope.version === undefined) {
166
+ return missing("version", `el número ${SEMANTIC_PROTOCOL_VERSION}`);
167
+ }
137
168
  if (envelope.version !== SEMANTIC_PROTOCOL_VERSION) {
138
169
  return invalid(`versión de protocolo no soportada: ${String(envelope.version)}`);
139
170
  }
171
+ if (envelope.operation === undefined) {
172
+ return missing("operation", `'${request.operation}', copiado del request`);
173
+ }
140
174
  if (envelope.operation !== request.operation) {
141
175
  return invalid(`la respuesta dice operación '${String(envelope.operation)}' y esta es '${request.operation}'`);
142
176
  }
177
+ if (envelope.input_digest === undefined) {
178
+ return missing("input_digest", `'${request.input_digest}', copiado del request`);
179
+ }
143
180
  // The staleness seal: the world moved between prepare and this answer, so the
144
181
  // inventory, the numbering and the duplicate check it reasoned over are gone.
145
- // The expected digest travels in the message: re-running prepare is the fix,
146
- // and nobody should have to reimplement `canonicalJson` to name it.
182
+ // The message names WHAT the seal covers — the digests alone say two hashes
183
+ // differ, which is true of every cause and diagnostic of none.
147
184
  if (envelope.input_digest !== request.input_digest) {
148
185
  return {
149
186
  code: "SEMANTIC_STALE",
150
- message: `la respuesta responde a un estado anterior del workspace (este request espera 'input_digest' ${request.input_digest})`,
151
- action: `volvé a correr prepare y respondé sobre el request nuevo, con 'input_digest': '${request.input_digest}'`,
187
+ message: `${request.sealed ?? "el estado que el request selló"} cambió entre preparar y responder: la respuesta trae 'input_digest' ${String(envelope.input_digest)} y este request selló ${request.input_digest}`,
188
+ // Conditioned like the message above: this module is shared by persist,
189
+ // fix-git, the flow and the design capability, and none of them carries a
190
+ // `scope`. Promising an envelope that will bring the scope back would send
191
+ // those callers looking for something that does not exist there.
192
+ action: request.scope === undefined
193
+ ? `volvé a correr prepare y respondé sobre el request nuevo, con 'input_digest': '${request.input_digest}'`
194
+ : "volvé a correr prepare —el alcance con el que se preparó viaja en el sobre, así que no hace falta repetir los flags— y respondé sobre el request nuevo",
152
195
  };
153
196
  }
197
+ if (envelope.state === undefined) {
198
+ return missing("state", "proposed | ambiguous | unsupported");
199
+ }
154
200
  const state = envelope.state;
155
201
  if (state !== "proposed" && state !== "ambiguous" && state !== "unsupported") {
156
202
  return invalid(`estado desconocido: ${String(state)}`);
@@ -257,6 +303,10 @@ function invalid(message) {
257
303
  action: "corregí la respuesta según el 'contract' del request y reenviala",
258
304
  };
259
305
  }
306
+ /** A header that is absent names itself, with the value the request expects there. */
307
+ function missing(field, expected) {
308
+ return invalid(`falta el campo obligatorio '${field}' del sobre: esperaba ${expected}`);
309
+ }
260
310
  function isRecord(value) {
261
311
  return typeof value === "object" && value !== null && !Array.isArray(value);
262
312
  }
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/application/semantic-operation/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAmD3C,oFAAoF;AACpF,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC;IACxF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC;SAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;QACnC,0EAA0E;QAC1E,6EAA6E;QAC7E,0EAA0E;QAC1E,0EAA0E;SACzE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAClC,CAAC;AAaD,MAAM,UAAU,oBAAoB,CAAC,KAAwB;IAC3D,MAAM,OAAO,GAAoB;QAC/B,OAAO,EAAE,yBAAyB;QAClC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,YAAY,EAAE,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1C,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,oBAAoB,EAAE,KAAK,CAAC,mBAAmB;QAC/C,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,KAAK,CAAC,OAAO;QACvB,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,YAAY,EAAE;KAClE,CAAC;IACF,6EAA6E;IAC7E,8EAA8E;IAC9E,OAAO,CAAC,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IACnF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAW,EACX,OAAwB;IAExB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAE9B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAkC,CAAC;IAC3D,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAE3D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7B,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QACrD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE;gBACP,IAAI,EAAE,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,sBAAsB;gBAC3E,OAAO,EAAE,QAAQ,CAAC,MAAM,IAAI,4BAA4B,KAAK,wBAAwB;gBACrF,MAAM,EACJ,KAAK,KAAK,WAAW;oBACnB,CAAC,CAAC,iEAAiE;oBACnE,CAAC,CAAC,mEAAmE;aAC1E;SACF,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtE,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAEpC,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE;YACL,OAAO,EAAE,yBAAyB;YAClC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,KAAK,EAAE,UAAU;YACjB,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,SAAS,EAAE,SAAS,CAAC,KAAK;SAC3B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE;gBACP,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,wCAAwC;gBACjD,MAAM,EAAE,wDAAwD;aACjE;SACF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE;gBACP,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,0CAA0C;gBACnD,MAAM,EAAE,yDAAyD;aAClE;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,QAAmC,EACnC,OAAwB;IAExB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,mCAAmC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,KAAK,yBAAyB,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC,sCAAsC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,QAAQ,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;QAC7C,OAAO,OAAO,CACZ,gCAAgC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,OAAO,CAAC,SAAS,GAAG,CAC/F,CAAC;IACJ,CAAC;IACD,8EAA8E;IAC9E,8EAA8E;IAC9E,6EAA6E;IAC7E,oEAAoE;IACpE,IAAI,QAAQ,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC;QACnD,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,gGAAgG,OAAO,CAAC,YAAY,GAAG;YAChI,MAAM,EAAE,kFAAkF,OAAO,CAAC,YAAY,GAAG;SAClH,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7B,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC7E,OAAO,OAAO,CAAC,uBAAuB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAAY,EACZ,OAAwB;IAExB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,+CAA+C,CAAC,EAAE,CAAC;IAC1F,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC9C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,OAAO,CACd,GAAG,GAAG,CAAC,MAAM,oCAAoC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAChF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAuB,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5F,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,qDAAqD,CAAC,EAAE,CAAC;QAChG,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,iBAAiB,IAAI,CAAC,KAAK,kBAAkB,CAAC,EAAE,CAAC;QACxF,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,OAAO,CACd,IAAI,IAAI,CAAC,KAAK,UAAU,KAAK,qBAAqB,OAAO,CAAC,MAAM,CAAC,kBAAkB,IAAI,CACxF;aACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,GAAW,EAAE,OAAiB;IAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,CAAC,GAAW,EAAyB,EAAE,CAAC,CAAC;QACtD,EAAE,EAAE,KAAK;QACT,OAAO,EAAE;YACP,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,0BAA0B,GAAG,OAAO,GAAG,EAAE;YAClD,MAAM,EAAE,2BAA2B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACxD;KACF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,+EAA+E;IAC/E,+EAA+E;IAC/E,iFAAiF;IACjF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjE,IAAI,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/E,OAAO,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,IAAI,KAAK,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,sCAAsC,CAAC,CAAC;IACnE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,QAA0B;IACvD,OAAO,cAAc,CAAC;QACpB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,SAAS,EAAE,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;SAC1C,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO;QACL,IAAI,EAAE,2BAA2B;QACjC,OAAO;QACP,MAAM,EAAE,kEAAkE;KAC3E,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/application/semantic-operation/protocol.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { applyExport, prepareExport, validateExport, } from "../../application/export-service.js";
1
+ import { applyExport, conflictingScopeFlags, prepareExport, readExportScope, validateExport, } from "../../application/export-service.js";
2
2
  import { readRequiredStdin } from "../context-id.js";
3
3
  import { flagValue } from "../parser.js";
4
4
  import { fail, failSemantic } from "../render.js";
@@ -8,6 +8,37 @@ const DESCRIBES = {
8
8
  reports: "Publica un informe acotado en docs/reports.",
9
9
  scripts: "Consolida el SQL pendiente en un bundle de docs/scripts (00-ROLLBACK.sql + forwards continuos + README). NUNCA ejecuta SQL.",
10
10
  };
11
+ /**
12
+ * The answer envelope, published where an executor can read it WITHOUT running
13
+ * the operation.
14
+ *
15
+ * Same reason as `aw flow`'s: the contract is enforced in
16
+ * `semantic-operation/protocol.ts` and, until now, was documented nowhere — so
17
+ * the only way to learn that the field is `state` and not `status` was to send
18
+ * an answer without it and read `estado desconocido: undefined`, which names
19
+ * the value and not the field. A contract only a failed attempt can teach
20
+ * charges every executor the same tuition.
21
+ *
22
+ * Kept beside the command rather than in the doctrine bundle because the
23
+ * bundle's context budget is a frozen gate and this is reference material: it
24
+ * is read while composing an answer, not on every run.
25
+ */
26
+ const ENVELOPE = [
27
+ "Sobre de `validate` / `apply` — un único objeto JSON por stdin, con sus campos en el NIVEL SUPERIOR:",
28
+ "",
29
+ " obligatorio version: el número que el request trae en 'version'.",
30
+ " operation: 'export-<categoría>', copiado del request.",
31
+ " input_digest: el 'input_digest' del request, copiado tal cual.",
32
+ " state: proposed | ambiguous | unsupported.",
33
+ "",
34
+ " proposed artifacts: [{path, content}] — cada path dentro del destino que el request declara en 'allowed_destinations'.",
35
+ " scope: el 'scope' del request, copiado TAL CUAL. Es el alcance con el que se preparó: validate y apply lo leen en vez de re-derivarlo, así que NO hace falta repetir --sessions/--since/--source/--date. Repetirlos con otro valor se rechaza.",
36
+ "",
37
+ " ambiguous reason: por qué no se puede decidir. No se escribe nada.",
38
+ " unsupported reason: por qué la operación no aplica. No se escribe nada.",
39
+ "",
40
+ " aprobación --approval <digest> con el 'approval_digest' que devolvió validate — viaja como flag, no dentro del sobre.",
41
+ ].join("\n");
11
42
  /**
12
43
  * The four exports are the same command with a different policy: same stages,
13
44
  * same validation, same authorization. Only the category changes, which is why
@@ -16,21 +47,29 @@ const DESCRIBES = {
16
47
  function exportCommand(category) {
17
48
  return {
18
49
  name: `export-${category}`,
19
- describe: `${DESCRIBES[category]} Escribe SOLO en su carpeta y nunca crea una sesión. Usage: aw export-${category} prepare | validate | apply --approval <digest> [--overwrite] [--sessions <a,b>] [--since <YYYY-MM-DD>] [--source <alias>] [--date <YYYY-MM-DD>].`,
50
+ describe: `${DESCRIBES[category]} Escribe SOLO en su carpeta y nunca crea una sesión. Usage: aw export-${category} prepare | validate | apply --approval <digest> [--overwrite] [--sessions <a,b>] [--since <YYYY-MM-DD>] [--source <alias>] [--date <YYYY-MM-DD>].
51
+
52
+ ${ENVELOPE}`,
20
53
  async execute(args, ctx) {
21
54
  const stage = args.rest[0];
22
55
  if (stage !== "prepare" && stage !== "validate" && stage !== "apply") {
23
56
  return fail("ARGS_INVALID", `uso: aw export-${category} prepare | validate | apply --approval <digest>`);
24
57
  }
58
+ // stdin FIRST on the later stages: the answer carries the scope its
59
+ // proposal was written against, and rebuilding the request without it is
60
+ // what used to reject a perfectly current answer as stale.
61
+ const raw = stage === "prepare" ? "" : await readRequiredStdin();
62
+ const scope = resolveStageScope(stage, raw, args);
63
+ if (!scope.ok)
64
+ return failSemantic(scope.failure);
25
65
  // Each stage rebuilds the request from the workspace: stateless, and the
26
66
  // corpus digest is what detects a session that moved meanwhile.
27
- const prepared = await prepareExport(ctx.fs, ctx.env, ctx.paths, category, selection(args));
67
+ const prepared = await prepareExport(ctx.fs, ctx.env, ctx.paths, category, scope.selection);
28
68
  if (!prepared.ok)
29
69
  return failSemantic(prepared.failure);
30
70
  if (stage === "prepare") {
31
71
  return { ok: true, data: { stage: "prepare", prepared: prepared.value }, exitCode: 0 };
32
72
  }
33
- const raw = await readRequiredStdin();
34
73
  return stage === "validate"
35
74
  ? runValidate(raw, prepared.value)
36
75
  : await runApply(args, ctx, raw, prepared.value);
@@ -68,6 +107,41 @@ function exportCommand(category) {
68
107
  },
69
108
  };
70
109
  }
110
+ /**
111
+ * What this stage should prepare over: the scope the answer echoes when there
112
+ * is one, the invocation's own flags otherwise.
113
+ */
114
+ function resolveStageScope(stage, raw, args) {
115
+ const flags = selection(args);
116
+ if (stage === "prepare")
117
+ return { ok: true, selection: flags };
118
+ const echoed = readExportScope(raw);
119
+ if (!echoed.ok)
120
+ return echoed;
121
+ if (echoed.value === null)
122
+ return { ok: true, selection: flags };
123
+ const conflicts = conflictingScopeFlags(echoed.value, flags);
124
+ if (conflicts.length > 0) {
125
+ return {
126
+ ok: false,
127
+ failure: {
128
+ code: "EXPORT_SCOPE_CONFLICT",
129
+ message: `${conflicts.join(" y ")} contradice(n) el alcance con el que se preparó (${describeScope(echoed.value)})`,
130
+ action: `quitá los flags de alcance en ${stage}: el sobre ya trae el alcance de la preparación`,
131
+ },
132
+ };
133
+ }
134
+ return { ok: true, selection: echoed.value };
135
+ }
136
+ function describeScope(scope) {
137
+ const parts = [
138
+ ...(scope.sessions === undefined ? [] : [`--sessions ${scope.sessions.join(",")}`]),
139
+ ...(scope.since === undefined ? [] : [`--since ${scope.since}`]),
140
+ ...(scope.source === undefined ? [] : [`--source ${scope.source}`]),
141
+ `--date ${scope.date}`,
142
+ ];
143
+ return parts.join(" ");
144
+ }
71
145
  function runValidate(raw, prepared) {
72
146
  const result = validateExport(raw, prepared);
73
147
  if (!result.ok)
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/cli/commands/export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/cli/commands/export.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tacuchi/agent-workflow-cli",
3
- "version": "21.15.0",
3
+ "version": "21.16.0",
4
4
  "description": "Runtime CLI for Workline — the stages + loops + artifacts system for agent work. Bundles the universal `w` skill set under `skills/w/` (slash commands `/w:*`: spec-new/spec-refine, plan-new/plan-exec, quick, persist, workspace-init, export-*); `self install --target <host>` copies SKILL + commands + hooks into the host. Pluggable capability skills via `.workflow/skills.toml`. Multi-empresa parametrization via `profile.json` cascade. Namespace auto-detected from any `.<ns>/sessions/` dir in CWD; default `workflow`.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -7,7 +7,7 @@ allowed-tools: ["Bash", "Read"]
7
7
  ## Run
8
8
 
9
9
  1. `aw export-diagrams prepare --format human` (+ `--sessions`/`--since`/`--source`) → corpus, destination, shape, `input_digest`.
10
- 2. Answer with one JSON: `version`/`operation`/`input_digest` **verbatim**, `state: "proposed"`, `artifacts` = `{ path, content }` per file, all inside the destination; `NNN` is advisory: `apply` renumbers.
10
+ 2. Answer with one JSON: `version`/`operation`/`input_digest`/`scope` **verbatim** — the `scope` carries the prepared scope, so 3 and 4 never repeat the scope flags; `state: "proposed"`, `artifacts` = `{ path, content }` per file, all inside the destination; `NNN` is advisory: `apply` renumbers.
11
11
  3. `echo '<json>' | aw export-diagrams validate --format human` → preview + `approval_digest`; confirm scope and destination with the user.
12
12
  4. `echo '<json>' | aw export-diagrams apply --approval <digest>`. On rejection nothing was written: fix and repeat step 3.
13
13
 
@@ -7,7 +7,7 @@ allowed-tools: ["Bash", "Read"]
7
7
  ## Run
8
8
 
9
9
  1. `aw export-manuals prepare --format human` (+ `--sessions`/`--since`/`--source`) → corpus, destination, shape, `input_digest`.
10
- 2. Answer with one JSON: `version`/`operation`/`input_digest` **verbatim**, `state: "proposed"`, `artifacts` = `{ path, content }` per file, all inside the destination; `NNN` is advisory: `apply` renumbers.
10
+ 2. Answer with one JSON: `version`/`operation`/`input_digest`/`scope` **verbatim** — the `scope` carries the prepared scope, so 3 and 4 never repeat the scope flags; `state: "proposed"`, `artifacts` = `{ path, content }` per file, all inside the destination; `NNN` is advisory: `apply` renumbers.
11
11
  3. `echo '<json>' | aw export-manuals validate --format human` → preview + `approval_digest`; confirm scope and destination with the user.
12
12
  4. `echo '<json>' | aw export-manuals apply --approval <digest> [--overwrite]`. On rejection nothing was written: fix and repeat step 3.
13
13
 
@@ -7,7 +7,7 @@ allowed-tools: ["Bash", "Read"]
7
7
  ## Run
8
8
 
9
9
  1. `aw export-reports prepare --format human` (+ `--sessions`/`--since`/`--source`) → corpus, destination, shape, `input_digest`.
10
- 2. Answer with one JSON: `version`/`operation`/`input_digest` **verbatim**, `state: "proposed"`, `artifacts` = `{ path, content }` per file, all inside the destination; `NNN` is advisory: `apply` renumbers.
10
+ 2. Answer with one JSON: `version`/`operation`/`input_digest`/`scope` **verbatim** — the `scope` carries the prepared scope, so 3 and 4 never repeat the scope flags; `state: "proposed"`, `artifacts` = `{ path, content }` per file, all inside the destination; `NNN` is advisory: `apply` renumbers.
11
11
  3. `echo '<json>' | aw export-reports validate --format human` → preview + `approval_digest`; confirm scope and destination with the user.
12
12
  4. `echo '<json>' | aw export-reports apply --approval <digest>`. On rejection nothing was written: fix and repeat step 3.
13
13
 
@@ -7,7 +7,7 @@ allowed-tools: ["Bash", "Read"]
7
7
  ## Run
8
8
 
9
9
  1. `aw export-scripts prepare --format human` (+ `--sessions`/`--since`/`--source`) → corpus, destination, shape, `input_digest`.
10
- 2. Answer with one JSON: `version`/`operation`/`input_digest` **verbatim**, `state: "proposed"`, `artifacts` = `{ path, content }` per file, all inside the destination; `NNN` is advisory: `apply` renumbers.
10
+ 2. Answer with one JSON: `version`/`operation`/`input_digest`/`scope` **verbatim** — the `scope` carries the prepared scope, so 3 and 4 never repeat the scope flags; `state: "proposed"`, `artifacts` = `{ path, content }` per file, all inside the destination; `NNN` is advisory: `apply` renumbers.
11
11
  3. `echo '<json>' | aw export-scripts validate --format human` → preview + `approval_digest`; confirm scope and destination with the user.
12
12
  4. `echo '<json>' | aw export-scripts apply --approval <digest>`. On rejection nothing was written: fix and repeat step 3.
13
13