mimetic-cli 0.1.2 → 0.1.4

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/AGENTS.md +66 -0
  2. package/CONTRIBUTING.md +39 -0
  3. package/README.md +4 -1
  4. package/SECURITY.md +34 -0
  5. package/dist/core/git-state.d.ts +31 -0
  6. package/dist/core/git-state.js +142 -0
  7. package/dist/core/git-state.js.map +1 -0
  8. package/dist/core/index.d.ts +4 -0
  9. package/dist/core/index.js +3 -0
  10. package/dist/core/index.js.map +1 -0
  11. package/dist/core/run-primitives.d.ts +66 -0
  12. package/dist/core/run-primitives.js +120 -0
  13. package/dist/core/run-primitives.js.map +1 -0
  14. package/dist/observer-assets.js +1663 -2180
  15. package/dist/observer-assets.js.map +1 -1
  16. package/dist/observer-data.d.ts +1 -1
  17. package/dist/observer-data.js +5 -1
  18. package/dist/observer-data.js.map +1 -1
  19. package/dist/observer.js +8 -61
  20. package/dist/observer.js.map +1 -1
  21. package/dist/oss-meta-lab.d.ts +50 -0
  22. package/dist/oss-meta-lab.js +454 -27
  23. package/dist/oss-meta-lab.js.map +1 -1
  24. package/dist/program.d.ts +6 -0
  25. package/dist/program.js +75 -8
  26. package/dist/program.js.map +1 -1
  27. package/dist/run.d.ts +19 -6
  28. package/dist/run.js +1263 -9
  29. package/dist/run.js.map +1 -1
  30. package/docs/architecture/github-feedback-loop.md +189 -0
  31. package/docs/architecture/local-codex-tui-actor.md +210 -0
  32. package/docs/architecture/observer.md +109 -0
  33. package/docs/architecture/oss-lab-poc.md +170 -0
  34. package/docs/architecture/project-layout.md +132 -0
  35. package/docs/assets/mimetic-oss-lab-observer.png +0 -0
  36. package/docs/contracts/adapter-fixtures.md +80 -0
  37. package/docs/contracts/core.md +71 -0
  38. package/docs/contracts/feedback.md +131 -0
  39. package/docs/contracts/policy.md +273 -0
  40. package/docs/contracts/run-bundle.md +110 -0
  41. package/docs/contracts/schemas.md +511 -0
  42. package/docs/goals/current.md +163 -0
  43. package/docs/principles/self-driving-harness.md +129 -0
  44. package/docs/product/open-source-install-experience.md +138 -0
  45. package/docs/ramp/README.md +167 -0
  46. package/docs/release/open-source-readiness.md +171 -0
  47. package/docs/release/public-readiness-standard.md +205 -0
  48. package/docs/roadmap/world-class-open-source-v0.md +286 -0
  49. package/package.json +14 -2
  50. package/skills/mimetic-cli/SKILL.md +1 -1
@@ -0,0 +1,511 @@
1
+ # Contract Schema Index
2
+
3
+ Date: 2026-06-02
4
+
5
+ Status: v0 draft schema map for agent-ready contract work.
6
+
7
+ ## Purpose
8
+
9
+ This document names the core Mimetic contracts before more implementation
10
+ lands. It is intentionally public-safe: examples use synthetic ids, local
11
+ relative artifact paths, env var names without values, and redacted evidence
12
+ notes.
13
+
14
+ Core contracts are reusable. Adapter contracts describe a target app, CLI, or
15
+ workflow without leaking private upstream truth into core.
16
+
17
+ ## Ownership Rule
18
+
19
+ | Layer | Owns | Does not own |
20
+ | --- | --- | --- |
21
+ | Core | Schema versions, run ids, artifact layout, lifecycle events, actor/substrate status, evidence shape, review, verification, redaction, feedback mechanics, latest/history indexes. | Product routes, real customer data, private screenshots, private transcripts, credential values, target-specific acceptance language. |
22
+ | Adapter | Product routes, scenario/persona choices, app topology, env var names, network allowlists, coverage vocabulary, milestones, fixture data, target-specific proof expectations. | Generic run bundle schema, public-safety gates, provider secret values, raw private artifacts, GitHub mutation authority. |
23
+
24
+ ## Contract Index
25
+
26
+ | Contract | Schema | Public-safe fixture |
27
+ | --- | --- | --- |
28
+ | Run bundle | `mimetic.run-bundle.v1` | `synthetic-run-bundle` |
29
+ | Adapter | `mimetic.adapter.v1` | `synthetic-cli-adapter` |
30
+ | Persona | `mimetic.persona.v1` | `synthetic-maintainer` |
31
+ | Scenario | `mimetic.scenario.v1` | `first-run-smoke` |
32
+ | Actor | `mimetic.actor.v1` | `synthetic-dry-run-actor` |
33
+ | Substrate | `mimetic.substrate.v1` | `local-filesystem-substrate` |
34
+ | Evidence stream | `mimetic.evidence-stream.v1` | `cli-stream-proof` |
35
+ | Review | `mimetic.review.v1` | `contract-proof-review` |
36
+ | Verification | `mimetic.verify-result.v1` | `five-check-verify` |
37
+ | Policy | `mimetic.policy.v1` | `public-safety-policy` |
38
+ | Feedback | `mimetic.feedback.v1` | `public-safe-feedback` |
39
+
40
+ ## Run Bundle
41
+
42
+ Run bundles are the canonical evidence record. Observer data, review Markdown,
43
+ feedback drafts, and issue text are projections from the bundle.
44
+
45
+ Core-owned fields:
46
+
47
+ - `schema`
48
+ - `runId`
49
+ - `mode`
50
+ - `simCount`
51
+ - `createdAt`
52
+ - `artifactRoot`
53
+ - `source.git`
54
+ - `lifecycle`
55
+ - `simulations`
56
+ - `streams`
57
+ - `events`
58
+ - `redaction`
59
+ - `artifacts`
60
+ - `review`
61
+ - `feedbackCandidates`
62
+
63
+ Adapter-owned fields:
64
+
65
+ - `source.packageName`
66
+ - `source.mimeticSource`
67
+ - `persona`
68
+ - `scenario`
69
+ - target-specific stream labels and public-safe summaries
70
+
71
+ Synthetic fixture:
72
+
73
+ ```yaml
74
+ schema: mimetic.run-bundle.v1
75
+ runId: synthetic-run-bundle-2026-06-02t10-00-00-000z-proof
76
+ mode: dry-run
77
+ simCount: 1
78
+ createdAt: "2026-06-02T10:00:00.000Z"
79
+ artifactRoot: .mimetic/runs/synthetic-run-bundle-2026-06-02t10-00-00-000z-proof
80
+ source:
81
+ packageName: fixture-app
82
+ mimeticSource: present
83
+ git:
84
+ schema: mimetic.git-state.v1
85
+ status: clean
86
+ capturedAt: "2026-06-02T10:00:00.000Z"
87
+ head:
88
+ shortSha: null
89
+ refState: unknown
90
+ changes:
91
+ staged: 0
92
+ unstaged: 0
93
+ untracked: 0
94
+ total: 0
95
+ note: public-safe synthetic fixture
96
+ persona:
97
+ id: synthetic-maintainer
98
+ name: Synthetic Maintainer
99
+ source: mimetic/personas/synthetic-maintainer.yaml
100
+ sourceDigest: synthetic
101
+ scenario:
102
+ id: first-run-smoke
103
+ title: First-run smoke
104
+ goal: Prove setup and verification without private data.
105
+ source: mimetic/scenarios/first-run-smoke.yaml
106
+ sourceDigest: synthetic
107
+ lifecycle:
108
+ - at: "2026-06-02T10:00:00.000Z"
109
+ event: run.created
110
+ message: Created synthetic contract fixture.
111
+ redaction:
112
+ status: passed
113
+ notes: Synthetic fixture only.
114
+ artifacts:
115
+ run: run.json
116
+ reviewJson: review.json
117
+ reviewMarkdown: review.md
118
+ observerData: observer/observer-data.json
119
+ events: events.ndjson
120
+ review:
121
+ schema: mimetic.review.v1
122
+ verdict: contract_proof_only
123
+ summary: Synthetic contract fixture generated.
124
+ gaps: []
125
+ feedbackCandidates: []
126
+ ```
127
+
128
+ ## Adapter
129
+
130
+ Adapters describe target-specific affordances without changing core contracts.
131
+
132
+ Core-owned fields:
133
+
134
+ - `schema`
135
+ - `id`
136
+ - normalized route/reference shape
137
+ - public-safety validation of adapter references
138
+
139
+ Adapter-owned fields:
140
+
141
+ - `name`
142
+ - `routes`
143
+ - route descriptions
144
+ - target-specific commands, paths, milestones, and vocabulary
145
+
146
+ Synthetic fixture:
147
+
148
+ ```yaml
149
+ schema: mimetic.adapter.v1
150
+ id: synthetic-cli-adapter
151
+ name: Synthetic CLI Adapter
152
+ routes:
153
+ - id: help
154
+ path: synthetic-cli --help
155
+ description: Public-safe command discovery.
156
+ - id: dry-run
157
+ path: synthetic-cli run --dry-run --json
158
+ description: Generate a synthetic run bundle.
159
+ ```
160
+
161
+ ## Persona And Scenario
162
+
163
+ Personas and scenarios define trial intent. They are adapter-owned source
164
+ documents that core copies into run bundles by digest and id.
165
+
166
+ Core-owned fields:
167
+
168
+ - schema naming rules
169
+ - id/source/sourceDigest references inside run bundles
170
+ - redaction gates before persona/scenario text can appear in public feedback
171
+
172
+ Adapter-owned fields:
173
+
174
+ - persona traits
175
+ - scenario goals
176
+ - steps and expectations
177
+ - accessibility or workflow constraints
178
+
179
+ Synthetic fixture:
180
+
181
+ ```yaml
182
+ persona:
183
+ schema: mimetic.persona.v1
184
+ id: synthetic-maintainer
185
+ name: Synthetic Maintainer
186
+ summary: Privacy-safe maintainer evaluating first-run clarity.
187
+ constraints:
188
+ - Do not use real personal data.
189
+ - Treat credentials as env var names only.
190
+ scenario:
191
+ schema: mimetic.scenario.v1
192
+ id: first-run-smoke
193
+ title: First-run smoke
194
+ persona: synthetic-maintainer
195
+ goal: Prove setup, dry-run evidence, verification, and feedback drafting.
196
+ mode: dry-run
197
+ steps:
198
+ - name: Inspect help
199
+ expectation: Help explains setup and verification commands.
200
+ - name: Verify bundle
201
+ expectation: Verification passes without private data.
202
+ ```
203
+
204
+ ## Actor
205
+
206
+ Actors execute or simulate the trial. Core records actor status; adapters
207
+ choose which actor fits the target and authority level.
208
+
209
+ Core-owned fields:
210
+
211
+ - `schema`
212
+ - `id`
213
+ - `kind`
214
+ - `status`
215
+ - `startedAt`
216
+ - `endedAt`
217
+ - `durationMs`
218
+ - `exitCode`
219
+ - `reason`
220
+ - redacted artifact pointers
221
+
222
+ Adapter-owned fields:
223
+
224
+ - actor prompt
225
+ - target command
226
+ - lane focus
227
+ - product-specific acceptance notes
228
+
229
+ Synthetic fixture:
230
+
231
+ ```yaml
232
+ schema: mimetic.actor.v1
233
+ id: synthetic-dry-run-actor
234
+ kind: scripted
235
+ status: passed
236
+ startedAt: "2026-06-02T10:00:00.000Z"
237
+ endedAt: "2026-06-02T10:00:01.000Z"
238
+ durationMs: 1000
239
+ exitCode: 0
240
+ reason: Synthetic dry-run fixture completed.
241
+ artifacts:
242
+ - path: actor.json
243
+ kind: trace
244
+ redaction: passed
245
+ ```
246
+
247
+ ## Substrate
248
+
249
+ Substrates are the execution environments that run actors or render evidence.
250
+
251
+ Core-owned fields:
252
+
253
+ - `schema`
254
+ - `kind`
255
+ - `status`
256
+ - lifecycle state
257
+ - safe capability names
258
+ - cleanup result
259
+
260
+ Adapter-owned fields:
261
+
262
+ - target start command
263
+ - allowed env var names
264
+ - allowed hosts
265
+ - viewport needs
266
+ - repo-specific setup commands
267
+
268
+ Synthetic fixture:
269
+
270
+ ```yaml
271
+ schema: mimetic.substrate.v1
272
+ id: local-filesystem-substrate
273
+ kind: local-filesystem
274
+ status: ready
275
+ capabilities:
276
+ - read committed source
277
+ - write ignored run artifacts
278
+ cleanup:
279
+ status: not_required
280
+ credentials:
281
+ envNames: []
282
+ valuesPersisted: false
283
+ ```
284
+
285
+ ## Evidence Streams
286
+
287
+ Evidence streams normalize UI, browser, terminal, TUI, code-agent UI, artifact,
288
+ and summary lanes for Observer and review.
289
+
290
+ Core-owned fields:
291
+
292
+ - `id`
293
+ - `simId`
294
+ - `kind`
295
+ - `status`
296
+ - `transport`
297
+ - `updatedAt`
298
+ - `completion`
299
+ - `artifacts`
300
+ - redacted terminal tail
301
+
302
+ Adapter-owned fields:
303
+
304
+ - stream label
305
+ - route or command name
306
+ - current step text
307
+ - public-safe summaries
308
+ - target-specific trace artifacts
309
+
310
+ Synthetic fixture:
311
+
312
+ ```yaml
313
+ schema: mimetic.evidence-stream.v1
314
+ id: cli-stream-proof
315
+ simId: sim-01
316
+ kind: terminal
317
+ label: CLI proof
318
+ status: passed
319
+ transport: snapshot
320
+ updatedAt: "2026-06-02T10:00:01.000Z"
321
+ terminal:
322
+ title: Synthetic terminal
323
+ format: plain
324
+ stdin: disabled
325
+ tail: "synthetic-cli verify passed"
326
+ completion:
327
+ checkedAt: "2026-06-02T10:00:01.000Z"
328
+ exitCode: 0
329
+ reason: Synthetic command passed.
330
+ status: passed
331
+ artifacts:
332
+ - label: review
333
+ path: review.md
334
+ kind: review
335
+ ```
336
+
337
+ ## Review
338
+
339
+ Review summarizes whether evidence supports the claim. It does not replace
340
+ verification or maintainer acceptance.
341
+
342
+ Core-owned fields:
343
+
344
+ - `schema`
345
+ - `verdict`
346
+ - `summary`
347
+ - `gaps`
348
+
349
+ Adapter-owned fields:
350
+
351
+ - vocabulary labels
352
+ - milestone names
353
+ - product-specific gap language
354
+
355
+ Synthetic fixture:
356
+
357
+ ```yaml
358
+ schema: mimetic.review.v1
359
+ verdict: contract_proof_only
360
+ summary: Synthetic dry-run proves bundle shape, not product behavior.
361
+ gaps:
362
+ - Live product behavior was not exercised.
363
+ ```
364
+
365
+ ## Verification
366
+
367
+ Verification checks bundles and evidence pointers. It fails closed when schema,
368
+ redaction, or artifacts are missing.
369
+
370
+ Core-owned fields:
371
+
372
+ - `schema`
373
+ - `ok`
374
+ - `run`
375
+ - `bundlePath`
376
+ - check names
377
+ - check booleans
378
+ - machine-readable error codes
379
+
380
+ Adapter-owned fields:
381
+
382
+ - optional target-specific checks
383
+ - acceptance proof commands
384
+ - coverage-specific check names
385
+
386
+ Synthetic fixture:
387
+
388
+ ```yaml
389
+ schema: mimetic.verify-result.v1
390
+ ok: true
391
+ run: synthetic-run-bundle-2026-06-02t10-00-00-000z-proof
392
+ bundlePath: .mimetic/runs/synthetic-run-bundle-2026-06-02t10-00-00-000z-proof/run.json
393
+ checks:
394
+ - name: run.json exists
395
+ ok: true
396
+ message: run.json present
397
+ - name: redaction passed
398
+ ok: true
399
+ message: redaction status must be passed
400
+ ```
401
+
402
+ ## Policy
403
+
404
+ Policy names boundaries before an actor runs or feedback is promoted.
405
+
406
+ Core-owned fields:
407
+
408
+ - `schema`
409
+ - policy kind
410
+ - default action
411
+ - validation outcome
412
+ - redaction status
413
+ - no-secret-value persistence rules
414
+
415
+ Adapter-owned fields:
416
+
417
+ - allowed env var names
418
+ - allowed public hosts
419
+ - app-specific credential manifest
420
+ - network allowlist
421
+ - scenario-specific authority
422
+
423
+ Synthetic fixture:
424
+
425
+ ```yaml
426
+ schema: mimetic.policy.v1
427
+ kind: public-safety
428
+ default: deny_sensitive_material
429
+ deny:
430
+ - pii
431
+ - phi
432
+ - secrets
433
+ - tokens
434
+ - raw_private_transcripts
435
+ - private_screenshots
436
+ allow:
437
+ - synthetic_personas
438
+ - synthetic_fixtures
439
+ - env_var_names
440
+ credentialManifest:
441
+ - envName: OPENAI_API_KEY
442
+ valuePersisted: false
443
+ network:
444
+ default: local_only
445
+ allowedHosts:
446
+ - localhost
447
+ ```
448
+
449
+ ## Feedback
450
+
451
+ Feedback turns verified evidence into public-safe issue draft material. The
452
+ default public CLI prints issue text or a prefilled URL; it does not mutate
453
+ GitHub.
454
+
455
+ Core-owned fields:
456
+
457
+ - `schema`
458
+ - run/source/evidence pointers
459
+ - redaction status
460
+ - idempotency key
461
+ - proposed next state
462
+ - failure owner enum
463
+ - public issue eligibility gates
464
+
465
+ Adapter-owned fields:
466
+
467
+ - adapter id
468
+ - scenario id
469
+ - persona id
470
+ - expected/actual language
471
+ - target-specific reproduction steps
472
+ - acceptance proof commands
473
+
474
+ Synthetic fixture:
475
+
476
+ ```yaml
477
+ schema: mimetic.feedback.v1
478
+ run_id: synthetic-run-bundle-2026-06-02t10-00-00-000z-proof
479
+ adapter_id: synthetic-cli-adapter
480
+ scenario_id: first-run-smoke
481
+ persona_id: synthetic-maintainer
482
+ actor: synthetic-dry-run
483
+ substrate: local-filesystem
484
+ failure_owner: harness
485
+ summary: Synthetic user needed clearer verification instructions.
486
+ expected: Verification command is visible and public-safe.
487
+ actual: Dry-run review noted missing live behavior proof.
488
+ source_bundle: .mimetic/runs/synthetic-run-bundle-2026-06-02t10-00-00-000z-proof/run.json
489
+ evidence:
490
+ - path: .mimetic/runs/synthetic-run-bundle-2026-06-02t10-00-00-000z-proof/review.md
491
+ kind: review
492
+ note: Public-safe synthetic review.
493
+ redaction:
494
+ status: passed
495
+ notes: Synthetic fixture only.
496
+ idempotency_key: synthetic-cli-adapter:first-run-smoke:verification-instructions
497
+ proposed_next_state: watch
498
+ acceptance_proof:
499
+ - pnpm mimetic -- verify --run latest --json
500
+ ```
501
+
502
+ ## Contract Stop Conditions
503
+
504
+ Do not promote a contract fixture when:
505
+
506
+ - it needs private artifact data to make sense;
507
+ - it contains credential values instead of env var names;
508
+ - it embeds raw hosted stream URLs or auth-bearing links;
509
+ - it uses product-specific private nouns in a core-owned schema;
510
+ - it implies GitHub mutation without explicit maintainer authority;
511
+ - it cannot be proven with `git diff --check` and public-surface scanning.
@@ -0,0 +1,163 @@
1
+ # Current Goals
2
+
3
+ Status date: 2026-06-02
4
+
5
+ This page is the current public-safe operating goal for `mimetic-cli`. Keep it
6
+ short enough to reread before a coding session and concrete enough that future
7
+ agents can choose useful work without private context.
8
+
9
+ ## North Star
10
+
11
+ Mimetic should be the open-source CLI that lets a maintainer ask:
12
+
13
+ > What happens when realistic synthetic personas try to use this app, CLI, or
14
+ > agent-facing workflow?
15
+
16
+ The answer should be observable, verifiable, public-safe, and easy to turn into
17
+ actionable feedback.
18
+
19
+ ## Definition Of Awesome
20
+
21
+ A world-class Mimetic run should eventually provide:
22
+
23
+ - one human-friendly command that starts simulations and opens Observer;
24
+ - multiple synthetic personas with different goals, patience, and skill levels;
25
+ - UI, CLI, TUI, and code-agent lanes in one mission-control Observer;
26
+ - real evidence: screenshots, terminal transcripts, lifecycle events, traces,
27
+ artifacts, and verifier output;
28
+ - clear pass, fail, blocked, and gap states;
29
+ - public-safe feedback issue drafts that do not mutate GitHub by default;
30
+ - adapter contracts that let projects customize behavior without forking core;
31
+ - release gates that prevent PII, PHI, secrets, private artifacts, and stale
32
+ internal residue from reaching the public repo or package.
33
+
34
+ ## Current Objective
35
+
36
+ Make the public package and repo credible enough that an external maintainer can:
37
+
38
+ 1. install the skill;
39
+ 2. install `mimetic-cli`;
40
+ 3. run `mimetic init`;
41
+ 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.
46
+
47
+ ## Near-Term Goals
48
+
49
+ ### 1. Public Readiness
50
+
51
+ Keep the repository clean and public-safe.
52
+
53
+ Acceptance:
54
+
55
+ ```bash
56
+ pnpm release:check
57
+ git diff --check
58
+ ```
59
+
60
+ Fresh clone release checks should pass before public visibility changes.
61
+
62
+ ### 2. Future-Agent Ramp
63
+
64
+ Maintain a durable ramp that tells future contributors and coding agents where
65
+ to start, what exists, what remains, and what proof is required.
66
+
67
+ Acceptance:
68
+
69
+ - [`docs/ramp/README.md`](../ramp/README.md) stays current;
70
+ - this page stays current;
71
+ - README links both;
72
+ - release package includes both docs directories.
73
+
74
+ ### 3. Fresh-Agent Install Proof
75
+
76
+ Prove the skill and package setup flow from a disposable target app with no chat
77
+ context.
78
+
79
+ Target proof:
80
+
81
+ ```bash
82
+ npm i -D mimetic-cli
83
+ npx mimetic init --yes
84
+ npx mimetic watch --json --no-open
85
+ npx mimetic verify --run latest --json
86
+ npx mimetic feedback issue --run latest --repo owner/repo --format markdown
87
+ ```
88
+
89
+ The proof target must use synthetic personas and no real user data.
90
+
91
+ ### 4. Live Browser Adapter
92
+
93
+ Graduate from synthetic UI lanes to a real browser journey against a local app.
94
+
95
+ Minimum acceptance:
96
+
97
+ - local app target detection;
98
+ - browser launch;
99
+ - route/state capture;
100
+ - screenshot artifact;
101
+ - run bundle references screenshot evidence;
102
+ - Observer renders the screenshot;
103
+ - `verify` fails closed if required evidence is missing.
104
+
105
+ ### 5. Live Terminal And Codex Lanes
106
+
107
+ Make local PTY and Codex-style lanes reliable enough that Observer can show
108
+ running, passed, failed, blocked, and timed-out states without human inference.
109
+
110
+ Minimum acceptance:
111
+
112
+ - sanitized transcript persistence;
113
+ - explicit completion reason;
114
+ - verifier checks redaction status;
115
+ - Observer polling reflects lane completion;
116
+ - no raw private transcript or credential values.
117
+
118
+ ### 6. OSS Lab Health Readback
119
+
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
+
123
+ Minimum acceptance:
124
+
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.
129
+
130
+ ## Non-Goals
131
+
132
+ Do not make these default behavior:
133
+
134
+ - live provider spend;
135
+ - GitHub API mutation;
136
+ - hosted queues, databases, or webhooks;
137
+ - production deploys;
138
+ - real customer/user/patient data;
139
+ - private screenshots or raw transcripts;
140
+ - private upstream artifacts.
141
+
142
+ Maintainer-only tooling can exist later, but it must be opt-in, token-explicit,
143
+ and dry-run-first.
144
+
145
+ ## Drift Alarms
146
+
147
+ Stop and correct course if:
148
+
149
+ - docs start depending on chat memory;
150
+ - Observer gets prettier without stronger evidence;
151
+ - feedback drafts imply product proof from synthetic contract proof;
152
+ - tests pass while generated artifacts are not inspectable;
153
+ - live labs require private infrastructure to look impressive;
154
+ - package docs link to files that are not shipped;
155
+ - public-safety gates become optional.
156
+
157
+ ## Best Next Work
158
+
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.
161
+
162
+ That sequence keeps the package honest: first prove a new maintainer can start,
163
+ then prove Mimetic can observe real product behavior.