@sun-asterisk/sungen 3.2.25 → 3.2.27
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/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/audit.js +23 -4
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/next.js +2 -2
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/exporters/matrix/build.d.ts.map +1 -1
- package/dist/exporters/matrix/build.js +4 -1
- package/dist/exporters/matrix/build.js.map +1 -1
- package/dist/exporters/matrix/map-loader.d.ts.map +1 -1
- package/dist/exporters/matrix/map-loader.js +5 -0
- package/dist/exporters/matrix/map-loader.js.map +1 -1
- package/dist/exporters/matrix/types.d.ts +11 -0
- package/dist/exporters/matrix/types.d.ts.map +1 -1
- package/dist/exporters/matrix/types.js.map +1 -1
- package/dist/generators/test-generator/utils/selector-resolver.d.ts.map +1 -1
- package/dist/generators/test-generator/utils/selector-resolver.js +2 -1
- package/dist/generators/test-generator/utils/selector-resolver.js.map +1 -1
- package/dist/harness/audit.d.ts +7 -0
- package/dist/harness/audit.d.ts.map +1 -1
- package/dist/harness/audit.js +77 -9
- package/dist/harness/audit.js.map +1 -1
- package/dist/harness/flow-contract.d.ts +18 -15
- package/dist/harness/flow-contract.d.ts.map +1 -1
- package/dist/harness/flow-contract.js +116 -18
- package/dist/harness/flow-contract.js.map +1 -1
- package/dist/harness/next-step.d.ts +8 -2
- package/dist/harness/next-step.d.ts.map +1 -1
- package/dist/harness/next-step.js +2 -2
- package/dist/harness/next-step.js.map +1 -1
- package/dist/harness/quality-gates.d.ts +12 -1
- package/dist/harness/quality-gates.d.ts.map +1 -1
- package/dist/harness/quality-gates.js +62 -7
- package/dist/harness/quality-gates.js.map +1 -1
- package/dist/harness/sensors.d.ts.map +1 -1
- package/dist/harness/sensors.js +9 -1
- package/dist/harness/sensors.js.map +1 -1
- package/dist/harness/spec-branches.d.ts +88 -0
- package/dist/harness/spec-branches.d.ts.map +1 -0
- package/dist/harness/spec-branches.js +280 -0
- package/dist/harness/spec-branches.js.map +1 -0
- package/dist/harness/spec-coverage.d.ts +1 -1
- package/dist/harness/spec-coverage.js +4 -4
- package/dist/harness/spec-coverage.js.map +1 -1
- package/dist/harness/viewpoint-baseline.d.ts +9 -0
- package/dist/harness/viewpoint-baseline.d.ts.map +1 -1
- package/dist/harness/viewpoint-baseline.js +33 -3
- package/dist/harness/viewpoint-baseline.js.map +1 -1
- package/dist/harness/viewpoint-ledger.d.ts.map +1 -1
- package/dist/harness/viewpoint-ledger.js +63 -5
- package/dist/harness/viewpoint-ledger.js.map +1 -1
- package/dist/orchestrator/templates/ai-src/commands/add-flow.md +16 -0
- package/dist/orchestrator/templates/ai-src/commands/create-test.md +10 -1
- package/dist/orchestrator/templates/ai-src/commands/delivery.md +9 -2
- package/dist/orchestrator/templates/ai-src/skills/sungen-harness-audit/SKILL.md +17 -0
- package/dist/orchestrator/templates/ai-src/skills/sungen-tc-generation/SKILL.md +42 -2
- package/dist/utils/ref-key.d.ts +30 -0
- package/dist/utils/ref-key.d.ts.map +1 -0
- package/dist/utils/ref-key.js +48 -0
- package/dist/utils/ref-key.js.map +1 -0
- package/package.json +3 -3
- package/src/cli/commands/audit.ts +22 -3
- package/src/cli/commands/next.ts +2 -2
- package/src/exporters/matrix/build.ts +4 -1
- package/src/exporters/matrix/map-loader.ts +5 -0
- package/src/exporters/matrix/types.ts +11 -0
- package/src/generators/test-generator/utils/selector-resolver.ts +2 -1
- package/src/harness/audit.ts +81 -11
- package/src/harness/flow-contract.ts +128 -17
- package/src/harness/next-step.ts +10 -4
- package/src/harness/quality-gates.ts +64 -6
- package/src/harness/sensors.ts +9 -1
- package/src/harness/spec-branches.ts +346 -0
- package/src/harness/spec-coverage.ts +4 -4
- package/src/harness/viewpoint-baseline.ts +41 -6
- package/src/harness/viewpoint-ledger.ts +56 -4
- package/src/orchestrator/templates/ai-src/commands/add-flow.md +16 -0
- package/src/orchestrator/templates/ai-src/commands/create-test.md +10 -1
- package/src/orchestrator/templates/ai-src/commands/delivery.md +9 -2
- package/src/orchestrator/templates/ai-src/skills/sungen-harness-audit/SKILL.md +17 -0
- package/src/orchestrator/templates/ai-src/skills/sungen-tc-generation/SKILL.md +42 -2
- package/src/utils/ref-key.ts +43 -0
|
@@ -66,6 +66,7 @@ exports.statefulDepthFor = statefulDepthFor;
|
|
|
66
66
|
* declared collection (order, application, submission …)
|
|
67
67
|
*/
|
|
68
68
|
const fs = __importStar(require("fs"));
|
|
69
|
+
const ref_key_1 = require("../utils/ref-key");
|
|
69
70
|
const path = __importStar(require("path"));
|
|
70
71
|
const yaml_1 = require("yaml");
|
|
71
72
|
const read_text_1 = require("./read-text");
|
|
@@ -99,20 +100,46 @@ function loadFlowContract(unitDir) {
|
|
|
99
100
|
}
|
|
100
101
|
if (errors.length > 0)
|
|
101
102
|
return { contract: null, errors };
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
// `phases:` comes in two shapes, and the loader used to assume the first. A real project
|
|
104
|
+
// declared the RICHER one — each phase an object with `name`, `description` and an explicit
|
|
105
|
+
// `scenarios:` list — and `String(x).toUpperCase()` turned every one of them into
|
|
106
|
+
// `[OBJECT OBJECT]`. Nothing matched, phase coverage read 0%, the score fell to 6.9, and the
|
|
107
|
+
// report said only that the phases were uncovered. Garbage in place of an error is the worst
|
|
108
|
+
// of both: the author sees a broken number with no cause (#657).
|
|
109
|
+
//
|
|
110
|
+
// The object form is the better declaration — it names the scenarios that carry the phase
|
|
111
|
+
// instead of leaving the harness to infer them from ids — so it is read, not merely tolerated.
|
|
112
|
+
const phaseDetails = Array.isArray(raw.phases)
|
|
113
|
+
? raw.phases.map((x, i) => {
|
|
114
|
+
if (x !== null && typeof x === 'object') {
|
|
115
|
+
const o = x;
|
|
116
|
+
const name = o.name ?? o.id ?? o.phase;
|
|
117
|
+
if (name === undefined) {
|
|
118
|
+
errors.push(`phases[${i}] is an object with no \`name:\` (or \`id:\`) — a phase needs a label`);
|
|
119
|
+
return { id: `PHASE${i + 1}` };
|
|
120
|
+
}
|
|
121
|
+
return {
|
|
122
|
+
id: String(name).toUpperCase(),
|
|
123
|
+
description: o.description !== undefined ? String(o.description) : undefined,
|
|
124
|
+
scenarios: Array.isArray(o.scenarios) ? o.scenarios.map((v) => String(v)) : undefined,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
return { id: String(x).toUpperCase() };
|
|
128
|
+
})
|
|
129
|
+
: [];
|
|
130
|
+
const phases = phaseDetails.length > 0 ? phaseDetails.map((p) => p.id) : DEFAULT_PHASES;
|
|
105
131
|
return {
|
|
106
132
|
contract: {
|
|
107
133
|
goal: String(raw.goal),
|
|
108
134
|
actor: raw.actor !== undefined ? String(raw.actor) : undefined,
|
|
109
135
|
trigger: raw.trigger !== undefined ? String(raw.trigger) : undefined,
|
|
110
136
|
precondition: raw.precondition !== undefined ? String(raw.precondition) : undefined,
|
|
111
|
-
outcome: { screen: String(outcome.screen)
|
|
137
|
+
outcome: { screen: (0, ref_key_1.screenKey)(String(outcome.screen)), assertion: outcome.assertion !== undefined ? String(outcome.assertion) : undefined },
|
|
112
138
|
value: raw.value !== undefined ? String(raw.value) : undefined,
|
|
113
139
|
successGuarantee: raw.successGuarantee !== undefined ? String(raw.successGuarantee) : (raw.success_guarantee !== undefined ? String(raw.success_guarantee) : undefined),
|
|
114
140
|
minimalGuarantee: raw.minimalGuarantee !== undefined ? String(raw.minimalGuarantee) : (raw.minimal_guarantee !== undefined ? String(raw.minimal_guarantee) : undefined),
|
|
115
141
|
phases,
|
|
142
|
+
...(phaseDetails.some((p) => p.scenarios || p.description) ? { phaseDetails } : {}),
|
|
116
143
|
flows: Array.isArray(raw.flows)
|
|
117
144
|
? raw.flows
|
|
118
145
|
.filter((f) => f && typeof f === 'object' && f.id)
|
|
@@ -138,7 +165,7 @@ function loadFlowContract(unitDir) {
|
|
|
138
165
|
.map((e) => ({
|
|
139
166
|
name: String(e.name),
|
|
140
167
|
owner: e.owner !== undefined ? String(e.owner) : undefined,
|
|
141
|
-
screens: Array.isArray(e.screens) ? e.screens.map((x) => String(x)
|
|
168
|
+
screens: Array.isArray(e.screens) ? e.screens.map((x) => (0, ref_key_1.screenKey)(String(x))) : [],
|
|
142
169
|
}))
|
|
143
170
|
: undefined,
|
|
144
171
|
golden: raw.golden === true,
|
|
@@ -150,13 +177,11 @@ function loadFlowContract(unitDir) {
|
|
|
150
177
|
}
|
|
151
178
|
/** `[screen:element]` namespaces referenced by a scenario's steps, in step order. */
|
|
152
179
|
function namespacesInOrder(s) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
out.push(m[1]);
|
|
156
|
-
return out;
|
|
180
|
+
// Through the shared vocabulary — a private regex here once dropped every multi-word screen (#660).
|
|
181
|
+
return (0, ref_key_1.refNamespaces)(s.stepsText);
|
|
157
182
|
}
|
|
158
183
|
function touchesOutcome(s, outcomeScreen) {
|
|
159
|
-
return namespacesInOrder(s).includes(outcomeScreen);
|
|
184
|
+
return namespacesInOrder(s).includes((0, ref_key_1.screenKey)(outcomeScreen));
|
|
160
185
|
}
|
|
161
186
|
/**
|
|
162
187
|
* Does the scenario ARRIVE at the outcome, as opposed to merely naming it?
|
|
@@ -171,13 +196,24 @@ function reachesOutcome(s, outcomeScreen) {
|
|
|
171
196
|
const steps = (s.steps ?? []).map((st) => st.text.toLowerCase());
|
|
172
197
|
if (steps.length === 0)
|
|
173
198
|
return touchesOutcome(s, outcomeScreen);
|
|
174
|
-
|
|
199
|
+
const key = (0, ref_key_1.screenKey)(outcomeScreen);
|
|
200
|
+
return steps.some((t) => (0, ref_key_1.refNamespaces)(t, { bare: true }).includes(key)
|
|
175
201
|
&& !/\b(is hidden|is not visible|does not exist|is absent|no longer)\b/.test(t));
|
|
176
202
|
}
|
|
177
203
|
/** Phase of a scenario: its declared phase token (FL-HP-001 / VP-FLOW-ER-02 / MS-EH-005)
|
|
178
204
|
* when present, else vocabulary detection. */
|
|
179
|
-
function phaseOf(s, declared) {
|
|
205
|
+
function phaseOf(s, declared, details) {
|
|
180
206
|
const id = (s.vpId ?? '').toUpperCase();
|
|
207
|
+
// When a phase NAMES its scenarios, that list is the mapping — the author has already done
|
|
208
|
+
// the assignment, and inferring it from id segments instead would ignore them. A phase called
|
|
209
|
+
// "Cross-screen data" shares no token with `VP-LOGIC-002`; only the declaration connects them.
|
|
210
|
+
for (const ph of details ?? []) {
|
|
211
|
+
if (ph.scenarios?.some((ref) => {
|
|
212
|
+
const r = ref.trim().toUpperCase();
|
|
213
|
+
return r === id || (r.length > 0 && s.name.toUpperCase().includes(r));
|
|
214
|
+
}))
|
|
215
|
+
return ph.id;
|
|
216
|
+
}
|
|
181
217
|
// A DECLARED phase wins, matched on the id's segments with the branch number removed —
|
|
182
218
|
// so the use-case vocabulary (VP-EF01-01, VP-AF02-01: one id per Exception/Alternate
|
|
183
219
|
// Flow) resolves to its phase exactly like the flat HP/ER/EH form does.
|
|
@@ -261,14 +297,40 @@ function flowInventory(contract, scenarios) {
|
|
|
261
297
|
* Both inflate the flow count while adding no branch coverage, which is exactly what makes a
|
|
262
298
|
* suite look complete to the harness and thin to a reviewer.
|
|
263
299
|
*/
|
|
300
|
+
/** An interaction, whichever keyword the author put in front of it — `Then User click` exists. */
|
|
301
|
+
const INTERACTION_VERB = /\buser\s+(?:click|clicks|tap|taps|fill|fills|type|types|select|selects|press|presses|check|checks|uncheck|unchecks|upload|uploads|submit|submits|enter|enters|choose|chooses|toggle|toggles|drag|drags|swipe|swipes|scroll|scrolls|hover|hovers|clear|clears)\b/i;
|
|
264
302
|
function misfiledPhases(contract, scenarios, basicPhase) {
|
|
265
303
|
const out = [];
|
|
266
304
|
const outcome = contract.outcome.screen;
|
|
305
|
+
// A branch point is a STRUCTURAL fact before it is a vocabulary one. The check used to demand a
|
|
306
|
+
// branch WORD (back / cancel / retry…), so a precondition guard — `Given` already authenticated,
|
|
307
|
+
// or no originating session → `Then` redirected — had no way to satisfy it: such a scenario has
|
|
308
|
+
// no interaction step at all, by construction, and its branch is in the `Given`, not in a verb.
|
|
309
|
+
// Reported under AF and EF alike on a real project (#660). Two structural signals now count:
|
|
310
|
+
// no `When` at all (a guard by construction), or a `Given` the basic flow never establishes
|
|
311
|
+
// (a precondition branch). Vocabulary remains as the fallback for scenarios without step data.
|
|
312
|
+
const basicGivens = new Set(scenarios
|
|
313
|
+
.filter((sc) => phaseToken(flowIdOf(sc, contract.phases) ?? '') === phaseToken(basicPhase))
|
|
314
|
+
.flatMap((sc) => (sc.steps ?? []).filter((st) => st.bucket === 'given').map((st) => st.text.toLowerCase().trim())));
|
|
315
|
+
const branchesStructurally = (sc) => {
|
|
316
|
+
const steps = sc.steps ?? [];
|
|
317
|
+
if (steps.length === 0)
|
|
318
|
+
return false;
|
|
319
|
+
// No interaction AND the journey does not complete: a guard by construction (the redirect or
|
|
320
|
+
// the blocked screen IS the branch). No interaction but the outcome IS reached is a different
|
|
321
|
+
// animal — a postcondition on the basic path — and stays subject to the checks below.
|
|
322
|
+
const interacts = steps.some((st) => st.bucket === 'when' || INTERACTION_VERB.test(st.text));
|
|
323
|
+
if (!interacts && !reachesOutcome(sc, outcome))
|
|
324
|
+
return true;
|
|
325
|
+
return steps.some((st) => st.bucket === 'given' && !basicGivens.has(st.text.toLowerCase().trim()));
|
|
326
|
+
};
|
|
267
327
|
for (const s of scenarios) {
|
|
268
328
|
const id = flowIdOf(s, contract.phases);
|
|
269
329
|
if (!id || phaseToken(id) === phaseToken(basicPhase))
|
|
270
330
|
continue;
|
|
271
331
|
const ph = phaseToken(id);
|
|
332
|
+
if (branchesStructurally(s))
|
|
333
|
+
continue;
|
|
272
334
|
if (ph === 'EF' && reachesOutcome(s, outcome)) {
|
|
273
335
|
// An error-then-recover flow legitimately ends at the outcome — it is the recovery that
|
|
274
336
|
// is being proven, and a guard flow is blocked rather than "failed". Only a scenario with
|
|
@@ -293,7 +355,7 @@ function flowQuality(unitDir, scenarios) {
|
|
|
293
355
|
const neutral = {
|
|
294
356
|
hasContract: false, errors, outcomeProven: false, outcomeManualOnly: false,
|
|
295
357
|
offGoal: [], offGoalRatio: 0, offGoalCategories: [],
|
|
296
|
-
phases: [], phaseRatio: 1, handoffs: { total: 0, asserted: 0, ratio: 1 }, sit: [],
|
|
358
|
+
phases: [], phaseRatio: 1, danglingPhaseRefs: [], handoffs: { total: 0, asserted: 0, ratio: 1 }, sit: [],
|
|
297
359
|
};
|
|
298
360
|
if (!contract)
|
|
299
361
|
return neutral;
|
|
@@ -306,10 +368,19 @@ function flowQuality(unitDir, scenarios) {
|
|
|
306
368
|
// guard/error phase is evidence of a SECOND business goal in this flow.
|
|
307
369
|
const declaredPhases = contract.phases;
|
|
308
370
|
const basic = declaredPhases.filter((p) => p !== 'UI')[0];
|
|
371
|
+
// A flow the inventory declares WITH ITS OWN outcome is measured against that outcome, never
|
|
372
|
+
// against the use case's. A spec that keeps an entry variant deliberately light ("prove the
|
|
373
|
+
// entry reaches the action bar; do not repeat the full assertion") could only satisfy the old
|
|
374
|
+
// check by widening the scenario — which the human reviewer then called over-testing. The gate
|
|
375
|
+
// and the reviewer were optimising different things; the declaration is where they agree (#660).
|
|
376
|
+
const ownOutcome = new Set((contract.flows ?? []).filter((f) => f.outcome).map((f) => f.id));
|
|
309
377
|
const offGoalScenarios = scenarios.filter((s) => {
|
|
310
378
|
if (touchesOutcome(s, outcomeScreen))
|
|
311
379
|
return false;
|
|
312
|
-
const
|
|
380
|
+
const fid = flowIdOf(s, declaredPhases);
|
|
381
|
+
if (fid && ownOutcome.has(fid))
|
|
382
|
+
return false;
|
|
383
|
+
const ph = phaseOf(s, declaredPhases, contract.phaseDetails);
|
|
313
384
|
// Any NON-basic declared phase (guards, error recovery, alternate branches) legitimately
|
|
314
385
|
// stops before the outcome — that is what a branch IS. Only an unclassified scenario that
|
|
315
386
|
// never reaches the outcome is evidence of a second business goal.
|
|
@@ -323,7 +394,7 @@ function flowQuality(unitDir, scenarios) {
|
|
|
323
394
|
// phase that must reach the declared outcome, whether the project spells it HP or BF.
|
|
324
395
|
const basicPhase = demanded[0];
|
|
325
396
|
const phases = demanded.map((phase) => {
|
|
326
|
-
const inPhase = scenarios.filter((s) => phaseOf(s, declaredPhases) === phase);
|
|
397
|
+
const inPhase = scenarios.filter((s) => phaseOf(s, declaredPhases, contract.phaseDetails) === phase);
|
|
327
398
|
// The basic flow must additionally prove the outcome — a data assertion elsewhere is not the goal.
|
|
328
399
|
const relevant = phase === basicPhase ? inPhase.filter((s) => touchesOutcome(s, outcomeScreen)) : inPhase;
|
|
329
400
|
return {
|
|
@@ -335,6 +406,16 @@ function flowQuality(unitDir, scenarios) {
|
|
|
335
406
|
const phaseRatio = demanded.length
|
|
336
407
|
? phases.filter((p) => p.covered && p.automated).length / demanded.length
|
|
337
408
|
: 1;
|
|
409
|
+
// A phase that names a scenario which does not exist is a declaration pointing at nothing:
|
|
410
|
+
// the phase reads covered in the contract and is empty in the suite. Same class as a dangling
|
|
411
|
+
// traceability ref — the map, not the territory.
|
|
412
|
+
const known = new Set(scenarios.flatMap((s) => [s.vpId?.toUpperCase(), s.name.toUpperCase()].filter(Boolean)));
|
|
413
|
+
const danglingPhaseRefs = (contract.phaseDetails ?? []).flatMap((ph) => (ph.scenarios ?? [])
|
|
414
|
+
.filter((ref) => {
|
|
415
|
+
const r = ref.trim().toUpperCase();
|
|
416
|
+
return !known.has(r) && !scenarios.some((s) => s.name.toUpperCase().includes(r));
|
|
417
|
+
})
|
|
418
|
+
.map((ref) => ({ phase: ph.id, ref })));
|
|
338
419
|
// --- Handoff integrity: no blind tail after a cross-namespace transition. ---
|
|
339
420
|
// A transition counts as asserted when ANY assertion follows it — in the entered
|
|
340
421
|
// namespace or later. Demanding the assertion in the entered namespace itself
|
|
@@ -350,7 +431,7 @@ function flowQuality(unitDir, scenarios) {
|
|
|
350
431
|
const steps = s.steps ?? [];
|
|
351
432
|
let current = null;
|
|
352
433
|
for (let i = 0; i < steps.length; i++) {
|
|
353
|
-
const ns = (steps[i].text
|
|
434
|
+
const ns = (0, ref_key_1.refNamespaces)(steps[i].text)[0] ?? null;
|
|
354
435
|
if (!ns)
|
|
355
436
|
continue;
|
|
356
437
|
if (current !== null && ns !== current) {
|
|
@@ -381,12 +462,29 @@ function flowQuality(unitDir, scenarios) {
|
|
|
381
462
|
outcomeProven, outcomeManualOnly,
|
|
382
463
|
offGoal: offGoalScenarios.map((s) => s.name.slice(0, 80)),
|
|
383
464
|
offGoalRatio, offGoalCategories,
|
|
384
|
-
phases, phaseRatio, handoffs, sit,
|
|
465
|
+
phases, phaseRatio, danglingPhaseRefs, handoffs, sit,
|
|
385
466
|
};
|
|
386
467
|
}
|
|
387
468
|
const CONTINUITY_CLAIM = /\b(buffer(?:s|ed|ing)?|persist(?:s|ed|ence)?|round[- ]?trips?|restor(?:e|es|ed|ation)|carr(?:y|ied|ies)|retain(?:s|ed)?|session[- ]?storage|local[- ]?storage)\b/i;
|
|
388
469
|
const SIDE_PERSIST = /\b(restor(?:e|es|ed)|persist(?:s|ed)?|unchanged|same value|round[- ]?trips?|re-?hydrat\w*|still (?:shows|holds)|carr(?:y|ied|ies)|retain(?:s|ed)?|prefilled|pre-?filled)\b/i;
|
|
389
|
-
|
|
470
|
+
// A LOSS CONSTRUCTION, not a word list. `reset` and `expire` are domain NOUNS — every claim in a
|
|
471
|
+
// password-*reset* flow contains "reset", and every token flow contains "expire", so a bare-word
|
|
472
|
+
// list marked all of them as promising that state is lost and then demanded the missing half.
|
|
473
|
+
// A field report hit exactly that: the two sides of its mechanism were both written (in two
|
|
474
|
+
// different scenarios, which this already handles) and CONTINUITY-ONE-SIDED fired anyway (#630).
|
|
475
|
+
// The state has to be the thing that goes: `is cleared`, `loses the values`, `no longer holds`.
|
|
476
|
+
const SIDE_LOSS = new RegExp([
|
|
477
|
+
'\\b(?:lose|loses|losing|lost)\\b',
|
|
478
|
+
'\\b(?:is|are|gets?|got|becomes?|will be|was|were)\\s+(?:lost|cleared|emptied|discarded|wiped|reset|blanked)\\b',
|
|
479
|
+
'\\b(?:clears|clearing|discards|discarding|wipes|wiping)\\b',
|
|
480
|
+
'\\b(?:does|do|did)\\s+not\\s+(?:survive|persist|remain|carry)\\b',
|
|
481
|
+
'\\bnot\\s+(?:restored|retained|preserved|kept)\\b',
|
|
482
|
+
'\\bno longer\\b',
|
|
483
|
+
'\\bcomes? up (?:empty|blank)\\b',
|
|
484
|
+
// The triggers that CAUSE the loss still count when the claim names them as such.
|
|
485
|
+
'\\b(?:on|after) (?:a )?(?:reload|refresh)\\b',
|
|
486
|
+
'\\breload(?:ing|s|ed)? (?:the )?(?:page|screen|form|tab)\\b',
|
|
487
|
+
].join('|'), 'i');
|
|
390
488
|
/**
|
|
391
489
|
* Continuity claims in the viewpoint file whose feature proves only ONE side.
|
|
392
490
|
* `claims` are the viewpoint's atomic item texts; `scenarioTexts` are per-scenario
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-contract.js","sourceRoot":"","sources":["../../src/harness/flow-contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flow-contract.js","sourceRoot":"","sources":["../../src/harness/flow-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,14 @@ export interface NextStep {
|
|
|
3
3
|
command: string;
|
|
4
4
|
/** Why it is next — stated so an agent can weigh it, not just obey it. */
|
|
5
5
|
because: string;
|
|
6
|
-
/**
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* `blocked` steps are not runnable yet; they name what to resolve first. `decide` steps are a
|
|
8
|
+
* HUMAN'S to run: an agent presents them and stops. Accepting the viewpoint baseline is the
|
|
9
|
+
* case — offered as a plain `do`, an agent that had just rewritten `test-viewpoint.md` from the
|
|
10
|
+
* spec ran it, and `atomicLedger`/`traceability` read 100% against a checklist it wrote itself
|
|
11
|
+
* in the same session (#660).
|
|
12
|
+
*/
|
|
13
|
+
kind: 'do' | 'blocked' | 'optional' | 'decide';
|
|
8
14
|
}
|
|
9
15
|
export interface UnitState {
|
|
10
16
|
unit: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-step.d.ts","sourceRoot":"","sources":["../../src/harness/next-step.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,QAAQ;IACvB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB
|
|
1
|
+
{"version":3,"file":"next-step.d.ts","sourceRoot":"","sources":["../../src/harness/next-step.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,QAAQ;IACvB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;CAChD;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,uBAAuB,EAAE,OAAO,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC;IACF;;;;;OAKG;IACH,WAAW,CAAC,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAqBD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,GAC1E,SAAS,CAuEX;AAUD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,QAAQ,EAAE,CA0GpD"}
|
|
@@ -225,9 +225,9 @@ function deriveSteps(s) {
|
|
|
225
225
|
}
|
|
226
226
|
if (s.audit.viewpointBaselineStatus === 'changed') {
|
|
227
227
|
out.push({
|
|
228
|
-
kind: '
|
|
228
|
+
kind: 'decide',
|
|
229
229
|
command: `sungen audit --screen ${s.unit} --accept-viewpoint`,
|
|
230
|
-
because: 'test-viewpoint.md changed since the accepted baseline, so the ledger and traceability axes are not evidence until
|
|
230
|
+
because: 'test-viewpoint.md changed since the accepted baseline, so the ledger and traceability axes are not evidence until a QA confirms the new declaration. A decision, not a step: an agent presents it and does not run it — accepting the yardstick you just wrote makes both axes read 100% by construction',
|
|
231
231
|
});
|
|
232
232
|
}
|
|
233
233
|
const repair = s.audit.findings
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-step.js","sourceRoot":"","sources":["../../src/harness/next-step.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"next-step.js","sourceRoot":"","sources":["../../src/harness/next-step.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,17 @@ export interface DownstreamResult {
|
|
|
5
5
|
route: string;
|
|
6
6
|
slug: string;
|
|
7
7
|
}[];
|
|
8
|
+
/**
|
|
9
|
+
* Declared navigation targets NO scenario mentions at all. These used to be skipped as "out of
|
|
10
|
+
* this screen's scope", which is right for a screen and wrong for a FLOW: a field report found a
|
|
11
|
+
* dashboard whose spec declared four click-through destinations and whose suite tested only the
|
|
12
|
+
* render conditions of the regions containing them — the navigation itself had no case, and
|
|
13
|
+
* nothing said so (#630).
|
|
14
|
+
*/
|
|
15
|
+
absent: {
|
|
16
|
+
route: string;
|
|
17
|
+
slug: string;
|
|
18
|
+
}[];
|
|
8
19
|
}
|
|
9
20
|
/**
|
|
10
21
|
* H5 — a @parallel stateful (cart-mutating) flow with NO per-scenario isolation is flaky: scenarios
|
|
@@ -26,7 +37,7 @@ export declare function isolationRisk(featureText: string, stateful: boolean, co
|
|
|
26
37
|
*/
|
|
27
38
|
export declare function serialCascadeRisk(featureText: string, scenarioCount: number): number;
|
|
28
39
|
export declare function sameScreenName(slug: string, label: string): boolean;
|
|
29
|
-
export declare function downstreamScope(specText: string, scenarios: ScenarioInfo[]): DownstreamResult;
|
|
40
|
+
export declare function downstreamScope(specText: string, scenarios: ScenarioInfo[], featureText?: string): DownstreamResult;
|
|
30
41
|
export interface ManualOracleResult {
|
|
31
42
|
manualTotal: number;
|
|
32
43
|
insufficient: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-gates.d.ts","sourceRoot":"","sources":["../../src/harness/quality-gates.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAA2B,MAAM,SAAS,CAAC;AAMhE,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"quality-gates.d.ts","sourceRoot":"","sources":["../../src/harness/quality-gates.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAA2B,MAAM,SAAS,CAAC;AAMhE,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChD;;;;;;OAMG;IACH,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3C;AAkCD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,SAAS,GAAG,OAAO,CAclG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAMpF;AAkBD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAOnE;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,WAAW,SAAK,GAC5D,gBAAgB,CAwDlB;AAID,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAgCpE;AAMD,+GAA+G;AAC/G,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAStE;AAID;kFACkF;AAClF,wBAAgB,YAAY,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBxJ;AAID,MAAM,WAAW,eAAe;IAAG,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE;AAErF,kGAAkG;AAClG,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,eAAe,CAyBpG;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1C"}
|
|
@@ -56,20 +56,41 @@ const read_text_1 = require("./read-text");
|
|
|
56
56
|
function downstreamRoutes(specText) {
|
|
57
57
|
const ownRoute = (specText.match(/\*\*Route\*\*\s*:\s*`?(\/[^\s`]+)/) || [])[1] || '';
|
|
58
58
|
const routes = new Set();
|
|
59
|
+
const negated = new Set();
|
|
59
60
|
for (const line of specText.split('\n')) {
|
|
60
61
|
if (!/success|navigat|to \(|→/i.test(line))
|
|
61
62
|
continue;
|
|
62
63
|
// A real route's leading `/` sits at a path boundary (start, whitespace, backtick, quote, paren),
|
|
63
64
|
// NOT after a letter/digit. The lookbehind rejects prose slashes like "text/icon" or
|
|
64
65
|
// "category/brand" that aren't routes at all (H2 — they produced /icon, /button, /brand).
|
|
66
|
+
let negRun = false; // inside a "…, not `/a`/`/b`" list
|
|
67
|
+
let prevEnd = 0;
|
|
65
68
|
for (const m of line.matchAll(/(?<![A-Za-z0-9])(\/[a-z][a-z0-9/_-]+)`?/gi)) {
|
|
66
69
|
const r = m[1];
|
|
70
|
+
// "the destination is `/a/b` (singular, not `/a/bs` as this spec assumed)" declares ONE
|
|
71
|
+
// target and CORRECTS another. A spec that says where a route is NOT is doing the reader a
|
|
72
|
+
// service; extracting the disowned one and demanding a test for it punishes the correction.
|
|
73
|
+
// The negation carries across a LIST — "not `/x`/`/y`" disowns both, not just the first.
|
|
74
|
+
const before = line.slice(Math.max(0, m.index - 24), m.index);
|
|
75
|
+
const gap = line.slice(prevEnd, m.index);
|
|
76
|
+
prevEnd = m.index + m[0].length;
|
|
77
|
+
if (/\b(?:not|instead of|rather than|no longer|never|không)\s*[`'"(\[]*\s*$/i.test(before))
|
|
78
|
+
negRun = true;
|
|
79
|
+
else if (negRun && !/^[`'"\s)\]]*[/,]?\s*(?:or|hoặc)?\s*[`'"(\[]*$/i.test(gap))
|
|
80
|
+
negRun = false;
|
|
81
|
+
if (negRun) {
|
|
82
|
+
negated.add(r);
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
67
85
|
if (r !== ownRoute && r.split('/').length > ownRoute.split('/').length - 0)
|
|
68
86
|
routes.add(r);
|
|
69
87
|
}
|
|
70
88
|
}
|
|
89
|
+
for (const n of negated)
|
|
90
|
+
if (!routes.has(n))
|
|
91
|
+
routes.delete(n);
|
|
71
92
|
// keep only routes that extend beyond the own route (a distinct downstream surface)
|
|
72
|
-
return [...routes].filter((r) => r !== ownRoute && (!ownRoute || r.startsWith(ownRoute + '/') || r.split('/').length >= 3));
|
|
93
|
+
return [...routes].filter((r) => !negated.has(r) && r !== ownRoute && (!ownRoute || r.startsWith(ownRoute + '/') || r.split('/').length >= 3));
|
|
73
94
|
}
|
|
74
95
|
/**
|
|
75
96
|
* H5 — a @parallel stateful (cart-mutating) flow with NO per-scenario isolation is flaky: scenarios
|
|
@@ -140,9 +161,25 @@ function sameScreenName(slug, label) {
|
|
|
140
161
|
i++;
|
|
141
162
|
return i >= 5 && i / Math.min(a.length, b.length) >= 0.6;
|
|
142
163
|
}
|
|
143
|
-
function downstreamScope(specText, scenarios) {
|
|
144
|
-
const
|
|
164
|
+
function downstreamScope(specText, scenarios, featureText = '') {
|
|
165
|
+
const all = downstreamRoutes(specText);
|
|
166
|
+
// A one-segment route that other declared routes are BUILT ON is a prefix, not a destination:
|
|
167
|
+
// a spec noting that "every route is served under a `/xx/` locale prefix (e.g. `/xx/register`)"
|
|
168
|
+
// was read as declaring `/xx/` a navigation target, and no suite will ever "navigate to" it.
|
|
169
|
+
// Structural, so it catches any mount point — locale, tenant, api version — without a list.
|
|
170
|
+
const mounts = all.filter((r) => {
|
|
171
|
+
const segs = r.split('/').filter(Boolean);
|
|
172
|
+
return segs.length === 1 && all.some((o) => o !== r && o.startsWith(r.endsWith('/') ? r : `${r}/`));
|
|
173
|
+
});
|
|
174
|
+
// The same destination written twice — once bare, once under the mount the spec documents —
|
|
175
|
+
// is one navigation target, and reporting both doubles the work it asks for.
|
|
176
|
+
const routes = all.filter((r) => !mounts.includes(r)
|
|
177
|
+
&& !mounts.some((m) => {
|
|
178
|
+
const bare = r.slice(m.replace(/\/$/, '').length);
|
|
179
|
+
return bare.startsWith('/') && all.includes(bare);
|
|
180
|
+
}));
|
|
145
181
|
const underCovered = [];
|
|
182
|
+
const absent = [];
|
|
146
183
|
for (const route of routes) {
|
|
147
184
|
const slug = (route.split('/').filter(Boolean).pop() || route).toLowerCase();
|
|
148
185
|
// Referenced when the route/slug appears literally, OR when any `[Ref]` in the suite
|
|
@@ -150,17 +187,35 @@ function downstreamScope(specText, scenarios) {
|
|
|
150
187
|
const labelsOf = (s) => [...s.haystack.matchAll(/\[([^\]]+)\]/g)].map((m) => m[1].split(':')[0]);
|
|
151
188
|
const refs = scenarios.filter((s) => s.haystack.includes(slug) || s.haystack.includes(route.toLowerCase()) ||
|
|
152
189
|
labelsOf(s).some((l) => sameScreenName(slug, l)));
|
|
153
|
-
if (!refs.length)
|
|
154
|
-
|
|
190
|
+
if (!refs.length) {
|
|
191
|
+
// A scenario's haystack is its name + steps, so a route documented in a @manual scenario's
|
|
192
|
+
// tester procedure — a COMMENT — looks like nothing at all. That route is accounted for: a
|
|
193
|
+
// person has been told to check it. Reporting "no scenario mentions it, add one" over a
|
|
194
|
+
// deliberate manual deferral is the false positive this whole round is about, so absence is
|
|
195
|
+
// measured against the feature TEXT, comments included (#651 follow-up).
|
|
196
|
+
if (!featureText.toLowerCase().includes(route.toLowerCase()))
|
|
197
|
+
absent.push({ route, slug });
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
155
200
|
// Substantively covered only if some scenario OPERATES on the downstream — i.e. it
|
|
156
201
|
// starts there (`is on [<downstream>]`) — not merely navigates to it as a terminal
|
|
157
202
|
// `see [<downstream>] page` assertion. The latter just proves the transition.
|
|
203
|
+
// Two shapes prove the screen's CONTENT was checked, not just its route:
|
|
204
|
+
// - the suite OPENS ON it (`is on [Registration] page`), and
|
|
205
|
+
// - it asserts an element NAMESPACED to it (`see [Registration:Submit] button`) — the
|
|
206
|
+
// namespace names the screen, so the assertion is about that screen by construction.
|
|
207
|
+
// Only the first counted, so a scenario that navigated there and then asserted the screen's
|
|
208
|
+
// own elements was still reported "covered only by a page-nav assertion" (#630). The field
|
|
209
|
+
// report's hypothesis — that the parser reads one line after the nav and stops — is still not
|
|
210
|
+
// what happens: there is no line window, and both shapes are matched over the whole scenario.
|
|
158
211
|
const contentCovered = refs.some((s) => [...s.haystack.matchAll(/\bis on \[([^\]]+)\]/g)]
|
|
159
|
-
.some((m) => sameScreenName(slug, m[1].split(':')[0]))
|
|
212
|
+
.some((m) => sameScreenName(slug, m[1].split(':')[0]))
|
|
213
|
+
|| [...s.haystack.matchAll(/\bsee \[([^\]:]+):[^\]]+\]/g)]
|
|
214
|
+
.some((m) => sameScreenName(slug, m[1])));
|
|
160
215
|
if (!contentCovered)
|
|
161
216
|
underCovered.push({ route, slug });
|
|
162
217
|
}
|
|
163
|
-
return { downstreamRoutes: routes, underCovered };
|
|
218
|
+
return { downstreamRoutes: routes, underCovered, absent };
|
|
164
219
|
}
|
|
165
220
|
function blocks(featureText) {
|
|
166
221
|
return featureText.split(/\n\s*\n/).filter((b) => /\bScenario:/.test(b));
|