@iamu-dev/iamu 0.8.0-beta.0 → 0.8.0-beta.1

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.
@@ -68,22 +68,41 @@ Inspect the project to understand what the system under test already supports:
68
68
  4. **Running Dev Server:**
69
69
  - Verify the target URL (e.g. `http://localhost:3000`). If a local server is running, check what port it uses.
70
70
 
71
- ### 3. Audit Gaps & Present the Strategic Fork
71
+ ### 3. Audit Gaps & Confirm Target, Entry & Login
72
72
 
73
73
  Present an honest, concise audit of what the scenario needs vs. what the system currently provides:
74
74
 
75
75
  ```markdown
76
76
  ### Staging Audit for `<scenario-slug>`
77
77
 
78
- - **Persona Role:** Maria Gomez (Shift Coordinator)
79
- - Need: Account with site-coordinator privileges.
80
- - Found: `coordinator@site-a.test` in seed scripts.
81
- - **Entry Route:** `/incidents` (verified in `src/app/(dashboard)/incidents/page.tsx`).
82
- - **World State:** 5 open incidents, 1 serious and unassigned.
83
- - Current DB / Seed: Default seed only creates 0 incidents, or empty demo state.
78
+ - **Target URL:** `http://localhost:3000` (`pnpm dev`, from `iamu/testability.md`)
79
+ - **Entry Route:** `/incidents` (verified in `src/app/(dashboard)/incidents/page.tsx`)
80
+ - **Persona Login:** Maria Gomez (Shift Coordinator) → `coordinator@site-a.test` (`dev_bypass` / `seed_accounts` / `interactive_browser`)
81
+ - **World State:** 5 open incidents, 1 serious and unassigned (Current DB / Seed: 0 incidents)
84
82
  ```
85
83
 
86
- Now present the **Strategic Fork** to the user. Do not be an unyielding bureaucrat. Give the user two clear options:
84
+ #### Step 3a: Confirm Target URL, Entry Route & Persona Login
85
+ Never bury the Target URL, Entry Route, or Login mechanism inside a world-state prompt where the user cannot easily override them. Before asking about database seeds, confirm where the walk starts and how it signs in (one focused question):
86
+
87
+ - If your environment provides an interactive user-prompt tool (e.g. `ask_question`, `ask_followup_question`), invoke it:
88
+ - **Question:** "Start URL & Login for `<scenario-slug>`: Should Iamu start at `<target_url><entry_route>` and sign in via `<detected_access_or_strategy>`?"
89
+ - **Options:**
90
+ 1. "[Recommended] Confirm `<target_url><entry_route>` & `<detected_access_or_strategy>`"
91
+ 2. "Change Target URL or Entry Route — tell me the URL or `/path`"
92
+ 3. "Change how tests log in as `<persona.name>` (e.g. interactive Chrome login, different test account, or dev switcher)"
93
+ 4. "No login needed (public / unauthenticated flow)"
94
+ - Otherwise, state the recommended Target URL, Entry Route, and Login mechanism and ask the user to confirm or override any of them.
95
+
96
+ Persist any Target URL, Entry Route, or Login updates immediately:
97
+ ```bash
98
+ iamu set testability --target <url> --auth-strategy <strategy> --access "<project-auth-mechanism>"
99
+ iamu set scenario <slug> --entry "/<route>"
100
+ iamu set persona <persona-slug> --access "<account-or-role-key>"
101
+ ```
102
+
103
+ #### Step 3b: Present the Strategic Fork (World State & Seeds)
104
+
105
+ Now present the **Strategic Fork** for the scenario's world state. Do not be an unyielding bureaucrat. Give the user clear options:
87
106
 
88
107
  #### Option A: Build Testability (The High-Integrity Path)
89
108
  *Recommend this when a clean seed script or preset is easy to add.*
@@ -106,23 +125,10 @@ Now present the **Strategic Fork** to the user. Do not be an unyielding bureaucr
106
125
  - Mark `--state-description "No particular data needed"`.
107
126
 
108
127
  **Dual-Surface Staging Gate (Sequencing Rule):**
109
- You MUST output the staging options to the chat stream FIRST. In the SAME turn, invoke `ask_question` with the staging options and requirements embedded in the `question` argument:
128
+ You MUST output the staging options to the chat stream FIRST. In the SAME turn, invoke `ask_question` with the world-state options:
110
129
 
111
130
  - If your environment provides an interactive user-prompt tool (e.g. `ask_question`, `ask_followup_question`), invoke it:
112
- - **Question:**
113
- """
114
- Staging Plan for '<scenario-slug>':
115
-
116
- Entry Route: <route>
117
- Required World State: <Description of required world in domain words>
118
-
119
- Staging Options:
120
- • Option A (Testability): <concrete seed or mock fixture proposal>
121
- • Option B (Semantic Squinting): <squinting rule formula>
122
- • Option C (Zero Setup): <why flow is public or self-contained>
123
-
124
- How should we stage '<scenario-slug>' for walkthrough?
125
- """
131
+ - **Question:** "World State for '<scenario-slug>' (<Required World State in domain words>): How should we stage the data?"
126
132
  - **Options:**
127
133
  1. "[Recommended] Option A: Build Testability (<brief seed proposal>)"
128
134
  2. "Option B: Semantic Squinting (test immediately against current dev database)"
@@ -29,6 +29,7 @@ When the user asks for project status, lead with an executive tally banner, foll
29
29
 
30
30
  ```
31
31
  Project Status: <P> Personas · <S> Scenarios (<R> Tested, <U> Untested) · <F> Open Findings · <C> Capabilities
32
+ Design Docs: <recorded design doc paths, or "none (designer reviews by general craft only — run iamu-design so runs check your own design rules)">
32
33
  Product Map: <T> Surfaces (<R> Reached · <U> Unreached) [if explore map exists]
33
34
  ```
34
35
 
@@ -68,6 +69,7 @@ Conclude with exact copy-pasteable commands:
68
69
  ```
69
70
  Next actions:
70
71
  iamu-run <scenario-slug> # Run a walkthrough for this scenario
72
+ iamu-design # Record or create DESIGN.md so runs check your own design rules
71
73
  iamu-propose # Propose missing personas or scenarios
72
74
  iamu-new # Draft a new scenario or persona
73
75
  iamu-findings # Triage open findings
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iamu-dev/iamu",
3
- "version": "0.8.0-beta.0",
3
+ "version": "0.8.0-beta.1",
4
4
  "type": "module",
5
5
  "description": "Test your product as realistic personas — scenario-driven development CLI",
6
6
  "license": "MIT",
@@ -59,8 +59,8 @@
59
59
  "typescript": "^5.8.0",
60
60
  "vitest": "^4.1.11",
61
61
  "@iamu-dev/local-store": "0.1.0",
62
- "@iamu/tsconfig": "0.1.0",
63
- "@iamu-dev/protocol": "0.1.0"
62
+ "@iamu-dev/protocol": "0.1.0",
63
+ "@iamu/tsconfig": "0.1.0"
64
64
  },
65
65
  "scripts": {
66
66
  "build": "tsup && tsc -b --force tsconfig.build.json --emitDeclarationOnly && node scripts/copy-assets.mjs",