ralphctl 0.1.4 → 0.2.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.
Files changed (28) hide show
  1. package/README.md +23 -14
  2. package/dist/{add-7LBVENXM.mjs → add-SEDQ3VK7.mjs} +4 -4
  3. package/dist/{add-DVEYDCTR.mjs → add-TGJTRHIF.mjs} +3 -3
  4. package/dist/{chunk-M7JV6MKD.mjs → chunk-AXNZMHFQ.mjs} +384 -96
  5. package/dist/{chunk-LFDW6MWF.mjs → chunk-KPTPKLXY.mjs} +16 -3
  6. package/dist/{chunk-PDI6HBZ7.mjs → chunk-LG6B7QVO.mjs} +1 -1
  7. package/dist/{chunk-YIB7QYU4.mjs → chunk-Q3VWJARJ.mjs} +2 -2
  8. package/dist/{chunk-F2MMCTB5.mjs → chunk-XPDI4SYI.mjs} +5 -4
  9. package/dist/{chunk-DZ6HHTM5.mjs → chunk-XQHEKKDN.mjs} +1 -1
  10. package/dist/{chunk-W3TY22IS.mjs → chunk-ZDEVRTGY.mjs} +10 -3
  11. package/dist/cli.mjs +174 -65
  12. package/dist/{create-MQ4OHZAX.mjs → create-DJHCP7LN.mjs} +3 -3
  13. package/dist/{handle-K2AZLTKU.mjs → handle-CCTBNAJZ.mjs} +1 -1
  14. package/dist/{project-Q4LKML42.mjs → project-ZYGNPVGL.mjs} +2 -2
  15. package/dist/prompts/ideate-auto.md +3 -2
  16. package/dist/prompts/ideate.md +2 -2
  17. package/dist/prompts/plan-auto.md +11 -8
  18. package/dist/prompts/plan-common.md +13 -8
  19. package/dist/prompts/plan-interactive.md +11 -10
  20. package/dist/prompts/task-evaluation.md +54 -0
  21. package/dist/prompts/task-execution.md +7 -5
  22. package/dist/{resolver-NH34HTB6.mjs → resolver-L52KR4GY.mjs} +2 -2
  23. package/dist/{sprint-UHYXSEBJ.mjs → sprint-LUXAV3Q3.mjs} +2 -2
  24. package/dist/{wizard-MCDDXLGE.mjs → wizard-TFJXEYD2.mjs} +6 -6
  25. package/package.json +17 -14
  26. package/schemas/config.schema.json +10 -0
  27. package/schemas/projects.schema.json +5 -0
  28. package/schemas/tasks.schema.json +9 -0
package/README.md CHANGED
@@ -20,14 +20,18 @@
20
20
  ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚══════╝
21
21
  ```
22
22
 
23
- **Sprint and task management CLI for AI-assisted coding with Claude Code or GitHub Copilot.**
23
+ **Agent harness for long-running AI coding tasks — orchestrates [Claude Code](https://docs.anthropic.com/en/docs/claude-code) & [GitHub Copilot](https://docs.github.com/en/copilot/github-copilot-in-the-cli) across repositories.**
24
24
 
25
25
  > _"I'm helping!"_ — Ralph Wiggum
26
26
 
27
27
  > [!NOTE]
28
- > **Early access.** RalphCTL is under active development. Things work, but expect rough edges and breaking changes before 1.0. Read the [blog post](https://lukasgrigis.dev/blog/building-ralphctl) for the backstory.
28
+ > **Early access.** RalphCTL is under active development. Things work, but expect rough edges and breaking changes
29
+ > before 1.0. Read the [blog post](https://lukasgrigis.dev/blog/building-ralphctl) for the backstory.
29
30
 
30
- You write tickets, your AI buddy (Claude or Copilot) refines the requirements, then breaks them into tasks and executes them. RalphCTL keeps track of the state so nothing gets lost between sessions. Ralph Wiggum personality included because why not.
31
+ RalphCTL decomposes work into dependency-ordered tasks, executes them through AI coding agents, and runs a
32
+ [generator-evaluator loop](https://www.anthropic.com/engineering/harness-design-long-running-apps) to catch issues
33
+ before moving on. It manages context across sessions so nothing gets lost — whether you're working on a single ticket
34
+ or coordinating changes across multiple repositories. Ralph Wiggum personality included because why not.
31
35
 
32
36
  ---
33
37
 
@@ -43,7 +47,8 @@ This installs the `ralphctl` command globally.
43
47
 
44
48
  - [Node.js](https://nodejs.org/) **>= 24.0.0**
45
49
  - [Git](https://git-scm.com/)
46
- - Either [Claude CLI](https://docs.anthropic.com/en/docs/claude-code) or [GitHub Copilot CLI](https://docs.github.com/en/copilot/github-copilot-in-the-cli) installed and authenticated
50
+ - Either [Claude CLI](https://docs.anthropic.com/en/docs/claude-code)
51
+ or [GitHub Copilot CLI](https://docs.github.com/en/copilot/github-copilot-in-the-cli) installed and authenticated
47
52
 
48
53
  ### 2-Minute Quick Start
49
54
 
@@ -81,12 +86,13 @@ Or just run `ralphctl` with no arguments for an interactive menu that walks you
81
86
 
82
87
  ## Features
83
88
 
84
- - **Two-phase planning** — clarify requirements first (what), then generate tasks (how), with a human approval gate between them
85
- - **Multi-repo sprints** — a single sprint can track tickets across multiple repositories
86
- - **Task dependencies** — `blockedBy` references with topological sort; tasks run in the right order
87
- - **Interactive or headless** — pair with Claude in a session, or let it run unattended
88
- - **Sprint lifecycle** — state machine (draft -> active -> closed) with file locking for concurrent safety
89
+ - **Task decomposition** — breaks tickets into dependency-ordered tasks with topological sort
90
+ - **Generator-evaluator loop** — independent AI review after each task; iterates until quality passes or budget exhausted
91
+ - **Multi-repo orchestration** — coordinate changes across multiple repositories in a single run
89
92
  - **Parallel execution** — one task per repo at a time, with automatic rate limit backoff and session resume
93
+ - **Two-phase planning** — clarify requirements first (what), then generate tasks (how), with a human approval gate
94
+ - **Context persistence** — state survives across sessions; interrupted work resumes where it left off
95
+ - **Interactive or headless** — pair with your AI agent in a session, or let it run unattended
90
96
  - **Menu mode** — run `ralphctl` with no arguments for an interactive menu
91
97
 
92
98
  ---
@@ -141,7 +147,8 @@ Run `ralphctl <command> --help` for details on any command.
141
147
 
142
148
  ## AI Provider Configuration
143
149
 
144
- RalphCTL supports **Claude Code** and **GitHub Copilot** as AI backends. Both use the same prompt templates and workflow.
150
+ RalphCTL supports **Claude Code** and **GitHub Copilot** as AI backends. Both use the same prompt templates and
151
+ workflow.
145
152
 
146
153
  ```bash
147
154
  ralphctl config set provider claude # Use Claude Code
@@ -155,9 +162,9 @@ Auto-prompts on first AI command if not set. Both CLIs must be in your PATH and
155
162
  | Feature | Claude Code | GitHub Copilot |
156
163
  | --------------------------- | ------------------------------------ | -------------------------------------------------------------------- |
157
164
  | Status | GA | Public preview |
158
- | Headless execution | `-p --output-format json` | `-p -s --autopilot --no-ask-user` |
159
- | Session IDs | In JSON output (`session_id`) | Captured via `--share` output file |
160
- | Session resume (`--resume`) | Full support | Supported when session ID is available |
165
+ | Headless execution | `-p --output-format json` | `-p --output-format json --autopilot --no-ask-user` |
166
+ | Session IDs | In JSON output (`session_id`) | In JSON output (`session_id`), `--share` file as fallback |
167
+ | Session resume (`--resume`) | Full support | Full support |
161
168
  | Per-tool permissions | Settings files + `--permission-mode` | `--allow-all-tools` (all-or-nothing by default) |
162
169
  | Fine-grained tool control | `allow`/`deny` in settings files | `--allow-tool`, `--deny-tool` flags (not yet used) |
163
170
  | Rate limit detection | Validated patterns | Borrowed from Claude — not yet validated against real Copilot errors |
@@ -214,7 +221,9 @@ This project follows the [Contributor Covenant](./CODE_OF_CONDUCT.md) code of co
214
221
 
215
222
  ## Security
216
223
 
217
- To report a vulnerability, use [GitHub's private reporting](https://github.com/lukas-grigis/ralphctl/security/advisories/new). See [SECURITY.md](./SECURITY.md) for details.
224
+ To report a vulnerability,
225
+ use [GitHub's private reporting](https://github.com/lukas-grigis/ralphctl/security/advisories/new).
226
+ See [SECURITY.md](./SECURITY.md) for details.
218
227
 
219
228
  ---
220
229
 
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  addSingleTicketInteractive,
4
4
  ticketAddCommand
5
- } from "./chunk-F2MMCTB5.mjs";
5
+ } from "./chunk-XPDI4SYI.mjs";
6
6
  import "./chunk-7TG3EAQ2.mjs";
7
- import "./chunk-PDI6HBZ7.mjs";
8
- import "./chunk-LFDW6MWF.mjs";
7
+ import "./chunk-LG6B7QVO.mjs";
8
+ import "./chunk-KPTPKLXY.mjs";
9
9
  import "./chunk-OEUJDSHY.mjs";
10
- import "./chunk-W3TY22IS.mjs";
10
+ import "./chunk-ZDEVRTGY.mjs";
11
11
  import "./chunk-EDJX7TT6.mjs";
12
12
  import "./chunk-QBXHAXHI.mjs";
13
13
  export {
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  addCheckScriptToRepository,
4
4
  projectAddCommand
5
- } from "./chunk-YIB7QYU4.mjs";
5
+ } from "./chunk-Q3VWJARJ.mjs";
6
6
  import "./chunk-7LZ6GOGN.mjs";
7
7
  import "./chunk-7TG3EAQ2.mjs";
8
- import "./chunk-PDI6HBZ7.mjs";
8
+ import "./chunk-LG6B7QVO.mjs";
9
9
  import "./chunk-OEUJDSHY.mjs";
10
- import "./chunk-W3TY22IS.mjs";
10
+ import "./chunk-ZDEVRTGY.mjs";
11
11
  import "./chunk-EDJX7TT6.mjs";
12
12
  import "./chunk-QBXHAXHI.mjs";
13
13
  export {