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.
- package/README.md +148 -82
- package/dist/bin/cli.js +1 -1
- package/dist/lib/install.js +1 -1
- package/dist/lib/knowledge.js +1 -1
- package/package.json +2 -2
- package/skills/anuj/SKILL.md +2 -0
- package/skills/arjun/SKILL.md +70 -1
- package/skills/design-critic/SKILL.md +60 -14
- package/skills/design-reference/SKILL.md +16 -0
- package/skills/meera/SKILL.md +2 -0
- package/skills/noor/SKILL.md +2 -0
- package/skills/priya/SKILL.md +2 -0
- package/skills/raj/SKILL.md +16 -5
- package/skills/zara/SKILL.md +10 -1
|
@@ -40,27 +40,47 @@ If any field is blank, treat it as "unknown — do not assume."
|
|
|
40
40
|
|
|
41
41
|
---
|
|
42
42
|
|
|
43
|
-
## Phase
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
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
|
|
101
|
-
- Priya cost-checks every Zara delight addition — names cost (low/medium/high)
|
|
102
|
-
- Raj only speaks during stalemate
|
|
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)
|
package/skills/meera/SKILL.md
CHANGED
|
@@ -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"]`
|
package/skills/noor/SKILL.md
CHANGED
|
@@ -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"]`
|
package/skills/priya/SKILL.md
CHANGED
|
@@ -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"]`
|
package/skills/raj/SKILL.md
CHANGED
|
@@ -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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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"]`
|
package/skills/zara/SKILL.md
CHANGED
|
@@ -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 —
|
|
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"]`
|