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.
- package/README.md +67 -12
- package/dist/env-file.d.ts +14 -0
- package/dist/env-file.js +108 -0
- package/dist/env-file.js.map +1 -0
- package/dist/feedback.d.ts +7 -5
- package/dist/feedback.js +61 -4
- package/dist/feedback.js.map +1 -1
- package/dist/init-templates.js +29 -0
- package/dist/init-templates.js.map +1 -1
- package/dist/lab-app-runner.d.ts +78 -0
- package/dist/lab-app-runner.js +403 -0
- package/dist/lab-app-runner.js.map +1 -0
- package/dist/labs.d.ts +67 -0
- package/dist/labs.js +257 -0
- package/dist/labs.js.map +1 -0
- package/dist/observer-assets.js +473 -25
- package/dist/observer-assets.js.map +1 -1
- package/dist/observer.d.ts +6 -0
- package/dist/observer.js +49 -8
- package/dist/observer.js.map +1 -1
- package/dist/oss-lab.d.ts +1 -1
- package/dist/oss-lab.js +6 -6
- package/dist/oss-lab.js.map +1 -1
- package/dist/oss-meta-lab.d.ts +113 -1
- package/dist/oss-meta-lab.js +2753 -200
- package/dist/oss-meta-lab.js.map +1 -1
- package/dist/oss-remote-telemetry.d.ts +77 -0
- package/dist/oss-remote-telemetry.js +393 -0
- package/dist/oss-remote-telemetry.js.map +1 -0
- package/dist/program.d.ts +8 -0
- package/dist/program.js +668 -70
- package/dist/program.js.map +1 -1
- package/dist/run.d.ts +105 -3
- package/dist/run.js +684 -22
- package/dist/run.js.map +1 -1
- package/docs/architecture/local-codex-tui-actor.md +9 -6
- package/docs/architecture/oss-lab-poc.md +119 -47
- package/docs/architecture/project-layout.md +40 -6
- package/docs/assets/mimetic-oss-lab-observer.png +0 -0
- package/docs/contracts/feedback.md +15 -12
- package/docs/contracts/policy.md +9 -2
- package/docs/contracts/run-bundle.md +62 -0
- package/docs/contracts/schemas.md +21 -0
- package/docs/goals/current.md +50 -17
- package/docs/product/open-source-install-experience.md +63 -8
- package/docs/ramp/README.md +26 -8
- package/docs/roadmap/world-class-open-source-v0.md +41 -20
- package/package.json +9 -6
- package/skills/mimetic-cli/SKILL.md +89 -4
- package/skills/mimetic-cli/agents/openai.yaml +1 -1
|
@@ -1,48 +1,51 @@
|
|
|
1
|
-
# OSS Lab
|
|
1
|
+
# Maintainer OSS Meta-Lab
|
|
2
2
|
|
|
3
3
|
Date: 2026-06-01
|
|
4
4
|
|
|
5
|
-
Status: implemented as an experimental
|
|
6
|
-
|
|
5
|
+
Status: implemented as an experimental repo-owned lab manifest plus
|
|
6
|
+
compatibility aliases.
|
|
7
7
|
|
|
8
8
|
## Decision
|
|
9
9
|
|
|
10
|
-
`mimetic
|
|
10
|
+
`mimetic/labs/oss.yaml` is this repo's authorized-repo meta-simulation
|
|
11
|
+
dogfood loop. It is intentionally a lab manifest, not the canonical consumer
|
|
12
|
+
shape. Consumer projects should author their own `mimetic/labs/*.yaml` files
|
|
13
|
+
and run them with `mimetic watch <lab>` or `mimetic lab run <lab>`.
|
|
11
14
|
|
|
12
|
-
The
|
|
13
|
-
|
|
14
|
-
Observer-of-Observers: each lane represents a headed E2B desktop
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
The lab should feel like `mimetic watch`: it opens the Observer and, for human
|
|
16
|
+
output, keeps the shell attached. Its top-level Observer is an
|
|
17
|
+
Observer-of-Observers: each lane represents a headed E2B desktop assigned to a
|
|
18
|
+
GitHub `owner/repo` slug. Inside each desktop, the bootstrap clones the repo,
|
|
19
|
+
gets it into local dev mode where feasible, installs and initializes Mimetic,
|
|
20
|
+
runs nested Mimetic proof commands, starts the target app when a runnable
|
|
21
|
+
script is present, opens desktop/mobile app windows plus the nested Observer in
|
|
22
|
+
the E2B browser, and starts a nonblocking Codex actor attempt.
|
|
20
23
|
|
|
21
24
|
The previous clone/discard proof loop remains useful, but it is now explicitly
|
|
22
|
-
named `mimetic
|
|
25
|
+
named `mimetic/labs/oss-smoke.yaml`.
|
|
23
26
|
|
|
24
27
|
## Commands
|
|
25
28
|
|
|
26
29
|
Main operator path:
|
|
27
30
|
|
|
28
31
|
```bash
|
|
29
|
-
mimetic
|
|
30
|
-
mimetic lab oss
|
|
31
|
-
mimetic lab oss --
|
|
32
|
+
mimetic watch oss
|
|
33
|
+
mimetic lab run oss
|
|
34
|
+
mimetic lab run oss --repos CorentinTh/it-tools,drawdb-io/drawdb,maciekt07/TodoApp,lissy93/dashy
|
|
35
|
+
mimetic lab run oss --repo CorentinTh/it-tools --repo drawdb-io/drawdb --count 4
|
|
32
36
|
```
|
|
33
37
|
|
|
34
38
|
Agent/CI contract path:
|
|
35
39
|
|
|
36
40
|
```bash
|
|
37
|
-
mimetic lab oss --dry-run --json --no-open
|
|
41
|
+
mimetic lab run oss --dry-run --json --no-open
|
|
38
42
|
```
|
|
39
43
|
|
|
40
44
|
Disposable clone smoke path:
|
|
41
45
|
|
|
42
46
|
```bash
|
|
43
|
-
mimetic lab oss-smoke
|
|
44
|
-
mimetic lab oss-smoke --limit 1 --keep
|
|
45
|
-
mimetic lab oss --smoke --limit 1 --keep
|
|
47
|
+
mimetic lab run oss-smoke
|
|
48
|
+
mimetic lab run oss-smoke --limit 1 --keep
|
|
46
49
|
```
|
|
47
50
|
|
|
48
51
|
Local dogfood shortcuts:
|
|
@@ -55,17 +58,47 @@ pnpm mimetic:lab:oss:smoke
|
|
|
55
58
|
|
|
56
59
|
## Repo Selection
|
|
57
60
|
|
|
58
|
-
The default public targets are
|
|
61
|
+
The default public targets are product-like, locally runnable apps/tools:
|
|
59
62
|
|
|
60
|
-
- `
|
|
61
|
-
- `
|
|
62
|
-
- `
|
|
63
|
-
- `
|
|
63
|
+
- `CorentinTh/it-tools`
|
|
64
|
+
- `drawdb-io/drawdb`
|
|
65
|
+
- `maciekt07/TodoApp`
|
|
66
|
+
- `lissy93/dashy`
|
|
67
|
+
|
|
68
|
+
Target selection should minimize distance from a real user-facing journey.
|
|
69
|
+
Good defaults expose an app, CLI, or agent-facing tool that can be tried out of
|
|
70
|
+
the box, preferably with a local dev script and no account setup. Libraries,
|
|
71
|
+
frameworks, starters, and infrastructure packages belong only in scenarios that
|
|
72
|
+
explicitly test developer experience. They are poor defaults for proving
|
|
73
|
+
Mimetic as a user-simulation harness because they add another abstract setup
|
|
74
|
+
layer before any product behavior is visible.
|
|
64
75
|
|
|
65
76
|
`--repos` accepts a comma-separated list. Repeated `--repo` is also supported.
|
|
66
77
|
If `--count` is larger than the repo list, assignments cycle through the repo
|
|
67
|
-
pool. Inputs must be
|
|
68
|
-
|
|
78
|
+
pool. Inputs must be GitHub `owner/repo` slugs. Arbitrary URLs, local paths,
|
|
79
|
+
tokens, and SSH remotes are rejected. Private repos are maintainer-only and
|
|
80
|
+
require an authorized `GH_TOKEN` or `GITHUB_TOKEN` at runtime; no token value is
|
|
81
|
+
written to committed source or public issue text.
|
|
82
|
+
|
|
83
|
+
## Private Product Labs
|
|
84
|
+
|
|
85
|
+
Private products can be used for local maintainer dogfood, but they must stay
|
|
86
|
+
out of the public package surface. Do not commit private repo names as defaults,
|
|
87
|
+
fixtures, screenshots, README examples, npm assets, skill examples, or issue
|
|
88
|
+
draft text.
|
|
89
|
+
|
|
90
|
+
The safe local shape is:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
mimetic watch .mimetic/labs/private-app.yaml --env-file .mimetic/local/provider.env
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
with an authorized runtime GitHub token and default repo redaction enabled.
|
|
97
|
+
Do not pass `--no-redact-repos` for a private target. Public receipts for
|
|
98
|
+
those runs should say `authorized private app target` and point only to ignored
|
|
99
|
+
local artifact paths, redacted statuses, and verifier results. Never publish
|
|
100
|
+
private screenshots, logs, app URLs, source snippets, branch names, issue
|
|
101
|
+
names, stream URLs, or operational details.
|
|
69
102
|
|
|
70
103
|
## Runtime Shape
|
|
71
104
|
|
|
@@ -85,19 +118,45 @@ The meta-lab writes ignored local Observer evidence:
|
|
|
85
118
|
|
|
86
119
|
Each stream lane records:
|
|
87
120
|
|
|
88
|
-
- assigned repo slug
|
|
89
|
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
121
|
+
- assigned repo slug for public runs, or a redacted lane label for token-backed
|
|
122
|
+
maintainer/private runs;
|
|
123
|
+
- whether a live E2B desktop stream exists; auth-bearing stream URLs are
|
|
124
|
+
runtime-only for the attached Observer server and are not persisted;
|
|
125
|
+
- target app URL/status when a runnable script becomes HTTP-ready inside the
|
|
126
|
+
sandbox;
|
|
127
|
+
- nested Observer presence and nested verification status;
|
|
128
|
+
- headed desktop visual-window status and browser window count;
|
|
129
|
+
- Codex actor status, optionally moved before deterministic setup with
|
|
130
|
+
`MIMETIC_OSS_META_ACTOR_FIRST=1` and required through
|
|
131
|
+
`MIMETIC_OSS_META_REQUIRE_ACTOR=1`;
|
|
132
|
+
- setup-quality filesystem evidence: shallow tree, Mimetic setup checks,
|
|
133
|
+
package scripts, study-quality rating, and allowlisted previews for public
|
|
134
|
+
runs;
|
|
135
|
+
- public-safe remote bootstrap log tail;
|
|
92
136
|
- public-safe gaps and events.
|
|
93
137
|
|
|
94
138
|
The current implementation launches live E2B desktop streams when
|
|
95
|
-
`E2B_API_KEY` and `OPENAI_API_KEY` are present,
|
|
96
|
-
|
|
97
|
-
packs the local Mimetic package, uploads it into each sandbox,
|
|
98
|
-
bootstrap terminal, clones the assigned
|
|
99
|
-
and proof commands,
|
|
100
|
-
the sandbox browser
|
|
139
|
+
`E2B_API_KEY` and `OPENAI_API_KEY` are present, overlays those stream URLs only
|
|
140
|
+
in the attached Observer server, and marks missing key or launch failures
|
|
141
|
+
in-lane. It also packs the local Mimetic package, uploads it into each sandbox,
|
|
142
|
+
raises a visible bootstrap terminal, clones the assigned repo, runs nested
|
|
143
|
+
Mimetic setup and proof commands, starts the target app, opens desktop/mobile
|
|
144
|
+
app windows, opens the nested Observer in the sandbox browser, arranges visible
|
|
145
|
+
browser windows for screenshot proof, and starts the Codex actor attempt. By
|
|
146
|
+
default the actor remains nonblocking and runs after deterministic readback; with
|
|
147
|
+
`MIMETIC_OSS_META_ACTOR_FIRST=1`, the actor attempts setup/use before
|
|
148
|
+
deterministic validation; with `MIMETIC_OSS_META_REQUIRE_ACTOR=1`, the bootstrap
|
|
149
|
+
waits up to `MIMETIC_OSS_META_ACTOR_TIMEOUT_MS` for terminal actor readback and
|
|
150
|
+
will not mark the lane passed unless the actor exits cleanly.
|
|
151
|
+
|
|
152
|
+
When the remote bootstrap completes, the host persists a local
|
|
153
|
+
`setup-quality/<stream>-setup-quality.json` artifact. The Observer Files tab can
|
|
154
|
+
render it inline from the served Observer. Static `file://` observers keep the
|
|
155
|
+
artifact link openable but do not hydrate it inline. Token-backed/private runs
|
|
156
|
+
suppress raw file previews by default while preserving the setup checks and
|
|
157
|
+
tree shape. They also preserve `studyQuality` structural signals so an actor
|
|
158
|
+
that merely installs Mimetic receives a `ceremonial` rating instead of being
|
|
159
|
+
treated as successful user-study leverage.
|
|
101
160
|
|
|
102
161
|
The live desktop substrate is an optional peer dependency. Install it in the
|
|
103
162
|
project that runs live labs:
|
|
@@ -106,13 +165,13 @@ project that runs live labs:
|
|
|
106
165
|
npm i -D @e2b/desktop
|
|
107
166
|
```
|
|
108
167
|
|
|
109
|
-
Remaining substrate work:
|
|
110
|
-
|
|
111
|
-
|
|
168
|
+
Remaining substrate work: upgrade the nested `--app-url` browser proof into
|
|
169
|
+
provider-backed personas that actually drive multi-step target-app journeys,
|
|
170
|
+
and live-prove actor-first setup/use, not only deterministic bootstrap readback.
|
|
112
171
|
|
|
113
172
|
## Smoke Harness Runtime
|
|
114
173
|
|
|
115
|
-
`mimetic lab oss-smoke` shallow clones lightweight public GitHub repos into
|
|
174
|
+
`mimetic lab run oss-smoke` shallow clones lightweight public GitHub repos into
|
|
116
175
|
ignored runtime state, applies Mimetic setup inside each throwaway clone, runs
|
|
117
176
|
the synthetic four-lane proof path, verifies the generated bundle, records
|
|
118
177
|
git-status evidence, writes an ignored report, and removes cloned repos by
|
|
@@ -140,7 +199,13 @@ ignored `.mimetic/lab/oss/<run-id>/`.
|
|
|
140
199
|
|
|
141
200
|
## Safety Rules
|
|
142
201
|
|
|
143
|
-
-
|
|
202
|
+
- GitHub `owner/repo` slugs only.
|
|
203
|
+
- Private repos require an authorized runtime token. Token-backed runs redact
|
|
204
|
+
repo labels in durable artifacts by default and must not appear in committed
|
|
205
|
+
fixtures, docs examples, public issue text, or published media.
|
|
206
|
+
- pnpm dependency build scripts may be allowed only inside the disposable E2B
|
|
207
|
+
lab so target app surfaces can start. Never use this as a host install
|
|
208
|
+
default.
|
|
144
209
|
- No credential prompts; smoke clone calls set `GIT_TERMINAL_PROMPT=0`.
|
|
145
210
|
- No commits, pushes, branches, tags, GitHub API mutation, deploys, or issue
|
|
146
211
|
filing.
|
|
@@ -151,11 +216,13 @@ ignored `.mimetic/lab/oss/<run-id>/`.
|
|
|
151
216
|
## What This Proves
|
|
152
217
|
|
|
153
218
|
The meta-lab proves the operator control surface and artifact contract for
|
|
154
|
-
watching multiple Codex/E2B
|
|
155
|
-
E2B desktop fanout, visible bootstrap terminals, local-package upload,
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
target
|
|
219
|
+
watching multiple Codex/E2B setup attempts at once. The live path now detects
|
|
220
|
+
E2B desktop fanout, visible bootstrap terminals, local-package upload,
|
|
221
|
+
disposable authorized-repo setup, target app HTTP readiness when a runnable
|
|
222
|
+
script is present, headed browser-window layout, nested live `--app-url`
|
|
223
|
+
desktop/mobile browser proof when the target app runs, nested Observer opening,
|
|
224
|
+
and top-level lane completion from remote evidence. It does not yet prove a
|
|
225
|
+
general provider-backed multi-step target-app persona runtime.
|
|
159
226
|
|
|
160
227
|
The smoke harness proves first-run Mimetic package compatibility against
|
|
161
228
|
arbitrary public JavaScript repositories:
|
|
@@ -168,3 +235,8 @@ arbitrary public JavaScript repositories:
|
|
|
168
235
|
|
|
169
236
|
Neither path may claim private product behavior proof without live, redacted,
|
|
170
237
|
public-safe evidence.
|
|
238
|
+
|
|
239
|
+
Feedback candidates are derived from this evidence when a lane records concrete
|
|
240
|
+
setup-quality gaps, ceremonial/absent study quality, or actor-reported Mimetic
|
|
241
|
+
CLI blockers. `mimetic feedback` uses those candidates before falling back to
|
|
242
|
+
generic dry-run follow-up drafts.
|
|
@@ -13,9 +13,9 @@ mimetic/ # committed source of simulation intent
|
|
|
13
13
|
.mimetic/ # ignored runtime state, evidence, local overlays, and secrets
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
Do not gitignore all Mimetic state.
|
|
17
|
-
coverage maps, and review vocabulary are the harness. They must be
|
|
18
|
-
reviewed, and reproducible from a clean clone.
|
|
16
|
+
Do not gitignore all Mimetic state. Labs, personas, scenarios, policies,
|
|
17
|
+
adapters, coverage maps, and review vocabulary are the harness. They must be
|
|
18
|
+
versioned, reviewed, and reproducible from a clean clone.
|
|
19
19
|
|
|
20
20
|
Do not commit run bundles, raw screenshots, browser traces, transcripts,
|
|
21
21
|
draft issue bodies before verification, local auth, local overrides, or secrets.
|
|
@@ -34,6 +34,8 @@ mimetic/
|
|
|
34
34
|
scenarios/
|
|
35
35
|
first-run-smoke.yaml
|
|
36
36
|
onboarding-regression.yaml
|
|
37
|
+
labs/
|
|
38
|
+
first-run.yaml
|
|
37
39
|
policies/
|
|
38
40
|
redaction.yaml
|
|
39
41
|
network.yaml
|
|
@@ -49,6 +51,29 @@ mimetic/
|
|
|
49
51
|
synthetic-login-state.json
|
|
50
52
|
```
|
|
51
53
|
|
|
54
|
+
## Mimetic Format Stack
|
|
55
|
+
|
|
56
|
+
Use formats based on who edits the file and how it is consumed:
|
|
57
|
+
|
|
58
|
+
- `.yaml` for human-authored Mimetic source: personas, scenarios, policies,
|
|
59
|
+
labs, review vocabulary, and review milestones. Prefer `.yaml` over `.yml`
|
|
60
|
+
for Mimetic-owned source files.
|
|
61
|
+
- `.ts` for executable project integration: `mimetic/config.ts`, adapters,
|
|
62
|
+
route catalogs, app launch plans, and logic that benefits from imports or
|
|
63
|
+
type checking.
|
|
64
|
+
- `.json` for generated machine artifacts and synthetic fixtures: run bundles,
|
|
65
|
+
observer data, review JSON, latest/history pointers, and fixture records.
|
|
66
|
+
- `.ndjson` for appendable event or transcript streams.
|
|
67
|
+
- `.yml` is acceptable for ecosystem files that conventionally use it, such as
|
|
68
|
+
`.github/workflows/*.yml`; do not use `.yml` for Mimetic-owned authored
|
|
69
|
+
source.
|
|
70
|
+
|
|
71
|
+
Do not convert personas or scenarios to JSON because parser implementation is
|
|
72
|
+
easier. Keep authored simulation intent readable, then validate it through
|
|
73
|
+
schemas and CLI checks. TOML is not part of the current Mimetic stack; add it
|
|
74
|
+
only if a concrete scalar global-config need appears that is better served by
|
|
75
|
+
TOML than YAML, TypeScript, or JSON.
|
|
76
|
+
|
|
52
77
|
Committed files must be public-safe:
|
|
53
78
|
|
|
54
79
|
- synthetic personas only;
|
|
@@ -79,7 +104,11 @@ visible in PR review.
|
|
|
79
104
|
cache/
|
|
80
105
|
tmp/
|
|
81
106
|
logs/
|
|
107
|
+
labs/
|
|
82
108
|
local/
|
|
109
|
+
labs/
|
|
110
|
+
personas/
|
|
111
|
+
policies/
|
|
83
112
|
secrets/
|
|
84
113
|
```
|
|
85
114
|
|
|
@@ -99,11 +128,16 @@ When a team needs private local personas or credentials, use ignored overlays:
|
|
|
99
128
|
```text
|
|
100
129
|
.mimetic/local/personas/*.yaml
|
|
101
130
|
.mimetic/local/policies/*.yaml
|
|
131
|
+
.mimetic/local/labs/*.yaml
|
|
132
|
+
.mimetic/labs/*.yaml
|
|
102
133
|
.mimetic/secrets/*
|
|
103
134
|
```
|
|
104
135
|
|
|
105
|
-
|
|
106
|
-
|
|
136
|
+
Committed `mimetic/labs/*.yaml` should be useful to anyone with a clean clone.
|
|
137
|
+
Ignored `.mimetic/labs/*.yaml` and `.mimetic/local/labs/*.yaml` are for
|
|
138
|
+
machine-specific or private dogfood labs. The CLI should warn that local
|
|
139
|
+
overlays cannot be used for reproducible CI or public issue drafts unless
|
|
140
|
+
redacted into committed synthetic equivalents.
|
|
107
141
|
|
|
108
142
|
## CI And Reproducibility
|
|
109
143
|
|
|
@@ -113,6 +147,7 @@ CI should reproduce proof from committed inputs:
|
|
|
113
147
|
- `mimetic-cli` version;
|
|
114
148
|
- `mimetic/config.ts`;
|
|
115
149
|
- scenario and persona catalog;
|
|
150
|
+
- lab manifest;
|
|
116
151
|
- policy files;
|
|
117
152
|
- synthetic fixtures;
|
|
118
153
|
- declared env var names.
|
|
@@ -129,4 +164,3 @@ weakened personas or dropped hard paths.
|
|
|
129
164
|
A partially tracked dotdir is possible but worse UX. Dotdirs read as local,
|
|
130
165
|
editors hide them, and negated gitignore rules are easy to break. A visible
|
|
131
166
|
`mimetic/` source root plus ignored `.mimetic/` runtime root is clearer.
|
|
132
|
-
|
|
Binary file
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Date: 2026-06-01
|
|
4
4
|
|
|
5
|
-
Status: v0
|
|
5
|
+
Status: v0 local issue draft generation with run-candidate support.
|
|
6
6
|
|
|
7
7
|
## Purpose
|
|
8
8
|
|
|
@@ -42,12 +42,17 @@ mimetic feedback issue-url --run latest --repo owner/repo
|
|
|
42
42
|
|
|
43
43
|
### `list`
|
|
44
44
|
|
|
45
|
-
Reads feedback candidates from the run bundle. Does not mutate.
|
|
45
|
+
Reads feedback candidates from the run bundle. Does not mutate. Candidates are
|
|
46
|
+
generated by lab/adapters when actor evidence identifies a concrete
|
|
47
|
+
setup-quality gap, ceremonial/absent study quality, target-app blocker, or
|
|
48
|
+
Mimetic CLI blocker. The OSS
|
|
49
|
+
meta-lab is one maintainer dogfood example, not the only candidate source.
|
|
46
50
|
|
|
47
51
|
### `draft`
|
|
48
52
|
|
|
49
|
-
Builds structured feedback from
|
|
50
|
-
|
|
53
|
+
Builds structured feedback from the strongest run candidate first. If no
|
|
54
|
+
candidate is present, falls back to the dry-run contract follow-up. Writes a
|
|
55
|
+
draft under the run bundle, not GitHub.
|
|
51
56
|
|
|
52
57
|
### `verify`
|
|
53
58
|
|
|
@@ -75,20 +80,20 @@ mimetic_feedback:
|
|
|
75
80
|
persona_id: "<persona-id-or-class>"
|
|
76
81
|
actor: "<actor-runtime>"
|
|
77
82
|
substrate: "<substrate>"
|
|
78
|
-
failure_owner: "
|
|
83
|
+
failure_owner: "harness|target-app|actor|environment|unknown"
|
|
79
84
|
summary: "<public-safe concrete summary>"
|
|
80
85
|
expected: "<public-safe expected behavior>"
|
|
81
86
|
actual: "<public-safe observed behavior>"
|
|
82
87
|
source_bundle: "<path-or-url>"
|
|
83
88
|
evidence:
|
|
84
89
|
- path: "<relative artifact pointer>"
|
|
85
|
-
kind: "screenshot|
|
|
90
|
+
kind: "screenshot|state|review|trace|log|filesystem"
|
|
86
91
|
note: "<public-safe note>"
|
|
87
92
|
redaction:
|
|
88
93
|
status: "passed|failed|not_applicable"
|
|
89
94
|
notes: "<public-safe note>"
|
|
90
95
|
idempotency_key: "<stable-key>"
|
|
91
|
-
proposed_next_state: "watch|
|
|
96
|
+
proposed_next_state: "watch|adapter-hardening|target-app-setup|actor-auth|setup-quality-review|study-quality-review"
|
|
92
97
|
acceptance_proof:
|
|
93
98
|
- "<command or artifact that would close this>"
|
|
94
99
|
```
|
|
@@ -97,12 +102,10 @@ mimetic_feedback:
|
|
|
97
102
|
|
|
98
103
|
| Owner | Meaning |
|
|
99
104
|
| --- | --- |
|
|
100
|
-
| `product_ux` | The product confused, blocked, or failed the user/persona. |
|
|
101
|
-
| `agent_runtime` | The actor model/tool runtime failed independent of product UX. |
|
|
102
|
-
| `executor_substrate` | E2B, local browser, shell, filesystem, or network substrate failed. |
|
|
103
|
-
| `payment_provider` | Hosted payment/provider behavior blocked the run. |
|
|
104
|
-
| `model_provider` | Model/media provider behavior blocked the run. |
|
|
105
105
|
| `harness` | Mimetic or adapter logic produced invalid evidence or execution. |
|
|
106
|
+
| `target-app` | The target app setup, dev server, or local surface blocked the run. |
|
|
107
|
+
| `actor` | The coding-agent/persona actor failed to complete a requested setup or usage path. |
|
|
108
|
+
| `environment` | E2B, local browser, shell, filesystem, network, or dependency substrate failed. |
|
|
106
109
|
| `unknown` | Evidence is useful but ownership is not yet clear. |
|
|
107
110
|
|
|
108
111
|
## Issue Draft Gates
|
package/docs/contracts/policy.md
CHANGED
|
@@ -73,6 +73,7 @@ for credentials.
|
|
|
73
73
|
| `no_network` | No external network calls. | contract docs, local unit tests |
|
|
74
74
|
| `local_only` | Localhost and loopback only. | Observer, local fixtures |
|
|
75
75
|
| `public_oss` | Public GitHub clone/fetch of owner/repo slugs only. | disposable OSS smoke |
|
|
76
|
+
| `authorized_private` | Token-backed clone/fetch of repos the maintainer is already authorized to access, with repo labels redacted by default. | local maintainer dogfood only |
|
|
76
77
|
| `provider_substrate` | Explicit provider substrate such as hosted desktop streams. | live OSS lab with keys |
|
|
77
78
|
| `custom_allowlist` | Adapter-declared public hosts. | target-specific adapters |
|
|
78
79
|
|
|
@@ -85,7 +86,8 @@ mode: public_oss
|
|
|
85
86
|
allowedHosts:
|
|
86
87
|
- github.com
|
|
87
88
|
allowedRepoSlugs:
|
|
88
|
-
-
|
|
89
|
+
- CorentinTh/it-tools
|
|
90
|
+
- drawdb-io/drawdb
|
|
89
91
|
denied:
|
|
90
92
|
- private remotes
|
|
91
93
|
- SSH remotes
|
|
@@ -93,6 +95,11 @@ denied:
|
|
|
93
95
|
- target repo mutation
|
|
94
96
|
```
|
|
95
97
|
|
|
98
|
+
Private maintainer dogfood must use `authorized_private` plus a redaction gate.
|
|
99
|
+
The repo name, screenshots, logs, source snippets, branch names, issue names,
|
|
100
|
+
and stream URLs remain local-only. Public receipts may include only redacted
|
|
101
|
+
labels, ignored artifact paths, and verifier status.
|
|
102
|
+
|
|
96
103
|
## Spend Policy
|
|
97
104
|
|
|
98
105
|
Spend policy names when provider costs may be incurred.
|
|
@@ -114,7 +121,7 @@ providerClasses:
|
|
|
114
121
|
- model
|
|
115
122
|
- desktop_substrate
|
|
116
123
|
operatorIntent:
|
|
117
|
-
command: mimetic lab oss --json --no-open
|
|
124
|
+
command: mimetic lab run oss --json --no-open
|
|
118
125
|
explicit: true
|
|
119
126
|
budget:
|
|
120
127
|
limit: unspecified
|
|
@@ -50,6 +50,13 @@ artifacts:
|
|
|
50
50
|
review:
|
|
51
51
|
schema: mimetic.review.v1
|
|
52
52
|
verdict: "contract_proof_only|pass|fail|blocked|timed_out"
|
|
53
|
+
feedbackCandidates:
|
|
54
|
+
- schema: mimetic.feedback-candidate.v1
|
|
55
|
+
id: "<stable candidate id>"
|
|
56
|
+
failure_owner: "harness|target-app|actor|environment|unknown"
|
|
57
|
+
evidence:
|
|
58
|
+
- path: "<relative run artifact path>"
|
|
59
|
+
kind: "review|state|log|trace|screenshot|filesystem"
|
|
53
60
|
```
|
|
54
61
|
|
|
55
62
|
## Relative Artifact Layout
|
|
@@ -68,6 +75,61 @@ For run id `example-2026-06-02t10-00-00-000z-proof`, the core layout is:
|
|
|
68
75
|
Absolute paths, traversal segments, remotes, hosted logs, and private artifact
|
|
69
76
|
URLs are not part of the core layout.
|
|
70
77
|
|
|
78
|
+
## Filesystem Evidence
|
|
79
|
+
|
|
80
|
+
Filesystem setup evidence is first-class when a lane asks an actor to install
|
|
81
|
+
or configure Mimetic inside another project. It is not a repo dump.
|
|
82
|
+
|
|
83
|
+
The durable artifact kind is `filesystem`. The current schema is:
|
|
84
|
+
|
|
85
|
+
```yaml
|
|
86
|
+
schema: mimetic.setup-quality.v1
|
|
87
|
+
status: "passed|needs_review|blocked"
|
|
88
|
+
redaction:
|
|
89
|
+
status: "passed"
|
|
90
|
+
rawPreviews: "included|suppressed"
|
|
91
|
+
checks:
|
|
92
|
+
- id: "mimetic-config"
|
|
93
|
+
ok: true
|
|
94
|
+
tree:
|
|
95
|
+
- path: "mimetic/config.ts"
|
|
96
|
+
type: "file"
|
|
97
|
+
previews:
|
|
98
|
+
- path: "mimetic/config.ts"
|
|
99
|
+
language: "typescript"
|
|
100
|
+
studyQuality:
|
|
101
|
+
schema: mimetic.study-quality.v1
|
|
102
|
+
rating: "none|ceremonial|useful|high_leverage"
|
|
103
|
+
checks:
|
|
104
|
+
- id: "coverage-customized"
|
|
105
|
+
ok: true
|
|
106
|
+
signals:
|
|
107
|
+
appUrlProofBlocked: false
|
|
108
|
+
appUrlProofMentioned: true
|
|
109
|
+
actorInsightCaptured: true
|
|
110
|
+
coverageCustomized: true
|
|
111
|
+
personaCustomized: true
|
|
112
|
+
scenarioCustomized: true
|
|
113
|
+
packageScripts:
|
|
114
|
+
mimetic: "mimetic watch"
|
|
115
|
+
mimetic:
|
|
116
|
+
configPresent: true
|
|
117
|
+
personaCount: 1
|
|
118
|
+
scenarioCount: 1
|
|
119
|
+
packageScriptPresent: true
|
|
120
|
+
gitignoreContainsRuntimeIgnore: true
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
For public OSS runs, previews may include allowlisted setup files such as
|
|
124
|
+
`package.json`, `.gitignore`, `mimetic/config.ts`, and
|
|
125
|
+
`mimetic/labs/*.yaml` / `mimetic/personas/*.yaml` /
|
|
126
|
+
`mimetic/scenarios/*.yaml`. For token-backed or private maintainer runs, raw
|
|
127
|
+
previews are suppressed by default. Generated state, `.git`, `.env*`, `.npmrc`,
|
|
128
|
+
browser profiles, `node_modules`, `.mimetic/`, and arbitrary source files are
|
|
129
|
+
not included. `studyQuality` is deliberately structural: it stores booleans,
|
|
130
|
+
checks, and a rating so private runs can preserve the useful quality signal
|
|
131
|
+
without committing raw private persona, scenario, or coverage text.
|
|
132
|
+
|
|
71
133
|
## Latest And History
|
|
72
134
|
|
|
73
135
|
The latest pointer is a small local index:
|
|
@@ -27,6 +27,7 @@ workflow without leaking private upstream truth into core.
|
|
|
27
27
|
| --- | --- | --- |
|
|
28
28
|
| Run bundle | `mimetic.run-bundle.v1` | `synthetic-run-bundle` |
|
|
29
29
|
| Adapter | `mimetic.adapter.v1` | `synthetic-cli-adapter` |
|
|
30
|
+
| Lab | `mimetic.lab.v1` | `first-run` |
|
|
30
31
|
| Persona | `mimetic.persona.v1` | `synthetic-maintainer` |
|
|
31
32
|
| Scenario | `mimetic.scenario.v1` | `first-run-smoke` |
|
|
32
33
|
| Actor | `mimetic.actor.v1` | `synthetic-dry-run-actor` |
|
|
@@ -37,6 +38,26 @@ workflow without leaking private upstream truth into core.
|
|
|
37
38
|
| Policy | `mimetic.policy.v1` | `public-safety-policy` |
|
|
38
39
|
| Feedback | `mimetic.feedback.v1` | `public-safe-feedback` |
|
|
39
40
|
|
|
41
|
+
## Lab Manifest
|
|
42
|
+
|
|
43
|
+
Lab manifests name reusable runs. They are human-authored `.yaml` source under
|
|
44
|
+
`mimetic/labs/*.yaml` for committed public-safe labs, or ignored
|
|
45
|
+
`.mimetic/labs/*.yaml` / `.mimetic/local/labs/*.yaml` for private local
|
|
46
|
+
dogfood.
|
|
47
|
+
|
|
48
|
+
Synthetic fixture:
|
|
49
|
+
|
|
50
|
+
```yaml
|
|
51
|
+
schema: mimetic.lab.v1
|
|
52
|
+
id: first-run
|
|
53
|
+
kind: synthetic
|
|
54
|
+
title: First-run synthetic Observer
|
|
55
|
+
sims: 4
|
|
56
|
+
defaults:
|
|
57
|
+
dryRun: true
|
|
58
|
+
open: true
|
|
59
|
+
```
|
|
60
|
+
|
|
40
61
|
## Run Bundle
|
|
41
62
|
|
|
42
63
|
Run bundles are the canonical evidence record. Observer data, review Markdown,
|