qfai 1.8.6 → 1.8.7
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 +27 -56
- package/assets/init/.qfai/assistant/instructions/requirements-decomposition.md +1 -1
- package/assets/init/.qfai/assistant/instructions/workflow.md +2 -2
- package/assets/init/.qfai/assistant/skills/qfai-configure/SKILL.md +6 -6
- package/assets/init/.qfai/assistant/skills/qfai-discussion/SKILL.md +8 -8
- package/assets/init/.qfai/assistant/skills/qfai-discussion/references/design-dna-intake.md +6 -4
- package/assets/init/.qfai/assistant/skills/qfai-discussion/references/discussion-artifact-rules.md +62 -0
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/prototyping.yaml +4 -12
- package/assets/init/.qfai/assistant/skills/qfai-implement/SKILL.md +13 -8
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/SKILL.md +69 -188
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/generator-prompt.md +35 -0
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/handoff.md +41 -0
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/iteration-loop.md +51 -0
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/reviewer-prompt.md +75 -0
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/templates/contracts/prototype-handoff.sample.yaml +14 -38
- package/assets/init/.qfai/assistant/skills/qfai-sdd/SKILL.md +16 -16
- package/assets/init/.qfai/assistant/skills/qfai-sdd/references/contract-artifact-rules.md +30 -0
- package/assets/init/.qfai/assistant/skills/qfai-sdd/references/review-cycle-playbook.md +5 -0
- package/assets/init/.qfai/assistant/skills/qfai-sdd/references/sdd-phase-checklists.md +2 -2
- package/assets/init/.qfai/assistant/skills/qfai-sdd/references/sdd-quality-gate.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-sdd/references/spec-traceability-rules.md +75 -0
- package/assets/init/.qfai/assistant/skills/qfai-sdd/references/ui-design-contract-normalization.md +22 -11
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/_policies/04_Business-Flow.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/01_Spec.md +2 -2
- package/assets/init/.qfai/assistant/skills/qfai-verify/SKILL.md +7 -7
- package/assets/init/.qfai/assistant/steering/agent-routing.yml +17 -28
- package/assets/init/.qfai/assistant/steering/review-profiles.yml +0 -3
- package/assets/init/.qfai/assistant/steering/structure.md +1 -1
- package/assets/uix-rev/comparison-review.md +3 -4
- package/dist/cli/index.cjs +3738 -6931
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.mjs +4173 -7367
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.cjs +5584 -8569
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -370
- package/dist/index.d.ts +11 -370
- package/dist/index.mjs +5551 -8528
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -6
- package/assets/init/.qfai/README.md +0 -117
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/33_exploration_rubric.md +0 -46
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/34_evaluator_calibration.md +0 -21
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/design-differentiation.md +0 -17
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/design-system-compliance.md +0 -22
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/evidence-requirements.md +0 -70
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/iteration-cycle.md +0 -68
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/l1-review-guide.md +0 -37
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/l2-review-guide.md +0 -44
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/prototype-workspace.md +0 -45
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/reviewer-gate.md +0 -45
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/surface-framing.md +0 -38
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/templates/contracts/design-system.sample.yaml +0 -19
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/templates/contracts/selected-direction.sample.yaml +0 -8
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/templates/contracts/ui-0001-order-mockable.yaml +0 -67
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/contracts/absorption-policy.sample.yaml +0 -7
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/contracts/evaluation-rubric.sample.yaml +0 -35
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/contracts/evaluator-calibration.sample.yaml +0 -15
- package/assets/init/.qfai/assistant/skills.local/README.md +0 -26
- package/assets/init/.qfai/contracts/README.md +0 -67
- package/assets/init/.qfai/contracts/api/README.md +0 -68
- package/assets/init/.qfai/contracts/db/README.md +0 -32
- package/assets/init/.qfai/contracts/design/README.md +0 -48
- package/assets/init/.qfai/contracts/ui/README.md +0 -162
- package/assets/init/.qfai/discussion/README.md +0 -160
- package/assets/init/.qfai/evidence/README.md +0 -99
- package/assets/init/.qfai/evidence/calibration.yaml +0 -26
- package/assets/init/.qfai/report/README.md +0 -26
- package/assets/init/.qfai/review/README.md +0 -128
- package/assets/init/.qfai/review_archive/.gitignore +0 -3
- package/assets/init/.qfai/review_archive/README.md +0 -30
- package/assets/init/.qfai/specs/README.md +0 -100
- package/assets/init/.qfai/specs/spec-XXXX/tdd/test-list.md +0 -4
package/README.md
CHANGED
|
@@ -18,11 +18,13 @@ 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;
|
|
21
|
+
- Prototyping is UI-only; v2.0 (spec-0017) runs a single-thread evolution loop
|
|
22
|
+
driven by `qfai prototyping iterate --cycle <n>`, with deterministic stop
|
|
23
|
+
conditions (exit codes 0/64/65/2). The v1.x mode tier and full-harness
|
|
24
|
+
machinery are removed.
|
|
22
25
|
- Runtime observation is observed-only (no synthetic 200 / API / DB prototyping coverage).
|
|
23
|
-
-
|
|
26
|
+
- Per-iter evidence is `screenshot.png` + `index.html` per declared screen plus a single `review.json` (4-axis ordinal, prose critique, anti-slop detection, pivot directive).
|
|
24
27
|
- Calibration SSOT is the calibration pack referenced by `calibrationRef.packPath`.
|
|
25
|
-
- Current repo note: some repo-wide `qfai validate --fail-on error` blockers still come from historical review/evidence/ATDD/TDD artifacts and are being cleaned incrementally.
|
|
26
28
|
|
|
27
29
|
## Quick start
|
|
28
30
|
|
|
@@ -60,19 +62,15 @@ npx qfai report
|
|
|
60
62
|
primary spec, UI contracts, design contract readiness, active agent-wrapper
|
|
61
63
|
integrations, shipped role-input readiness, Playwright CLI launcher
|
|
62
64
|
resolution/probing, and target URL reachability.
|
|
63
|
-
Note: prototyping evidence (`.qfai/evidence/prototyping.json`) is produced by the AI workflow
|
|
64
|
-
(`/qfai-prototyping`
|
|
65
|
+
Note: prototyping evidence (`.qfai/evidence/prototyping/prototyping.json` v3.0) is produced by the AI workflow
|
|
66
|
+
(`/qfai-prototyping` v2.0, see spec-0017), not by a general-purpose end-user CLI flow.
|
|
65
67
|
Use `npx qfai prototyping preflight --target-url <url>` for a focused
|
|
66
|
-
prototyping preflight before the skill starts; it
|
|
67
|
-
`QFAI-DCON-*` design-contract issues alongside runtime assumptions
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
to generate the round-scoped review bundle and command plans the AI evaluator sub-agent consumes, then use
|
|
73
|
-
`round-harvest`, `round-narrow`, `round-absorb`, and `round-reimplement-verify` to advance the candidate funnel.
|
|
74
|
-
`qfai validate` consumes the resulting evidence files, including `mode.effective` and `fullHarness` metadata when present.
|
|
75
|
-
Traceability refs inside prototyping evidence must use repo-root-relative concrete artifact refs (for example `.qfai/specs/spec-0001/01_Spec.md#L3` or `.qfai/evidence/render.json#/screens/0`).
|
|
68
|
+
prototyping preflight before the skill starts; it surfaces blocking
|
|
69
|
+
`QFAI-DCON-*` design-contract issues alongside runtime assumptions and resolves a runnable Playwright CLI launcher.
|
|
70
|
+
Use `npx qfai prototyping iterate --cycle <n> --target-url <url>` to drive each cycle of the v2.0 single-thread
|
|
71
|
+
evolution loop. Exit codes: 0 (continue), 64 (convergence), 65 (max-iterations), 2 (input error).
|
|
72
|
+
Traceability refs inside prototyping evidence must use repo-root-relative concrete artifact refs
|
|
73
|
+
(for example `.qfai/specs/spec-0017/01_Spec.md#L3` or `.qfai/evidence/prototyping/iter-03/home.png`).
|
|
76
74
|
Absolute paths are invalid. The same strict ref grammar is enforced for top-level and leaf evidence-bearing fields, including
|
|
77
75
|
`runtimeGate.evidenceRefs`, `runtimeGate.ui[].declaredRef`, `runtimeGate.ui[].renderEvidenceRefs[]`,
|
|
78
76
|
`runtimeGate.ui[].browserQaEvidenceRefs[]`, `specs[].coverageRefs[].declaredRef`, `specs[].coverageRefs[].observedRefs[]`,
|
|
@@ -96,9 +94,9 @@ npx qfai report
|
|
|
96
94
|
|
|
97
95
|
`qfai validate` enforces spec-to-test traceability with directory-based rules.
|
|
98
96
|
|
|
99
|
-
- `tests/e2e/**`: annotate all covered user stories with `QFAI:SPEC-
|
|
100
|
-
- `tests/integration/**`: annotate all covered test cases with `QFAI:SPEC-
|
|
101
|
-
- `tests/api/**`: annotate all covered API contracts with `QFAI:CON-API-
|
|
97
|
+
- `tests/e2e/**`: annotate all covered user stories with concrete IDs such as `QFAI:SPEC-0001:US-0001`.
|
|
98
|
+
- `tests/integration/**`: annotate all covered test cases with concrete IDs such as `QFAI:SPEC-0001:TC-0001`.
|
|
99
|
+
- `tests/api/**`: annotate all covered API contracts with concrete IDs such as `QFAI:CON-API-0001`.
|
|
102
100
|
- `tests/api/**` and `tests/e2e/**` must not use `TC` annotations.
|
|
103
101
|
- `AC` annotations are not required in code; AC coverage is treated as indirect through full `TC` coverage.
|
|
104
102
|
|
|
@@ -111,7 +109,7 @@ The agent reads QFAI assets under `.qfai/assistant/` and produces or updates SDD
|
|
|
111
109
|
### Where the skills live
|
|
112
110
|
|
|
113
111
|
- QFAI canonical skills (SSOT): `.qfai/assistant/skills/**` (may be overwritten when you re-run `qfai init --force`).
|
|
114
|
-
-
|
|
112
|
+
- QFAI no longer creates local override scaffolds. Project-specific guidance should live in your repository's normal agent docs or be created explicitly by your AI workflow.
|
|
115
113
|
|
|
116
114
|
### Minimal custom skill set
|
|
117
115
|
|
|
@@ -124,9 +122,11 @@ QFAI includes a small set of custom skills (stored under `.qfai/assistant/skills
|
|
|
124
122
|
as 15 required markdown files under `.qfai/discussion/discussion-<ts>/`.
|
|
125
123
|
UI-bearing discussion packs may include `prototyping.yaml` as an optional recommendation artifact; non-ui discussion packs typically omit it.
|
|
126
124
|
- **qfai-sdd**: Unified SDD entrypoint with discussion-pack preflight guard (missing/incomplete/blocking OQ causes stop + next action guidance).
|
|
127
|
-
- **qfai-prototyping
|
|
128
|
-
|
|
129
|
-
|
|
125
|
+
- **qfai-prototyping** (v2.0, spec-0017): Single-thread design evolution loop. One prototype iterated
|
|
126
|
+
through up to 15 cycles of generate -> capture -> review with a 4-axis ordinal rubric, anti-slop
|
|
127
|
+
detection, prose critique, and explicit pivot permission. Stops deterministically when all four
|
|
128
|
+
axes hit `exceptional` (exit 64) or the iteration budget is exhausted (exit 65). The v1.x funnel,
|
|
129
|
+
mode tier, polish/branch cycles, and 100/100 completion gate are removed.
|
|
130
130
|
- **qfai-atdd**: Implement acceptance tests driven by specs/scenarios.
|
|
131
131
|
- **qfai-implement**: Unified TDD micro-cycle (Red/Green/Refactor) one test at a time using `test-list.md` as the execution ledger, including ledger status updates and exception closure.
|
|
132
132
|
- **qfai-verify**: Run full-scan local quality gates (`validate --fail-on error`, `report`, repo gates) and produce reviewer-approved evidence under `.qfai/evidence/`.
|
|
@@ -377,10 +377,7 @@ Typical customizations.
|
|
|
377
377
|
│ │ │ │ └── SKILL.md
|
|
378
378
|
│ │ │ └── qfai-verify
|
|
379
379
|
│ │ │ └── SKILL.md
|
|
380
|
-
│ │ ├── skills.local
|
|
381
|
-
│ │ │ └── README.md
|
|
382
380
|
│ │ ├── steering
|
|
383
|
-
│ │ │ ├── README.md
|
|
384
381
|
│ │ │ ├── agent-catalog.yml
|
|
385
382
|
│ │ │ ├── agent-routing.yml
|
|
386
383
|
│ │ │ ├── review-gate.rules.yml
|
|
@@ -388,40 +385,14 @@ Typical customizations.
|
|
|
388
385
|
│ │ │ ├── product.md
|
|
389
386
|
│ │ │ ├── structure.md
|
|
390
387
|
│ │ │ └── tech.md
|
|
391
|
-
│
|
|
392
|
-
│ ├── discussion
|
|
393
|
-
│ │ ├── README.md
|
|
394
|
-
│ │ └── discussion-YYYYMMDDhhmmssSSS
|
|
395
|
-
│ │ ├── 01_Context.md
|
|
396
|
-
│ │ ├── ...
|
|
397
|
-
│ │ ├── 14_Review-Request.md
|
|
398
|
-
│ │ ├── 99_delta.md
|
|
399
|
-
│ │ └── prototyping.yaml
|
|
400
|
-
│ ├── contracts
|
|
401
|
-
│ │ ├── api
|
|
402
|
-
│ │ │ └── README.md
|
|
403
|
-
│ │ ├── db
|
|
404
|
-
│ │ │ └── README.md
|
|
405
|
-
│ │ ├── ui
|
|
406
|
-
│ │ │ └── README.md
|
|
407
|
-
│ │ └── README.md
|
|
408
|
-
│ ├── report
|
|
409
|
-
│ │ ├── .gitignore
|
|
410
|
-
│ │ ├── README.md
|
|
411
|
-
│ │ └── run-20260218123456789
|
|
412
|
-
│ │ ├── run.json
|
|
413
|
-
│ │ ├── validator.json
|
|
414
|
-
│ │ ├── traceability.json
|
|
415
|
-
│ │ └── summary.md
|
|
416
|
-
│ ├── review
|
|
417
|
-
│ │ ├── .gitignore
|
|
418
|
-
│ │ └── README.md
|
|
419
|
-
│ ├── specs
|
|
420
|
-
│ │ └── README.md
|
|
421
|
-
│ └── README.md
|
|
388
|
+
│ └── waivers.yml
|
|
422
389
|
└── qfai.config.yaml
|
|
423
390
|
```
|
|
424
391
|
|
|
392
|
+
`qfai init` does not seed `.qfai` workflow artifacts such as specs, discussions,
|
|
393
|
+
contracts, evidence, reports, reviews, placeholder spec directories, or artifact
|
|
394
|
+
README files. Those files are created later by QFAI skills when real work exists.
|
|
395
|
+
|
|
425
396
|
Integration wrappers are also generated for immediate use:
|
|
426
397
|
|
|
427
398
|
- Agents/Codex VS Code: `.agents/skills/**`
|
|
@@ -41,7 +41,7 @@ This document is the decision rule SSOT for AI and humans when answering:
|
|
|
41
41
|
### Rule 3 - Keep ambiguity explicit
|
|
42
42
|
|
|
43
43
|
- Unknowns remain explicit as Open Questions.
|
|
44
|
-
- Resolved answers are promoted to `_policies` or
|
|
44
|
+
- Resolved answers are promoted to `_policies` or target spec artifacts, then OQ status is updated.
|
|
45
45
|
|
|
46
46
|
## How to decompose (mechanical procedure)
|
|
47
47
|
|
|
@@ -49,7 +49,7 @@ Do not proceed without a declared Change Type.
|
|
|
49
49
|
0. Steering refresh (project memory bootstrap)
|
|
50
50
|
1. Discussion (optional): clarify idea → requirement seed
|
|
51
51
|
2. Requirements: discussion pack in `.qfai/discussion/`
|
|
52
|
-
3. Specification (SDD): unified preflight + `_policies` / `spec
|
|
52
|
+
3. Specification (SDD): unified preflight + `_policies` / `spec-*/01..10`
|
|
53
53
|
4. Prototyping (optional): contract-aligned implementation skeleton
|
|
54
54
|
5. Acceptance tests (ATDD): runnable E2E/API/Integration tests derived from specs/contracts obligations (`US` / `TC` / `CON-API`)
|
|
55
55
|
6. Verify: run quality gates and provide evidence
|
|
@@ -59,7 +59,7 @@ Stage 3 (`/qfai-sdd`) target policy:
|
|
|
59
59
|
- With argument (`/qfai-sdd <spec-id-or-name>`): scope is the matched single spec only.
|
|
60
60
|
- Without argument (`/qfai-sdd`): scope is all capabilities from `.qfai/specs/_policies/03_Capabilities.md` in order.
|
|
61
61
|
- `/qfai-sdd` must create or refresh `.qfai/specs/_policies/11_Slice-Policy.md` before deciding whether a spec change is CREATE / UPDATE / DELETE.
|
|
62
|
-
- For no-argument batch runs, execute Contracts-first and Outline once, then delegate Slice/Plan/Delta in parallel per
|
|
62
|
+
- For no-argument batch runs, execute Contracts-first and Outline once, then delegate Slice/Plan/Delta in parallel per target spec.
|
|
63
63
|
|
|
64
64
|
Prototyping stage policy:
|
|
65
65
|
|
|
@@ -40,11 +40,11 @@ Skill-specific examples:
|
|
|
40
40
|
|
|
41
41
|
- Follow `.qfai/assistant/instructions/shared-skill-operating-baseline.md#format-ssot-mandatory`.
|
|
42
42
|
|
|
43
|
-
- Before writing or editing any `.qfai/**` artifact, read
|
|
44
|
-
- `.qfai/discussion/
|
|
45
|
-
- `.qfai/
|
|
46
|
-
- `.qfai/
|
|
47
|
-
- `.qfai/evidence
|
|
43
|
+
- Before writing or editing any `.qfai/**` artifact, read the relevant skill-local reference or template:
|
|
44
|
+
- `.qfai/assistant/skills/qfai-discussion/references/discussion-artifact-rules.md`
|
|
45
|
+
- `.qfai/assistant/skills/qfai-sdd/references/spec-traceability-rules.md`
|
|
46
|
+
- `.qfai/assistant/skills/qfai-sdd/references/contract-artifact-rules.md`
|
|
47
|
+
- `.qfai/assistant/skills/qfai-prototyping/references/evidence-requirements.md`
|
|
48
48
|
|
|
49
49
|
## Inputs Priority (Preflight)
|
|
50
50
|
|
|
@@ -244,7 +244,7 @@ These principles are inspired by "constitution / articles" patterns used by othe
|
|
|
244
244
|
|
|
245
245
|
## README Rule
|
|
246
246
|
|
|
247
|
-
Do not
|
|
247
|
+
Do not create `.qfai/**/README.md` files as scaffold or format documentation; keep artifact guidance in skill references/templates.
|
|
248
248
|
|
|
249
249
|
- READMEs are reference guides. Follow their structure, templates, and checklists.
|
|
250
250
|
|
|
@@ -46,8 +46,6 @@ UI-bearing packs must produce the following sidecars as primary truth:
|
|
|
46
46
|
- `uiux/30_exploration_brief.md`
|
|
47
47
|
- `uiux/31_reference_pool.md`
|
|
48
48
|
- `uiux/32_design_anti_goals.md`
|
|
49
|
-
- `uiux/33_exploration_rubric.md`
|
|
50
|
-
- `uiux/34_evaluator_calibration.md`
|
|
51
49
|
- `uiux/40_screen_contracts.md`
|
|
52
50
|
- `uiux/50_review_input_bundle.md`
|
|
53
51
|
|
|
@@ -68,12 +66,14 @@ For UI-bearing targets, follow `references/design-dna-intake.md` while authoring
|
|
|
68
66
|
|
|
69
67
|
## UI-bearing Authoring Requirements
|
|
70
68
|
|
|
71
|
-
- `30_exploration_brief.md` must define product intent,
|
|
72
|
-
- `31_reference_pool.md` must define exploration references
|
|
73
|
-
- `32_design_anti_goals.md` must contain explicit anti-goals
|
|
74
|
-
- `
|
|
75
|
-
|
|
76
|
-
|
|
69
|
+
- `30_exploration_brief.md` must define product intent, brand signals, and differentiation targets.
|
|
70
|
+
- `31_reference_pool.md` must define exploration references with adopted points, rejected points, and copy risk — framed as **deviate-from** inputs (not imitate-this) for downstream `/qfai-prototyping` reviewer.
|
|
71
|
+
- `32_design_anti_goals.md` must contain explicit anti-goals; this also feeds the global anti-slop pattern list consulted by the v2.0 reviewer.
|
|
72
|
+
- `50_review_input_bundle.md` must document review inputs for downstream skills.
|
|
73
|
+
|
|
74
|
+
v1.x sidecars `33_exploration_rubric.md` and `34_evaluator_calibration.md`
|
|
75
|
+
are removed in spec-0017 P4 (axes are global constants in
|
|
76
|
+
`core/prototyping/iteration.ts#OrdinalScore`, ordinal 4-step scale).
|
|
77
77
|
|
|
78
78
|
## Completion Contract (Shared)
|
|
79
79
|
|
|
@@ -22,7 +22,9 @@ Use this reference only for UI-bearing discussion packs.
|
|
|
22
22
|
## Output Mapping
|
|
23
23
|
|
|
24
24
|
- Put product intent and brand signals in `30_exploration_brief.md`.
|
|
25
|
-
- Put all reference decisions in `31_reference_pool.md
|
|
26
|
-
- Put prohibited visual directions in `32_design_anti_goals.md
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
- Put all reference decisions in `31_reference_pool.md` (deviate-from input, not imitate).
|
|
26
|
+
- Put prohibited visual directions in `32_design_anti_goals.md` (also feeds reviewer anti-slop).
|
|
27
|
+
|
|
28
|
+
v1.x sidecars `33_exploration_rubric.md` and `34_evaluator_calibration.md`
|
|
29
|
+
are removed in spec-0017 P4. Evaluation axes are now global constants in
|
|
30
|
+
`core/prototyping/iteration.ts#OrdinalScore`.
|
package/assets/init/.qfai/assistant/skills/qfai-discussion/references/discussion-artifact-rules.md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Discussion Artifact Rules
|
|
2
|
+
|
|
3
|
+
Use this file when `/qfai-discussion` creates or reviews `.qfai/discussion/discussion-*` packs.
|
|
4
|
+
|
|
5
|
+
## Required Pack
|
|
6
|
+
|
|
7
|
+
Each pack uses immutable timestamp naming: `.qfai/discussion/discussion-YYYYMMDDhhmmssSSS/`.
|
|
8
|
+
|
|
9
|
+
Required files:
|
|
10
|
+
|
|
11
|
+
- `01_Context.md`
|
|
12
|
+
- `02_Inception-Deck.md`
|
|
13
|
+
- `03_Story-Workshop.md`
|
|
14
|
+
- `04_Sources.md`
|
|
15
|
+
- `05_Scope.md`
|
|
16
|
+
- `06_REQ.md`
|
|
17
|
+
- `07_NFR.md`
|
|
18
|
+
- `08_Glossary.md`
|
|
19
|
+
- `09_Constraints.md`
|
|
20
|
+
- `10_Policy.md`
|
|
21
|
+
- `11_OQ-Register.md`
|
|
22
|
+
- `12_OQ-Resolution-Log.md`
|
|
23
|
+
- `13_Deferred.md`
|
|
24
|
+
- `14_Review-Request.md`
|
|
25
|
+
- `99_delta.md`
|
|
26
|
+
|
|
27
|
+
UI-bearing discussion packs may include `prototyping.yaml` as an optional recommendation artifact; non-ui discussion packs typically omit it. For `ui_bearing: false`, typically omit `prototyping.yaml`. Current discussion-pack readiness does not block on missing `prototyping.yaml`.
|
|
28
|
+
|
|
29
|
+
## Rules
|
|
30
|
+
|
|
31
|
+
- Run interview and requirement capture until `Disposition: open` is zero in `11_OQ-Register.md`.
|
|
32
|
+
- OQ `Gate` values are `discussion`, `sdd`, `atdd`, `tdd`, or `ops`.
|
|
33
|
+
- `deferred` is allowed only when `13_Deferred.md` has complete metadata.
|
|
34
|
+
- Discussion outputs are rationale and intake logs; do not duplicate `.qfai/specs/**` SSOT.
|
|
35
|
+
- `03_Story-Workshop.md` must include at least one Mermaid diagram.
|
|
36
|
+
- Use Mermaid fences only for diagrams.
|
|
37
|
+
- `14_Review-Request.md` must reference `.qfai/assistant/steering/agent-routing.yml` and `review-profiles.yml`.
|
|
38
|
+
|
|
39
|
+
## UI/UX Exploration Family
|
|
40
|
+
|
|
41
|
+
For UI-bearing packs, use:
|
|
42
|
+
|
|
43
|
+
- `04_Sources.md` for trend translation and competitive reference registry
|
|
44
|
+
- `uiux/30_exploration_brief.md`
|
|
45
|
+
- `uiux/31_reference_pool.md`
|
|
46
|
+
- `uiux/32_design_anti_goals.md`
|
|
47
|
+
- `uiux/40_screen_contracts.md`
|
|
48
|
+
|
|
49
|
+
Discussion is exploration-first and must not choose a single visual winner or final design system. Those are downstream prototyping outputs.
|
|
50
|
+
|
|
51
|
+
## `prototyping.yaml`
|
|
52
|
+
|
|
53
|
+
When `prototyping.yaml` is present, use the v2.0 single-thread schema:
|
|
54
|
+
|
|
55
|
+
```yaml
|
|
56
|
+
prototyping:
|
|
57
|
+
surface: web # web | mobile | desktop | mixed
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The v1.x `recommended_mode` / `allowed_modes` / `mode_expectations` fields
|
|
61
|
+
were removed in spec-0017 P3 (the single-thread evolution loop fixes
|
|
62
|
+
iteration count globally to 15).
|
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
prototyping:
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
allowed_modes:
|
|
6
|
-
- full-harness
|
|
2
|
+
# v2.0 single-thread evolution loop (spec-0017): mode/maxCycles concepts
|
|
3
|
+
# are removed; iteration count is fixed at 15 globally in
|
|
4
|
+
# `core/prototyping/iteration.ts#MAX_ITERATIONS`.
|
|
7
5
|
# Replace `web` with one of the prototyping-supported surfaces if needed:
|
|
8
6
|
# web | mobile | desktop | mixed
|
|
9
7
|
# (discussion classification also allows `cli` and `non-ui`, but those are
|
|
10
|
-
# not valid prototyping execution surfaces
|
|
11
|
-
# `packages/qfai/src/core/prototyping/surfacePolicy.ts` — PROTOTYPING_SUPPORTED_SURFACES.)
|
|
8
|
+
# not valid prototyping execution surfaces.)
|
|
12
9
|
surface: web
|
|
13
|
-
mode_expectations:
|
|
14
|
-
full-harness:
|
|
15
|
-
expected_iterations: "2+"
|
|
16
|
-
process: "measure -> score -> fix code -> re-run"
|
|
17
|
-
calibration_ref: "qfai.config.yaml#prototyping.calibration"
|
|
@@ -60,7 +60,7 @@ Skill-specific examples:
|
|
|
60
60
|
|
|
61
61
|
- This skill processes **one test at a time** from `test-list.md`.
|
|
62
62
|
- Each item goes through the full TDD micro-cycle: write a **failing test** first, then make it pass, then refactor.
|
|
63
|
-
- The execution ledger is located at `.qfai/specs
|
|
63
|
+
- The execution ledger is located at `.qfai/specs/<spec-id>/tdd/test-list.md`.
|
|
64
64
|
- Items are processed **serially** by default. Parallel processing is allowed only when items target independent SUT slices with no shared state.
|
|
65
65
|
- Status transitions follow a strict forward-only lifecycle: `todo` -> `red` -> `green` -> `refactor` -> `done`.
|
|
66
66
|
- The `exception` status can be reached from any active status when an anomaly is detected.
|
|
@@ -76,15 +76,20 @@ Execute the TDD micro-cycle for each pending item in `test-list.md`, transitioni
|
|
|
76
76
|
|
|
77
77
|
- Review rendered output, screenshot evidence, or HTML output before closing any UI-affecting item.
|
|
78
78
|
- Read spec + contract inputs first whenever implementation touches UI or critique-driven behavior.
|
|
79
|
-
- Read order: `01_Spec.md` → `03_Acceptance-Criteria.md` → `05_Examples.md` →
|
|
79
|
+
- Read order (v2.0, spec-0017 P11): `01_Spec.md` → `03_Acceptance-Criteria.md` → `05_Examples.md` →
|
|
80
80
|
`.qfai/contracts/design/exploration-brief.yaml` →
|
|
81
81
|
`.qfai/contracts/design/reference-pool.yaml` → `.qfai/contracts/design/brand-design.yaml` →
|
|
82
|
-
`.qfai/contracts/design/
|
|
83
|
-
`.qfai/contracts/design/selected-direction.yaml` → `.qfai/contracts/design/design-system.yaml` →
|
|
82
|
+
`.qfai/contracts/design/design-system.yaml` (extracted from final iter) →
|
|
84
83
|
`.qfai/contracts/design/prototype-handoff.yaml` → `.qfai/contracts/ui/*.yaml` →
|
|
85
|
-
canonical prototype
|
|
84
|
+
canonical prototype evidence under `.qfai/evidence/prototyping/iter-NN/<screen>.{png,html}` →
|
|
85
|
+
`.qfai/prototypes/final/index.html`.
|
|
86
|
+
- The v1.x evaluation-rubric / evaluator-calibration / selected-direction contracts and
|
|
87
|
+
`prototypes/winner/index.html` were removed in spec-0017 P4/P8.
|
|
86
88
|
- Do not read discussion-pack UI/UX sidecars, fallback mocks, or legacy design aliases.
|
|
87
|
-
- Prototype
|
|
89
|
+
- Prototype HTML is analysis input, not production source. Reimplement with project-native
|
|
90
|
+
patterns while preserving the visual identity captured in `prototype-handoff.yaml`
|
|
91
|
+
`implementationNotes` (free-form prose); the v1.x mustPreserve / mayAdapt / mustNotCopy
|
|
92
|
+
three-category split is removed.
|
|
88
93
|
- UI-affecting items require product-surface-reviewer prototype parity review before `done`.
|
|
89
94
|
- If code intent and rendered output diverge, treat the rendered/HTML result as the blocking review input and reconcile before DONE.
|
|
90
95
|
|
|
@@ -97,7 +102,7 @@ Execute the TDD micro-cycle for each pending item in `test-list.md`, transitioni
|
|
|
97
102
|
|
|
98
103
|
## Execution Ledger: test-list.md
|
|
99
104
|
|
|
100
|
-
The execution ledger at `.qfai/specs
|
|
105
|
+
The execution ledger at `.qfai/specs/<spec-id>/tdd/test-list.md` tracks progress with these required columns:
|
|
101
106
|
|
|
102
107
|
| Column | Description |
|
|
103
108
|
| --------- | -------------------------------------------------------- |
|
|
@@ -298,7 +303,7 @@ Completion MUST NOT be declared when any of the following are true:
|
|
|
298
303
|
|
|
299
304
|
## Evidence (MANDATORY)
|
|
300
305
|
|
|
301
|
-
Create/update: `.qfai/evidence/implement
|
|
306
|
+
Create/update: `.qfai/evidence/implement-<spec-id>.md`
|
|
302
307
|
|
|
303
308
|
Required sections:
|
|
304
309
|
|