qfai 2.1.0 → 2.1.1
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/README.md +272 -20
- package/assets/defaults/workflows/change-tooling.yml +0 -4
- package/assets/init/.claude/settings.json +8 -8
- package/assets/init/.codex/hooks.json +6 -6
- package/assets/init/.qfai/assistant/agent/implementation-reviewer.md +14 -1
- package/assets/init/.qfai/assistant/agent/qa-gatekeeper.md +29 -0
- package/assets/init/.qfai/assistant/rule/constitution.md +5 -4
- package/assets/init/.qfai/assistant/rule/drift-protocol.md +14 -3
- package/assets/init/.qfai/assistant/rule/references/asset-authoring.md +70 -0
- package/assets/init/.qfai/assistant/rule/references/context-summary.md +30 -0
- package/assets/init/.qfai/assistant/rule/references/gate-failure-autorepair.md +42 -0
- package/assets/init/.qfai/assistant/rule/references/griller-recommendations.md +23 -0
- package/assets/init/.qfai/assistant/rule/references/host-backstops.md +60 -0
- package/assets/init/.qfai/assistant/rule/references/placeholder-scan.md +25 -0
- package/assets/init/.qfai/assistant/rule/references/reviewer-findings.md +41 -0
- package/assets/init/.qfai/assistant/rule/references/reviewer-remit.md +35 -0
- package/assets/init/.qfai/assistant/rule/shared-skill-delegation-baseline.md +26 -139
- package/assets/init/.qfai/assistant/rule/shared-skill-operating-baseline.md +6 -137
- package/assets/init/.qfai/assistant/rule/stage-cost.md +1 -1
- package/assets/init/.qfai/assistant/rule/test-layers.md +42 -0
- package/assets/init/.qfai/assistant/skill/qfai-configure/SKILL.md +8 -42
- package/assets/init/.qfai/assistant/skill/qfai-configure/references/principles.md +25 -0
- package/assets/init/.qfai/assistant/skill/qfai-discussion/SKILL.md +1 -1
- package/assets/init/.qfai/assistant/skill/qfai-discussion/references/discussion-completion-matrix.md +9 -2
- package/assets/init/.qfai/assistant/skill/qfai-discussion/references/ui_ux/platform_baselines.md +11 -0
- package/assets/init/.qfai/assistant/skill/qfai-discussion/references/ui_ux/review_audit_playbook.md +11 -0
- package/assets/init/.qfai/assistant/skill/qfai-discussion/references/ui_ux_best_practices.md +12 -36
- package/assets/init/.qfai/assistant/skill/qfai-grill/SKILL.md +1 -1
- package/assets/init/.qfai/assistant/skill/qfai-grilling/SKILL.md +16 -88
- package/assets/init/.qfai/assistant/skill/qfai-grilling/references/delegated-session.md +58 -0
- package/assets/init/.qfai/assistant/skill/qfai-grilling/references/session-record.md +42 -0
- package/assets/init/.qfai/assistant/skill/qfai-implement/SKILL.md +8 -1
- package/assets/init/.qfai/assistant/skill/qfai-implement/references/credential-reuse.md +9 -0
- package/assets/init/.qfai/assistant/skill/qfai-implement/references/cross-spec-ownership.md +41 -0
- package/assets/init/.qfai/assistant/skill/qfai-implement/references/oracle-strength.md +6 -1
- package/assets/init/.qfai/assistant/skill/qfai-implement/references/red-admissibility.md +1 -1
- package/assets/init/.qfai/assistant/skill/qfai-implement/references/ui-affecting.md +1 -3
- package/assets/init/.qfai/assistant/skill/qfai-maintain/SKILL.md +1 -1
- package/assets/init/.qfai/assistant/skill/qfai-migration-v1-to-v2/SKILL.md +4 -4
- package/assets/init/.qfai/assistant/skill/qfai-migration-v1-to-v2/references/migration-guide.md +19 -5
- package/assets/init/.qfai/assistant/skill/qfai-prototyping/SKILL.md +1 -1
- package/assets/init/.qfai/assistant/skill/qfai-prototyping/references/design-md-spec.md +14 -5
- package/assets/init/.qfai/assistant/skill/qfai-prototyping/references/generator-prompt.md +10 -0
- package/assets/init/.qfai/assistant/skill/qfai-prototyping/references/handoff.md +1 -1
- package/assets/init/.qfai/assistant/skill/qfai-prototyping/references/iteration-loop.md +3 -4
- package/assets/init/.qfai/assistant/skill/qfai-prototyping/references/review-payload-schema.md +10 -2
- package/assets/init/.qfai/assistant/skill/qfai-prototyping/references/reviewer-prompt.md +16 -3
- package/assets/init/.qfai/assistant/skill/qfai-run/SKILL.md +6 -21
- package/assets/init/.qfai/assistant/skill/qfai-run/references/extraction.md +30 -10
- package/assets/init/.qfai/assistant/skill/qfai-run/references/operator-screens.md +34 -0
- package/assets/init/.qfai/assistant/skill/qfai-run/references/plan.md +28 -5
- package/assets/init/.qfai/assistant/skill/qfai-run/references/stage-points.md +29 -0
- package/assets/init/.qfai/assistant/skill/qfai-sdd/SKILL.md +1 -1
- package/assets/init/.qfai/assistant/skill/qfai-sdd/references/concrete-abstract-cycle.md +10 -1
- package/assets/init/.qfai/assistant/skill/qfai-sdd/references/contract-artifact-rules.md +21 -9
- package/assets/init/.qfai/assistant/skill/qfai-sdd/references/design-anti-patterns.md +19 -2
- package/assets/init/.qfai/assistant/skill/qfai-sdd/references/design-md-authoring.md +11 -5
- package/assets/init/.qfai/assistant/skill/qfai-sdd/references/design-md-brand-catalog.md +17 -2
- package/assets/init/.qfai/assistant/skill/qfai-sdd/references/requirements-decomposition.md +2 -2
- package/assets/init/.qfai/assistant/skill/qfai-sdd/references/sdd-execution-playbook.md +5 -5
- package/assets/init/.qfai/assistant/skill/qfai-sdd/references/sdd-phase-checklists.md +4 -4
- package/assets/init/.qfai/assistant/skill/qfai-sdd/references/sdd-quality-gate.md +2 -2
- package/assets/init/.qfai/assistant/skill/qfai-sdd/references/sdd-triage.md +47 -5
- package/assets/init/.qfai/assistant/skill/qfai-sdd/references/spec-traceability-rules.md +15 -3
- package/assets/init/.qfai/assistant/skill/qfai-sdd/references/ui-contract-guide.md +16 -1
- package/assets/init/.qfai/assistant/skill/qfai-sdd/references/ui-design-contract-normalization.md +1 -2
- package/assets/init/.qfai/assistant/skill/qfai-sdd/templates/change-request.md +2 -2
- package/assets/init/.qfai/assistant/skill/qfai-sdd/templates/contracts/db-contract.sample.sql +2 -2
- package/assets/init/.qfai/assistant/skill/qfai-sdd/templates/spec/03_contract/cli/cli-NNNN-title.md +2 -2
- package/assets/init/.qfai/assistant/skill/qfai-sdd/templates/spec/03_contract/tech.md +1 -1
- package/assets/init/.qfai/assistant/skill/qfai-sdd/templates/spec/decisions.md +4 -0
- package/assets/init/.qfai/assistant/skill/qfai-triage/SKILL.md +1 -1
- package/assets/init/.qfai/assistant/skill/qfai-verify/SKILL.md +1 -1
- package/assets/init/.qfai/assistant/skill/qfai-verify/references/verify-output-contract.md +22 -8
- package/assets/init/.qfai/assistant/skill/web-research/SKILL.md +2 -10
- package/assets/init/.qfai/assistant/step/common-design-md/STEP.md +17 -3
- package/assets/init/.qfai/assistant/step/common-gate-run/STEP.md +30 -7
- package/assets/init/.qfai/assistant/step/discussion-uiux/STEP.md +11 -1
- package/assets/init/.qfai/assistant/step/implement-dep-bump/STEP.md +7 -0
- package/assets/init/.qfai/assistant/step/implement-scaffold/STEP.md +3 -3
- package/assets/init/.qfai/assistant/step/implement-seam/STEP.md +3 -1
- package/assets/init/.qfai/assistant/step/implement-tdd/STEP.md +3 -1
- package/assets/init/.qfai/assistant/step/implement-test-fix/STEP.md +2 -0
- package/assets/init/.qfai/assistant/step/sdd-flow/STEP.md +2 -0
- package/assets/init/.qfai/assistant/step/sdd-gate/STEP.md +4 -0
- package/assets/init/.qfai/assistant/step/sdd-triage/STEP.md +7 -3
- package/assets/init/.qfai/assistant/step/verify-change-note/STEP.md +8 -5
- package/assets/init/.qfai/assistant/step/verify-commit/STEP.md +6 -1
- package/assets/init/.qfai/assistant/step/verify-qfai-gate/STEP.md +20 -3
- package/assets/init/.qfai/assistant/step/verify-repeat-run/STEP.md +1 -1
- package/assets/init/.qfai/assistant/step/verify-repo-gate/STEP.md +23 -6
- package/assets/init/.qfai/waivers.yml +1 -1
- package/assets/init/root/.agents/rules/ai-readable-markdown.md +98 -0
- package/assets/init/root/.agents/rules/api-budget.md +4 -5
- package/assets/init/root/.agents/rules/documentation-clarity.md +30 -2
- package/assets/init/root/.agents/rules/grilling.md +4 -4
- package/assets/init/root/.agents/rules/interface-clarity.md +5 -5
- package/assets/init/root/.agents/rules/minimal-implementation.md +8 -0
- package/assets/init/root/.agents/rules/reminders.json +2 -2
- package/assets/init/root/.agents/rules/temporary-files.md +14 -5
- package/assets/init/root/.agents/rules/untrusted-content.md +3 -3
- package/assets/init/root/.agents/rules/user-questions.md +34 -7
- package/assets/init/root/.gitattributes +9 -0
- package/assets/init/root/.github/workflows/qfai-docs.yml +43 -11
- package/assets/init/root/.github/workflows/qfai-tests.yml +58 -15
- package/assets/init/root/.github/workflows/qfai-validate.yml +49 -42
- package/assets/init/root/AGENTS.md +1 -0
- package/assets/init/root/CLAUDE.md +1 -0
- package/assets/mdschema/story/03_contract/tech.mdschema.yml +7 -3
- package/assets/sandbox-templates/default-deny.yaml +0 -2
- package/assets/schemas/workflow/plan.schema.json +9 -2
- package/assets/scripts/check-mdschema.mjs +172 -5
- package/dist/cli/index.cjs +3979 -3055
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.mjs +3167 -2243
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.cjs +3024 -2500
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +23 -9
- package/dist/index.d.ts +23 -9
- package/dist/index.mjs +2881 -2358
- package/dist/index.mjs.map +1 -1
- package/docs/MIGRATION-2.0.0.md +1 -1
- package/package.json +3 -3
package/dist/index.d.cts
CHANGED
|
@@ -180,6 +180,12 @@ type QfaiPaths = {
|
|
|
180
180
|
};
|
|
181
181
|
type QfaiValidationConfig = {
|
|
182
182
|
failOn: FailOn;
|
|
183
|
+
/**
|
|
184
|
+
* Terms the specs must no longer state, such as an option a decision rejected.
|
|
185
|
+
* `qfai validate` warns on each line of a spec document that still holds one
|
|
186
|
+
* (QFAI-STORY-016). Unset means no term is checked.
|
|
187
|
+
*/
|
|
188
|
+
staleTerms?: string[];
|
|
183
189
|
testStrategy: {
|
|
184
190
|
/**
|
|
185
191
|
* When true (default), `qfai validate` reports the silent-placeholder
|
|
@@ -382,6 +388,13 @@ type WorkflowMode = (typeof WORKFLOW_MODES)[number];
|
|
|
382
388
|
* none of the three, and no mode is guessed in its place.
|
|
383
389
|
*/
|
|
384
390
|
declare function readWorkflowMode(document: unknown): WorkflowMode | null;
|
|
391
|
+
/** The config issue an invalid `workflow.skipShipped` raises. */
|
|
392
|
+
declare const SKIPPED_WORKFLOWS_MESSAGE: string;
|
|
393
|
+
/**
|
|
394
|
+
* The shipped workflow names `workflow.skipShipped` lists, read from the parsed config document.
|
|
395
|
+
* `null` means the value is not a list of shipped names, and no entry is guessed in its place.
|
|
396
|
+
*/
|
|
397
|
+
declare function readSkippedWorkflows(document: unknown): ReadonlySet<string> | null;
|
|
385
398
|
declare function resolvePath(root: string, config: QfaiConfig, key: ConfigPathKey): string;
|
|
386
399
|
/**
|
|
387
400
|
* Why the file's `prototyping.primaryUiContract` was rejected, or `undefined` when the file sets
|
|
@@ -1170,7 +1183,7 @@ declare function locateToolAgainstProject(root: string): Promise<{
|
|
|
1170
1183
|
* top-level `node_modules` is linked to another checkout's is covered by the
|
|
1171
1184
|
* second.
|
|
1172
1185
|
*/
|
|
1173
|
-
declare function reachedThroughLinkedNodeModules(root: string, packageDir: string): Promise<boolean>;
|
|
1186
|
+
declare function reachedThroughLinkedNodeModules(root: string, packageDir: string, walkFrom?: string): Promise<boolean>;
|
|
1174
1187
|
/**
|
|
1175
1188
|
* Whether `packageDir` sits under what `<dir>/node_modules` really points at.
|
|
1176
1189
|
*
|
|
@@ -1202,7 +1215,8 @@ declare function resolvesThroughOwnNodeModules(dir: string, packageDir: string):
|
|
|
1202
1215
|
declare function classifyAgainstDeclaration(declaringDir: string, packageDir: string): boolean;
|
|
1203
1216
|
/**
|
|
1204
1217
|
* The nearest directory at or above `root` whose `package.json` declares
|
|
1205
|
-
* `qfai`, or `null` when none does.
|
|
1218
|
+
* `qfai`, or `null` when none does. The walk follows `root` as given, and the
|
|
1219
|
+
* directory returned is a real path.
|
|
1206
1220
|
*
|
|
1207
1221
|
* Every dependency field counts. A tool named in `devDependencies` is as
|
|
1208
1222
|
* declared as one in `dependencies` — the project said which copy it wants
|
|
@@ -1241,8 +1255,9 @@ declare function classifyToolLocation(root: string, packageDir: string, link?: {
|
|
|
1241
1255
|
* and Node reports the link's target. Only the nearest entry counts, because it
|
|
1242
1256
|
* is the one `npx` runs; a farther link to the same checkout means the checkout
|
|
1243
1257
|
* was run by its path. The `node_modules` directory's own real path is returned
|
|
1244
|
-
* because it can be a link as well, to another checkout's.
|
|
1245
|
-
*
|
|
1258
|
+
* because it can be a link as well, to another checkout's. `root` is walked as
|
|
1259
|
+
* given, so a junction on the way up is followed the way `npx` follows it;
|
|
1260
|
+
* `packageDir` must already be a real path.
|
|
1246
1261
|
*/
|
|
1247
1262
|
declare function findLinkingNodeModules(root: string, packageDir: string): Promise<string | null>;
|
|
1248
1263
|
/**
|
|
@@ -1442,9 +1457,8 @@ type DesignMd = {
|
|
|
1442
1457
|
* The published theme the token values were taken from, named so a
|
|
1443
1458
|
* reader can install it.
|
|
1444
1459
|
*
|
|
1445
|
-
* Everything downstream is exact about those values —
|
|
1446
|
-
*
|
|
1447
|
-
* checked against them — and until this field existed there was nothing
|
|
1460
|
+
* Everything downstream is exact about those values — `certify` re-scans them,
|
|
1461
|
+
* every literal in every capture is checked against them — and until this field existed there was nothing
|
|
1448
1462
|
* under the exactness: twelve colours, three families, four radii and
|
|
1449
1463
|
* three shadows were written from a sentence of prose about the
|
|
1450
1464
|
* archetype.
|
|
@@ -1517,7 +1531,7 @@ declare function validateDesignMd(d: DesignMd): ValidationIssue[];
|
|
|
1517
1531
|
declare const DESIGN_MD_SAMPLE_MARKER = "QFAI-SAMPLE-DESIGN-MD";
|
|
1518
1532
|
/**
|
|
1519
1533
|
* True when `text` is still (or is derived from) a DESIGN.md the package
|
|
1520
|
-
* ships as a sample. Used to stop `/qfai-sdd` Phase 0 from
|
|
1534
|
+
* ships as a sample. Used to stop `/qfai-sdd` Phase 0 from adopting
|
|
1521
1535
|
* an unauthored brand as the project's brand contract, and to surface the
|
|
1522
1536
|
* same condition from `qfai validate` (QFAI-DCON-034).
|
|
1523
1537
|
*
|
|
@@ -1540,4 +1554,4 @@ declare function isUnreplacedDesignMdSample(text: unknown): boolean;
|
|
|
1540
1554
|
/** Run one ordered spec-to-story migration step from the current project root. */
|
|
1541
1555
|
declare function runMigrationStep(step: number, argv: string[]): Promise<number>;
|
|
1542
1556
|
|
|
1543
|
-
export { AC_GHERKIN_SECTION, ARCHETYPES, ATDD_TEST_KIND_DIRS, type Archetype, type AtddCodeTraceabilityResult, type AtddForbiddenRef, type AtddObligationRefs, type AtddSpecRefs, type AtddTestKind, type AtddTraceabilityMissing, type AtddTraceabilityScan, type AtddUnknownRef, type AtddUnknownRefKind, BROWSER_QA_PHASES, COLOR_KEYS, type ColorKey, type ConfigLoadResult, type ConfigPathKey, type ConfigSearchResult, DESIGN_MD_SAMPLE_MARKER, DISCUSSION_NON_UI_SURFACES, DISCUSSION_UI_BEARING_SURFACES, type DeferredTc, type DesignMd, type DesignMdColors, type DesignMdFonts, type DesignMdRadius, type DesignMdShadow, FONT_KEYS, type FailOn, type FenceMaskOptions, type FontKey, ID_PREFIXES, type IdFormatPrefix, type IdPrefix, type InvalidIdOccurrence, type Issue, type IssueCategory, type IssueLocation, type IssueSeverity, type OrphanContractsPolicy, type OutputFormat, PLANNED_CONTRACT_KEY, PROTOTYPING_SUPPORTED_SURFACES, type ParseError, type ParseResult, type PrototypingBrowserTool, type PrototypingSurface, type QfaiConfig, type QfaiOutputConfig, type QfaiPaths, type QfaiPrototypingConfig, type QfaiPrototypingExecutionConfig, type QfaiReportConfig, type QfaiReviewProfile, type QfaiRoutingEntry, type QfaiUiuxAuditConfig, type QfaiUiuxConfig, type QfaiValidationConfig, RADIUS_KEYS, type RadiusKey, type ReportData, type RunSddPreflightOptions, SHADOW_KEYS, type SddPreflightResult, type SddPreflightSource, type SddPreflightStatus, type ShadowKey, TC_VERIFIED_BY_KEY, type TcStatusDeclaration, type TcVerificationStatus, type TestFileExtensions, type TestLayerRoots, type TraceabilitySeverity, VISUAL_BROWSER_SURFACES, type ValidationCounts, type ValidationIssue, type ValidationOptions, type ValidationProfile, type ValidationResult, type ValidationTimings, type ValidationWaiverAction, type ValidationWaiverDowngradeTo, type ValidationWaiverEntry, type ValidationWaiverMatch, type ValidationWaiverScope, type ValidationWaiverSeverity, type ValidationWaiverSuppressed, type ValidationWaivers, WORKFLOW_MODE_MESSAGE, type WorkflowMode, atddAcceptanceLayerFilter, atddAcceptanceTestGlobs, atddTestKindDirs, atddTestOwnerProbe, classifyAgainstDeclaration, classifyToolLocation, collectDeclaredTcIds, collectDeclaredUsIds, collectHeadingTcIdsFrom, collectPlannedUsIds, collectTcLevels, collectTcStatuses, countIssues, createReportData, createTestLayerRoots, defaultConfig, deriveAtddFilePattern, deriveTestFileExtensions, evaluateAtddCodeTraceability, extractAcSpecNumber, extractAllIds, extractBrSpecNumber, extractCapSpecNumber, extractCaseSpecNumber, extractIds, extractInvalidIdOccurrences, extractInvalidIds, extractScSpecNumber, extractSpecNumber, extractUsSpecNumber, findConfigRoot, findDeclaringDir, findLinkingNodeModules, findPackageJsonUpward, formatReportJson, formatReportMarkdown, getConfigPath, isDiscussionUiBearingSurfaceType, isNonUiDiscussionSurface, isPlannedApiContract, isPlannedDbContract, isSupportedPrototypingSurface, isUnreplacedDesignMdSample, isValidPrototypingSurface, lintSql, loadConfig, locateToolAgainstProject, maskFencedCodeBlocks, packageRootProbe, parseDesignMd, reachedThroughLinkedNodeModules, readRejectedPrimaryUiContract, readTestFileExtensions, readWorkflowMode, requiresVisualBrowserEvidence, resolveAtddHomeKind, resolvePath, resolveTestKind, resolveToolPackageDir, resolveToolVersion, resolvesThroughOwnNodeModules, routingEntryName, runBrowserQaOrchestrated, runMigrationStep, runRenderCapture, runSddPreflight, summarizeBrowserQaResult, suspendsObligation, validateContracts, validateDesignMd, validateProject, validateUiContractParse };
|
|
1557
|
+
export { AC_GHERKIN_SECTION, ARCHETYPES, ATDD_TEST_KIND_DIRS, type Archetype, type AtddCodeTraceabilityResult, type AtddForbiddenRef, type AtddObligationRefs, type AtddSpecRefs, type AtddTestKind, type AtddTraceabilityMissing, type AtddTraceabilityScan, type AtddUnknownRef, type AtddUnknownRefKind, BROWSER_QA_PHASES, COLOR_KEYS, type ColorKey, type ConfigLoadResult, type ConfigPathKey, type ConfigSearchResult, DESIGN_MD_SAMPLE_MARKER, DISCUSSION_NON_UI_SURFACES, DISCUSSION_UI_BEARING_SURFACES, type DeferredTc, type DesignMd, type DesignMdColors, type DesignMdFonts, type DesignMdRadius, type DesignMdShadow, FONT_KEYS, type FailOn, type FenceMaskOptions, type FontKey, ID_PREFIXES, type IdFormatPrefix, type IdPrefix, type InvalidIdOccurrence, type Issue, type IssueCategory, type IssueLocation, type IssueSeverity, type OrphanContractsPolicy, type OutputFormat, PLANNED_CONTRACT_KEY, PROTOTYPING_SUPPORTED_SURFACES, type ParseError, type ParseResult, type PrototypingBrowserTool, type PrototypingSurface, type QfaiConfig, type QfaiOutputConfig, type QfaiPaths, type QfaiPrototypingConfig, type QfaiPrototypingExecutionConfig, type QfaiReportConfig, type QfaiReviewProfile, type QfaiRoutingEntry, type QfaiUiuxAuditConfig, type QfaiUiuxConfig, type QfaiValidationConfig, RADIUS_KEYS, type RadiusKey, type ReportData, type RunSddPreflightOptions, SHADOW_KEYS, SKIPPED_WORKFLOWS_MESSAGE, type SddPreflightResult, type SddPreflightSource, type SddPreflightStatus, type ShadowKey, TC_VERIFIED_BY_KEY, type TcStatusDeclaration, type TcVerificationStatus, type TestFileExtensions, type TestLayerRoots, type TraceabilitySeverity, VISUAL_BROWSER_SURFACES, type ValidationCounts, type ValidationIssue, type ValidationOptions, type ValidationProfile, type ValidationResult, type ValidationTimings, type ValidationWaiverAction, type ValidationWaiverDowngradeTo, type ValidationWaiverEntry, type ValidationWaiverMatch, type ValidationWaiverScope, type ValidationWaiverSeverity, type ValidationWaiverSuppressed, type ValidationWaivers, WORKFLOW_MODE_MESSAGE, type WorkflowMode, atddAcceptanceLayerFilter, atddAcceptanceTestGlobs, atddTestKindDirs, atddTestOwnerProbe, classifyAgainstDeclaration, classifyToolLocation, collectDeclaredTcIds, collectDeclaredUsIds, collectHeadingTcIdsFrom, collectPlannedUsIds, collectTcLevels, collectTcStatuses, countIssues, createReportData, createTestLayerRoots, defaultConfig, deriveAtddFilePattern, deriveTestFileExtensions, evaluateAtddCodeTraceability, extractAcSpecNumber, extractAllIds, extractBrSpecNumber, extractCapSpecNumber, extractCaseSpecNumber, extractIds, extractInvalidIdOccurrences, extractInvalidIds, extractScSpecNumber, extractSpecNumber, extractUsSpecNumber, findConfigRoot, findDeclaringDir, findLinkingNodeModules, findPackageJsonUpward, formatReportJson, formatReportMarkdown, getConfigPath, isDiscussionUiBearingSurfaceType, isNonUiDiscussionSurface, isPlannedApiContract, isPlannedDbContract, isSupportedPrototypingSurface, isUnreplacedDesignMdSample, isValidPrototypingSurface, lintSql, loadConfig, locateToolAgainstProject, maskFencedCodeBlocks, packageRootProbe, parseDesignMd, reachedThroughLinkedNodeModules, readRejectedPrimaryUiContract, readSkippedWorkflows, readTestFileExtensions, readWorkflowMode, requiresVisualBrowserEvidence, resolveAtddHomeKind, resolvePath, resolveTestKind, resolveToolPackageDir, resolveToolVersion, resolvesThroughOwnNodeModules, routingEntryName, runBrowserQaOrchestrated, runMigrationStep, runRenderCapture, runSddPreflight, summarizeBrowserQaResult, suspendsObligation, validateContracts, validateDesignMd, validateProject, validateUiContractParse };
|
package/dist/index.d.ts
CHANGED
|
@@ -180,6 +180,12 @@ type QfaiPaths = {
|
|
|
180
180
|
};
|
|
181
181
|
type QfaiValidationConfig = {
|
|
182
182
|
failOn: FailOn;
|
|
183
|
+
/**
|
|
184
|
+
* Terms the specs must no longer state, such as an option a decision rejected.
|
|
185
|
+
* `qfai validate` warns on each line of a spec document that still holds one
|
|
186
|
+
* (QFAI-STORY-016). Unset means no term is checked.
|
|
187
|
+
*/
|
|
188
|
+
staleTerms?: string[];
|
|
183
189
|
testStrategy: {
|
|
184
190
|
/**
|
|
185
191
|
* When true (default), `qfai validate` reports the silent-placeholder
|
|
@@ -382,6 +388,13 @@ type WorkflowMode = (typeof WORKFLOW_MODES)[number];
|
|
|
382
388
|
* none of the three, and no mode is guessed in its place.
|
|
383
389
|
*/
|
|
384
390
|
declare function readWorkflowMode(document: unknown): WorkflowMode | null;
|
|
391
|
+
/** The config issue an invalid `workflow.skipShipped` raises. */
|
|
392
|
+
declare const SKIPPED_WORKFLOWS_MESSAGE: string;
|
|
393
|
+
/**
|
|
394
|
+
* The shipped workflow names `workflow.skipShipped` lists, read from the parsed config document.
|
|
395
|
+
* `null` means the value is not a list of shipped names, and no entry is guessed in its place.
|
|
396
|
+
*/
|
|
397
|
+
declare function readSkippedWorkflows(document: unknown): ReadonlySet<string> | null;
|
|
385
398
|
declare function resolvePath(root: string, config: QfaiConfig, key: ConfigPathKey): string;
|
|
386
399
|
/**
|
|
387
400
|
* Why the file's `prototyping.primaryUiContract` was rejected, or `undefined` when the file sets
|
|
@@ -1170,7 +1183,7 @@ declare function locateToolAgainstProject(root: string): Promise<{
|
|
|
1170
1183
|
* top-level `node_modules` is linked to another checkout's is covered by the
|
|
1171
1184
|
* second.
|
|
1172
1185
|
*/
|
|
1173
|
-
declare function reachedThroughLinkedNodeModules(root: string, packageDir: string): Promise<boolean>;
|
|
1186
|
+
declare function reachedThroughLinkedNodeModules(root: string, packageDir: string, walkFrom?: string): Promise<boolean>;
|
|
1174
1187
|
/**
|
|
1175
1188
|
* Whether `packageDir` sits under what `<dir>/node_modules` really points at.
|
|
1176
1189
|
*
|
|
@@ -1202,7 +1215,8 @@ declare function resolvesThroughOwnNodeModules(dir: string, packageDir: string):
|
|
|
1202
1215
|
declare function classifyAgainstDeclaration(declaringDir: string, packageDir: string): boolean;
|
|
1203
1216
|
/**
|
|
1204
1217
|
* The nearest directory at or above `root` whose `package.json` declares
|
|
1205
|
-
* `qfai`, or `null` when none does.
|
|
1218
|
+
* `qfai`, or `null` when none does. The walk follows `root` as given, and the
|
|
1219
|
+
* directory returned is a real path.
|
|
1206
1220
|
*
|
|
1207
1221
|
* Every dependency field counts. A tool named in `devDependencies` is as
|
|
1208
1222
|
* declared as one in `dependencies` — the project said which copy it wants
|
|
@@ -1241,8 +1255,9 @@ declare function classifyToolLocation(root: string, packageDir: string, link?: {
|
|
|
1241
1255
|
* and Node reports the link's target. Only the nearest entry counts, because it
|
|
1242
1256
|
* is the one `npx` runs; a farther link to the same checkout means the checkout
|
|
1243
1257
|
* was run by its path. The `node_modules` directory's own real path is returned
|
|
1244
|
-
* because it can be a link as well, to another checkout's.
|
|
1245
|
-
*
|
|
1258
|
+
* because it can be a link as well, to another checkout's. `root` is walked as
|
|
1259
|
+
* given, so a junction on the way up is followed the way `npx` follows it;
|
|
1260
|
+
* `packageDir` must already be a real path.
|
|
1246
1261
|
*/
|
|
1247
1262
|
declare function findLinkingNodeModules(root: string, packageDir: string): Promise<string | null>;
|
|
1248
1263
|
/**
|
|
@@ -1442,9 +1457,8 @@ type DesignMd = {
|
|
|
1442
1457
|
* The published theme the token values were taken from, named so a
|
|
1443
1458
|
* reader can install it.
|
|
1444
1459
|
*
|
|
1445
|
-
* Everything downstream is exact about those values —
|
|
1446
|
-
*
|
|
1447
|
-
* checked against them — and until this field existed there was nothing
|
|
1460
|
+
* Everything downstream is exact about those values — `certify` re-scans them,
|
|
1461
|
+
* every literal in every capture is checked against them — and until this field existed there was nothing
|
|
1448
1462
|
* under the exactness: twelve colours, three families, four radii and
|
|
1449
1463
|
* three shadows were written from a sentence of prose about the
|
|
1450
1464
|
* archetype.
|
|
@@ -1517,7 +1531,7 @@ declare function validateDesignMd(d: DesignMd): ValidationIssue[];
|
|
|
1517
1531
|
declare const DESIGN_MD_SAMPLE_MARKER = "QFAI-SAMPLE-DESIGN-MD";
|
|
1518
1532
|
/**
|
|
1519
1533
|
* True when `text` is still (or is derived from) a DESIGN.md the package
|
|
1520
|
-
* ships as a sample. Used to stop `/qfai-sdd` Phase 0 from
|
|
1534
|
+
* ships as a sample. Used to stop `/qfai-sdd` Phase 0 from adopting
|
|
1521
1535
|
* an unauthored brand as the project's brand contract, and to surface the
|
|
1522
1536
|
* same condition from `qfai validate` (QFAI-DCON-034).
|
|
1523
1537
|
*
|
|
@@ -1540,4 +1554,4 @@ declare function isUnreplacedDesignMdSample(text: unknown): boolean;
|
|
|
1540
1554
|
/** Run one ordered spec-to-story migration step from the current project root. */
|
|
1541
1555
|
declare function runMigrationStep(step: number, argv: string[]): Promise<number>;
|
|
1542
1556
|
|
|
1543
|
-
export { AC_GHERKIN_SECTION, ARCHETYPES, ATDD_TEST_KIND_DIRS, type Archetype, type AtddCodeTraceabilityResult, type AtddForbiddenRef, type AtddObligationRefs, type AtddSpecRefs, type AtddTestKind, type AtddTraceabilityMissing, type AtddTraceabilityScan, type AtddUnknownRef, type AtddUnknownRefKind, BROWSER_QA_PHASES, COLOR_KEYS, type ColorKey, type ConfigLoadResult, type ConfigPathKey, type ConfigSearchResult, DESIGN_MD_SAMPLE_MARKER, DISCUSSION_NON_UI_SURFACES, DISCUSSION_UI_BEARING_SURFACES, type DeferredTc, type DesignMd, type DesignMdColors, type DesignMdFonts, type DesignMdRadius, type DesignMdShadow, FONT_KEYS, type FailOn, type FenceMaskOptions, type FontKey, ID_PREFIXES, type IdFormatPrefix, type IdPrefix, type InvalidIdOccurrence, type Issue, type IssueCategory, type IssueLocation, type IssueSeverity, type OrphanContractsPolicy, type OutputFormat, PLANNED_CONTRACT_KEY, PROTOTYPING_SUPPORTED_SURFACES, type ParseError, type ParseResult, type PrototypingBrowserTool, type PrototypingSurface, type QfaiConfig, type QfaiOutputConfig, type QfaiPaths, type QfaiPrototypingConfig, type QfaiPrototypingExecutionConfig, type QfaiReportConfig, type QfaiReviewProfile, type QfaiRoutingEntry, type QfaiUiuxAuditConfig, type QfaiUiuxConfig, type QfaiValidationConfig, RADIUS_KEYS, type RadiusKey, type ReportData, type RunSddPreflightOptions, SHADOW_KEYS, type SddPreflightResult, type SddPreflightSource, type SddPreflightStatus, type ShadowKey, TC_VERIFIED_BY_KEY, type TcStatusDeclaration, type TcVerificationStatus, type TestFileExtensions, type TestLayerRoots, type TraceabilitySeverity, VISUAL_BROWSER_SURFACES, type ValidationCounts, type ValidationIssue, type ValidationOptions, type ValidationProfile, type ValidationResult, type ValidationTimings, type ValidationWaiverAction, type ValidationWaiverDowngradeTo, type ValidationWaiverEntry, type ValidationWaiverMatch, type ValidationWaiverScope, type ValidationWaiverSeverity, type ValidationWaiverSuppressed, type ValidationWaivers, WORKFLOW_MODE_MESSAGE, type WorkflowMode, atddAcceptanceLayerFilter, atddAcceptanceTestGlobs, atddTestKindDirs, atddTestOwnerProbe, classifyAgainstDeclaration, classifyToolLocation, collectDeclaredTcIds, collectDeclaredUsIds, collectHeadingTcIdsFrom, collectPlannedUsIds, collectTcLevels, collectTcStatuses, countIssues, createReportData, createTestLayerRoots, defaultConfig, deriveAtddFilePattern, deriveTestFileExtensions, evaluateAtddCodeTraceability, extractAcSpecNumber, extractAllIds, extractBrSpecNumber, extractCapSpecNumber, extractCaseSpecNumber, extractIds, extractInvalidIdOccurrences, extractInvalidIds, extractScSpecNumber, extractSpecNumber, extractUsSpecNumber, findConfigRoot, findDeclaringDir, findLinkingNodeModules, findPackageJsonUpward, formatReportJson, formatReportMarkdown, getConfigPath, isDiscussionUiBearingSurfaceType, isNonUiDiscussionSurface, isPlannedApiContract, isPlannedDbContract, isSupportedPrototypingSurface, isUnreplacedDesignMdSample, isValidPrototypingSurface, lintSql, loadConfig, locateToolAgainstProject, maskFencedCodeBlocks, packageRootProbe, parseDesignMd, reachedThroughLinkedNodeModules, readRejectedPrimaryUiContract, readTestFileExtensions, readWorkflowMode, requiresVisualBrowserEvidence, resolveAtddHomeKind, resolvePath, resolveTestKind, resolveToolPackageDir, resolveToolVersion, resolvesThroughOwnNodeModules, routingEntryName, runBrowserQaOrchestrated, runMigrationStep, runRenderCapture, runSddPreflight, summarizeBrowserQaResult, suspendsObligation, validateContracts, validateDesignMd, validateProject, validateUiContractParse };
|
|
1557
|
+
export { AC_GHERKIN_SECTION, ARCHETYPES, ATDD_TEST_KIND_DIRS, type Archetype, type AtddCodeTraceabilityResult, type AtddForbiddenRef, type AtddObligationRefs, type AtddSpecRefs, type AtddTestKind, type AtddTraceabilityMissing, type AtddTraceabilityScan, type AtddUnknownRef, type AtddUnknownRefKind, BROWSER_QA_PHASES, COLOR_KEYS, type ColorKey, type ConfigLoadResult, type ConfigPathKey, type ConfigSearchResult, DESIGN_MD_SAMPLE_MARKER, DISCUSSION_NON_UI_SURFACES, DISCUSSION_UI_BEARING_SURFACES, type DeferredTc, type DesignMd, type DesignMdColors, type DesignMdFonts, type DesignMdRadius, type DesignMdShadow, FONT_KEYS, type FailOn, type FenceMaskOptions, type FontKey, ID_PREFIXES, type IdFormatPrefix, type IdPrefix, type InvalidIdOccurrence, type Issue, type IssueCategory, type IssueLocation, type IssueSeverity, type OrphanContractsPolicy, type OutputFormat, PLANNED_CONTRACT_KEY, PROTOTYPING_SUPPORTED_SURFACES, type ParseError, type ParseResult, type PrototypingBrowserTool, type PrototypingSurface, type QfaiConfig, type QfaiOutputConfig, type QfaiPaths, type QfaiPrototypingConfig, type QfaiPrototypingExecutionConfig, type QfaiReportConfig, type QfaiReviewProfile, type QfaiRoutingEntry, type QfaiUiuxAuditConfig, type QfaiUiuxConfig, type QfaiValidationConfig, RADIUS_KEYS, type RadiusKey, type ReportData, type RunSddPreflightOptions, SHADOW_KEYS, SKIPPED_WORKFLOWS_MESSAGE, type SddPreflightResult, type SddPreflightSource, type SddPreflightStatus, type ShadowKey, TC_VERIFIED_BY_KEY, type TcStatusDeclaration, type TcVerificationStatus, type TestFileExtensions, type TestLayerRoots, type TraceabilitySeverity, VISUAL_BROWSER_SURFACES, type ValidationCounts, type ValidationIssue, type ValidationOptions, type ValidationProfile, type ValidationResult, type ValidationTimings, type ValidationWaiverAction, type ValidationWaiverDowngradeTo, type ValidationWaiverEntry, type ValidationWaiverMatch, type ValidationWaiverScope, type ValidationWaiverSeverity, type ValidationWaiverSuppressed, type ValidationWaivers, WORKFLOW_MODE_MESSAGE, type WorkflowMode, atddAcceptanceLayerFilter, atddAcceptanceTestGlobs, atddTestKindDirs, atddTestOwnerProbe, classifyAgainstDeclaration, classifyToolLocation, collectDeclaredTcIds, collectDeclaredUsIds, collectHeadingTcIdsFrom, collectPlannedUsIds, collectTcLevels, collectTcStatuses, countIssues, createReportData, createTestLayerRoots, defaultConfig, deriveAtddFilePattern, deriveTestFileExtensions, evaluateAtddCodeTraceability, extractAcSpecNumber, extractAllIds, extractBrSpecNumber, extractCapSpecNumber, extractCaseSpecNumber, extractIds, extractInvalidIdOccurrences, extractInvalidIds, extractScSpecNumber, extractSpecNumber, extractUsSpecNumber, findConfigRoot, findDeclaringDir, findLinkingNodeModules, findPackageJsonUpward, formatReportJson, formatReportMarkdown, getConfigPath, isDiscussionUiBearingSurfaceType, isNonUiDiscussionSurface, isPlannedApiContract, isPlannedDbContract, isSupportedPrototypingSurface, isUnreplacedDesignMdSample, isValidPrototypingSurface, lintSql, loadConfig, locateToolAgainstProject, maskFencedCodeBlocks, packageRootProbe, parseDesignMd, reachedThroughLinkedNodeModules, readRejectedPrimaryUiContract, readSkippedWorkflows, readTestFileExtensions, readWorkflowMode, requiresVisualBrowserEvidence, resolveAtddHomeKind, resolvePath, resolveTestKind, resolveToolPackageDir, resolveToolVersion, resolvesThroughOwnNodeModules, routingEntryName, runBrowserQaOrchestrated, runMigrationStep, runRenderCapture, runSddPreflight, summarizeBrowserQaResult, suspendsObligation, validateContracts, validateDesignMd, validateProject, validateUiContractParse };
|