ralphctl 0.2.4 → 0.3.0
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 +21 -9
- package/dist/add-GX7P7XTT.mjs +16 -0
- package/dist/add-JGUOR4Z5.mjs +18 -0
- package/dist/bootstrap-FMHG6DRY.mjs +11 -0
- package/dist/chunk-3QBEBKMZ.mjs +103 -0
- package/dist/chunk-4GHVNKLV.mjs +5088 -0
- package/dist/{chunk-EDJX7TT6.mjs → chunk-57UWLHRH.mjs} +22 -2
- package/dist/chunk-747KW2RW.mjs +24 -0
- package/dist/chunk-CDOPLXFK.mjs +5485 -0
- package/dist/{chunk-7TG3EAQ2.mjs → chunk-CFUVE2BP.mjs} +1 -5
- package/dist/{chunk-IB6OCKZW.mjs → chunk-CTP2A436.mjs} +60 -55
- package/dist/{chunk-UBPZHHCD.mjs → chunk-D2YGPLIV.mjs} +84 -41
- package/dist/{chunk-QBXHAXHI.mjs → chunk-FKMKOWLA.mjs} +154 -208
- package/dist/chunk-HL4ZMHCQ.mjs +261 -0
- package/dist/{chunk-OEUJDSHY.mjs → chunk-IWXBJD2D.mjs} +1 -1
- package/dist/chunk-JXMHLW42.mjs +227 -0
- package/dist/{chunk-EUNAUHC3.mjs → chunk-NUYQK5MN.mjs} +80 -29
- package/dist/{chunk-JRFOUFD3.mjs → chunk-YCDUVPRT.mjs} +32 -52
- package/dist/cli.mjs +168 -3978
- package/dist/create-7WFSCMP4.mjs +15 -0
- package/dist/{handle-TA4MYNQJ.mjs → handle-BBAZJ44Y.mjs} +2 -2
- package/dist/mount-XZPBDRPZ.mjs +6751 -0
- package/dist/{project-YONEJICR.mjs → project-2IE7VWDB.mjs} +9 -5
- package/dist/prompts/harness-context.md +5 -0
- package/dist/prompts/ideate-auto.md +34 -19
- package/dist/prompts/ideate.md +21 -4
- package/dist/prompts/plan-auto.md +19 -24
- package/dist/prompts/plan-common.md +42 -17
- package/dist/prompts/plan-interactive.md +16 -21
- package/dist/prompts/signals-evaluation.md +6 -0
- package/dist/prompts/signals-planning.md +5 -0
- package/dist/prompts/signals-task.md +7 -0
- package/dist/prompts/sprint-feedback.md +48 -0
- package/dist/prompts/task-evaluation-resume.md +27 -13
- package/dist/prompts/task-evaluation.md +44 -34
- package/dist/prompts/task-execution.md +46 -46
- package/dist/prompts/ticket-refine.md +6 -5
- package/dist/prompts/validation-checklist.md +14 -0
- package/dist/{resolver-RXEY6EJE.mjs → resolver-EOE5WUMV.mjs} +5 -5
- package/dist/{sprint-FGLWYWKX.mjs → sprint-OGOFEJJH.mjs} +7 -9
- package/dist/start-MMWC7QLI.mjs +17 -0
- package/package.json +15 -13
- package/dist/add-3T225IX5.mjs +0 -16
- package/dist/add-6A5432U2.mjs +0 -16
- package/dist/chunk-742XQ7FL.mjs +0 -551
- package/dist/chunk-7LZ6GOGN.mjs +0 -53
- package/dist/chunk-DUU5346E.mjs +0 -59
- package/dist/chunk-U62BX47C.mjs +0 -4231
- package/dist/create-MYGOWO2F.mjs +0 -12
- package/dist/multiline-OHSNFCRG.mjs +0 -40
- package/dist/wizard-HWOH2HPV.mjs +0 -193
- package/schemas/config.schema.json +0 -30
- package/schemas/ideate-output.schema.json +0 -22
- package/schemas/projects.schema.json +0 -58
- package/schemas/requirements-output.schema.json +0 -24
- package/schemas/sprint.schema.json +0 -109
- package/schemas/task-import.schema.json +0 -56
- package/schemas/tasks.schema.json +0 -98
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
# Code Review: {{TASK_NAME}}
|
|
2
2
|
|
|
3
|
-
You are an independent code reviewer evaluating whether an implementation satisfies its specification.
|
|
4
|
-
|
|
3
|
+
You are an independent code reviewer evaluating whether an implementation satisfies its specification. Think carefully
|
|
4
|
+
and step-by-step as you investigate — skepticism is your default posture: treat each claim of "done" as unproven until
|
|
5
|
+
you have investigated the change against the specification.
|
|
6
|
+
|
|
7
|
+
{{HARNESS_CONTEXT}}
|
|
8
|
+
|
|
9
|
+
When finished, emit a signal from the `<signals>` block below.
|
|
5
10
|
|
|
6
11
|
<task-specification>
|
|
7
12
|
|
|
@@ -22,7 +27,7 @@ You are working in this project directory:
|
|
|
22
27
|
{{PROJECT_PATH}}
|
|
23
28
|
```
|
|
24
29
|
|
|
25
|
-
{{
|
|
30
|
+
{{PROJECT_TOOLING}}
|
|
26
31
|
|
|
27
32
|
### Phase 1: Computational Verification (run before reasoning)
|
|
28
33
|
|
|
@@ -41,30 +46,31 @@ Computational results are ground truth. If the check script fails, stop early
|
|
|
41
46
|
|
|
42
47
|
Now apply semantic judgment to what the computational checks cannot catch:
|
|
43
48
|
|
|
44
|
-
1. **
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
5. **
|
|
55
|
-
- **Frontend/UI tasks
|
|
56
|
-
verify the changed UI renders correctly
|
|
57
|
-
- **API tasks
|
|
58
|
-
specified
|
|
59
|
-
- **Library tasks
|
|
60
|
-
- **CLI tasks
|
|
61
|
-
- Skip this step
|
|
62
|
-
config)
|
|
49
|
+
1. **Diff the task's commit range** — derive the base from the branch's divergence point (`git merge-base HEAD main`
|
|
50
|
+
or the closest equivalent) and run `git diff <base>..HEAD`. Tasks may produce multiple commits; do not assume
|
|
51
|
+
a single commit.
|
|
52
|
+
2. **Read the changed files carefully** — understand the full implementation, not just the diff.
|
|
53
|
+
3. **Read surrounding code** — check that the implementation follows existing patterns and conventions.
|
|
54
|
+
4. **Augment the Project Tooling section above** — the section lists detected subagents, skills, and MCP servers.
|
|
55
|
+
Additionally skim `package.json` scripts, `playwright.config.*`, `cypress.config.*`, `vitest.config.*`, `.storybook/`,
|
|
56
|
+
`CLAUDE.md`, and `.github/copilot-instructions.md` for the test/verification stack and any conventions the section
|
|
57
|
+
didn't surface. Note which application type this is (backend API / CLI / frontend SPA / fullstack / library) — it
|
|
58
|
+
determines which verification methods apply.
|
|
59
|
+
5. **Run extended verification when the detected tooling makes it cheap and deterministic:**
|
|
60
|
+
- **Frontend/UI tasks** — if Playwright or Cypress is configured, run a targeted e2e test or use a browser MCP to
|
|
61
|
+
verify the changed UI renders correctly (console errors, layout, interactive behaviour).
|
|
62
|
+
- **API tasks** — if a local server is running, make a targeted HTTP request to verify the endpoint responds as
|
|
63
|
+
specified.
|
|
64
|
+
- **Library tasks** — run the relevant test file directly when the change is small.
|
|
65
|
+
- **CLI tasks** — run the affected command with representative input and verify the output.
|
|
66
|
+
- Skip this step only when the project has no runnable verification tooling or the task is purely structural
|
|
67
|
+
(types, schemas, config).
|
|
63
68
|
|
|
64
69
|
### Phase 3: Dimension Assessment
|
|
65
70
|
|
|
66
|
-
Evaluate the implementation across
|
|
67
|
-
fails, the overall evaluation fails.
|
|
71
|
+
Evaluate the implementation across the dimensions below. Each dimension is pass/fail with a hard threshold — if ANY
|
|
72
|
+
dimension fails, the overall evaluation fails. The first four are the floor — every task is graded on them. The
|
|
73
|
+
planner may have flagged additional task-specific dimensions; when present, they are graded on top of the floor.
|
|
68
74
|
|
|
69
75
|
**Dimension 1 — Correctness**
|
|
70
76
|
Does the implementation do what the specification says? Check for:
|
|
@@ -79,7 +85,8 @@ Is the full specification implemented? Check for:
|
|
|
79
85
|
- Every verification criterion is satisfied (not just most)
|
|
80
86
|
- No steps were skipped or partially implemented
|
|
81
87
|
- No TODO/FIXME/HACK markers left behind that indicate unfinished work
|
|
82
|
-
- Uncommitted changes that
|
|
88
|
+
- Uncommitted changes that look like incomplete work (WIP diffs, stashed edits) — committing is expected unless the
|
|
89
|
+
task's contract says otherwise
|
|
83
90
|
|
|
84
91
|
**Dimension 3 — Safety**
|
|
85
92
|
Are there security or reliability issues? Check for:
|
|
@@ -96,21 +103,22 @@ Does the implementation fit the codebase? Check for:
|
|
|
96
103
|
- Uses existing utilities instead of reinventing them
|
|
97
104
|
- No unnecessary changes outside the task scope — spec drift
|
|
98
105
|
- Test patterns match the project's existing test style
|
|
99
|
-
|
|
100
|
-
Evaluate only what was asked vs what was delivered — suggesting improvements beyond the task scope creates noise that
|
|
101
|
-
distracts from the actual pass/fail decision.
|
|
106
|
+
{{EXTRA_DIMENSIONS_SECTION}}
|
|
107
|
+
Evaluate only what was asked vs what was delivered — suggesting improvements beyond the task scope creates noise that
|
|
108
|
+
distracts from the actual pass/fail decision.
|
|
102
109
|
|
|
103
110
|
### Pass Bar
|
|
104
111
|
|
|
105
|
-
The implementation passes if ALL
|
|
112
|
+
The implementation passes if ALL dimensions pass. Specifically:
|
|
106
113
|
|
|
107
114
|
- **Correctness**: Every verification criterion is satisfied
|
|
108
115
|
- **Completeness**: All steps implemented, no unfinished markers
|
|
109
116
|
- **Safety**: No security vulnerabilities introduced
|
|
110
|
-
- **Consistency**: Follows existing codebase patterns
|
|
117
|
+
- **Consistency**: Follows existing codebase patterns{{EXTRA_DIMENSIONS_PASS_BAR}}
|
|
111
118
|
|
|
112
|
-
|
|
113
|
-
|
|
119
|
+
Fail only on missed verification criteria, skipped steps, safety issues, or genuine codebase-convention violations —
|
|
120
|
+
not style preferences, naming opinions, or improvements beyond the task scope. When verification criteria are provided,
|
|
121
|
+
grade primarily against them — they are the contract.
|
|
114
122
|
|
|
115
123
|
## Output
|
|
116
124
|
|
|
@@ -127,7 +135,7 @@ findings in the critique section below, not in the dimension line.
|
|
|
127
135
|
**Correctness**: PASS — [one-line finding]
|
|
128
136
|
**Completeness**: PASS — [one-line finding]
|
|
129
137
|
**Safety**: PASS — [one-line finding]
|
|
130
|
-
**Consistency**: PASS — [one-line finding]
|
|
138
|
+
**Consistency**: PASS — [one-line finding]{{EXTRA_DIMENSIONS_ASSESSMENT_PASS}}
|
|
131
139
|
|
|
132
140
|
<evaluation-passed>
|
|
133
141
|
```
|
|
@@ -140,7 +148,7 @@ findings in the critique section below, not in the dimension line.
|
|
|
140
148
|
**Correctness**: PASS/FAIL — [one-line finding]
|
|
141
149
|
**Completeness**: PASS/FAIL — [one-line finding]
|
|
142
150
|
**Safety**: PASS/FAIL — [one-line finding]
|
|
143
|
-
**Consistency**: PASS/FAIL — [one-line finding]
|
|
151
|
+
**Consistency**: PASS/FAIL — [one-line finding]{{EXTRA_DIMENSIONS_ASSESSMENT_MIXED}}
|
|
144
152
|
|
|
145
153
|
<evaluation-failed>
|
|
146
154
|
[Specific, actionable critique organized by failing dimension.
|
|
@@ -180,3 +188,5 @@ Each issue must reference which dimension it violates.]
|
|
|
180
188
|
> query: `WHERE name LIKE $1` with `%${query}%` as parameter.
|
|
181
189
|
|
|
182
190
|
Be direct and specific — point to files, lines, and concrete problems.
|
|
191
|
+
|
|
192
|
+
{{SIGNALS}}
|
|
@@ -1,35 +1,34 @@
|
|
|
1
1
|
# Task Execution Protocol
|
|
2
2
|
|
|
3
|
-
You are a task implementer.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Implement the task described in {{CONTEXT_FILE}}.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
masks real bugs. If a test is genuinely wrong, signal `<task-blocked>` so a human can decide.
|
|
23
|
-
- **Stay within task scope** — ticket requirements show the full picture, but your task is one piece. Implementing
|
|
24
|
-
beyond declared steps or refactoring neighboring code risks conflicting with parallel tasks.
|
|
3
|
+
You are a task implementer. Execute one pre-planned task precisely. Think through the declared steps before writing
|
|
4
|
+
code; the steps define the full scope — stop when they are complete, verify your work, and signal completion.
|
|
5
|
+
|
|
6
|
+
Implement the task described in {{CONTEXT_FILE}}. Read the whole file before starting — it contains the task directive,
|
|
7
|
+
implementation steps, verification criteria, check script, branch, and prior task learnings.
|
|
8
|
+
|
|
9
|
+
{{HARNESS_CONTEXT}}
|
|
10
|
+
|
|
11
|
+
When finished, emit a signal from the `<signals>` block below.
|
|
12
|
+
|
|
13
|
+
<constraints>
|
|
14
|
+
|
|
15
|
+
- **Respect task boundaries** — complete exactly the declared steps for this one task, then stop. Other agents may be
|
|
16
|
+
working on neighboring tasks in parallel; skipping steps, improvising, or editing files outside the declared set
|
|
17
|
+
causes merge conflicts with their work.
|
|
18
|
+
- **Prefer fixing the code over the test** — a failing test usually indicates a bug in the implementation. Update a
|
|
19
|
+
test only when the declared steps intentionally change the behaviour it asserts (e.g. a regression fix, a contract
|
|
20
|
+
change). Do not remove, skip, or weaken a test to make a failure go away — that masks real bugs. If the right move
|
|
21
|
+
is genuinely ambiguous, signal `<task-blocked>` so a human can decide.
|
|
25
22
|
- **Verify before completing** — the harness runs a post-task check gate; unverified work will be caught and rejected.
|
|
26
|
-
- **
|
|
27
|
-
|
|
28
|
-
- **Leave {{CONTEXT_FILE}} alone** —
|
|
29
|
-
|
|
23
|
+
- **Append progress, never overwrite** — append each progress entry at the end of the progress file. Overwriting
|
|
24
|
+
erases context that downstream tasks depend on.
|
|
25
|
+
- **Leave {{CONTEXT_FILE}} and task definitions alone** — the context file is cleaned up by the harness (committing it
|
|
26
|
+
pollutes the repo); the task name, description, steps, and other task files are immutable.
|
|
30
27
|
{{COMMIT_CONSTRAINT}}
|
|
31
28
|
|
|
32
|
-
</
|
|
29
|
+
</constraints>
|
|
30
|
+
|
|
31
|
+
{{PROJECT_TOOLING}}
|
|
33
32
|
|
|
34
33
|
## Phase 1: Reconnaissance (feedforward — understand before acting)
|
|
35
34
|
|
|
@@ -65,21 +64,27 @@ Proceed to Phase 2 once all reconnaissance steps pass.
|
|
|
65
64
|
|
|
66
65
|
## Phase 2: Implementation
|
|
67
66
|
|
|
68
|
-
1. **
|
|
69
|
-
|
|
67
|
+
1. **Consider delegation before coding** — if a "Project Tooling" section appears above, check it for a subagent,
|
|
68
|
+
skill, or MCP server that matches a declared step's specialty (security audit, UI/UX work, test authoring). When
|
|
69
|
+
there is a strong match, delegate via the Task tool with the listed `subagent_type` (or invoke the skill / MCP).
|
|
70
|
+
When several declared steps each map to a different specialty, fan them out in one turn rather than sequentially.
|
|
71
|
+
Otherwise, implement directly — do not spawn a subagent for work you can complete on the main thread.
|
|
72
|
+
2. **Match existing patterns** — use the conventions and patterns from Phase 1 as your template. When in doubt, match
|
|
73
|
+
what exists:
|
|
70
74
|
- Same file organization and naming as similar features
|
|
71
75
|
- Same error handling approach as neighboring code
|
|
72
76
|
- Same test structure as existing test files
|
|
73
77
|
- Same import style and module patterns
|
|
74
|
-
|
|
75
|
-
|
|
78
|
+
Introduce new patterns or abstractions only when a declared step explicitly calls for it.
|
|
79
|
+
3. **Execute declared steps precisely** — in order, as specified:
|
|
76
80
|
- Each step references specific files and actions — do exactly what is specified
|
|
77
|
-
- If a step is unclear,
|
|
81
|
+
- If a step is unclear, pick the narrowest plausible interpretation that still satisfies the verification criteria
|
|
82
|
+
before marking blocked
|
|
78
83
|
- If steps seem incomplete relative to ticket requirements, signal `<task-blocked>` rather than improvising —
|
|
79
84
|
the planner may have intentionally scoped them this way to avoid conflicts
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
85
|
+
4. **Smoke-test as you go** — run relevant test or typecheck commands after each meaningful code change to catch issues
|
|
86
|
+
early. This is incremental sanity-checking, not the final gate. **The authoritative gate is Phase 3 step 2 below:
|
|
87
|
+
the full check script runs there and must pass.**
|
|
83
88
|
|
|
84
89
|
## Phase 3: Completion
|
|
85
90
|
|
|
@@ -88,8 +93,7 @@ Complete these steps IN ORDER:
|
|
|
88
93
|
1. **Confirm all steps done** — Every task step has been completed
|
|
89
94
|
2. **Run ALL verification commands** — Execute every verification command (see Check Script section in the context file
|
|
90
95
|
or project instructions). Fix any failures before proceeding. The harness runs the check script as a post-task
|
|
91
|
-
gate — your task is not marked done unless it passes.
|
|
92
|
-
{{COMMIT_STEP}}
|
|
96
|
+
gate — your task is not marked done unless it passes.{{COMMIT_STEP}}
|
|
93
97
|
3. **Update progress file** — Append to {{PROGRESS_FILE}} using this format:
|
|
94
98
|
|
|
95
99
|
```markdown
|
|
@@ -172,13 +176,9 @@ Signal `<task-blocked>Missing dependency: [what and which task]</task-blocked>`.
|
|
|
172
176
|
|
|
173
177
|
### If scope seems wrong
|
|
174
178
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
- `<task-verified>output</task-verified>` — Records verification results (required before completion)
|
|
181
|
-
- `<task-complete>` — Marks task as done (ONLY after verified)
|
|
182
|
-
- `<task-blocked>reason</task-blocked>` — Marks task as blocked (cannot proceed)
|
|
179
|
+
Declared steps take priority over project patterns when they conflict — the planner may have scoped narrowly on
|
|
180
|
+
purpose. If the steps force a clear pattern violation or seem incomplete relative to ticket requirements, surface the
|
|
181
|
+
judgment to a human with `<task-blocked>Steps incomplete: [what appears missing]</task-blocked>` rather than expanding
|
|
182
|
+
scope yourself.
|
|
183
183
|
|
|
184
|
-
|
|
184
|
+
{{SIGNALS}}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# Requirements Refinement Protocol
|
|
2
2
|
|
|
3
|
-
You are a requirements analyst.
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
You are a requirements analyst. Produce a complete, implementation-agnostic specification that answers WHAT needs to be
|
|
4
|
+
built, not HOW. Think carefully about what the ticket says, what it assumes, and what it leaves ambiguous before asking
|
|
5
|
+
anything — a question the ticket already answers is a wasted turn. Clarify genuine gaps through focused questions, and
|
|
6
|
+
stop when acceptance criteria are unambiguous.
|
|
6
7
|
|
|
7
8
|
<constraints>
|
|
8
9
|
|
|
@@ -117,8 +118,8 @@ Before writing to file, verify ALL of these are true:
|
|
|
117
118
|
|
|
118
119
|
### Step 6: Write to File
|
|
119
120
|
|
|
120
|
-
Write the requirements to the output file after the user approves
|
|
121
|
-
|
|
121
|
+
Write the requirements to the output file only after the user approves — they need to validate completeness and
|
|
122
|
+
correctness first.
|
|
122
123
|
|
|
123
124
|
## Asking Clarifying Questions
|
|
124
125
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
## Pre-Output Validation
|
|
2
|
+
|
|
3
|
+
Before writing the JSON output, verify EVERY item:
|
|
4
|
+
|
|
5
|
+
1. **Requirements complete** — problem statement, acceptance criteria, and scope boundaries are all present (when applicable)
|
|
6
|
+
2. **Exclusive file ownership** — each file is owned by exactly one task (or overlap is explicitly delineated in steps)
|
|
7
|
+
3. **Foundations before dependents** — tasks are ordered so prerequisites come first
|
|
8
|
+
4. **Valid dependencies** — every `blockedBy` reference points to an earlier task with a real code dependency
|
|
9
|
+
5. **Maximized parallelism** — independent tasks run in parallel; use `blockedBy` only when there is a genuine code dependency
|
|
10
|
+
6. **Precise steps** — every task has 3+ specific, actionable steps with file references
|
|
11
|
+
7. **Verification steps** — every task ends with project-appropriate verification commands
|
|
12
|
+
8. **`projectPath` assigned** — every task uses a path from the available repositories
|
|
13
|
+
9. **Verification criteria** — every task has 2-4 `verificationCriteria` that are testable and unambiguous
|
|
14
|
+
10. **Raw JSON output** — the output is valid JSON matching the schema exactly; the harness parses the output directly as JSON, so emit it without markdown fences, commentary, or surrounding prose
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
wrapAsync
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IWXBJD2D.mjs";
|
|
5
5
|
import {
|
|
6
6
|
IOError
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-57UWLHRH.mjs";
|
|
8
8
|
|
|
9
|
-
// src/completion/resolver.ts
|
|
9
|
+
// src/integration/cli/completion/resolver.ts
|
|
10
10
|
var dynamicResolvers = {
|
|
11
11
|
"--project": async () => {
|
|
12
12
|
const result = await wrapAsync(
|
|
13
13
|
async () => {
|
|
14
|
-
const { listProjects } = await import("./project-
|
|
14
|
+
const { listProjects } = await import("./project-2IE7VWDB.mjs");
|
|
15
15
|
return listProjects();
|
|
16
16
|
},
|
|
17
17
|
(err) => new IOError("Failed to load projects for completion", err instanceof Error ? err : void 0)
|
|
@@ -45,7 +45,7 @@ var configValueCompletions = {
|
|
|
45
45
|
async function getSprintCompletions() {
|
|
46
46
|
const result = await wrapAsync(
|
|
47
47
|
async () => {
|
|
48
|
-
const { listSprints } = await import("./sprint-
|
|
48
|
+
const { listSprints } = await import("./sprint-OGOFEJJH.mjs");
|
|
49
49
|
return listSprints();
|
|
50
50
|
},
|
|
51
51
|
(err) => new IOError("Failed to load sprints for completion", err instanceof Error ? err : void 0)
|
|
@@ -5,22 +5,21 @@ import {
|
|
|
5
5
|
closeSprint,
|
|
6
6
|
createSprint,
|
|
7
7
|
deleteSprint,
|
|
8
|
-
findActiveSprint,
|
|
9
|
-
getActiveSprintOrThrow,
|
|
10
8
|
getCurrentSprintOrThrow,
|
|
11
9
|
getSprint,
|
|
12
10
|
listSprints,
|
|
11
|
+
logSprintBaselines,
|
|
13
12
|
resolveSprintId,
|
|
14
13
|
saveSprint
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-YCDUVPRT.mjs";
|
|
15
|
+
import "./chunk-FKMKOWLA.mjs";
|
|
16
|
+
import "./chunk-IWXBJD2D.mjs";
|
|
17
|
+
import "./chunk-CTP2A436.mjs";
|
|
18
18
|
import {
|
|
19
19
|
NoCurrentSprintError,
|
|
20
20
|
SprintNotFoundError,
|
|
21
21
|
SprintStatusError
|
|
22
|
-
} from "./chunk-
|
|
23
|
-
import "./chunk-QBXHAXHI.mjs";
|
|
22
|
+
} from "./chunk-57UWLHRH.mjs";
|
|
24
23
|
export {
|
|
25
24
|
NoCurrentSprintError,
|
|
26
25
|
SprintNotFoundError,
|
|
@@ -30,11 +29,10 @@ export {
|
|
|
30
29
|
closeSprint,
|
|
31
30
|
createSprint,
|
|
32
31
|
deleteSprint,
|
|
33
|
-
findActiveSprint,
|
|
34
|
-
getActiveSprintOrThrow,
|
|
35
32
|
getCurrentSprintOrThrow,
|
|
36
33
|
getSprint,
|
|
37
34
|
listSprints,
|
|
35
|
+
logSprintBaselines,
|
|
38
36
|
resolveSprintId,
|
|
39
37
|
saveSprint
|
|
40
38
|
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
parseSprintStartArgs,
|
|
4
|
+
sprintStartCommand
|
|
5
|
+
} from "./chunk-CDOPLXFK.mjs";
|
|
6
|
+
import "./chunk-HL4ZMHCQ.mjs";
|
|
7
|
+
import "./chunk-CFUVE2BP.mjs";
|
|
8
|
+
import "./chunk-747KW2RW.mjs";
|
|
9
|
+
import "./chunk-YCDUVPRT.mjs";
|
|
10
|
+
import "./chunk-FKMKOWLA.mjs";
|
|
11
|
+
import "./chunk-IWXBJD2D.mjs";
|
|
12
|
+
import "./chunk-CTP2A436.mjs";
|
|
13
|
+
import "./chunk-57UWLHRH.mjs";
|
|
14
|
+
export {
|
|
15
|
+
parseSprintStartArgs,
|
|
16
|
+
sprintStartCommand
|
|
17
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ralphctl",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Agent harness for long-running AI coding tasks — orchestrates Claude Code & GitHub Copilot across repositories",
|
|
5
5
|
"homepage": "https://github.com/lukas-grigis/ralphctl",
|
|
6
6
|
"type": "module",
|
|
@@ -29,8 +29,7 @@
|
|
|
29
29
|
"ralphctl": "./dist/cli.mjs"
|
|
30
30
|
},
|
|
31
31
|
"files": [
|
|
32
|
-
"dist/"
|
|
33
|
-
"schemas/"
|
|
32
|
+
"dist/"
|
|
34
33
|
],
|
|
35
34
|
"publishConfig": {
|
|
36
35
|
"access": "public"
|
|
@@ -39,31 +38,34 @@
|
|
|
39
38
|
"node": ">=24.0.0"
|
|
40
39
|
},
|
|
41
40
|
"dependencies": {
|
|
42
|
-
"@
|
|
41
|
+
"@inkjs/ui": "^2.0.0",
|
|
43
42
|
"colorette": "^2.0.20",
|
|
44
43
|
"commander": "^14.0.3",
|
|
45
44
|
"gradient-string": "^3.0.0",
|
|
46
|
-
"
|
|
45
|
+
"ink": "^7.0.1",
|
|
46
|
+
"react": "^19.2.5",
|
|
47
47
|
"tabtab": "^3.0.2",
|
|
48
48
|
"typescript-result": "^3.5.2",
|
|
49
49
|
"zod": "^4.3.6"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@eslint/js": "^10.0.1",
|
|
53
|
-
"@types/node": "^25.
|
|
53
|
+
"@types/node": "^25.6.0",
|
|
54
|
+
"@types/react": "^19.2.14",
|
|
54
55
|
"@types/tabtab": "^3.0.4",
|
|
55
|
-
"@vitest/coverage-v8": "^4.1.
|
|
56
|
+
"@vitest/coverage-v8": "^4.1.4",
|
|
56
57
|
"eslint": "^10.2.0",
|
|
57
58
|
"eslint-config-prettier": "^10.1.8",
|
|
58
|
-
"globals": "^17.
|
|
59
|
+
"globals": "^17.5.0",
|
|
59
60
|
"husky": "^9.1.7",
|
|
61
|
+
"ink-testing-library": "^4.0.0",
|
|
60
62
|
"lint-staged": "^16.4.0",
|
|
61
|
-
"prettier": "^3.8.
|
|
63
|
+
"prettier": "^3.8.3",
|
|
62
64
|
"tsup": "^8.5.1",
|
|
63
65
|
"tsx": "^4.21.0",
|
|
64
66
|
"typescript": "^5.9.3",
|
|
65
|
-
"typescript-eslint": "^8.58.
|
|
66
|
-
"vitest": "^4.1.
|
|
67
|
+
"typescript-eslint": "^8.58.2",
|
|
68
|
+
"vitest": "^4.1.4"
|
|
67
69
|
},
|
|
68
70
|
"lint-staged": {
|
|
69
71
|
"*.ts": [
|
|
@@ -73,8 +75,8 @@
|
|
|
73
75
|
"*.{md,json,yml,yaml}": "prettier --write"
|
|
74
76
|
},
|
|
75
77
|
"scripts": {
|
|
76
|
-
"build": "tsup && mkdir -p dist/prompts && cp src/ai/prompts/*.md dist/prompts/",
|
|
77
|
-
"dev": "tsx src/
|
|
78
|
+
"build": "tsup && mkdir -p dist/prompts && cp src/integration/ai/prompts/*.md dist/prompts/",
|
|
79
|
+
"dev": "tsx src/application/entrypoint.ts",
|
|
78
80
|
"lint": "eslint .",
|
|
79
81
|
"lint:fix": "eslint . --fix",
|
|
80
82
|
"format": "prettier --write .",
|
package/dist/add-3T225IX5.mjs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
addCheckScriptToRepository,
|
|
4
|
-
projectAddCommand
|
|
5
|
-
} from "./chunk-UBPZHHCD.mjs";
|
|
6
|
-
import "./chunk-7LZ6GOGN.mjs";
|
|
7
|
-
import "./chunk-7TG3EAQ2.mjs";
|
|
8
|
-
import "./chunk-EUNAUHC3.mjs";
|
|
9
|
-
import "./chunk-OEUJDSHY.mjs";
|
|
10
|
-
import "./chunk-IB6OCKZW.mjs";
|
|
11
|
-
import "./chunk-EDJX7TT6.mjs";
|
|
12
|
-
import "./chunk-QBXHAXHI.mjs";
|
|
13
|
-
export {
|
|
14
|
-
addCheckScriptToRepository,
|
|
15
|
-
projectAddCommand
|
|
16
|
-
};
|
package/dist/add-6A5432U2.mjs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
addSingleTicketInteractive,
|
|
4
|
-
ticketAddCommand
|
|
5
|
-
} from "./chunk-742XQ7FL.mjs";
|
|
6
|
-
import "./chunk-7TG3EAQ2.mjs";
|
|
7
|
-
import "./chunk-EUNAUHC3.mjs";
|
|
8
|
-
import "./chunk-JRFOUFD3.mjs";
|
|
9
|
-
import "./chunk-OEUJDSHY.mjs";
|
|
10
|
-
import "./chunk-IB6OCKZW.mjs";
|
|
11
|
-
import "./chunk-EDJX7TT6.mjs";
|
|
12
|
-
import "./chunk-QBXHAXHI.mjs";
|
|
13
|
-
export {
|
|
14
|
-
addSingleTicketInteractive,
|
|
15
|
-
ticketAddCommand
|
|
16
|
-
};
|