ralphctl 0.12.1 → 0.13.1
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/dist/cli.mjs +3572 -1828
- package/dist/manifest.json +1 -1
- package/dist/prompts/evaluate/template.md +33 -0
- package/dist/prompts/evaluate-continuation/template.md +10 -0
- package/dist/skills/ralphctl-minimal-scaffolding/SKILL.md +1 -1
- package/dist/skills/ralphctl-surgical-simplicity/SKILL.md +4 -2
- package/package.json +3 -2
package/dist/manifest.json
CHANGED
|
@@ -136,6 +136,39 @@ from the task description, (3) plan which shell commands to run first.
|
|
|
136
136
|
|
|
137
137
|
## Review protocol
|
|
138
138
|
|
|
139
|
+
### Phase 0 — Checkpoint write (do this first, before any verification)
|
|
140
|
+
|
|
141
|
+
Write `signals.json` now with placeholder verdicts — `status: "failed"`, all four floor dimensions
|
|
142
|
+
present, each set to `passed: false` with `finding: "assessment in progress"`. Use the schema and
|
|
143
|
+
path shown in the output contract section at the bottom of this prompt.
|
|
144
|
+
|
|
145
|
+
This preliminary write is NOT your final verdict. You will overwrite the file with the real verdict
|
|
146
|
+
after Phase 4. Writing it first ensures the harness can recover via corrective retry if this session
|
|
147
|
+
exhausts its token budget mid-analysis — a session that runs out during Phases 1–3 leaves a valid
|
|
148
|
+
`signals.json` on disk rather than a missing one, allowing the harness to prompt a cheaper follow-up
|
|
149
|
+
rather than restarting from scratch.
|
|
150
|
+
|
|
151
|
+
```json
|
|
152
|
+
{
|
|
153
|
+
"schemaVersion": 1,
|
|
154
|
+
"signals": [
|
|
155
|
+
{
|
|
156
|
+
"type": "evaluation",
|
|
157
|
+
"status": "failed",
|
|
158
|
+
"dimensions": [
|
|
159
|
+
{ "dimension": "correctness", "passed": false, "finding": "assessment in progress" },
|
|
160
|
+
{ "dimension": "completeness", "passed": false, "finding": "assessment in progress" },
|
|
161
|
+
{ "dimension": "safety", "passed": false, "finding": "assessment in progress" },
|
|
162
|
+
{ "dimension": "consistency", "passed": false, "finding": "assessment in progress" }
|
|
163
|
+
],
|
|
164
|
+
"timestamp": "<ISO-8601 timestamp>"
|
|
165
|
+
}
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Write this file, then proceed to Phase 1.
|
|
171
|
+
|
|
139
172
|
### Phase 1 — Computational verification
|
|
140
173
|
|
|
141
174
|
Open with a thinking block: list the criteria you will grade and any red flags from the task description.
|
|
@@ -64,6 +64,16 @@ For the complete history — older than the excerpt above — read `{{PROGRESS_F
|
|
|
64
64
|
{{GENERATOR_HINTS_SECTION}}
|
|
65
65
|
|
|
66
66
|
<protocol>
|
|
67
|
+
**Checkpoint write — do this first, before re-grading**
|
|
68
|
+
|
|
69
|
+
If you have not already written a checkpoint `signals.json` for this round, write one now before
|
|
70
|
+
continuing. Use `status: "failed"`, all four floor dimensions present, each set to
|
|
71
|
+
`passed: false` with `finding: "assessment in progress"`. Use the path named in the output
|
|
72
|
+
contract section at the bottom of this prompt. This placeholder is valid against the schema the
|
|
73
|
+
harness validates — it ensures a recoverable file exists on disk if this session exhausts its
|
|
74
|
+
token budget before you reach your final verdict. You will overwrite it after completing all steps
|
|
75
|
+
below.
|
|
76
|
+
|
|
67
77
|
Re-grade this round the same way you graded the first:
|
|
68
78
|
|
|
69
79
|
1. Re-run each `auto` criterion's command directly and record the verbatim output. Do NOT run the
|
|
@@ -10,7 +10,7 @@ description: Cross-phase skill — question every harness component on every mod
|
|
|
10
10
|
> Remove one component at a time when simplifying. Re-examine entire harness when new model releases; strip
|
|
11
11
|
> non-load-bearing pieces."
|
|
12
12
|
>
|
|
13
|
-
> — Anthropic, _Harness Design for Long-Running
|
|
13
|
+
> — Anthropic, [_Harness Design for Long-Running Application Development_](https://www.anthropic.com/engineering/harness-design-long-running-apps)
|
|
14
14
|
|
|
15
15
|
Harness complexity drifts upward. Each component that solves a real problem at the time of its addition
|
|
16
16
|
becomes a permanent fixture — even after the model capability that made it necessary has improved past the
|
|
@@ -5,8 +5,10 @@ description: Execute-phase skill — write the minimum code the task needs and t
|
|
|
5
5
|
|
|
6
6
|
# Surgical Simplicity
|
|
7
7
|
|
|
8
|
-
> Distilled from Andrej Karpathy's public guidance on LLM coding — his January 2026 X post on coding
|
|
9
|
-
> pitfalls and the "Software Is Changing" / Software 3.0
|
|
8
|
+
> Distilled from Andrej Karpathy's public guidance on LLM coding — his January 2026 [X post on coding
|
|
9
|
+
> pitfalls](https://x.com/karpathy/status/2015883857489522876) and the ["Software Is Changing" / Software 3.0
|
|
10
|
+
> talk](https://www.ycombinator.com/library/MW-andrej-karpathy-software-is-changing-again). Clean-room —
|
|
11
|
+
> concepts only, not copied text.
|
|
10
12
|
|
|
11
13
|
The two failure modes that make AI-generated diffs hard to review are opposite in feel but identical in
|
|
12
14
|
cost: writing too much (speculative code that nobody asked for) and touching too much (sweeping the
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ralphctl",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.1",
|
|
4
4
|
"description": "Agent harness for long-running AI coding tasks — orchestrates Claude Code, GitHub Copilot, and OpenAI Codex across repositories",
|
|
5
5
|
"homepage": "https://github.com/lukas-grigis/ralphctl",
|
|
6
6
|
"type": "module",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@eslint/js": "^10.0.1",
|
|
51
51
|
"@types/cross-spawn": "^6.0.6",
|
|
52
|
-
"@types/node": "^
|
|
52
|
+
"@types/node": "^26.0.0",
|
|
53
53
|
"@types/proper-lockfile": "^4.1.4",
|
|
54
54
|
"@types/react": "^19.2.14",
|
|
55
55
|
"@vitest/coverage-v8": "^4.1.6",
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
"scripts": {
|
|
80
80
|
"build": "tsup && tsx scripts/build-assets.ts",
|
|
81
81
|
"dev": "NODE_OPTIONS=--max-old-space-size=8192 tsx src/index.ts",
|
|
82
|
+
"mock": "tsx scripts/seed-mock.ts",
|
|
82
83
|
"dev:heap-snapshot": "mkdir -p .diagnostics && NODE_OPTIONS='--max-old-space-size=8192 --heapsnapshot-near-heap-limit=2 --diagnostic-dir=.diagnostics' tsx src/index.ts",
|
|
83
84
|
"start": "NODE_OPTIONS=--max-old-space-size=8192 tsx src/index.ts",
|
|
84
85
|
"typecheck": "tsc",
|