@arvorco/relentless 0.1.26 → 0.1.27
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/.claude/skills/constitution/SKILL.md +1 -1
- package/.claude/skills/plan/SKILL.md +1 -1
- package/.claude/skills/specify/SKILL.md +1 -1
- package/package.json +1 -1
- package/src/init/scaffolder.ts +1 -1
- package/.claude/skills/constitution/templates/constitution-template.md +0 -228
- package/templates/plan.md +0 -273
- /package/.claude/skills/checklist/templates/{checklist-template.md → checklist.md} +0 -0
- /package/{templates → .claude/skills/constitution/templates}/constitution.md +0 -0
- /package/{templates → .claude/skills/constitution/templates}/prompt.md +0 -0
- /package/.claude/skills/plan/templates/{plan-template.md → plan.md} +0 -0
- /package/.claude/skills/specify/templates/{spec-template.md → spec.md} +0 -0
- /package/.claude/skills/tasks/templates/{tasks-template.md → tasks.md} +0 -0
|
@@ -54,7 +54,7 @@ Ask essential questions about the project:
|
|
|
54
54
|
|
|
55
55
|
## Step 2: Generate Constitution
|
|
56
56
|
|
|
57
|
-
Load the template from `templates/constitution
|
|
57
|
+
Load the template from `templates/constitution.md` and:
|
|
58
58
|
|
|
59
59
|
1. Replace all `[PLACEHOLDER]` tokens with concrete values from user answers
|
|
60
60
|
2. Add/remove principles based on project needs (template is a starting point)
|
|
@@ -48,7 +48,7 @@ This will output JSON with:
|
|
|
48
48
|
|
|
49
49
|
## Step 3: Generate Specification
|
|
50
50
|
|
|
51
|
-
Using the template at `templates/spec
|
|
51
|
+
Using the template at `templates/spec.md`, create a specification with:
|
|
52
52
|
|
|
53
53
|
### Required Sections:
|
|
54
54
|
|
package/package.json
CHANGED
package/src/init/scaffolder.ts
CHANGED
|
@@ -414,7 +414,7 @@ export async function createFeature(
|
|
|
414
414
|
|
|
415
415
|
// Copy plan.md template if requested
|
|
416
416
|
if (options.withPlan) {
|
|
417
|
-
const planSourcePath = join(relentlessRoot, "templates", "plan.md");
|
|
417
|
+
const planSourcePath = join(relentlessRoot, ".claude", "skills", "plan", "templates", "plan.md");
|
|
418
418
|
const planDestPath = join(featureDir, "plan.md");
|
|
419
419
|
|
|
420
420
|
if (existsSync(planSourcePath)) {
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
# Project Constitution
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
This document defines the governing principles, patterns, and constraints for this project. All agents and developers MUST follow these guidelines when working on the codebase.
|
|
6
|
-
|
|
7
|
-
## Core Principles
|
|
8
|
-
|
|
9
|
-
### Architecture
|
|
10
|
-
|
|
11
|
-
**MUST** follow these architectural patterns:
|
|
12
|
-
- Follow existing code structure and organization patterns
|
|
13
|
-
- Keep modules focused and single-purpose
|
|
14
|
-
- Use dependency injection where appropriate
|
|
15
|
-
|
|
16
|
-
**SHOULD** consider these best practices:
|
|
17
|
-
- Prefer composition over inheritance
|
|
18
|
-
- Keep functions small and focused
|
|
19
|
-
- Write self-documenting code
|
|
20
|
-
|
|
21
|
-
### Code Quality
|
|
22
|
-
|
|
23
|
-
**MUST** maintain these quality standards:
|
|
24
|
-
- All commits MUST pass typecheck with 0 errors
|
|
25
|
-
- All commits MUST pass lint with 0 warnings
|
|
26
|
-
- All new features MUST include appropriate tests
|
|
27
|
-
- All code MUST be formatted consistently
|
|
28
|
-
|
|
29
|
-
**SHOULD** strive for:
|
|
30
|
-
- High test coverage (aim for >80%)
|
|
31
|
-
- Clear, descriptive variable and function names
|
|
32
|
-
- Comprehensive error handling
|
|
33
|
-
|
|
34
|
-
### Version Control
|
|
35
|
-
|
|
36
|
-
**MUST** follow these Git practices:
|
|
37
|
-
- Write clear, descriptive commit messages
|
|
38
|
-
- Reference user story IDs in commits: `feat: [US-XXX] - Description`
|
|
39
|
-
- Keep commits focused and atomic
|
|
40
|
-
- Do not commit broken code
|
|
41
|
-
|
|
42
|
-
**SHOULD** maintain:
|
|
43
|
-
- Clean commit history
|
|
44
|
-
- Meaningful branch names
|
|
45
|
-
- Updated documentation with code changes
|
|
46
|
-
|
|
47
|
-
## Technology Stack
|
|
48
|
-
|
|
49
|
-
### Language & Runtime
|
|
50
|
-
|
|
51
|
-
- **TypeScript** - Primary language
|
|
52
|
-
- **Bun** - Runtime environment (not Node.js)
|
|
53
|
-
- **Zod** - Schema validation
|
|
54
|
-
|
|
55
|
-
### Key Libraries
|
|
56
|
-
|
|
57
|
-
- Commander - CLI parsing
|
|
58
|
-
- Chalk - Terminal formatting
|
|
59
|
-
- Execa - Process execution
|
|
60
|
-
|
|
61
|
-
## File Organization
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
project/
|
|
65
|
-
├── bin/ # CLI entry points
|
|
66
|
-
├── src/ # Source code
|
|
67
|
-
│ ├── agents/ # Agent adapters
|
|
68
|
-
│ ├── config/ # Configuration
|
|
69
|
-
│ ├── execution/ # Orchestration
|
|
70
|
-
│ ├── init/ # Project scaffolding
|
|
71
|
-
│ └── prd/ # PRD handling
|
|
72
|
-
├── templates/ # Template files
|
|
73
|
-
├── skills/ # Agent skills
|
|
74
|
-
└── relentless/ # Relentless workspace
|
|
75
|
-
├── config.json
|
|
76
|
-
├── prompt.md
|
|
77
|
-
└── features/
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## Coding Standards
|
|
81
|
-
|
|
82
|
-
### TypeScript
|
|
83
|
-
|
|
84
|
-
**MUST** follow:
|
|
85
|
-
- Use strict TypeScript mode
|
|
86
|
-
- Avoid `any` type - use `unknown` or proper types
|
|
87
|
-
- Export types alongside implementations
|
|
88
|
-
- Use Zod schemas for runtime validation
|
|
89
|
-
|
|
90
|
-
**SHOULD** prefer:
|
|
91
|
-
- Interface for public APIs
|
|
92
|
-
- Type for unions and intersections
|
|
93
|
-
- Explicit return types on public functions
|
|
94
|
-
|
|
95
|
-
### Error Handling
|
|
96
|
-
|
|
97
|
-
**MUST** implement:
|
|
98
|
-
- Descriptive error messages
|
|
99
|
-
- Proper error types
|
|
100
|
-
- Validation at system boundaries
|
|
101
|
-
- Graceful degradation where appropriate
|
|
102
|
-
|
|
103
|
-
**SHOULD** include:
|
|
104
|
-
- Context in error messages
|
|
105
|
-
- Recovery suggestions
|
|
106
|
-
- Logging for debugging
|
|
107
|
-
|
|
108
|
-
### Testing
|
|
109
|
-
|
|
110
|
-
**MUST** test:
|
|
111
|
-
- Core business logic
|
|
112
|
-
- Edge cases and error conditions
|
|
113
|
-
- Integration points
|
|
114
|
-
- CLI commands
|
|
115
|
-
|
|
116
|
-
**SHOULD** test:
|
|
117
|
-
- Helper functions
|
|
118
|
-
- Utilities
|
|
119
|
-
- Type guards
|
|
120
|
-
|
|
121
|
-
## Documentation
|
|
122
|
-
|
|
123
|
-
**MUST** document:
|
|
124
|
-
- Public APIs and interfaces
|
|
125
|
-
- Complex algorithms or logic
|
|
126
|
-
- Breaking changes in commits
|
|
127
|
-
- Setup and installation steps
|
|
128
|
-
|
|
129
|
-
**SHOULD** document:
|
|
130
|
-
- Configuration options
|
|
131
|
-
- Architecture decisions
|
|
132
|
-
- Common workflows
|
|
133
|
-
- Troubleshooting steps
|
|
134
|
-
|
|
135
|
-
## Security
|
|
136
|
-
|
|
137
|
-
**MUST** ensure:
|
|
138
|
-
- No secrets committed to git
|
|
139
|
-
- Proper input validation
|
|
140
|
-
- Safe file system operations
|
|
141
|
-
- Minimal permissions required
|
|
142
|
-
|
|
143
|
-
**SHOULD** consider:
|
|
144
|
-
- Rate limiting where appropriate
|
|
145
|
-
- Audit logs for sensitive operations
|
|
146
|
-
- Security updates for dependencies
|
|
147
|
-
|
|
148
|
-
## Performance
|
|
149
|
-
|
|
150
|
-
**MUST** maintain:
|
|
151
|
-
- Fast startup time (<1s)
|
|
152
|
-
- Responsive CLI commands
|
|
153
|
-
- Efficient file operations
|
|
154
|
-
- Minimal memory footprint
|
|
155
|
-
|
|
156
|
-
**SHOULD** optimize:
|
|
157
|
-
- Parallel operations where safe
|
|
158
|
-
- Caching for repeated operations
|
|
159
|
-
- Lazy loading of heavy modules
|
|
160
|
-
|
|
161
|
-
## Constraints
|
|
162
|
-
|
|
163
|
-
### Dependencies
|
|
164
|
-
|
|
165
|
-
**MUST NOT**:
|
|
166
|
-
- Add dependencies without justification
|
|
167
|
-
- Include deprecated packages
|
|
168
|
-
- Use packages with known security issues
|
|
169
|
-
|
|
170
|
-
**SHOULD**:
|
|
171
|
-
- Prefer built-in solutions over dependencies
|
|
172
|
-
- Keep dependencies minimal and focused
|
|
173
|
-
- Regularly update dependencies
|
|
174
|
-
|
|
175
|
-
### Backwards Compatibility
|
|
176
|
-
|
|
177
|
-
**MUST**:
|
|
178
|
-
- Maintain compatibility with existing PRDs
|
|
179
|
-
- Provide migration paths for breaking changes
|
|
180
|
-
- Version configuration formats
|
|
181
|
-
|
|
182
|
-
**SHOULD**:
|
|
183
|
-
- Deprecate features before removal
|
|
184
|
-
- Provide clear upgrade documentation
|
|
185
|
-
- Support at least 2 major versions
|
|
186
|
-
|
|
187
|
-
## Agent-Specific Guidelines
|
|
188
|
-
|
|
189
|
-
### For All Agents
|
|
190
|
-
|
|
191
|
-
**MUST**:
|
|
192
|
-
- Read progress.txt before starting work
|
|
193
|
-
- Work on ONE story per iteration
|
|
194
|
-
- Update PRD after completing a story
|
|
195
|
-
- Append learnings to progress.txt
|
|
196
|
-
- Run all quality checks before committing
|
|
197
|
-
|
|
198
|
-
**SHOULD**:
|
|
199
|
-
- Review existing code before modifying
|
|
200
|
-
- Follow established patterns
|
|
201
|
-
- Ask questions when unclear
|
|
202
|
-
- Document non-obvious decisions
|
|
203
|
-
|
|
204
|
-
### Iteration Workflow
|
|
205
|
-
|
|
206
|
-
1. Read PRD to find next incomplete story
|
|
207
|
-
2. Read progress.txt for context and patterns
|
|
208
|
-
3. Review relevant existing code
|
|
209
|
-
4. Implement the single story
|
|
210
|
-
5. Run typecheck and lint
|
|
211
|
-
6. Run tests if applicable
|
|
212
|
-
7. Commit with proper message format
|
|
213
|
-
8. Update PRD passes: true
|
|
214
|
-
9. Append to progress.txt
|
|
215
|
-
10. Check if all stories complete
|
|
216
|
-
|
|
217
|
-
## Review and Updates
|
|
218
|
-
|
|
219
|
-
This constitution should be:
|
|
220
|
-
- **Reviewed** at project milestones
|
|
221
|
-
- **Updated** when patterns emerge
|
|
222
|
-
- **Referenced** in code reviews
|
|
223
|
-
- **Enforced** in CI/CD pipelines
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
Last Updated: YYYY-MM-DD
|
|
228
|
-
Version: 1.0.0
|
package/templates/plan.md
DELETED
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
# Technical Planning Document
|
|
2
|
-
|
|
3
|
-
## Feature Overview
|
|
4
|
-
|
|
5
|
-
**Feature Name**: [Feature Name]
|
|
6
|
-
**PRD Reference**: [Link or path to PRD]
|
|
7
|
-
**Planning Date**: [YYYY-MM-DD]
|
|
8
|
-
**Author**: [Name or Agent ID]
|
|
9
|
-
|
|
10
|
-
### Problem Statement
|
|
11
|
-
|
|
12
|
-
[Describe the problem this feature solves. What pain point are we addressing?]
|
|
13
|
-
|
|
14
|
-
### Goals and Non-Goals
|
|
15
|
-
|
|
16
|
-
**Goals:**
|
|
17
|
-
- [Goal 1]
|
|
18
|
-
- [Goal 2]
|
|
19
|
-
- [Goal 3]
|
|
20
|
-
|
|
21
|
-
**Non-Goals:**
|
|
22
|
-
- [What this feature will NOT do]
|
|
23
|
-
- [Scope limitations]
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Technical Approach
|
|
28
|
-
|
|
29
|
-
### High-Level Architecture
|
|
30
|
-
|
|
31
|
-
[Describe the overall architectural approach. Include diagrams if helpful.]
|
|
32
|
-
|
|
33
|
-
### Technology Stack
|
|
34
|
-
|
|
35
|
-
**Languages/Frameworks:**
|
|
36
|
-
- [Technology 1]: [Justification]
|
|
37
|
-
- [Technology 2]: [Justification]
|
|
38
|
-
|
|
39
|
-
**Libraries/Dependencies:**
|
|
40
|
-
- [Dependency 1]: [Version] - [Purpose]
|
|
41
|
-
- [Dependency 2]: [Version] - [Purpose]
|
|
42
|
-
|
|
43
|
-
### Design Patterns
|
|
44
|
-
|
|
45
|
-
[Which design patterns will be used and why?]
|
|
46
|
-
- [Pattern 1]: [Rationale]
|
|
47
|
-
- [Pattern 2]: [Rationale]
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Implementation Details
|
|
52
|
-
|
|
53
|
-
### Data Models
|
|
54
|
-
|
|
55
|
-
```typescript
|
|
56
|
-
// Example schema definitions
|
|
57
|
-
interface Example {
|
|
58
|
-
field: string;
|
|
59
|
-
// ...
|
|
60
|
-
}
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### API Design
|
|
64
|
-
|
|
65
|
-
**Endpoints/Functions:**
|
|
66
|
-
- `functionName(params)`: [Description]
|
|
67
|
-
- `anotherFunction(params)`: [Description]
|
|
68
|
-
|
|
69
|
-
**Request/Response Formats:**
|
|
70
|
-
```json
|
|
71
|
-
{
|
|
72
|
-
"example": "payload"
|
|
73
|
-
}
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### File Structure
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
src/
|
|
80
|
-
├── feature/
|
|
81
|
-
│ ├── module1.ts
|
|
82
|
-
│ ├── module2.ts
|
|
83
|
-
│ └── types.ts
|
|
84
|
-
└── tests/
|
|
85
|
-
└── feature.test.ts
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## Integration Points
|
|
91
|
-
|
|
92
|
-
### Existing Systems
|
|
93
|
-
|
|
94
|
-
- **System 1**: [How does this feature integrate?]
|
|
95
|
-
- **System 2**: [Dependencies or interactions]
|
|
96
|
-
|
|
97
|
-
### Database Changes
|
|
98
|
-
|
|
99
|
-
**Schema Updates:**
|
|
100
|
-
- [Table/Collection 1]: [Changes]
|
|
101
|
-
- [Table/Collection 2]: [Changes]
|
|
102
|
-
|
|
103
|
-
**Migration Strategy:**
|
|
104
|
-
- [Backward compatibility considerations]
|
|
105
|
-
- [Data migration approach]
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## Testing Strategy
|
|
110
|
-
|
|
111
|
-
### Unit Tests
|
|
112
|
-
|
|
113
|
-
- [What units will be tested?]
|
|
114
|
-
- [Coverage goals]
|
|
115
|
-
|
|
116
|
-
### Integration Tests
|
|
117
|
-
|
|
118
|
-
- [Integration scenarios]
|
|
119
|
-
- [External dependencies to mock]
|
|
120
|
-
|
|
121
|
-
### E2E Tests
|
|
122
|
-
|
|
123
|
-
- [User flows to test]
|
|
124
|
-
- [Critical paths]
|
|
125
|
-
|
|
126
|
-
### Performance Tests
|
|
127
|
-
|
|
128
|
-
- [Load testing requirements]
|
|
129
|
-
- [Performance benchmarks]
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
## Security Considerations
|
|
134
|
-
|
|
135
|
-
### Authentication/Authorization
|
|
136
|
-
|
|
137
|
-
- [How is access controlled?]
|
|
138
|
-
- [Role-based permissions]
|
|
139
|
-
|
|
140
|
-
### Data Privacy
|
|
141
|
-
|
|
142
|
-
- [PII handling]
|
|
143
|
-
- [Encryption requirements]
|
|
144
|
-
|
|
145
|
-
### Vulnerability Analysis
|
|
146
|
-
|
|
147
|
-
- [Potential security risks]
|
|
148
|
-
- [Mitigation strategies]
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## Rollout Strategy
|
|
153
|
-
|
|
154
|
-
### Feature Flags
|
|
155
|
-
|
|
156
|
-
- [Which flags to use?]
|
|
157
|
-
- [Gradual rollout plan]
|
|
158
|
-
|
|
159
|
-
### Deployment Steps
|
|
160
|
-
|
|
161
|
-
1. [Step 1]
|
|
162
|
-
2. [Step 2]
|
|
163
|
-
3. [Step 3]
|
|
164
|
-
|
|
165
|
-
### Rollback Plan
|
|
166
|
-
|
|
167
|
-
- [How to revert if needed]
|
|
168
|
-
- [Data cleanup strategy]
|
|
169
|
-
|
|
170
|
-
---
|
|
171
|
-
|
|
172
|
-
## Monitoring and Observability
|
|
173
|
-
|
|
174
|
-
### Metrics
|
|
175
|
-
|
|
176
|
-
- [Metric 1]: [What it measures]
|
|
177
|
-
- [Metric 2]: [What it measures]
|
|
178
|
-
|
|
179
|
-
### Logging
|
|
180
|
-
|
|
181
|
-
- [Key events to log]
|
|
182
|
-
- [Log levels and structured logging approach]
|
|
183
|
-
|
|
184
|
-
### Alerting
|
|
185
|
-
|
|
186
|
-
- [What triggers alerts?]
|
|
187
|
-
- [Escalation procedures]
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## Open Questions
|
|
192
|
-
|
|
193
|
-
- [ ] [Question 1]
|
|
194
|
-
- [ ] [Question 2]
|
|
195
|
-
- [ ] [Question 3]
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
## Alternatives Considered
|
|
200
|
-
|
|
201
|
-
### Alternative 1: [Name]
|
|
202
|
-
|
|
203
|
-
**Pros:**
|
|
204
|
-
- [Pro 1]
|
|
205
|
-
- [Pro 2]
|
|
206
|
-
|
|
207
|
-
**Cons:**
|
|
208
|
-
- [Con 1]
|
|
209
|
-
- [Con 2]
|
|
210
|
-
|
|
211
|
-
**Why not chosen:** [Reasoning]
|
|
212
|
-
|
|
213
|
-
### Alternative 2: [Name]
|
|
214
|
-
|
|
215
|
-
**Pros:**
|
|
216
|
-
- [Pro 1]
|
|
217
|
-
|
|
218
|
-
**Cons:**
|
|
219
|
-
- [Con 1]
|
|
220
|
-
|
|
221
|
-
**Why not chosen:** [Reasoning]
|
|
222
|
-
|
|
223
|
-
---
|
|
224
|
-
|
|
225
|
-
## Dependencies and Risks
|
|
226
|
-
|
|
227
|
-
### External Dependencies
|
|
228
|
-
|
|
229
|
-
- [Dependency 1]: [Risk if unavailable]
|
|
230
|
-
- [Dependency 2]: [Mitigation strategy]
|
|
231
|
-
|
|
232
|
-
### Technical Risks
|
|
233
|
-
|
|
234
|
-
1. **Risk**: [Description]
|
|
235
|
-
- **Impact**: [High/Medium/Low]
|
|
236
|
-
- **Mitigation**: [Strategy]
|
|
237
|
-
|
|
238
|
-
2. **Risk**: [Description]
|
|
239
|
-
- **Impact**: [High/Medium/Low]
|
|
240
|
-
- **Mitigation**: [Strategy]
|
|
241
|
-
|
|
242
|
-
### Timeline Risks
|
|
243
|
-
|
|
244
|
-
- [Risk 1]: [Mitigation]
|
|
245
|
-
- [Risk 2]: [Mitigation]
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
## Success Criteria
|
|
250
|
-
|
|
251
|
-
### Definition of Done
|
|
252
|
-
|
|
253
|
-
- [ ] All acceptance criteria met
|
|
254
|
-
- [ ] All tests passing
|
|
255
|
-
- [ ] Code reviewed and approved
|
|
256
|
-
- [ ] Documentation complete
|
|
257
|
-
- [ ] Performance benchmarks met
|
|
258
|
-
- [ ] Security review passed
|
|
259
|
-
|
|
260
|
-
### Success Metrics
|
|
261
|
-
|
|
262
|
-
- [Metric 1]: [Target value]
|
|
263
|
-
- [Metric 2]: [Target value]
|
|
264
|
-
- [Metric 3]: [Target value]
|
|
265
|
-
|
|
266
|
-
---
|
|
267
|
-
|
|
268
|
-
## References
|
|
269
|
-
|
|
270
|
-
- [Link to PRD]
|
|
271
|
-
- [Related design docs]
|
|
272
|
-
- [External documentation]
|
|
273
|
-
- [Research papers or articles]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|