mimetic-cli 0.1.3 → 0.1.5

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 (50) hide show
  1. package/README.md +67 -12
  2. package/dist/env-file.d.ts +14 -0
  3. package/dist/env-file.js +108 -0
  4. package/dist/env-file.js.map +1 -0
  5. package/dist/feedback.d.ts +7 -5
  6. package/dist/feedback.js +61 -4
  7. package/dist/feedback.js.map +1 -1
  8. package/dist/init-templates.js +29 -0
  9. package/dist/init-templates.js.map +1 -1
  10. package/dist/lab-app-runner.d.ts +78 -0
  11. package/dist/lab-app-runner.js +403 -0
  12. package/dist/lab-app-runner.js.map +1 -0
  13. package/dist/labs.d.ts +67 -0
  14. package/dist/labs.js +257 -0
  15. package/dist/labs.js.map +1 -0
  16. package/dist/observer-assets.js +473 -25
  17. package/dist/observer-assets.js.map +1 -1
  18. package/dist/observer.d.ts +6 -0
  19. package/dist/observer.js +49 -8
  20. package/dist/observer.js.map +1 -1
  21. package/dist/oss-lab.d.ts +1 -1
  22. package/dist/oss-lab.js +6 -6
  23. package/dist/oss-lab.js.map +1 -1
  24. package/dist/oss-meta-lab.d.ts +113 -1
  25. package/dist/oss-meta-lab.js +2753 -200
  26. package/dist/oss-meta-lab.js.map +1 -1
  27. package/dist/oss-remote-telemetry.d.ts +77 -0
  28. package/dist/oss-remote-telemetry.js +393 -0
  29. package/dist/oss-remote-telemetry.js.map +1 -0
  30. package/dist/program.d.ts +8 -0
  31. package/dist/program.js +668 -70
  32. package/dist/program.js.map +1 -1
  33. package/dist/run.d.ts +105 -3
  34. package/dist/run.js +684 -22
  35. package/dist/run.js.map +1 -1
  36. package/docs/architecture/local-codex-tui-actor.md +9 -6
  37. package/docs/architecture/oss-lab-poc.md +119 -47
  38. package/docs/architecture/project-layout.md +40 -6
  39. package/docs/assets/mimetic-oss-lab-observer.png +0 -0
  40. package/docs/contracts/feedback.md +15 -12
  41. package/docs/contracts/policy.md +9 -2
  42. package/docs/contracts/run-bundle.md +62 -0
  43. package/docs/contracts/schemas.md +21 -0
  44. package/docs/goals/current.md +50 -17
  45. package/docs/product/open-source-install-experience.md +63 -8
  46. package/docs/ramp/README.md +26 -8
  47. package/docs/roadmap/world-class-open-source-v0.md +41 -20
  48. package/package.json +9 -6
  49. package/skills/mimetic-cli/SKILL.md +89 -4
  50. package/skills/mimetic-cli/agents/openai.yaml +1 -1
@@ -1,6 +1,6 @@
1
1
  # Current Goals
2
2
 
3
- Status date: 2026-06-02
3
+ Status date: 2026-06-05
4
4
 
5
5
  This page is the current public-safe operating goal for `mimetic-cli`. Keep it
6
6
  short enough to reread before a coding session and concrete enough that future
@@ -24,9 +24,10 @@ A world-class Mimetic run should eventually provide:
24
24
  - multiple synthetic personas with different goals, patience, and skill levels;
25
25
  - UI, CLI, TUI, and code-agent lanes in one mission-control Observer;
26
26
  - real evidence: screenshots, terminal transcripts, lifecycle events, traces,
27
- artifacts, and verifier output;
27
+ filesystem setup-quality snapshots, artifacts, and verifier output;
28
28
  - clear pass, fail, blocked, and gap states;
29
29
  - public-safe feedback issue drafts that do not mutate GitHub by default;
30
+ - first-class `.yaml` lab manifests for reusable simulation runs;
30
31
  - adapter contracts that let projects customize behavior without forking core;
31
32
  - release gates that prevent PII, PHI, secrets, private artifacts, and stale
32
33
  internal residue from reaching the public repo or package.
@@ -39,10 +40,11 @@ Make the public package and repo credible enough that an external maintainer can
39
40
  2. install `mimetic-cli`;
40
41
  3. run `mimetic init`;
41
42
  4. run `mimetic watch`;
42
- 5. inspect Observer evidence;
43
- 6. verify the bundle;
44
- 7. produce a public-safe feedback draft;
45
- 8. understand the next live-adapter path without reading chat history.
43
+ 5. run `mimetic watch first-run` or another lab manifest;
44
+ 6. inspect Observer evidence;
45
+ 7. verify the bundle;
46
+ 8. produce a public-safe feedback draft;
47
+ 9. understand the next live-adapter path without reading chat history.
46
48
 
47
49
  ## Near-Term Goals
48
50
 
@@ -115,17 +117,40 @@ Minimum acceptance:
115
117
  - Observer polling reflects lane completion;
116
118
  - no raw private transcript or credential values.
117
119
 
118
- ### 6. OSS Lab Health Readback
120
+ ### 6. Lab Manifest Shape
119
121
 
120
- Make `mimetic lab oss` report nested lane health back into the top-level
121
- Observer instead of relying on a human watching the desktops.
122
+ Make reusable simulations feel like source artifacts, not hardcoded command
123
+ branches.
122
124
 
123
125
  Minimum acceptance:
124
126
 
125
- - each lane records setup status;
126
- - each lane records nested Observer URL or absence;
127
- - each lane records nested verification status or blocker;
128
- - top-level Observer updates lane verdicts from evidence.
127
+ - `mimetic/labs/*.yaml` is the committed lab source convention;
128
+ - `.mimetic/labs/*.yaml` and `.mimetic/local/labs/*.yaml` are ignored local
129
+ overlays;
130
+ - `mimetic watch [lab]`, `mimetic lab list`, `mimetic lab inspect <lab>`, and
131
+ `mimetic lab run <lab>` are supported;
132
+ - `--env-file <path>` loads local values for the current command without
133
+ persisting values into artifacts;
134
+ - maintainer dogfood labs such as `oss` are examples, not the canonical
135
+ consumer taxonomy.
136
+
137
+ ### 7. OSS Lab Health Readback
138
+
139
+ Make the maintainer `oss` lab report nested lane health back into the
140
+ top-level Observer instead of relying on a human watching the desktops.
141
+
142
+ Minimum acceptance:
143
+
144
+ - each lane records setup status; `done`
145
+ - each lane records target app status/URL or blocker; `done`
146
+ - each lane records nested Observer presence; `done`
147
+ - each lane records nested verification status or blocker; `done`
148
+ - each lane records setup-quality filesystem evidence and Observer can inspect
149
+ it; `done`
150
+ - top-level Observer updates lane verdicts from evidence; `done`
151
+ - feedback candidates are derived from setup-quality/actor evidence; `done`
152
+ - next gap: provider-backed browser personas must drive multi-step target-app
153
+ journeys instead of relying on nested app-url render proof.
129
154
 
130
155
  ## Non-Goals
131
156
 
@@ -150,14 +175,22 @@ Stop and correct course if:
150
175
  - Observer gets prettier without stronger evidence;
151
176
  - feedback drafts imply product proof from synthetic contract proof;
152
177
  - tests pass while generated artifacts are not inspectable;
178
+ - actor setup/use trials produce findings that never become feedback candidates;
153
179
  - live labs require private infrastructure to look impressive;
154
180
  - package docs link to files that are not shipped;
155
181
  - public-safety gates become optional.
156
182
 
157
183
  ## Best Next Work
158
184
 
159
- The next most useful engineering slice is fresh-agent install proof against a
160
- disposable public app fixture, followed by the first real browser adapter.
185
+ The next most useful engineering slice is repeated agent dogfood against real
186
+ apps and tools, while preserving the public-safety boundary:
187
+
188
+ - public/open-source fixture proof for publishable examples;
189
+ - private maintainer dogfood through the repo-only public-safe packet, which is
190
+ intentionally not part of the npm payload, at
191
+ [`docs/goals/private-repo-agent-dogfood/goal.md`](https://github.com/danielgwilson/mimetic-cli/blob/main/docs/goals/private-repo-agent-dogfood/goal.md);
192
+ - then the first provider-backed multi-step browser persona adapter.
161
193
 
162
- That sequence keeps the package honest: first prove a new maintainer can start,
163
- then prove Mimetic can observe real product behavior.
194
+ That sequence keeps the package honest: first prove a new maintainer or agent
195
+ can start, then prove Mimetic can observe real product behavior, then use the
196
+ failures to improve the harness.
@@ -31,7 +31,7 @@ The npm package owns executable behavior:
31
31
  - binary: `mimetic`;
32
32
  - CLI framework: `commander`;
33
33
  - commands: `init`, `doctor`, `run`, `watch`, `review`, `verify`,
34
- `feedback`;
34
+ `lab`, `feedback`;
35
35
  - schemas and validators;
36
36
  - synthetic starter templates;
37
37
  - observer static assets;
@@ -54,14 +54,33 @@ The skill should teach the user's coding agent how to:
54
54
  - run `mimetic init`;
55
55
  - inspect the target app's routes and dev command;
56
56
  - create synthetic personas and scenarios;
57
+ - create public-safe `mimetic/labs/*.yaml` lab manifests;
58
+ - keep private/local labs under ignored `.mimetic/labs/*.yaml` or
59
+ `.mimetic/local/labs/*.yaml`;
57
60
  - configure local app targets;
58
61
  - document E2B and OpenAI env var names without storing values;
62
+ - use `--env-file <path>` for explicit local env hydration without persisting
63
+ values into artifacts;
59
64
  - run `doctor`, `watch`, `verify`, and `feedback issue`;
60
65
  - avoid PII, PHI, secrets, real customer data, and private artifacts.
61
66
 
62
67
  The skill should not hide critical behavior in chat memory. It should point to
63
68
  repo-owned `mimetic/` files and package-owned docs.
64
69
 
70
+ ## Project File Formats
71
+
72
+ New projects should get a boring, legible format stack:
73
+
74
+ - `.yaml` for human-authored Mimetic source such as personas, scenarios,
75
+ policies, labs, and review vocabulary;
76
+ - `.ts` for executable integration such as `mimetic/config.ts` and adapters;
77
+ - `.json` and `.ndjson` for generated run artifacts, Observer data, review
78
+ output, event streams, and synthetic fixtures.
79
+
80
+ Use `.yml` only where an outside ecosystem convention already expects it, for
81
+ example GitHub Actions workflows. Do not scaffold `.yml` for Mimetic source and
82
+ do not use TOML unless a future scalar global-config case clearly needs it.
83
+
65
84
  ## First-Run Principles
66
85
 
67
86
  - No keys required for the first wow moment.
@@ -73,6 +92,35 @@ repo-owned `mimetic/` files and package-owned docs.
73
92
  - Safe dry-run should produce a valid synthetic run bundle and observer view.
74
93
  - The user should see what changed in git.
75
94
 
95
+ ## Lab Manifest Shape
96
+
97
+ Labs are the public-safe way to name a reusable simulation run. A starter app
98
+ gets a committed synthetic lab:
99
+
100
+ ```yaml
101
+ schema: mimetic.lab.v1
102
+ id: first-run
103
+ kind: synthetic
104
+ title: First-run synthetic Observer
105
+ description: Public-safe starter lab that generates a synthetic run bundle and Observer without provider spend.
106
+ sims: 4
107
+ defaults:
108
+ dryRun: true
109
+ open: true
110
+ ```
111
+
112
+ Resolution order:
113
+
114
+ 1. `mimetic/labs/<id>.yaml` for committed, reproducible labs.
115
+ 2. `.mimetic/labs/<id>.yaml` for ignored local labs.
116
+ 3. `.mimetic/local/labs/<id>.yaml` for ignored machine-specific overlays.
117
+ 4. explicit `.yaml` path, for example
118
+ `.mimetic/labs/local-dogfood.yaml`.
119
+
120
+ Private repo targets, local env references, and maintainer dogfood variants
121
+ belong in ignored lab manifests and should be invoked with explicit
122
+ `--env-file`; do not make them package defaults.
123
+
76
124
  ## `mimetic init`
77
125
 
78
126
  `mimetic init` should:
@@ -94,10 +142,11 @@ Suggested scripts:
94
142
  "scripts": {
95
143
  "mimetic": "mimetic",
96
144
  "mimetic:doctor": "mimetic doctor",
97
- "mimetic:run": "mimetic run --dry-run",
98
- "mimetic:watch": "mimetic watch",
99
- "mimetic:watch:ci": "mimetic watch --json --no-open",
100
- "mimetic:verify": "mimetic verify"
145
+ "mimetic:run": "mimetic run --dry-run",
146
+ "mimetic:watch": "mimetic watch",
147
+ "mimetic:lab:list": "mimetic lab list",
148
+ "mimetic:watch:ci": "mimetic watch --json --no-open",
149
+ "mimetic:verify": "mimetic verify"
101
150
  }
102
151
  }
103
152
  ```
@@ -112,9 +161,13 @@ Suggested scripts:
112
161
  | `mimetic verify` | Validate bundle and public-safety gates | Fail closed on schema/evidence/redaction errors |
113
162
  | `mimetic review` | Build review packet from evidence | Summarize verdicts without inventing product proof |
114
163
  | `mimetic watch` | Run sims and watch the observer | Create a fresh four-lane bundle, render Observer, open it, and keep the shell attached |
164
+ | `mimetic watch [lab]` | Run a named lab and watch it | Resolve committed or ignored `.yaml` lab manifests, then open/follow Observer |
115
165
  | `mimetic watch --json --no-open` | Agent/CI proof path | Create the same bundle and Observer artifacts without browser open or attached watch server |
116
- | `mimetic lab oss` | Watch public OSS meta-sims | Open the Observer-of-Observers with headed desktop lanes assigned by `--repos` |
117
- | `mimetic lab oss-smoke` | Try Mimetic on disposable public OSS clones | Shallow clone lightweight GitHub repos, run setup/proof/verify, report, and remove clones |
166
+ | `mimetic lab list` | Discover available labs | List committed labs and ignored local labs with origin labels |
167
+ | `mimetic lab inspect <lab>` | Read a lab manifest | Print lab id, kind, path, defaults, repos, and warnings without executing |
168
+ | `mimetic lab run <lab>` | Run a lab manifest | Human or JSON execution path for synthetic, OSS meta, and smoke labs |
169
+ | `mimetic lab run oss` | Maintainer dogfood example | Open the Observer-of-Observers with headed desktop lanes assigned by `--repos`, target app windows, nested Observers, runtime-only stream URLs, and redacted durable evidence for token-backed runs |
170
+ | `mimetic lab run oss-smoke` | Maintainer smoke example | Shallow clone lightweight GitHub repos, run setup/proof/verify, report, and remove clones |
118
171
  | `mimetic feedback issue` | Produce public-safe issue draft | Print Markdown or prefilled issue URL, no GitHub API mutation |
119
172
 
120
173
  ## Live Capability Ladder
@@ -135,4 +188,6 @@ run.
135
188
 
136
189
  Live E2B desktop labs are an optional advanced path. Target projects that need
137
190
  them should install `@e2b/desktop` explicitly instead of receiving that
138
- substrate as part of the default Mimetic package install.
191
+ substrate as part of the default Mimetic package install. When a GitHub token is
192
+ present, repo labels are redacted in durable artifacts by default; live stream
193
+ auth URLs are used only by the attached watch server and are not persisted.
@@ -26,9 +26,11 @@ Mimetic is a persona simulation harness for apps, CLIs, and agent-facing product
26
26
  flows.
27
27
 
28
28
  - `mimetic/` is committed source: personas, scenarios, policy, adapters, and
29
- project intent.
29
+ lab manifests.
30
30
  - `.mimetic/` is ignored runtime state: runs, Observer output, transcripts,
31
31
  reviews, temporary clones, and local evidence.
32
+ - Mimetic source uses `.yaml` for human-authored simulation intent, `.ts` for
33
+ executable integration, and JSON/NDJSON for generated artifacts.
32
34
  - A run bundle is the source of truth.
33
35
  - The Observer is the projection that makes that truth reviewable.
34
36
  - Feedback commands turn verified evidence into public-safe issue drafts.
@@ -55,15 +57,22 @@ Implemented:
55
57
  - mission-control Observer over UI, CLI, TUI, and Codex UI stream contracts;
56
58
  - public-safe feedback issue drafts without GitHub API mutation;
57
59
  - skills.sh-compatible agent skill;
58
- - experimental public OSS lab and disposable OSS smoke harness.
60
+ - first-class lab manifest resolution through `mimetic/labs/*.yaml` and
61
+ ignored `.mimetic/labs/*.yaml` overlays;
62
+ - experimental maintainer OSS meta-lab and disposable OSS smoke harness;
63
+ - OSS dogfood setup-quality filesystem artifacts rendered from the Observer Files
64
+ tab with private-run previews suppressed by default.
59
65
 
60
66
  Still not good enough:
61
67
 
62
- - live browser/user-journey proof is not yet first-class;
68
+ - live `--app-url` browser proof exists for desktop/mobile render evidence, but
69
+ autonomous multi-step user-journey proof is not first-class yet;
63
70
  - live PTY and Codex UI lanes need stronger completion health;
64
- - OSS lab lanes need automatic nested Observer health readback;
65
- - the package needs fresh-agent install proof on real disposable public apps;
66
- - Observer evidence needs real screenshots/traces once browser adapters land.
71
+ - OSS lab lanes can report nested Observer health, target app readiness, actor
72
+ evidence, and setup-quality filesystem checks when a target app starts, but
73
+ need repeated fresh-agent trials across more disposable public apps;
74
+ - Observer evidence has real screenshots/traces for browser app proof; broader
75
+ adapter-driven persona navigation remains the next gap.
67
76
 
68
77
  ## First Commands
69
78
 
@@ -75,6 +84,7 @@ pnpm install --frozen-lockfile
75
84
  pnpm release:check
76
85
  pnpm mimetic -- watch --json --no-open
77
86
  pnpm mimetic -- runs --json
87
+ pnpm mimetic -- lab list
78
88
  ```
79
89
 
80
90
  For local product feel:
@@ -86,8 +96,16 @@ pnpm mimetic -- watch
86
96
  For public OSS dogfood without credentials:
87
97
 
88
98
  ```bash
89
- pnpm mimetic -- lab oss --dry-run --json --no-open
90
- pnpm mimetic -- lab oss-smoke --limit 1 --json
99
+ pnpm mimetic -- lab run oss --dry-run --json --no-open
100
+ pnpm mimetic -- lab run oss-smoke --limit 1 --json
101
+ ```
102
+
103
+ For private/local dogfood, author an ignored lab manifest under
104
+ `.mimetic/labs/` or `.mimetic/local/labs/`, then invoke it explicitly with an
105
+ ignored env file:
106
+
107
+ ```bash
108
+ pnpm mimetic -- watch .mimetic/labs/local-dogfood.yaml --env-file .mimetic/local/provider.env
91
109
  ```
92
110
 
93
111
  ## How To Pick Work
@@ -226,21 +226,43 @@ keeps the shell attached. The CI-safe form is `mimetic watch --json --no-open`.
226
226
  `--sims <n>` remains the explicit scale control, and `--run <id>` watches
227
227
  existing evidence.
228
228
 
229
- ## Stage 6.9: OSS Meta-Lab
229
+ ## Stage 6.8: Lab Manifests
230
230
 
231
- Status: implemented as an experimental live Observer-of-Observers bootstrap
232
- with a retained disposable smoke harness.
231
+ Status: implemented as the generic source shape for reusable runs.
233
232
 
234
- `mimetic lab oss` opens the top-level Observer for public OSS meta-sims. Each
235
- lane is assigned a public GitHub `owner/repo` slug from `--repos` or repeated
236
- `--repo` values and carries the headed E2B desktop + Codex TUI bootstrap prompt
237
- for setting up Mimetic inside that repo and keeping the nested Observer visible.
233
+ Mimetic now resolves `.yaml` lab manifests from committed `mimetic/labs/`,
234
+ ignored `.mimetic/labs/`, ignored `.mimetic/local/labs/`, or an explicit
235
+ `.yaml` path. The human path is `mimetic watch <lab>`; the agent/CI path is
236
+ `mimetic lab run <lab> --json --no-open`; discovery is `mimetic lab list` and
237
+ `mimetic lab inspect <lab>`.
238
+
239
+ Private or maintainer-only dogfood belongs in ignored lab manifests plus
240
+ explicit `--env-file`; the public package should not hardcode private target
241
+ names or require broad inherited job env.
242
+
243
+ ## Stage 6.9: Maintainer OSS Meta-Lab
244
+
245
+ Status: implemented as repo-owned `mimetic/labs/oss.yaml` plus compatibility
246
+ aliases, with a retained disposable smoke harness.
247
+
248
+ `mimetic watch oss` opens the top-level Observer for authorized-repo meta-sims.
249
+ Each lane is assigned a GitHub `owner/repo` slug from `--repos` or repeated
250
+ `--repo` values and carries a headed E2B desktop for setting up Mimetic inside
251
+ that repo, starting the target app where feasible, and keeping the nested
252
+ Observer visible.
253
+ Default public targets should be apps, CLIs, or agent-facing tools with
254
+ observable user surfaces. Frameworks, starters, and utility libraries are
255
+ acceptable only when the explicit scenario is developer-experience testing.
238
256
  When live keys are present, Mimetic launches E2B desktops, uploads the locally
239
257
  packed Mimetic package, starts visible bootstrap terminals, clones each assigned
240
- repo inside the desktop, runs nested Mimetic setup/proof commands, attempts a
241
- Codex TUI pass, and opens the nested Observer in the sandbox browser.
242
-
243
- `mimetic lab oss-smoke` keeps the earlier clone/discard proof loop: shallow
258
+ repo inside the desktop, runs nested Mimetic setup/proof commands, opens
259
+ desktop/mobile app windows plus the nested Observer in the sandbox browser, and
260
+ starts a nonblocking Codex actor attempt. Attached watch mode overlays live E2B
261
+ stream URLs only in memory; durable run artifacts keep screenshots/status, not
262
+ auth-bearing URLs. Private repos are maintainer-only, require an authorized
263
+ runtime GitHub token, and redact repo labels in durable artifacts by default.
264
+
265
+ `mimetic lab run oss-smoke` keeps the earlier clone/discard proof loop: shallow
244
266
  clone lightweight public GitHub repositories into ignored `.mimetic/tmp`, apply
245
267
  Mimetic setup in disposable clones, run the four-lane synthetic Observer proof,
246
268
  verify it, record git-status evidence, write an ignored
@@ -249,15 +271,14 @@ verify it, record git-status evidence, write an ignored
249
271
  Proof:
250
272
 
251
273
  ```bash
252
- pnpm mimetic -- lab oss --detach --open --repos developit/mitt,lukeed/clsx
253
- pnpm mimetic -- lab oss --dry-run --json --no-open --repos developit/mitt,lukeed/clsx
254
- pnpm mimetic -- lab oss-smoke --limit 1 --json
274
+ pnpm mimetic -- watch oss --detach --open --repos CorentinTh/it-tools,drawdb-io/drawdb
275
+ pnpm mimetic -- lab run oss --dry-run --json --no-open --repos CorentinTh/it-tools,drawdb-io/drawdb
276
+ pnpm mimetic -- lab run oss-smoke --limit 1 --json
255
277
  ```
256
278
 
257
- Next substrate work: poll the remote bootstrap logs and nested Observer health
258
- back into the top-level bundle so the Observer can graduate each lane from
259
- `running` to explicit `passed` or `failed` without relying on a human watching
260
- the E2B stream.
279
+ Next substrate work: upgrade nested app-url render proof into provider-backed
280
+ browser personas that drive the target app and add richer process/filesystem
281
+ telemetry for Codex actor health.
261
282
 
262
283
  ## Stage 7: Local Browser And First Real Adapter
263
284
 
@@ -276,11 +297,11 @@ Proof:
276
297
 
277
298
  ## Non-Goals For V0
278
299
 
279
- - live E2B;
300
+ - live E2B as required first-run behavior;
280
301
  - OpenAI computer-use actor;
281
302
  - live GitHub mutation;
282
303
  - hosted queues/databases/webhooks;
283
- - provider spend;
304
+ - provider spend as required first-run behavior;
284
305
  - production deploys;
285
306
  - real user/persona data;
286
307
  - private upstream artifacts.
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "mimetic-cli",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Open-source-safe CLI for persona simulation, observer review, and public-safe feedback drafts.",
5
+ "author": "Daniel G Wilson <daniel@danielgwilson.com>",
5
6
  "keywords": [
6
7
  "agent-harness",
7
8
  "cli",
@@ -32,7 +33,7 @@
32
33
  "docs/architecture",
33
34
  "docs/assets",
34
35
  "docs/contracts",
35
- "docs/goals",
36
+ "docs/goals/current.md",
36
37
  "docs/principles",
37
38
  "docs/product",
38
39
  "docs/ramp",
@@ -65,9 +66,10 @@
65
66
  "mimetic:dogfood": "pnpm mimetic -- watch",
66
67
  "mimetic:verify": "pnpm mimetic -- verify",
67
68
  "mimetic:feedback": "pnpm mimetic -- feedback issue --repo danielgwilson/mimetic-cli",
68
- "mimetic:lab:oss": "pnpm mimetic -- lab oss",
69
- "mimetic:lab:oss:ci": "pnpm mimetic -- lab oss --dry-run --json --no-open",
70
- "mimetic:lab:oss:smoke": "pnpm mimetic -- lab oss-smoke"
69
+ "mimetic:lab:list": "pnpm mimetic -- lab list",
70
+ "mimetic:lab:oss": "pnpm mimetic -- lab run oss",
71
+ "mimetic:lab:oss:ci": "pnpm mimetic -- lab run oss --dry-run --json --no-open",
72
+ "mimetic:lab:oss:smoke": "pnpm mimetic -- lab run oss-smoke"
71
73
  },
72
74
  "repository": {
73
75
  "type": "git",
@@ -78,7 +80,8 @@
78
80
  },
79
81
  "homepage": "https://github.com/danielgwilson/mimetic-cli#readme",
80
82
  "dependencies": {
81
- "commander": "^14.0.3"
83
+ "commander": "^14.0.3",
84
+ "yaml": "^2.9.0"
82
85
  },
83
86
  "peerDependencies": {
84
87
  "@e2b/desktop": "^2.2.3"
@@ -15,9 +15,11 @@ tokens, raw private transcripts, private screenshots, raw customer data, raw
15
15
  patient data, or private upstream artifacts.
16
16
 
17
17
  Do not edit `.env` or secret files. Do not paste credential values. Use env var
18
- names only, usually `OPENAI_API_KEY` and `E2B_API_KEY`. Stop before live
19
- provider spend, hosted execution, deploys, public tunnels, or GitHub mutation
20
- unless the user explicitly approves that exact action.
18
+ names only, usually `OPENAI_API_KEY` and `E2B_API_KEY`. For live local runs,
19
+ prefer an explicit ignored env file passed with `--env-file <path>`; do not
20
+ assume broad inherited job env is safe. Stop before live provider spend,
21
+ hosted execution, deploys, public tunnels, or GitHub mutation unless the user
22
+ explicitly approves that exact action.
21
23
 
22
24
  ## Setup Workflow
23
25
 
@@ -29,6 +31,12 @@ unless the user explicitly approves that exact action.
29
31
  npm i -D mimetic-cli
30
32
  ```
31
33
 
34
+ The package is `mimetic-cli`; the installed binary is `mimetic`. After
35
+ installation, `npx mimetic ...` resolves the local project binary. For a
36
+ one-shot command before installation, use
37
+ `npx --package mimetic-cli mimetic ...` so npm does not resolve an unrelated
38
+ package named `mimetic`.
39
+
32
40
  3. Preview setup:
33
41
 
34
42
  ```bash
@@ -44,9 +52,28 @@ unless the user explicitly approves that exact action.
44
52
  5. Confirm the layout:
45
53
  - commit `mimetic/` source files;
46
54
  - ignore `.mimetic/` runtime artifacts;
55
+ - keep committed labs under `mimetic/labs/*.yaml`;
56
+ - keep private/local labs under ignored `.mimetic/labs/*.yaml` or
57
+ `.mimetic/local/labs/*.yaml`;
47
58
  - keep `.env.example` commit-safe and value-free;
48
59
  - never commit generated run bundles.
49
60
 
61
+ ## Format Stack
62
+
63
+ When creating or editing Mimetic files:
64
+
65
+ - use `.yaml` for human-authored Mimetic source: personas, scenarios,
66
+ policies, labs, review vocabulary, and milestones;
67
+ - use `.ts` for executable integration: `mimetic/config.ts`, adapters, route
68
+ catalogs, and app launch logic;
69
+ - use `.json` or `.ndjson` for generated machine artifacts, Observer data, run
70
+ bundles, event streams, and synthetic fixtures.
71
+
72
+ Do not create `.yml` files under `mimetic/`; `.yml` is for outside ecosystem
73
+ conventions such as GitHub Actions workflows. Do not introduce TOML unless the
74
+ target project has a concrete scalar global-config need that YAML, TypeScript,
75
+ or JSON does not serve.
76
+
50
77
  ## Authoring Personas And Scenarios
51
78
 
52
79
  Create or edit only synthetic files under `mimetic/`.
@@ -60,9 +87,40 @@ Scenarios should define the target app surface, start URL, task intent,
60
87
  success signals, and failure signals. Keep app-specific truth in the target
61
88
  repo's `mimetic/` files, not in the package or this skill.
62
89
 
90
+ ## Authoring Labs
91
+
92
+ Create reusable simulation runs as `.yaml` lab manifests:
93
+
94
+ ```yaml
95
+ schema: mimetic.lab.v1
96
+ id: first-run
97
+ kind: synthetic
98
+ title: First-run synthetic Observer
99
+ sims: 4
100
+ defaults:
101
+ dryRun: true
102
+ open: true
103
+ ```
104
+
105
+ Use committed `mimetic/labs/*.yaml` for public-safe, reproducible labs. Use
106
+ ignored `.mimetic/labs/*.yaml` or `.mimetic/local/labs/*.yaml` for private repo
107
+ targets, local-only dogfood, or machine-specific settings. Never commit private
108
+ repo names, stream URLs, credential values, screenshots, logs, source snippets,
109
+ or operational details.
110
+
111
+ Useful commands:
112
+
113
+ ```bash
114
+ npx mimetic lab list
115
+ npx mimetic lab inspect first-run
116
+ npx mimetic watch first-run
117
+ npx mimetic lab run first-run --json --no-open
118
+ ```
119
+
63
120
  ## First Proof Run
64
121
 
65
- Run the no-credentials path first:
122
+ Run the no-credentials path first. This proves Mimetic artifact plumbing, not
123
+ target app behavior:
66
124
 
67
125
  ```bash
68
126
  npx mimetic doctor
@@ -75,12 +133,27 @@ For CI or non-interactive proof:
75
133
 
76
134
  ```bash
77
135
  npx mimetic watch --json --no-open
136
+ npx mimetic lab run first-run --json --no-open
78
137
  ```
79
138
 
80
139
  The feedback command prints a public-safe Markdown draft. It must not call the
81
140
  GitHub API, require a token, update Projects, use provider credits, or claim
82
141
  product behavior proof from a dry run.
83
142
 
143
+ When the target app can run locally, prove real browser behavior with
144
+ `run --app-url` after starting the app on loopback:
145
+
146
+ ```bash
147
+ # in another terminal, start the target app on 127.0.0.1 or localhost
148
+ npx mimetic run --app-url http://127.0.0.1:<port> --sims 2 --json
149
+ npx mimetic verify --run latest --json
150
+ npx mimetic watch --run latest --detach --no-open --json
151
+ ```
152
+
153
+ Do not use `mimetic watch --sims ...` as a substitute for app-url proof.
154
+ `watch` renders or follows Observer evidence; `run --app-url` is the command
155
+ that captures live desktop/mobile browser evidence against a running app.
156
+
84
157
  ## Optional Live E2B Lab
85
158
 
86
159
  Live headed E2B desktop lanes are optional. Add the substrate dependency only
@@ -98,6 +171,18 @@ OPENAI_API_KEY
98
171
  ```
99
172
 
100
173
  Do not paste values into files, prompts, run bundles, issue drafts, or logs.
174
+ Load local values only at invocation time:
175
+
176
+ ```bash
177
+ npx mimetic watch .mimetic/labs/local-live.yaml --env-file .mimetic/local/provider.env
178
+ ```
179
+
180
+ When choosing dogfood targets, prefer apps, CLIs, or agent-facing tools with a
181
+ real observable user surface and local run path. Do not use libraries,
182
+ frameworks, starters, or infrastructure packages as default targets unless the
183
+ declared scenario is developer-experience testing. Private repos are allowed
184
+ only as explicit maintainer-authorized runs with repo redaction left on; never
185
+ publish their names, screenshots, logs, source snippets, or operational details.
101
186
 
102
187
  ## Reporting Back
103
188
 
@@ -1,7 +1,7 @@
1
1
  interface:
2
2
  display_name: "Mimetic CLI"
3
3
  short_description: "Set up public-safe persona simulation"
4
- default_prompt: "Use $mimetic-cli to install Mimetic in this repo, scaffold synthetic personas and scenarios, run the safe Observer proof, and report the public-safe artifacts."
4
+ default_prompt: "Use $mimetic-cli to install Mimetic in this repo, scaffold synthetic personas and scenarios, run the safe Observer proof, and report the public-safe artifacts. If the app can run locally, start it on loopback and use `mimetic run --app-url http://127.0.0.1:<port> --sims 2` before rendering Observer with `mimetic watch --run latest`; do not treat `watch --sims` as app behavior proof."
5
5
 
6
6
  policy:
7
7
  allow_implicit_invocation: true