@iamu-dev/iamu 0.2.0-beta.9 → 0.3.0-beta.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.
Files changed (83) hide show
  1. package/dist/adapters/claude-plugin.d.ts +13 -0
  2. package/dist/adapters/registry.d.ts +6 -0
  3. package/dist/adapters/types.d.ts +19 -0
  4. package/dist/bin.d.ts +2 -0
  5. package/dist/bin.js +5372 -1594
  6. package/dist/build-info.d.ts +53 -0
  7. package/dist/cloud-url.d.ts +19 -0
  8. package/dist/commands/auth-http.d.ts +37 -0
  9. package/dist/commands/auth-project-choice.d.ts +74 -0
  10. package/dist/commands/auth-token-input.d.ts +21 -0
  11. package/dist/commands/auth.d.ts +84 -0
  12. package/dist/commands/browse-actions.d.ts +61 -0
  13. package/dist/commands/browse-driver.d.ts +121 -0
  14. package/dist/commands/browse.d.ts +195 -0
  15. package/dist/commands/cloud-push.d.ts +27 -0
  16. package/dist/commands/complete.d.ts +132 -0
  17. package/dist/commands/completion.d.ts +2 -0
  18. package/dist/commands/context.d.ts +81 -0
  19. package/dist/commands/credentials.d.ts +144 -0
  20. package/dist/commands/diff-filter.d.ts +11 -0
  21. package/dist/commands/doctor.d.ts +33 -0
  22. package/dist/commands/edit-entity.d.ts +8 -0
  23. package/dist/commands/evaluate.d.ts +34 -0
  24. package/dist/commands/explore-crawl.d.ts +67 -0
  25. package/dist/commands/explore.d.ts +53 -0
  26. package/dist/commands/findings.d.ts +7 -0
  27. package/dist/commands/init.d.ts +27 -0
  28. package/dist/commands/instructions-walk.d.ts +69 -0
  29. package/dist/commands/instructions.d.ts +30 -0
  30. package/dist/commands/list.d.ts +5 -0
  31. package/dist/commands/live-run-client.d.ts +127 -0
  32. package/dist/commands/match.d.ts +15 -0
  33. package/dist/commands/mcp-config.d.ts +10 -0
  34. package/dist/commands/new-entity.d.ts +34 -0
  35. package/dist/commands/new-finding.d.ts +25 -0
  36. package/dist/commands/open.d.ts +8 -0
  37. package/dist/commands/port.d.ts +17 -0
  38. package/dist/commands/preflight.d.ts +26 -0
  39. package/dist/commands/prune.d.ts +11 -0
  40. package/dist/commands/pull.d.ts +5 -0
  41. package/dist/commands/register-cloud.d.ts +5 -0
  42. package/dist/commands/register-findings.d.ts +5 -0
  43. package/dist/commands/register-project.d.ts +5 -0
  44. package/dist/commands/register-walkthrough.d.ts +5 -0
  45. package/dist/commands/register.d.ts +10 -0
  46. package/dist/commands/report.d.ts +3 -0
  47. package/dist/commands/serve.d.ts +11 -0
  48. package/dist/commands/set-entity.d.ts +46 -0
  49. package/dist/commands/skills.d.ts +34 -0
  50. package/dist/commands/start-run.d.ts +56 -0
  51. package/dist/commands/status.d.ts +3 -0
  52. package/dist/commands/step-numbering.d.ts +87 -0
  53. package/dist/commands/step.d.ts +96 -0
  54. package/dist/commands/summary.d.ts +20 -0
  55. package/dist/commands/sync.d.ts +6 -0
  56. package/dist/commands/triage.d.ts +21 -0
  57. package/dist/commands/update.d.ts +4 -0
  58. package/dist/commands/validate.d.ts +11 -0
  59. package/dist/commands/view-results.d.ts +9 -0
  60. package/dist/index.d.ts +9 -0
  61. package/dist/index.js +5369 -1637
  62. package/dist/sync-mcp/fatal.d.ts +42 -0
  63. package/dist/sync-mcp/server.d.ts +1 -0
  64. package/dist/sync-mcp/tools.d.ts +12 -0
  65. package/dist/templates/prompts/walk.md +62 -37
  66. package/dist/templates/skills/iamu-findings.md +118 -42
  67. package/dist/templates/skills/iamu-new.md +106 -60
  68. package/dist/templates/skills/iamu-propose.md +36 -25
  69. package/dist/templates/skills/iamu-run.md +273 -114
  70. package/dist/templates/skills/iamu-setup.md +252 -176
  71. package/dist/templates/skills/iamu-stage.md +164 -0
  72. package/dist/templates/skills/iamu-status.md +16 -11
  73. package/dist/templates.d.ts +10 -0
  74. package/dist/ui/journey-diff.d.ts +3 -0
  75. package/dist/ui/json.d.ts +6 -0
  76. package/dist/ui/logger.d.ts +5 -0
  77. package/dist/ui/panic.d.ts +11 -0
  78. package/dist/ui/symbols.d.ts +11 -0
  79. package/dist/ui/table.d.ts +20 -0
  80. package/dist/ui/update-check.d.ts +6 -0
  81. package/dist/worktree-state.d.ts +49 -0
  82. package/package.json +8 -8
  83. package/dist/eval/gemini-eval-cli.js +0 -976
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: iamu-new
3
- description: Draft a scenario or standalone persona from a specific intent — create the situation + persona + brief, or scaffold a standalone persona into the casting panel. Use when the user already knows WHAT or WHO to test. If they're exploring what or who to test or need suggestions, use iamu-propose first.
3
+ description: Use when creating or authoring a new scenario, persona, or situation narrative with a known testing intent, or when the user wants to test a specific user flow or situation.
4
4
  generatedBy: __IAMU_VERSION__
5
5
  ---
6
6
 
@@ -8,8 +8,8 @@ You are a brainstorming partner, not a form filler. Your job is to help the user
8
8
 
9
9
  **You bring:**
10
10
  - Understanding of the domain from `iamu/context.yml` (actors, jurisdiction, regulations if applicable)
11
- - Knowledge of the codebase from prior exploration (what features exist, what flows are built)
12
- - Awareness of the gap between "what the product supports" and "what real users actually need to do"
11
+ - What the product is for, from `iamu/context.yml` and `iamu/capabilities/` (titles and descriptions)
12
+ - Awareness of what real users actually need to do, whether or not the product supports it today
13
13
 
14
14
  **The user brings:**
15
15
  - Knowledge of which area they want to test (or nothing — you propose)
@@ -17,6 +17,8 @@ You are a brainstorming partner, not a form filler. Your job is to help the user
17
17
 
18
18
  Scenarios are written in **problem-space only** — they describe human situations, not UI flows. No screen references, no button names, no feature names. The scenario says "a shift leader needs to hand off open incidents under time pressure" — the walkthrough discovers whether the product supports that.
19
19
 
20
+ **Drafting is not staging.** Do not read the product's source code, routes, `iamu/testability.md` or `iamu explore` output while drafting, and do not decide entry pages, starting data, accounts or mocks. Knowing what the product already does pulls a draft toward what was built and away from what the person needs. Getting the product into the state a situation needs happens when the scenario first runs: `iamu-run` stages it (start page, expected data, approximation guidance, which account the persona uses) before the walk.
21
+
20
22
  **Methodology prompts:** Before drafting, read the methodology files. These contain the quality standards for each artifact:
21
23
  - `iamu/.prompts/persona.md` — how to write a durable persona
22
24
  - `iamu/.prompts/outline.md` — how to write a situation outline
@@ -45,68 +47,105 @@ Determine the mode based on `$ARGUMENTS` and user intent:
45
47
  iamu new persona --name "<Name>" --role "<Role>" --disposition "<Disposition>" --json
46
48
  ```
47
49
  5. Write the persona's background narrative and test expectations as the markdown body.
48
- 6. If `iamu/context.yml` has an `access` mechanism, set the persona's `access` field to match an existing product account/role.
49
- 7. Run `iamu validate --all`.
50
- 8. Summarize: persona created in `iamu/personas/<slug>.md`. Prompt user: "You can now pair `<slug>` with a scenario draft via `iamu-new`, or propose situations for them via `iamu-propose`." Stop here for standalone persona requests.
50
+ 6. Run `iamu validate --all`.
51
+ 7. Summarize: persona created in `iamu/personas/<slug>.md`. Prompt user: "You can now pair `<slug>` with a scenario draft via `iamu-new`, or propose situations for them via `iamu-propose`." Stop here for standalone persona requests.
52
+
53
+ - **Fast-Path Scenario mode** (when intent, topic, or a candidate from `iamu-propose` is provided or referenced from conversational context, e.g. `iamu-new "checkout friction"`, "let's do candidate 2", "draft that", "option 1"):
54
+ If the user refers to a candidate proposed in the current session, resolve that candidate's details directly from the conversation history.
55
+ Do NOT drag the user through multiple question modals. Skip Step 2 entirely!
56
+ Jump directly to Step 3 and present the **Complete Scenario Spec-Sheet** (Situation + Bound Persona + Evaluation Checkpoint + Walker Brief) for **1-click / 1-key acceptance**.
51
57
 
52
- - **Scenario mode** (e.g. `iamu-new "checkout friction"`, or no `$ARGUMENTS`):
53
- Proceed through steps 2–7 below.
54
- Inspect `iamu/personas/` (`iamu list personas`) first. If personas already exist in the casting panel (e.g. seeded during `iamu-setup`), deliberately frame scenario seeds around those existing cast members to build longitudinal test history, rather than inventing new personas.
55
- If the user gives a direction, ground it in the codebase: what capabilities exist in this area? What flows are built? This helps you propose scenarios that test what's actually there, not what's imagined.
58
+ - **Exploratory Scenario mode** (no arguments or broad exploration):
59
+ Proceed through Step 2 (Propose complete scenario bundles) and Step 3.
60
+ Inspect `iamu/personas/` (`iamu list personas`) first. If personas already exist in the casting panel (e.g. seeded during `iamu-setup`), deliberately frame scenario proposals around those existing cast members to build longitudinal test history, rather than inventing new personas.
61
+ If the user gives a direction, ground it in the domain: who in `context.yml` deals with this, how often, under what pressure, and what goes wrong for them? Propose what those people need to get done, not what the product happens to offer.
56
62
 
57
- ### 2. Propose scenario seeds
63
+ ### 2. Propose Complete Scenario Bundles (Exploratory Mode)
58
64
 
59
- Propose 2–3 scenario seeds as scannable numbered cards. Do NOT use multi-column markdown tables with full prose sentences (they wrap awkwardly and break borders in terminal viewports). If personas exist in `iamu/personas/`, explicitly indicate which existing cast member pairs with each seed concept.
65
+ Present 2–3 scannable scenario proposals. Each proposal MUST bundle the situation narrative, bound persona (prioritizing existing cast members), and human evaluation checkpoint:
60
66
 
61
67
  ```
62
- 1. <Title> (<Type> · <existing persona slug or context actor>)
68
+ 1. <Title> (<Primary Capability>)
69
+ • Persona: <Persona Name> (<Role>) — Reused from cast / New candidate
63
70
  • Tension: <1 concise sentence on the human or organizational tension>
64
- • Stress-tests: <What this reveals about the product>
71
+ • Evaluation Checkpoint: "<Concrete binary yes/partial/no question>"
65
72
 
66
- 2. <Title> (<Type> · <existing persona slug or context actor>)
73
+ 2. <Alternative Title> (<Capability>)
74
+ • Persona: <Alternative Persona Name> (<Role>)
67
75
  • Tension: <1 concise sentence>
68
- • Stress-tests: <What this reveals about the product>
69
-
70
- 3. <Title> (<Type> · <existing persona slug or context actor>)
71
- • Tension: <1 concise sentence>
72
- • Stress-tests: <What this reveals about the product>
76
+ • Evaluation Checkpoint: "<Concrete binary question>"
73
77
  ```
74
78
 
75
- Ask the user: "Which seed should we develop (1–3), or suggest another angle?"
79
+ **Interactive Decision:**
80
+ - If your environment provides an interactive user-prompt tool (e.g. `ask_question`, `ask_followup_question`), invoke it:
81
+ - Question: "Scaffold this scenario for walkthrough?"
82
+ - Options:
83
+ 1. "[Recommended] Scaffold '<Bundle 1 Title>' as <Persona 1 Name>"
84
+ 2. "Switch persona: Walk as <Alternative Persona Name> (<Role>)"
85
+ 3. "Select alternative: '<Bundle 2 Title>' as <Persona 2 Name>"
86
+ 4. "Customize situation, checkpoint, or brief"
87
+ - Otherwise (in CLI or text-only environments):
88
+
89
+ Scaffold this scenario for walkthrough?
90
+ 1. [Recommended] Scaffold '<Bundle 1 Title>' as <Persona 1 Name>
91
+ 2. Switch persona: Walk as <Alternative Persona Name> (<Role>)
92
+ 3. Select alternative: '<Bundle 2 Title>' as <Persona 2 Name>
93
+ 4. Customize situation, checkpoint, or brief
76
94
 
77
- ### 3. Develop the situation
95
+ Reply '1' to scaffold [default], select 2-3, or type adjustments:
78
96
 
79
- Once the user picks a direction (e.g. "1"), draft the situation concisely.
97
+ *Execution Flow:*
98
+ - **Selecting Option 1 (or hitting Enter):** Proceed IMMEDIATELY to Step 6 (Persist everything). Zero intermediate question modals.
99
+ - **Selecting Option 2:** Present the persona switcher (Step 4) then persist.
100
+ - **Selecting Option 3:** Swap primary bundle and prompt to persist.
101
+ - **Selecting Option 4 / typing adjustments:** Expand into Step 3 to refine details before persisting.
80
102
 
81
- Do NOT ask an open-ended question like "What should this walkthrough focus on?" and then immediately answer it yourself in the same turn. Instead, propose an opinionated research focus question and one concrete binary (yes/partial/no) human checkpoint directly in the draft for the user to confirm or adjust.
103
+ ### 3. Develop the situation (Scenario Spec-Sheet)
82
104
 
83
- Do NOT use markdown blockquote syntax (`>`), which renders as stray `|` pipe characters in terminal frontends. Keep the narrative capped at 2–3 punchy sentences (problem-space only, zero UI terms).
105
+ In Fast-Path mode or when customizing, present the complete scenario as a structured, scannable Spec-Sheet before creating anything. Every field shown here is written verbatim to disk on confirmation:
84
106
 
85
- Present the draft to the user as a structured, scannable block **before creating anything**:
107
+ Do NOT output markdown header hashes (`#`, `##`, `###`) or markdown blockquote syntax (`>`), which render as stray hashes or `|` pipe characters in terminal frontends. Keep the narrative capped at 2–3 punchy sentences (problem-space only, zero UI terms).
86
108
 
87
109
  ```
88
- ### Situation Draft: <Name>
110
+ Scenario Spec-Sheet: <Outline Title>
89
111
 
90
- Narrative: <2–3 sentences describing the human situation, time pressure, or physical reality without mentioning software UI>
91
- Tension: <Legitimate colliding needs or "None">
92
- Focus Question: <Proposed research focus question, e.g. "Can a frontline worker submit an urgent slip hazard report in under 60 seconds without abandoning floor duties?">
93
- Human Checkpoint: <Concrete binary yes/partial/no question scored at evaluation>
112
+ Situation & Stakes:
113
+ Narrative: <2–3 sentences problem-space only, zero UI terms>
114
+ Tension: <Colliding needs in X vs Y format or "None">
115
+ Evaluation Checkpoint: <Concrete binary yes/partial/no question scored at evaluation>
94
116
 
95
117
  Roles with Stakes:
96
- • <Role 1>: <Stake>
97
- • <Role 2>: <Stake>
118
+ • <Role 1>: <Stake>
119
+ • <Role 2>: <Stake>
120
+
121
+ Persona & Brief:
122
+ Persona: <Existing slug from panel OR new candidate: Name (Role)>
123
+ Friction: <Diagnostic friction trigger and bounce risk>
124
+ Walker Brief:
125
+ "<First-person brief in persona voice (2–3 sentences). Describes what they intend to achieve before touching the product. Written verbatim to scenario markdown body.>"
126
+ ```
98
127
 
99
- Execution Preconditions (resolved at iamu-run):
100
- • Assumed State: <What records/data should exist, e.g. "Department with existing risk register containing open hazards">
101
- • Squint Guidance: <How the walker should approximate if exact records are missing, e.g. "If no packaging hazard exists, select any physical safety hazard and proceed with delegation">
102
- • Reachable Surface: <Entry route matched against iamu/testability.md, e.g. "/incidents/new">
128
+ **Interactive Draft Confirmation:**
129
+ - If your environment provides an interactive user-prompt tool, invoke it:
130
+ - Question: "Scaffold scenario '<Outline Title>'?"
131
+ - Options:
132
+ 1. "[Recommended] Scaffold scenario and prepare walkthrough"
133
+ 2. "Switch persona: Walk as <Alternative Persona> (<Role>)"
134
+ 3. "Adjust situation, checkpoint, or brief"
135
+ - Otherwise (in CLI or text-only environments):
103
136
 
104
- If the situation requires an un-mocked endpoint or missing data fixture to be walkable, offer to scaffold the missing MSW handler (e.g. in `src/mocks/handlers.ts`) or fixture file directly in the codebase before finalizing.
105
- ```
137
+ Scaffold scenario '<Outline Title>'?
138
+ 1. [Recommended] Scaffold scenario and prepare walkthrough
139
+ 2. Switch persona: Walk as <Alternative Persona> (<Role>)
140
+ 3. Adjust situation, checkpoint, or brief
141
+
142
+ Reply '1' to scaffold [default], select 2, or type adjustments:
106
143
 
107
- Ask the user: "Ready to test this draft, or would you like to refine the focus question, preconditions, or circumstances? (Enter to accept, or type adjustments)"
144
+ *Selecting Option 1 or hitting Enter proceeds IMMEDIATELY to Step 6 (Persist everything).*
108
145
 
109
- ### 4. Pick or propose personas
146
+ ### 4. Pick or swap personas (on demand)
147
+
148
+ Triggered only when the user selects "Switch persona", when exploring standalone personas, or when no existing persona fits:
110
149
 
111
150
  **Check existing personas first:**
112
151
  Inspect `iamu/personas/` (`iamu list personas`). If an existing persona in the casting panel is a natural fit for this situation, propose them first to build longitudinal test history:
@@ -124,7 +163,14 @@ If no existing persona fits, or if testing an uncovered perspective is needed, p
124
163
  • Why this tests something different: <Unique perspective or workflow divergence>
125
164
  ```
126
165
 
127
- The user picks one (or more — each becomes a separate scenario). "New" to propose different candidates. "Skip" to save as draft without a persona.
166
+ **Interactive Persona Selection:**
167
+ - If your environment provides an interactive user-prompt tool, invoke it with the candidates:
168
+ - Question: "Which persona should walk this scenario?"
169
+ - Options:
170
+ 1. "[Recommended] Bind existing persona: <slug> (<role>)" (if one fits)
171
+ 2. "Create candidate: <Name> (<Role>)"
172
+ 3. "Leave as draft (no persona bound yet)"
173
+ - Otherwise, prompt: "Pick a persona (1–N), 'new' to propose candidates, or 'skip' to save as draft without a persona."
128
174
 
129
175
  ### 5. Classify into capabilities
130
176
 
@@ -145,36 +191,36 @@ Use CLI commands to scaffold entities with valid frontmatter. The CLI generates
145
191
 
146
192
  **1. Capability** (only if new):
147
193
  ```bash
148
- iamu new capability --name "Incident Reporting" --description "What staff can do when something goes wrong on shift" --json
194
+ iamu new capability --name "Incident Reporting" \
195
+ --description "What staff can do when something goes wrong on shift" \
196
+ --area "Operations" \
197
+ --json
149
198
  ```
199
+ Leave `--paths` out: route prefixes are product structure, not part of the situation. Without them, `iamu explore coverage` matches pages whose first path segment equals the capability slug; add `paths` to the capability file later, outside drafting, if that groups the area's pages wrong.
150
200
 
151
201
  **2. Outline** (the situation — problem-space, no UI references):
152
202
  ```bash
153
- iamu new outline --name "Busy shift handoff" --json
154
- ```
155
- After creation, use Edit to add fields to the frontmatter: `primary_capability`, `narrative`, `tension`, `human_tests`, `situation_roles`. The outline body stays empty.
156
-
157
- Example frontmatter to add via Edit:
158
- ```yaml
159
- primary_capability: incident-reporting
160
- narrative: "A shift leader needs to hand off a set of open incidents..."
161
- human_tests:
162
- - id: ht-1
163
- question: "Could the incoming leader act immediately without asking clarifying questions?"
203
+ iamu new outline --name "Busy shift handoff" \
204
+ --capability incident-reporting \
205
+ --additional-capabilities team-access \
206
+ --tension "Incident details are fragmented across multiple logs while shift time expires" \
207
+ --narrative "A shift leader needs to hand off a set of open incidents to the incoming supervisor." \
208
+ --human-test "Could the incoming leader act immediately without asking clarifying questions?" \
209
+ --json
164
210
  ```
211
+ The `--capability`, `--additional-capabilities`, `--tension`, `--narrative`, and repeatable `--human-test` flags populate outline frontmatter directly. The outline body stays empty. If specialized fields like `situation_roles` are needed, edit the generated frontmatter.
165
212
 
166
213
  **3. Persona** (if user picked a new persona to scaffold):
167
214
  ```bash
168
215
  iamu new persona --name "Maria Gomez" --role "Site Safety Coordinator" --disposition "Time-pressured, prefers physical paper over complex forms" --json
169
216
  ```
170
- The `--role` and `--disposition` flags populate frontmatter directly. If `iamu/context.yml` has an `access` mechanism, also set the persona's `access` to the account, role, or switcher key that matches this persona in the product — check what users the product actually has rather than inventing one; leave it out if nothing fits and say so. Write the persona's background narrative and test expectations as the markdown body.
217
+ The `--role` and `--disposition` flags populate frontmatter directly. Leave `access` out — which product account the persona uses is decided when the scenario is staged in `iamu-run`. Write the persona's background narrative and test expectations as the markdown body.
171
218
 
172
219
  **4. Scenario** (the binding):
173
220
  ```bash
174
- iamu new scenario --name "maria-gomez--busy-shift-handoff" --outline busy-shift-handoff --persona maria-gomez [--entry /path/on/the/product] [--state-description "<Assumed state description>"] [--state-approximation "<Squint guidance for walker>"] --body "<First-person brief in persona voice (3–5 sentences)>" --json
221
+ iamu new scenario --name "maria-gomez--busy-shift-handoff" --outline busy-shift-handoff --persona maria-gomez --body "<First-person brief in persona voice (3–5 sentences)>" --json
175
222
  ```
176
- When the situation begins on a specific page (the persona follows a link from a video, an email, a search result), add `--entry /path/on/the/product` — the run starts there instead of the home page.
177
- `--outline` is required. `--persona` is optional (omit for drafts). Pass `--state-description` and `--state-approximation` if preconditions were defined in step 3 to populate the scenario's `state:` frontmatter automatically.
223
+ `--outline` is required. `--persona` is optional (omit for drafts). Do not pass `--entry` or the `--state-*` flags here: where the walk starts and what data it needs are set when `iamu-run` stages the scenario. If the situation begins somewhere specific (the persona follows a link from an email, a video, a search result), say so in the narrative or brief in the persona's words; staging turns that into a start page.
178
224
 
179
225
  For drafts (no persona): omit `--persona`, omit `--body`.
180
226
 
@@ -200,7 +246,7 @@ Run `iamu validate --all` to verify all entities before reporting done.
200
246
 
201
247
  - **Brainstorm, don't fill forms.** Propose varied seeds. Challenge assumptions. The best scenarios are ones the user hadn't considered.
202
248
  - **Problem-space only.** Scenarios describe human situations — never UI, screens, buttons, or features. The walkthrough discovers whether the product supports the situation.
203
- - **Ground in the codebase.** Use your knowledge of what the product actually does to propose scenarios that stress-test real capabilities. But keep the scenario language product-agnostic.
249
+ - **Ground in the domain, not the codebase.** Start from what the persona's week demands. A situation the product cannot support yet is a good scenario: the walk shows the gap with evidence.
204
250
  - **Present before creating.** Show situation, personas, and capability to the user before writing files.
205
251
  - **Scenario vocabulary.** Say "scenario" in output, never "outline" or "capability."
206
252
  - **Multiple personas surface different problems.** A manager, a field worker, and an auditor will find completely different issues in the same situation. Propose personas that test the product differently, not personas that are cosmetically varied.
@@ -209,4 +255,4 @@ Run `iamu validate --all` to verify all entities before reporting done.
209
255
  - **Capability is quiet.** High-confidence matches fire silently.
210
256
  - **Slug references are load-bearing.** Write referenced entities before the entities that reference them.
211
257
  - **Validate before done.** Always run `iamu validate --all` after writing entities.
212
- - **Use CLI for scaffolding.** `iamu new <type>` creates valid frontmatter with UUIDs. Use Edit to add additional fields and body content after scaffolding.
258
+ - **Use CLI for scaffolding.** `iamu new <type>` creates valid frontmatter with UUIDs. Pass flags (`--role`, `--disposition`, `--capability`, `--tension`, `--human-test`) directly instead of manual YAML editing.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: iamu-propose
3
- description: Suggest scenarios or personas for testing. Use BEFORE iamu-new when the user wants to know what or who to test — e.g. "what should we test?", "propose new personas", "who else should we test with?", "suggest scenarios for checkout", "propose personas".
3
+ description: Use when the user asks what or who to test, requests scenario or persona suggestions, seeks brainstorming on test coverage, or asks "what should we test next?".
4
4
  generatedBy: __IAMU_VERSION__
5
5
  ---
6
6
 
@@ -25,15 +25,13 @@ Every persona candidate must have **diagnostic friction**:
25
25
 
26
26
  ## Prerequisites
27
27
 
28
- Before starting, check that `iamu/context.yml` exists and has content. If it is missing or empty, stop:
29
-
30
- > No project context found. Run `iamu-setup` first — proposals need domain grounding to avoid shallow thinking.
28
+ Before starting, check that `iamu/context.yml` exists and has content. If it is missing or empty, stop and inform the user: "No project context found. Run `iamu-setup` first — proposals need domain grounding to avoid shallow thinking."
31
29
 
32
30
  If context is thin (few actors, sparse notes), say so upfront — "your context has few actors and sparse notes; proposals will be shallow. Consider enriching context first."
33
31
 
34
32
  ## Steps
35
33
 
36
- ### 1. Load domain context & testability boundaries
34
+ ### 1. Load domain context
37
35
 
38
36
  Read `iamu/context.yml`. Extract and hold:
39
37
  - **Domain + industry** — what world does this product operate in?
@@ -41,20 +39,19 @@ Read `iamu/context.yml`. Extract and hold:
41
39
  - **Governed_by** — regulations and standards (if applicable). These create structural tensions in regulated domains.
42
40
  - **Notes body** — extended context, often containing workflow descriptions, pain points, organizational dynamics.
43
41
 
44
- Read `iamu/testability.md` (if present) to enforce execution boundaries:
45
- - **Reachable surfaces:** Ground candidates in reachable routes. Avoid proposing scenarios for product areas with no navigable surfaces.
46
- - **Untestable boundaries:** Strictly avoid proposing scenarios in flows documented as untestable (e.g. un-mocked live payment gateways, SMS dispatch, third-party SSO).
47
- - **Mocks & Fixtures:** Note which candidates require existing database seeds or mock handlers.
42
+ **Stay in the problem space.** Proposals come from the domain, not from the product's code, routes, pages or test setup. Do not read source files, `iamu/testability.md`, or `iamu explore` output while proposing, and never put a route, URL or screen into a candidate. Whether and how a situation can be set up in the product is decided when it first runs (`iamu-run` stages it), not here — a situation the product cannot support is worth walking: the persona hitting that wall is the finding.
48
43
 
49
44
  ### 2. Load existing coverage
50
45
 
51
46
  Read existing entities to understand what's already been tested:
52
- - `iamu/capabilities/` — what product areas exist?
53
- - `iamu/outlines/` — what situations are already drafted?
47
+ - `iamu/capabilities/` — what product areas exist? Use each capability's title and description only; its `paths` are route prefixes and stay out of proposals.
48
+ - `iamu/outlines/` — what situations are already drafted, and which capability each one covers?
54
49
  - `iamu/scenarios/` — what's already bound to personas?
55
50
  - `iamu/personas/` — who do we already have in our casting panel?
56
51
 
57
- Build a coverage picture: which capabilities have scenarios? Which actors from `context.yml` lack personas? Where are the gaps?
52
+ **Find untested product areas.** A capability no outline names (as `capability` or in `additional_capabilities`) is an area no persona has been near. Treat it as a prompt for the domain question — "who in this domain needs what this area is for, and when?" — never as a place to send a persona.
53
+
54
+ Build a coverage picture: which capabilities have scenarios? Which actors from `context.yml` lack personas? Which kinds of situation (routine, deadline, handover, mistake to correct) are missing? Where are the gaps?
58
55
 
59
56
  ### 3. Determine focus
60
57
 
@@ -62,7 +59,7 @@ Four entry paths based on `$ARGUMENTS`:
62
59
 
63
60
  - **Persona / Tester panel** (e.g. `iamu-propose "personas"`, `"who else should we test with?"`, `"propose new personas"`) — analyze which actors from `context.yml` lack personas in `iamu/personas/`. Focus proposals on creating durable, diagnostically biased personas for uncovered roles.
64
61
  - **Area or capability** (e.g. `iamu-propose "employee provisioning"`) — focus proposals on this area. Match against capabilities and context actors/workflows.
65
- - **Open-ended** (e.g. `iamu-propose`, `iamu-propose "what's missing?"`) — analyze coverage gaps across both scenarios and persona diversity. Prioritize uncovered capabilities and actors without personas.
62
+ - **Open-ended** (e.g. `iamu-propose`, `iamu-propose "what's missing?"`) — analyze coverage gaps across scenarios and persona diversity. Prioritize untested product areas and actors without personas.
66
63
  - **Specific tension** (e.g. `iamu-propose "what happens when the safety coordinator disagrees with HR?"`) — use as seed but ground in context. Verify the tension is real (do these actors and dynamics exist in the domain?).
67
64
 
68
65
  ### 4. Present candidates (Numbered Cards)
@@ -77,21 +74,29 @@ Lead with existing coverage using clickable links, then render the candidates:
77
74
  Existing coverage: <N> scenarios ([<slug1>](iamu/scenarios/<slug1>.md), ...). Uncovered areas: <gaps>.
78
75
 
79
76
  1. <Short situation name> (<Actor from context>)
77
+ • Capability: <Capability slug, e.g. billing-invoicing>
80
78
  • Tension: <1-line human/domain tension>
81
79
  • Stress-tests: <What this reveals about the product>
82
80
 
83
81
  2. <Short situation name> (<Actor from context>)
82
+ • Capability: <Capability slug, e.g. team-access>
84
83
  • Tension: <1-line human/domain tension>
85
84
  • Stress-tests: <What this reveals about the product>
86
85
 
87
86
  3. <Short situation name> (<Actor from context>)
87
+ • Capability: <Capability slug, e.g. incident-response>
88
88
  • Tension: <1-line human/domain tension>
89
89
  • Stress-tests: <What this reveals about the product>
90
90
 
91
- Next action:
92
- Type 1, 2, or 3 to scaffold via iamu-new
93
- Or describe adjustments (e.g. "make #2 more time-pressured", "explore <area>")
94
- ```
91
+ **Interactive Candidate Selection:**
92
+ - If your environment provides an interactive user-prompt tool (e.g. `ask_question`, `ask_followup_question`), invoke it:
93
+ - Question: "Which scenario candidate would you like to scaffold?"
94
+ - Options:
95
+ 1. "[Recommended] Scaffold '<Candidate 1 Title>' (<Actor>)"
96
+ 2. "Scaffold '<Candidate 2 Title>' (<Actor>)"
97
+ 3. "Scaffold '<Candidate 3 Title>' (<Actor>)"
98
+ - Otherwise (in CLI or text-only environments):
99
+ Reply '1' to scaffold [default], select 2-3, or describe adjustments:
95
100
 
96
101
  #### B. When proposing Personas:
97
102
 
@@ -111,16 +116,22 @@ Existing personas: [<slug1>](iamu/personas/<slug1>.md), ... Uncovered roles from
111
116
  3. <Name> (<Actor role>)
112
117
  • Friction & Biases: <Specific friction triggers, skepticism, and bounce risks>
113
118
  • Key Expectations & Vocabulary: <Domain terms and spec requirements>
114
-
115
- Next action:
116
- Type 1, 2, or 3 to scaffold via iamu-new
117
- Or describe adjustments
118
119
  ```
119
120
 
121
+ **Interactive Persona Selection:**
122
+ - If your environment provides an interactive user-prompt tool (e.g. `ask_question`, `ask_followup_question`), invoke it:
123
+ - Question: "Which persona would you like to add to the casting panel?"
124
+ - Options:
125
+ 1. "[Recommended] Add <Name 1> (<Actor role>)"
126
+ 2. "Add <Name 2> (<Actor role>)"
127
+ 3. "Add <Name 3> (<Actor role>)"
128
+ - Otherwise (in CLI or text-only environments):
129
+ Reply '1' to add [default], select 2-3, or describe adjustments:
130
+
120
131
  Ground rules for generation:
121
132
 
122
133
  - **Start from the actor's week, not the feature list.** What does this person actually do on a Tuesday? What goes wrong? What requires judgment?
123
- - **Use authentic domain vocabulary.** Speak in the language of the domain and the product UI (e.g., "skyddsombud" rather than generic "safety representative"), avoiding abstract test jargon.
134
+ - **Use authentic domain vocabulary.** Speak in the language of the domain (e.g., "skyddsombud" rather than generic "safety representative"), avoiding abstract test jargon.
124
135
  - **Prefer mundane frequency over dramatic edge cases.** The scenario that happens every week reveals more than the one that happens once a year.
125
136
  - **Structural tensions come from the domain, not from product limitations.** A real tension: "the regulation requires immediate reporting but the coordinator handles 3 sites." A fake tension: "the CSV upload has a 50-row limit."
126
137
  - **Never mention the product, its UI, its features, or its limitations.** The scenario exists in the domain. The product encounter happens during the walkthrough.
@@ -130,9 +141,9 @@ Ground rules for generation:
130
141
 
131
142
  ### 5. Selection and Handoff
132
143
 
133
- - **User picks a scenario candidate** → hand off to `iamu-new` with the selected candidate's situation as the intent seed. Provide the full context (actor, regulatory surface, why-interesting) so `iamu-new` can ground its outline generation.
134
- - **User picks a persona candidate** → hand off to `iamu-new` with candidate profile (name, role, disposition, vocabulary, friction triggers). `iamu-new` can scaffold the persona standalone into `iamu/personas/` or pair them with a situation draft.
135
- - **User refines** → regenerate or adjust the comparison table, re-applying the philosophy tests.
144
+ - **User picks a scenario candidate (e.g. "1" or Enter)** → Immediately invoke `iamu-new` in **Fast-Path Scenario Mode** passing the selected candidate title, actor, primary capability slug (`--capability`), tension, and evaluation checkpoint as structured arguments. Do NOT allow `iamu-new` to restart seed brainstorming. It must present the single Scenario Spec-Sheet directly for instant 1-click persistence.
145
+ - **User picks a persona candidate** → Immediately invoke `iamu-new` in **Standalone Persona Mode** with the candidate's name, role, disposition, and friction triggers to scaffold directly into `iamu/personas/<slug>.md`.
146
+ - **User refines** → regenerate candidates applying the requested adjustments.
136
147
  - **User rejects all** → ask what domain area or actor they want to explore. Loop back to step 4.
137
148
 
138
149
  ## Guidelines