worktrees 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/.claude/commands/plan.md +42 -0
- data/.claude/commands/specify.md +12 -0
- data/.claude/commands/tasks.md +60 -0
- data/.cursor/commands/plan.md +42 -0
- data/.cursor/commands/specify.md +12 -0
- data/.cursor/commands/tasks.md +60 -0
- data/.cursor/rules +81 -0
- data/.specify/memory/constitution-v1.0.1-formal.md +90 -0
- data/.specify/memory/constitution.md +153 -0
- data/.specify/memory/constitution_update_checklist.md +88 -0
- data/.specify/scripts/bash/check-task-prerequisites.sh +15 -0
- data/.specify/scripts/bash/common.sh +37 -0
- data/.specify/scripts/bash/create-new-feature.sh +58 -0
- data/.specify/scripts/bash/get-feature-paths.sh +7 -0
- data/.specify/scripts/bash/setup-plan.sh +17 -0
- data/.specify/scripts/bash/update-agent-context.sh +57 -0
- data/.specify/templates/agent-file-template.md +23 -0
- data/.specify/templates/plan-template.md +254 -0
- data/.specify/templates/spec-template.md +116 -0
- data/.specify/templates/tasks-template.md +152 -0
- data/CLAUDE.md +145 -0
- data/Gemfile +15 -0
- data/Gemfile.lock +150 -0
- data/README.md +163 -0
- data/Rakefile +52 -0
- data/exe/worktrees +52 -0
- data/lib/worktrees/cli.rb +36 -0
- data/lib/worktrees/commands/create.rb +74 -0
- data/lib/worktrees/commands/list.rb +87 -0
- data/lib/worktrees/commands/remove.rb +62 -0
- data/lib/worktrees/commands/status.rb +95 -0
- data/lib/worktrees/commands/switch.rb +57 -0
- data/lib/worktrees/git_operations.rb +106 -0
- data/lib/worktrees/models/feature_worktree.rb +92 -0
- data/lib/worktrees/models/repository.rb +75 -0
- data/lib/worktrees/models/worktree_config.rb +74 -0
- data/lib/worktrees/version.rb +5 -0
- data/lib/worktrees/worktree_manager.rb +238 -0
- data/lib/worktrees.rb +27 -0
- data/specs/001-build-a-tool/GEMINI.md +20 -0
- data/specs/001-build-a-tool/contracts/cli-contracts.md +43 -0
- data/specs/001-build-a-tool/contracts/openapi.yaml +135 -0
- data/specs/001-build-a-tool/data-model.md +51 -0
- data/specs/001-build-a-tool/plan.md +241 -0
- data/specs/001-build-a-tool/quickstart.md +67 -0
- data/specs/001-build-a-tool/research.md +76 -0
- data/specs/001-build-a-tool/spec.md +153 -0
- data/specs/001-build-a-tool/tasks.md +209 -0
- metadata +138 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Tasks: Manage Git feature worktrees
|
|
2
|
+
|
|
3
|
+
**Input**: Design documents from `/Users/drewgoddyn/projects/claude-worktrees/specs/001-build-a-tool/`
|
|
4
|
+
**Prerequisites**: plan.md (required), research.md, data-model.md, contracts/
|
|
5
|
+
|
|
6
|
+
## Execution Flow (main)
|
|
7
|
+
```
|
|
8
|
+
1. Load plan.md from feature directory
|
|
9
|
+
→ If not found: ERROR "No implementation plan found"
|
|
10
|
+
→ Extract: tech stack, libraries, structure
|
|
11
|
+
2. Load optional design documents:
|
|
12
|
+
→ data-model.md: Extract entities → model tasks
|
|
13
|
+
→ contracts/: Each file → contract test task
|
|
14
|
+
→ research.md: Extract decisions → setup tasks
|
|
15
|
+
→ quickstart.md: Extract user flows → integration tests
|
|
16
|
+
3. Generate tasks by category:
|
|
17
|
+
→ Setup: project init, dependencies, linting
|
|
18
|
+
→ Tests: contract tests, integration tests
|
|
19
|
+
→ Core: models, services, CLI commands
|
|
20
|
+
→ Integration: flags, safety checks, logging
|
|
21
|
+
→ Polish: unit tests, performance, docs
|
|
22
|
+
4. Apply task rules:
|
|
23
|
+
→ Different files = mark [P] for parallel
|
|
24
|
+
→ Same file = sequential (no [P])
|
|
25
|
+
→ Tests before implementation (TDD)
|
|
26
|
+
5. Number tasks sequentially (T001, T002...)
|
|
27
|
+
6. Generate dependency graph
|
|
28
|
+
7. Create parallel execution examples
|
|
29
|
+
8. Validate task completeness:
|
|
30
|
+
→ All contracts have tests?
|
|
31
|
+
→ All entities have models?
|
|
32
|
+
→ All endpoints implemented?
|
|
33
|
+
9. Return: SUCCESS (tasks ready for execution)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Format: `[ID] [P?] Description`
|
|
37
|
+
- **[P]**: Can run in parallel (different files, no dependencies)
|
|
38
|
+
- Include exact file paths in descriptions
|
|
39
|
+
|
|
40
|
+
## Path Conventions
|
|
41
|
+
- **Single project** per plan: `src/`, `tests/` at repository root
|
|
42
|
+
- Absolute repo root: `/Users/drewgoddyn/projects/claude-worktrees`
|
|
43
|
+
|
|
44
|
+
## Phase 3.1: Setup
|
|
45
|
+
- [x] T001 Create project structure per implementation plan
|
|
46
|
+
- Paths: `/Users/drewgoddyn/projects/claude-worktrees/src/{cli,models,services,lib}` and `/Users/drewgoddyn/projects/claude-worktrees/tests/{contract,integration,unit}`, `/Users/drewgoddyn/projects/claude-worktrees/scripts`
|
|
47
|
+
- [x] T002 Initialize Bash CLI scaffold and tooling
|
|
48
|
+
- Create entrypoint: `/Users/drewgoddyn/projects/claude-worktrees/src/cli/worktrees` with `--help|--version|--format` scaffolding only (no behaviors)
|
|
49
|
+
- Create Makefile with targets: `test`, `lint`, `fmt`
|
|
50
|
+
- Add runner scripts: `/Users/drewgoddyn/projects/claude-worktrees/scripts/test.sh`, `/Users/drewgoddyn/projects/claude-worktrees/scripts/lint.sh`, `/Users/drewgoddyn/projects/claude-worktrees/scripts/format.sh`
|
|
51
|
+
- [x] T003 [P] Configure linting and formatting
|
|
52
|
+
- ShellCheck config at `/Users/drewgoddyn/projects/claude-worktrees/.shellcheckrc`
|
|
53
|
+
- shfmt usage in `scripts/format.sh`
|
|
54
|
+
|
|
55
|
+
## Phase 3.2: Tests First (TDD) ⚠️ MUST COMPLETE BEFORE 3.3
|
|
56
|
+
**CRITICAL: These tests MUST be written and MUST FAIL before ANY implementation**
|
|
57
|
+
- [x] T004 [P] Contract tests from `cli-contracts.md`
|
|
58
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/tests/contract/cli_contracts.bats`
|
|
59
|
+
- Scope: Validate command shapes and flags for `worktrees create|list|switch|remove|status`, exit codes, stderr vs stdout
|
|
60
|
+
- [x] T005 [P] Contract tests from `openapi.yaml`
|
|
61
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/tests/contract/openapi_worktrees.bats`
|
|
62
|
+
- Scope: Validate `--format json` output schema for list/create/switch/remove/status against OpenAPI fields
|
|
63
|
+
- [x] T006 [P] Integration test: create a worktree
|
|
64
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/tests/integration/create_worktree.bats`
|
|
65
|
+
- Scenario from quickstart.md "Create a worktree"
|
|
66
|
+
- [x] T007 [P] Integration test: list worktrees (paged)
|
|
67
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/tests/integration/list_worktrees.bats`
|
|
68
|
+
- Scenario from quickstart.md "List worktrees (paged)"
|
|
69
|
+
- [x] T008 [P] Integration test: switch to a worktree
|
|
70
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/tests/integration/switch_worktree.bats`
|
|
71
|
+
- Scenario from quickstart.md "Switch to a worktree"
|
|
72
|
+
- [x] T009 [P] Integration test: remove worktree (keep branch)
|
|
73
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/tests/integration/remove_keep_branch.bats`
|
|
74
|
+
- Scenario from quickstart.md "Remove a worktree safely (keep branch)"
|
|
75
|
+
- [x] T010 [P] Integration test: remove worktree and delete branch when merged
|
|
76
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/tests/integration/remove_delete_branch.bats`
|
|
77
|
+
- Scenario from quickstart.md "Remove and delete branch when fully merged"
|
|
78
|
+
|
|
79
|
+
## Phase 3.3: Core Implementation (ONLY after tests are failing)
|
|
80
|
+
### Models (from data-model.md)
|
|
81
|
+
- [x] T011 [P] Repository model functions
|
|
82
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/src/models/repository.sh`
|
|
83
|
+
- Implement: detect repo root; resolve default base from remote HEAD→main→master
|
|
84
|
+
- [x] T012 [P] FeatureName model and validation
|
|
85
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/src/models/feature_name.sh`
|
|
86
|
+
- Implement: regex `^[0-9]{3}-[a-z0-9-]{1,40}$`, reserved names, normalization
|
|
87
|
+
- [x] T013 [P] Worktree model
|
|
88
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/src/models/worktree.sh`
|
|
89
|
+
- Implement: representation; parse `git worktree list --porcelain` into fields; derived `active`
|
|
90
|
+
- [x] T014 [P] ListQuery model
|
|
91
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/src/models/list_query.sh`
|
|
92
|
+
- Implement: filterName, filterBase, page, pageSize with validation and caps
|
|
93
|
+
|
|
94
|
+
### Services and libs
|
|
95
|
+
- [x] T015 [P] Worktree service stubs
|
|
96
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/src/services/worktree_service.sh`
|
|
97
|
+
- Implement: `create_worktree`, `list_worktrees`, `switch_worktree`, `remove_worktree` interfaces (no CLI wiring yet)
|
|
98
|
+
- [x] T016 [P] JSON utilities for structured output
|
|
99
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/src/lib/json.sh`
|
|
100
|
+
- Implement: safe JSON quoting/encoding for text|json outputs (no jq dependency)
|
|
101
|
+
- [x] T017 [P] IO utilities and exit code mapping
|
|
102
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/src/lib/io.sh`
|
|
103
|
+
- Implement: stderr logging helpers, consistent exit codes (0/2/3/4/5/6)
|
|
104
|
+
|
|
105
|
+
### CLI commands (endpoints; sequential due to shared files)
|
|
106
|
+
- [x] T018 Implement `worktrees list` command
|
|
107
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/src/cli/worktrees`
|
|
108
|
+
- Wire: parse paging/filters; call service; print json/text
|
|
109
|
+
- [x] T019 Implement `worktrees create <NNN-kebab-feature>`
|
|
110
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/src/cli/worktrees`
|
|
111
|
+
- Wire: validate name; base detection/override; reuse/sibling flags; call service
|
|
112
|
+
- [x] T020 Implement `worktrees switch <name>`
|
|
113
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/src/cli/worktrees`
|
|
114
|
+
- Wire: allow dirty; warning to stderr; print current/previous
|
|
115
|
+
- [x] T021 Implement `worktrees remove <name>`
|
|
116
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/src/cli/worktrees`
|
|
117
|
+
- Wire: safety prechecks; `--delete-branch` with `--merged-into`; `--force` semantics
|
|
118
|
+
- [x] T022 Implement `worktrees status`
|
|
119
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/src/cli/worktrees`
|
|
120
|
+
- Wire: show current worktree ref
|
|
121
|
+
|
|
122
|
+
## Phase 3.4: Integration
|
|
123
|
+
- [x] T023 Integrate safety checks and merge verification
|
|
124
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/src/services/worktree_service.sh`
|
|
125
|
+
- Implement: tracked changes, unpushed commits/no upstream, op in progress; `git merge-base --is-ancestor` for merged checks
|
|
126
|
+
- [x] T024 Wire global flags and output modes
|
|
127
|
+
- Files: `/Users/drewgoddyn/projects/claude-worktrees/src/cli/worktrees`, `/Users/drewgoddyn/projects/claude-worktrees/src/lib/io.sh`, `/Users/drewgoddyn/projects/claude-worktrees/src/lib/json.sh`
|
|
128
|
+
- Implement: `--help`, `--version`, `--format text|json` consistent across commands
|
|
129
|
+
- [x] T025 Implement global root resolution and setup
|
|
130
|
+
- Files: `/Users/drewgoddyn/projects/claude-worktrees/src/services/worktree_service.sh`, `/Users/drewgoddyn/projects/claude-worktrees/src/models/repository.sh`
|
|
131
|
+
- Implement: default `$HOME/.worktrees`, `WORKTREES_ROOT` and `--root` override; create if missing
|
|
132
|
+
|
|
133
|
+
## Phase 3.5: Polish
|
|
134
|
+
- [x] T026 [P] Unit tests: FeatureName validation rules
|
|
135
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/tests/unit/feature_name_test.bats`
|
|
136
|
+
- [x] T027 [P] Unit tests: default base detection
|
|
137
|
+
- File: `/Users/drewgoddyn/projects/claude-worktrees/tests/unit/repository_test.bats`
|
|
138
|
+
- [x] T028 [P] Implement list paging caps and performance guards
|
|
139
|
+
- Files: `/Users/drewgoddyn/projects/claude-worktrees/src/cli/worktrees`, `/Users/drewgoddyn/projects/claude-worktrees/src/services/worktree_service.sh`
|
|
140
|
+
- [x] T029 [P] Documentation pass
|
|
141
|
+
- Update quickstart examples in `/Users/drewgoddyn/projects/claude-worktrees/specs/001-build-a-tool/quickstart.md` and create README at `/Users/drewgoddyn/projects/claude-worktrees/README.md`
|
|
142
|
+
- [x] T030 [P] Ensure ShellCheck/shfmt clean, finalize Makefile targets
|
|
143
|
+
- Run `scripts/lint.sh` and `scripts/format.sh`; adjust code accordingly
|
|
144
|
+
|
|
145
|
+
## Dependencies
|
|
146
|
+
- Setup (T001–T003) before Tests (T004–T010)
|
|
147
|
+
- Tests (T004–T010) must fail before Core (T011+)
|
|
148
|
+
- Models (T011–T014) before Services (T015–T017)
|
|
149
|
+
- Services/Libs (T015–T017) before CLI endpoints (T018–T022)
|
|
150
|
+
- Core (T011–T022) before Integration (T023–T025)
|
|
151
|
+
- Everything before Polish (T026–T030)
|
|
152
|
+
- CLI endpoint tasks T018–T022 are sequential (shared file `/src/cli/worktrees`)
|
|
153
|
+
|
|
154
|
+
## Parallel Example
|
|
155
|
+
```
|
|
156
|
+
# Launch T004–T010 together (different test files):
|
|
157
|
+
Task: "Create /Users/drewgoddyn/projects/claude-worktrees/tests/contract/cli_contracts.bats"
|
|
158
|
+
Task: "Create /Users/drewgoddyn/projects/claude-worktrees/tests/contract/openapi_worktrees.bats"
|
|
159
|
+
Task: "Create /Users/drewgoddyn/projects/claude-worktrees/tests/integration/create_worktree.bats"
|
|
160
|
+
Task: "Create /Users/drewgoddyn/projects/claude-worktrees/tests/integration/list_worktrees.bats"
|
|
161
|
+
Task: "Create /Users/drewgoddyn/projects/claude-worktrees/tests/integration/switch_worktree.bats"
|
|
162
|
+
Task: "Create /Users/drewgoddyn/projects/claude-worktrees/tests/integration/remove_keep_branch.bats"
|
|
163
|
+
Task: "Create /Users/drewgoddyn/projects/claude-worktrees/tests/integration/remove_delete_branch.bats"
|
|
164
|
+
|
|
165
|
+
# After models are done, run model tasks in parallel:
|
|
166
|
+
Task: "Implement /Users/drewgoddyn/projects/claude-worktrees/src/models/repository.sh"
|
|
167
|
+
Task: "Implement /Users/drewgoddyn/projects/claude-worktrees/src/models/feature_name.sh"
|
|
168
|
+
Task: "Implement /Users/drewgoddyn/projects/claude-worktrees/src/models/worktree.sh"
|
|
169
|
+
Task: "Implement /Users/drewgoddyn/projects/claude-worktrees/src/models/list_query.sh"
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Notes
|
|
173
|
+
- [P] tasks = different files, no dependencies
|
|
174
|
+
- Verify tests fail before implementing
|
|
175
|
+
- Commit after each task
|
|
176
|
+
- Avoid: vague tasks, same file conflicts
|
|
177
|
+
|
|
178
|
+
## Task Generation Rules
|
|
179
|
+
*Applied during main() execution*
|
|
180
|
+
|
|
181
|
+
1. **From Contracts**:
|
|
182
|
+
- Each contract file → contract test task [P]
|
|
183
|
+
- Each endpoint/CLI command → implementation task (sequential if shared files)
|
|
184
|
+
|
|
185
|
+
2. **From Data Model**:
|
|
186
|
+
- Each entity → model creation task [P]
|
|
187
|
+
- Relationships → service layer tasks
|
|
188
|
+
|
|
189
|
+
3. **From User Stories (quickstart flows)**:
|
|
190
|
+
- Each flow → integration test [P]
|
|
191
|
+
- Quickstart scenarios → validation tasks
|
|
192
|
+
|
|
193
|
+
4. **Ordering**:
|
|
194
|
+
- Setup → Tests → Models → Services → Endpoints → Integration → Polish
|
|
195
|
+
- Dependencies block parallel execution
|
|
196
|
+
|
|
197
|
+
## Validation Checklist
|
|
198
|
+
*GATE: Checked by main() before returning*
|
|
199
|
+
|
|
200
|
+
- [x] All contracts have corresponding tests (cli-contracts.md, openapi.yaml)
|
|
201
|
+
- [x] All entities have model tasks (Repository, FeatureName, Worktree, ListQuery)
|
|
202
|
+
- [x] All tests come before implementation
|
|
203
|
+
- [x] Parallel tasks truly independent
|
|
204
|
+
- [x] Each task specifies exact file path
|
|
205
|
+
- [x] No task modifies same file as another [P] task
|
|
206
|
+
|
|
207
|
+
**Validation Status**: ✅ PASSED - All spec-kit gates completed
|
|
208
|
+
|
|
209
|
+
|
metadata
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: worktrees
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Drew Goddyn
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2025-09-18 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: dry-cli
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '1.0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '1.0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: bundler
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '2.0'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '2.0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rake
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '13.0'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '13.0'
|
|
55
|
+
description: A CLI tool to create, list, switch between, and remove Git feature worktrees
|
|
56
|
+
with safety checks and naming conventions
|
|
57
|
+
email:
|
|
58
|
+
- drgoddyn@gmail.com
|
|
59
|
+
executables:
|
|
60
|
+
- worktrees
|
|
61
|
+
extensions: []
|
|
62
|
+
extra_rdoc_files: []
|
|
63
|
+
files:
|
|
64
|
+
- ".claude/commands/plan.md"
|
|
65
|
+
- ".claude/commands/specify.md"
|
|
66
|
+
- ".claude/commands/tasks.md"
|
|
67
|
+
- ".cursor/commands/plan.md"
|
|
68
|
+
- ".cursor/commands/specify.md"
|
|
69
|
+
- ".cursor/commands/tasks.md"
|
|
70
|
+
- ".cursor/rules"
|
|
71
|
+
- ".specify/memory/constitution-v1.0.1-formal.md"
|
|
72
|
+
- ".specify/memory/constitution.md"
|
|
73
|
+
- ".specify/memory/constitution_update_checklist.md"
|
|
74
|
+
- ".specify/scripts/bash/check-task-prerequisites.sh"
|
|
75
|
+
- ".specify/scripts/bash/common.sh"
|
|
76
|
+
- ".specify/scripts/bash/create-new-feature.sh"
|
|
77
|
+
- ".specify/scripts/bash/get-feature-paths.sh"
|
|
78
|
+
- ".specify/scripts/bash/setup-plan.sh"
|
|
79
|
+
- ".specify/scripts/bash/update-agent-context.sh"
|
|
80
|
+
- ".specify/templates/agent-file-template.md"
|
|
81
|
+
- ".specify/templates/plan-template.md"
|
|
82
|
+
- ".specify/templates/spec-template.md"
|
|
83
|
+
- ".specify/templates/tasks-template.md"
|
|
84
|
+
- CLAUDE.md
|
|
85
|
+
- Gemfile
|
|
86
|
+
- Gemfile.lock
|
|
87
|
+
- README.md
|
|
88
|
+
- Rakefile
|
|
89
|
+
- exe/worktrees
|
|
90
|
+
- lib/worktrees.rb
|
|
91
|
+
- lib/worktrees/cli.rb
|
|
92
|
+
- lib/worktrees/commands/create.rb
|
|
93
|
+
- lib/worktrees/commands/list.rb
|
|
94
|
+
- lib/worktrees/commands/remove.rb
|
|
95
|
+
- lib/worktrees/commands/status.rb
|
|
96
|
+
- lib/worktrees/commands/switch.rb
|
|
97
|
+
- lib/worktrees/git_operations.rb
|
|
98
|
+
- lib/worktrees/models/feature_worktree.rb
|
|
99
|
+
- lib/worktrees/models/repository.rb
|
|
100
|
+
- lib/worktrees/models/worktree_config.rb
|
|
101
|
+
- lib/worktrees/version.rb
|
|
102
|
+
- lib/worktrees/worktree_manager.rb
|
|
103
|
+
- specs/001-build-a-tool/GEMINI.md
|
|
104
|
+
- specs/001-build-a-tool/contracts/cli-contracts.md
|
|
105
|
+
- specs/001-build-a-tool/contracts/openapi.yaml
|
|
106
|
+
- specs/001-build-a-tool/data-model.md
|
|
107
|
+
- specs/001-build-a-tool/plan.md
|
|
108
|
+
- specs/001-build-a-tool/quickstart.md
|
|
109
|
+
- specs/001-build-a-tool/research.md
|
|
110
|
+
- specs/001-build-a-tool/spec.md
|
|
111
|
+
- specs/001-build-a-tool/tasks.md
|
|
112
|
+
homepage: https://github.com/Drew-Goddyn/claude-worktrees
|
|
113
|
+
licenses:
|
|
114
|
+
- MIT
|
|
115
|
+
metadata:
|
|
116
|
+
homepage_uri: https://github.com/Drew-Goddyn/claude-worktrees
|
|
117
|
+
source_code_uri: https://github.com/Drew-Goddyn/claude-worktrees
|
|
118
|
+
changelog_uri: https://github.com/Drew-Goddyn/claude-worktrees/blob/main/CHANGELOG.md
|
|
119
|
+
post_install_message:
|
|
120
|
+
rdoc_options: []
|
|
121
|
+
require_paths:
|
|
122
|
+
- lib
|
|
123
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
124
|
+
requirements:
|
|
125
|
+
- - ">="
|
|
126
|
+
- !ruby/object:Gem::Version
|
|
127
|
+
version: 3.2.0
|
|
128
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
|
+
requirements:
|
|
130
|
+
- - ">="
|
|
131
|
+
- !ruby/object:Gem::Version
|
|
132
|
+
version: '0'
|
|
133
|
+
requirements: []
|
|
134
|
+
rubygems_version: 3.5.22
|
|
135
|
+
signing_key:
|
|
136
|
+
specification_version: 4
|
|
137
|
+
summary: Manage Git worktrees for feature-based development
|
|
138
|
+
test_files: []
|