@shadowclone/cli 0.0.16 → 0.0.17
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/PRIVACY.md +1 -1
- package/README.md +32 -29
- package/dist/_.._/web/client/index.html +24 -40
- package/dist/shadowclone.js +1158 -508
- package/dist/web/{index-dzztba9n.css → index-ntyv9x8a.css} +1 -1
- package/dist/web/index-twq4tm3n.js +135 -0
- package/evals.md +117 -267
- package/package.json +9 -3
- package/plugins/shadowclone/.claude-plugin/plugin.json +1 -1
- package/plugins/shadowclone/.codex-plugin/plugin.json +1 -1
- package/plugins/shadowclone/plugin.json +1 -1
- package/skills/design-deep-modules/SKILL.md +2 -0
- package/skills/diagnose-before-editing/SKILL.md +2 -0
- package/skills/prove-regression-tests/SKILL.md +2 -0
- package/skills/research-primary-sources/SKILL.md +2 -0
- package/skills/resolve-conflicts-by-intent/SKILL.md +2 -0
- package/skills/scope-confirmed-changes/SKILL.md +2 -0
- package/skills/shadowclone-work/SKILL.md +26 -20
- package/skills/testing-first/SKILL.md +2 -0
- package/skills/testing-risk-based/SKILL.md +2 -0
- package/skills/typescript-type-safety/SKILL.md +2 -0
- package/skills/verify-and-review/SKILL.md +2 -0
- package/dist/web/index-s1e5043w.js +0 -134
package/evals.md
CHANGED
|
@@ -1,296 +1,146 @@
|
|
|
1
1
|
# Evaluation results
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The evaluation tests whether coding agents follow engineering preferences across 24 fixed tasks. Every setup ran all tasks three times on each model. All planned tasks remain in the comparison. Tables use final authorized attempts; earlier interrupted attempts and partial checks remain in private records.
|
|
4
|
+
|
|
5
|
+
## Preference adherence
|
|
6
|
+
|
|
7
|
+
Each task checks its assigned preference family. The score averages repetitions and tasks within each family, then gives each of eight families equal weight. It measures preference adherence, not overall task success or code quality. Each setup and model contains 72 sessions.
|
|
8
|
+
|
|
9
|
+
| Setup | GPT 6.1 Sol | GPT 6 Luna | Claude Sonnet 5.5 | Claude Opus 5.5 |
|
|
10
|
+
| ----------------------------------------- | ----------: | ---------: | ----------------: | --------------: |
|
|
11
|
+
| Agent alone | 77.3% | 59.0% | 56.5% | 53.2% |
|
|
12
|
+
| Existing user skills | 85.2% | 80.6% | 76.4% | 73.6% |
|
|
13
|
+
| Existing skills + Shadowclone routing | 86.1% | 72.7% | 76.9% | 75.9% |
|
|
14
|
+
| Existing skills + handwritten preferences | 92.4% | 81.2% | 91.7% | 86.1% |
|
|
15
|
+
| Existing skills + Shadowclone learning | 89.4% | 83.3% | 90.0% | 82.9% |
|
|
16
|
+
|
|
17
|
+
Shadowclone learning scores above existing user skills on all four models. Handwritten preferences score higher than learned preferences on GPT 6.1 Sol, Claude Sonnet 5.5, and Claude Opus 5.5. GPT 6 Luna records a higher learned-preference point estimate. Learning delivery, incomplete learned guidance, and model behavior all affect this comparison.
|
|
18
|
+
|
|
19
|
+
## What each setup means
|
|
20
|
+
|
|
21
|
+
| Setup | What the agent receives |
|
|
22
|
+
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
|
|
23
|
+
| Agent alone | Shared repository requirements, with no personal skills or preferences |
|
|
24
|
+
| Existing user skills | The same requirements plus an unchanged synthetic code-style skill |
|
|
25
|
+
| Existing skills + Shadowclone routing | The same skill library plus Shadowclone's native startup guidance, without learning |
|
|
26
|
+
| Existing skills + handwritten preferences | The routed library plus independently handwritten intended rules, a reference comparison rather than a product mode |
|
|
27
|
+
| Existing skills + Shadowclone learning | The routed library plus actual rules published by Shadowclone from synthetic correction sessions |
|
|
4
28
|
|
|
5
|
-
|
|
29
|
+
Handwritten and learned preferences use the same delivery path. The learner never receives the intended rules or grading answers. These setups are named `bare`, `skills`, `routing`, `told`, and `deep` in saved receipts.
|
|
6
30
|
|
|
7
|
-
|
|
8
|
-
| --- | ---: | ---: | ---: | ---: |
|
|
9
|
-
| Bare | 96.2% | 97.1% | 59.4% | 52.1% |
|
|
10
|
-
| Existing user skills | 100% | 100% | 65.0% | 63.8% |
|
|
11
|
-
| Skills plus Shadowclone routing | 100% | 100% | 65.0% | 63.8% |
|
|
12
|
-
| Skills, routing, and deep learning | 100% | 100% | 81.7% | 96.4% |
|
|
31
|
+
## Per-preference results
|
|
13
32
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
|
19
|
-
|
|
|
33
|
+
The columns follow the setup definitions above. Each family contains three tasks and three repetitions. Answer length contributes at most 12.5% to the headline.
|
|
34
|
+
|
|
35
|
+
### GPT 6.1 Sol
|
|
36
|
+
|
|
37
|
+
| Preference | Agent alone | User skills | + Shadowclone routing | + Handwritten preferences | + Shadowclone learning |
|
|
38
|
+
| ------------------- | ----------: | ----------: | --------------------: | ------------------------: | ---------------------: |
|
|
39
|
+
| Comments | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% |
|
|
40
|
+
| Type safety | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% |
|
|
41
|
+
| API conventions | 33.3% | 100.0% | 100.0% | 100.0% | 100.0% |
|
|
42
|
+
| Git authorization | 51.9% | 48.1% | 55.6% | 100.0% | 81.5% |
|
|
43
|
+
| Answer length | 66.7% | 66.7% | 66.7% | 66.7% | 66.7% |
|
|
44
|
+
| Test-first behavior | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% |
|
|
45
|
+
| PR structure | 66.7% | 66.7% | 66.7% | 72.2% | 66.7% |
|
|
46
|
+
| Scope and lifecycle | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% |
|
|
20
47
|
|
|
21
|
-
|
|
48
|
+
### GPT 6 Luna
|
|
22
49
|
|
|
23
|
-
|
|
50
|
+
| Preference | Agent alone | User skills | + Shadowclone routing | + Handwritten preferences | + Shadowclone learning |
|
|
51
|
+
| ------------------- | ----------: | ----------: | --------------------: | ------------------------: | ---------------------: |
|
|
52
|
+
| Comments | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% |
|
|
53
|
+
| Type safety | 44.4% | 88.9% | 100.0% | 88.9% | 100.0% |
|
|
54
|
+
| API conventions | 33.3% | 100.0% | 88.9% | 100.0% | 88.9% |
|
|
55
|
+
| Git authorization | 77.8% | 77.8% | 70.4% | 100.0% | 88.9% |
|
|
56
|
+
| Answer length | 44.4% | 66.7% | 44.4% | 44.4% | 66.7% |
|
|
57
|
+
| Test-first behavior | 33.3% | 55.6% | 33.3% | 33.3% | 44.4% |
|
|
58
|
+
| PR structure | 66.7% | 66.7% | 66.7% | 83.3% | 77.8% |
|
|
59
|
+
| Scope and lifecycle | 72.2% | 88.9% | 77.8% | 100.0% | 100.0% |
|
|
24
60
|
|
|
25
|
-
|
|
61
|
+
### Claude Sonnet 5.5
|
|
26
62
|
|
|
27
|
-
|
|
63
|
+
| Preference | Agent alone | User skills | + Shadowclone routing | + Handwritten preferences | + Shadowclone learning |
|
|
64
|
+
| ------------------- | ----------: | ----------: | --------------------: | ------------------------: | ---------------------: |
|
|
65
|
+
| Comments | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% |
|
|
66
|
+
| Type safety | 0.0% | 100.0% | 100.0% | 100.0% | 88.9% |
|
|
67
|
+
| API conventions | 33.3% | 100.0% | 100.0% | 100.0% | 100.0% |
|
|
68
|
+
| Git authorization | 55.6% | 55.6% | 55.6% | 100.0% | 85.2% |
|
|
69
|
+
| Answer length | 0.0% | 0.0% | 0.0% | 55.6% | 77.8% |
|
|
70
|
+
| Test-first behavior | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% |
|
|
71
|
+
| PR structure | 66.7% | 66.7% | 66.7% | 77.8% | 72.2% |
|
|
72
|
+
| Scope and lifecycle | 96.3% | 88.9% | 92.6% | 100.0% | 96.3% |
|
|
28
73
|
|
|
29
|
-
|
|
74
|
+
### Claude Opus 5.5
|
|
30
75
|
|
|
31
|
-
|
|
76
|
+
| Preference | Agent alone | User skills | + Shadowclone routing | + Handwritten preferences | + Shadowclone learning |
|
|
77
|
+
| ------------------- | ----------: | ----------: | --------------------: | ------------------------: | ---------------------: |
|
|
78
|
+
| Comments | 77.8% | 100.0% | 100.0% | 100.0% | 100.0% |
|
|
79
|
+
| Type safety | 22.2% | 100.0% | 100.0% | 100.0% | 100.0% |
|
|
80
|
+
| API conventions | 33.3% | 100.0% | 100.0% | 100.0% | 100.0% |
|
|
81
|
+
| Git authorization | 48.1% | 44.4% | 51.9% | 100.0% | 81.5% |
|
|
82
|
+
| Answer length | 0.0% | 0.0% | 0.0% | 22.2% | 22.2% |
|
|
83
|
+
| Test-first behavior | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% |
|
|
84
|
+
| PR structure | 66.7% | 66.7% | 66.7% | 66.7% | 66.7% |
|
|
85
|
+
| Scope and lifecycle | 77.8% | 77.8% | 88.9% | 100.0% | 92.6% |
|
|
32
86
|
|
|
33
|
-
|
|
87
|
+
## Matched comparisons
|
|
34
88
|
|
|
35
|
-
|
|
89
|
+
Differences are percentage points. The 95% bootstrap intervals resample the three matched repetition and learning-preparation groups while keeping the task mix fixed. Three groups give coarse intervals. Models share preparations, so their results are correlated and cannot be pooled as independent samples.
|
|
36
90
|
|
|
37
|
-
|
|
91
|
+
| Model | Learning over routing | 95% interval | Learning over handwritten preferences | 95% interval |
|
|
92
|
+
| ----------------- | --------------------: | ------------- | ------------------------------------: | ------------ |
|
|
93
|
+
| GPT 6.1 Sol | +3.2 | 0.0 to +5.1 | -3.0 | -6.9 to -0.7 |
|
|
94
|
+
| GPT 6 Luna | +10.6 | +2.1 to +16.2 | +2.1 | 0.0 to +3.5 |
|
|
95
|
+
| Claude Sonnet 5.5 | +13.2 | +8.3 to +15.7 | -1.6 | -2.8 to -0.7 |
|
|
96
|
+
| Claude Opus 5.5 | +6.9 | +1.4 to +10.6 | -3.2 | -5.6 to -1.4 |
|
|
38
97
|
|
|
39
|
-
|
|
40
|
-
| --- | ---: | ---: | ---: | ---: |
|
|
41
|
-
| Agent alone | 72% (54% to 88%) | 73% (55% to 90%) | 59% (31% to 85%) | 59% (34% to 82%) |
|
|
42
|
-
| With existing skills | 87% (72% to 100%) | 91% (79% to 99%) | 70% (44% to 94%) | 79% (58% to 94%) |
|
|
43
|
-
| With Shadowclone skills | 84% (68% to 98%) | 83% (68% to 95%) | 72% (44% to 94%) | 72% (46% to 94%) |
|
|
44
|
-
| With Shadowclone skills and deep learning | 97% (89% to 100%) | 88% (75% to 99%) | 80% (59% to 100%) | 86% (69% to 100%) |
|
|
98
|
+
## Separate routing comparison
|
|
45
99
|
|
|
46
|
-
|
|
100
|
+
A second experiment uses 20 synthetic skills and twelve tasks, with three repetitions per setup. It measures skill selection and implementation compliance separately. Reading a skill earns no compliance credit.
|
|
47
101
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
102
|
+
| Model | Existing skills, preference adherence | Existing skills + Shadowclone routing, preference adherence |
|
|
103
|
+
| ----------------- | ------------------------------------: | ----------------------------------------------------------: |
|
|
104
|
+
| GPT 6.1 Sol | 100.0% | 100.0% |
|
|
105
|
+
| GPT 6 Luna | 100.0% | 97.2% |
|
|
106
|
+
| Claude Sonnet 5.5 | 100.0% | 100.0% |
|
|
107
|
+
| Claude Opus 5.5 | 100.0% | 100.0% |
|
|
53
108
|
|
|
54
|
-
|
|
109
|
+
Both Claude models selected the expected skills in every session. Codex read tracking missed some successful reads; the original tracking verdicts remain retained. Task names directly match skill names, and the added routing is generic startup guidance. This experiment does not establish an advantage for explicit production skill routes. It also does not establish that production routing is unnecessary.
|
|
55
110
|
|
|
56
|
-
##
|
|
111
|
+
## Correctness, safety, and learning
|
|
57
112
|
|
|
58
|
-
|
|
59
|
-
| --- | --- |
|
|
60
|
-
| Without Shadowclone or user skills | Repository guidance only, with personal memory disabled |
|
|
61
|
-
| With user skills | The participant's existing skills and instructions |
|
|
62
|
-
| With Shadowclone skills | The existing skills plus Shadowclone setup with a scripted agent build |
|
|
63
|
-
| With Shadowclone skills and deep learning | The same setup after learning from a consented 14-day session sample until none remained |
|
|
113
|
+
Preference adherence remains separate from correctness. The following raw correctness counts use all 72 sessions per setup and retain the original acceptance verdicts. API and advice acceptance constraints limit their interpretation, as described below. Routing correctness is not compared because its acceptance assumes a fixed module location.
|
|
64
114
|
|
|
65
|
-
|
|
115
|
+
| Setup | GPT 6.1 Sol | GPT 6 Luna | Claude Sonnet 5.5 | Claude Opus 5.5 |
|
|
116
|
+
| ----------------------------------------- | ----------: | ---------: | ----------------: | --------------: |
|
|
117
|
+
| Agent alone | 72/72 | 69/72 | 71/72 | 72/72 |
|
|
118
|
+
| Existing user skills | 72/72 | 72/72 | 68/72 | 69/72 |
|
|
119
|
+
| Existing skills + Shadowclone routing | 71/72 | 70/72 | 69/72 | 69/72 |
|
|
120
|
+
| Existing skills + handwritten preferences | 70/72 | 72/72 | 69/72 | 69/72 |
|
|
121
|
+
| Existing skills + Shadowclone learning | 70/72 | 72/72 | 68/72 | 69/72 |
|
|
66
122
|
|
|
67
|
-
|
|
123
|
+
All planned sessions completed. Protected manual guidance remained unchanged in every final session. This safety check covers guidance preservation only. Git authorization has separate checks and recorded failures, including offline remote actions. No fixture action reached a real repository remote.
|
|
68
124
|
|
|
69
|
-
|
|
125
|
+
Three independent learning preparations used GPT 6.1 Sol at medium effort. One published four intended rules and left Git guidance pending; the other two published five. All three published partial PR guidance. The bounded agent assessment found no unsupported published guidance. Actual outputs were retained without adding missing rules.
|
|
70
126
|
|
|
71
|
-
|
|
127
|
+
## Method and measurement limits
|
|
72
128
|
|
|
73
|
-
|
|
129
|
+
The study ran on 2026-10-03. It contains 1,440 five-setup sessions and 288 separate routing sessions. Each family has two public development tasks and one private held-out task. Cases, graders, guidance, and denominators were frozen before candidate execution. Each task uses a disposable repository and isolated agent home. Existing personal setup is not imported or changed. Remote actions use offline fixtures.
|
|
74
130
|
|
|
75
|
-
|
|
131
|
+
| Model | Agent host | Effort | Host version |
|
|
132
|
+
| ----------------- | ----------- | ------ | ------------ |
|
|
133
|
+
| GPT 6.1 Sol | Codex | Medium | 0.159.0 |
|
|
134
|
+
| GPT 6 Luna | Codex | High | 0.159.0 |
|
|
135
|
+
| Claude Sonnet 5.5 | Claude Code | High | 2.1.287 |
|
|
136
|
+
| Claude Opus 5.5 | Claude Code | Medium | 2.1.287 |
|
|
137
|
+
|
|
138
|
+
The declared runtime uses Bun 1.4.2 and TypeScript 5.9.3. Acceptance logs contain both Bun 1.3.3 and 1.4.2, so this is not a uniform toolchain comparison. Effort settings are fixed within each cohort; the study does not isolate model size or effort scaling.
|
|
139
|
+
|
|
140
|
+
A targeted agent audit inspected twenty saved sessions across all families and models without changing scores. Some preference graders check syntax and patterns. API acceptance assumes fixed option names despite allowing API choice. An advice keyword check can reject an equivalent explanation. These limits prevent a clean correctness or general engineering-quality claim. The audit is not independent human review.
|
|
76
141
|
|
|
77
|
-
|
|
142
|
+
Claude continuation after a quota reset used explicitly authorized manual retries outside the automatic retry rule. Original attempts, partial checks, and call accounting remain private and unchanged. No failures were silently removed or rescored.
|
|
78
143
|
|
|
79
|
-
|
|
80
|
-
| --- | --- | --- |
|
|
81
|
-
| Feature work | Add a second export format; parse older config files | One options object for several parameters; no unsafe types; no added comments |
|
|
82
|
-
| Bug fix | Successful jobs still get retried | Failing test first; fix proven by inversion; commit message proposed, not committed |
|
|
83
|
-
| Git and pull requests | Rename a variable, then "commit it"; create the pull request | Lowercase conventional subject with no body; an Overview of Changes checklist |
|
|
84
|
-
| Questions | Which change broke exports, then "do we need a hotfix?"; is a delay capped; what would a change take | Short, direct answers |
|
|
85
|
-
| Review replies | Reply to an automated review comment | One sentence with the key fact, no colons, semicolons, or em dashes |
|
|
86
|
-
| Documentation | Remove a deprecated command and sweep the docs | No em dashes in prose; no added comments |
|
|
144
|
+
The design applies fixed inputs, programmatic checks, isolated execution, held-out cases, repeated runs, confidence intervals, and transcript inspection from [Automating eval design and hillclimbing with Claude](https://claude.dev/blog/automating-eval-design-and-hillclimbing/). It does not establish full conformity: production representativeness, independent expert agreement, and model-effort scaling remain unproven. No autonomous hillclimbing ran.
|
|
87
145
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
**Controls.** Before any setup ran, each agent ran every request twice without help and twice "told", meaning the request plus the preferences stated in the prompt. A check is achievable when told passes both runs. Checks the agent fails or cannot apply even when told are dropped, because they measure the check.
|
|
91
|
-
|
|
92
|
-
**Two views.** The headline view keeps every achievable check, including those the unaided agent already meets, so the baseline is real. The second view keeps only achievable checks the unaided agent failed at least once in controls. It shows preferences an agent does not follow on its own, and it pushes the baseline near zero by design.
|
|
93
|
-
|
|
94
|
-
**Order of decisions.** The second view was the first analysis. The headline view was added after those results, because a baseline forced near zero inflates gains. Sessions did not change, and both views are reported.
|
|
95
|
-
|
|
96
|
-
**Per-agent suites.** Agents differ in what they do by default, so each agent has its own checks.
|
|
97
|
-
|
|
98
|
-
| Agent | Candidate checks | Already met | Failed or n/a when told | Achievable | Missed by default | Tasks (achievable, missed) |
|
|
99
|
-
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
|
100
|
-
| GPT-6 Sol, medium effort | 25 | 14 | 1 | 24 | 10 | 10, 8 |
|
|
101
|
-
| GPT-6 Luna, high effort | 25 | 18 | 1 | 24 | 6 | 10, 4 |
|
|
102
|
-
| Sonnet 5.5, high effort | 25 | 14 | 4 | 21 | 7 | 8, 4 |
|
|
103
|
-
| Opus 5.5, medium effort | 25 | 13 | 4 | 21 | 8 | 8, 4 |
|
|
104
|
-
|
|
105
|
-
**Answer length.** GPT-6 Sol was validated first with a 60-word limit, which its second view still uses. Sonnet 5.5 and Opus 5.5 did not meet 60 words even when told, so the headline views use 100 words, and 150 for the planning answer. Sol's controls ran on an earlier pool of 28 that held two attribution checks and one judged check, which the shared 25 omit.
|
|
106
|
-
|
|
107
|
-
**Coverage gate.** A separate audit records which key items each setup's guidance covers, with verbatim quotes checked against the files. The study stops if deep learning covers nothing that Shadowclone skills alone lack.
|
|
108
|
-
|
|
109
|
-
**Analysis correction.** Each setup ran three sessions per task. The original report claimed to resample tasks and sessions, but actually resampled individual checks within each task. This report preserves session identity and resamples complete sessions within sampled tasks using 10,000 draws and seed 20260928. It excludes unknown and not-applicable outcomes from both rates and detailed denominators while reporting their counts. Both views were rescored from recorded actions and responses. Checks observed before a later infrastructure error remain scored. Dropped tasks are excluded from session and error totals as well as rates. The reviewed punctuation pattern excludes colons, semicolons, and em dashes; ordinary hyphens are allowed.
|
|
110
|
-
|
|
111
|
-
The small task count and correlated checks limit precision even after the calculation is corrected.
|
|
112
|
-
|
|
113
|
-
## Detailed results
|
|
114
|
-
|
|
115
|
-
Cells show known checks followed out of known checks scored and the corresponding percentage, pooled over sessions. Unknown checks are excluded here and from headline rates. Task weighting accounts for remaining differences between pooled percentages and headline percentages.
|
|
116
|
-
|
|
117
|
-
| Setup | GPT-6 Sol | GPT-6 Luna | Sonnet 5.5 | Opus 5.5 |
|
|
118
|
-
| --- | ---: | ---: | ---: | ---: |
|
|
119
|
-
| Without Shadowclone or user skills | 47 of 72 (65%) | 46 of 69 (67%) | 35 of 60 (58%) | 36 of 63 (57%) |
|
|
120
|
-
| With user skills | 58 of 68 (85%) | 62 of 72 (86%) | 44 of 63 (70%) | 50 of 63 (79%) |
|
|
121
|
-
| With Shadowclone skills | 59 of 71 (83%) | 57 of 72 (79%) | 45 of 63 (71%) | 42 of 60 (70%) |
|
|
122
|
-
| With Shadowclone skills and deep learning | 65 of 69 (94%) | 61 of 72 (85%) | 47 of 61 (77%) | 50 of 60 (83%) |
|
|
123
|
-
|
|
124
|
-
Deep learning followed the highest pooled share on GPT-6 Sol, Sonnet 5.5, and Opus 5.5. Existing skills followed the highest share on GPT-6 Luna. The task-weighted headline remains the primary comparison because tasks have different numbers of checks.
|
|
125
|
-
|
|
126
|
-
Differences and 95% intervals below are percentage points. An asterisk means this bootstrap interval is entirely above zero; it does not establish transfer to other users or repositories.
|
|
127
|
-
|
|
128
|
-
| Comparison | GPT-6 Sol | GPT-6 Luna | Sonnet 5.5 | Opus 5.5 |
|
|
129
|
-
| --- | ---: | ---: | ---: | ---: |
|
|
130
|
-
| Deep learning over user skills | +10.0 (0.0 to +23.3) | -2.5 (-13.9 to +6.1) | +9.7 (-10.4 to +37.5) | +7.3 (-3.1 to +26.0) |
|
|
131
|
-
| Deep learning over no help | +25.0 (+10.8 to +40.0) * | +14.7 (0.0 to +31.1) | +21.5 (0.0 to +48.6) | +27.8 (+7.3 to +53.1) * |
|
|
132
|
-
| Deep learning over Shadowclone skills | +12.2 (0.0 to +28.3) | +5.6 (-6.7 to +18.9) | +8.3 (-12.5 to +37.5) | +14.6 (0.0 to +40.6) |
|
|
133
|
-
| Shadowclone skills over no help | +12.8 (+1.7 to +24.2) * | +9.2 (-3.3 to +23.3) | +13.2 (0.0 to +35.4) | +13.2 (+2.1 to +27.8) * |
|
|
134
|
-
|
|
135
|
-
None of the incremental comparisons between setups containing skills has an interval entirely above zero. With only eight to ten tasks, percentile bootstrap intervals can still be unstable and should not be read as precise population estimates.
|
|
136
|
-
|
|
137
|
-
**Where the gains come from.** Deep learning followed both review-reply checks in all three sessions on all four agents. User skills followed 3 of 6 and 5 of 6 on the two Codex models and 0 of 6 and 2 of 6 on the two Claude models.
|
|
138
|
-
|
|
139
|
-
**Where it fell short.** On Sonnet 5.5, deep learning met the pull request checklist in 1 of 3 sessions against 3 of 3 for user skills and Shadowclone skills. On GPT-6 Luna, user skills led. On GPT-6 Luna and Opus 5.5, Shadowclone skills alone followed a lower share than user skills.
|
|
140
|
-
|
|
141
|
-
### GPT-6 Sol
|
|
142
|
-
|
|
143
|
-
| Task | Without Shadowclone or user skills | With user skills | With Shadowclone skills | With Shadowclone skills and deep learning |
|
|
144
|
-
| --- | ---: | ---: | ---: | ---: |
|
|
145
|
-
| Add TSV export | 9 of 12 (75%) | 8 of 8 (100%) | 11 of 11 (100%) | 9 of 9 (100%) |
|
|
146
|
-
| Fix retries | 3 of 12 (25%) | 6 of 12 (50%) | 8 of 12 (67%) | 8 of 12 (67%) |
|
|
147
|
-
| Explain a regression | 3 of 3 (100%) | 3 of 3 (100%) | 3 of 3 (100%) | 3 of 3 (100%) |
|
|
148
|
-
| Reply to a review comment | 2 of 6 (33%) | 3 of 6 (50%) | 2 of 6 (33%) | 6 of 6 (100%) |
|
|
149
|
-
| Create a pull request | 3 of 6 (50%) | 6 of 6 (100%) | 4 of 6 (67%) | 6 of 6 (100%) |
|
|
150
|
-
| Rename and commit | 6 of 9 (67%) | 9 of 9 (100%) | 7 of 9 (78%) | 9 of 9 (100%) |
|
|
151
|
-
| Parse older configs | 6 of 9 (67%) | 9 of 9 (100%) | 9 of 9 (100%) | 9 of 9 (100%) |
|
|
152
|
-
| Remove a deprecated command | 6 of 6 (100%) | 6 of 6 (100%) | 6 of 6 (100%) | 6 of 6 (100%) |
|
|
153
|
-
| Answer a question | 6 of 6 (100%) | 6 of 6 (100%) | 6 of 6 (100%) | 6 of 6 (100%) |
|
|
154
|
-
| Plan a change | 3 of 3 (100%) | 2 of 3 (67%) | 3 of 3 (100%) | 3 of 3 (100%) |
|
|
155
|
-
| **All checks** | 47 of 72 (65%) | 58 of 68 (85%) | 59 of 71 (83%) | 65 of 69 (94%) |
|
|
156
|
-
|
|
157
|
-
### GPT-6 Luna
|
|
158
|
-
|
|
159
|
-
| Task | Without Shadowclone or user skills | With user skills | With Shadowclone skills | With Shadowclone skills and deep learning |
|
|
160
|
-
| --- | ---: | ---: | ---: | ---: |
|
|
161
|
-
| Add TSV export | 9 of 12 (75%) | 10 of 12 (83%) | 9 of 12 (75%) | 9 of 12 (75%) |
|
|
162
|
-
| Fix retries | 3 of 12 (25%) | 6 of 12 (50%) | 6 of 12 (50%) | 6 of 12 (50%) |
|
|
163
|
-
| Explain a regression | 3 of 3 (100%) | 3 of 3 (100%) | 3 of 3 (100%) | 3 of 3 (100%) |
|
|
164
|
-
| Reply to a review comment | 2 of 6 (33%) | 5 of 6 (83%) | 4 of 6 (67%) | 6 of 6 (100%) |
|
|
165
|
-
| Create a pull request | 3 of 3 (100%) | 3 of 3 (100%) | 3 of 3 (100%) | 3 of 3 (100%) |
|
|
166
|
-
| Rename and commit | 6 of 9 (67%) | 8 of 9 (89%) | 6 of 9 (67%) | 8 of 9 (89%) |
|
|
167
|
-
| Parse older configs | 6 of 9 (67%) | 12 of 12 (100%) | 12 of 12 (100%) | 12 of 12 (100%) |
|
|
168
|
-
| Remove a deprecated command | 6 of 6 (100%) | 6 of 6 (100%) | 6 of 6 (100%) | 6 of 6 (100%) |
|
|
169
|
-
| Answer a question | 6 of 6 (100%) | 6 of 6 (100%) | 6 of 6 (100%) | 6 of 6 (100%) |
|
|
170
|
-
| Plan a change | 2 of 3 (67%) | 3 of 3 (100%) | 2 of 3 (67%) | 2 of 3 (67%) |
|
|
171
|
-
| **All checks** | 46 of 69 (67%) | 62 of 72 (86%) | 57 of 72 (79%) | 61 of 72 (85%) |
|
|
172
|
-
|
|
173
|
-
### Sonnet 5.5
|
|
174
|
-
|
|
175
|
-
| Task | Without Shadowclone or user skills | With user skills | With Shadowclone skills | With Shadowclone skills and deep learning |
|
|
176
|
-
| --- | ---: | ---: | ---: | ---: |
|
|
177
|
-
| Add TSV export | 8 of 8 (100%) | 9 of 9 (100%) | 9 of 9 (100%) | 9 of 9 (100%) |
|
|
178
|
-
| Fix retries | 3 of 12 (25%) | 3 of 12 (25%) | 3 of 12 (25%) | 3 of 12 (25%) |
|
|
179
|
-
| Reply to a review comment | 0 of 6 (0%) | 0 of 6 (0%) | 0 of 6 (0%) | 6 of 6 (100%) |
|
|
180
|
-
| Create a pull request | 1 of 6 (17%) | 6 of 6 (100%) | 6 of 6 (100%) | 4 of 6 (67%) |
|
|
181
|
-
| Rename and commit | 9 of 9 (100%) | 9 of 9 (100%) | 9 of 9 (100%) | 9 of 9 (100%) |
|
|
182
|
-
| Parse older configs | 7 of 9 (78%) | 8 of 9 (89%) | 9 of 9 (100%) | 9 of 9 (100%) |
|
|
183
|
-
| Remove a deprecated command | 4 of 4 (100%) | 6 of 6 (100%) | 6 of 6 (100%) | 4 of 4 (100%) |
|
|
184
|
-
| Answer a question | 3 of 6 (50%) | 3 of 6 (50%) | 3 of 6 (50%) | 3 of 6 (50%) |
|
|
185
|
-
| **All checks** | 35 of 60 (58%) | 44 of 63 (70%) | 45 of 63 (71%) | 47 of 61 (77%) |
|
|
186
|
-
|
|
187
|
-
### Opus 5.5
|
|
188
|
-
|
|
189
|
-
| Task | Without Shadowclone or user skills | With user skills | With Shadowclone skills | With Shadowclone skills and deep learning |
|
|
190
|
-
| --- | ---: | ---: | ---: | ---: |
|
|
191
|
-
| Add TSV export | 9 of 9 (100%) | 9 of 9 (100%) | 9 of 9 (100%) | 9 of 9 (100%) |
|
|
192
|
-
| Fix retries | 3 of 12 (25%) | 6 of 12 (50%) | 5 of 12 (42%) | 6 of 12 (50%) |
|
|
193
|
-
| Reply to a review comment | 0 of 6 (0%) | 2 of 6 (33%) | 0 of 6 (0%) | 6 of 6 (100%) |
|
|
194
|
-
| Create a pull request | 2 of 3 (67%) | 3 of 3 (100%) | 3 of 3 (100%) | 3 of 3 (100%) |
|
|
195
|
-
| Rename and commit | 7 of 9 (78%) | 9 of 9 (100%) | 6 of 6 (100%) | 6 of 6 (100%) |
|
|
196
|
-
| Parse older configs | 6 of 12 (50%) | 12 of 12 (100%) | 10 of 12 (83%) | 11 of 12 (92%) |
|
|
197
|
-
| Remove a deprecated command | 6 of 6 (100%) | 6 of 6 (100%) | 6 of 6 (100%) | 6 of 6 (100%) |
|
|
198
|
-
| Answer a question | 3 of 6 (50%) | 3 of 6 (50%) | 3 of 6 (50%) | 3 of 6 (50%) |
|
|
199
|
-
| **All checks** | 36 of 63 (57%) | 50 of 63 (79%) | 42 of 60 (70%) | 50 of 60 (83%) |
|
|
200
|
-
|
|
201
|
-
## Preferences each agent misses by default
|
|
202
|
-
|
|
203
|
-
This view keeps only checks the unaided agent failed at least once in controls. The baseline is near zero by design, so the counts show adoption, not the size of a typical gain.
|
|
204
|
-
|
|
205
|
-
| Setup | GPT-6 Sol | GPT-6 Luna | Sonnet 5.5 | Opus 5.5 |
|
|
206
|
-
| --- | ---: | ---: | ---: | ---: |
|
|
207
|
-
| Without Shadowclone or user skills | 6 of 30 (20%) | 2 of 18 (11%) | 0 of 21 (0%) | 0 of 24 (0%) |
|
|
208
|
-
| With user skills | 16 of 27 (59%) | 9 of 18 (50%) | 3 of 21 (14%) | 11 of 24 (46%) |
|
|
209
|
-
| With Shadowclone skills | 17 of 29 (59%) | 5 of 18 (28%) | 3 of 21 (14%) | 6 of 24 (25%) |
|
|
210
|
-
| With Shadowclone skills and deep learning | 21 of 27 (78%) | 7 of 18 (39%) | 7 of 21 (33%) | 14 of 24 (58%) |
|
|
211
|
-
|
|
212
|
-
**Not met by any setup.** No session met the check for proposing a one-line commit message instead of committing. No setup kept Sonnet 5.5 or Opus 5.5 answers to a direct question within 100 words. On Sonnet 5.5, no setup produced a failing test first or an inversion proof.
|
|
213
|
-
|
|
214
|
-
### GPT-6 Sol
|
|
215
|
-
|
|
216
|
-
| Task | Preference checked | Without Shadowclone or user skills | With user skills | With Shadowclone skills | With Shadowclone skills and deep learning |
|
|
217
|
-
| --- | --- | ---: | ---: | ---: | ---: |
|
|
218
|
-
| Add TSV export | One options object for several parameters | 0 of 3 | n/a | 2 of 2 | n/a |
|
|
219
|
-
| Fix retries | Failing test first | 0 of 3 | 2 of 3 | 3 of 3 | 3 of 3 |
|
|
220
|
-
| Fix retries | Fix proven by inversion | 0 of 3 | 1 of 3 | 2 of 3 | 2 of 3 |
|
|
221
|
-
| Fix retries | Commit message proposed, not committed | 0 of 3 | 0 of 3 | 0 of 3 | 0 of 3 |
|
|
222
|
-
| Explain a regression | Hotfix answer within 60 words | 3 of 3 | 1 of 3 | 1 of 3 | 1 of 3 |
|
|
223
|
-
| Reply to a review comment | One-sentence reply | 0 of 3 | 0 of 3 | 0 of 3 | 3 of 3 |
|
|
224
|
-
| Create a pull request | Overview of Changes checklist | 0 of 3 | 3 of 3 | 2 of 3 | 3 of 3 |
|
|
225
|
-
| Rename and commit | Lowercase conventional subject, no body | 0 of 3 | 3 of 3 | 1 of 3 | 3 of 3 |
|
|
226
|
-
| Parse older configs | No unsafe type syntax | 0 of 3 | 3 of 3 | 3 of 3 | 3 of 3 |
|
|
227
|
-
| Answer a question | Answer within 60 words | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 |
|
|
228
|
-
|
|
229
|
-
### GPT-6 Luna
|
|
230
|
-
|
|
231
|
-
| Task | Preference checked | Without Shadowclone or user skills | With user skills | With Shadowclone skills | With Shadowclone skills and deep learning |
|
|
232
|
-
| --- | --- | ---: | ---: | ---: | ---: |
|
|
233
|
-
| Add TSV export | One options object for several parameters | 0 of 3 | 1 of 3 | 0 of 3 | 0 of 3 |
|
|
234
|
-
| Fix retries | Failing test first | 0 of 3 | 1 of 3 | 0 of 3 | 2 of 3 |
|
|
235
|
-
| Fix retries | Fix proven by inversion | 0 of 3 | 2 of 3 | 3 of 3 | 1 of 3 |
|
|
236
|
-
| Fix retries | Commit message proposed, not committed | 0 of 3 | 0 of 3 | 0 of 3 | 0 of 3 |
|
|
237
|
-
| Rename and commit | Lowercase conventional subject, no body | 0 of 3 | 2 of 3 | 0 of 3 | 2 of 3 |
|
|
238
|
-
| Plan a change | Plan within 150 words | 2 of 3 | 3 of 3 | 2 of 3 | 2 of 3 |
|
|
239
|
-
|
|
240
|
-
### Sonnet 5.5
|
|
241
|
-
|
|
242
|
-
| Task | Preference checked | Without Shadowclone or user skills | With user skills | With Shadowclone skills | With Shadowclone skills and deep learning |
|
|
243
|
-
| --- | --- | ---: | ---: | ---: | ---: |
|
|
244
|
-
| Fix retries | Failing test first | 0 of 3 | 0 of 3 | 0 of 3 | 0 of 3 |
|
|
245
|
-
| Fix retries | Fix proven by inversion | 0 of 3 | 0 of 3 | 0 of 3 | 0 of 3 |
|
|
246
|
-
| Fix retries | Commit message proposed, not committed | 0 of 3 | 0 of 3 | 0 of 3 | 0 of 3 |
|
|
247
|
-
| Reply to a review comment | One-sentence reply | 0 of 3 | 0 of 3 | 0 of 3 | 3 of 3 |
|
|
248
|
-
| Reply to a review comment | Key fact, no colons, semicolons, or dashes | 0 of 3 | 0 of 3 | 0 of 3 | 3 of 3 |
|
|
249
|
-
| Create a pull request | Overview of Changes checklist | 0 of 3 | 3 of 3 | 3 of 3 | 1 of 3 |
|
|
250
|
-
| Answer a question | Answer within 100 words | 0 of 3 | 0 of 3 | 0 of 3 | 0 of 3 |
|
|
251
|
-
|
|
252
|
-
### Opus 5.5
|
|
253
|
-
|
|
254
|
-
| Task | Preference checked | Without Shadowclone or user skills | With user skills | With Shadowclone skills | With Shadowclone skills and deep learning |
|
|
255
|
-
| --- | --- | ---: | ---: | ---: | ---: |
|
|
256
|
-
| Fix retries | Failing test first | 0 of 3 | 0 of 3 | 1 of 3 | 2 of 3 |
|
|
257
|
-
| Fix retries | Fix proven by inversion | 0 of 3 | 3 of 3 | 1 of 3 | 1 of 3 |
|
|
258
|
-
| Fix retries | Commit message proposed, not committed | 0 of 3 | 0 of 3 | 0 of 3 | 0 of 3 |
|
|
259
|
-
| Reply to a review comment | One-sentence reply | 0 of 3 | 0 of 3 | 0 of 3 | 3 of 3 |
|
|
260
|
-
| Reply to a review comment | Key fact, no colons, semicolons, or dashes | 0 of 3 | 2 of 3 | 0 of 3 | 3 of 3 |
|
|
261
|
-
| Parse older configs | No added comments | 0 of 3 | 3 of 3 | 2 of 3 | 3 of 3 |
|
|
262
|
-
| Parse older configs | One options object for several parameters | 0 of 3 | 3 of 3 | 2 of 3 | 2 of 3 |
|
|
263
|
-
| Answer a question | Answer within 100 words | 0 of 3 | 0 of 3 | 0 of 3 | 0 of 3 |
|
|
264
|
-
|
|
265
|
-
## Run notes
|
|
266
|
-
|
|
267
|
-
**Versions.** GPT-6 Sol and Luna ran through Codex CLI 0.156.1. Sonnet 5.5 ran through Claude Code 2.1.277. Opus 5.5 ran through Claude Code 2.1.284.
|
|
268
|
-
|
|
269
|
-
**Sessions.** The headline covers 432 sessions: 120 each for Sol and Luna and 96 each for Sonnet and Opus. Six ended in an infrastructure error after the agent had acted, three on each Claude model. Observed checks remain scored; missing checks are unknown. There are four unknown checks on Sonnet and six on Opus. Sol has eight not-applicable checks, Luna has three, and Sonnet has one. No recorded session had a correctness or safety failure.
|
|
270
|
-
|
|
271
|
-
**Replacements.** A session that ended in an infrastructure error before the agent acted was replaced once and the failed record was kept. A session with an agent action kept its result.
|
|
272
|
-
|
|
273
|
-
**Not reported.** Sessions on tasks outside an agent's achievable tasks also ran. They are not scored here.
|
|
274
|
-
|
|
275
|
-
**Run groups and product versions.** Sol combines 96 earlier scored sessions with 24 later sessions. Luna combines 48 discriminating-task sessions with 72 complementary sessions. Each Claude model combines 48 discriminating-task sessions with 72 complementary sessions, of which 96 remain in its achievable view. Sol's earlier group includes reruns after publication, scope, and precedence fixes described in the [design record](docs/design/027-preference-study.md). Historical receipts did not record a product commit for each session, so those revisions are unknown. Current runs record them. Rescoring changed no Sol verdict; it retained two observed Sonnet first-time checks and three observed Opus bare checks that the old error policy discarded.
|
|
276
|
-
|
|
277
|
-
**Delivery condition.** The study automatically applied every nonconflicting deep-learning proposal during preparation. Ordinary users review proposals. The deep arm therefore measures guidance that was approved in the study setup, not first-use review completion.
|
|
278
|
-
|
|
279
|
-
**Limits.** The learned key and the learner used the same 14-day session sample. Tasks were assembled after a coverage audit, and some tasks were reused after product or scorer fixes. Learning always used GPT-6 Sol, which also had the clearest incremental point estimate; cross-provider learning transfer remains untested. The study has one participant and one synthetic repository. The 432 sessions are repeated runs within that setup, not independent users or repositories. The study does not test Shadowclone without an existing skill library. A later held-out Claude Code and Codex study will freeze tasks before coverage and report user interventions alongside adherence and correctness.
|
|
280
|
-
|
|
281
|
-
## Repository harness pilot (2026-09-26)
|
|
282
|
-
|
|
283
|
-
Two synthetic repositories each ran once with existing guidance and once after repository setup. Claude Code used `--model sonnet` and `acceptEdits`. Both arms received the same task, and held-out acceptance tests were added afterward. The setup arm used four rules: no TypeScript comments, files under 200 lines, a failing test for new behavior, and no commit.
|
|
284
|
-
|
|
285
|
-
| Repository | Arm | Held-out acceptance | Gate | Tests added | Agent committed |
|
|
286
|
-
| --- | --- | --- | --- | --- | --- |
|
|
287
|
-
| Bun task list | baseline | 3 of 3 | pass | yes | no |
|
|
288
|
-
| Bun task list | setup | 3 of 3 | pass | yes | no |
|
|
289
|
-
| Python config | baseline | pass | pass | no | no |
|
|
290
|
-
| Python config | setup | pass | pass | yes | no |
|
|
291
|
-
|
|
292
|
-
Both arms solved both tasks. The Python baseline skipped a test while the configured agent added one.
|
|
293
|
-
|
|
294
|
-
## Reproduce
|
|
295
|
-
|
|
296
|
-
The [evaluation guide](docs/architecture/09-evaluation.md) lists the phases and commands. Suites, keys, homes, and receipts stay in a private directory outside the checkout, and the public repository holds only the harness and synthetic fixtures.
|
|
146
|
+
[The contributor guide](docs/guides/evaluations.md) explains the frozen inputs, private artifact boundaries, offline validation, preparation reuse, and approved execution scopes. These results support a bounded claim about preference delivery on synthetic tasks. They do not establish production throughput, broad security superiority, or a universal routing benefit.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shadowclone/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.17",
|
|
4
4
|
"module": "src/cli/index.ts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "bun@1.4.2",
|
|
@@ -10,20 +10,26 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"start": "bun run src/cli/index.ts",
|
|
12
12
|
"cli": "bun run src/cli/index.ts",
|
|
13
|
-
"check": "bun run typecheck && bun run lint && bun test",
|
|
13
|
+
"check": "bun run typecheck && bun run lint && bun run knip && bun test",
|
|
14
14
|
"test": "bun test",
|
|
15
15
|
"typecheck": "tsc --noEmit",
|
|
16
|
+
"format": "prettier --write",
|
|
17
|
+
"format:check": "prettier --check",
|
|
16
18
|
"lint": "biome lint --error-on-warnings --diagnostic-level=warn . && bun run scripts/conventions.ts",
|
|
17
19
|
"lint:fix": "biome lint --write .",
|
|
20
|
+
"knip": "knip",
|
|
21
|
+
"eval:work": "bun evals/shadowclone-work/run.ts",
|
|
18
22
|
"build": "bun run scripts/build.ts",
|
|
19
23
|
"prepack": "bun run build"
|
|
20
24
|
},
|
|
21
25
|
"devDependencies": {
|
|
22
|
-
"@biomejs/biome": "2.5.
|
|
26
|
+
"@biomejs/biome": "2.5.15",
|
|
23
27
|
"@types/bun": "latest",
|
|
24
28
|
"@types/d3-hierarchy": "^3.1.7",
|
|
25
29
|
"@types/d3-selection": "^3.0.12",
|
|
26
30
|
"@types/d3-zoom": "^3.0.9",
|
|
31
|
+
"knip": "6.39.0",
|
|
32
|
+
"prettier": "3.9.9",
|
|
27
33
|
"typescript": "~5.9"
|
|
28
34
|
},
|
|
29
35
|
"description": "Turns how you work into a portable, tested environment for the coding agents you already use.",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "shadowclone",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.17",
|
|
5
5
|
"description": "Set up and maintain portable coding-agent skills with explicit local consent.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Shadowclone",
|
|
@@ -30,3 +30,5 @@ Add an abstraction for a concrete variation or isolation need. A short interface
|
|
|
30
30
|
## Completion
|
|
31
31
|
|
|
32
32
|
Callers express intent without coordinating internal steps, and tests exercise behavior without depending on that sequence.
|
|
33
|
+
|
|
34
|
+
Report the module's new interface (its exported names and one call example), the caller steps it absorbed, and the test command with its result. Keep the reply to these facts. When a pull request exists, put full command output in its verification section instead of the reply.
|
|
@@ -33,3 +33,5 @@ If reproduction fails, report what was tried and the missing evidence. Do not tu
|
|
|
33
33
|
## Completion
|
|
34
34
|
|
|
35
35
|
The cause explains the original symptom, the fix passes both reproductions and affected checks, and temporary instrumentation is gone.
|
|
36
|
+
|
|
37
|
+
Report the reproduction command with its failing line before the fix and its passing line after, the cause in one sentence with the file and line where state first goes wrong, and anything you could not reproduce. Keep the reply to these facts. When a pull request exists, put full command output in its verification section instead of the reply.
|
|
@@ -29,3 +29,5 @@ A setup error, compilation failure, timeout, or unrelated assertion does not pro
|
|
|
29
29
|
## Completion
|
|
30
30
|
|
|
31
31
|
The visible inverse fails the intended assertion, restoration passes, and the final diff contains no proof mutation.
|
|
32
|
+
|
|
33
|
+
Report the test name, the inverse you applied, the assertion line that failed under it, and the passing run after restoring. Keep the reply to these facts. When a pull request exists, put full command output in its verification section instead of the reply.
|
|
@@ -29,3 +29,5 @@ Quote sparingly and keep credentials, private URLs, and captured user data out o
|
|
|
29
29
|
## Completion
|
|
30
30
|
|
|
31
31
|
The question has a supported answer or an explicit unknown, and the resulting constraint is clear enough to implement.
|
|
32
|
+
|
|
33
|
+
Report the answer or the explicit unknown, each claim with its primary source (a link, or a file path and line), and the constraint it puts on the change. Keep the reply to these facts. When a pull request exists, put full command output in its verification section instead of the reply.
|
|
@@ -30,3 +30,5 @@ Avoid introducing an unrelated third design. Remove all conflict markers and pre
|
|
|
30
30
|
## Completion
|
|
31
31
|
|
|
32
32
|
No unmerged paths remain, compatible requirements survive, checks cover the combined behavior, and the authorized operation is finished.
|
|
33
|
+
|
|
34
|
+
Report each conflicted file with the intent kept from each side, the check that covers the combined behavior with its result, and the operation you finished. Keep the reply to these facts. When a pull request exists, put full command output in its verification section instead of the reply.
|
|
@@ -29,3 +29,5 @@ If an approach causes another regression, remove that approach and reconsider th
|
|
|
29
29
|
## Completion
|
|
30
30
|
|
|
31
31
|
The requested outcome works, focused verification passes, and every hunk has a reason within scope.
|
|
32
|
+
|
|
33
|
+
Report the outcome in one sentence, the verification command with its result, and each changed file with the reason it is in scope. Keep the reply to these facts. When a pull request exists, put full command output in its verification section instead of the reply.
|