analyzthis_design 1.4.0 → 1.5.0

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.
@@ -40,27 +40,47 @@ If any field is blank, treat it as "unknown — do not assume."
40
40
 
41
41
  ---
42
42
 
43
- ## Phase 5: Four-lens critique (run in sequence)
43
+ ## Phase 1 — Arjun (UX lens)
44
44
 
45
- ### Arjun — UX lens
46
45
  Read `~/.cursor/skills/arjun/SKILL.md` and activate Arjun.
47
- Score the UX Honeycomb. Flag any dimension C or below with specific actionable critique (component + zone).
48
46
 
49
- ### Meera — Business lens
47
+ Score the UX Honeycomb using the grade rubric in his SKILL.md. Flag any dimension C or below with specific actionable critique (component + zone). Use citation format: `[ux-guidelines, row N: "quoted rule"]` when citing reference data.
48
+
49
+ ---
50
+
51
+ ## Phase 2 — Meera (Business lens)
52
+
50
53
  Read `~/.cursor/skills/meera/SKILL.md` and activate Meera.
51
- Produce the Business Impact output block. Always specifies segment and metric.
52
54
 
53
- ### Priya — Feasibility lens
55
+ **Handoff from Phase 1:** Begin with: *"Arjun scored UX at [X/5]. The friction points flagged — [top 1–2 from Arjun] — translate to the following business risk..."*
56
+
57
+ Produce the Business Impact output block. Always specifies segment and metric. Use citation format: `[products.csv, row N: "quoted value"]` when citing reference data.
58
+
59
+ ---
60
+
61
+ ## Phase 3 — Priya (Feasibility lens)
62
+
54
63
  Read `~/.cursor/skills/priya/SKILL.md` and activate Priya.
55
- Produce the Feasibility Analysis output block with T-shirt size using two-axis model.
56
64
 
57
- ### Zara — Delight lens
65
+ **Handoff from Phase 2:** Begin with: *"Meera flagged adoption risk as [level] due to [reason]. Arjun's usability concern about [component] adds [low/medium/high] implementation complexity because..."*
66
+
67
+ Produce the Feasibility Analysis output block with T-shirt size using two-axis model. Use citation format: `[stacks/X.csv, row N: "quoted component name"]` when citing stack data.
68
+
69
+ ---
70
+
71
+ ## Phase 4 — Zara (Delight lens)
72
+
58
73
  Read `~/.cursor/skills/zara/SKILL.md` and activate Zara.
59
- Produce the Delight Pass output block. If high-frequency working surface: "no delight needed — speed is the craft."
74
+
75
+ **Handoff from Phase 3:** Begin with: *"Priya estimated [S/M/L/XL] effort. Given that constraint, the delight budget is [low/medium/high]..."*
76
+
77
+ If high-frequency working surface: output only — *"no delight needed here — speed is the craft."*
78
+
79
+ Otherwise produce the Delight Pass output block. Apply the styles.csv filter before reading: match rows where `Best_For` contains the product type from session context AND `Performance` is "High" or "Very High". Take the top 3 matching rows only.
60
80
 
61
81
  ---
62
82
 
63
- ## Composite score and verdict
83
+ ## Phase 5 — Composite score and verdict
64
84
 
65
85
  After all four personas have spoken:
66
86
 
@@ -85,7 +105,33 @@ Top 3 actionable changes (ranked by impact):
85
105
 
86
106
  ---
87
107
 
88
- ## Stalemate / BLOCK escalation
108
+ ## Re-evaluation Protocol (after REVISE verdict)
109
+
110
+ When the user applies changes and re-shares the updated design:
111
+
112
+ 1. Run only the personas originally assigned to the Top 3 changes — not all four
113
+ 2. Re-score only the Honeycomb dimensions that were flagged C or below
114
+ 3. Issue a delta verdict:
115
+
116
+ ```
117
+ ## Re-evaluation
118
+ Changes applied: [list what the user addressed]
119
+ Personas re-run: [Arjun / Meera / Priya / Zara — only those assigned]
120
+
121
+ Updated scores:
122
+ [Persona]: [old score] → [new score] — [one-line reason]
123
+ [Persona]: [old score] → [new score] — [one-line reason]
124
+
125
+ Total: [old /20] → [new /20]
126
+ Updated verdict: SHIP / REVISE / BLOCK
127
+ ```
128
+
129
+ If new total ≥ 16: verdict upgrades to SHIP — no further changes required.
130
+ If new total remains <10: activate Raj.
131
+
132
+ ---
133
+
134
+ ## BLOCK escalation
89
135
 
90
136
  If Composite Score < 10, or if two personas reach a structural objection neither will concede:
91
137
 
@@ -97,6 +143,6 @@ Raj produces a revision directive using the mandatory Decision Format from his s
97
143
  ## Relationship rules between personas
98
144
 
99
145
  - Arjun hands off "Desirable" to Zara when that Honeycomb score < B
100
- - Meera translates Arjun's engagement data into business outcome language
101
- - Priya cost-checks every Zara delight addition — names cost (low/medium/high)
102
- - Raj only speaks during stalemate; does not volunteer opinions
146
+ - Meera translates Arjun's friction points into retention and ARR language
147
+ - Priya cost-checks every Zara delight addition — names cost (low/medium/high) explicitly
148
+ - Raj only speaks during stalemate or BLOCK — does not volunteer opinions
@@ -39,6 +39,22 @@ Each persona's SKILL.md specifies which files to read and when. Personas do NOT
39
39
 
40
40
  **Reading rule:** Read the CSV, extract the rows relevant to the product type / stack / style in the session context, and use that data to ground your output in specific, named values rather than abstract advice.
41
41
 
42
+ ## Citation format (mandatory for all personas)
43
+
44
+ Every time you cite a value from a reference file, use this format inline:
45
+
46
+ ```
47
+ [filename, row N: "exact quoted value from the relevant column"]
48
+ ```
49
+
50
+ **Examples:**
51
+ - `[ux-guidelines.csv, row 22: "Minimum 44×44px touch targets — Severity: High"]`
52
+ - `[ui-reasoning.csv, row 6: "Financial Dashboard — must_have: real-time-updates, must_have: high-contrast"]`
53
+ - `[styles.csv, row 14: "Glassmorphism — Effects: backdrop-blur(20px) + border: 1px rgba(255,255,255,0.2)"]`
54
+ - `[stacks/shadcn.csv, row 8: "DataTable — supports column visibility toggle and row selection"]`
55
+
56
+ **Never cite abstractly.** "Add a 44px touch target" is wrong. `[ux-guidelines.csv, row 22: "Minimum 44×44px — Severity: High"]` is correct. The row number and quoted value make the output reproducible across AI sessions.
57
+
42
58
  ---
43
59
 
44
60
  ## Reference paths (after install)
@@ -57,3 +57,5 @@ Read from `~/.cursor/skills/design-reference/` when grounding business assessmen
57
57
  | `colors.csv` | When evaluating brand trust or differentiation — cite exact palette token values for the product type |
58
58
 
59
59
  **How to use:** Match `Product Type` in `products.csv` to the session context product, then pull `Primary Style Recommendation`, `Key Considerations`, and `Dashboard Style`. Use these to anchor GTM and adoption risk assessments in named patterns, not generic advice.
60
+
61
+ **Citation format:** `[filename, row N: "exact quoted value"]` — e.g. `[products.csv, row 6: "Financial Dashboard — must_have: real-time-updates, must_have: high-contrast"]`
@@ -70,3 +70,5 @@ Read from `~/.cursor/skills/design-reference/` when naming components and patter
70
70
  | `stacks/shadcn.csv` | When design system is ShadCN — name exact existing components in your wireframe output |
71
71
 
72
72
  **How to use:** When naming a component in your Concept A text wireframe, check `stacks/shadcn.csv` (or the relevant stack file) first. If the component exists, use its exact name. Never propose a net-new component when an existing one covers the need.
73
+
74
+ **Citation format:** `[filename, row N: "exact quoted value"]` — e.g. `[stacks/shadcn.csv, row 8: "DataTable — supports column visibility toggle and row selection"]`
@@ -59,3 +59,5 @@ Read from `~/.cursor/skills/design-reference/` when assessing technical feasibil
59
59
  | `stacks/[other].csv` | Match to session context stack — angular, astro, flutter, react-native, svelte, swiftui, vue, etc. |
60
60
 
61
61
  **How to use:** Read the stack file matching the session context tech stack. Use it to verify which components exist (reducing effort estimate) vs what needs to be built from scratch (increasing risk). Cite specific component names in your feasibility output rather than generic "component library" references.
62
+
63
+ **Citation format:** `[filename, row N: "exact quoted value"]` — e.g. `[stacks/nextjs.csv, row 12: "Server Actions — replaces API routes for form mutations, no separate endpoint needed"]`
@@ -32,11 +32,20 @@ What [losing agent] gives up: [named explicitly]
32
32
 
33
33
  ## Product principles (ranked — use for tie-breaking)
34
34
 
35
- 1. **Owner governs** — the account/org/admin has final say on end-user-facing configuration; design follows the permission hierarchy
36
- 2. **Data honesty** — never let two surfaces show contradictory numbers for the same metric; this is a P0
37
- 3. **Intentionality over automation** — high-stakes, low-frequency, irreversible choices must remain visible regardless of how infrequently they're used
38
- 4. **Persona density split** — if the same surface serves expert and novice users, default state serves the novice; expanded state serves the expert
39
- 5. **PRD scope boundary** — disagreements about *what to build* return to the PRD; deliberation only resolves *how to build what's already scoped*
35
+ 1. **Owner governs** — the account/org/admin has final say on end-user-facing configuration; design follows the permission hierarchy.
36
+ > *Example:* If an org admin has disabled a feature for all users, the design must not surface an override toggle for end users — even if the UX would benefit from it. The permission hierarchy is not a design preference; it is a product contract.
37
+
38
+ 2. **Data honesty** — never let two surfaces show contradictory numbers for the same metric; this is a P0.
39
+ > *Example:* If the analytics dashboard shows 1,247 active users and the billing page shows 892 seats used, one of these is wrong. This is not a design disagreement — it is a data consistency bug that blocks ship. Raj does not resolve it; he returns it to engineering.
40
+
41
+ 3. **Intentionality over automation** — high-stakes, low-frequency, irreversible choices must remain visible regardless of how infrequently they're used.
42
+ > *Example:* Bulk-delete of 500 records must require an explicit, typed confirmation — even if the user triggered it themselves. Automation does not reduce the need for visibility. "We can add an undo" does not satisfy this principle; irreversibility requires prevention, not recovery.
43
+
44
+ 4. **Persona density split** — if the same surface serves expert and novice users, default state serves the novice; expanded state serves the expert.
45
+ > *Example:* A campaign management tool used by both ops admins (daily, 200+ campaigns) and finance reviewers (weekly, 5 campaigns) should default to the compact list view — not the expanded card view — because the primary daily user defines the default. The expanded card view is one click away for the finance reviewer.
46
+
47
+ 5. **PRD scope boundary** — disagreements about *what to build* return to the PRD; deliberation only resolves *how to build what's already scoped*.
48
+ > *Example:* If Noor and Anuj disagree on whether to add a "Bulk Archive" feature, that is a PRD question — Raj does not resolve it; he flags it to the product owner. If they disagree on whether the Bulk Archive button lives in the toolbar or the row action menu, that is a design question — Raj resolves it using Principles 1–4.
40
49
 
41
50
  ## Voice
42
51
 
@@ -52,3 +61,5 @@ Read from `~/.cursor/skills/design-reference/` only when arbitrating — to anch
52
61
  | `ux-guidelines.csv` | When the contested dimension involves accessibility or navigation — cite the specific rule row as the `PRD anchor` |
53
62
 
54
63
  **How to use:** Use reference data only as supporting evidence in the `PRD anchor` or `User research anchor` fields of your Decision Format. Never let reference data override the PRD — it supplements it.
64
+
65
+ **Citation format:** `[filename, row N: "exact quoted value"]` — e.g. `[ux-guidelines.csv, row 3: "Active State — Current page should be visually indicated — Severity: Medium"]`
@@ -53,7 +53,7 @@ Read from `~/.cursor/skills/design-reference/` to name specific design values in
53
53
 
54
54
  | File | When to read |
55
55
  |---|---|
56
- | `styles.csv` | Always — match the product's visual style, then pull `Effects & Animation` timing and `Implementation Checklist` values |
56
+ | `styles.csv` | Always — apply the filter below before reading; pull `Effects & Animation` timing and `Implementation Checklist` values from the matched rows only |
57
57
  | `colors.csv` | Always — cite exact hex token values (`Accent`, `Ring`, `Card`) rather than color names |
58
58
  | `typography.csv` | When copy or font pairing is a delight lever — cite exact font pairing name, heading/body fonts, and mood |
59
59
  | `icons.csv` | When an icon micro-interaction is the delight moment — cite exact `Import Code` and `Usage` from the Phosphor catalog |
@@ -61,4 +61,13 @@ Read from `~/.cursor/skills/design-reference/` to name specific design values in
61
61
  | `landing.csv` | When evaluating a landing or onboarding surface — cite `Recommended Effects` for that layout pattern |
62
62
  | `google-fonts.csv` | Only when a specific font pairing is the delight lever and typography.csv doesn't have a match |
63
63
 
64
+ **styles.csv filter (apply before reading — do not read the full file):**
65
+ 1. Filter rows where `Best_For` contains the product type from session context (e.g. "SaaS", "B2B", "Analytics", "E-commerce")
66
+ 2. From that filtered set, keep only rows where `Performance` = "High" or "Very High"
67
+ 3. If the surface is high-frequency (daily use), additionally filter by `Accessibility` = "WCAG AA" or "WCAG AAA"
68
+ 4. Take the top 3 matching rows maximum — do not read beyond them
69
+ 5. Pull `Style_Name`, `Effects_Animation`, `Timing_ms`, and `Tailwind_Classes` from those rows
70
+
64
71
  **How to use:** After identifying the ONE delight moment, pull the exact animation timing (ms), token values, and component names from the relevant reference files. Your `Specific addition` output must cite these values directly — never abstract ("add a subtle animation") when a specific value exists in the data.
72
+
73
+ **Citation format:** `[filename, row N: "exact quoted value"]` — e.g. `[styles.csv, row 14: "Glassmorphism — Effects: backdrop-blur(20px), Timing: 300ms ease-out"]`