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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "generatedAt": "2026-06-14T19:07:40.295Z",
3
+ "generatedAt": "2026-06-23T21:08:54.874Z",
4
4
  "assets": [
5
5
  "prompts/_partials/conventions-agents-md.md",
6
6
  "prompts/_partials/conventions-claude-md.md",
@@ -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 Apps_
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 talk. Clean-room — concepts only, not copied text.
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.12.1",
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": "^25.8.0",
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",