@encore-os/eos-spec 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/archive.js +57 -3
- package/dist/commands/archive.js.map +1 -1
- package/dist/commands/close-out.d.ts +2 -0
- package/dist/commands/close-out.js +167 -0
- package/dist/commands/close-out.js.map +1 -0
- package/dist/commands/conformance.js +20 -1
- package/dist/commands/conformance.js.map +1 -1
- package/dist/commands/create.js +25 -4
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/metrics.js +15 -0
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/run.d.ts +10 -0
- package/dist/commands/run.js +230 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/validate.d.ts +7 -0
- package/dist/commands/validate.js +46 -7
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/walkthrough.d.ts +2 -0
- package/dist/commands/walkthrough.js +76 -0
- package/dist/commands/walkthrough.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/ai-call.d.ts +12 -0
- package/dist/lib/ai-call.js +6 -0
- package/dist/lib/ai-call.js.map +1 -1
- package/dist/lib/closeout-core.d.ts +46 -0
- package/dist/lib/closeout-core.js +34 -0
- package/dist/lib/closeout-core.js.map +1 -0
- package/dist/lib/closeout-predicate.d.ts +36 -0
- package/dist/lib/closeout-predicate.js +130 -0
- package/dist/lib/closeout-predicate.js.map +1 -0
- package/dist/lib/cost.js +7 -0
- package/dist/lib/cost.js.map +1 -1
- package/dist/lib/events.d.ts +15 -1
- package/dist/lib/events.js.map +1 -1
- package/dist/lib/frontmatter.d.ts +38 -0
- package/dist/lib/frontmatter.js +76 -0
- package/dist/lib/frontmatter.js.map +1 -1
- package/dist/lib/gate-executor.d.ts +80 -0
- package/dist/lib/gate-executor.js +311 -0
- package/dist/lib/gate-executor.js.map +1 -0
- package/dist/lib/llm-health.d.ts +28 -0
- package/dist/lib/llm-health.js +46 -0
- package/dist/lib/llm-health.js.map +1 -0
- package/dist/lib/metrics.d.ts +26 -0
- package/dist/lib/metrics.js +35 -0
- package/dist/lib/metrics.js.map +1 -1
- package/dist/lib/next-action.d.ts +10 -4
- package/dist/lib/next-action.js +10 -4
- package/dist/lib/next-action.js.map +1 -1
- package/dist/lib/ollama-embed.d.ts +5 -0
- package/dist/lib/ollama-embed.js +5 -0
- package/dist/lib/ollama-embed.js.map +1 -1
- package/dist/lib/output.d.ts +3 -0
- package/dist/lib/output.js +3 -0
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/pipeline-config.js +10 -0
- package/dist/lib/pipeline-config.js.map +1 -1
- package/dist/lib/pipeline-map.js +9 -0
- package/dist/lib/pipeline-map.js.map +1 -1
- package/dist/lib/precedent-search.d.ts +1 -0
- package/dist/lib/precedent-search.js +19 -2
- package/dist/lib/precedent-search.js.map +1 -1
- package/dist/lib/predicate-registry.js +7 -0
- package/dist/lib/predicate-registry.js.map +1 -1
- package/dist/lib/run-pipeline.d.ts +118 -0
- package/dist/lib/run-pipeline.js +106 -0
- package/dist/lib/run-pipeline.js.map +1 -0
- package/dist/lib/scorecard.js +9 -0
- package/dist/lib/scorecard.js.map +1 -1
- package/dist/lib/spec-pure.d.ts +69 -4
- package/dist/lib/spec-pure.js +125 -15
- package/dist/lib/spec-pure.js.map +1 -1
- package/dist/lib/specs.d.ts +3 -3
- package/dist/lib/specs.js +43 -20
- package/dist/lib/specs.js.map +1 -1
- package/dist/lib/version.d.ts +1 -1
- package/dist/lib/version.js +1 -1
- package/dist/lib/walkthrough-coverage.d.ts +81 -0
- package/dist/lib/walkthrough-coverage.js +111 -0
- package/dist/lib/walkthrough-coverage.js.map +1 -0
- package/package.json +1 -1
package/dist/lib/spec-pure.js
CHANGED
|
@@ -64,7 +64,7 @@ export function hasActiveGeneratedTestSource(source) {
|
|
|
64
64
|
* `deriveSignals` in specs.ts is a thin positional-args adapter over this.
|
|
65
65
|
*/
|
|
66
66
|
export function deriveSignalsFromText(core, text, flags = {}) {
|
|
67
|
-
const { researchFileExists = false, reviewFileExists = false, generatedTestExists = false, complianceSignoffFileExists = false, docshotImageExists = false, activeGeneratedTests = false, isCreateWizardSpec = false, submitE2eProvesPersist = false, linkedLocalTestExists = false, } = flags;
|
|
67
|
+
const { researchFileExists = false, reviewFileExists = false, generatedTestExists = false, complianceSignoffFileExists = false, uxSignoffFileExists = false, docshotImageExists = false, activeGeneratedTests = false, isCreateWizardSpec = false, submitE2eProvesPersist = false, linkedLocalTestExists = false, } = flags;
|
|
68
68
|
const fm = readFrontmatter(text);
|
|
69
69
|
const nonEmptyArray = (v) => Array.isArray(v) && v.length > 0;
|
|
70
70
|
const hasUserStoriesSection = /^#{1,3}\s+User Stories\b/im.test(text);
|
|
@@ -85,7 +85,7 @@ export function deriveSignalsFromText(core, text, flags = {}) {
|
|
|
85
85
|
hasSpecReview: reviewFileExists || /<!--\s*spec-reviewed:/i.test(text),
|
|
86
86
|
hasValidationSignoff: /<!--\s*validated:/i.test(text),
|
|
87
87
|
hasComplianceSignoff: complianceSignoffFileExists || /<!--\s*compliance-reviewed:/i.test(text),
|
|
88
|
-
hasUxSignoff: /<!--\s*ux-reviewed:/i.test(text),
|
|
88
|
+
hasUxSignoff: uxSignoffFileExists || /<!--\s*ux-reviewed:/i.test(text),
|
|
89
89
|
isUiBearing: uiAffectedFiles || /^#{1,3}\s*UI\s*\/?\s*UX\b/im.test(text),
|
|
90
90
|
hasDocshots: docshotImageExists || /-docs-shots\.spec\.ts/.test(text) || /<!--\s*docshots:/i.test(text),
|
|
91
91
|
hasHealSignoff: /<!--\s*heal-verified:/i.test(text),
|
|
@@ -194,6 +194,85 @@ export function isDerivativeArtifact(dirName, filename) {
|
|
|
194
194
|
return true;
|
|
195
195
|
return /-(TASKS|PLAN|CONTEXT|RESEARCH|NAVIGATION|RECOMMENDATION|RECOMMENDATIONS|DECISION|DECISIONS|SUMMARY|IMPLEMENTATION|WORKSTREAM|AUDIT|REPORT|SIGNOFF|READINESS|EXPANSION|WORKSHEET|PATTERNS)/i.test(specBasename(filename).toUpperCase());
|
|
196
196
|
}
|
|
197
|
+
/** Uppercase derivative-artifact descriptors that, by repo convention, live ALONGSIDE
|
|
198
|
+
* primary specs in `specs/{core}/specs|ux/` AND deliberately carry the PARENT spec's
|
|
199
|
+
* id in their frontmatter (a CONTEXT/CLARIFICATION/ENHANCEMENTS/EXPANSION note for spec
|
|
200
|
+
* X is *about* X, so it sets `id: X`). They must stay derivative even though they
|
|
201
|
+
* declare a well-formed id — promoting one would manufacture a false duplicate of its
|
|
202
|
+
* parent. This is the deliberate exception to "frontmatter id is authoritative" (#27):
|
|
203
|
+
* a frontmatter id is meant to rescue a reserved token embedded in a real feature SLUG
|
|
204
|
+
* (`…-performance-review-wizard`), never one of these dedicated sibling-artifact files.
|
|
205
|
+
* Case-sensitive (uppercase) — the same shape the loader's legacy CONTEXT/ENHANCEMENTS/
|
|
206
|
+
* EXPANSION substring skips used — so a lowercase slug word (`…-context-menu`, verified
|
|
207
|
+
* against the encoreos corpus) is unaffected. */
|
|
208
|
+
const DEDICATED_ARTIFACT_TOKENS = ['CONTEXT', 'CLARIFICATION', 'ENHANCEMENTS', 'EXPANSION'];
|
|
209
|
+
/** True when a filename is a dedicated sibling-artifact file (see
|
|
210
|
+
* {@link DEDICATED_ARTIFACT_TOKENS}) — never a primary spec, regardless of any
|
|
211
|
+
* declared frontmatter id. */
|
|
212
|
+
export function isDedicatedArtifactFile(filename) {
|
|
213
|
+
return DEDICATED_ARTIFACT_TOKENS.some((token) => filename.includes(token));
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* The well-formed spec id declared in a file's frontmatter `id:`, validated against the
|
|
217
|
+
* id grammar for `core`, or null when absent/blank/malformed/cross-core. A declared id
|
|
218
|
+
* only counts when it parses as a COMPLETE id for its core (the whole value, not a
|
|
219
|
+
* prefix) — so a stray `id: notes`, a `id:` slug like `WEB-29-diff-review`, or an `id:`
|
|
220
|
+
* whose core does not match its directory never governs identity/classification. (#27)
|
|
221
|
+
*/
|
|
222
|
+
export function declaredSpecId(declaredId, core) {
|
|
223
|
+
if (typeof declaredId !== 'string')
|
|
224
|
+
return null;
|
|
225
|
+
const trimmed = declaredId.trim();
|
|
226
|
+
if (trimmed === '')
|
|
227
|
+
return null;
|
|
228
|
+
const parsed = extractSpecId(trimmed, core);
|
|
229
|
+
return parsed && parsed.toUpperCase() === trimmed.toUpperCase() ? parsed : null;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Resolve the AUTHORITATIVE id for a candidate primary-spec FILE — the single fs-free
|
|
233
|
+
* source of truth shared by the corpus loader (`specs.ts` `collectSpecsFromDirectory`)
|
|
234
|
+
* and the path-string classifiers below. Implements issue #27's "frontmatter id is
|
|
235
|
+
* authoritative, the filename is only a hint", made precise so it rescues real specs
|
|
236
|
+
* without manufacturing false duplicates of their sibling artifacts:
|
|
237
|
+
*
|
|
238
|
+
* 1. Structural non-specs (non-`.md`, `README*`, `SPEC_INDEX*`) and dedicated sibling
|
|
239
|
+
* artifacts ({@link isDedicatedArtifactFile}) are never primary, regardless of a
|
|
240
|
+
* declared id.
|
|
241
|
+
* 2. IDENTITY: the filename-parsed id wins when the filename parses to a valid spec id;
|
|
242
|
+
* otherwise the well-formed frontmatter id is used. Filenames are the established,
|
|
243
|
+
* reviewed convention, so a *disagreeing* frontmatter id (e.g. an enhancement file
|
|
244
|
+
* that copy-pasted its parent's `id:`, or a `{parent}-PHASE…` artifact naming a
|
|
245
|
+
* sibling) must not silently relocate the spec.
|
|
246
|
+
* 3. CLASSIFICATION: a file the reserved-token / phase lifecycle heuristics would drop
|
|
247
|
+
* is RESCUED to primary when it carries a well-formed frontmatter id that AGREES with
|
|
248
|
+
* the parseable filename id (the reserved token is part of a real feature slug,
|
|
249
|
+
* e.g. `…-performance-review-wizard`), or when the filename does not parse at all but
|
|
250
|
+
* a well-formed frontmatter id is present. A lifecycle file whose frontmatter id
|
|
251
|
+
* DISAGREES with its parseable filename id stays derivative (preserves current
|
|
252
|
+
* behavior — avoids promoting a phase/rollout artifact onto a sibling id).
|
|
253
|
+
*
|
|
254
|
+
* Returns the resolved spec id, or null when the file is not a primary spec.
|
|
255
|
+
*/
|
|
256
|
+
export function resolveSpecFileId(core, filename, declaredId) {
|
|
257
|
+
if (!filename.endsWith('.md'))
|
|
258
|
+
return null;
|
|
259
|
+
if (filename.startsWith('SPEC_INDEX') || filename.startsWith('README'))
|
|
260
|
+
return null;
|
|
261
|
+
if (isDedicatedArtifactFile(filename))
|
|
262
|
+
return null;
|
|
263
|
+
const filenameId = extractSpecId(filename, core);
|
|
264
|
+
const frontmatterId = declaredSpecId(declaredId, core);
|
|
265
|
+
const id = filenameId ?? frontmatterId;
|
|
266
|
+
if (!id)
|
|
267
|
+
return null;
|
|
268
|
+
if (!isLifecycleArtifact(filename) && !isPhaseLifecycleFile(filename))
|
|
269
|
+
return id; // legacy primary path
|
|
270
|
+
// A lifecycle/reserved-token heuristic fired — rescue only on an authoritative,
|
|
271
|
+
// agreeing frontmatter id (or when the filename does not parse at all).
|
|
272
|
+
if (frontmatterId && (!filenameId || frontmatterId.toUpperCase() === filenameId.toUpperCase()))
|
|
273
|
+
return id;
|
|
274
|
+
return null;
|
|
275
|
+
}
|
|
197
276
|
/** The skip rules `collectSpecsFromDirectory` applies to one filename. */
|
|
198
277
|
export function isPrimarySpecFile(filename) {
|
|
199
278
|
if (!filename.endsWith('.md'))
|
|
@@ -214,23 +293,27 @@ export function isPrimarySpecFile(filename) {
|
|
|
214
293
|
return false;
|
|
215
294
|
return true;
|
|
216
295
|
}
|
|
217
|
-
/**
|
|
218
|
-
|
|
296
|
+
/**
|
|
297
|
+
* The spec id for a primary spec path, or null if the path isn't a primary spec.
|
|
298
|
+
* `declaredId` is the spec id declared in the file's frontmatter `id:` (when the caller
|
|
299
|
+
* has the content, e.g. Spec Studio): it is AUTHORITATIVE over the filename hint (#27),
|
|
300
|
+
* so a reserved-token slug like `specs/web/specs/WEB-29-diff-review-comments.md` resolves
|
|
301
|
+
* once its `id:` is supplied. Path-only callers omit it and keep the legacy filename
|
|
302
|
+
* behavior. Delegates to {@link resolveSpecFileId} — the single classification source.
|
|
303
|
+
*/
|
|
304
|
+
export function specIdForPath(path, declaredId) {
|
|
219
305
|
const parts = path.split('/');
|
|
220
306
|
if (parts.length !== 4 || parts[0] !== 'specs')
|
|
221
|
-
return
|
|
307
|
+
return null;
|
|
222
308
|
if (parts[2] !== 'specs' && parts[2] !== 'ux')
|
|
223
|
-
return false;
|
|
224
|
-
if (!isPrimarySpecFile(parts[3]))
|
|
225
|
-
return false;
|
|
226
|
-
return extractSpecId(parts[3], parts[1]) != null;
|
|
227
|
-
}
|
|
228
|
-
/** The spec id for a primary spec path, or null if the path isn't a primary spec. */
|
|
229
|
-
export function specIdForPath(path) {
|
|
230
|
-
if (!isPrimarySpecPath(path))
|
|
231
309
|
return null;
|
|
232
|
-
|
|
233
|
-
|
|
310
|
+
return resolveSpecFileId(parts[1], parts[3], declaredId);
|
|
311
|
+
}
|
|
312
|
+
/** True when a repo-relative path is a primary spec directly under specs/{core}/specs|ux/.
|
|
313
|
+
* `declaredId` (frontmatter `id:`) is authoritative over the filename hint — see
|
|
314
|
+
* {@link specIdForPath}. */
|
|
315
|
+
export function isPrimarySpecPath(path, declaredId) {
|
|
316
|
+
return specIdForPath(path, declaredId) != null;
|
|
234
317
|
}
|
|
235
318
|
/** Deterministic winner (path-sorted, mirroring the CLI's findSpec) for a spec id among `allPaths`. */
|
|
236
319
|
export function findSpecPath(specId, allPaths) {
|
|
@@ -238,6 +321,33 @@ export function findSpecPath(specId, allPaths) {
|
|
|
238
321
|
const matches = allPaths.filter((p) => specIdForPath(p)?.toUpperCase() === up).sort((a, b) => a.localeCompare(b));
|
|
239
322
|
return matches[0] ?? null;
|
|
240
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* Detect duplicate spec ids over an already-resolved, in-memory set of primary specs
|
|
326
|
+
* (issue #27, mode b). Pure: operates on `{ id, path }` pairs (a SpecFile satisfies the
|
|
327
|
+
* shape), no filesystem access. Groups case-insensitively by resolved id and returns
|
|
328
|
+
* every id claimed by more than one path, with the offending paths and the groups both
|
|
329
|
+
* sorted for deterministic output. The fs-bound loader resolves the ids (frontmatter
|
|
330
|
+
* authoritative over the filename hint, via {@link resolveSpecFileId}); the `validate`
|
|
331
|
+
* command turns the result into a hard `DUPLICATE_SPEC_ID` error instead of the old
|
|
332
|
+
* silent lowest-path-wins dedupe that hid the second file.
|
|
333
|
+
*/
|
|
334
|
+
export function findDuplicateSpecIds(specs) {
|
|
335
|
+
const byId = new Map();
|
|
336
|
+
for (const spec of specs) {
|
|
337
|
+
const key = spec.id.toUpperCase();
|
|
338
|
+
const paths = byId.get(key);
|
|
339
|
+
if (paths)
|
|
340
|
+
paths.push(spec.path);
|
|
341
|
+
else
|
|
342
|
+
byId.set(key, [spec.path]);
|
|
343
|
+
}
|
|
344
|
+
const dups = [];
|
|
345
|
+
for (const [id, paths] of byId) {
|
|
346
|
+
if (paths.length > 1)
|
|
347
|
+
dups.push({ id, paths: [...paths].sort((a, b) => a.localeCompare(b)) });
|
|
348
|
+
}
|
|
349
|
+
return dups.sort((a, b) => a.id.localeCompare(b.id));
|
|
350
|
+
}
|
|
241
351
|
/**
|
|
242
352
|
* Path-Set equivalent of specs.ts's `hasArtifact`/`resolveArtifactPath`: is there a
|
|
243
353
|
* `specs/{core}/{folder}/{id}-{suffix}.md` (flat dir only) in `paths`? A child
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-pure.js","sourceRoot":"","sources":["../../src/lib/spec-pure.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spec-pure.js","sourceRoot":"","sources":["../../src/lib/spec-pure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAGlF,gEAAgE;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAEvE;;mFAEmF;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,wEAAwE;IACjF,eAAe,EAAE,IAAI;CACb,CAAC;AAEX,0DAA0D;AAC1D,MAAM,sBAAsB,GAAG,yDAAyD,CAAC;AAEzF;;;;;;;yEAOyE;AACzE,MAAM,oBAAoB,GACxB,oLAAoL,CAAC;AAEvL;;;;;8EAK8E;AAC9E,SAAS,eAAe,CAAC,IAAY,EAAE,IAAc;IACnD,IAAI,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,8CAA8C,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACzG,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;0FAC0F;AAC1F,MAAM,UAAU,4BAA4B,CAAC,MAAc;IACzD,IAAI,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC9D,OAAO,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACzD,CAAC;AAkBD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,IAAY,EAAE,QAAyB,EAAE;IAC3F,MAAM,EACJ,kBAAkB,GAAG,KAAK,EAC1B,gBAAgB,GAAG,KAAK,EACxB,mBAAmB,GAAG,KAAK,EAC3B,2BAA2B,GAAG,KAAK,EACnC,mBAAmB,GAAG,KAAK,EAC3B,kBAAkB,GAAG,KAAK,EAC1B,oBAAoB,GAAG,KAAK,EAC5B,kBAAkB,GAAG,KAAK,EAC1B,sBAAsB,GAAG,KAAK,EAC9B,qBAAqB,GAAG,KAAK,GAC9B,GAAG,KAAK,CAAC;IACV,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,aAAa,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAChF,MAAM,qBAAqB,GAAG,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAClH,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,OAAO;QACL,WAAW,EAAE,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpD,cAAc,EAAE,OAAO,EAAE,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;QACvF,WAAW,EAAE,kBAAkB,IAAI,OAAO,EAAE,CAAC,iBAAiB,KAAK,QAAQ;QAC3E,qBAAqB,EAAE,aAAa,CAAC,EAAE,CAAC,mBAAmB,CAAC;QAC5D,6BAA6B,EAAE,6BAA6B,CAAC,EAAE,CAAC,mBAAmB,CAAC;QACpF,kBAAkB,EAAE,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,qBAAqB;QACxE,cAAc,EAAE,aAAa,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,qBAAqB;QACvE,iBAAiB,EAAE,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,mBAAmB;QACrE,uBAAuB,EAAE,oBAAoB;QAC7C,cAAc,EAAE,mDAAmD,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9E,aAAa,EAAE,gBAAgB,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;QACtE,oBAAoB,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;QACrD,oBAAoB,EAAE,2BAA2B,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9F,YAAY,EAAE,mBAAmB,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;QACtE,WAAW,EAAE,eAAe,IAAI,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC;QACxE,WAAW,EAAE,kBAAkB,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;QACvG,cAAc,EAAE,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;QACnD,eAAe,EAAE,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;QACrD,gFAAgF;QAChF,8EAA8E;QAC9E,+CAA+C;QAC/C,WAAW,EAAE,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC;QACxC,kFAAkF;QAClF,qFAAqF;QACrF,iDAAiD;QACjD,0BAA0B,EAAE,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1E,kBAAkB;QAClB,YAAY,EAAE,sBAAsB,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/E,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC,UAAU,CAAC;QACxC,sBAAsB,EAAE,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/D,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC,mBAAmB,CAAC;QAChD,gFAAgF;QAChF,2EAA2E;QAC3E,gBAAgB,EAAE,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;KACzE,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,6CAA6C;AAC7C,SAAS,eAAe,CAAC,CAAS;IAChC,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,mBAAmB,GAAG;IAC1B,eAAe;IACf,QAAQ;IACR,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,eAAe;IACf,WAAW;CACZ,CAAC;AAEF,mEAAmE;AACnE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,UAAU;IACV,WAAW;IACX,UAAU;IACV,YAAY;IACZ,iBAAiB;IACjB,cAAc;IACd,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,OAAO;IACP,OAAO;CACR,CAAC,CAAC;AAEH,oDAAoD;AACpD,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;IAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,IAAY;IAC1D,8EAA8E;IAC9E,qFAAqF;IACrF,oFAAoF;IACpF,sFAAsF;IACtF,uFAAuF;IACvF,yFAAyF;IACzF,uFAAuF;IACvF,sFAAsF;IACtF,uDAAuD;IACvD,MAAM,EAAE,GAAG,IAAI,MAAM,CACnB,KAAK,eAAe,CAAC,IAAI,CAAC,yGAAyG,EACnI,GAAG,CACJ,CAAC;IACF,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,CAAC;AAED;uEACuE;AACvE,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,kDAAkD,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACnD,mFAAmF;IACnF,4EAA4E;IAC5E,kEAAkE;IAClE,mFAAmF;IACnF,kFAAkF;IAClF,kDAAkD;IAClD,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACnD,OAAO,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,QAAgB;IACpE,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,mBAAmB,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACjF,OAAO,4LAA4L,CAAC,IAAI,CACtM,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CACrC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;kDAUkD;AAClD,MAAM,yBAAyB,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;AAE5F;;+BAE+B;AAC/B,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,UAAqC,EAAE,IAAY;IAChF,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAChD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,OAAO,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAClF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAgB,EAAE,UAA0B;IAC1F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACpF,IAAI,uBAAuB,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,EAAE,GAAG,UAAU,IAAI,aAAa,CAAC;IACvC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IACrB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC,CAAC,sBAAsB;IACxG,gFAAgF;IAChF,wEAAwE;IACxE,IAAI,aAAa,IAAI,CAAC,CAAC,UAAU,IAAI,aAAa,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1G,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,oBAAoB,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,mBAAmB,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,UAA0B;IACpE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC5D,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3D,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,UAAU,CAAC,CAAC;AAC7D,CAAC;AAED;;6BAE6B;AAC7B,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,UAA0B;IACxE,OAAO,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC;AACjD,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,QAAkB;IAC7D,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAClH,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAkD;IAElD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,IAAI,GAA2C,EAAE,CAAC;IACxD,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAkB,EAClB,IAAY,EACZ,MAAyB,EACzB,EAAU,EACV,MAAc;IAEd,MAAM,MAAM,GAAG,SAAS,IAAI,IAAI,MAAM,GAAG,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS;QACpC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,mCAAmC;QACrE,IAAI,IAAI,KAAK,GAAG,EAAE,IAAI,MAAM,KAAK;YAAE,OAAO,IAAI,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,KAAK,CAAC;YAAE,SAAS;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/E,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/lib/specs.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AcStatusCounts } from './requirements.js';
|
|
2
|
-
import { extractSpecId, isDerivativeArtifact } from './spec-pure.js';
|
|
3
|
-
export { extractSpecId, isDerivativeArtifact };
|
|
2
|
+
import { extractSpecId, findDuplicateSpecIds, isDerivativeArtifact } from './spec-pure.js';
|
|
3
|
+
export { extractSpecId, isDerivativeArtifact, findDuplicateSpecIds };
|
|
4
4
|
/** True when a generated test source has ≥1 ACTIVE `test(` block (not `test.fixme`/
|
|
5
5
|
* `test.describe`) and is not an AC-less placeholder. Mirrors the active-test regex
|
|
6
6
|
* in scripts/specs/check-generated-tests.ts (flagWeakTest): the negative lookbehind
|
|
@@ -117,7 +117,7 @@ export type SpecFile = {
|
|
|
117
117
|
* derivation, shared with browser consumers via `/pure`. Keep this signature
|
|
118
118
|
* stable; route new signal logic through `deriveSignalsFromText`.
|
|
119
119
|
*/
|
|
120
|
-
export declare function deriveSignals(core: string, text: string, researchFileExists: boolean, reviewFileExists?: boolean, generatedTestExists?: boolean, complianceSignoffFileExists?: boolean, docshotImageExists?: boolean, activeGeneratedTests?: boolean, isCreateWizardSpec?: boolean, submitE2eProvesPersist?: boolean, linkedLocalTestExists?: boolean): SpecSignals;
|
|
120
|
+
export declare function deriveSignals(core: string, text: string, researchFileExists: boolean, reviewFileExists?: boolean, generatedTestExists?: boolean, complianceSignoffFileExists?: boolean, docshotImageExists?: boolean, activeGeneratedTests?: boolean, isCreateWizardSpec?: boolean, submitE2eProvesPersist?: boolean, linkedLocalTestExists?: boolean, uxSignoffFileExists?: boolean): SpecSignals;
|
|
121
121
|
export declare function listSpecs(repoRoot: string, coreFilter?: string, options?: {
|
|
122
122
|
includeArchived?: boolean;
|
|
123
123
|
}): SpecFile[];
|
package/dist/lib/specs.js
CHANGED
|
@@ -3,13 +3,15 @@ import { join } from 'node:path';
|
|
|
3
3
|
import { parseComplianceSignoff } from './compliance-signoff.js';
|
|
4
4
|
import { readFrontmatter, stripFrontmatter } from './frontmatter.js';
|
|
5
5
|
import { coresList, specsRoot } from './repo.js';
|
|
6
|
-
import { deriveSignalsFromText, extractSpecId,
|
|
6
|
+
import { deriveSignalsFromText, extractSpecId, findDuplicateSpecIds, isDedicatedArtifactFile, isDerivativeArtifact, resolveSpecFileId, } from './spec-pure.js';
|
|
7
7
|
import { getWizardCreateSpec } from './wizard-specs.js';
|
|
8
8
|
// Path classification lives in the fs-free spec-pure.ts (single source); re-export
|
|
9
9
|
// the public helpers so existing importers of specs.ts (reconcile, placement) keep
|
|
10
10
|
// working. `extractSpecId` is core-anchored — handles encoreos's 2-char cores AND
|
|
11
11
|
// builder's longer cores (RUNNER) with no over-match (epic #300, Wave-1 G3).
|
|
12
|
-
|
|
12
|
+
// `findDuplicateSpecIds` is the pure mode-b detector the `validate` command turns into
|
|
13
|
+
// a hard DUPLICATE_SPEC_ID error (issue #27).
|
|
14
|
+
export { extractSpecId, isDerivativeArtifact, findDuplicateSpecIds };
|
|
13
15
|
/** The marker the generator emits for an AC-less spec (mirrors
|
|
14
16
|
* scripts/uat/generate-playwright-from-spec.ts NO_AC_MARKER). Cannot import
|
|
15
17
|
* across the eos-spec/scripts boundary (rootDir: ./src), so the literal is duplicated. */
|
|
@@ -35,12 +37,13 @@ export const REGULATED_CORES = new Set(['cl', 'pm', 'hr', 'rh', 'gr']);
|
|
|
35
37
|
* derivation, shared with browser consumers via `/pure`. Keep this signature
|
|
36
38
|
* stable; route new signal logic through `deriveSignalsFromText`.
|
|
37
39
|
*/
|
|
38
|
-
export function deriveSignals(core, text, researchFileExists, reviewFileExists = false, generatedTestExists = false, complianceSignoffFileExists = false, docshotImageExists = false, activeGeneratedTests = false, isCreateWizardSpec = false, submitE2eProvesPersist = false, linkedLocalTestExists = false) {
|
|
40
|
+
export function deriveSignals(core, text, researchFileExists, reviewFileExists = false, generatedTestExists = false, complianceSignoffFileExists = false, docshotImageExists = false, activeGeneratedTests = false, isCreateWizardSpec = false, submitE2eProvesPersist = false, linkedLocalTestExists = false, uxSignoffFileExists = false) {
|
|
39
41
|
return deriveSignalsFromText(core, text, {
|
|
40
42
|
researchFileExists,
|
|
41
43
|
reviewFileExists,
|
|
42
44
|
generatedTestExists,
|
|
43
45
|
complianceSignoffFileExists,
|
|
46
|
+
uxSignoffFileExists,
|
|
44
47
|
docshotImageExists,
|
|
45
48
|
activeGeneratedTests,
|
|
46
49
|
isCreateWizardSpec,
|
|
@@ -76,27 +79,19 @@ function collectSpecsFromDirectory(repoRoot, core, dir, archived, out) {
|
|
|
76
79
|
for (const file of readdirSync(dir)) {
|
|
77
80
|
if (!file.endsWith('.md'))
|
|
78
81
|
continue;
|
|
79
|
-
|
|
82
|
+
// Cheap structural/dedicated-artifact rejections that no frontmatter id overrides
|
|
83
|
+
// (mirrors resolveSpecFileId's first guards) so we don't read the 200+ CONTEXT/
|
|
84
|
+
// CLARIFICATION sibling files in a corpus just to discard them. resolveSpecFileId
|
|
85
|
+
// remains the authority below.
|
|
86
|
+
if (file.startsWith('SPEC_INDEX') || file.startsWith('README'))
|
|
80
87
|
continue;
|
|
81
|
-
if (file
|
|
82
|
-
continue;
|
|
83
|
-
if (file.startsWith('README'))
|
|
84
|
-
continue;
|
|
85
|
-
if (file.includes('ENHANCEMENTS'))
|
|
86
|
-
continue;
|
|
87
|
-
if (file.includes('EXPANSION'))
|
|
88
|
-
continue;
|
|
89
|
-
if (isPhaseLifecycleFile(file))
|
|
90
|
-
continue;
|
|
91
|
-
if (isLifecycleArtifact(file))
|
|
92
|
-
continue;
|
|
93
|
-
const id = extractSpecId(file, core);
|
|
94
|
-
if (!id)
|
|
88
|
+
if (isDedicatedArtifactFile(file))
|
|
95
89
|
continue;
|
|
96
90
|
const path = join(dir, file);
|
|
97
91
|
let title;
|
|
98
92
|
let status;
|
|
99
93
|
let supersededBy;
|
|
94
|
+
let fmId;
|
|
100
95
|
let text = '';
|
|
101
96
|
try {
|
|
102
97
|
text = readFileSync(path, 'utf8');
|
|
@@ -106,6 +101,7 @@ function collectSpecsFromDirectory(repoRoot, core, dir, archived, out) {
|
|
|
106
101
|
// be mistaken for the H1 title.
|
|
107
102
|
const fm = readFrontmatter(text);
|
|
108
103
|
const body = stripFrontmatter(text);
|
|
104
|
+
fmId = typeof fm.id === 'string' ? fm.id : undefined;
|
|
109
105
|
const fmTitle = typeof fm.title === 'string' && fm.title.trim() !== '' ? fm.title.trim() : undefined;
|
|
110
106
|
const fmStatus = typeof fm.status === 'string' && fm.status.trim() !== '' ? fm.status.trim() : undefined;
|
|
111
107
|
title = fmTitle ?? TITLE_REGEX.exec(body)?.[1]?.trim();
|
|
@@ -114,14 +110,22 @@ function collectSpecsFromDirectory(repoRoot, core, dir, archived, out) {
|
|
|
114
110
|
typeof fm.superseded_by === 'string' && fm.superseded_by.trim() !== '' ? fm.superseded_by.trim() : undefined;
|
|
115
111
|
}
|
|
116
112
|
catch {
|
|
117
|
-
//
|
|
113
|
+
// unreadable — fall back to a filename-only classification (declared id undefined)
|
|
118
114
|
}
|
|
115
|
+
// Identity + primary-vs-derivative classification: the frontmatter `id:` is
|
|
116
|
+
// AUTHORITATIVE over the filename hint (#27), so a reserved-token slug
|
|
117
|
+
// (`…-concurrent-review-…`) is no longer silently dropped. Falls back to the
|
|
118
|
+
// filename for id-less specs (legacy behavior preserved).
|
|
119
|
+
const id = resolveSpecFileId(core, file, fmId);
|
|
120
|
+
if (!id)
|
|
121
|
+
continue;
|
|
119
122
|
const researchFileExists = existsSync(join(specsRoot(repoRoot), core, 'research', `${id}-RESEARCH.md`));
|
|
120
123
|
const reviewFileExists = hasReviewFile(repoRoot, core, id);
|
|
121
124
|
const generatedTestExists = generatedTestExistsFor(repoRoot, core, id);
|
|
122
125
|
const activeGeneratedTests = hasActiveGeneratedTestSource(generatedTestSourceFor(repoRoot, core, id));
|
|
123
126
|
const linkedLocalTestExists = linkedLocalTestFor(repoRoot, core, id);
|
|
124
127
|
const complianceSignoffFileExists = hasComplianceSignoffFile(repoRoot, core, id);
|
|
128
|
+
const uxSignoffFileExists = hasUxSignoffFile(repoRoot, core, id);
|
|
125
129
|
const docshotImageExists = docshotImageExistsFor(repoRoot, id);
|
|
126
130
|
const wizardCreate = getWizardCreateSpec(repoRoot, id);
|
|
127
131
|
const isCreateWizardSpec = wizardCreate?.kind === 'create';
|
|
@@ -138,7 +142,7 @@ function collectSpecsFromDirectory(repoRoot, core, dir, archived, out) {
|
|
|
138
142
|
hasPlan: hasArtifact(repoRoot, core, 'plans', id, 'PLAN'),
|
|
139
143
|
hasTasks: hasArtifact(repoRoot, core, 'tasks', id, 'TASKS'),
|
|
140
144
|
hasContext: existsSync(join(specsRoot(repoRoot), core, 'specs', `${id}-CONTEXT.md`)),
|
|
141
|
-
signals: deriveSignals(core, text, researchFileExists, reviewFileExists, generatedTestExists, complianceSignoffFileExists, docshotImageExists, activeGeneratedTests, isCreateWizardSpec, submitE2eProvesPersist, linkedLocalTestExists),
|
|
145
|
+
signals: deriveSignals(core, text, researchFileExists, reviewFileExists, generatedTestExists, complianceSignoffFileExists, docshotImageExists, activeGeneratedTests, isCreateWizardSpec, submitE2eProvesPersist, linkedLocalTestExists, uxSignoffFileExists),
|
|
142
146
|
archived,
|
|
143
147
|
});
|
|
144
148
|
}
|
|
@@ -210,6 +214,25 @@ function hasComplianceSignoffFile(repoRoot, core, id) {
|
|
|
210
214
|
}
|
|
211
215
|
return false;
|
|
212
216
|
}
|
|
217
|
+
/** UX-review sign-off lives in flat `specs/reviews/` or per-core `specs/{core}/reviews/`,
|
|
218
|
+
* named like `{ID}-UX-REVIEW.md` (also `{ID}-...-UX-REVIEW.md` for combined/variant ids).
|
|
219
|
+
* PERMISSIVE — mirrors `hasReviewFile`, not the frontmatter-parsing
|
|
220
|
+
* `hasComplianceSignoffFile`: a well-named file at the expected path with a
|
|
221
|
+
* boundary-matched id counts, no frontmatter parse. A UX review is a design pass,
|
|
222
|
+
* not a regulated determination, so it needs no structured sign-off schema. The
|
|
223
|
+
* `<!-- ux-reviewed: -->` body marker remains the primary signal (handled in
|
|
224
|
+
* `deriveSignalsFromText`); this function gates the FILE fallback only. */
|
|
225
|
+
function hasUxSignoffFile(repoRoot, core, id) {
|
|
226
|
+
const dirs = [join(specsRoot(repoRoot), 'reviews'), join(specsRoot(repoRoot), core, 'reviews')];
|
|
227
|
+
const idAtBoundary = new RegExp(`(^|-)${id}(-|\\.)`, 'i');
|
|
228
|
+
for (const dir of dirs) {
|
|
229
|
+
if (!existsSync(dir))
|
|
230
|
+
continue;
|
|
231
|
+
if (readdirSync(dir).some((file) => /UX-REVIEW/i.test(file) && idAtBoundary.test(file)))
|
|
232
|
+
return true;
|
|
233
|
+
}
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
213
236
|
/** Checks whether a generated Playwright test file exists on disk for this spec.
|
|
214
237
|
* Generated tests live at `tests/e2e/generated/<core>/<id-lowercase>-<slug>.generated.spec.ts`. */
|
|
215
238
|
function generatedTestExistsFor(repoRoot, core, id) {
|
package/dist/lib/specs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specs.js","sourceRoot":"","sources":["../../src/lib/specs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"specs.js","sourceRoot":"","sources":["../../src/lib/specs.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/version.d.ts
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* with package.json `version` by version.test.ts; consumed by the CLI `.version()`
|
|
3
3
|
* registration (index.ts) and the `profile --json` engine.version field. Bump this
|
|
4
4
|
* together with package.json on release. */
|
|
5
|
-
export declare const ENGINE_VERSION = "0.
|
|
5
|
+
export declare const ENGINE_VERSION = "0.9.0";
|
package/dist/lib/version.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* with package.json `version` by version.test.ts; consumed by the CLI `.version()`
|
|
3
3
|
* registration (index.ts) and the `profile --json` engine.version field. Bump this
|
|
4
4
|
* together with package.json on release. */
|
|
5
|
-
export const ENGINE_VERSION = '0.
|
|
5
|
+
export const ENGINE_VERSION = '0.9.0';
|
|
6
6
|
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export interface WalkthroughStep {
|
|
2
|
+
text: string;
|
|
3
|
+
tStartMs: number;
|
|
4
|
+
tEndMs: number;
|
|
5
|
+
shot?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface WalkthroughAc {
|
|
8
|
+
id: string;
|
|
9
|
+
test: string;
|
|
10
|
+
clip?: string;
|
|
11
|
+
durationMs?: number;
|
|
12
|
+
chapterStartMs?: number;
|
|
13
|
+
chapterTitle?: string;
|
|
14
|
+
stories: string[];
|
|
15
|
+
shots: string[];
|
|
16
|
+
steps: WalkthroughStep[];
|
|
17
|
+
status: string;
|
|
18
|
+
}
|
|
19
|
+
export interface WalkthroughVideo {
|
|
20
|
+
key?: string;
|
|
21
|
+
url?: string;
|
|
22
|
+
durationMs?: number;
|
|
23
|
+
srt?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface WalkthroughManifest {
|
|
26
|
+
specId: string;
|
|
27
|
+
specSha: string;
|
|
28
|
+
generatedFrom: string;
|
|
29
|
+
video: WalkthroughVideo;
|
|
30
|
+
acceptance_criteria: WalkthroughAc[];
|
|
31
|
+
user_stories: {
|
|
32
|
+
id: string;
|
|
33
|
+
covered_by: string[];
|
|
34
|
+
}[];
|
|
35
|
+
}
|
|
36
|
+
export interface AcFilmStatus {
|
|
37
|
+
id: string;
|
|
38
|
+
filmed: boolean;
|
|
39
|
+
reason: string;
|
|
40
|
+
}
|
|
41
|
+
export interface WalkthroughVerdict {
|
|
42
|
+
/** The manifest's specSha disagrees with the current spec → re-record. */
|
|
43
|
+
stale: boolean;
|
|
44
|
+
acTotal: number;
|
|
45
|
+
acFilmed: number;
|
|
46
|
+
unfilmed: AcFilmStatus[];
|
|
47
|
+
storiesTotal: number;
|
|
48
|
+
storiesCovered: number;
|
|
49
|
+
uncovered: string[];
|
|
50
|
+
/** Gate verdict: not stale AND every AC filmed AND every story covered. */
|
|
51
|
+
ok: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Stable manifest sha over the spec's AC + user-story ids. Order-insensitive
|
|
55
|
+
* (ids sorted) so reordering the spec doesn't spuriously invalidate a recording;
|
|
56
|
+
* adding/removing an AC or story does (→ STALE, re-record). 16 hex chars.
|
|
57
|
+
*/
|
|
58
|
+
export declare function computeSpecSha(acIds: string[], storyIds: string[]): string;
|
|
59
|
+
/**
|
|
60
|
+
* Is a single AC "filmed"? A non-empty `clip` AND a finite numeric `chapterStartMs`
|
|
61
|
+
* (the stitch-pass field). A pass-1-only manifest (clip present, chapterStartMs
|
|
62
|
+
* absent) is NOT filmed — `walkthrough:build` must run.
|
|
63
|
+
*/
|
|
64
|
+
export declare function acFilmStatus(ac: WalkthroughAc): AcFilmStatus;
|
|
65
|
+
/** The set of story ids covered by at least one FILMED AC that lists them. */
|
|
66
|
+
export declare function coveredStoryIds(manifest: WalkthroughManifest): Set<string>;
|
|
67
|
+
/** Extract canonical AC ids (frontmatter) and user-story ids (body) from spec text. */
|
|
68
|
+
export declare function specRequirementIds(specText: string): {
|
|
69
|
+
acIds: string[];
|
|
70
|
+
storyIds: string[];
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Whole-manifest verdict against the spec's current requirement ids. The spec is
|
|
74
|
+
* the source of truth: an AC the spec declares but the manifest never recorded is
|
|
75
|
+
* `unfilmed`. The specSha is recomputed from the spec's ids and compared to the
|
|
76
|
+
* manifest's — a mismatch means the spec changed since recording (STALE).
|
|
77
|
+
*/
|
|
78
|
+
export declare function checkWalkthroughCoverage(manifest: WalkthroughManifest, expected: {
|
|
79
|
+
acIds: string[];
|
|
80
|
+
storyIds: string[];
|
|
81
|
+
}): WalkthroughVerdict;
|