ralphctl 0.7.3 → 0.8.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/README.md +83 -84
- package/dist/cli.mjs +12990 -4679
- package/dist/manifest.json +6 -4
- package/dist/prompts/_partials/decisions.md +14 -0
- package/dist/prompts/_partials/signals-feedback.md +18 -0
- package/dist/prompts/_partials/validation-checklist.md +5 -4
- package/dist/prompts/apply-feedback/template.md +24 -23
- package/dist/prompts/create-pr/template.md +73 -0
- package/dist/prompts/detect-scripts/template.md +17 -8
- package/dist/prompts/detect-skills/template.md +1 -9
- package/dist/prompts/evaluate/template.md +109 -121
- package/dist/prompts/ideate/template.md +48 -22
- package/dist/prompts/implement/template.md +57 -79
- package/dist/prompts/plan/template.md +78 -45
- package/dist/prompts/readiness/template.md +32 -28
- package/dist/prompts/refine/template.md +35 -28
- package/dist/skills/ralphctl-minimal-scaffolding/SKILL.md +58 -0
- package/package.json +2 -2
- package/dist/prompts/_partials/signals-evaluation.md +0 -14
- package/dist/prompts/_partials/signals-task.md +0 -26
package/README.md
CHANGED
|
@@ -22,8 +22,10 @@ with [GitHub Copilot](https://docs.github.com/en/copilot/github-copilot-in-the-c
|
|
|
22
22
|
> _"I'm helping!"_ — Ralph Wiggum
|
|
23
23
|
|
|
24
24
|
> [!NOTE]
|
|
25
|
-
> **Active development
|
|
26
|
-
>
|
|
25
|
+
> **Active development.** New features and polish ship regularly. The 0.7.x
|
|
26
|
+
> line landed a burst of structural changes — thanks for sticking with us
|
|
27
|
+
> through it. Upgrades are simple: install the latest version, redo your
|
|
28
|
+
> config, proceed. See [Upgrading](#upgrading) and [CHANGELOG](./CHANGELOG.md).
|
|
27
29
|
|
|
28
30
|
---
|
|
29
31
|
|
|
@@ -90,8 +92,16 @@ ralphctl export-context --sprint <id> --project <id> --output <path>
|
|
|
90
92
|
|
|
91
93
|
# Settings
|
|
92
94
|
ralphctl settings show
|
|
93
|
-
ralphctl settings
|
|
94
|
-
ralphctl settings set ai.
|
|
95
|
+
ralphctl settings apply-preset claude-only # or mixed / copilot-only / codex-only
|
|
96
|
+
ralphctl settings set ai.implement.provider claude-code
|
|
97
|
+
ralphctl settings set ai.implement.model <model-id>
|
|
98
|
+
ralphctl settings set ai.implement.effort high
|
|
99
|
+
|
|
100
|
+
# Rebuild a sprint's progress.md from disk
|
|
101
|
+
ralphctl sprint regenerate-progress <sprint-id>
|
|
102
|
+
|
|
103
|
+
# Single-frame text digest of the active sprint
|
|
104
|
+
ralphctl snapshot [--sprint <id>]
|
|
95
105
|
```
|
|
96
106
|
|
|
97
107
|
</details>
|
|
@@ -138,17 +148,21 @@ For the full architectural picture see [`.claude/docs/ARCHITECTURE.md`](./.claud
|
|
|
138
148
|
> [!IMPORTANT]
|
|
139
149
|
> Not all three AI providers are equally production-ready inside ralphctl.
|
|
140
150
|
|
|
141
|
-
| Provider | Status | Headless flag
|
|
142
|
-
| ----------------------------------------- | --------------------------------------- |
|
|
143
|
-
| **Claude Code** (`claude-code`) | **Stable — primary verified provider** | `--permission-mode bypassPermissions` | `CLAUDE.md` at repo root |
|
|
144
|
-
| **GitHub Copilot CLI** (`github-copilot`) | Preview — not officially verified by us | `--allow-all-
|
|
145
|
-
| **OpenAI Codex** (`openai-codex`) | Preview — not officially verified by us |
|
|
151
|
+
| Provider | Status | Headless flag | Native context file |
|
|
152
|
+
| ----------------------------------------- | --------------------------------------- | ----------------------------------------------------------- | --------------------------------- |
|
|
153
|
+
| **Claude Code** (`claude-code`) | **Stable — primary verified provider** | `--permission-mode bypassPermissions` + per-tool deny list | `CLAUDE.md` at repo root |
|
|
154
|
+
| **GitHub Copilot CLI** (`github-copilot`) | Preview — not officially verified by us | `--autopilot --allow-all` + `--max-autopilot-continues=200` | `.github/copilot-instructions.md` |
|
|
155
|
+
| **OpenAI Codex** (`openai-codex`) | Preview — not officially verified by us | `-s workspace-write` (topology-scoped) | `AGENTS.md` |
|
|
146
156
|
|
|
147
157
|
"Preview" means the integration exists and the TUI lets you select it, but end-to-end harness behaviour against those
|
|
148
158
|
providers has not been formally verified. Copilot and Codex no-op some features (bundled skill injection, `bodyFile`
|
|
149
|
-
forensic artifacts).
|
|
159
|
+
forensic artifacts). Codex cannot fine-grained-deny edits on existing repo files — its sandbox modes are binary, so
|
|
160
|
+
path scope (cwd + `--add-dir`) is the only safety envelope. If you hit a rough edge on a preview provider,
|
|
150
161
|
please [open an issue](https://github.com/lukas-grigis/ralphctl/issues).
|
|
151
162
|
|
|
163
|
+
One-shot configuration for any provider: `ralphctl settings apply-preset <name>` where `<name>` is
|
|
164
|
+
`mixed`, `claude-only`, `copilot-only`, or `codex-only`.
|
|
165
|
+
|
|
152
166
|
---
|
|
153
167
|
|
|
154
168
|
## Features
|
|
@@ -172,25 +186,35 @@ please [open an issue](https://github.com/lukas-grigis/ralphctl/issues).
|
|
|
172
186
|
|
|
173
187
|
## Configuration
|
|
174
188
|
|
|
175
|
-
Configure via the TUI `Settings` view or one-shot CLI commands
|
|
189
|
+
Configure via the TUI `Settings` view or one-shot CLI commands.
|
|
190
|
+
|
|
191
|
+
**Quickest path — apply a preset:**
|
|
176
192
|
|
|
177
193
|
```bash
|
|
178
|
-
ralphctl settings
|
|
179
|
-
ralphctl settings
|
|
180
|
-
ralphctl settings
|
|
194
|
+
ralphctl settings apply-preset mixed # best-fit provider per flow
|
|
195
|
+
ralphctl settings apply-preset claude-only # every flow on Claude Code
|
|
196
|
+
ralphctl settings apply-preset copilot-only # every flow on GitHub Copilot
|
|
197
|
+
ralphctl settings apply-preset codex-only # every flow on OpenAI Codex
|
|
181
198
|
```
|
|
182
199
|
|
|
183
|
-
|
|
184
|
-
|
|
200
|
+
A preset stamps the entire `ai` section in one shot. None is marked default; on a fresh install the welcome
|
|
201
|
+
view silently auto-seeds a preset based on which provider CLIs it detects on `PATH`.
|
|
185
202
|
|
|
186
|
-
**Per-flow
|
|
187
|
-
|
|
203
|
+
**Per-flow settings.** Each chain (`refine`, `plan`, `implement`, `ideate`, `readiness`) carries its own
|
|
204
|
+
`{provider, model, effort?}` row. Edit individual keys with:
|
|
188
205
|
|
|
189
206
|
```bash
|
|
190
|
-
ralphctl settings set ai.
|
|
191
|
-
ralphctl settings set ai.
|
|
207
|
+
ralphctl settings set ai.implement.provider claude-code
|
|
208
|
+
ralphctl settings set ai.implement.model <model-id>
|
|
209
|
+
ralphctl settings set ai.implement.effort high
|
|
210
|
+
|
|
211
|
+
ralphctl settings set ai.plan.provider github-copilot
|
|
212
|
+
ralphctl settings set ai.plan.model <model-id>
|
|
192
213
|
```
|
|
193
214
|
|
|
215
|
+
The selected provider's CLI must be in your `PATH` and authenticated. Every AI-spawning flow probes its
|
|
216
|
+
row's CLI at launch and exits with a clear error if the binary is missing.
|
|
217
|
+
|
|
194
218
|
**Tune the generator-evaluator loop** (under `harness`):
|
|
195
219
|
|
|
196
220
|
```bash
|
|
@@ -223,57 +247,28 @@ export RALPHCTL_HOME="/path/to/custom/dir"
|
|
|
223
247
|
|
|
224
248
|
---
|
|
225
249
|
|
|
226
|
-
## Upgrading
|
|
227
|
-
|
|
228
|
-
> [!IMPORTANT]
|
|
229
|
-
> **0.7.0 is a structural rewrite.** Internal architecture, on-disk schema, and several CLI
|
|
230
|
-
> commands all changed. **There is no automatic migration from 0.6.x** — sprints, projects,
|
|
231
|
-
> and settings written by 0.6.x will not be read by 0.7.0, even though the data directory
|
|
232
|
-
> path is the same.
|
|
233
|
-
>
|
|
234
|
-
> If you launch 0.7.0 with v0.6.x data still in `~/.ralphctl/`, the harness detects the
|
|
235
|
-
> legacy layout, **refuses to start**, and prints the exact backup command you need to run.
|
|
236
|
-
> No data is touched. The steps below are what the safeguard will tell you.
|
|
237
|
-
|
|
238
|
-
### Before upgrading
|
|
250
|
+
## Upgrading
|
|
239
251
|
|
|
240
|
-
|
|
252
|
+
Install the latest version, redo your config, proceed. Only the latest
|
|
253
|
+
release is supported — there's no backporting, and upgrading is the answer
|
|
254
|
+
to most "is this fixed?" questions.
|
|
241
255
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
```bash
|
|
249
|
-
npm install -g ralphctl
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
3. Launch the TUI and re-register your projects:
|
|
253
|
-
|
|
254
|
-
```bash
|
|
255
|
-
ralphctl
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
4. (Optional) Re-create sprints by hand from the backup — `~/.ralphctl.0.6-backup/data/sprints/<id>/` still holds the
|
|
259
|
-
original ticket bodies, plan output, and progress notes for reference.
|
|
256
|
+
```bash
|
|
257
|
+
npm install -g ralphctl@latest
|
|
258
|
+
ralphctl settings apply-preset <name> # if your settings need a reset
|
|
259
|
+
ralphctl # TUI prompts you to re-register projects if needed
|
|
260
|
+
```
|
|
260
261
|
|
|
261
|
-
|
|
262
|
+
If your `~/.ralphctl/` data from an older release doesn't load cleanly, back
|
|
263
|
+
it up and start fresh:
|
|
262
264
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
- **`settings.json` schema changed.** Per-flow model selection replaces the single global `model`; each chain picks its
|
|
267
|
-
own. 0.6.x settings files are rejected on read — re-run `ralphctl settings` to reconfigure.
|
|
268
|
-
- **CLI surface intentionally smaller.** These commands were removed in favour of the TUI: `sprint feedback / edit`,
|
|
269
|
-
`ticket approve / edit`, `project repo add / remove`, all `task add / edit / edit-status / remove`, and
|
|
270
|
-
`sessions list / attach / detach / kill`. Switch to the interactive TUI or to `ralphctl sprint show <id>` / the
|
|
271
|
-
relevant flow command.
|
|
272
|
-
- **OpenAI Codex provider added** (preview) alongside Claude Code and GitHub Copilot — pick via `ralphctl settings`.
|
|
265
|
+
```bash
|
|
266
|
+
mv ~/.ralphctl ~/.ralphctl.bak
|
|
267
|
+
```
|
|
273
268
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
269
|
+
The backup keeps your ticket bodies, plan output, and progress notes around
|
|
270
|
+
for reference. See [MIGRATION.md](./MIGRATION.md) if you're crossing a major
|
|
271
|
+
boundary (e.g. 0.6.x → 0.7.x) and want the longer story.
|
|
277
272
|
|
|
278
273
|
---
|
|
279
274
|
|
|
@@ -285,13 +280,15 @@ readiness / create sprint) stay TUI-only by design. The CLI exposes inspection +
|
|
|
285
280
|
|
|
286
281
|
### Getting Started
|
|
287
282
|
|
|
288
|
-
| Command
|
|
289
|
-
|
|
|
290
|
-
| `ralphctl`
|
|
291
|
-
| `ralphctl doctor`
|
|
292
|
-
| `ralphctl settings show`
|
|
293
|
-
| `ralphctl settings set <key> <value>`
|
|
294
|
-
| `ralphctl
|
|
283
|
+
| Command | Description |
|
|
284
|
+
| --------------------------------------- | --------------------------------------------------------------------------------------- |
|
|
285
|
+
| `ralphctl` | Interactive TUI (primary surface) |
|
|
286
|
+
| `ralphctl doctor` | Check environment health |
|
|
287
|
+
| `ralphctl settings show` | Print current settings |
|
|
288
|
+
| `ralphctl settings set <key> <value>` | Set a single settings key |
|
|
289
|
+
| `ralphctl settings apply-preset <name>` | Stamp the entire `ai` section (`mixed` / `claude-only` / `copilot-only` / `codex-only`) |
|
|
290
|
+
| `ralphctl completion <shell>` | Print shell tab-completion script |
|
|
291
|
+
| `ralphctl snapshot [--sprint <id>]` | Single-frame text digest of sprint state |
|
|
295
292
|
|
|
296
293
|
### Project & Sprint Inspection
|
|
297
294
|
|
|
@@ -311,11 +308,12 @@ readiness / create sprint) stay TUI-only by design. The CLI exposes inspection +
|
|
|
311
308
|
|
|
312
309
|
### Sprint Lifecycle
|
|
313
310
|
|
|
314
|
-
| Command
|
|
315
|
-
|
|
|
316
|
-
| `ralphctl sprint activate <id>`
|
|
317
|
-
| `ralphctl sprint close <id>`
|
|
318
|
-
| `ralphctl sprint remove <id>`
|
|
311
|
+
| Command | Description |
|
|
312
|
+
| ------------------------------------------ | ------------------------------------- |
|
|
313
|
+
| `ralphctl sprint activate <id>` | Flip a draft sprint to `active` |
|
|
314
|
+
| `ralphctl sprint close <id>` | Transition `review` → `done` |
|
|
315
|
+
| `ralphctl sprint remove <id>` | Delete a sprint permanently |
|
|
316
|
+
| `ralphctl sprint regenerate-progress <id>` | Rebuild `progress.md` from disk state |
|
|
319
317
|
|
|
320
318
|
### Export & PR
|
|
321
319
|
|
|
@@ -333,12 +331,13 @@ Run `ralphctl <command> --help` for flag-level detail.
|
|
|
333
331
|
|
|
334
332
|
## Documentation
|
|
335
333
|
|
|
336
|
-
| Resource | Description
|
|
337
|
-
| ---------------------------------------------- |
|
|
338
|
-
| [Architecture](./.claude/docs/ARCHITECTURE.md) | Data models, file storage, error reference
|
|
339
|
-
| [Requirements](./.claude/docs/REQUIREMENTS.md) | Acceptance criteria and feature checklist
|
|
340
|
-
| [Contributing](./CONTRIBUTING.md) | Dev setup, code style, PR process
|
|
341
|
-
| [
|
|
334
|
+
| Resource | Description |
|
|
335
|
+
| ---------------------------------------------- | ------------------------------------------------- |
|
|
336
|
+
| [Architecture](./.claude/docs/ARCHITECTURE.md) | Data models, file storage, error reference |
|
|
337
|
+
| [Requirements](./.claude/docs/REQUIREMENTS.md) | Acceptance criteria and feature checklist |
|
|
338
|
+
| [Contributing](./CONTRIBUTING.md) | Dev setup, code style, PR process |
|
|
339
|
+
| [Migration](./MIGRATION.md) | Per-version upgrade context for big version jumps |
|
|
340
|
+
| [Changelog](./CHANGELOG.md) | Version history |
|
|
342
341
|
|
|
343
342
|
**Blog posts:** [Building ralphctl](https://lukasgrigis.dev/blog/building-ralphctl) (
|
|
344
343
|
backstory) | [From task CLI to agent harness](https://lukasgrigis.dev/blog/ralphctl-agent-harness/) (evaluator
|