analyzthis_design 2.1.2 → 2.3.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.
@@ -10,9 +10,11 @@ You are Raj. 10+ years product strategy across SaaS, marketplace, and workflow a
10
10
 
11
11
  ## Allowed / forbidden jobs
12
12
 
13
- **Allowed:** resolve stalemates between personas using the 5 product principles; issue final SHIP / REVISE / BLOCK when personas disagree.
13
+ **Allowed:** resolve stalemates between personas using the 5 product principles; issue final SHIP / REVISE / BLOCK when personas disagree; challenge the task premise — "are we solving the right problem?"
14
14
 
15
- **Forbidden:** run when there is no stalemate or BLOCK condition; implementing code without explicit build approval.
15
+ **Forbidden:** run when there is no stalemate or BLOCK condition (except synthesis); implementing code without explicit build approval; accepting the task framing without questioning it.
16
+
17
+ **Premise challenge (v2.1):** During synthesis, Raj MUST ask: "Is the framing valid? Are we solving the right problem?" If the premise is questionable (e.g., "users don't convert because X is buried" — but maybe users do reach X and still don't convert for other reasons), flag it explicitly and redirect to the real problem. Personas evaluate solutions within a frame — Raj questions the frame itself.
16
18
 
17
19
  **Session state:** if `session-state.json` exists (`npx analyzthis_design session show`), read `persona_outputs` and `routing_decision` before arbitrating — do not re-ask for context already recorded.
18
20
 
@@ -1,15 +0,0 @@
1
- {
2
- "deliberation": {
3
- "satisfaction_threshold": 0.4,
4
- "max_rounds": 3,
5
- "parallel_pairs": [["noor", "anuj"], ["meera", "priya"]],
6
- "objection_token_cap": 600,
7
- "prior_output_chars_first": 800,
8
- "prior_output_chars_rebuttal": 400,
9
- "prior_output_chars_produce": 1200,
10
- "context_pack_chars_objection": 1500,
11
- "context_pack_chars_produce": 3000,
12
- "escalate_to_raj_after_round": 2,
13
- "default_mode": "adversarial"
14
- }
15
- }
@@ -1,7 +0,0 @@
1
- {
2
- "feedback": {
3
- "submit_enabled": true,
4
- "submit_url": "https://YOUR_PROJECT.supabase.co/rest/v1/persona_feedback",
5
- "anon_key": "YOUR_SUPABASE_ANON_KEY"
6
- }
7
- }
@@ -1,54 +0,0 @@
1
- -- Persona feedback — anonymous community corrections for analyzthis_design
2
- -- Run in Supabase SQL editor or via supabase db push
3
-
4
- create table if not exists public.persona_feedback (
5
- id uuid primary key default gen_random_uuid(),
6
- created_at timestamptz not null default now(),
7
-
8
- install_id text not null,
9
- package_version text,
10
- feedback_id text,
11
-
12
- persona text not null,
13
- satisfied boolean not null default false,
14
- rating smallint check (rating is null or (rating >= 1 and rating <= 5)),
15
- tags text[] not null default '{}',
16
-
17
- user_comment text,
18
- assistant_rejected text,
19
- assistant_preferred text,
20
- task_summary text,
21
- problem_type text,
22
- mode text,
23
- recorded_at timestamptz
24
- );
25
-
26
- create index if not exists persona_feedback_persona_idx on public.persona_feedback (persona);
27
- create index if not exists persona_feedback_created_at_idx on public.persona_feedback (created_at desc);
28
- create index if not exists persona_feedback_tags_idx on public.persona_feedback using gin (tags);
29
-
30
- alter table public.persona_feedback enable row level security;
31
-
32
- -- Anonymous clients may INSERT only (no read/update/delete for anon)
33
- drop policy if exists "anon_insert_persona_feedback" on public.persona_feedback;
34
- create policy "anon_insert_persona_feedback"
35
- on public.persona_feedback
36
- for insert
37
- to anon
38
- with check (
39
- char_length(coalesce(user_comment, '')) <= 2000
40
- and char_length(coalesce(assistant_rejected, '')) <= 4000
41
- and char_length(coalesce(assistant_preferred, '')) <= 4000
42
- and persona ~ '^[a-z][a-z0-9_-]{0,31}$'
43
- );
44
-
45
- -- Service role (dashboard) can read everything — use Supabase dashboard or service key
46
- drop policy if exists "service_read_persona_feedback" on public.persona_feedback;
47
- create policy "service_read_persona_feedback"
48
- on public.persona_feedback
49
- for select
50
- to service_role
51
- using (true);
52
-
53
- comment on table public.persona_feedback is
54
- 'Anonymous opt-in persona correction data from analyzthis_design CLI (feedback submit).';
@@ -1,15 +0,0 @@
1
- {
2
- "deliberation": {
3
- "satisfaction_threshold": 0.4,
4
- "max_rounds": 3,
5
- "parallel_pairs": [["noor", "anuj"], ["meera", "priya"]],
6
- "objection_token_cap": 600,
7
- "prior_output_chars_first": 800,
8
- "prior_output_chars_rebuttal": 400,
9
- "prior_output_chars_produce": 1200,
10
- "context_pack_chars_objection": 1500,
11
- "context_pack_chars_produce": 3000,
12
- "escalate_to_raj_after_round": 2,
13
- "default_mode": "adversarial"
14
- }
15
- }
@@ -1,7 +0,0 @@
1
- {
2
- "feedback": {
3
- "submit_enabled": true,
4
- "submit_url": "https://YOUR_PROJECT.supabase.co/rest/v1/persona_feedback",
5
- "anon_key": "YOUR_SUPABASE_ANON_KEY"
6
- }
7
- }
@@ -1,54 +0,0 @@
1
- -- Persona feedback — anonymous community corrections for analyzthis_design
2
- -- Run in Supabase SQL editor or via supabase db push
3
-
4
- create table if not exists public.persona_feedback (
5
- id uuid primary key default gen_random_uuid(),
6
- created_at timestamptz not null default now(),
7
-
8
- install_id text not null,
9
- package_version text,
10
- feedback_id text,
11
-
12
- persona text not null,
13
- satisfied boolean not null default false,
14
- rating smallint check (rating is null or (rating >= 1 and rating <= 5)),
15
- tags text[] not null default '{}',
16
-
17
- user_comment text,
18
- assistant_rejected text,
19
- assistant_preferred text,
20
- task_summary text,
21
- problem_type text,
22
- mode text,
23
- recorded_at timestamptz
24
- );
25
-
26
- create index if not exists persona_feedback_persona_idx on public.persona_feedback (persona);
27
- create index if not exists persona_feedback_created_at_idx on public.persona_feedback (created_at desc);
28
- create index if not exists persona_feedback_tags_idx on public.persona_feedback using gin (tags);
29
-
30
- alter table public.persona_feedback enable row level security;
31
-
32
- -- Anonymous clients may INSERT only (no read/update/delete for anon)
33
- drop policy if exists "anon_insert_persona_feedback" on public.persona_feedback;
34
- create policy "anon_insert_persona_feedback"
35
- on public.persona_feedback
36
- for insert
37
- to anon
38
- with check (
39
- char_length(coalesce(user_comment, '')) <= 2000
40
- and char_length(coalesce(assistant_rejected, '')) <= 4000
41
- and char_length(coalesce(assistant_preferred, '')) <= 4000
42
- and persona ~ '^[a-z][a-z0-9_-]{0,31}$'
43
- );
44
-
45
- -- Service role (dashboard) can read everything — use Supabase dashboard or service key
46
- drop policy if exists "service_read_persona_feedback" on public.persona_feedback;
47
- create policy "service_read_persona_feedback"
48
- on public.persona_feedback
49
- for select
50
- to service_role
51
- using (true);
52
-
53
- comment on table public.persona_feedback is
54
- 'Anonymous opt-in persona correction data from analyzthis_design CLI (feedback submit).';