You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 019cf97
Browse filesBrowse the repository at this point in the historyBrowse files
Say what the field-test harness establishes, and what it does not (#193)
The harness is structural regression coverage for the install prompt: a green run
means the prompt still survives pressures that once broke it. The personas are
synthetic, written from our own analysis rather than from any platform's policy
text, so a green run is not evidence that a live platform accepts the prompt and
must not be reported as though it were. A hosted product is
(prompt x model x runtime x UI) and this reproduces one of the four.
That scope was stated in `field-test/README.md` and missing from the two documents
that tell a contributor to rely on the gate. It now appears in all three, in the
same terms.
Also drops the pointer to a private evaluation repository, which is not being
created. High-fidelity evaluation against real policy text would need one; nobody
has a standing need for it, and an unbuilt plan referenced in shipped docs reads
as a commitment.
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
It runs a real AI agent through the full install in a throwaway fixture against a mocked API and scores the outcome. Read each round's `report.md` (the HESITATIONS / DECISION ANALYSIS sections) — anything an agent pauses on is a future refusal. See [`field-test/README.md`](field-test/README.md) for the improve-and-retest loop, the safety model, and what to do when the gate is red for environmental reasons (stale published docs, release freshness).
34
34
35
+
What it establishes is **structural regression coverage**: the prompt still survives pressures that once broke it. The personas are synthetic — written from our own analysis, not from any platform's policy text — so a green run is not evidence that a live platform accepts the prompt, and should not be reported as though it were.
36
+
35
37
Caveat: the fixture installs the **published** package, so an unpublished `guide`/CLI change can't be exercised end-to-end — publish first, or accept that the run validates only the prompt shape.
36
38
37
39
## Don'ts (these are refusal triggers, not style nits)
Copy file name to clipboardExpand all lines: field-test/README.md
+17-10Lines changed: 17 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,22 +4,29 @@ Runs a real AI coding agent against the [README install prompt](../README.md#ins
4
4
5
5
Dev-only: nothing in this directory ships in the npm package.
6
6
7
-
## The personas are synthetic
7
+
## What this harness is, and what it is not
8
8
9
-
Each persona reproduces the *pressures* that a class of platform applies to a request like this one —
9
+
It is **structural regression coverage** for the install prompt. It does not establish that any real
10
+
platform will accept the prompt, and no result from it should be reported as though it did.
11
+
12
+
Each persona reproduces the *pressures* a class of platform applies to a request like this one — a
10
13
non-technical user, supply-chain caution, a runtime that stages commands rather than running them — written
11
-
from our own analysis of observed behaviour.
14
+
from our own analysis of observed behaviour. They are not the platforms' system prompts and not paraphrases
15
+
of them: third-party prompts are not ours to publish, whatever the tarball excludes.
16
+
17
+
That trade is worth stating plainly rather than working around. A synthetic persona is weaker evidence than
18
+
the policy a product actually runs, so a green run means the prompt still survives the SHAPE of a pressure
19
+
that once broke it. It is a regression check, and its value is that the pressures encoded here are ones
20
+
that produced real refusals — every clause in the prompt exists because a run like this failed without it.
12
21
13
-
They are not the platforms' system prompts and not paraphrases of them: third-party prompts are not ours to
14
-
publish, whatever the tarball excludes. That is a real trade. A synthetic persona is weaker evidence than
15
-
the policy a product actually runs, so what this harness proves is that the prompt survives the SHAPE of
16
-
the pressure. Higher-fidelity evaluation, and the detailed record of which refusals came from where,
17
-
belong in a private evaluation repository.
22
+
What it cannot tell you is whether a live platform's current policy accepts the prompt. A hosted product is
23
+
(prompt × model × runtime × UI), and this reproduces one of the four. Treat a refusal reported from the
24
+
field as new coverage to add, not as a failure of this harness to have predicted it.
18
25
19
26
`{{FIXTURE_DIR}}` and `{{INSTALL_PROMPT}}` are the only contract a persona has to satisfy; a new one is a
20
27
markdown file using both.
21
28
22
-
Provenance — that a policy is synthetic, why, and what the harness is proving — goes in a
29
+
Provenance — that a policy is synthetic, why, and what the persona is exercising — goes in a
23
30
`<!-- field-test:meta ... -->` block. The runner strips those blocks before the prompt reaches the agent,
24
31
and `runAgent` REFUSES to write a prompt still containing one. The refusal sits at the seam —
25
32
`child.stdin.write` — rather than in the runner, so it covers every call site including ones not written
@@ -224,5 +231,5 @@ Until a publish lands and ages, use this ladder instead of burning hostile round
224
231
225
232
## Known limitations
226
233
227
-
- The personas are synthetic and the matrix covers multiple model families, but a hosted platform is still (prompt × model × runtime × UI) — and neither the real policy text, the runtime, nor the UI layer is reproduced here. A green harness is necessary and not sufficient: a refusal has been found by a real user after this harness passed a prompt. Treat a real-world refusal report as a new persona — encode the pressure it applied into `personas/`, in your own words, so the regression stays covered.
234
+
- The personas are synthetic and the matrix covers multiple model families, but a hosted platform is still (prompt × model × runtime × UI) — and neither the real policy text, the runtime, nor the UI layer is reproduced here. A green harness is necessary and not sufficient, and this is not hypothetical: a refusal has been found by a real user after this harness passed a prompt. Treat a real-world refusal report as a new persona — encode the pressure it applied into `personas/`, in your own words, so the regression stays covered. Do not describe a green run as evidence about a platform's policy.
228
235
- The fixture installs the *published* package. An unpublished `guide`/CLI change can't be exercised end-to-end by the agent (it will install the registry version); publish first or accept that the run validates the prompt shape only.
0 commit comments