mimetic-cli 0.1.2 → 0.1.3
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/AGENTS.md +66 -0
- package/CONTRIBUTING.md +39 -0
- package/README.md +4 -1
- package/SECURITY.md +34 -0
- package/dist/core/git-state.d.ts +31 -0
- package/dist/core/git-state.js +142 -0
- package/dist/core/git-state.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.js +3 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/run-primitives.d.ts +66 -0
- package/dist/core/run-primitives.js +120 -0
- package/dist/core/run-primitives.js.map +1 -0
- package/dist/observer-assets.js +1663 -2180
- package/dist/observer-assets.js.map +1 -1
- package/dist/observer-data.d.ts +1 -1
- package/dist/observer-data.js +5 -1
- package/dist/observer-data.js.map +1 -1
- package/dist/observer.js +8 -61
- package/dist/observer.js.map +1 -1
- package/dist/oss-meta-lab.d.ts +50 -0
- package/dist/oss-meta-lab.js +454 -27
- package/dist/oss-meta-lab.js.map +1 -1
- package/dist/program.d.ts +6 -0
- package/dist/program.js +75 -8
- package/dist/program.js.map +1 -1
- package/dist/run.d.ts +19 -6
- package/dist/run.js +1263 -9
- package/dist/run.js.map +1 -1
- package/docs/architecture/github-feedback-loop.md +189 -0
- package/docs/architecture/local-codex-tui-actor.md +210 -0
- package/docs/architecture/observer.md +109 -0
- package/docs/architecture/oss-lab-poc.md +170 -0
- package/docs/architecture/project-layout.md +132 -0
- package/docs/contracts/adapter-fixtures.md +80 -0
- package/docs/contracts/core.md +71 -0
- package/docs/contracts/feedback.md +131 -0
- package/docs/contracts/policy.md +273 -0
- package/docs/contracts/run-bundle.md +110 -0
- package/docs/contracts/schemas.md +511 -0
- package/docs/goals/current.md +163 -0
- package/docs/principles/self-driving-harness.md +129 -0
- package/docs/product/open-source-install-experience.md +138 -0
- package/docs/ramp/README.md +167 -0
- package/docs/release/open-source-readiness.md +171 -0
- package/docs/release/public-readiness-standard.md +205 -0
- package/docs/roadmap/world-class-open-source-v0.md +286 -0
- package/package.json +13 -2
- 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.
|