qfai 1.7.6 → 1.7.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 CHANGED
@@ -15,6 +15,12 @@ QFAI addresses these failure modes by standardizing an end-to-end delivery loop
15
15
  QFAI is designed for a skills-driven operating model: engineers select a prepared custom skill and provide only the task intent.
16
16
  The agent reads the repository, produces the required artifacts, and iterates until the hard gates pass.
17
17
 
18
+ ## Release status
19
+
20
+ - Current package version: `1.7.7`
21
+ - Release posture: v1.7.7 is the correction release that aligns the v1.7.6 remediation line before deeper prototyping work.
22
+ - 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.
23
+
18
24
  ## Quick start
19
25
 
20
26
  > **Windows users:** `qfai init` creates symlinks internally.
@@ -54,7 +60,7 @@ npx qfai report
54
60
  Use `--autogen-only` to fail when generation fails (for CI gates).
55
61
  Enable with `QFAI_PROTOTYPE_FIDELITY_AUTOGEN=1` as an alternative to `--autogen-ui-fidelity`.
56
62
 
57
- ## ATDD annotation hard gate (v1.4.36)
63
+ ## ATDD annotation hard gate
58
64
 
59
65
  `qfai validate` enforces spec-to-test traceability with directory-based rules.
60
66
 
@@ -64,7 +70,7 @@ npx qfai report
64
70
  - `tests/api/**` and `tests/e2e/**` must not use `TC` annotations.
65
71
  - `AC` annotations are not required in code; AC coverage is treated as indirect through full `TC` coverage.
66
72
 
67
- ## Prototyping uiFidelity autogen (v1.4.36)
73
+ ## Prototyping uiFidelity autogen
68
74
 
69
75
  `qfai prototyping --autogen-ui-fidelity` auto-generates `uiFidelity` evidence by:
70
76
 
@@ -251,7 +257,7 @@ flowchart LR
251
257
  - Contracts SSOT: `.qfai/contracts/**`
252
258
  - Report outputs (`.qfai/report/**`) are derived artifacts and not SSOT.
253
259
 
254
- ## Minimal tutorial (v1.5.6)
260
+ ## Minimal tutorial (v1.7.7)
255
261
 
256
262
  1. `npx qfai init`
257
263
  2. Run `/qfai-discussion` to structure scope, open questions, and produce a discussion pack under `.qfai/discussion/discussion-<ts>/`.
@@ -277,7 +283,7 @@ Release gate behavior:
277
283
 
278
284
  ## Continuous integration
279
285
 
280
- QFAI v1.4.36 generates integration wrappers under `.agents/**`, `.claude/**`,
286
+ QFAI generates integration wrappers under `.agents/**`, `.claude/**`,
281
287
  `.github/**`, and `.codex/**`.
282
288
  It does not generate GitHub Actions workflows.
283
289
  Configure CI in your own platform and run:
@@ -1,5 +1,10 @@
1
1
  # Evaluation Axis: Usability
2
2
 
3
+ ## Layer Classification
4
+
5
+ - Layer: invariant
6
+ - Source: Universal UX heuristic (Nielsen)
7
+
3
8
  ## Evaluation Criteria
4
9
 
5
10
  | Criterion | Description | Weight |
@@ -1,5 +1,10 @@
1
1
  # Evaluation Axis: Consistency
2
2
 
3
+ ## Layer Classification
4
+
5
+ - Layer: invariant
6
+ - Source: Design system adherence principle
7
+
3
8
  ## Evaluation Criteria
4
9
 
5
10
  | Criterion | Description | Weight |
@@ -1,5 +1,10 @@
1
1
  # Evaluation Axis: Accessibility
2
2
 
3
+ ## Layer Classification
4
+
5
+ - Layer: invariant
6
+ - Source: WCAG 2.1 compliance requirement
7
+
3
8
  ## Evaluation Criteria
4
9
 
5
10
  | Criterion | Description | Weight |
@@ -1,5 +1,10 @@
1
1
  # Evaluation Axis: Delight
2
2
 
3
+ ## Layer Classification
4
+
5
+ - Layer: invariant
6
+ - Source: User satisfaction and perceived quality
7
+
3
8
  ## Evaluation Criteria
4
9
 
5
10
  | Criterion | Description | Weight |
@@ -25,10 +30,27 @@
25
30
  - 2: Friction points noticed by users
26
31
  - 1: Frustrating experience reported
27
32
 
33
+ ## Trend-derived Axes
34
+
35
+ <!-- Add trend-derived axes below. Each requires source_translation from research findings. -->
36
+
37
+ | Criterion | Source Translation | Description | Weight |
38
+ | --------------- | ----------------------------------------- | ------------- | -------- |
39
+ | (trend-derived) | (research finding → evaluation criterion) | (description) | (weight) |
40
+
28
41
  ## Product-specific Axes
29
42
 
30
- <!-- Add project-specific delight criteria below. These are trend-derived or product-specific axes. -->
43
+ <!-- Add product-specific axes below. These are unique to the project's domain. -->
31
44
 
32
45
  | Criterion | Description | Weight |
33
46
  | ------------------ | ------------- | -------- |
34
47
  | (project-specific) | (description) | (weight) |
48
+
49
+ ## Aggregate Scoring Rules
50
+
51
+ | Element | Value |
52
+ | ------------- | ------------------------------------------------ |
53
+ | Weights | Invariant: 60%, Trend-derived: 25%, Product: 15% |
54
+ | Normalization | Linear 1-5 scale per axis, weighted sum |
55
+ | Thresholds | Accept >= 3.5, Refine 2.5-3.4, Pivot < 2.5 |
56
+ | Stopping | Stop when all axes scored and aggregate computed |
@@ -6,6 +6,8 @@ Compare 2+ design options against scoring axes to support anchor screen selectio
6
6
 
7
7
  ## Comparison Matrix
8
8
 
9
+ ### Invariant Axes
10
+
9
11
  | Axis | Option A: [Name] | Option B: [Name] | Notes |
10
12
  | ------------------ | ---------------- | ---------------- | ----------- |
11
13
  | Usability (20) | [score 1-5] | [score 1-5] | [rationale] |
@@ -13,12 +15,24 @@ Compare 2+ design options against scoring axes to support anchor screen selectio
13
15
  | Accessibility (22) | [score 1-5] | [score 1-5] | [rationale] |
14
16
  | Delight (23) | [score 1-5] | [score 1-5] | [rationale] |
15
17
 
18
+ ### Trend-derived Axes
19
+
20
+ | Axis | Option A: [Name] | Option B: [Name] | Source Translation |
21
+ | --------------- | ---------------- | ---------------- | ------------------ |
22
+ | (trend-derived) | [score 1-5] | [score 1-5] | [research source] |
23
+
24
+ ### Product-specific Axes
25
+
26
+ | Axis | Option A: [Name] | Option B: [Name] | Notes |
27
+ | ------------------ | ---------------- | ---------------- | ----------- |
28
+ | (product-specific) | [score 1-5] | [score 1-5] | [rationale] |
29
+
16
30
  ## Aggregate Scoring
17
31
 
18
- | Option | Weighted Total | Rank |
19
- | -------- | -------------- | ------ |
20
- | Option A | [total] | [rank] |
21
- | Option B | [total] | [rank] |
32
+ | Option | Weights | Normalized Total | Threshold | Rank |
33
+ | -------- | ------------------------------------- | ---------------- | --------------------- | ------ |
34
+ | Option A | Invariant: 60%, Trend: 25%, Prod: 15% | [total] | [accept/refine/pivot] | [rank] |
35
+ | Option B | Invariant: 60%, Trend: 25%, Prod: 15% | [total] | [accept/refine/pivot] | [rank] |
22
36
 
23
37
  ## Recommendation
24
38
 
@@ -26,5 +40,6 @@ Selected: [Option X] — [rationale for selection based on scores and constraint
26
40
 
27
41
  ## Cross-references
28
42
 
29
- - Scoring axes: `20_eval_axis_usability.md`, `21_eval_axis_consistency.md`, `22_eval_axis_accessibility.md`, `23_eval_axis_delight.md`
43
+ - Invariant axes: `20_eval_axis_usability.md`, `21_eval_axis_consistency.md`, `22_eval_axis_accessibility.md`, `23_eval_axis_delight.md`
44
+ - 3-layer model & aggregate rules: `23_eval_axis_delight.md` (Aggregate Scoring Rules section)
30
45
  - Anchor selection: `31_anchor.md`
@@ -8,21 +8,42 @@ Draft interaction contracts for the anchor screen and key screens.
8
8
 
9
9
  ### Screen: [Screen name]
10
10
 
11
- #### States
12
-
13
- | State | Trigger | Display | Transitions |
14
- | --------- | ---------------------- | --------------------------- | ---------------------- |
15
- | empty | Initial load, no data | [empty state description] | -> loading (on fetch) |
16
- | loading | Data fetch in progress | [loading indicator] | -> populated, -> error |
17
- | error | Fetch failure | [error message + retry CTA] | -> loading (on retry) |
18
- | populated | Data available | [primary content layout] | -> empty (on clear) |
19
-
20
- #### Interactions
21
-
22
- | Element | Action | Result | Feedback |
23
- | ----------- | --------- | --------- | ------------------------ |
24
- | Primary CTA | Click/tap | [outcome] | [visual/haptic feedback] |
25
- | [element] | [action] | [result] | [feedback] |
11
+ - Route: [/path-to-screen]
12
+ - Actor: [primary user role]
13
+ - Purpose: [what the user accomplishes on this screen]
14
+
15
+ #### Primary Tasks
16
+
17
+ | Task | Trigger | Success Criteria |
18
+ | ---------------- | ------------- | -------------------- |
19
+ | [primary task] | [user action] | [observable outcome] |
20
+ | [secondary task] | [user action] | [observable outcome] |
21
+
22
+ #### Required States
23
+
24
+ | State | Trigger | Display |
25
+ | --------- | ---------------------- | --------------------------- |
26
+ | empty | Initial load, no data | [empty state description] |
27
+ | loading | Data fetch in progress | [loading indicator] |
28
+ | error | Fetch failure | [error message + retry CTA] |
29
+ | populated | Data available | [primary content layout] |
30
+
31
+ #### Transitions
32
+
33
+ | From | To | Trigger |
34
+ | --------- | --------- | -------------------- |
35
+ | empty | loading | Data fetch initiated |
36
+ | loading | populated | Data received |
37
+ | loading | error | Fetch failure |
38
+ | error | loading | Retry action |
39
+ | populated | empty | Clear action |
40
+
41
+ #### Observable Outcomes
42
+
43
+ | Outcome | Verification Method |
44
+ | -------------------------- | ------------------- |
45
+ | [expected user outcome] | [how to verify] |
46
+ | [expected system behavior] | [how to verify] |
26
47
 
27
48
  ## Cross-references
28
49
 
@@ -0,0 +1,13 @@
1
+ # UIX-REV: Comparison Review
2
+
3
+ Review option comparison and anchor selection.
4
+
5
+ ## Comparison (30_comparison.md)
6
+
7
+ - Must contain at least 2 options
8
+ - Each option should have structured evaluation
9
+
10
+ ## Anchor (31_anchor.md)
11
+
12
+ - Must declare selected_anchor or chosen field
13
+ - Anchor must reference one of the compared options
@@ -0,0 +1,18 @@
1
+ # UIX-REV: Screen Contracts Review
2
+
3
+ Review screen contracts for completeness.
4
+
5
+ ## Required Fields per Screen
6
+
7
+ - route
8
+ - actor
9
+ - purpose
10
+ - primary_tasks
11
+ - required_states
12
+ - transitions
13
+ - observable_outcomes
14
+
15
+ ## Quality Criteria
16
+
17
+ - Each screen contract must be independently verifiable
18
+ - Routes must be unique across all contracts
@@ -0,0 +1,17 @@
1
+ # UIX-REV: Migration Review
2
+
3
+ Review migration status of UI-bearing specs.
4
+
5
+ ## Sidecar Presence
6
+
7
+ - UI-bearing specs must have uiux/ directory
8
+ - Default: warning; strict mode: error
9
+
10
+ ## Version Check
11
+
12
+ - .sidecar-version must match current template version
13
+ - Stale versions emit warning with upgrade steps
14
+
15
+ ## Configuration
16
+
17
+ - uiux.migration.strict: boolean (default false)
@@ -0,0 +1,13 @@
1
+ # UIX-REV: Open Questions Review
2
+
3
+ Review OQ Register for blocking items.
4
+
5
+ ## Blocking Criteria
6
+
7
+ - Status: open
8
+ - Severity: critical or blocking
9
+
10
+ ## Resolution
11
+
12
+ - Each blocking OQ must be resolved or downgraded before validation passes
13
+ - Include OQ-ID in all related issue descriptions
@@ -0,0 +1,14 @@
1
+ # UIX-REV: Scoring Review
2
+
3
+ Review evaluation axes and aggregate scoring rules.
4
+
5
+ ## Evaluation Axes
6
+
7
+ - Each trend-derived row must include source_translation
8
+ - Axes must be measurable and verifiable
9
+
10
+ ## Aggregate Scoring
11
+
12
+ - weights: defined for all axes
13
+ - normalization: method specified
14
+ - threshold: pass/fail boundary defined
@@ -0,0 +1,22 @@
1
+ # UIX-REV: Strategy Review
2
+
3
+ Review the UI/UX strategy document for completeness and quality.
4
+
5
+ ## Required Fields
6
+
7
+ - selection_required
8
+ - candidate_options
9
+ - chosen_option
10
+ - verification_expectations
11
+ - none_as_legitimate_outcome
12
+
13
+ ## Depth Check
14
+
15
+ - rationale: minimum 20 characters
16
+ - approach: minimum 20 characters
17
+
18
+ ## Verdict
19
+
20
+ - **accept**: All fields present and meet depth requirements
21
+ - **refine**: Fields present but insufficient depth
22
+ - **pivot**: Missing required fields — fundamental rework needed