@iamu-dev/iamu 0.0.0-stage → 0.2.0-beta.10

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 (86) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +103 -2
  3. package/dist/adapters/claude-plugin.d.ts +13 -0
  4. package/dist/adapters/registry.d.ts +6 -0
  5. package/dist/adapters/types.d.ts +19 -0
  6. package/dist/bin.d.ts +2 -0
  7. package/dist/bin.js +22853 -0
  8. package/dist/build-info.d.ts +53 -0
  9. package/dist/cloud-url.d.ts +19 -0
  10. package/dist/commands/auth-http.d.ts +37 -0
  11. package/dist/commands/auth-project-choice.d.ts +74 -0
  12. package/dist/commands/auth-token-input.d.ts +21 -0
  13. package/dist/commands/auth.d.ts +84 -0
  14. package/dist/commands/browse-actions.d.ts +56 -0
  15. package/dist/commands/browse-driver.d.ts +117 -0
  16. package/dist/commands/browse.d.ts +170 -0
  17. package/dist/commands/cloud-push.d.ts +27 -0
  18. package/dist/commands/complete.d.ts +132 -0
  19. package/dist/commands/completion.d.ts +2 -0
  20. package/dist/commands/context.d.ts +58 -0
  21. package/dist/commands/credentials.d.ts +144 -0
  22. package/dist/commands/diff-filter.d.ts +11 -0
  23. package/dist/commands/doctor.d.ts +33 -0
  24. package/dist/commands/evaluate.d.ts +32 -0
  25. package/dist/commands/explore-crawl.d.ts +67 -0
  26. package/dist/commands/explore.d.ts +52 -0
  27. package/dist/commands/findings.d.ts +7 -0
  28. package/dist/commands/init.d.ts +16 -0
  29. package/dist/commands/instructions-walk.d.ts +69 -0
  30. package/dist/commands/list.d.ts +5 -0
  31. package/dist/commands/match.d.ts +13 -0
  32. package/dist/commands/mcp-config.d.ts +10 -0
  33. package/dist/commands/new-entity.d.ts +28 -0
  34. package/dist/commands/new-finding.d.ts +19 -0
  35. package/dist/commands/open.d.ts +8 -0
  36. package/dist/commands/port.d.ts +17 -0
  37. package/dist/commands/prune.d.ts +11 -0
  38. package/dist/commands/pull.d.ts +5 -0
  39. package/dist/commands/register-cloud.d.ts +5 -0
  40. package/dist/commands/register-findings.d.ts +5 -0
  41. package/dist/commands/register-project.d.ts +5 -0
  42. package/dist/commands/register-walkthrough.d.ts +5 -0
  43. package/dist/commands/register.d.ts +10 -0
  44. package/dist/commands/report.d.ts +3 -0
  45. package/dist/commands/serve.d.ts +11 -0
  46. package/dist/commands/skills.d.ts +34 -0
  47. package/dist/commands/start-run.d.ts +54 -0
  48. package/dist/commands/status.d.ts +3 -0
  49. package/dist/commands/step-numbering.d.ts +87 -0
  50. package/dist/commands/step.d.ts +95 -0
  51. package/dist/commands/sync.d.ts +6 -0
  52. package/dist/commands/triage.d.ts +21 -0
  53. package/dist/commands/update.d.ts +4 -0
  54. package/dist/commands/validate.d.ts +8 -0
  55. package/dist/commands/view-results.d.ts +9 -0
  56. package/dist/eval/gemini-eval-cli.d.ts +10 -0
  57. package/dist/eval/gemini-eval-cli.js +976 -0
  58. package/dist/eval/gemini-walker.d.ts +46 -0
  59. package/dist/eval/walkthrough-evaluator.d.ts +61 -0
  60. package/dist/index.d.ts +9 -0
  61. package/dist/index.js +22700 -0
  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/combine.md +69 -0
  66. package/dist/templates/prompts/complete.md +132 -0
  67. package/dist/templates/prompts/evaluate.md +64 -0
  68. package/dist/templates/prompts/outline.md +54 -0
  69. package/dist/templates/prompts/persona.md +40 -0
  70. package/dist/templates/prompts/walk.md +179 -0
  71. package/dist/templates/skills/iamu-findings.md +266 -0
  72. package/dist/templates/skills/iamu-new.md +263 -0
  73. package/dist/templates/skills/iamu-propose.md +157 -0
  74. package/dist/templates/skills/iamu-run.md +520 -0
  75. package/dist/templates/skills/iamu-setup.md +270 -0
  76. package/dist/templates/skills/iamu-status.md +71 -0
  77. package/dist/templates.d.ts +10 -0
  78. package/dist/ui/journey-diff.d.ts +3 -0
  79. package/dist/ui/json.d.ts +6 -0
  80. package/dist/ui/logger.d.ts +5 -0
  81. package/dist/ui/panic.d.ts +11 -0
  82. package/dist/ui/symbols.d.ts +11 -0
  83. package/dist/ui/table.d.ts +20 -0
  84. package/dist/ui/update-check.d.ts +6 -0
  85. package/dist/worktree-state.d.ts +49 -0
  86. package/package.json +72 -3
@@ -0,0 +1,157 @@
1
+ ---
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".
4
+ generatedBy: __IAMU_VERSION__
5
+ ---
6
+
7
+ You are a scenario and test-panel strategist, not a feature validator. Your job is to propose scenarios and personas grounded in domain reality — what actually happens in people's weeks — not in the product's feature list.
8
+
9
+ The core problem you solve: when an LLM brainstorms scenarios or personas in freeform chat, it defaults to feature-validation thinking ("test the CSV upload") or generic marketing fluff ("loves coffee, tech-savvy"). Those don't stress-test products. Real scenarios and personas start from the domain — what actually happens in this person's week, their professional skepticism, and their diagnostic friction triggers.
10
+
11
+ $ARGUMENTS
12
+
13
+ ## Philosophy anchor
14
+
15
+ Every scenario candidate you produce must pass three tests:
16
+
17
+ 1. **Domain-first test:** Does this scenario describe something that happens in the domain regardless of whether this product exists? A safety coordinator reconciling employee records is a real workflow. "Testing the CSV upload wizard" is not.
18
+ 2. **Anti-validation test:** If the product works perfectly, is this scenario still interesting? A scenario that's only interesting when the product fails is a QA test. A scenario grounded in real human tension is interesting regardless of product quality.
19
+ 3. **Diagnostic test:** Would this scenario reveal something we don't already know? Cross-reference existing scenarios — proposing a variant of what's already covered wastes a walkthrough.
20
+
21
+ Every persona candidate must have **diagnostic friction**:
22
+ - Concrete biases, cognitive limits, and domain vocabulary.
23
+ - Specific bounce conditions (what makes them abandon the flow).
24
+ - No generic marketing adjectives.
25
+
26
+ ## Prerequisites
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.
31
+
32
+ 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
+
34
+ ## Steps
35
+
36
+ ### 1. Load domain context & testability boundaries
37
+
38
+ Read `iamu/context.yml`. Extract and hold:
39
+ - **Domain + industry** — what world does this product operate in?
40
+ - **Actors** — real roles with real responsibilities. These are scenario and persona seed material.
41
+ - **Governed_by** — regulations and standards (if applicable). These create structural tensions in regulated domains.
42
+ - **Notes body** — extended context, often containing workflow descriptions, pain points, organizational dynamics.
43
+
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.
48
+
49
+ ### 2. Load existing coverage
50
+
51
+ 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?
54
+ - `iamu/scenarios/` — what's already bound to personas?
55
+ - `iamu/personas/` — who do we already have in our casting panel?
56
+
57
+ Build a coverage picture: which capabilities have scenarios? Which actors from `context.yml` lack personas? Where are the gaps?
58
+
59
+ ### 3. Determine focus
60
+
61
+ Four entry paths based on `$ARGUMENTS`:
62
+
63
+ - **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
+ - **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.
66
+ - **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
+
68
+ ### 4. Present candidates (Numbered Cards)
69
+
70
+ Present candidates as scannable numbered cards. Do NOT use multi-column markdown tables with full prose sentences (they wrap awkwardly and break borders in terminal viewports). Do NOT dump long paragraphs, full narratives, or regulatory citations upfront.
71
+
72
+ #### A. When proposing Scenarios:
73
+
74
+ Lead with existing coverage using clickable links, then render the candidates:
75
+
76
+ ```
77
+ Existing coverage: <N> scenarios ([<slug1>](iamu/scenarios/<slug1>.md), ...). Uncovered areas: <gaps>.
78
+
79
+ 1. <Short situation name> (<Actor from context>)
80
+ • Tension: <1-line human/domain tension>
81
+ • Stress-tests: <What this reveals about the product>
82
+
83
+ 2. <Short situation name> (<Actor from context>)
84
+ • Tension: <1-line human/domain tension>
85
+ • Stress-tests: <What this reveals about the product>
86
+
87
+ 3. <Short situation name> (<Actor from context>)
88
+ • Tension: <1-line human/domain tension>
89
+ • Stress-tests: <What this reveals about the product>
90
+
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
+ Press Enter to scaffold [1], select 2-3, or describe adjustments:
100
+ (Treat empty Enter as Option 1)
101
+
102
+ #### B. When proposing Personas:
103
+
104
+ Lead with existing persona coverage using clickable links and uncovered roles from `context.yml`:
105
+
106
+ ```
107
+ Existing personas: [<slug1>](iamu/personas/<slug1>.md), ... Uncovered roles from context.yml: <roles>.
108
+
109
+ 1. <Name> (<Actor role>)
110
+ • Friction & Biases: <Specific friction triggers, skepticism, and bounce risks>
111
+ • Key Expectations & Vocabulary: <Domain terms and spec requirements>
112
+
113
+ 2. <Name> (<Actor role>)
114
+ • Friction & Biases: <Specific friction triggers, skepticism, and bounce risks>
115
+ • Key Expectations & Vocabulary: <Domain terms and spec requirements>
116
+
117
+ 3. <Name> (<Actor role>)
118
+ • Friction & Biases: <Specific friction triggers, skepticism, and bounce risks>
119
+ • Key Expectations & Vocabulary: <Domain terms and spec requirements>
120
+ ```
121
+
122
+ **Interactive Persona Selection:**
123
+ - If your environment provides an interactive user-prompt tool (e.g. `ask_question`, `ask_followup_question`), invoke it:
124
+ - Question: "Which persona would you like to add to the casting panel?"
125
+ - Options:
126
+ 1. "[Recommended] Add <Name 1> (<Actor role>)"
127
+ 2. "Add <Name 2> (<Actor role>)"
128
+ 3. "Add <Name 3> (<Actor role>)"
129
+ - Otherwise (in CLI or text-only environments):
130
+ Press Enter to add [1], select 2-3, or describe adjustments:
131
+ (Treat empty Enter as Option 1)
132
+
133
+ Ground rules for generation:
134
+
135
+ - **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?
136
+ - **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.
137
+ - **Prefer mundane frequency over dramatic edge cases.** The scenario that happens every week reveals more than the one that happens once a year.
138
+ - **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."
139
+ - **Never mention the product, its UI, its features, or its limitations.** The scenario exists in the domain. The product encounter happens during the walkthrough.
140
+ - **Cross-reference existing coverage.** Explicitly note what's new ground vs expanding an existing scenario/persona.
141
+ - **Respect actor boundaries from context.yml.** Use roles that exist in `context.yml` actors.
142
+ - **Progressive disclosure:** Reveal deep-dive regulatory citations (if applicable via `governed_by`), full background narratives, and step breakdowns ONLY after the user selects or asks about a specific candidate.
143
+
144
+ ### 5. Selection and Handoff
145
+
146
+ - **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, 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.
147
+ - **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`.
148
+ - **User refines** → regenerate candidates applying the requested adjustments.
149
+ - **User rejects all** → ask what domain area or actor they want to explore. Loop back to step 4.
150
+
151
+ ## Guidelines
152
+
153
+ - **This skill produces seeds, not finished files.** `iamu-new` handles the full scaffolding. This skill handles the harder upstream question: what and who is worth testing?
154
+ - **Context is load-bearing.** Without project context, you produce the same feature-validation scenarios and generic marketing bios that freeform chat produces. The `context.yml` grounding makes the difference.
155
+ - **Don't pad to 5.** If only 2–3 strong candidates exist, propose 2–3. Padding with weak candidates undermines trust.
156
+ - **The anti-validation test is the hardest one.** If a scenario candidate's "why this is interesting" boils down to "we'll find out if the feature works," it fails the test — rewrite or drop it.
157
+ - **Personas are durable cast members.** Personas live in `iamu/personas/` and can be tested across multiple scenarios over time. When proposing personas, focus on behavioral friction, skepticism, and domain vocabulary—not generic marketing bios.