@arvorco/relentless 0.1.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.
Files changed (107) hide show
  1. package/.claude/commands/relentless.analyze.md +20 -0
  2. package/.claude/commands/relentless.checklist.md +15 -0
  3. package/.claude/commands/relentless.clarify.md +19 -0
  4. package/.claude/commands/relentless.constitution.md +78 -0
  5. package/.claude/commands/relentless.implement.md +15 -0
  6. package/.claude/commands/relentless.plan.md +22 -0
  7. package/.claude/commands/relentless.plan.old.md +89 -0
  8. package/.claude/commands/relentless.specify.md +254 -0
  9. package/.claude/commands/relentless.tasks.md +25 -0
  10. package/.claude/commands/relentless.taskstoissues.md +15 -0
  11. package/.claude/settings.local.json +23 -0
  12. package/.claude/skills/analyze/SKILL.md +149 -0
  13. package/.claude/skills/checklist/SKILL.md +173 -0
  14. package/.claude/skills/checklist/templates/checklist-template.md +40 -0
  15. package/.claude/skills/clarify/SKILL.md +174 -0
  16. package/.claude/skills/constitution/SKILL.md +150 -0
  17. package/.claude/skills/constitution/templates/constitution-template.md +228 -0
  18. package/.claude/skills/implement/SKILL.md +141 -0
  19. package/.claude/skills/plan/SKILL.md +179 -0
  20. package/.claude/skills/plan/templates/plan-template.md +104 -0
  21. package/.claude/skills/prd/SKILL.md +242 -0
  22. package/.claude/skills/relentless/SKILL.md +265 -0
  23. package/.claude/skills/specify/SKILL.md +220 -0
  24. package/.claude/skills/specify/scripts/bash/check-prerequisites.sh +166 -0
  25. package/.claude/skills/specify/scripts/bash/common.sh +156 -0
  26. package/.claude/skills/specify/scripts/bash/create-new-feature.sh +305 -0
  27. package/.claude/skills/specify/scripts/bash/setup-plan.sh +61 -0
  28. package/.claude/skills/specify/scripts/bash/update-agent-context.sh +799 -0
  29. package/.claude/skills/specify/templates/spec-template.md +115 -0
  30. package/.claude/skills/tasks/SKILL.md +202 -0
  31. package/.claude/skills/tasks/templates/tasks-template.md +251 -0
  32. package/.claude/skills/taskstoissues/SKILL.md +97 -0
  33. package/.specify/memory/constitution.md +50 -0
  34. package/.specify/scripts/bash/check-prerequisites.sh +166 -0
  35. package/.specify/scripts/bash/common.sh +156 -0
  36. package/.specify/scripts/bash/create-new-feature.sh +297 -0
  37. package/.specify/scripts/bash/setup-plan.sh +61 -0
  38. package/.specify/scripts/bash/update-agent-context.sh +799 -0
  39. package/.specify/templates/agent-file-template.md +28 -0
  40. package/.specify/templates/checklist-template.md +40 -0
  41. package/.specify/templates/plan-template.md +104 -0
  42. package/.specify/templates/spec-template.md +115 -0
  43. package/.specify/templates/tasks-template.md +251 -0
  44. package/CHANGES_SUMMARY.md +255 -0
  45. package/CLAUDE.md +92 -0
  46. package/GEMINI_SETUP.md +256 -0
  47. package/LICENSE +21 -0
  48. package/README.md +1171 -0
  49. package/REFACTOR_SUMMARY.md +267 -0
  50. package/bin/relentless.ts +536 -0
  51. package/bun.lock +352 -0
  52. package/eslint.config.js +37 -0
  53. package/package.json +61 -0
  54. package/prd.json.example +64 -0
  55. package/prompt.md +108 -0
  56. package/ralph.sh +80 -0
  57. package/relentless/config.json +38 -0
  58. package/relentless/features/.gitkeep +0 -0
  59. package/relentless/features/ghsk-ideas/prd.json +229 -0
  60. package/relentless/features/ghsk-ideas/prd.md +191 -0
  61. package/relentless/features/ghsk-ideas/progress.txt +408 -0
  62. package/relentless/prompt.md +79 -0
  63. package/skills/checklist/SKILL.md +349 -0
  64. package/skills/clarify/SKILL.md +476 -0
  65. package/skills/prd/SKILL.md +242 -0
  66. package/skills/relentless/SKILL.md +268 -0
  67. package/skills/tasks/SKILL.md +577 -0
  68. package/src/agents/amp.ts +115 -0
  69. package/src/agents/claude.ts +185 -0
  70. package/src/agents/codex.ts +89 -0
  71. package/src/agents/droid.ts +90 -0
  72. package/src/agents/gemini.ts +109 -0
  73. package/src/agents/index.ts +16 -0
  74. package/src/agents/opencode.ts +88 -0
  75. package/src/agents/registry.ts +95 -0
  76. package/src/agents/types.ts +101 -0
  77. package/src/config/index.ts +8 -0
  78. package/src/config/loader.ts +237 -0
  79. package/src/config/schema.ts +115 -0
  80. package/src/execution/index.ts +8 -0
  81. package/src/execution/router.ts +49 -0
  82. package/src/execution/runner.ts +512 -0
  83. package/src/index.ts +11 -0
  84. package/src/init/index.ts +7 -0
  85. package/src/init/scaffolder.ts +377 -0
  86. package/src/prd/analyzer.ts +512 -0
  87. package/src/prd/index.ts +11 -0
  88. package/src/prd/issues.ts +249 -0
  89. package/src/prd/parser.ts +281 -0
  90. package/src/prd/progress.ts +198 -0
  91. package/src/prd/types.ts +170 -0
  92. package/src/tui/App.tsx +85 -0
  93. package/src/tui/TUIRunner.tsx +400 -0
  94. package/src/tui/components/AgentOutput.tsx +45 -0
  95. package/src/tui/components/AgentStatus.tsx +64 -0
  96. package/src/tui/components/CurrentStory.tsx +66 -0
  97. package/src/tui/components/Header.tsx +49 -0
  98. package/src/tui/components/ProgressBar.tsx +39 -0
  99. package/src/tui/components/StoryGrid.tsx +86 -0
  100. package/src/tui/hooks/useTUI.ts +147 -0
  101. package/src/tui/hooks/useTimer.ts +51 -0
  102. package/src/tui/index.tsx +17 -0
  103. package/src/tui/theme.ts +41 -0
  104. package/src/tui/types.ts +77 -0
  105. package/templates/constitution.md +228 -0
  106. package/templates/plan.md +273 -0
  107. package/tsconfig.json +27 -0
@@ -0,0 +1,408 @@
1
+ # Progress Log: ghsk-ideas
2
+ Started: 2026-01-11T16:48:00.000Z
3
+
4
+ ## Codebase Patterns
5
+
6
+ ### Binary Installation Pattern
7
+ - Relentless uses package.json "bin" field to register global binary
8
+ - bin/relentless.ts has #!/usr/bin/env bun shebang for direct execution
9
+ - Global install: `bun install -g .` or from GitHub
10
+ - Binary location after global install: checked in user's PATH
11
+ - Alternative usage: bunx github:ArvorCo/Relentless for no-install execution
12
+
13
+ ### Documentation Update Strategy
14
+ - Used systematic grep search to find all shell script references
15
+ - Replaced shell script patterns (.sh, relentless.sh) with binary commands
16
+ - Updated multiple locations: README, CLAUDE.md, scaffolder, skills
17
+ - Ensured consistent command format: `relentless <command> --params`
18
+
19
+ ### Scaffolder Simplification
20
+ - Removed shell script copying logic from scaffolder
21
+ - Removed bin/ directory creation from init process
22
+ - Simplified project structure: only config.json, prompt.md, and features/
23
+ - Updated output messages to reflect binary-first approach
24
+
25
+ ---
26
+
27
+ ## 2026-01-11T19:00:00.000Z - US-000
28
+
29
+ ### What was implemented
30
+ - Converted Relentless from shell script to globally-installable binary
31
+ - Removed bin/relentless.sh completely
32
+ - Made bin/relentless.ts executable (chmod +x)
33
+ - Updated all documentation to use binary commands instead of shell script
34
+
35
+ ### Files changed
36
+ - bin/relentless.sh (deleted)
37
+ - bin/relentless.ts (made executable, already had correct shebang)
38
+ - README.md (replaced all shell script references with binary commands)
39
+ - CLAUDE.md (updated CLI usage patterns)
40
+ - src/init/scaffolder.ts (removed shell script copying logic)
41
+ - skills/relentless/SKILL.md (updated to use binary commands)
42
+ - relentless/bin/relentless.sh (deleted from project's relentless folder)
43
+ - relentless/features/ghsk-ideas/prd.json (set US-000 passes: true)
44
+
45
+ ### Learnings for future iterations:
46
+ - **package.json bin field**: Already correctly configured, pointing to bin/relentless.ts
47
+ - **Bun global install**: Works with `bun install -g .` but PATH verification may vary by system
48
+ - **Binary execution**: Can run with ./bin/relentless.ts, bun run bin/relentless.ts, or globally after install
49
+ - **Grep for cleanup**: Used grep to find all .sh references across codebase for thorough cleanup
50
+ - **Scaffolder simplification**: Removed unnecessary bin/ directory creation, cleaner structure
51
+ - **Documentation consistency**: Important to update ALL docs (README, CLAUDE.md, skills) in one pass
52
+ - **Typecheck and lint**: Both passed with 0 errors/warnings - clean implementation
53
+ - **Shell script removal**: Two files to remove - source bin/relentless.sh and relentless/bin/relentless.sh
54
+
55
+ ---
56
+ ## 2026-01-11T20:15:00.000Z - US-001
57
+
58
+ ### What was implemented
59
+ - Extended UserStory schema with dependencies, parallel, and phase fields
60
+ - Implemented validateDependencies() with circular dependency detection using DFS algorithm
61
+ - Updated getNextStory() to respect dependencies and only return stories with completed prerequisites
62
+ - Updated parser to extract Dependencies, Parallel, and Phase fields from PRD markdown
63
+ - Added support for parsing "Dependencies: US-001, US-002" format with comma or semicolon separators
64
+
65
+ ### Files changed
66
+ - src/prd/types.ts (extended schema, added validateDependencies and areDependenciesMet functions)
67
+ - src/prd/parser.ts (added dependency/parallel/phase parsing, updated createPRD mapping)
68
+ - relentless/features/ghsk-ideas/prd.json (set US-001 passes: true)
69
+
70
+ ### Learnings for future iterations:
71
+ - **Zod schema extensions**: Optional fields using .optional() work seamlessly with existing PRDs
72
+ - **Dependency validation**: DFS algorithm is effective for circular dependency detection
73
+ - **Parser pattern matching**: Used regex `/^\*\*Dependencies:?\*\*/i` for flexible markdown parsing
74
+ - **Dependencies filtering**: getNextStory() now validates dependencies first, then filters stories
75
+ - **areDependenciesMet helper**: Checks if all dependencies have passes: true before allowing execution
76
+ - **Parser field extraction**: Dependencies split by comma/semicolon, parallel accepts true/yes values
77
+ - **Backward compatibility**: Existing PRDs without dependencies work correctly (undefined treated as no dependencies)
78
+ - **Type safety**: All changes passed typecheck with 0 errors - Zod schema validation ensures consistency
79
+
80
+ ---
81
+ ## 2026-01-11T21:30:00.000Z - US-002
82
+
83
+ ### What was implemented
84
+ - Created comprehensive constitution.md template with clear structure for project governance
85
+ - Extended config loader to read, parse, and validate constitution.md
86
+ - Updated runner to include constitution in agent prompt context
87
+ - Updated scaffolder to copy constitution template during init
88
+ - Implemented MUST/SHOULD principle parsing and validation
89
+
90
+ ### Files changed
91
+ - templates/constitution.md (created with comprehensive governance structure)
92
+ - src/config/loader.ts (added constitution loading, parsing, and validation)
93
+ - src/execution/runner.ts (updated buildPrompt to include constitution)
94
+ - src/init/scaffolder.ts (added constitution template copying, updated output)
95
+ - relentless/features/ghsk-ideas/prd.json (set US-002 passes: true)
96
+
97
+ ### Learnings for future iterations:
98
+ - **Template structure**: Constitution uses MUST/SHOULD format for clear requirement levels
99
+ - **Regex parsing**: Used `/\*\*MUST\*\*\s+(.+)/` and `/\*\*SHOULD\*\*\s+(.+)/` to extract principles
100
+ - **Section tracking**: Parser tracks current section (## or ###) for principle attribution
101
+ - **Validation strategy**: Checks for at least some principles, both MUST and SHOULD present, and no empty text
102
+ - **Runner integration**: Constitution appended to prompt after base template, warns on validation issues
103
+ - **Scaffolder pattern**: Constitution copied from templates/ to relentless/ during init
104
+ - **relentlessRoot**: Defined as `import.meta.dir.replace("/src/init", "")` for template access
105
+ - **Optional loading**: Constitution is optional - if not present, agents continue without it
106
+ - **Typecheck and lint**: Both passed with 0 errors/warnings - clean implementation
107
+
108
+ ---
109
+
110
+ ---
111
+ ## 2026-01-11T22:00:00.000Z - US-003
112
+
113
+ ### What was implemented
114
+ - Created progress.ts module with YAML frontmatter parsing and serialization
115
+ - Implemented parseProgress() to handle both legacy and YAML frontmatter formats
116
+ - Implemented serializeProgress() to write progress files with YAML frontmatter
117
+ - Added loadProgress(), updateProgressMetadata(), and appendProgress() helper functions
118
+ - Implemented extractPatterns() to parse learnings from progress content
119
+ - Implemented syncPatternsFromContent() to update frontmatter patterns from content
120
+ - Updated scaffolder to create progress.txt with YAML frontmatter structure
121
+ - Updated Runner.ts to load progress metadata and include patterns in prompt context
122
+ - Updated Runner.ts to update frontmatter after each iteration (last_updated, stories_completed)
123
+ - Added js-yaml dependency for YAML parsing
124
+
125
+ ### Files changed
126
+ - package.json (added js-yaml and @types/js-yaml dependencies)
127
+ - src/prd/progress.ts (created new module with all progress metadata functions)
128
+ - src/prd/index.ts (exported progress functions)
129
+ - src/init/scaffolder.ts (updated createProgressTemplate to include YAML frontmatter)
130
+ - src/execution/runner.ts (added progress loading, pattern inclusion, metadata updates)
131
+ - relentless/features/ghsk-ideas/prd.json (set US-003 passes: true)
132
+
133
+ ### Learnings for future iterations:
134
+ - **YAML frontmatter structure**: Uses --- delimiters at start and end of frontmatter block
135
+ - **js-yaml library**: Simple API with yaml.load() and yaml.dump() for parsing and serialization
136
+ - **Backward compatibility**: parseProgress() handles legacy format without frontmatter gracefully
137
+ - **Pattern extraction**: Used regex to find "Learnings for future iterations:" sections and extract patterns
138
+ - **Pattern format**: Patterns formatted as **Key**: Description for easy identification
139
+ - **Runner integration**: Progress loaded in buildPrompt() to include patterns in agent context
140
+ - **Metadata updates**: After each iteration, sync patterns from content, then update metadata
141
+ - **Path calculation**: progressPath = join(dirname(prdPath), "progress.txt") for consistency
142
+ - **Error handling**: Progress metadata updates wrapped in try-catch to avoid breaking orchestration
143
+ - **Typecheck and lint**: Both passed with 0 errors/warnings - clean implementation
144
+ - **Frontmatter fields**: feature, started, last_updated, stories_completed, patterns array
145
+
146
+ ---
147
+ ## 2026-01-11T23:30:00.000Z - US-004
148
+
149
+ ### What was implemented
150
+ - Created comprehensive plan.md template in templates/ directory with all technical planning sections
151
+ - Extended scaffolder to support optional withPlan parameter in createFeature()
152
+ - Updated runner to load and append plan.md to prompt context when present in feature directory
153
+ - Plan.md template includes: Feature Overview, Technical Approach, Implementation Details, Integration Points, Testing Strategy, Security, Rollout, Monitoring, Open Questions, Alternatives, Dependencies/Risks, Success Criteria
154
+
155
+ ### Files changed
156
+ - templates/plan.md (created with comprehensive technical planning structure)
157
+ - src/init/scaffolder.ts (added CreateFeatureOptions interface, updated createFeature signature, added plan.md copying logic)
158
+ - src/execution/runner.ts (added plan.md loading and appending to prompt in buildPrompt function)
159
+ - relentless/features/ghsk-ideas/prd.json (set US-004 passes: true)
160
+
161
+ ### Learnings for future iterations:
162
+ - **Template structure**: Plan.md follows comprehensive technical design document pattern with 15+ sections
163
+ - **Optional feature integration**: Used options parameter pattern for backward compatibility
164
+ - **Path calculation**: planPath = join(dirname(progressPath), "plan.md") mirrors existing pattern
165
+ - **Prompt appending**: Plan content appended after patterns, before agent starts work
166
+ - **Template sections**: Includes problem statement, architecture, tech stack, data models, API design, file structure, integration points, testing, security, rollout, monitoring, open questions, alternatives, risks, and success criteria
167
+ - **Conditional loading**: Plan only included in prompt if file exists in feature directory
168
+ - **Scaffolder pattern**: Copy from templates/ to feature directory when withPlan: true
169
+ - **relentlessRoot constant**: Already defined for template access, reused for plan.md
170
+ - **Typecheck and lint**: Both passed with 0 errors/warnings - clean implementation
171
+ - **Interface export**: CreateFeatureOptions exported for external usage
172
+
173
+ ---
174
+ ## 2026-01-11T23:45:00.000Z - US-005
175
+
176
+ ### What was implemented
177
+ - Created comprehensive quality checklist generator skill in skills/checklist/SKILL.md
178
+ - Skill analyzes PRD to infer appropriate domain (database, frontend, full-stack, etc.)
179
+ - Generates 20-40 checklist items across 5-7 domain-specific categories
180
+ - Ensures 80% of items reference PRD sections or mark gaps/ambiguities
181
+ - Provides detailed examples for database, frontend, and full-stack features
182
+ - Multi-agent support: works with Claude Code, Amp, Gemini, Codex, Droid
183
+
184
+ ### Files changed
185
+ - skills/checklist/SKILL.md (created comprehensive skill documentation)
186
+ - relentless/features/ghsk-ideas/prd.json (set US-005 passes: true)
187
+
188
+ ### Learnings for future iterations:
189
+ - **Skill structure pattern**: skills/[name]/SKILL.md with frontmatter (name, description, triggers)
190
+ - **Domain inference approach**: Analyze user stories to determine primary/secondary domains
191
+ - **Checklist categories**: 5-7 categories tailored to domain (Schema, Backend, Frontend, Integration, Testing, Security, Performance)
192
+ - **Item distribution**: 60% referenced items, 20% gaps/ambiguities, 20% best practices
193
+ - **Reference format**: [US-XXX], [FR-X], [Gap], [Ambiguity], [Edge Case], [Security]
194
+ - **Multi-agent compatibility**: Skills should work across agents by using standard capabilities (file read, text analysis, file write)
195
+ - **Example-driven documentation**: Comprehensive examples help agents understand expected output
196
+ - **Coverage tracking**: Include summary section with item counts and coverage percentage
197
+ - **Gap identification**: Common patterns - error handling, loading states, edge cases, security, performance, accessibility
198
+ - **Category selection guide**: Detailed guidance for database, frontend, and full-stack features
199
+ - **Typecheck and lint**: Both passed with 0 errors/warnings - clean implementation
200
+
201
+ ---
202
+ ## 2026-01-11T17:20:00.000Z - US-006
203
+
204
+ ### What was implemented
205
+ - Created comprehensive analyzer module in src/prd/analyzer.ts
206
+ - Implemented analyzeConsistency() function with 5 consistency categories
207
+ - Added analyze command to bin/relentless.ts CLI
208
+ - Exported analyzer functions from src/prd/index.ts
209
+ - Analyzer checks: Schema Validation, Dependency Consistency, File Existence, Story Completeness, Progress Log Sync
210
+ - Implemented formatReport() for beautiful console output with severity icons and coverage bars
211
+
212
+ ### Files changed
213
+ - src/prd/analyzer.ts (created new module with consistency analysis logic)
214
+ - src/prd/index.ts (exported analyzer functions)
215
+ - bin/relentless.ts (added analyze command with --feature and --dir options)
216
+ - relentless/features/ghsk-ideas/prd.json (set US-006 passes: true)
217
+
218
+ ### Learnings for future iterations:
219
+ - **Consistency categories**: 5 categories cover most common issues - schema, dependencies, files, completeness, sync
220
+ - **Severity levels**: critical, warning, info provide clear prioritization of issues
221
+ - **ConsistencyIssue interface**: category, severity, message, recommendation, storyId fields cover all use cases
222
+ - **AnalysisReport structure**: feature, timestamp, issues array, summary stats, coverage by phase
223
+ - **Schema validation**: Check for missing required fields (project, branchName, description) and story fields (id, title, acceptanceCriteria)
224
+ - **Dependency checking**: Detect invalid dependencies, circular dependencies using DFS, and completion inconsistencies
225
+ - **File existence checks**: prd.md, progress.txt, plan.md, constitution.md with appropriate severity levels
226
+ - **Story completeness**: Check for duplicate IDs, minimal acceptance criteria, notes on incomplete stories
227
+ - **Progress log sync**: Verify completed stories are mentioned in progress.txt
228
+ - **Coverage calculation**: Group by phase if available, otherwise show overall coverage with percentage
229
+ - **Report formatting**: Box-drawing characters, severity icons (🔴🟡🔵), progress bars with █ and ░
230
+ - **Exit codes**: Exit with error (1) if critical issues, warning message for warnings, success (0) if clean
231
+ - **Graceful handling**: Handle missing files without crashing, provide helpful recommendations
232
+ - **Typecheck and lint**: Both passed with 0 errors/warnings - clean implementation
233
+ - **CLI pattern**: Consistent with other commands - requiredOption for --feature, optional --dir
234
+
235
+ ---
236
+ ## 2026-01-11T17:30:00.000Z - US-007
237
+
238
+ ### What was implemented
239
+ - Created comprehensive Interactive Clarification Skill in skills/clarify/SKILL.md
240
+ - Skill supports scanning PRD across 9 ambiguity categories
241
+ - Generates max 5 highly targeted questions with multiple-choice options
242
+ - Includes [NEEDS CLARIFICATION] marker system (max 3 per spec)
243
+ - Provides clarification-log.md format for tracking questions and answers
244
+ - Supports PRD in-place updates after clarification
245
+ - Multi-agent support: Claude Code, Amp, Gemini, Codex, Droid
246
+
247
+ ### Files changed
248
+ - skills/clarify/SKILL.md (created comprehensive skill documentation)
249
+ - relentless/features/ghsk-ideas/prd.json (set US-007 passes: true)
250
+
251
+ ### Learnings for future iterations:
252
+ - **9 ambiguity categories**: Behavioral, Data, UI/UX, Integration, Permission/Security, Performance/Scale, Error Handling, State Management, Edge Case
253
+ - **Question format pattern**: Context → Question → Options (A/B/C/D) → Impact → Recommendation
254
+ - **Marker system**: [NEEDS CLARIFICATION: {category}] placed inline, max 3 per spec to avoid clutter
255
+ - **Interactive workflow**: Round 1 (analysis + questions) → Round 2+ (update PRD based on answers)
256
+ - **Clarification log structure**: Rounds with questions, answers, actions taken, summary with stats
257
+ - **PRD update strategy**: Update acceptance criteria, functional requirements, add new sections as needed
258
+ - **Question prioritization**: Focus on blocking, user-facing, architectural, security-critical items
259
+ - **Ambiguity detection heuristics**: Look for vague terms like "appropriately", "properly", "user-friendly"
260
+ - **Multi-round clarification**: Max 3 rounds - foundational → integration/edge cases → polish/performance
261
+ - **Multi-agent compatibility**: Skills should work across agents by using standard capabilities
262
+ - **Stopping conditions**: All critical ambiguities resolved, user satisfaction, or 3 rounds completed
263
+ - **Typecheck and lint**: Both passed with 0 errors/warnings - clean implementation
264
+
265
+ ---
266
+ ## 2026-01-11T17:45:00.000Z - US-008
267
+
268
+ ### What was implemented
269
+ - Created comprehensive Dependency-Ordered Task Breakdown Skill in skills/tasks/SKILL.md
270
+ - Skill generates phase structure: Setup → Foundation → Stories → Polish
271
+ - Tasks formatted with IDs (T001+), phase markers, story labels [US-X]
272
+ - Parallel tasks marked with [P] for tasks that can run concurrently
273
+ - Ensures each story is independently testable with explicit verification tasks
274
+ - Provides detailed examples for simple linear features and complex parallel features
275
+ - Multi-agent support: Claude Code, Amp, Gemini, Codex, Droid
276
+
277
+ ### Files changed
278
+ - skills/tasks/SKILL.md (created comprehensive skill documentation)
279
+ - relentless/features/ghsk-ideas/prd.json (set US-008 passes: true)
280
+
281
+ ### Learnings for future iterations:
282
+ - **4-phase structure**: Setup (dependencies) → Foundation (infrastructure) → Stories (features) → Polish (refinements)
283
+ - **Task ID format**: T001, T002, T003... (3-digit zero-padded for clear ordering)
284
+ - **Task format pattern**: `- [ ] **T[NNN]** [Phase X] [Story Label] Description [Parallel Marker]`
285
+ - **Phase 0 (Setup)**: Project structure, dependencies, config - required by all other phases
286
+ - **Phase 1 (Foundation)**: Core infrastructure, schemas, base utilities - referenced by multiple stories
287
+ - **Phase 2 (Stories)**: User-facing features from PRD - maps 1:1 or 1:N to user stories
288
+ - **Phase 3 (Polish)**: Refinements, optimizations, documentation - enhances existing functionality
289
+ - **Parallel markers [P]**: Used when tasks touch different files, have no shared dependencies, can be verified independently
290
+ - **Independent testability**: Each story includes explicit test/verification tasks (typecheck, lint)
291
+ - **Dependency ordering**: Within phases, tasks sequential by default unless marked [P]; across phases, strict order
292
+ - **Task granularity**: Right-sized tasks should take 15-60 minutes each
293
+ - **Circular dependency detection**: Skill includes guidance for detecting and resolving circular dependencies
294
+ - **Research task pattern**: Stories with research flag get two-phase breakdown (research → implementation)
295
+ - **Template structure**: Comprehensive template with overview, phase sections, summary statistics
296
+ - **Examples provided**: Simple linear feature and complex parallel feature examples for clarity
297
+ - **Quality checklist**: 13-point verification checklist before saving tasks.md
298
+ - **Multi-agent compatibility**: Works across agents using standard capabilities (file read, text analysis, file write)
299
+ - **Common pitfalls**: Documented avoid/do patterns for task size, dependencies, testing, grouping
300
+ - **Typecheck and lint**: Both passed with 0 errors/warnings - clean implementation
301
+
302
+ ---
303
+ ## 2026-01-11T20:00:00.000Z - US-009
304
+
305
+ ### What was implemented
306
+ - Extended UserStory schema with optional research field
307
+ - Implemented two-phase execution in Runner for stories with research: true flag
308
+ - Created research directory creation and management in runner
309
+ - Added research findings loading in buildPrompt() for second phase
310
+ - Updated prompt template with clear research phase instructions
311
+ - Added research field parsing support in PRD markdown parser
312
+
313
+ ### Files changed
314
+ - src/prd/types.ts (added research: z.boolean().optional() to UserStorySchema)
315
+ - src/execution/runner.ts (added two-phase execution logic, research directory creation, research findings loading)
316
+ - src/prd/parser.ts (added research field parsing and mapping in createPRD)
317
+ - relentless/prompt.md (added Research Phase and Implementation Phase sections)
318
+ - relentless/features/ghsk-ideas/prd.json (set US-009 passes: true)
319
+
320
+ ### Learnings for future iterations:
321
+ - **Two-phase execution pattern**: Check for research flag and research file existence to determine phase
322
+ - **Research directory structure**: research/<story-id>.md within feature directory
323
+ - **Phase detection**: needsResearch = story.research && !existsSync(researchPath)
324
+ - **Research phase workflow**: Phase 1 explores and documents, Phase 2 implements using findings
325
+ - **Prompt building signature**: Extended buildPrompt() with optional story parameter for context-aware loading
326
+ - **Research findings integration**: Loaded automatically in buildPrompt if research file exists
327
+ - **Parser pattern**: Added Research: true/yes parsing similar to Parallel flag parsing
328
+ - **Schema extension**: Optional boolean field using .optional() maintains backward compatibility
329
+ - **Directory creation**: Use mkdirSync with { recursive: true } for nested directory creation
330
+ - **Rate limit handling**: Research phase includes rate limit detection and fallback logic
331
+ - **Visual feedback**: Different console messages for research vs implementation phases
332
+ - **Iteration continuation**: Research phase can trigger agent fallback and iteration retry
333
+ - **Typecheck and lint**: Both passed with 0 errors/warnings - clean implementation
334
+ - **Import additions**: Added mkdirSync from node:fs for directory creation
335
+
336
+ ---
337
+ ## 2026-01-11T17:35:00.000Z - US-010
338
+
339
+ ### What was implemented
340
+ - Extended CreateFeatureOptions interface with autoNumber field
341
+ - Implemented getNextFeatureNumber() helper to find highest existing number
342
+ - Updated createFeature() to generate numbered directory names (001-feature-name)
343
+ - Updated generateBranchName() to prepend number prefix from feature name to branch name
344
+ - Extended createPRD() to accept optional featureName parameter
345
+ - Added --auto-number flag to features create CLI command
346
+ - Added --auto-number flag to convert CLI command
347
+ - Updated CLI commands to extract and use final feature name in output
348
+
349
+ ### Files changed
350
+ - src/init/scaffolder.ts (added autoNumber option, getNextFeatureNumber helper, numbered directory creation)
351
+ - src/prd/parser.ts (updated generateBranchName and createPRD to support number prefix)
352
+ - bin/relentless.ts (added --auto-number flags to features create and convert commands)
353
+ - relentless/features/ghsk-ideas/prd.json (set US-010 passes: true)
354
+
355
+ ### Learnings for future iterations:
356
+ - **Auto-numbering pattern**: Extract number from existing features with regex /^(\d{3})-/
357
+ - **Number formatting**: Use .padStart(3, "0") for consistent 3-digit zero-padded numbers
358
+ - **Next number calculation**: Find max of existing numbers and add 1, default to 1 if none exist
359
+ - **Feature name handling**: Auto-number creates final name (001-feature) then uses it everywhere
360
+ - **Branch name integration**: Extract number prefix from feature name and prepend to kebab-case project name
361
+ - **Optional parameter pattern**: featureName parameter in createPRD and generateBranchName allows number-aware branch generation
362
+ - **CLI flag pattern**: --auto-number boolean flag on both create and convert commands
363
+ - **Backward compatibility**: Non-numbered features still work - regex match returns null for non-numbered names
364
+ - **listFeatures compatibility**: No changes needed - function returns directory names as-is
365
+ - **Number extraction logic**: Shared pattern in convert command and getNextFeatureNumber helper
366
+ - **Typecheck and lint**: Both passed with 0 errors/warnings - clean implementation
367
+ - **Feature name extraction**: Use .split("/").pop() to get final directory name from full path
368
+
369
+ ---
370
+ ## 2026-01-11T21:00:00.000Z - US-011
371
+
372
+ ### What was implemented
373
+ - Created comprehensive GitHub Issues Generator module in src/prd/issues.ts
374
+ - Implemented validateGitRemote() to ensure safety before creating issues
375
+ - Implemented inferLabels() to automatically tag issues with type, priority, phase, research labels
376
+ - Implemented formatIssueBody() to create well-formatted issue bodies with description, acceptance criteria, dependencies, phase, parallel, research indicators, and notes
377
+ - Implemented createIssue() to create GitHub issues via gh CLI
378
+ - Added checkGhCLI() to validate gh CLI is installed
379
+ - Implemented generateGitHubIssues() main orchestration function with dry-run and filtering options
380
+ - Added issues command to bin/relentless.ts CLI with --all and --dry-run flags
381
+ - Exported issues module from src/prd/index.ts
382
+
383
+ ### Files changed
384
+ - src/prd/issues.ts (created new module with GitHub issues generation logic)
385
+ - src/prd/index.ts (exported issues module)
386
+ - bin/relentless.ts (added issues command with comprehensive options)
387
+ - relentless/features/ghsk-ideas/prd.json (set US-011 passes: true)
388
+
389
+ ### Learnings for future iterations:
390
+ - **Git remote validation**: Parse both SSH (git@github.com:owner/repo) and HTTPS (https://github.com/owner/repo) formats
391
+ - **Regex patterns for remotes**: Use capturing groups to extract owner and repo from various URL formats
392
+ - **Label inference strategy**: Combine story type (database, ui, api, test, refactor, docs, general), priority (high/medium/low), phase, and research markers
393
+ - **Priority label mapping**: Priority 1-3 = high, 4-6 = medium, 7+ = low
394
+ - **Issue body formatting**: Use markdown with ## headers, checkboxes for acceptance criteria, dependency lists, and warning indicators
395
+ - **gh CLI integration**: Use gh issue create --title --body --label for issue creation
396
+ - **Process handling in Bun**: Use Bun.spawn() with stdout/stderr readers and exitCode checking
397
+ - **Dry-run pattern**: Preview operations without side effects, helpful for validation
398
+ - **onlyIncomplete filter**: Default to only creating issues for incomplete stories, --all flag for all stories
399
+ - **Error accumulation**: Collect errors during batch operations, continue on individual failures
400
+ - **Safety checks**: Validate gh CLI installation and git remote before any destructive operations
401
+ - **Issue URL extraction**: gh CLI returns the created issue URL in stdout
402
+ - **Dependency mapping**: Include dependencies in issue body for manual linking (gh CLI doesn't support automated relationships)
403
+ - **Research indicator**: Add ⚠️ warning emoji for stories requiring research phase
404
+ - **Parallel indicator**: Document stories that can run in parallel for better planning
405
+ - **Typecheck and lint**: Both passed with 0 errors/warnings - clean implementation
406
+ - **CLI option pattern**: --dry-run for preview, --all for including completed stories, --feature required
407
+
408
+ ---
@@ -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