@arvorco/relentless 0.1.9 → 0.1.11
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.
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
**Branch**: `[###-feature-name]` | **Date**: [DATE] | **Spec**: [link]
|
|
4
4
|
**Input**: Feature specification from `/specs/[###-feature-name]/spec.md`
|
|
5
5
|
|
|
6
|
-
**Note**: This template is filled in by the `/relentless.plan` command. See `.
|
|
6
|
+
**Note**: This template is filled in by the `/relentless.plan` command. See `.claude/skills/plan/SKILL.md` for the execution workflow.
|
|
7
7
|
|
|
8
8
|
## Summary
|
|
9
9
|
|
package/bin/relentless.ts
CHANGED
|
@@ -18,12 +18,16 @@ import { run } from "../src/execution/runner";
|
|
|
18
18
|
import { runTUI } from "../src/tui/TUIRunner";
|
|
19
19
|
import { initProject, createFeature, listFeatures, createProgressTemplate } from "../src/init/scaffolder";
|
|
20
20
|
|
|
21
|
+
// Read version from package.json dynamically
|
|
22
|
+
const packageJson = await Bun.file(join(import.meta.dir, "..", "package.json")).json();
|
|
23
|
+
const version = packageJson.version;
|
|
24
|
+
|
|
21
25
|
const program = new Command();
|
|
22
26
|
|
|
23
27
|
program
|
|
24
28
|
.name("relentless")
|
|
25
29
|
.description("Universal AI agent orchestrator - works with Claude Code, Amp, OpenCode, Codex, Droid, and Gemini")
|
|
26
|
-
.version(
|
|
30
|
+
.version(version);
|
|
27
31
|
|
|
28
32
|
// Init command
|
|
29
33
|
program
|
package/package.json
CHANGED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Relentless Agent Instructions
|
|
2
|
+
|
|
3
|
+
You are an autonomous coding agent working on a software project.
|
|
4
|
+
|
|
5
|
+
## Before You Start
|
|
6
|
+
|
|
7
|
+
1. **Review the codebase** - Understand the current state, architecture, and patterns
|
|
8
|
+
2. **Read progress.txt** - Check the Codebase Patterns section for learnings from previous iterations
|
|
9
|
+
3. **Read the PRD** - Understand what needs to be done
|
|
10
|
+
|
|
11
|
+
## Your Task
|
|
12
|
+
|
|
13
|
+
1. Read the PRD at `relentless/features/<feature>/prd.json`
|
|
14
|
+
2. Read the progress log at `relentless/features/<feature>/progress.txt`
|
|
15
|
+
3. Check you're on the correct branch from PRD `branchName`. If not, check it out or create from main.
|
|
16
|
+
4. Pick the **highest priority** user story where `passes: false`
|
|
17
|
+
5. **Review relevant code** before implementing - understand existing patterns
|
|
18
|
+
|
|
19
|
+
### Research Phase (if story has `research: true`)
|
|
20
|
+
|
|
21
|
+
If the current story has `research: true` and no research file exists yet:
|
|
22
|
+
|
|
23
|
+
1. **Explore the codebase** - Find relevant files, patterns, and dependencies
|
|
24
|
+
2. **Document findings** in `relentless/features/<feature>/research/<story-id>.md`:
|
|
25
|
+
- Existing patterns that should be followed
|
|
26
|
+
- Files that will likely need modification
|
|
27
|
+
- Dependencies and integration points
|
|
28
|
+
- Potential gotchas or edge cases
|
|
29
|
+
- Recommended implementation approach
|
|
30
|
+
3. **Do NOT implement** - only research and document
|
|
31
|
+
4. Save your findings to the research file and end your turn
|
|
32
|
+
|
|
33
|
+
### Implementation Phase
|
|
34
|
+
|
|
35
|
+
If research findings exist (or research is not required):
|
|
36
|
+
|
|
37
|
+
6. Implement that single user story (using research findings if available)
|
|
38
|
+
7. Run quality checks (typecheck, lint, test - whatever your project requires)
|
|
39
|
+
8. If checks pass, commit ALL changes with message: `feat: [Story ID] - [Story Title]`
|
|
40
|
+
9. Update the PRD to set `passes: true` for the completed story
|
|
41
|
+
10. Append your progress to `relentless/features/<feature>/progress.txt`
|
|
42
|
+
|
|
43
|
+
## Progress Report Format
|
|
44
|
+
|
|
45
|
+
APPEND to progress.txt (never replace, always append):
|
|
46
|
+
```
|
|
47
|
+
## [Date/Time] - [Story ID]
|
|
48
|
+
- What was implemented
|
|
49
|
+
- Files changed
|
|
50
|
+
- **Learnings for future iterations:**
|
|
51
|
+
- Patterns discovered
|
|
52
|
+
- Gotchas encountered
|
|
53
|
+
- Useful context
|
|
54
|
+
---
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Quality Requirements
|
|
58
|
+
|
|
59
|
+
- ALL commits must pass your project's quality checks (typecheck, lint, test)
|
|
60
|
+
- Do NOT commit broken code
|
|
61
|
+
- Keep changes focused and minimal
|
|
62
|
+
- Follow existing code patterns
|
|
63
|
+
- Review code before modifying it
|
|
64
|
+
|
|
65
|
+
## Stop Condition
|
|
66
|
+
|
|
67
|
+
After completing a user story, check if ALL stories have `passes: true`.
|
|
68
|
+
|
|
69
|
+
If ALL stories are complete and passing, reply with:
|
|
70
|
+
<promise>COMPLETE</promise>
|
|
71
|
+
|
|
72
|
+
If there are still stories with `passes: false`, end your response normally (another iteration will pick up the next story).
|
|
73
|
+
|
|
74
|
+
## Important
|
|
75
|
+
|
|
76
|
+
- Work on ONE story per iteration
|
|
77
|
+
- Review existing code before implementing
|
|
78
|
+
- Commit frequently
|
|
79
|
+
- Keep CI green
|
package/prd.json.example
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"project": "MyApp",
|
|
3
|
-
"branchName": "ralph/task-priority",
|
|
4
|
-
"description": "Task Priority System - Add priority levels to tasks",
|
|
5
|
-
"userStories": [
|
|
6
|
-
{
|
|
7
|
-
"id": "US-001",
|
|
8
|
-
"title": "Add priority field to database",
|
|
9
|
-
"description": "As a developer, I need to store task priority so it persists across sessions.",
|
|
10
|
-
"acceptanceCriteria": [
|
|
11
|
-
"Add priority column to tasks table: 'high' | 'medium' | 'low' (default 'medium')",
|
|
12
|
-
"Generate and run migration successfully",
|
|
13
|
-
"Typecheck passes"
|
|
14
|
-
],
|
|
15
|
-
"priority": 1,
|
|
16
|
-
"passes": false,
|
|
17
|
-
"notes": ""
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"id": "US-002",
|
|
21
|
-
"title": "Display priority indicator on task cards",
|
|
22
|
-
"description": "As a user, I want to see task priority at a glance.",
|
|
23
|
-
"acceptanceCriteria": [
|
|
24
|
-
"Each task card shows colored priority badge (red=high, yellow=medium, gray=low)",
|
|
25
|
-
"Priority visible without hovering or clicking",
|
|
26
|
-
"Typecheck passes",
|
|
27
|
-
"Verify in browser using dev-browser skill"
|
|
28
|
-
],
|
|
29
|
-
"priority": 2,
|
|
30
|
-
"passes": false,
|
|
31
|
-
"notes": ""
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"id": "US-003",
|
|
35
|
-
"title": "Add priority selector to task edit",
|
|
36
|
-
"description": "As a user, I want to change a task's priority when editing it.",
|
|
37
|
-
"acceptanceCriteria": [
|
|
38
|
-
"Priority dropdown in task edit modal",
|
|
39
|
-
"Shows current priority as selected",
|
|
40
|
-
"Saves immediately on selection change",
|
|
41
|
-
"Typecheck passes",
|
|
42
|
-
"Verify in browser using dev-browser skill"
|
|
43
|
-
],
|
|
44
|
-
"priority": 3,
|
|
45
|
-
"passes": false,
|
|
46
|
-
"notes": ""
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
"id": "US-004",
|
|
50
|
-
"title": "Filter tasks by priority",
|
|
51
|
-
"description": "As a user, I want to filter the task list to see only high-priority items.",
|
|
52
|
-
"acceptanceCriteria": [
|
|
53
|
-
"Filter dropdown with options: All | High | Medium | Low",
|
|
54
|
-
"Filter persists in URL params",
|
|
55
|
-
"Empty state message when no tasks match filter",
|
|
56
|
-
"Typecheck passes",
|
|
57
|
-
"Verify in browser using dev-browser skill"
|
|
58
|
-
],
|
|
59
|
-
"priority": 4,
|
|
60
|
-
"passes": false,
|
|
61
|
-
"notes": ""
|
|
62
|
-
}
|
|
63
|
-
]
|
|
64
|
-
}
|