@arvorco/relentless 0.1.8 → 0.1.10

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.
@@ -0,0 +1,220 @@
1
+ ---
2
+ name: specify
3
+ description: "Create feature specification from natural language description. Use when starting a new feature or creating a spec. Triggers on: create spec, specify feature, new feature spec."
4
+ ---
5
+
6
+ # Feature Specification Generator
7
+
8
+ Create structured feature specifications from natural language descriptions.
9
+
10
+ ---
11
+
12
+ ## The Job
13
+
14
+ 1. Receive feature description from user
15
+ 2. Generate short name and feature number
16
+ 3. Create branch and feature directory in `relentless/features/NNN-feature-name/`
17
+ 4. Generate specification using template
18
+ 5. Validate specification quality
19
+ 6. Save to `spec.md`
20
+
21
+ ---
22
+
23
+ ## Step 1: Create Feature Structure
24
+
25
+ Run the create-new-feature script to set up the branch and directory:
26
+
27
+ ```bash
28
+ .claude/skills/specify/scripts/bash/create-new-feature.sh --json "FEATURE_DESCRIPTION"
29
+ ```
30
+
31
+ This will output JSON with:
32
+ - `BRANCH_NAME`: e.g., "003-user-auth"
33
+ - `SPEC_FILE`: Full path to spec.md
34
+ - `FEATURE_DIR`: Full path to feature directory
35
+ - `FEATURE_NUM`: e.g., "003"
36
+
37
+ **Important:** Parse this JSON and use these paths for all subsequent operations.
38
+
39
+ ---
40
+
41
+ ## Step 2: Load Constitution & Context
42
+
43
+ 1. Read `relentless/constitution.md` for project governance
44
+ 2. Note any MUST/SHOULD rules that apply to specifications
45
+ 3. Keep these principles in mind while generating the spec
46
+
47
+ ---
48
+
49
+ ## Step 3: Generate Specification
50
+
51
+ Using the template at `templates/spec-template.md`, create a specification with:
52
+
53
+ ### Required Sections:
54
+
55
+ **1. Feature Overview**
56
+ - One-paragraph summary
57
+ - User value proposition
58
+ - Problem being solved
59
+
60
+ **2. User Scenarios & Testing**
61
+ - Concrete user stories
62
+ - Step-by-step flows
63
+ - Expected outcomes
64
+
65
+ **3. Functional Requirements**
66
+ - What the system must do
67
+ - Testable requirements (no implementation details)
68
+ - Clear success criteria
69
+
70
+ **4. Success Criteria**
71
+ - Measurable, technology-agnostic outcomes
72
+ - Quantitative metrics (time, performance, volume)
73
+ - Qualitative measures (user satisfaction, task completion)
74
+
75
+ **5. Key Entities (if applicable)**
76
+ - Data models and relationships
77
+ - Fields and types (logical, not implementation)
78
+
79
+ **6. Dependencies & Assumptions**
80
+ - External systems required
81
+ - Prerequisites
82
+ - Assumptions made
83
+
84
+ **7. Out of Scope**
85
+ - What this feature explicitly does NOT include
86
+ - Future considerations
87
+
88
+ ---
89
+
90
+ ## Step 4: Handle Ambiguities
91
+
92
+ If aspects are unclear:
93
+ - Make informed guesses based on context
94
+ - Only mark `[NEEDS CLARIFICATION: specific question]` if:
95
+ - Choice significantly impacts scope or UX
96
+ - Multiple reasonable interpretations exist
97
+ - No reasonable default exists
98
+ - **LIMIT: Maximum 3 clarifications**
99
+
100
+ If clarifications needed, present to user:
101
+
102
+ ```markdown
103
+ ## Clarification Needed
104
+
105
+ **Q1: [Topic]**
106
+ Context: [Quote spec section]
107
+ Question: [Specific question]
108
+
109
+ Options:
110
+ A. [Option 1] - [Implications]
111
+ B. [Option 2] - [Implications]
112
+ C. Custom - [Your answer]
113
+
114
+ Your choice: _
115
+ ```
116
+
117
+ ---
118
+
119
+ ## Step 5: Validate Quality
120
+
121
+ Check the specification against:
122
+
123
+ - [ ] No implementation details (languages, frameworks, APIs)
124
+ - [ ] Focused on user value and business needs
125
+ - [ ] All requirements are testable
126
+ - [ ] Success criteria are measurable
127
+ - [ ] User scenarios cover primary flows
128
+ - [ ] Dependencies identified
129
+ - [ ] Scope clearly bounded
130
+ - [ ] No more than 3 `[NEEDS CLARIFICATION]` markers
131
+
132
+ If validation fails, revise and re-check (max 3 iterations).
133
+
134
+ ---
135
+
136
+ ## Step 6: Save & Report
137
+
138
+ 1. Write complete specification to `SPEC_FILE` from JSON output
139
+ 2. Create progress.txt if it doesn't exist:
140
+ ```markdown
141
+ ---
142
+ feature: FEATURE_NAME
143
+ started: DATE
144
+ last_updated: DATE
145
+ stories_completed: 0
146
+ ---
147
+
148
+ # Progress Log: FEATURE_NAME
149
+ ```
150
+
151
+ 3. Report to user:
152
+ - Branch created: `BRANCH_NAME`
153
+ - Spec saved: `SPEC_FILE`
154
+ - Quality validation: PASSED/FAILED
155
+ - Next step: `/relentless.plan` or `/relentless.clarify`
156
+
157
+ ---
158
+
159
+ ## Example Output
160
+
161
+ ```markdown
162
+ # Feature: User Authentication
163
+
164
+ ## Overview
165
+ Enable users to create accounts and log in securely using email/password.
166
+
167
+ ## User Scenarios
168
+
169
+ ### Scenario 1: New User Registration
170
+ 1. User visits signup page
171
+ 2. Enters email and password
172
+ 3. Submits form
173
+ 4. Receives confirmation email
174
+ 5. Clicks confirmation link
175
+ 6. Account is activated
176
+
177
+ **Expected Outcome:** User has active account and can log in.
178
+
179
+ ## Functional Requirements
180
+
181
+ **REQ-1:** System must validate email format
182
+ **REQ-2:** System must require passwords ≥ 8 characters
183
+ **REQ-3:** System must send confirmation email within 1 minute
184
+ **REQ-4:** System must hash passwords before storage
185
+
186
+ ## Success Criteria
187
+
188
+ 1. 95% of signups complete within 60 seconds
189
+ 2. Zero plaintext passwords in database
190
+ 3. Email confirmation rate > 80%
191
+
192
+ ## Key Entities
193
+
194
+ **User**
195
+ - email: string (unique)
196
+ - password_hash: string
197
+ - confirmed: boolean
198
+ - created_at: timestamp
199
+
200
+ ## Dependencies
201
+
202
+ - Email service provider (e.g., SendGrid, Mailgun)
203
+ - Session management system
204
+
205
+ ## Out of Scope
206
+
207
+ - Social login (OAuth)
208
+ - Two-factor authentication
209
+ - Password reset (separate feature)
210
+ ```
211
+
212
+ ---
213
+
214
+ ## Notes
215
+
216
+ - Always run the script first to get proper paths
217
+ - Use absolute paths from JSON output
218
+ - Validate before marking complete
219
+ - Keep specification technology-agnostic
220
+ - Focus on WHAT, not HOW
@@ -0,0 +1,115 @@
1
+ # Feature Specification: [FEATURE NAME]
2
+
3
+ **Feature Branch**: `[###-feature-name]`
4
+ **Created**: [DATE]
5
+ **Status**: Draft
6
+ **Input**: User description: "$ARGUMENTS"
7
+
8
+ ## User Scenarios & Testing *(mandatory)*
9
+
10
+ <!--
11
+ IMPORTANT: User stories should be PRIORITIZED as user journeys ordered by importance.
12
+ Each user story/journey must be INDEPENDENTLY TESTABLE - meaning if you implement just ONE of them,
13
+ you should still have a viable MVP (Minimum Viable Product) that delivers value.
14
+
15
+ Assign priorities (P1, P2, P3, etc.) to each story, where P1 is the most critical.
16
+ Think of each story as a standalone slice of functionality that can be:
17
+ - Developed independently
18
+ - Tested independently
19
+ - Deployed independently
20
+ - Demonstrated to users independently
21
+ -->
22
+
23
+ ### User Story 1 - [Brief Title] (Priority: P1)
24
+
25
+ [Describe this user journey in plain language]
26
+
27
+ **Why this priority**: [Explain the value and why it has this priority level]
28
+
29
+ **Independent Test**: [Describe how this can be tested independently - e.g., "Can be fully tested by [specific action] and delivers [specific value]"]
30
+
31
+ **Acceptance Scenarios**:
32
+
33
+ 1. **Given** [initial state], **When** [action], **Then** [expected outcome]
34
+ 2. **Given** [initial state], **When** [action], **Then** [expected outcome]
35
+
36
+ ---
37
+
38
+ ### User Story 2 - [Brief Title] (Priority: P2)
39
+
40
+ [Describe this user journey in plain language]
41
+
42
+ **Why this priority**: [Explain the value and why it has this priority level]
43
+
44
+ **Independent Test**: [Describe how this can be tested independently]
45
+
46
+ **Acceptance Scenarios**:
47
+
48
+ 1. **Given** [initial state], **When** [action], **Then** [expected outcome]
49
+
50
+ ---
51
+
52
+ ### User Story 3 - [Brief Title] (Priority: P3)
53
+
54
+ [Describe this user journey in plain language]
55
+
56
+ **Why this priority**: [Explain the value and why it has this priority level]
57
+
58
+ **Independent Test**: [Describe how this can be tested independently]
59
+
60
+ **Acceptance Scenarios**:
61
+
62
+ 1. **Given** [initial state], **When** [action], **Then** [expected outcome]
63
+
64
+ ---
65
+
66
+ [Add more user stories as needed, each with an assigned priority]
67
+
68
+ ### Edge Cases
69
+
70
+ <!--
71
+ ACTION REQUIRED: The content in this section represents placeholders.
72
+ Fill them out with the right edge cases.
73
+ -->
74
+
75
+ - What happens when [boundary condition]?
76
+ - How does system handle [error scenario]?
77
+
78
+ ## Requirements *(mandatory)*
79
+
80
+ <!--
81
+ ACTION REQUIRED: The content in this section represents placeholders.
82
+ Fill them out with the right functional requirements.
83
+ -->
84
+
85
+ ### Functional Requirements
86
+
87
+ - **FR-001**: System MUST [specific capability, e.g., "allow users to create accounts"]
88
+ - **FR-002**: System MUST [specific capability, e.g., "validate email addresses"]
89
+ - **FR-003**: Users MUST be able to [key interaction, e.g., "reset their password"]
90
+ - **FR-004**: System MUST [data requirement, e.g., "persist user preferences"]
91
+ - **FR-005**: System MUST [behavior, e.g., "log all security events"]
92
+
93
+ *Example of marking unclear requirements:*
94
+
95
+ - **FR-006**: System MUST authenticate users via [NEEDS CLARIFICATION: auth method not specified - email/password, SSO, OAuth?]
96
+ - **FR-007**: System MUST retain user data for [NEEDS CLARIFICATION: retention period not specified]
97
+
98
+ ### Key Entities *(include if feature involves data)*
99
+
100
+ - **[Entity 1]**: [What it represents, key attributes without implementation]
101
+ - **[Entity 2]**: [What it represents, relationships to other entities]
102
+
103
+ ## Success Criteria *(mandatory)*
104
+
105
+ <!--
106
+ ACTION REQUIRED: Define measurable success criteria.
107
+ These must be technology-agnostic and measurable.
108
+ -->
109
+
110
+ ### Measurable Outcomes
111
+
112
+ - **SC-001**: [Measurable metric, e.g., "Users can complete account creation in under 2 minutes"]
113
+ - **SC-002**: [Measurable metric, e.g., "System handles 1000 concurrent users without degradation"]
114
+ - **SC-003**: [User satisfaction metric, e.g., "90% of users successfully complete primary task on first attempt"]
115
+ - **SC-004**: [Business metric, e.g., "Reduce support tickets related to [X] by 50%"]
@@ -0,0 +1,202 @@
1
+ ---
2
+ name: tasks
3
+ description: "Generate dependency-ordered user stories and tasks from plan. Use after creating plan. Triggers on: create tasks, generate user stories, break down implementation."
4
+ ---
5
+
6
+ # User Story & Task Generator
7
+
8
+ Generate actionable, dependency-ordered user stories from technical plans.
9
+
10
+ ---
11
+
12
+ ## The Job
13
+
14
+ 1. Read spec.md and plan.md
15
+ 2. Extract user stories from spec
16
+ 3. Break down into implementation tasks
17
+ 4. Order by dependencies
18
+ 5. Create tasks.md with structured user stories
19
+
20
+ **Important:** tasks.md contains the actual user stories that convert to prd.json!
21
+
22
+ ---
23
+
24
+ ## Step 1: Locate Feature Files
25
+
26
+ Find the current feature directory and verify:
27
+ - `spec.md` exists
28
+ - `plan.md` exists
29
+ - Feature directory: `relentless/features/NNN-feature/`
30
+
31
+ ---
32
+
33
+ ## Step 2: Load Context
34
+
35
+ Read:
36
+ 1. `relentless/constitution.md` - Testing and quality requirements
37
+ 2. `relentless/features/NNN-feature/spec.md` - User requirements
38
+ 3. `relentless/features/NNN-feature/plan.md` - Technical design
39
+
40
+ ---
41
+
42
+ ## Step 3: Extract User Stories
43
+
44
+ From spec.md, identify distinct user stories:
45
+ - Each major functional requirement becomes a user story
46
+ - Group related functionality
47
+ - Typical: 3-8 user stories per feature
48
+
49
+ **User Story Format:**
50
+ ```markdown
51
+ ### US-001: [Title]
52
+ **Description:** As a [user], I want [goal] so that [benefit].
53
+
54
+ **Acceptance Criteria:**
55
+ - [ ] Criterion 1 (testable, specific)
56
+ - [ ] Criterion 2
57
+ - [ ] Criterion 3
58
+ - [ ] Typecheck passes
59
+ - [ ] Tests pass
60
+
61
+ **Dependencies:** (if any)
62
+ **Phase:** Foundation / Stories / Polish
63
+ ```
64
+
65
+ ---
66
+
67
+ ## Step 4: Generate Tasks
68
+
69
+ For each user story, create implementation tasks using format:
70
+
71
+ ```markdown
72
+ ## User Stories
73
+
74
+ ### US-001: Create User Registration Endpoint
75
+
76
+ **Description:** As a new user, I want to register with email/password so that I can create an account.
77
+
78
+ **Acceptance Criteria:**
79
+ - [ ] POST /api/auth/register endpoint exists
80
+ - [ ] Email validation works
81
+ - [ ] Password requirements enforced (min 8 chars)
82
+ - [ ] Password is hashed before storage
83
+ - [ ] Confirmation email sent
84
+ - [ ] Returns 201 with user ID
85
+ - [ ] Returns 400 for invalid input
86
+ - [ ] Typecheck passes
87
+ - [ ] Unit tests pass
88
+ - [ ] Integration test passes
89
+
90
+ **Dependencies:** None
91
+ **Phase:** Foundation
92
+ **Priority:** 1
93
+
94
+ ---
95
+
96
+ ### US-002: Create User Login Endpoint
97
+
98
+ **Description:** As a registered user, I want to log in with email/password so that I can access my account.
99
+
100
+ **Acceptance Criteria:**
101
+ - [ ] POST /api/auth/login endpoint exists
102
+ - [ ] Validates credentials against database
103
+ - [ ] Returns JWT token on success
104
+ - [ ] Returns 401 for invalid credentials
105
+ - [ ] Returns 403 for unconfirmed accounts
106
+ - [ ] Token expires after 24 hours
107
+ - [ ] Typecheck passes
108
+ - [ ] Unit tests pass
109
+ - [ ] Integration test passes
110
+
111
+ **Dependencies:** US-001
112
+ **Phase:** Stories
113
+ **Priority:** 2
114
+
115
+ ---
116
+
117
+ ### US-003: Email Confirmation Flow
118
+
119
+ **Description:** As a new user, I want to confirm my email so that my account is activated.
120
+
121
+ **Acceptance Criteria:**
122
+ - [ ] Confirmation email sent on registration
123
+ - [ ] Email contains confirmation link
124
+ - [ ] GET /api/auth/confirm/:token endpoint exists
125
+ - [ ] Token validates and marks account as confirmed
126
+ - [ ] Expired tokens return appropriate error
127
+ - [ ] Confirmed users can log in
128
+ - [ ] Typecheck passes
129
+ - [ ] E2E test passes
130
+
131
+ **Dependencies:** US-001
132
+ **Phase:** Stories
133
+ **Priority:** 3
134
+ ```
135
+
136
+ ---
137
+
138
+ ## Step 5: Order by Dependencies
139
+
140
+ Ensure user stories are ordered so dependencies come first:
141
+ 1. **Phase 0: Setup** - Infrastructure, configuration
142
+ 2. **Phase 1: Foundation** - Core models, base functionality
143
+ 3. **Phase 2: Stories** - User-facing features (ordered by dependencies)
144
+ 4. **Phase 3: Polish** - Optimization, edge cases
145
+
146
+ Mark parallel stories with:
147
+ ```markdown
148
+ **Parallel:** Yes
149
+ ```
150
+
151
+ ---
152
+
153
+ ## Step 6: Validate Completeness
154
+
155
+ Check that:
156
+ - [ ] Every functional requirement from spec has a user story
157
+ - [ ] Each user story has specific, testable acceptance criteria
158
+ - [ ] Dependencies are valid (no circular references)
159
+ - [ ] Each story is independently testable
160
+ - [ ] Typecheck/test criteria included
161
+ - [ ] Priority order makes sense
162
+
163
+ ---
164
+
165
+ ## Step 7: Save & Report
166
+
167
+ 1. Save to `relentless/features/NNN-feature/tasks.md`
168
+ 2. Update progress.txt
169
+ 3. Report:
170
+ - Total user stories: N
171
+ - Dependency order: [list]
172
+ - Parallel opportunities: N
173
+ - Next step: `/relentless.checklist` or `relentless convert tasks.md`
174
+
175
+ ---
176
+
177
+ ## Key Guidelines
178
+
179
+ **User Story Size:**
180
+ - Each story completable in one session
181
+ - If too large, split into multiple stories
182
+ - Typical: 30-90 minutes of work per story
183
+
184
+ **Acceptance Criteria:**
185
+ - Specific and testable
186
+ - No vague terms ("works well", "good UX")
187
+ - Include quality checks (typecheck, lint, test)
188
+ - Verifiable in browser/tests
189
+
190
+ **Dependencies:**
191
+ - Only list direct dependencies
192
+ - Ensure no circular dependencies
193
+ - Consider data dependencies (user must exist before profile)
194
+
195
+ ---
196
+
197
+ ## Notes
198
+
199
+ - tasks.md is the source of truth for user stories
200
+ - This file will be converted to prd.json by `relentless convert`
201
+ - Make acceptance criteria detailed and specific
202
+ - Each story should be independently deployable and testable