@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.
- package/dist/bin.js +878 -227
- package/dist/commands/browse-actions.d.ts +1 -0
- package/dist/commands/browse-driver.d.ts +25 -5
- package/dist/commands/browse.d.ts +21 -1
- package/dist/commands/edit-entity.d.ts +3 -3
- package/dist/commands/init.d.ts +4 -4
- package/dist/commands/instructions-walk.d.ts +6 -0
- package/dist/commands/preflight.d.ts +4 -2
- package/dist/commands/step.d.ts +2 -0
- package/dist/index.js +878 -227
- package/dist/templates/prompts/walk.md +7 -5
- package/dist/templates/skills/iamu-design.md +20 -15
- package/dist/templates/skills/iamu-run.md +40 -16
- package/dist/templates/skills/iamu-setup.md +154 -75
- package/dist/templates/skills/iamu-stage.md +29 -23
- package/dist/templates/skills/iamu-status.md +2 -0
- package/package.json +3 -3
|
@@ -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 &
|
|
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
|
-
- **
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
- **
|
|
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
|
-
|
|
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
|
|
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.
|
|
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/
|
|
63
|
-
"@iamu
|
|
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",
|