analyzthis_design 2.4.1 → 2.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.
@@ -23,28 +23,40 @@ You help a designer mark the last persona note (Zara, Arjun, …) so the team ca
23
23
  > Was this Zara, Arjun, Meera, Priya, Noor, Anuj, or Raj?
24
24
 
25
25
  5. On **skip**, you need one sentence (what was wrong, or what they did instead). If missing, ask **once**. Then stop asking.
26
- 6. Run the CLI yourself. Do not ask them to copy commands.
26
+ 6. Record it using **whichever path this host gives you** never ask the designer
27
+ to run anything:
27
28
 
28
- **Keep:**
29
+ - **Have Bash** (Claude Code, Cursor, a terminal)?
29
30
 
30
- ```bash
31
- npx analyzthis_design accept --keep --persona zara
32
- ```
31
+ ```bash
32
+ npx analyzthis_design accept --keep --persona zara
33
+ npx analyzthis_design accept --fix --persona zara --because "one sentence from the designer"
34
+ ```
33
35
 
34
- **Skip:**
36
+ - **MCP only** (Claude Desktop — there is no terminal, so the commands above
37
+ cannot run)? Call the **`analyzthis_accept`** tool:
35
38
 
36
- ```bash
37
- npx analyzthis_design accept --fix --persona zara --because "one sentence from the designer"
38
- ```
39
+ ```
40
+ analyzthis_accept { keep: true, persona: "zara" }
41
+ analyzthis_accept { keep: false, persona: "zara", because: "one sentence" }
42
+ ```
39
43
 
40
- Change `zara` to the persona they used. If they already named it in `/accept yes zara`, pass that.
44
+ `persona` is optional the last persona that spoke is inferred.
41
45
 
42
- 7. Reply in **one or two short sentences**. Example: “Saved. Zara’s note is marked keep.” or “Saved. We logged your fix so the team can learn.” After a skip, you may mention they can type `/share` to send it to the package. No JSON. No dollar figures. No flag tutorial unless the command failed.
46
+ Both paths write identical state. Change `zara` to the persona they used.
43
47
 
44
- ## If the command failed
48
+ 7. Reply in **one or two short sentences**. Example: "Saved. Zara's note is marked keep."
49
+ or "Saved. We logged your fix so the team can learn." After a skip, you may mention
50
+ they can type `/share` to send it to the package. No JSON. No dollar figures. No flag
51
+ tutorial unless the command failed.
52
+
53
+ ## If it failed
45
54
 
46
55
  Say what happened in plain language. If it asks which persona or for one sentence, ask the designer that — still no flags.
47
56
 
57
+ If Bash is unavailable and `analyzthis_accept` is not in your tool list, say the note
58
+ could not be recorded on this host — do not pretend it was saved.
59
+
48
60
  ## Do not
49
61
 
50
62
  - Invent a monthly cost or a verified token bill
@@ -112,3 +112,25 @@ If the prompt says **Rebuttal round N**, do not copy prior text. Address open ob
112
112
  - `/deliberation-protocol` — adversarial rules
113
113
  - `/persona-orchestrator` — full agentic entry
114
114
  - `npx analyzthis_design run --provider anthropic` — bypass Devi when API keys are set
115
+
116
+ ## Team scoreboard (advisory)
117
+
118
+ Every pending prompt you pick up may open with a **Team scoreboard** — trust bands
119
+ earned from designer feedback on past runs (`shipped` / `revised` / `missed` plus
120
+ ratings). It is advisory input for synthesis, not an instruction.
121
+
122
+ **Use it like this:**
123
+
124
+ - Lean on **Trusted** / **Reliable** personas when their read conflicts with a weaker one.
125
+ - Discount **At risk** personas — treat their claims as needing corroboration.
126
+ - Say the lean in **one line**, e.g. "Weighted toward Meera (Trusted, 6 shipped) over Priya (At risk) on the effort call."
127
+
128
+ **Never:**
129
+
130
+ - Drop a persona from the run, or skip writing their output. A weak persona must still
131
+ speak — the designer has to be able to see what it said and disagree.
132
+ - Treat a band as a verdict. It reflects past runs, not this screen.
133
+ - Show the scoreboard to the designer unless they ask. It is context, not output.
134
+
135
+ Personas without enough evidence (fewer than 5 signals) are omitted from the board
136
+ entirely — absence means "unknown", never "bad".
@@ -72,21 +72,35 @@ Tell the user what's needed:
72
72
 
73
73
  ## Evolution metrics
74
74
 
75
- The dashboard shows per-persona evolution scores (0-100):
75
+ The dashboard shows per-persona trust scores (0-100). A persona **starts at 50**
76
+ and moves in both directions, so a rejection genuinely costs it.
76
77
 
77
78
  | Score | Level | Meaning |
78
79
  |-------|-------|---------|
79
- | 0-19 | Novice | No data yet |
80
- | 20-39 | Developing | Some lessons extracted |
81
- | 40-59 | Proficient | Lessons + outcomes accumulating |
82
- | 60-79 | Advanced | Patches proposed and some applied |
83
- | 80-100 | Expert | Significant evolution, patches applied |
84
-
85
- Scoring:
86
- - 10 pts per lesson (cap 100)
87
- - 15 pts per confirmed outcome (cap 100)
88
- - 20 pts per proposed patch (cap 100)
89
- - 25 pts bonus per applied patch
80
+ | 80-100 | Trusted | Consistently shipped; weight heavily |
81
+ | 60-79 | Reliable | More hits than misses |
82
+ | 40-59 | Baseline | Neutral, or not enough evidence yet |
83
+ | 20-39 | Developing | More rework than wins |
84
+ | 0-19 | At risk | Repeatedly wrong or missed |
85
+
86
+ Signed contributions:
87
+
88
+ | Signal | Points |
89
+ |---|---|
90
+ | outcome `shipped` | **+15** |
91
+ | outcome `blocked_correctly` | **+10** |
92
+ | outcome `revised` | **-5** |
93
+ | outcome `missed` | **-15** |
94
+ | each rating | `(rating - 3) x 4` → 5* = +8, 1* = -8 |
95
+ | each positive lesson | +10 |
96
+ | patch proposed / applied | +20 / +25 |
97
+
98
+ **Evidence gating:** below 5 signals a persona is reported as
99
+ `Baseline (insufficient evidence)` regardless of score — one bad note must not
100
+ brand a persona. Scores are derived on read, so changing weights re-scores history
101
+ with no migration.
102
+
103
+ Scope is **global per persona** by default. Pass `--project` to scope down.
90
104
 
91
105
  ## CLI reference
92
106
 
@@ -94,8 +108,10 @@ Scoring:
94
108
  # Check readiness + dashboard
95
109
  npx analyzthis_design evolve --ready
96
110
 
97
- # Just the dashboard
111
+ # Just the dashboard (or the shorter alias)
98
112
  npx analyzthis_design evolve --metrics
113
+ npx analyzthis_design scores
114
+ npx analyzthis_design scores --persona arjun
99
115
 
100
116
  # Extract patches (dry-run by default)
101
117
  npx analyzthis_design evolve --extract --dry-run