@sun-asterisk/sungen 3.2.23 → 3.2.24-beta.2
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 +40 -8
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/dashboard/templates/index.html +1 -1
- package/dist/exporters/csv-exporter.d.ts.map +1 -1
- package/dist/exporters/csv-exporter.js +3 -1
- package/dist/exporters/csv-exporter.js.map +1 -1
- package/dist/exporters/feature-parser.d.ts +7 -0
- package/dist/exporters/feature-parser.d.ts.map +1 -1
- package/dist/exporters/feature-parser.js +27 -0
- package/dist/exporters/feature-parser.js.map +1 -1
- package/dist/exporters/xlsx-report-builder.d.ts.map +1 -1
- package/dist/exporters/xlsx-report-builder.js +3 -1
- package/dist/exporters/xlsx-report-builder.js.map +1 -1
- package/dist/harness/audit.d.ts +22 -1
- package/dist/harness/audit.d.ts.map +1 -1
- package/dist/harness/audit.js +122 -13
- package/dist/harness/audit.js.map +1 -1
- package/dist/harness/flow-contract.d.ts +104 -0
- package/dist/harness/flow-contract.d.ts.map +1 -1
- package/dist/harness/flow-contract.js +199 -12
- package/dist/harness/flow-contract.js.map +1 -1
- package/dist/harness/parse.d.ts.map +1 -1
- package/dist/harness/parse.js +22 -3
- package/dist/harness/parse.js.map +1 -1
- package/dist/harness/quality-gates.d.ts +2 -1
- package/dist/harness/quality-gates.d.ts.map +1 -1
- package/dist/harness/quality-gates.js +47 -5
- package/dist/harness/quality-gates.js.map +1 -1
- package/dist/harness/sensors.d.ts.map +1 -1
- package/dist/harness/sensors.js +48 -5
- package/dist/harness/sensors.js.map +1 -1
- package/dist/harness/spec-coverage.d.ts +20 -0
- package/dist/harness/spec-coverage.d.ts.map +1 -1
- package/dist/harness/spec-coverage.js +35 -0
- package/dist/harness/spec-coverage.js.map +1 -1
- package/dist/harness/viewpoint-ledger.d.ts +4 -0
- package/dist/harness/viewpoint-ledger.d.ts.map +1 -1
- package/dist/harness/viewpoint-ledger.js +59 -1
- package/dist/harness/viewpoint-ledger.js.map +1 -1
- package/dist/orchestrator/templates/ai-src/commands/create-test.md +28 -0
- package/dist/orchestrator/templates/ai-src/skills/sungen-tc-generation/SKILL.md +98 -5
- package/dist/orchestrator/templates/ai-src/skills/sungen-viewpoint/group-e-identity.md +1 -1
- package/dist/orchestrator/test-data-guide.d.ts.map +1 -1
- package/dist/orchestrator/test-data-guide.js +8 -0
- package/dist/orchestrator/test-data-guide.js.map +1 -1
- package/package.json +3 -3
- package/src/cli/commands/audit.ts +37 -8
- package/src/dashboard/templates/index.html +1 -1
- package/src/exporters/csv-exporter.ts +3 -1
- package/src/exporters/feature-parser.ts +22 -0
- package/src/exporters/xlsx-report-builder.ts +3 -1
- package/src/harness/audit.ts +131 -17
- package/src/harness/flow-contract.ts +258 -12
- package/src/harness/parse.ts +22 -3
- package/src/harness/quality-gates.ts +48 -5
- package/src/harness/sensors.ts +47 -4
- package/src/harness/spec-coverage.ts +38 -0
- package/src/harness/viewpoint-ledger.ts +58 -1
- package/src/orchestrator/templates/ai-src/commands/create-test.md +28 -0
- package/src/orchestrator/templates/ai-src/skills/sungen-tc-generation/SKILL.md +98 -5
- package/src/orchestrator/templates/ai-src/skills/sungen-viewpoint/group-e-identity.md +1 -1
- package/src/orchestrator/test-data-guide.ts +8 -0
package/dist/harness/audit.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ViewpointBaseline } from './viewpoint-baseline';
|
|
2
|
-
import { FlowQualityResult } from './flow-contract';
|
|
2
|
+
import { FlowQualityResult, InventoryResult } from './flow-contract';
|
|
3
3
|
import { GateResult, DepthResult, BalanceResult, DuplicateResult, TraceResult, ClaimProofResult, TaxonomyResult, AutomatableManualResult, FlowDepthResult, OracleStrengthResult } from './sensors';
|
|
4
4
|
import { IntentProfile } from './intent';
|
|
5
5
|
import { Provenance } from './provenance';
|
|
@@ -25,6 +25,8 @@ export interface AuditReport {
|
|
|
25
25
|
ledger: LedgerResult;
|
|
26
26
|
viewpointBaseline: ViewpointBaseline;
|
|
27
27
|
flowQuality?: FlowQualityResult;
|
|
28
|
+
/** #595 — coverage per DECLARED FLOW; absent when the contract declares no `flows:`. */
|
|
29
|
+
flowInventory?: InventoryResult;
|
|
28
30
|
calibration: {
|
|
29
31
|
axes: Record<string, number>;
|
|
30
32
|
weakest: {
|
|
@@ -45,6 +47,20 @@ export interface AuditReport {
|
|
|
45
47
|
businessDepth: number;
|
|
46
48
|
balance: number;
|
|
47
49
|
traceability: number;
|
|
50
|
+
/**
|
|
51
|
+
* Every axis considered, in weight order, with the renormalised weight it actually
|
|
52
|
+
* carried. The five legacy fields above are a fixed subset that omitted `flowCoverage`,
|
|
53
|
+
* `specFR` and `atomicLedger` entirely — so a flow's real coverage axis was never printed
|
|
54
|
+
* while `balance`, which carried no weight, was.
|
|
55
|
+
*/
|
|
56
|
+
axes: Array<{
|
|
57
|
+
key: string;
|
|
58
|
+
value: number;
|
|
59
|
+
weight: number;
|
|
60
|
+
applicable: boolean;
|
|
61
|
+
critical: boolean;
|
|
62
|
+
byDesign?: boolean;
|
|
63
|
+
}>;
|
|
48
64
|
formula: string;
|
|
49
65
|
};
|
|
50
66
|
gateStatus: 'PASS' | 'FAIL';
|
|
@@ -53,6 +69,11 @@ export interface AuditReport {
|
|
|
53
69
|
provenance: Provenance;
|
|
54
70
|
spec: SpecCoverageResult;
|
|
55
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Every unit name this project holds (screens + flows + api areas). Used to answer "does the
|
|
74
|
+
* project actually contain the spec this one says its requirements come from?".
|
|
75
|
+
*/
|
|
76
|
+
export declare function projectUnitDirs(projectRoot: string): string[];
|
|
56
77
|
/** The catalog-resolution id for a unit dir (relative to qa/): screen · flows/<flow> · api/<area> · api/flows/<flow>. */
|
|
57
78
|
export declare function catalogIdFromScreenDir(screenDir: string): string;
|
|
58
79
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/harness/audit.ts"],"names":[],"mappings":"AAWA,OAAO,EAA0B,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/harness/audit.ts"],"names":[],"mappings":"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"}
|
package/dist/harness/audit.js
CHANGED
|
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.projectUnitDirs = projectUnitDirs;
|
|
36
37
|
exports.catalogIdFromScreenDir = catalogIdFromScreenDir;
|
|
37
38
|
exports.scoringCapabilityFor = scoringCapabilityFor;
|
|
38
39
|
exports.seniorBandedOverall = seniorBandedOverall;
|
|
@@ -64,6 +65,24 @@ const registry_1 = require("../capabilities/registry");
|
|
|
64
65
|
const discover_1 = require("../capabilities/discover");
|
|
65
66
|
const context_router_1 = require("../capabilities/context-router");
|
|
66
67
|
const read_text_1 = require("./read-text");
|
|
68
|
+
/**
|
|
69
|
+
* Every unit name this project holds (screens + flows + api areas). Used to answer "does the
|
|
70
|
+
* project actually contain the spec this one says its requirements come from?".
|
|
71
|
+
*/
|
|
72
|
+
function projectUnitDirs(projectRoot) {
|
|
73
|
+
const out = [];
|
|
74
|
+
for (const kind of ['screens', 'flows', 'api']) {
|
|
75
|
+
const dir = path.join(projectRoot, 'qa', kind);
|
|
76
|
+
try {
|
|
77
|
+
for (const e of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
78
|
+
if (e.isDirectory())
|
|
79
|
+
out.push(e.name);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch { /* the project may not use this unit kind */ }
|
|
83
|
+
}
|
|
84
|
+
return out;
|
|
85
|
+
}
|
|
67
86
|
/** The catalog-resolution id for a unit dir (relative to qa/): screen · flows/<flow> · api/<area> · api/flows/<flow>. */
|
|
68
87
|
function catalogIdFromScreenDir(screenDir) {
|
|
69
88
|
const parts = screenDir.split(path.sep);
|
|
@@ -200,6 +219,12 @@ function runAudit(screenDir, screenName) {
|
|
|
200
219
|
// businessDepth headroom: it can reach 1.0 only when all three are exercised, so a present-but-
|
|
201
220
|
// shallow flow can't claim a perfect score (floor 0.5 — assertion depth still dominates).
|
|
202
221
|
const isUiFlow = isUiFlowUnit;
|
|
222
|
+
// #595 — coverage per DECLARED FLOW, when the contract declares its inventory. Phase
|
|
223
|
+
// coverage answers "is there at least one exception scenario?"; a reviewer counting the use
|
|
224
|
+
// case's flows asks "are all eleven of them accounted for?". Those gave 100% and ~40% on the
|
|
225
|
+
// same suite, and the reviewer was measuring the right thing.
|
|
226
|
+
const inventory = flowQ.contract ? (0, flow_contract_1.flowInventory)(flowQ.contract, scenarios) : null;
|
|
227
|
+
const misfiled = flowQ.contract ? (0, flow_contract_1.misfiledPhases)(flowQ.contract, scenarios, flowQ.contract.phases[0] ?? 'BF') : [];
|
|
203
228
|
let flowDepth = isUiFlow ? (0, sensors_1.flowRegressionDepth)(scenarios) : { stateful: false, countProof: false, teardown: false, multiSource: false, ratio: 1, missing: [] };
|
|
204
229
|
// Contract-declared statefulness generalizes the cart-hardcoded vocabulary: a flow that
|
|
205
230
|
// mutates ANY named collection (order, application, submission …) gets the same three
|
|
@@ -254,16 +279,24 @@ function runAudit(screenDir, screenName) {
|
|
|
254
279
|
// so a flow can finally EARN the coverage axis instead of always losing it to
|
|
255
280
|
// PAGE-TYPE-UNDETERMINED (or worse, being judged against a form checklist).
|
|
256
281
|
const flowScored = flowQ.hasContract;
|
|
282
|
+
// `byDesign` separates "this unit supplied no evidence" from "this axis does not apply to
|
|
283
|
+
// this KIND of unit". Only the first is a reason to cap the score: a contract flow can never
|
|
284
|
+
// supply balance evidence, so capping for it held every flow at 8.9 forever and printed
|
|
285
|
+
// "weakest: flowCoverage 100% — fix it to lift the number", which is not fixable advice (#595).
|
|
257
286
|
const axisDefs = [
|
|
258
287
|
flowScored
|
|
259
|
-
? { key: 'flowCoverage', value: flowQ.phaseRatio, weight: 0.22, applicable: true, critical: true }
|
|
288
|
+
? { key: 'flowCoverage', value: inventory ? Math.min(inventory.ratio, flowQ.phaseRatio) : flowQ.phaseRatio, weight: 0.22, applicable: true, critical: true }
|
|
260
289
|
: { key: 'coverage', value: coverage, weight: 0.22, applicable: !!gate.pageType && gate.themesTotal > 0, critical: true },
|
|
261
290
|
{ key: 'specFR', value: specRatio, weight: 0.15, applicable: spec.hasSpec && spec.frTotal > 0, critical: true },
|
|
262
291
|
{ key: 'atomicLedger', value: ledger.ratio, weight: 0.13, applicable: ledger.hasViewpoint && ledger.total > 0 && !viewpointMoved, critical: true },
|
|
263
292
|
{ key: 'businessDepth', value: businessDepth, weight: 0.20, applicable: true, critical: true },
|
|
264
293
|
{ key: 'claimProof', value: claim.ratio, weight: 0.15, applicable: claim.withClaims > 0, critical: true },
|
|
265
294
|
{ key: 'traceability', value: traceScore, weight: 0.09, applicable: viewpoints.length > 0 && !viewpointMoved, critical: false },
|
|
266
|
-
|
|
295
|
+
// A use-case decomposition is EF-heavy by construction (1 basic flow, N alternates, N
|
|
296
|
+
// exceptions) — that is the shape of a well-decomposed use case, not neglected business
|
|
297
|
+
// core. `flowCoverage` already measures whether the journey's phases are covered, so
|
|
298
|
+
// balance carries no independent evidence for a contract flow (#592).
|
|
299
|
+
{ key: 'balance', value: balanceScore, weight: 0.06, applicable: !flowScored, critical: false, byDesign: flowScored },
|
|
267
300
|
];
|
|
268
301
|
const scored = axisDefs.filter((a) => a.applicable);
|
|
269
302
|
const weightSum = scored.reduce((t, a) => t + a.weight, 0) || 1;
|
|
@@ -283,7 +316,23 @@ function runAudit(screenDir, screenName) {
|
|
|
283
316
|
cap = CAP_SEVERE;
|
|
284
317
|
else if (weakestCritical && weakestCritical.value < 0.7)
|
|
285
318
|
cap = CAP_WEAK;
|
|
286
|
-
const missingEvidence = axisDefs.filter((a) => !a.applicable).map((a) => a.key);
|
|
319
|
+
const missingEvidence = axisDefs.filter((a) => !a.applicable && !a.byDesign).map((a) => a.key);
|
|
320
|
+
// Phase coverage is WEAK evidence of flow coverage: a phase counts as covered as soon as
|
|
321
|
+
// one scenario carries it, so `flowCoverage 100%` on a fifteen-flow use case meant only
|
|
322
|
+
// "each of BF/AF/EF appears at least once". Until the contract declares its inventory, the
|
|
323
|
+
// axis cannot be certified complete — so it is partial evidence and holds the top mark down,
|
|
324
|
+
// instead of printing 100% next to a finding that says we cannot actually tell (#595).
|
|
325
|
+
if (flowScored && !inventory)
|
|
326
|
+
missingEvidence.push('flowCoverage (phase-only — no `flows:` inventory)');
|
|
327
|
+
// A requirement list hand-restated from spec documents the project does not hold makes
|
|
328
|
+
// `specFR 100%` a certificate over an unverifiable universe: the clause that was never
|
|
329
|
+
// copied across can never be reported missing. That is partial evidence, so it holds the
|
|
330
|
+
// top mark down rather than reading as complete FR coverage (#595).
|
|
331
|
+
const restated = (0, spec_coverage_1.restatedRequirementSources)((0, quality_gates_1.readText)(specPath) ?? '', projectUnitDirs((0, intent_1.projectRootFromScreenDir)(screenDir)));
|
|
332
|
+
if (restated.sources.length > 0 && restated.missing.length > 0) {
|
|
333
|
+
missingEvidence.push(`specFR (restated from absent specs: ${restated.missing.join(', ')})`);
|
|
334
|
+
}
|
|
335
|
+
const notApplicableByDesign = axisDefs.filter((a) => !a.applicable && a.byDesign).map((a) => a.key);
|
|
287
336
|
if (missingEvidence.length > 0)
|
|
288
337
|
cap = Math.min(cap, CAP_PARTIAL_EVIDENCE);
|
|
289
338
|
const rawOverall = Math.min(weighted * 10, cap);
|
|
@@ -292,7 +341,7 @@ function runAudit(screenDir, screenName) {
|
|
|
292
341
|
// axes — a stateful flow with FULL regression depth (count + teardown + multi-source), no weak
|
|
293
342
|
// facet oracle, and no parallel-cart isolation risk. Otherwise the score is held just below 9, so
|
|
294
343
|
// "≥9" means senior-grade, not merely "themes covered". Neutral for screens/api (no signals).
|
|
295
|
-
const isoRisk = (0, quality_gates_1.isolationRisk)(featureText, flowDepth.stateful);
|
|
344
|
+
const isoRisk = (0, quality_gates_1.isolationRisk)(featureText, flowDepth.stateful, flowQ.contract?.stateful);
|
|
296
345
|
const overall = seniorBandedOverall(rawOverall, { flowStateful: flowDepth.stateful, flowRatio: flowDepth.ratio, oracleWeak: oracle.weak.length, isolationRisk: isoRisk });
|
|
297
346
|
const findings = [];
|
|
298
347
|
if (capped) {
|
|
@@ -334,6 +383,43 @@ function runAudit(screenDir, screenName) {
|
|
|
334
383
|
for (const x of flowQ.sit.filter((v) => v.mockOnly).slice(0, 4)) {
|
|
335
384
|
findings.push(`SIT-MOCK-ONLY: "${x.name}" touches the external system "${x.external}" but is verified only against mocks — Pass (Mocked) says nothing about the real vendor behaviour. Re-verify on the real dependency before calling it Done (the delivery's External Dependency Tracking table holds the checklist).`);
|
|
336
385
|
}
|
|
386
|
+
// #592 W1 — an Exception Flow asserts against the Minimal Guarantee; without the
|
|
387
|
+
// declaration there is no anchor and its assertions are guesswork.
|
|
388
|
+
if (!flowQ.contract.minimalGuarantee) {
|
|
389
|
+
findings.push('FLOW-GUARANTEE-MISSING: the contract declares no `minimalGuarantee:` — the postcondition that must hold in EVERY flow, including failure ("no second account for the same email", "no verification mail on a rejected submit"). Exception/guard scenarios have nothing to assert against without it; add it (and `successGuarantee:` for the goal-reached side).');
|
|
390
|
+
}
|
|
391
|
+
// #595 — a viewpoint item naming a browser-level gesture, answered with an in-app control.
|
|
392
|
+
for (const g of (0, viewpoint_ledger_1.browserGestureSubstitutions)(viewpointPath, scenarios).slice(0, 4)) {
|
|
393
|
+
findings.push(`VIEWPOINT-GESTURE-SUBSTITUTED: the viewpoint asks for "${g.gesture}" ("${g.item.slice(0, 80)}…") but the suite exercises an in-app control instead. They are different mechanisms — an app button runs the screen's own re-hydrate logic, browser history does not, and a defect that only shows on history navigation lives in exactly that gap. The step vocabulary has no reload/back step (#593), so defer it with \`@manual\` naming the gesture rather than substituting silently.`);
|
|
394
|
+
}
|
|
395
|
+
// #595 — a flow whose requirement list is a hand restatement of the screen specs it
|
|
396
|
+
// traverses. `specFR` read 100% over two restated FRs while the guard clause the flow most
|
|
397
|
+
// needed had never entered the system. Name the source documents so the completeness of the
|
|
398
|
+
// restatement becomes a question someone can answer.
|
|
399
|
+
if (restated.sources.length > 0 && restated.missing.length > 0) {
|
|
400
|
+
findings.push(`SPEC-RESTATED-UNVERIFIED: this flow's requirements are restated from ${restated.sources.length} source spec(s) the project does not hold [${restated.missing.join(', ')}]. specFR ${spec.frCovered}/${spec.frTotal} therefore certifies coverage of the RESTATEMENT, not of those documents — whatever was not copied across is invisible here, and a guard clause that never entered the flow spec can never be reported missing. Add the screen units (\`sungen add --screen …\`) so their FRs are checkable, or record in the flow spec which of their requirements are deliberately out of this flow's scope.`);
|
|
401
|
+
}
|
|
402
|
+
// #595 — the flow inventory. Without it, "the phases are covered" was allowed to stand in
|
|
403
|
+
// for "the use case's flows are covered", and a reviewer who counted flows read the same
|
|
404
|
+
// suite as roughly half done.
|
|
405
|
+
if (!inventory) {
|
|
406
|
+
findings.push('FLOW-INVENTORY-MISSING: the contract declares `phases:` but no `flows:` inventory, so coverage can only be measured per PHASE — and a phase counts as covered as soon as ONE scenario carries it. Declare each flow of the use case (`id`, `branchFrom`, `outcome`, `status`) so a flow nobody wrote is a named gap instead of a silent absence. Enumerate them with the step x risk matrix in the `sungen-tc-generation` skill.');
|
|
407
|
+
}
|
|
408
|
+
else {
|
|
409
|
+
for (const f of inventory.uncovered) {
|
|
410
|
+
findings.push(`FLOW-UNCOVERED: declared flow ${f.id}${f.branchFrom ? ` (branches from ${f.branchFrom})` : ''} has status \`covered\` but no scenario carries its id — write it, or change its status to \`deferred\` / \`pending-clarification\` / \`out-of-scope\` WITH a reason. Silence is the one option the inventory removes.`);
|
|
411
|
+
}
|
|
412
|
+
for (const u of inventory.undeclared.slice(0, 6)) {
|
|
413
|
+
findings.push(`FLOW-UNDECLARED: "${u.scenario}" claims flow id ${u.id}, which the contract's inventory does not declare — a phase id invented for one scenario inflates the flow count without adding branch coverage. Either declare ${u.id} as a real flow (branch point + own outcome), or fold the scenario into the flow it actually belongs to.`);
|
|
414
|
+
}
|
|
415
|
+
for (const f of inventory.accounted.filter((x) => !x.reason)) {
|
|
416
|
+
findings.push(`FLOW-STATUS-UNREASONED: declared flow ${f.id} is \`${f.status}\` with no \`reason:\` — a deferral nobody can audit is the same as a missing flow. Say what blocks it (a capability, an open question for the BA, another suite that owns it).`);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
// #595 — a phase id used for something that is not that kind of flow.
|
|
420
|
+
for (const m of misfiled.slice(0, 6)) {
|
|
421
|
+
findings.push(`FLOW-PHASE-MISFILED: "${m.scenario}" carries flow id ${m.id} but ${m.why}. Re-file it under the flow it belongs to; the phase count is not the flow count.`);
|
|
422
|
+
}
|
|
337
423
|
// #580 P9 — a release-critical flow must carry its Final-Inspection selection.
|
|
338
424
|
if (flowQ.contract.golden && !/@golden\b/i.test(featureText)) {
|
|
339
425
|
findings.push(`GOLDEN-MISSING: the contract declares \`golden: true\` (release-critical) but no scenario is tagged @golden — Final Inspection (\`sungen inspect\`) will have nothing to run for this flow. Tag the happy-path scenario(s) that prove the outcome.`);
|
|
@@ -342,6 +428,13 @@ function runAudit(screenDir, screenName) {
|
|
|
342
428
|
findings.push(`FLOW-HANDOFF-SHALLOW: only ${flowQ.handoffs.asserted}/${flowQ.handoffs.total} cross-screen transitions are followed by an assertion in the new screen — carried state (the thing a flow exists to verify) is unproven at the handoff. businessDepth is capped until asserted.`);
|
|
343
429
|
}
|
|
344
430
|
}
|
|
431
|
+
// #592 W5 — a continuity mechanism proved on one side only.
|
|
432
|
+
if (isUiFlow) {
|
|
433
|
+
const scenarioTexts = scenarios.map((s) => `${s.name} ${s.stepsText}`);
|
|
434
|
+
for (const g of (0, flow_contract_1.continuityGaps)((0, viewpoint_ledger_1.parseViewpointItems)(viewpointPath).map((i) => i.text), scenarioTexts).slice(0, 4)) {
|
|
435
|
+
findings.push(`CONTINUITY-ONE-SIDED: the viewpoint claims "${g.claim}" but the suite proves only the ${g.missing === 'loss' ? 'SURVIVING' : 'LOSING'} side — a persistence mechanism has two sides and testing one is testing half the mechanism. Add the ${g.missing === 'loss' ? 'loss' : 'persistence'} scenario (e.g. ${g.missing === 'loss' ? 'reload / clear storage between the steps and assert the values are gone' : 'return to the step and assert the values are restored'}).`);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
345
438
|
if (isUiFlow) {
|
|
346
439
|
// Flows defer more than screens, so an UNCODED @manual is costlier here: the capability
|
|
347
440
|
// planner cannot route it to the driver that would automate it (password-reset: 11/22
|
|
@@ -376,7 +469,8 @@ function runAudit(screenDir, screenName) {
|
|
|
376
469
|
// isolation, else count/quantity asserts go flaky. Warn (advisory) when no mitigation is present
|
|
377
470
|
// (@cleanup:cart / @isolate / a "Given … empty cart" background / fresh context).
|
|
378
471
|
if (isoRisk) {
|
|
379
|
-
|
|
472
|
+
const what = flowQ.contract?.stateful ?? 'cart';
|
|
473
|
+
findings.push(`ISOLATION-RISK: this @parallel flow mutates ${what} but has no per-scenario isolation → count/quantity/state asserts can go flaky when scenarios share it. Add \`@cleanup:${what}\` (or \`@isolate\`, a fresh context, or \`{{$timestamp}}\` data) so each scenario starts clean.`);
|
|
380
474
|
}
|
|
381
475
|
// #414 — serial-cascade masking: an @serial suite of independent (re-navigating) scenarios hides
|
|
382
476
|
// failures, because Playwright's describe.serial SKIPS everything after the first red. Isolation is
|
|
@@ -386,12 +480,19 @@ function runAudit(screenDir, screenName) {
|
|
|
386
480
|
findings.push(`SERIAL-CASCADE-RISK: this \`@serial\` suite has ${cascadeN} INDEPENDENT scenarios (each re-navigates via Background) that don't need a shared-page sequence. \`describe.serial\` SKIPS every test after the first failure → one early red MASKS the rest as never-run. **Drop \`@serial\`** — the default per-scenario isolation runs every scenario and isolates failures. Keep \`@serial\` only for a genuinely stateful ordered sequence (where scenario N depends on N-1's state).`);
|
|
387
481
|
}
|
|
388
482
|
if (flowDepth.stateful && flowDepth.missing.length) {
|
|
483
|
+
// The advice names the collection the CONTRACT declared. It used to say "the cart" whatever
|
|
484
|
+
// the flow mutated, so a registration journey was told to "add to the cart from EVERY
|
|
485
|
+
// source" — advice its author could not act on (#592).
|
|
486
|
+
const what = flowQ.contract?.stateful ?? 'cart';
|
|
389
487
|
const how = {
|
|
390
|
-
'count-proof':
|
|
391
|
-
'teardown':
|
|
392
|
-
'multi-source':
|
|
488
|
+
'count-proof': `assert the ${what} ROW COUNT / item QUANTITY (e.g. \`... table with {{two_rows}}\`, \`Quantity column with {{qty}}\`), not just the row presence`,
|
|
489
|
+
'teardown': `prove the INVERSE operation — the ${what} returning to its empty/absent state (a remove or clear for a collection; a lapse, expiry, reset or loss for a state machine)`,
|
|
490
|
+
'multi-source': `exercise EVERY source that feeds the ${what} (the main list AND the recommended/related rail), not just one`,
|
|
393
491
|
};
|
|
394
|
-
|
|
492
|
+
// How many dimensions this flow can HAVE — the ratio is renormalised over the applicable
|
|
493
|
+
// ones, so "2/3" would misreport a flow that only has two to begin with.
|
|
494
|
+
const dims = flowDepth.ratio < 1 ? Math.round(flowDepth.missing.length / (1 - flowDepth.ratio)) : 3;
|
|
495
|
+
findings.push(`FLOW-DEPTH: this stateful flow (${what}) exercises ${dims - flowDepth.missing.length}/${dims} applicable regression dimensions — missing [${flowDepth.missing.join(', ')}] → ${flowDepth.missing.map((m) => how[m]).join('; ')}. (businessDepth is capped until covered.)`);
|
|
395
496
|
}
|
|
396
497
|
for (const w of oracle.weak) {
|
|
397
498
|
findings.push(`ORACLE-WEAK: "${w.name}" — ${w.hint}`);
|
|
@@ -406,7 +507,7 @@ function runAudit(screenDir, screenName) {
|
|
|
406
507
|
if (balance.unclassifiedRatio > 0.4) {
|
|
407
508
|
findings.push(`TAXONOMY-UNCLASSIFIED: ${balance.note} → align the VP-<CATEGORY> codes with the catalog (or extend the bucket keywords) so coverage-balance is meaningful.`);
|
|
408
509
|
}
|
|
409
|
-
else if (balance.imbalanced) {
|
|
510
|
+
else if (balance.imbalanced && !flowScored) {
|
|
410
511
|
findings.push(`BALANCE: ${balance.note} Stop expanding secondary viewpoints until business-core gaps are filled.`);
|
|
411
512
|
}
|
|
412
513
|
if (trace.mappedRatio < 0.5) {
|
|
@@ -432,7 +533,9 @@ function runAudit(screenDir, screenName) {
|
|
|
432
533
|
// "nothing found" quietly excluding the specFR axis while the evidence sits in the file.
|
|
433
534
|
if (spec.hasSpec && spec.frTotal === 0 && /@spec:/i.test(featureText)) {
|
|
434
535
|
const cited = [...new Set([...featureText.matchAll(/@spec:([A-Za-z0-9.-]+)/g)].map((m) => m[1].toUpperCase()))];
|
|
435
|
-
findings.push(
|
|
536
|
+
findings.push(isUiFlow
|
|
537
|
+
? `SPEC-IDS-UNPARSED: the feature cites ${cited.length} requirement id(s) via @spec: (${cited.slice(0, 5).join(', ')}${cited.length > 5 ? ', …' : ''}) that this FLOW's requirements/spec.md does not declare. That is normal when the ids belong to the SCREEN specs the flow traverses — but it means nothing here can verify them: the specFR axis and the MUST-coverage gate stay off for this unit. To gate the flow on them, restate each as \`<ID>: <clause>\` in the flow's own spec (a one-line restatement per id is enough).`
|
|
538
|
+
: `SPEC-IDS-UNPARSED: the feature cites ${cited.length} requirement id(s) via @spec: (${cited.slice(0, 5).join(', ')}${cited.length > 5 ? ', …' : ''}) but requirements/spec.md yielded ZERO parseable requirement declarations — the spec likely declares ids in a scheme the parser cannot read. Declare each requirement on its own line as \`<ID>: <clause>\` (bullet/bold/backtick all fine; the id must end in a number) so the MUST-coverage gate and the specFR axis can run.`);
|
|
436
539
|
}
|
|
437
540
|
if (taxonomyMismatch) {
|
|
438
541
|
findings.push(`VP-TAXONOMY-MISMATCH: only ${(trace.mappedRatio * 100).toFixed(0)}% of scenarios use the viewpoint IDs declared in test-viewpoint.md — scenarios invented a generic VP-<CAT> scheme. Re-tag to the project's viewpoint IDs so the coverage matrix is accurate.`);
|
|
@@ -551,14 +654,20 @@ function runAudit(screenDir, screenName) {
|
|
|
551
654
|
scenarioCount: scenarios.length,
|
|
552
655
|
gate, depth, claim, taxonomy, balance, duplicates, trace, spec,
|
|
553
656
|
taxonomyMismatch, downstream, manualOracle: manualOracleResult, automatableManual: autoManual, flowDepth, oracle, ledger, viewpointBaseline, calibration,
|
|
554
|
-
...(isUiFlow ? { flowQuality: flowQ } : {}),
|
|
657
|
+
...(isUiFlow ? { flowQuality: flowQ, flowInventory: inventory ?? undefined } : {}),
|
|
555
658
|
score: {
|
|
556
659
|
overall: Math.round(overall * 10) / 10,
|
|
557
660
|
coverage: Math.round(coverage * 100) / 100,
|
|
558
661
|
businessDepth: Math.round(businessDepth * 100) / 100,
|
|
559
662
|
balance: Math.round(balanceScore * 100) / 100,
|
|
560
663
|
traceability: Math.round(traceScore * 100) / 100,
|
|
561
|
-
|
|
664
|
+
// Built from the axes ACTUALLY scored, with the renormalised weights — a hardcoded
|
|
665
|
+
// string drifted from the real calculation and printed axes (`balance` on a contract
|
|
666
|
+
// flow) that carried no weight at all.
|
|
667
|
+
axes: axisDefs.map((a) => ({ ...a, weight: a.applicable ? a.weight / weightSum : 0 })),
|
|
668
|
+
formula: `overall = (${scored.map((a) => `${(a.weight / weightSum).toFixed(2)}*${a.key}`).join(' + ')}) * 10`
|
|
669
|
+
+ (missingEvidence.length ? ` — n/a (no evidence): ${missingEvidence.join(', ')}` : '')
|
|
670
|
+
+ (notApplicableByDesign.length ? ` — n/a for this unit kind: ${notApplicableByDesign.join(', ')}` : ''),
|
|
562
671
|
},
|
|
563
672
|
gateStatus,
|
|
564
673
|
findings,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/harness/audit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/harness/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import { ScenarioInfo } from './parse';
|
|
2
|
+
/** One declared flow of the use case: a branch point, its own steps, its own outcome. */
|
|
3
|
+
export interface FlowDecl {
|
|
4
|
+
/** The flow id as the use-case document numbers it — `BF`, `AF01`, `EF03`. */
|
|
5
|
+
id: string;
|
|
6
|
+
/** Where it leaves the basic flow (`BF step 2`). Omitted for the basic flow itself. */
|
|
7
|
+
branchFrom?: string;
|
|
8
|
+
/** Its OWN outcome/postcondition — what is different about where this flow ends. */
|
|
9
|
+
outcome?: string;
|
|
10
|
+
status: 'covered' | 'deferred' | 'pending-clarification' | 'out-of-scope';
|
|
11
|
+
/** Why, for anything other than `covered` — a deferral with no reason is a silent gap. */
|
|
12
|
+
reason?: string;
|
|
13
|
+
}
|
|
2
14
|
export interface FlowContract {
|
|
3
15
|
goal: string;
|
|
4
16
|
actor?: string;
|
|
@@ -9,9 +21,27 @@ export interface FlowContract {
|
|
|
9
21
|
assertion?: string;
|
|
10
22
|
};
|
|
11
23
|
value?: string;
|
|
24
|
+
/** Postcondition when the goal IS reached — the business value, not "API 200". */
|
|
25
|
+
successGuarantee?: string;
|
|
26
|
+
/** Postcondition that holds in EVERY flow, INCLUDING failure — the question
|
|
27
|
+
* "if this fails, what must still be true?" that Exception Flows assert against.
|
|
28
|
+
* Without it an EF has no anchor and its assertions are guesswork (#592). */
|
|
29
|
+
minimalGuarantee?: string;
|
|
12
30
|
/** Journey phases this flow declares. Default [HP, ER, EH]; UI is allowed but
|
|
13
31
|
* never demanded (presentation is the balance axis's business, not coverage's). */
|
|
14
32
|
phases: string[];
|
|
33
|
+
/**
|
|
34
|
+
* The use case's declared flow inventory — the answer to "how many flows does this use
|
|
35
|
+
* case HAVE?". `phases:` alone cannot answer it: a phase is present as soon as ONE
|
|
36
|
+
* scenario carries it, so a fifteen-flow use case with three scenarios reported full
|
|
37
|
+
* phase coverage. With an inventory, coverage is measured per DECLARED FLOW and a flow
|
|
38
|
+
* nobody wrote is a named gap instead of a silent absence (#595).
|
|
39
|
+
*
|
|
40
|
+
* `status` is what keeps a gap honest: every flow ends up `covered`, `deferred`,
|
|
41
|
+
* `pending-clarification` (an open question for the BA — the behaviour is not agreed yet,
|
|
42
|
+
* so no scenario can be right) or `out-of-scope`. Absent → `covered` is expected.
|
|
43
|
+
*/
|
|
44
|
+
flows?: FlowDecl[];
|
|
15
45
|
/** The mutated collection (cart, order, application …) — enables regression dims. */
|
|
16
46
|
stateful?: string;
|
|
17
47
|
budgets?: Record<string, number>;
|
|
@@ -68,11 +98,85 @@ export declare function loadFlowContract(unitDir: string): {
|
|
|
68
98
|
/** Phase of a scenario: its declared phase token (FL-HP-001 / VP-FLOW-ER-02 / MS-EH-005)
|
|
69
99
|
* when present, else vocabulary detection. */
|
|
70
100
|
export declare function phaseOf(s: ScenarioInfo, declared: string[]): string | null;
|
|
101
|
+
/** The flow id a scenario claims: the `AF02`/`EF11`/`BF` segment of its viewpoint id. */
|
|
102
|
+
export declare function flowIdOf(s: ScenarioInfo, declaredPhases: string[]): string | null;
|
|
103
|
+
export interface InventoryResult {
|
|
104
|
+
/** Declared → the scenarios claiming it. A declared flow with none is a NAMED gap. */
|
|
105
|
+
covered: Array<{
|
|
106
|
+
id: string;
|
|
107
|
+
scenarios: string[];
|
|
108
|
+
}>;
|
|
109
|
+
/** Declared `covered` but nothing written — the silent-absence case, now named. */
|
|
110
|
+
uncovered: FlowDecl[];
|
|
111
|
+
/** Declared with a non-covered status, carried into the report so it stays visible. */
|
|
112
|
+
accounted: FlowDecl[];
|
|
113
|
+
/** A scenario's flow id that the inventory never declares — an id invented for one
|
|
114
|
+
* assertion (an "EF" that is really a success postcondition, an "AF" that is really a
|
|
115
|
+
* content check on the basic path). */
|
|
116
|
+
undeclared: Array<{
|
|
117
|
+
id: string;
|
|
118
|
+
scenario: string;
|
|
119
|
+
}>;
|
|
120
|
+
/** Covered declared flows / declared flows that OUGHT to be covered. */
|
|
121
|
+
ratio: number;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Coverage per DECLARED FLOW, which is not the same question as coverage per phase.
|
|
125
|
+
*
|
|
126
|
+
* A phase is "covered" the moment one scenario carries it, so a use case decomposed into
|
|
127
|
+
* fifteen flows reported `BF=✓ AF=✓ EF=✓ → 100%` on three scenarios. Reviewers reading the
|
|
128
|
+
* suite counted the flows instead and got a very different number (#595). When the contract
|
|
129
|
+
* declares its inventory, this measures the thing the reviewer measures — and every gap is
|
|
130
|
+
* named, which is what makes "no silent missing flow" checkable rather than aspirational.
|
|
131
|
+
*/
|
|
132
|
+
export declare function flowInventory(contract: FlowContract, scenarios: ScenarioInfo[]): InventoryResult | null;
|
|
133
|
+
/**
|
|
134
|
+
* A phase id used for something that is not that kind of flow.
|
|
135
|
+
*
|
|
136
|
+
* Two shapes, both seen on a real suite that the phase check scored 100%:
|
|
137
|
+
* - an `EF` scenario that REACHES the contract outcome. An exception flow is blocked by
|
|
138
|
+
* definition; one that completes the journey is a success-path postcondition wearing an
|
|
139
|
+
* exception's id ("the buffer does not survive a finalized registration").
|
|
140
|
+
* - an `AF` scenario with no branch: it walks the basic path and asserts extra content on
|
|
141
|
+
* it. An alternate flow needs a point where the actor does something else; without one it
|
|
142
|
+
* is an assertion belonging to the basic flow ("the shared component renders the new-email
|
|
143
|
+
* copy").
|
|
144
|
+
* Both inflate the flow count while adding no branch coverage, which is exactly what makes a
|
|
145
|
+
* suite look complete to the harness and thin to a reviewer.
|
|
146
|
+
*/
|
|
147
|
+
export declare function misfiledPhases(contract: FlowContract, scenarios: ScenarioInfo[], basicPhase: string): Array<{
|
|
148
|
+
scenario: string;
|
|
149
|
+
id: string;
|
|
150
|
+
why: string;
|
|
151
|
+
}>;
|
|
71
152
|
/**
|
|
72
153
|
* Verify the suite against the contract. Deterministic; a flow without a contract
|
|
73
154
|
* returns hasContract:false and neutral values (the audit reports the checklist).
|
|
74
155
|
*/
|
|
75
156
|
export declare function flowQuality(unitDir: string, scenarios: ScenarioInfo[]): FlowQualityResult;
|
|
157
|
+
/**
|
|
158
|
+
* A continuity claim states that data SURVIVES a step boundary (buffered, persists,
|
|
159
|
+
* round-trips, restored). Every such mechanism has two sides, and a suite that proves
|
|
160
|
+
* only the surviving side has not tested the mechanism — it has tested the happy half.
|
|
161
|
+
*
|
|
162
|
+
* Field report (#592): the viewpoint declared "basic-info values are buffered in
|
|
163
|
+
* sessionStorage … a page reload or session-storage clear between those steps LOSES the
|
|
164
|
+
* buffered data". The suite proved back-navigation RESTORES the values and never proved a
|
|
165
|
+
* reload loses them — one mechanism, one side. The QA framework caught it by construction
|
|
166
|
+
* (AF-02 "giữ được" beside EF-11 "mất"); this sensor catches it deterministically.
|
|
167
|
+
*
|
|
168
|
+
* Advisory. Reported per claim, naming which side is missing.
|
|
169
|
+
*/
|
|
170
|
+
export interface ContinuityGap {
|
|
171
|
+
claim: string;
|
|
172
|
+
missing: 'loss' | 'persistence';
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Continuity claims in the viewpoint file whose feature proves only ONE side.
|
|
176
|
+
* `claims` are the viewpoint's atomic item texts; `scenarioTexts` are per-scenario
|
|
177
|
+
* name+steps blobs (a claim's two sides may live in different scenarios).
|
|
178
|
+
*/
|
|
179
|
+
export declare function continuityGaps(claims: string[], scenarioTexts: string[]): ContinuityGap[];
|
|
76
180
|
/**
|
|
77
181
|
* Generalized stateful regression depth: the contract names the mutated collection,
|
|
78
182
|
* so the three dims (count-proof · teardown · multi-source) stop being cart-only.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-contract.d.ts","sourceRoot":"","sources":["../../src/harness/flow-contract.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;wFACoF;IACpF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;oFACgF;IAChF,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACtE,4FAA4F;IAC5F,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,kFAAkF;IAClF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,oEAAoE;IACpE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wFAAwF;IACxF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAClE,6FAA6F;IAC7F,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D;kEAC8D;IAC9D,GAAG,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACnE;
|
|
1
|
+
{"version":3,"file":"flow-contract.d.ts","sourceRoot":"","sources":["../../src/harness/flow-contract.ts"],"names":[],"mappings":"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"}
|