qfai 1.10.1 → 1.10.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/README.md +77 -22
- package/assets/init/.qfai/assistant/agents/completion-reviewer.md +1 -1
- package/assets/init/.qfai/assistant/agents/implementation-reviewer.md +3 -3
- package/assets/init/.qfai/assistant/agents/orchestrator.md +2 -2
- package/assets/init/.qfai/assistant/agents/product-experience-architect.md +2 -1
- package/assets/init/.qfai/assistant/agents/product-surface-reviewer.md +1 -1
- package/assets/init/.qfai/assistant/agents/qa-gatekeeper.md +5 -5
- package/assets/init/.qfai/assistant/agents/test-design-analyst.md +3 -2
- package/assets/init/.qfai/assistant/catalog/cli-ux-guidelines.md +3 -0
- package/assets/init/.qfai/assistant/catalog/test-layers.md +87 -81
- package/assets/init/.qfai/assistant/catalog/worklog-entry.schema.md +4 -3
- package/assets/init/.qfai/assistant/constitution/agent-selection.md +7 -1
- package/assets/init/.qfai/assistant/constitution/communication.md +1 -1
- package/assets/init/.qfai/assistant/constitution/constitution.md +7 -1
- package/assets/init/.qfai/assistant/constitution/drift-protocol.md +117 -9
- package/assets/init/.qfai/assistant/constitution/review-convergence.md +121 -0
- package/assets/init/.qfai/assistant/constitution/shared-skill-delegation-baseline.md +32 -91
- package/assets/init/.qfai/assistant/constitution/shared-skill-operating-baseline.md +59 -5
- package/assets/init/.qfai/assistant/manifest/agent-catalog.yml +17 -15
- package/assets/init/.qfai/assistant/skills/qfai-atdd/SKILL.md +12 -12
- package/assets/init/.qfai/assistant/skills/qfai-atdd/references/red-provenance.md +59 -17
- package/assets/init/.qfai/assistant/skills/qfai-atdd/references/scaffolding.md +42 -0
- package/assets/init/.qfai/assistant/skills/qfai-atdd/references/shared-test-artifacts.md +29 -1
- package/assets/init/.qfai/assistant/skills/qfai-atdd/references/test-case-depth-checklist.md +21 -12
- package/assets/init/.qfai/assistant/skills/qfai-configure/SKILL.md +3 -2
- package/assets/init/.qfai/assistant/skills/qfai-discussion/SKILL.md +10 -8
- package/assets/init/.qfai/assistant/skills/qfai-discussion/references/discussion-completion-matrix.md +23 -2
- package/assets/init/.qfai/assistant/skills/qfai-discussion/references/review-cycle-playbook.md +14 -3
- package/assets/init/.qfai/assistant/skills/qfai-discussion/references/ui-bearing-playbook.md +47 -11
- package/assets/init/.qfai/assistant/skills/qfai-discussion/references/ui_ux/trend_scan_playbook.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-discussion/references/ui_ux_best_practices.md +6 -4
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/01_Context.md +2 -2
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/03_Story-Workshop.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/04_Sources.md +40 -6
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/14_Review-Request.md +7 -7
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/review/Rxx_reviewer.md +3 -3
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/review/review_request.md +4 -3
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/review/summary.json +1 -0
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/00_index.md +14 -5
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/40_screen_contracts.md +17 -1
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/50_review_input_bundle.md +13 -8
- package/assets/init/.qfai/assistant/skills/qfai-implement/SKILL.md +52 -53
- package/assets/init/.qfai/assistant/skills/qfai-implement/references/checkpoint-verification.md +216 -20
- package/assets/init/.qfai/assistant/skills/qfai-implement/references/evidence-revision.md +145 -26
- package/assets/init/.qfai/assistant/skills/qfai-implement/references/execution-ledger.md +94 -9
- package/assets/init/.qfai/assistant/skills/qfai-implement/references/final-checklist.md +147 -9
- package/assets/init/.qfai/assistant/skills/qfai-implement/references/finding-classification.md +70 -5
- package/assets/init/.qfai/assistant/skills/qfai-implement/references/ledger-preconditions.md +55 -14
- package/assets/init/.qfai/assistant/skills/qfai-implement/references/parallelization-policy.md +92 -3
- package/assets/init/.qfai/assistant/skills/qfai-implement/references/relevant-test-suite.md +13 -1
- package/assets/init/.qfai/assistant/skills/qfai-implement/references/review-artifact-layout.md +56 -7
- package/assets/init/.qfai/assistant/skills/qfai-implement/references/round-evidence.md +20 -12
- package/assets/init/.qfai/assistant/skills/qfai-implement/references/volume-policy.md +19 -12
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/SKILL.md +76 -8
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/design-md-spec.md +20 -0
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/evidence-requirements.md +7 -4
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/generator-prompt.md +83 -22
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/reviewer-prompt.md +29 -4
- package/assets/init/.qfai/assistant/skills/qfai-sdd/SKILL.md +127 -18
- package/assets/init/.qfai/assistant/skills/qfai-sdd/references/contract-artifact-rules.md +31 -3
- package/assets/init/.qfai/assistant/skills/qfai-sdd/references/review-cycle-playbook.md +20 -3
- package/assets/init/.qfai/assistant/skills/qfai-sdd/references/sdd-execution-playbook.md +41 -5
- package/assets/init/.qfai/assistant/skills/qfai-sdd/references/sdd-phase-checklists.md +16 -4
- package/assets/init/.qfai/assistant/skills/qfai-sdd/references/sdd-triage.md +77 -7
- package/assets/init/.qfai/assistant/skills/qfai-sdd/references/spec-traceability-rules.md +39 -3
- package/assets/init/.qfai/assistant/skills/qfai-sdd/references/ui-design-contract-normalization.md +9 -3
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/change-request.md +14 -1
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/contracts/ui-contract.sample.yaml +13 -3
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/evidence/sdd-spec.md +5 -1
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/report/preflight_summary.md +3 -2
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/_policies/04_Business-Flow.md +4 -1
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/_policies/05_Contracts.md +12 -5
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/_policies/11_Slice-Policy.md +8 -9
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/02_User-stories.md +9 -0
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/tdd/test-list.md +68 -23
- package/assets/init/.qfai/assistant/skills/qfai-verify/SKILL.md +4 -4
- package/assets/init/.qfai/assistant/skills/qfai-verify/references/validate-json-schema.md +79 -0
- package/assets/init/.qfai/assistant/skills/web-research/SKILL.md +3 -2
- package/assets/init/root/qfai.config.yaml +11 -2
- package/dist/cli/index.cjs +13628 -3175
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.mjs +13835 -3365
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.cjs +20060 -13315
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +262 -9
- package/dist/index.d.ts +262 -9
- package/dist/index.mjs +17052 -10315
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -18,19 +18,34 @@ The agent reads the repository, produces the required artifacts, and iterates un
|
|
|
18
18
|
## Release status
|
|
19
19
|
|
|
20
20
|
- Release posture: runtime truthfulness is enforced.
|
|
21
|
-
- Prototyping is UI-only and runs a
|
|
22
|
-
`qfai prototyping iterate --cycle <n>`.
|
|
23
|
-
UI-bearing spec in
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
- Prototyping is UI-only and runs a primary-spec evolution loop driven by
|
|
22
|
+
`qfai prototyping iterate --cycle <n>`. Each run resolves exactly one
|
|
23
|
+
primary UI-bearing spec (`prototyping.primarySpecId` in `qfai.config.yaml`,
|
|
24
|
+
a `surface_type: ui-bearing` marker, or `--primary-spec-id`), freezes it at
|
|
25
|
+
cycle 0, and iterates `cycle 0..9` (max 10 cycles) with deterministic stop
|
|
26
|
+
conditions (exit codes 0 continue / 64 convergence / 65 max-iterations /
|
|
27
|
+
66 license-verify failure / 2 input or lock drift). The full set of
|
|
28
|
+
UI-bearing specs is frozen at cycle 0 as `frozenSurfaceUnion` and is read
|
|
29
|
+
only to detect surface drift on later cycles: secondary specs are **not**
|
|
30
|
+
evaluated by that run. Only one primary spec can therefore be evolved per
|
|
31
|
+
project: re-running cycle 0 for a second spec is refused without `--force`,
|
|
32
|
+
and with `--force` it re-seeds `prototyping.json` (`runId`, `specsCovered`,
|
|
33
|
+
`frozenSpecsCovered`) around the new single spec, so the earlier spec's
|
|
34
|
+
iterations do not survive as a valid loop. Iterating a second UI-bearing
|
|
35
|
+
spec has to wait for the per-spec iteration layout.
|
|
27
36
|
- Runtime observation is observed-only (no synthetic 200 / API / DB prototyping coverage).
|
|
28
37
|
- Per-iter evidence is a single `<screen>.review.json` per declared spec ×
|
|
29
38
|
screen pair (4-axis ordinal verdicts, 6 `*Feel` short-prose impressions
|
|
30
39
|
bounded to 200 words each, `layoutAntiPatternsDetected[]`,
|
|
31
|
-
`designMdViolations[]`, and `pivotDirective`).
|
|
32
|
-
|
|
33
|
-
`
|
|
40
|
+
`designMdViolations[]`, and `pivotDirective`). It is the only
|
|
41
|
+
reviewer-authored file, not the only per-cycle artifact: the CLI itself
|
|
42
|
+
always writes `iterate-plan.json` into the same `iter-NN/` directory, and
|
|
43
|
+
from cycle 1 onward — once the previous cycle is recorded in
|
|
44
|
+
`prototyping.json#iterations[]` — an advisory `iterate-context.json` holding
|
|
45
|
+
the prior scores and open blockers. The opt-in `--capture` and
|
|
46
|
+
`--cycle 0 --emit-skeletons` flags additionally write `<screen>.png` /
|
|
47
|
+
`<screen>.html` there. Archive the whole `iter-NN/` directory; no
|
|
48
|
+
`interaction.json` is written on any path.
|
|
34
49
|
- Calibration SSOT is the calibration pack referenced by `calibrationRef.packPath`.
|
|
35
50
|
|
|
36
51
|
## Installation
|
|
@@ -77,6 +92,17 @@ npx qfai report
|
|
|
77
92
|
- `npx qfai init`
|
|
78
93
|
- Creates the QFAI workspace under `.qfai/` (requirements/specs/contracts/report) and installs the AI assistant kit
|
|
79
94
|
(`assistant/` with the 4-layer tree — `constitution/`, `manifest/`, `catalog/`, `process/` — plus `agents/` and `skills/`), plus `qfai.config.yaml`.
|
|
95
|
+
- Options:
|
|
96
|
+
|
|
97
|
+
| Flag | Effect |
|
|
98
|
+
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
99
|
+
| `--dir <path>` | Output directory (default: the current directory). |
|
|
100
|
+
| `--force` | Re-generate `.qfai/assistant/{skills,agents}/**` and the published skill/agent wrappers under `.agents/`, `.claude/`, `.codex/` and `.github/`, and prune the legacy wrappers they replace. It also rewrites two kinds of plain (non-wrapper) generated files without asking: the integration READMEs `.agents/README.md`, `.codex/README.md`, `.claude/agents/README.md`, `.github/agents/README.md`, and `.github/copilot-instructions.md` — local edits to those five files are overwritten, so back them up first. `.github/instructions/*.instructions.md` is create-only even under `--force`. The template trees `--force` does not own — `assistant/manifest/**`, `specs/`, `contracts/`, `steering/` and the rest of `.qfai/` — stay create-only. The flag does not narrow what plain `init` always does: the managed `.gitignore` block, the legacy `.qfai/evidence/.gitignore` negations and `git config core.symlinks` are re-applied (and repaired when stale) on every non-dry-run, with or without `--force`. |
|
|
101
|
+
| `--dry-run` | Report what would change and write nothing. Use it to rehearse `--upgrade-assistant-tree`. |
|
|
102
|
+
| `--upgrade-assistant-tree` | Migrate a pre-recut project to the 4-layer tree. Only the two pre-recut surfaces `.qfai/assistant/instructions/` and `.qfai/assistant/steering/` are scanned; `assistant/manifest/` is already the canonical layer, so it is kept in place and never re-copied. This is what the `D-DEPRECATED-PATH` finding is asking for. Files are copied, never deleted: the legacy paths stay until you remove them, and an existing file at a scanned surface's migration target is kept (reported as `W-USER-EDIT-PRESERVED`) — that warning only ever covers those scanned targets. A project left with nothing but `manifest/` has nothing to migrate and is reported as "no pre-recut surfaces ... found". |
|
|
103
|
+
| `--yes` | Reserved for a future interactive mode; no behavioural difference today. |
|
|
104
|
+
| `--help`, `-h` | Print the CLI usage banner and exit without writing anything. Accepted by every command, `init` included, and handled before the command runs. |
|
|
105
|
+
|
|
80
106
|
- `npx qfai validate`
|
|
81
107
|
- Validates specs/contracts/scenarios/traceability and review artifacts
|
|
82
108
|
(`.qfai/review/review-*/summary.json` + minimum schema), writes `.qfai/report/validate.json`,
|
|
@@ -96,7 +122,7 @@ npx qfai report
|
|
|
96
122
|
Use `npx qfai prototyping preflight --target-url <url>` for a focused
|
|
97
123
|
prototyping preflight before the skill starts; it surfaces blocking
|
|
98
124
|
`QFAI-DCON-*` design-contract issues alongside runtime assumptions and resolves a runnable Playwright CLI launcher.
|
|
99
|
-
Use `npx qfai prototyping iterate --cycle <n> --target-url <url>` to drive each cycle of the
|
|
125
|
+
Use `npx qfai prototyping iterate --cycle <n> --target-url <url>` to drive each cycle of the primary-spec
|
|
100
126
|
evolution loop. Exit codes: 0 (continue), 64 (convergence), 65 (max-iterations), 66 (license-verify failure), 2 (input or lock drift).
|
|
101
127
|
Traceability refs inside prototyping evidence must use repo-root-relative concrete artifact refs
|
|
102
128
|
(for example `.qfai/specs/spec-0001/01_Spec.md#L3` or `.qfai/evidence/prototyping/iter-03/home.png`).
|
|
@@ -137,7 +163,7 @@ a `TC` obligation is routed by the `Level` its spec declares for it.
|
|
|
137
163
|
| none declared, or unreadable | `tests/integration/**` |
|
|
138
164
|
|
|
139
165
|
- Unit and Component test cases carry **no** ATDD annotation obligation. They are gated by the
|
|
140
|
-
`
|
|
166
|
+
per-spec `test-list.md` ledger instead, so do not copy them into `tests/integration/**` to satisfy this gate.
|
|
141
167
|
- A `TC` annotation outside the directory its declared `Level` names is rejected. The rule is `Level`-relative,
|
|
142
168
|
not a blanket ban: a `TC` in `tests/api/**` is accepted only for a test case that declares `L4`/`API`, and in
|
|
143
169
|
`tests/e2e/**` only for `L5`/`E2E`.
|
|
@@ -177,9 +203,10 @@ QFAI includes a small set of custom skills (stored under `.qfai/assistant/skills
|
|
|
177
203
|
in `.qfai/specs/_policies/03_Capabilities.md` before the row is accepted
|
|
178
204
|
(`QFAI-TRIAGE-006`). Every `01_Spec.md` declares a lifecycle
|
|
179
205
|
`Status: active | superseded | deprecated | removed` (`QFAI-STATUS-001..006`).
|
|
180
|
-
- **qfai-prototyping**:
|
|
181
|
-
|
|
182
|
-
|
|
206
|
+
- **qfai-prototyping**: Primary-spec design evolution loop. Resolves exactly
|
|
207
|
+
one primary UI-bearing spec per invocation and freezes it at cycle 0 (the
|
|
208
|
+
full UI-bearing set is recorded as `frozenSurfaceUnion` for drift detection
|
|
209
|
+
only), then iterates each `spec × screen` pair through up to 10 cycles
|
|
183
210
|
(`cycle 0..9`) of generate → capture → review with a 4-axis ordinal
|
|
184
211
|
rubric, 6 `*Feel` short-prose impressions (200-word bounded), explicit
|
|
185
212
|
layout anti-pattern detection (`lap-001..lap-008`), DESIGN.md token
|
|
@@ -292,7 +319,14 @@ validation:
|
|
|
292
319
|
|
|
293
320
|
Notes.
|
|
294
321
|
|
|
295
|
-
- `validate.json
|
|
322
|
+
- `validate.json` is a **public** surface: its keys are documented in
|
|
323
|
+
`.qfai/assistant/skills/qfai-verify/references/validate-json-schema.md` and a change to
|
|
324
|
+
them takes the `@api` path (`.qfai/assistant/constitution/change-classification.md`). The
|
|
325
|
+
skills instruct agents to read it, so it is a contract whether or not this file says so —
|
|
326
|
+
it used to say the opposite, which left a consumer following the skills depending on
|
|
327
|
+
something the README disclaimed. `message` text and the order of `issues` are still not
|
|
328
|
+
stable; match on `issues[].code`
|
|
329
|
+
- `report.json`, `doctor.json`, and `run-*` JSON logs are internal exports and are not a stable external contract; prefer `report.md` for integrations that must survive tool upgrades.
|
|
296
330
|
- Scenario files are expected to use the Gherkin extension `*.feature` (not `*.md`).
|
|
297
331
|
- `prototyping.calibration.packPath` points to the calibration pack SSOT; runtime and validator both resolve thresholds and iteration parameters from that pack.
|
|
298
332
|
- `prototyping.calibration.thresholds`, `maxIterations`, `plateauDelta`, and `plateauLookback` are unsupported public config fields.
|
|
@@ -364,8 +398,10 @@ Release gate behavior:
|
|
|
364
398
|
|
|
365
399
|
QFAI generates integration wrappers under `.agents/**`, `.claude/**`,
|
|
366
400
|
`.github/**`, and `.codex/**`.
|
|
367
|
-
|
|
368
|
-
|
|
401
|
+
Into `.github/workflows/` it writes exactly two files — `qfai-validate.yml`
|
|
402
|
+
and `qfai-tests.yml` — and touches nothing else there; both open with a
|
|
403
|
+
`# Generated by \`qfai init\`` line. Configure the rest of CI in your own
|
|
404
|
+
platform and run:
|
|
369
405
|
|
|
370
406
|
```bash
|
|
371
407
|
pnpm ci:gate
|
|
@@ -478,6 +514,7 @@ Typical customizations.
|
|
|
478
514
|
│ │ ├── spec_required_files.json
|
|
479
515
|
│ │ ├── structure.md
|
|
480
516
|
│ │ ├── tech.md
|
|
517
|
+
│ │ ├── test-layers-ci-lanes.md
|
|
481
518
|
│ │ ├── test-layers.md
|
|
482
519
|
│ │ ├── ui-definition-protocol.md
|
|
483
520
|
│ │ └── worklog-entry.schema.md
|
|
@@ -492,7 +529,7 @@ README files. Those files are created later by QFAI skills when real work exists
|
|
|
492
529
|
### AI work-log surface (`.qfai/steering/`)
|
|
493
530
|
|
|
494
531
|
`qfai init` also creates `.qfai/steering/`, the per-project work-log surface for
|
|
495
|
-
AI coding agents, with a `README.md` and `
|
|
532
|
+
AI coding agents, with a `README.md` and an `entry.md` template under `_templates/`. Each entry is a
|
|
496
533
|
markdown file with YAML frontmatter, and `npx qfai validate` polices the surface in
|
|
497
534
|
the `sdd` and full profiles via `W-WORKLOG-SCHEMA`, `W-WORKLOG-BROKEN-LINK`,
|
|
498
535
|
`W-WORKLOG-STALE`, `W-PENDING-PROMOTION` and `R-HANDOFF-INCOMPLETE`.
|
|
@@ -509,7 +546,7 @@ Integration wrappers are also generated for immediate use:
|
|
|
509
546
|
- Agents/Codex VS Code: `.agents/skills/**`
|
|
510
547
|
- Claude Code: `.claude/skills/**`, `.claude/agents/**`
|
|
511
548
|
- GitHub Copilot: `.github/skills/**`, `.github/agents/**`
|
|
512
|
-
- Codex: `.codex/skills/**`
|
|
549
|
+
- Codex: `.codex/skills/**`, `.codex/agents/**`
|
|
513
550
|
|
|
514
551
|
## Agent integrations
|
|
515
552
|
|
|
@@ -517,12 +554,30 @@ Integration wrappers are also generated for immediate use:
|
|
|
517
554
|
and generates thin wrapper assets for Agents/Codex VS Code / Copilot / Claude Code / Codex.
|
|
518
555
|
Canonical agent markdown under `.qfai/assistant/agents/**` uses a shared YAML frontmatter
|
|
519
556
|
subset (`name`, `description`, `tools`) compatible with Claude Code and GitHub Copilot,
|
|
520
|
-
while Codex consumes
|
|
521
|
-
|
|
557
|
+
while Codex consumes `.codex/agents/*.toml` profiles generated from that same markdown.
|
|
558
|
+
The `.claude` / `.github` agent wrappers are symlinks and follow the canonical document
|
|
559
|
+
automatically; the Codex profiles are generated files, so rerun `npx qfai init --force`
|
|
560
|
+
to refresh them (and any other wrapper asset that has drifted).
|
|
561
|
+
`--force` deletes as well as overwrites: it removes the command and prompt wrappers earlier releases
|
|
562
|
+
installed under `.claude/commands/` and `.github/prompts/`, and the skill wrappers it installed under
|
|
563
|
+
`.claude/skills/`, `.agents/skills/`, `.codex/skills/` and `.github/skills/` for skills QFAI no longer
|
|
564
|
+
ships — the directory wrappers releases before the symlink recut copied there as well as the symlinks
|
|
565
|
+
that replaced them. Files it did not write — a project's own slash command, prompt file or skill,
|
|
566
|
+
including one published from a project-authored `.qfai/assistant/skills/` entry — are left in place,
|
|
567
|
+
whatever they are named. Ownership is read from the file, not the name: a wrapper is removed only when
|
|
568
|
+
it carries the delegation line to the canonical document of the same name, or is a symlink into
|
|
569
|
+
`.qfai/assistant/skills/`. One consequence of that: a symlink has no content to prove who wrote it, so
|
|
570
|
+
if you publish a canonical skill of your own under a name QFAI itself once shipped, `--force` removes
|
|
571
|
+
that link. Your `.qfai/assistant/skills/` entry is untouched; re-create the link to publish it again.
|
|
522
572
|
|
|
523
573
|
## Contributing (for QFAI maintainers)
|
|
524
574
|
|
|
525
|
-
This repository is a monorepo, and the distributable package is under `packages/qfai
|
|
575
|
+
This repository is a monorepo, and the distributable package is under `packages/qfai`.
|
|
576
|
+
The repository root `README.md` and `packages/qfai/README.md` are kept aligned by
|
|
577
|
+
`scripts/check-readme-alignment.mjs`, which CI runs as part of `pnpm ci:lint`: every line
|
|
578
|
+
outside a `readme-align:ignore-start` / `readme-align:ignore-end` HTML-comment block must be
|
|
579
|
+
identical in both files. When you change documentation, apply the edit to both READMEs, or
|
|
580
|
+
wrap the intentionally file-specific part in those markers.
|
|
526
581
|
|
|
527
582
|
## License
|
|
528
583
|
|
|
@@ -67,7 +67,7 @@ being asked to judge, and falls into its own Stop condition ("Required evidence
|
|
|
67
67
|
|
|
68
68
|
- [ ] Review verdict is explicit
|
|
69
69
|
- [ ] Findings cite concrete artifacts or evidence
|
|
70
|
-
- [ ] Every finding declares `Severity:` and `Traces to:`; no blocking finding
|
|
70
|
+
- [ ] Every finding declares `Severity:` and `Traces to:`; no blocking finding traces to `none` or `record:*`
|
|
71
71
|
- [ ] Required gates and residual risks are recorded
|
|
72
72
|
|
|
73
73
|
## When to use
|
|
@@ -37,8 +37,8 @@ tools: [Read, Glob, Grep, Bash]
|
|
|
37
37
|
|
|
38
38
|
**The last two are what the `Audited evidence hash` is computed over.** This
|
|
39
39
|
role records that hash itself, over the row's phase-authored fields — and those
|
|
40
|
-
live in
|
|
41
|
-
|
|
40
|
+
live in a committed per-item evidence file so a fresh clone can reproduce the
|
|
41
|
+
audit. Without the ledger and the evidence home the row's
|
|
42
42
|
`Layer` selects, this role cannot identify its own audit subject: the hash goes
|
|
43
43
|
missing and gate items 10-11 stop, or the orchestrator computes it instead,
|
|
44
44
|
which is the one thing the contract says must not happen.
|
|
@@ -66,7 +66,7 @@ which is the one thing the contract says must not happen.
|
|
|
66
66
|
|
|
67
67
|
- [ ] Review verdict is explicit
|
|
68
68
|
- [ ] Findings cite concrete artifacts or evidence
|
|
69
|
-
- [ ] Every finding declares `Severity:` and `Traces to:`; no blocking finding
|
|
69
|
+
- [ ] Every finding declares `Severity:` and `Traces to:`; no blocking finding traces to `none` or `record:*`
|
|
70
70
|
- [ ] Required gates and residual risks are recorded
|
|
71
71
|
|
|
72
72
|
## When to use
|
|
@@ -32,7 +32,7 @@ tools: [Read, Write, Edit, Glob, Grep, Bash]
|
|
|
32
32
|
- Work Orders for each subagent (scope, inputs, outputs, gates)
|
|
33
33
|
- Stage Gates plan + current status
|
|
34
34
|
- Completion report (DoD checklist + evidence links)
|
|
35
|
-
- Evidence summary for `.qfai/evidence/` (
|
|
35
|
+
- Evidence summary for `.qfai/evidence/` (commit only paths re-included by the managed block)
|
|
36
36
|
|
|
37
37
|
## Stop conditions
|
|
38
38
|
|
|
@@ -45,7 +45,7 @@ tools: [Read, Write, Edit, Glob, Grep, Bash]
|
|
|
45
45
|
## Sign-off
|
|
46
46
|
|
|
47
47
|
- [ ] Deliverables are complete
|
|
48
|
-
- [ ] Evidence is present
|
|
48
|
+
- [ ] Evidence is present under the managed tracking policy
|
|
49
49
|
- [ ] Stage gates are PASS
|
|
50
50
|
- [ ] Reviewer sign-off recorded
|
|
51
51
|
|
|
@@ -30,7 +30,8 @@ tools: [Read, Write, Edit, Glob, Grep, Bash]
|
|
|
30
30
|
- .github/instructions/principles.instructions.md
|
|
31
31
|
- Root `DESIGN.md` (brand SSOT: front-matter tokens plus `# Brand Philosophy` body)
|
|
32
32
|
- Reference pool framed as deviate-from inputs, screen contracts (`uiux/40_screen_contracts.md`), optional tokens, optional fallback HTML/CSS mock, and Mermaid flows
|
|
33
|
-
- Evaluator axes
|
|
33
|
+
- Evaluator axes (information architecture / navigation flow / usability / functionality) are fixed by
|
|
34
|
+
the review validation the QFAI CLI applies (restated in `.qfai/assistant/skills/qfai-prototyping/references/reviewer-prompt.md`), not sidecar files
|
|
34
35
|
- Runtime screenshots or rendered evidence when available
|
|
35
36
|
|
|
36
37
|
## Deliverables
|
|
@@ -15,7 +15,7 @@ tools: [Read, Glob, Grep, Bash]
|
|
|
15
15
|
- Audit frontend changes for correctness and user-facing risk.
|
|
16
16
|
- Audit layout sanity, interaction usability, and accessibility guardrails.
|
|
17
17
|
- Audit visual design, token alignment, and service-level UX coherence.
|
|
18
|
-
- Reconcile sidecar artifacts (
|
|
18
|
+
- Reconcile sidecar artifacts (screen contracts), design tokens, mermaid flows, and rendered output consistency.
|
|
19
19
|
HTML mock is optional fallback evidence only. Design tokens are supporting input.
|
|
20
20
|
- For UI implementation, compare rendered output against `.qfai/contracts/design/prototype-handoff.yaml`, canonical prototype screenshots, HTML snapshots, and `.qfai/prototypes/winner/index.html`.
|
|
21
21
|
- Reject prototype parity when implementation loses CTA hierarchy, spacing rhythm, information density,
|
|
@@ -138,9 +138,8 @@ In addition to traceability-based coverage (US/TC/CON-API existence), verify the
|
|
|
138
138
|
|
|
139
139
|
- Confirm a Coverage Depth Matrix exists at `.qfai/evidence/coverage-depth-<spec-id>.md` (produced by `test-design-analyst`).
|
|
140
140
|
Missing matrix: REVISE from the ATDD review cycle onward; on an SDD review cycle record it as a finding. See the scope note.
|
|
141
|
-
A matrix that exists only inside `.qfai/evidence/atdd-<spec-id>.md` is a **missing** matrix: that file is
|
|
142
|
-
|
|
143
|
-
judgement cannot be re-made by anyone reading the repository.
|
|
141
|
+
A matrix that exists only inside `.qfai/evidence/atdd-<spec-id>.md` is a **missing** matrix: that committed file is the
|
|
142
|
+
ledger's per-item evidence payload, not the dedicated matrix artifact whose justifications this gate reads.
|
|
144
143
|
- Check that each US/TC has test cases for at minimum: normal path AND error/failure path.
|
|
145
144
|
- Flag any US/TC that has only normal-path test cases as a coverage gap.
|
|
146
145
|
- Reference: `.qfai/assistant/skills/qfai-atdd/references/test-case-depth-checklist.md`
|
|
@@ -154,8 +153,9 @@ In addition to traceability-based coverage (US/TC/CON-API existence), verify the
|
|
|
154
153
|
The Coverage Depth Matrix is an **ATDD-stage artifact**: it is defined in
|
|
155
154
|
`.qfai/assistant/skills/qfai-atdd/references/test-case-depth-checklist.md`, listed as an ATDD
|
|
156
155
|
Mandatory Output,
|
|
157
|
-
and written to `.qfai/evidence/coverage-depth-<spec-id>.md` — a committed path
|
|
158
|
-
|
|
156
|
+
and written to `.qfai/evidence/coverage-depth-<spec-id>.md` — a committed governance path alongside
|
|
157
|
+
`implement-<spec-id>.md` and `atdd-<spec-id>.md`. Only run-scoped evidence remains ignored.
|
|
158
|
+
`qfai-sdd` neither defines the matrix layout nor ships a section for it, so:
|
|
159
159
|
|
|
160
160
|
- Apply this check from the **ATDD review cycle onward**, where
|
|
161
161
|
`.qfai/assistant/skills/qfai-atdd/SKILL.md` lists
|
|
@@ -59,8 +59,9 @@ At both stages: when business rules (BR-\*) exist, verify each BR has at least o
|
|
|
59
59
|
- Test-case quality and traceability findings
|
|
60
60
|
- **Coverage Depth Matrix** (per spec, using the template in the depth checklist reference).
|
|
61
61
|
Destination: `.qfai/evidence/coverage-depth-<spec-id>.md` from the ATDD stage onward — its own
|
|
62
|
-
file, because
|
|
63
|
-
justification behind each `❌` is the input `qa-gatekeeper`
|
|
62
|
+
file, because it has its own committed governance lifecycle separate from the committed
|
|
63
|
+
per-item TDD evidence, and the justification behind each `❌` is the input `qa-gatekeeper`
|
|
64
|
+
reads. During SDD there is
|
|
64
65
|
no evidence artifact that holds it, so report depth gaps as findings instead of producing the
|
|
65
66
|
matrix format.
|
|
66
67
|
- Volume estimate and risk notes
|
|
@@ -42,6 +42,9 @@ QFAI が定義する、`npx qfai validate` の UI/UX 関連出力ガイドライ
|
|
|
42
42
|
- 許容値: `web`, `windows`, `mobile-ios`, `mobile-android`, `cross-platform`
|
|
43
43
|
- 未指定時: 自動検出(config → project files → fallback to `web`)
|
|
44
44
|
- 未知の値: warning 発行。platform 値は保持しつつ、実質的に common ルールのみ適用
|
|
45
|
+
- 参照する profile: `prototyping` / `verify` / `full` / `saas-package` のみ。
|
|
46
|
+
`discussion` / `sdd` / `atdd` / `tdd` は platform を読まないため、これらに
|
|
47
|
+
`--platform` を渡すと未使用である旨の warning のみを発行する(未知値チェックは走らない)
|
|
45
48
|
|
|
46
49
|
## Known Limitations
|
|
47
50
|
|