chiron 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.
- checksums.yaml +7 -0
- data/.rspec +3 -0
- data/.rspec_status +7 -0
- data/.rubocop.yml +24 -0
- data/CHANGELOG.md +34 -0
- data/CLAUDE.md +108 -0
- data/Gemfile +16 -0
- data/Gemfile.lock +93 -0
- data/LICENSE +21 -0
- data/README.md +155 -0
- data/Rakefile +12 -0
- data/docs/development_journal.md +60 -0
- data/exe/chiron +6 -0
- data/lib/chiron/cli.rb +259 -0
- data/lib/chiron/templates/CLAUDE.md.erb +97 -0
- data/lib/chiron/templates/claude/settings.json +6 -0
- data/lib/chiron/templates/commands/context/catchup.md +77 -0
- data/lib/chiron/templates/commands/context/prime.md +32 -0
- data/lib/chiron/templates/commands/context/quickstart.md +47 -0
- data/lib/chiron/templates/commands/conventions/rails.md +166 -0
- data/lib/chiron/templates/commands/journal/instructions.md +129 -0
- data/lib/chiron/templates/commands/journal/template.md +87 -0
- data/lib/chiron/templates/commands/quality/pre-commit.md +95 -0
- data/lib/chiron/templates/commands/quality/test-driven.md +187 -0
- data/lib/chiron/templates/commands/workflows/create-prd.md +57 -0
- data/lib/chiron/templates/commands/workflows/feature-complete.md +139 -0
- data/lib/chiron/templates/commands/workflows/generate-tasks.md +65 -0
- data/lib/chiron/templates/commands/workflows/process-tasks.md +84 -0
- data/lib/chiron/templates/development_journal.md.erb +80 -0
- data/lib/chiron/version.rb +5 -0
- data/lib/chiron.rb +16 -0
- metadata +174 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Generating a Task List from a PRD
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
To create a detailed, step-by-step task list in Markdown format based on an existing Product Requirements Document (PRD). The task list should guide a developer through implementation.
|
|
6
|
+
|
|
7
|
+
## Output
|
|
8
|
+
|
|
9
|
+
- **Format:** Markdown (`.md`)
|
|
10
|
+
- **Location:** `/tasks/`
|
|
11
|
+
- **Filename:** `tasks-[prd-file-name].md` (e.g., `tasks-prd-user-profile-editing.md`)
|
|
12
|
+
|
|
13
|
+
## Process
|
|
14
|
+
|
|
15
|
+
1. **Receive PRD Reference:** The user points you to a specific PRD file
|
|
16
|
+
2. **Analyze PRD:** Read and analyze the functional requirements, user stories, and other sections of the specified PRD.
|
|
17
|
+
3. **Phase 1: Generate Parent Tasks:** Based on the PRD analysis, create the file and generate the main, high-level tasks required to implement the feature. Use your judgement on how many high-level tasks to use. It's likely to be about 5. Present these tasks to the user in the specified format (without sub-tasks yet). Inform the user: "I have generated the high-level tasks based on the PRD. Ready to generate the sub-tasks? Respond with 'Go' to proceed."
|
|
18
|
+
4. **Wait for Confirmation:** Pause and wait for the user to respond with "Go".
|
|
19
|
+
5. **Phase 2: Generate Sub-Tasks:** Once the user confirms, break down each parent task into smaller, actionable sub-tasks necessary to complete the parent task. Ensure sub-tasks logically follow from the parent task and cover the implementation details implied by the PRD.
|
|
20
|
+
6. **Identify Relevant Files:** Based on the tasks and PRD, identify potential files that will need to be created or modified. List these under the `Relevant Files` section, including corresponding test files if applicable.
|
|
21
|
+
7. **Generate Final Output:** Combine the parent tasks, sub-tasks, relevant files, and notes into the final Markdown structure.
|
|
22
|
+
8. **Save Task List:** Save the generated document in the `/tasks/` directory.
|
|
23
|
+
|
|
24
|
+
## Output Format
|
|
25
|
+
|
|
26
|
+
The generated task list _must_ follow this structure:
|
|
27
|
+
|
|
28
|
+
```markdown
|
|
29
|
+
## Relevant Files
|
|
30
|
+
|
|
31
|
+
- `path/to/potential/file1.rb` - Brief description of why this file is relevant
|
|
32
|
+
- `spec/path/to/file1_spec.rb` - Unit tests for file1
|
|
33
|
+
- `app/controllers/example_controller.rb` - Controller for handling requests
|
|
34
|
+
- `spec/requests/example_spec.rb` - Request specs for controller
|
|
35
|
+
|
|
36
|
+
### Notes
|
|
37
|
+
|
|
38
|
+
- Write tests before implementation (TDD approach)
|
|
39
|
+
- Run `bin/rspec` to execute tests
|
|
40
|
+
- Use `bin/rubocop --autocorrect` after implementation
|
|
41
|
+
|
|
42
|
+
## Tasks
|
|
43
|
+
|
|
44
|
+
- [ ] 1.0 Parent Task Title
|
|
45
|
+
- [ ] 1.1 [Sub-task description 1.1]
|
|
46
|
+
- [ ] 1.2 [Sub-task description 1.2]
|
|
47
|
+
- [ ] 2.0 Parent Task Title
|
|
48
|
+
- [ ] 2.1 [Sub-task description 2.1]
|
|
49
|
+
- [ ] 3.0 Parent Task Title (may not require sub-tasks if purely structural or configuration)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Interaction Model
|
|
53
|
+
|
|
54
|
+
The process explicitly requires a pause after generating parent tasks to get user confirmation ("Go") before proceeding to generate the detailed sub-tasks. This ensures the high-level plan aligns with user expectations before diving into details.
|
|
55
|
+
|
|
56
|
+
## Target Audience
|
|
57
|
+
|
|
58
|
+
Assume the primary reader of the task list is a **junior developer** who will implement the feature.
|
|
59
|
+
|
|
60
|
+
## Important Notes
|
|
61
|
+
|
|
62
|
+
- Include estimated time for complex tasks
|
|
63
|
+
- Note dependencies between tasks
|
|
64
|
+
- Mark critical path items
|
|
65
|
+
- Update development journal after task completion
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Processing Task Lists
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
To systematically work through task lists created from PRDs, ensuring proper implementation, testing, and documentation.
|
|
6
|
+
|
|
7
|
+
## Process
|
|
8
|
+
|
|
9
|
+
1. **Load Task List:** Read the relevant `tasks-*.md` file
|
|
10
|
+
2. **Review Parent Tasks:** Understand the overall implementation plan
|
|
11
|
+
3. **Select Next Task:** Choose the next uncompleted task in logical order
|
|
12
|
+
4. **Mark In Progress:** Update task checkbox to indicate work has started
|
|
13
|
+
5. **Implement:** Write code following TDD principles
|
|
14
|
+
6. **Test:** Ensure all tests pass
|
|
15
|
+
7. **Quality Check:** Run RuboCop and fix violations
|
|
16
|
+
8. **Mark Complete:** Update task checkbox when done
|
|
17
|
+
9. **Journal Entry:** Add development journal entry for significant work
|
|
18
|
+
10. **Repeat:** Continue with next task
|
|
19
|
+
|
|
20
|
+
## Task Status Indicators
|
|
21
|
+
|
|
22
|
+
- `[ ]` - Not started
|
|
23
|
+
- `[~]` - In progress (manually update)
|
|
24
|
+
- `[x]` - Completed
|
|
25
|
+
- `[!]` - Blocked (add note explaining blockage)
|
|
26
|
+
|
|
27
|
+
## Best Practices
|
|
28
|
+
|
|
29
|
+
### Before Starting a Task
|
|
30
|
+
- Review related PRD section
|
|
31
|
+
- Check for dependencies on other tasks
|
|
32
|
+
- Ensure test environment is ready
|
|
33
|
+
- Pull latest changes from main branch
|
|
34
|
+
|
|
35
|
+
### During Implementation
|
|
36
|
+
- Write tests first (TDD)
|
|
37
|
+
- Commit frequently with clear messages
|
|
38
|
+
- Update task status as you work
|
|
39
|
+
- Note any discoveries or issues
|
|
40
|
+
|
|
41
|
+
### After Completing a Task
|
|
42
|
+
- Run full test suite
|
|
43
|
+
- Check code quality with RuboCop
|
|
44
|
+
- Update task list with completion
|
|
45
|
+
- Add journal entry if significant
|
|
46
|
+
- Consider creating follow-up tasks
|
|
47
|
+
|
|
48
|
+
## Common Patterns
|
|
49
|
+
|
|
50
|
+
### Feature Implementation
|
|
51
|
+
1. Create model/migration
|
|
52
|
+
2. Write model specs
|
|
53
|
+
3. Implement model logic
|
|
54
|
+
4. Create controller
|
|
55
|
+
5. Write request specs
|
|
56
|
+
6. Implement controller actions
|
|
57
|
+
7. Create views/components
|
|
58
|
+
8. Add system tests
|
|
59
|
+
9. Style with TailwindCSS
|
|
60
|
+
10. Add Stimulus controllers
|
|
61
|
+
|
|
62
|
+
### Bug Fixes
|
|
63
|
+
1. Reproduce the issue
|
|
64
|
+
2. Write failing test
|
|
65
|
+
3. Implement fix
|
|
66
|
+
4. Verify test passes
|
|
67
|
+
5. Check for regressions
|
|
68
|
+
6. Update documentation
|
|
69
|
+
|
|
70
|
+
## Task Dependencies
|
|
71
|
+
|
|
72
|
+
When tasks have dependencies:
|
|
73
|
+
- Note dependency in task description
|
|
74
|
+
- Complete prerequisite tasks first
|
|
75
|
+
- Update dependent tasks if scope changes
|
|
76
|
+
- Communicate blockers in journal
|
|
77
|
+
|
|
78
|
+
## Progress Tracking
|
|
79
|
+
|
|
80
|
+
- Update task status immediately
|
|
81
|
+
- Add time estimates and actuals
|
|
82
|
+
- Note any scope changes
|
|
83
|
+
- Track blockers and resolutions
|
|
84
|
+
- Regular status updates in journal
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# <%= @project_name %> Development Journal
|
|
2
|
+
|
|
3
|
+
This journal tracks significant development work, bug fixes, and feature implementations for <%= @project_name %>.
|
|
4
|
+
|
|
5
|
+
## Recent Contributors (Last 30 Days)
|
|
6
|
+
- **[Your Name]**: Project owner, initial setup
|
|
7
|
+
- **Claude Code**: AI-assisted development
|
|
8
|
+
|
|
9
|
+
## Active Branches & Ownership
|
|
10
|
+
- `main`: Stable branch for production releases
|
|
11
|
+
- `[feature-branch]`: [Developer Name] - [Feature description]
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## <%= Date.today.strftime('%Y-%m-%d') %> - Initial Setup
|
|
16
|
+
**Developer(s)**: [Your Name] & Claude Code | **Context**: Project initialization
|
|
17
|
+
|
|
18
|
+
### What Was Done
|
|
19
|
+
- Initialized Rails <%= Rails.version rescue "8.0.2" %> application
|
|
20
|
+
- Set up Claude workflow with claude-rails-setup gem
|
|
21
|
+
- Created initial project structure
|
|
22
|
+
- Configured development environment
|
|
23
|
+
|
|
24
|
+
### Why It Was Done
|
|
25
|
+
- Starting new Rails project with AI-assisted development workflow
|
|
26
|
+
- Establishing consistent development patterns from the beginning
|
|
27
|
+
- Setting up for collaborative development
|
|
28
|
+
|
|
29
|
+
### Technical Details
|
|
30
|
+
- Rails <%= Rails.version rescue "8.0.2" %> with PostgreSQL database
|
|
31
|
+
- Hotwire (Turbo + Stimulus) for frontend interactivity
|
|
32
|
+
- TailwindCSS for styling
|
|
33
|
+
- RSpec for testing framework
|
|
34
|
+
- Claude AI workflow integration
|
|
35
|
+
|
|
36
|
+
### Results
|
|
37
|
+
- ✅ Rails application created and running
|
|
38
|
+
- ✅ Claude workflow initialized with commands and templates
|
|
39
|
+
- ✅ Development journal started
|
|
40
|
+
- ✅ Git repository initialized
|
|
41
|
+
|
|
42
|
+
### Next Steps
|
|
43
|
+
- Configure database and run initial migrations
|
|
44
|
+
- Set up continuous integration
|
|
45
|
+
- Implement initial models based on requirements
|
|
46
|
+
- Create first PRD for core functionality
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
<!--
|
|
51
|
+
Journal Entry Template - Copy for new entries:
|
|
52
|
+
|
|
53
|
+
## [YYYY-MM-DD] - [Brief Summary Title]
|
|
54
|
+
**Developer(s)**: [Name] | **Context**: [How work was initiated]
|
|
55
|
+
|
|
56
|
+
### What Was Done
|
|
57
|
+
- [Specific actions taken]
|
|
58
|
+
- [Files modified with line numbers]
|
|
59
|
+
- [Commands run]
|
|
60
|
+
|
|
61
|
+
### Why It Was Done
|
|
62
|
+
- [Problem being solved]
|
|
63
|
+
- [User need addressed]
|
|
64
|
+
|
|
65
|
+
### Technical Details
|
|
66
|
+
- [Key implementation details]
|
|
67
|
+
- [Architecture decisions]
|
|
68
|
+
- [Testing approach]
|
|
69
|
+
|
|
70
|
+
### Results
|
|
71
|
+
- [What works now]
|
|
72
|
+
- [Test results]
|
|
73
|
+
- [Performance impacts]
|
|
74
|
+
|
|
75
|
+
### Next Steps (if applicable)
|
|
76
|
+
- [Follow-up tasks]
|
|
77
|
+
- [Known issues]
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
-->
|
data/lib/chiron.rb
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'chiron/version'
|
|
4
|
+
require_relative 'chiron/cli'
|
|
5
|
+
|
|
6
|
+
module Chiron
|
|
7
|
+
class Error < StandardError; end
|
|
8
|
+
|
|
9
|
+
def self.root
|
|
10
|
+
File.expand_path('..', __dir__)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def self.templates_path
|
|
14
|
+
File.join(root, 'lib', 'chiron', 'templates')
|
|
15
|
+
end
|
|
16
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: chiron
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Brett McHargue
|
|
8
|
+
bindir: exe
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 2025-07-01 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: colorize
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '1.1'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '1.1'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: thor
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '1.3'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '1.3'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: tty-prompt
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0.23'
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0.23'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: bundler
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '2.0'
|
|
61
|
+
type: :development
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '2.0'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: rake
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - "~>"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '13.0'
|
|
75
|
+
type: :development
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '13.0'
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: rspec
|
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - "~>"
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '3.0'
|
|
89
|
+
type: :development
|
|
90
|
+
prerelease: false
|
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - "~>"
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '3.0'
|
|
96
|
+
- !ruby/object:Gem::Dependency
|
|
97
|
+
name: rubocop
|
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - "~>"
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '1.21'
|
|
103
|
+
type: :development
|
|
104
|
+
prerelease: false
|
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - "~>"
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '1.21'
|
|
110
|
+
description: A Ruby gem that sets up Claude AI development workflows, PRD templates,
|
|
111
|
+
and journaling system for Rails projects
|
|
112
|
+
email:
|
|
113
|
+
- ebrett@users.noreply.github.com
|
|
114
|
+
executables:
|
|
115
|
+
- chiron
|
|
116
|
+
extensions: []
|
|
117
|
+
extra_rdoc_files: []
|
|
118
|
+
files:
|
|
119
|
+
- ".rspec"
|
|
120
|
+
- ".rspec_status"
|
|
121
|
+
- ".rubocop.yml"
|
|
122
|
+
- CHANGELOG.md
|
|
123
|
+
- CLAUDE.md
|
|
124
|
+
- Gemfile
|
|
125
|
+
- Gemfile.lock
|
|
126
|
+
- LICENSE
|
|
127
|
+
- README.md
|
|
128
|
+
- Rakefile
|
|
129
|
+
- docs/development_journal.md
|
|
130
|
+
- exe/chiron
|
|
131
|
+
- lib/chiron.rb
|
|
132
|
+
- lib/chiron/cli.rb
|
|
133
|
+
- lib/chiron/templates/CLAUDE.md.erb
|
|
134
|
+
- lib/chiron/templates/claude/settings.json
|
|
135
|
+
- lib/chiron/templates/commands/context/catchup.md
|
|
136
|
+
- lib/chiron/templates/commands/context/prime.md
|
|
137
|
+
- lib/chiron/templates/commands/context/quickstart.md
|
|
138
|
+
- lib/chiron/templates/commands/conventions/rails.md
|
|
139
|
+
- lib/chiron/templates/commands/journal/instructions.md
|
|
140
|
+
- lib/chiron/templates/commands/journal/template.md
|
|
141
|
+
- lib/chiron/templates/commands/quality/pre-commit.md
|
|
142
|
+
- lib/chiron/templates/commands/quality/test-driven.md
|
|
143
|
+
- lib/chiron/templates/commands/workflows/create-prd.md
|
|
144
|
+
- lib/chiron/templates/commands/workflows/feature-complete.md
|
|
145
|
+
- lib/chiron/templates/commands/workflows/generate-tasks.md
|
|
146
|
+
- lib/chiron/templates/commands/workflows/process-tasks.md
|
|
147
|
+
- lib/chiron/templates/development_journal.md.erb
|
|
148
|
+
- lib/chiron/version.rb
|
|
149
|
+
homepage: https://github.com/ebrett/chiron
|
|
150
|
+
licenses:
|
|
151
|
+
- MIT
|
|
152
|
+
metadata:
|
|
153
|
+
homepage_uri: https://github.com/ebrett/chiron
|
|
154
|
+
source_code_uri: https://github.com/ebrett/chiron
|
|
155
|
+
changelog_uri: https://github.com/ebrett/chiron/blob/main/CHANGELOG.md
|
|
156
|
+
rubygems_mfa_required: 'true'
|
|
157
|
+
rdoc_options: []
|
|
158
|
+
require_paths:
|
|
159
|
+
- lib
|
|
160
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
161
|
+
requirements:
|
|
162
|
+
- - ">="
|
|
163
|
+
- !ruby/object:Gem::Version
|
|
164
|
+
version: 3.0.0
|
|
165
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
|
+
requirements:
|
|
167
|
+
- - ">="
|
|
168
|
+
- !ruby/object:Gem::Version
|
|
169
|
+
version: '0'
|
|
170
|
+
requirements: []
|
|
171
|
+
rubygems_version: 3.6.2
|
|
172
|
+
specification_version: 4
|
|
173
|
+
summary: Initialize Claude AI workflow for Rails projects
|
|
174
|
+
test_files: []
|