@itz4blitz/agentful 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.
- package/.claude/agents/architect.md +446 -0
- package/.claude/agents/backend.md +251 -0
- package/.claude/agents/fixer.md +263 -0
- package/.claude/agents/frontend.md +351 -0
- package/.claude/agents/orchestrator.md +1139 -0
- package/.claude/agents/reviewer.md +332 -0
- package/.claude/agents/tester.md +319 -0
- package/.claude/commands/agentful-decide.md +139 -0
- package/.claude/commands/agentful-start.md +180 -0
- package/.claude/commands/agentful-status.md +96 -0
- package/.claude/commands/agentful-validate.md +105 -0
- package/.claude/product/CHANGES.md +276 -0
- package/.claude/product/EXAMPLES.md +610 -0
- package/.claude/product/README.md +312 -0
- package/.claude/product/index.md +152 -0
- package/.claude/settings.json +63 -0
- package/.claude/skills/product-tracking/SKILL.md +654 -0
- package/.claude/skills/validation/SKILL.md +271 -0
- package/LICENSE +21 -0
- package/README.md +335 -0
- package/bin/cli.js +580 -0
- package/package.json +42 -0
- package/template/CLAUDE.md +197 -0
- package/template/PRODUCT.md +496 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
# Product Structure Hybrid Support - Implementation Summary
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Implemented a hybrid approach that supports **both** single `PRODUCT.md` files and hierarchical `.claude/product/` directory structures. The system now auto-detects which format is being used and adapts accordingly.
|
|
6
|
+
|
|
7
|
+
## Problem Solved
|
|
8
|
+
|
|
9
|
+
**Before:**
|
|
10
|
+
- Template created single `PRODUCT.md` file
|
|
11
|
+
- Agents expected `.claude/product/index.md` directory structure
|
|
12
|
+
- No backward compatibility
|
|
13
|
+
- Confusion about which format to use
|
|
14
|
+
|
|
15
|
+
**After:**
|
|
16
|
+
- System supports **both** formats seamlessly
|
|
17
|
+
- Auto-detection determines format on every run
|
|
18
|
+
- Clear migration path from flat → hierarchical
|
|
19
|
+
- Comprehensive documentation
|
|
20
|
+
|
|
21
|
+
## Changes Made
|
|
22
|
+
|
|
23
|
+
### 1. Updated `/Users/blitz/Development/agentful/.claude/agents/orchestrator.md`
|
|
24
|
+
|
|
25
|
+
**Added Product Structure Detection section:**
|
|
26
|
+
- Auto-detection algorithm with priority order
|
|
27
|
+
- Format detection logic (hierarchical vs flat)
|
|
28
|
+
- Clear documentation of both formats
|
|
29
|
+
- Migration path guidance
|
|
30
|
+
|
|
31
|
+
**Updated Product Structure Reading Algorithm:**
|
|
32
|
+
- Step-by-step detection process
|
|
33
|
+
- Error handling for no product spec found
|
|
34
|
+
- Format consistency verification
|
|
35
|
+
- Detection summary table
|
|
36
|
+
|
|
37
|
+
**Key algorithm:**
|
|
38
|
+
```bash
|
|
39
|
+
# Detection priority
|
|
40
|
+
1. .claude/product/domains/*/index.md exists → Hierarchical
|
|
41
|
+
2. PRODUCT.md exists → Flat (legacy)
|
|
42
|
+
3. .claude/product/index.md exists → Flat (new)
|
|
43
|
+
4. None → Error
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 2. Updated `/Users/blitz/Development/agentful/.claude/skills/product-tracking/SKILL.md`
|
|
47
|
+
|
|
48
|
+
**Added Hybrid Product Organization section:**
|
|
49
|
+
- Side-by-side comparison of both formats
|
|
50
|
+
- Auto-detection algorithm matching orchestrator
|
|
51
|
+
- Priority order for format selection
|
|
52
|
+
|
|
53
|
+
**Updated Parsing Product Structure section:**
|
|
54
|
+
- Separate instructions for hierarchical vs flat
|
|
55
|
+
- Detection-first approach
|
|
56
|
+
- Clear file paths for each format
|
|
57
|
+
|
|
58
|
+
**Updated Usage section:**
|
|
59
|
+
- Auto-detection before any operation
|
|
60
|
+
- Structure compatibility table
|
|
61
|
+
- Clear tracking methods for each format
|
|
62
|
+
|
|
63
|
+
**Added structure compatibility table:**
|
|
64
|
+
| Structure Type | Detection | Product File | Completion Schema | Tracking Method |
|
|
65
|
+
|---------------|-----------|--------------|-------------------|-----------------|
|
|
66
|
+
| Hierarchical | `.claude/product/domains/*/index.md` exists | `.claude/product/index.md` | Nested `domains` object | Track at subtask → feature → domain levels |
|
|
67
|
+
| Flat (legacy) | `PRODUCT.md` exists | `PRODUCT.md` | Flat `features` object | Track at feature level |
|
|
68
|
+
| Flat (new) | `.claude/product/index.md` exists | `.claude/product/index.md` | Flat `features` object | Track at feature level |
|
|
69
|
+
|
|
70
|
+
### 3. Updated `/Users/blitz/Development/agentful/.claude/product/index.md`
|
|
71
|
+
|
|
72
|
+
**Added documentation note:**
|
|
73
|
+
```markdown
|
|
74
|
+
> **Note**: This template supports **both** flat and hierarchical product structures.
|
|
75
|
+
> The system will auto-detect which format you're using:
|
|
76
|
+
> - **Flat (this file)**: Add all features here for simple projects
|
|
77
|
+
> - **Hierarchical**: Create `.claude/product/domains/*/` directories for organized projects
|
|
78
|
+
>
|
|
79
|
+
> See `.claude/agents/orchestrator.md` for details on product structure detection.
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 4. Created `/Users/blitz/Development/agentful/.claude/product/README.md`
|
|
83
|
+
|
|
84
|
+
Comprehensive 300+ line guide covering:
|
|
85
|
+
- Quick start for both formats
|
|
86
|
+
- Auto-detection explanation
|
|
87
|
+
- When to use each format
|
|
88
|
+
- Completion tracking examples
|
|
89
|
+
- Migration path from flat → hierarchical
|
|
90
|
+
- Best practices for each format
|
|
91
|
+
- Troubleshooting common issues
|
|
92
|
+
- Summary comparison table
|
|
93
|
+
|
|
94
|
+
### 5. Created `/Users/blitz/Development/agentful/.claude/product/EXAMPLES.md`
|
|
95
|
+
|
|
96
|
+
Concrete examples showing:
|
|
97
|
+
- **Example 1: Flat Structure**
|
|
98
|
+
- Complete `PRODUCT.md` file
|
|
99
|
+
- 6 features with full details
|
|
100
|
+
- Flat completion.json example
|
|
101
|
+
|
|
102
|
+
- **Example 2: Hierarchical Structure**
|
|
103
|
+
- Directory structure
|
|
104
|
+
- Product index file
|
|
105
|
+
- Domain index file
|
|
106
|
+
- Feature file with subtasks
|
|
107
|
+
- Hierarchical completion.json example
|
|
108
|
+
|
|
109
|
+
- **Key Differences table** comparing approaches
|
|
110
|
+
|
|
111
|
+
## Format Detection Algorithm
|
|
112
|
+
|
|
113
|
+
```javascript
|
|
114
|
+
// Pseudo-code for auto-detection
|
|
115
|
+
function detectProductFormat() {
|
|
116
|
+
// Priority 1: Check for hierarchical structure
|
|
117
|
+
if (glob(".claude/product/domains/*/index.md").length > 0) {
|
|
118
|
+
return {
|
|
119
|
+
format: "hierarchical",
|
|
120
|
+
productRoot: ".claude/product",
|
|
121
|
+
completionStructure: "nested-domains",
|
|
122
|
+
tracking: "subtask-feature-domain"
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Priority 2: Check for flat structure (legacy)
|
|
127
|
+
if (exists("PRODUCT.md")) {
|
|
128
|
+
return {
|
|
129
|
+
format: "flat-legacy",
|
|
130
|
+
productRoot: ".",
|
|
131
|
+
productFile: "PRODUCT.md",
|
|
132
|
+
completionStructure: "flat-features",
|
|
133
|
+
tracking: "feature"
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Priority 3: Check for flat structure (new)
|
|
138
|
+
if (exists(".claude/product/index.md")) {
|
|
139
|
+
return {
|
|
140
|
+
format: "flat-new",
|
|
141
|
+
productRoot: ".claude/product",
|
|
142
|
+
productFile: ".claude/product/index.md",
|
|
143
|
+
completionStructure: "flat-features",
|
|
144
|
+
tracking: "feature"
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// No product specification found
|
|
149
|
+
throw new Error("No product specification found. Please create either:" +
|
|
150
|
+
"\n - PRODUCT.md (flat format)" +
|
|
151
|
+
"\n - .claude/product/index.md (flat format)" +
|
|
152
|
+
"\n - .claude/product/domains/*/index.md (hierarchical format)");
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Backward Compatibility
|
|
157
|
+
|
|
158
|
+
### Existing Projects
|
|
159
|
+
|
|
160
|
+
**Projects with `PRODUCT.md`:**
|
|
161
|
+
- Continue working without changes
|
|
162
|
+
- Detected as flat format (legacy)
|
|
163
|
+
- No migration required
|
|
164
|
+
- Can migrate to hierarchical when ready
|
|
165
|
+
|
|
166
|
+
**New Projects:**
|
|
167
|
+
- Can use `.claude/product/index.md` for flat format
|
|
168
|
+
- Can use `.claude/product/domains/*/` for hierarchical format
|
|
169
|
+
- System auto-detects and adapts
|
|
170
|
+
|
|
171
|
+
### Migration Path
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
Phase 1: Quick Start (Flat)
|
|
175
|
+
└── PRODUCT.md
|
|
176
|
+
→ All features in one file
|
|
177
|
+
→ Track at feature level
|
|
178
|
+
|
|
179
|
+
Phase 2: Organize (Flat, optional)
|
|
180
|
+
└── .claude/product/index.md
|
|
181
|
+
→ Same flat structure
|
|
182
|
+
→ Better organization
|
|
183
|
+
|
|
184
|
+
Phase 3: Scale Up (Hierarchical)
|
|
185
|
+
└── .claude/product/domains/
|
|
186
|
+
├── authentication/
|
|
187
|
+
│ ├── index.md
|
|
188
|
+
│ └── features/
|
|
189
|
+
│ ├── login.md
|
|
190
|
+
│ └── register.md
|
|
191
|
+
└── user-management/
|
|
192
|
+
└── ...
|
|
193
|
+
→ Track at subtask → feature → domain levels
|
|
194
|
+
→ Better for large projects and teams
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Benefits
|
|
198
|
+
|
|
199
|
+
### For Users
|
|
200
|
+
|
|
201
|
+
1. **Flexibility**: Choose format that fits project size
|
|
202
|
+
2. **No Breaking Changes**: Existing projects continue working
|
|
203
|
+
3. **Clear Migration Path**: Start flat, grow to hierarchical
|
|
204
|
+
4. **No Configuration**: Auto-detection works automatically
|
|
205
|
+
|
|
206
|
+
### For Teams
|
|
207
|
+
|
|
208
|
+
1. **Small Teams**: Use flat structure for simplicity
|
|
209
|
+
2. **Large Teams**: Use hierarchical for parallel work
|
|
210
|
+
3. **Reduced Conflicts**: Separate domain/feature files
|
|
211
|
+
4. **Better Organization**: Logical domain boundaries
|
|
212
|
+
|
|
213
|
+
### For Agents
|
|
214
|
+
|
|
215
|
+
1. **Consistent Detection**: Same algorithm in orchestrator and tracking skill
|
|
216
|
+
2. **Clear Documentation**: Comprehensive examples and guides
|
|
217
|
+
3. **Error Handling**: Helpful error messages when no spec found
|
|
218
|
+
4. **Format Validation**: Verifies completion.json matches product files
|
|
219
|
+
|
|
220
|
+
## Testing Recommendations
|
|
221
|
+
|
|
222
|
+
To verify the implementation works:
|
|
223
|
+
|
|
224
|
+
1. **Test Flat Structure (Legacy):**
|
|
225
|
+
```bash
|
|
226
|
+
# Create PRODUCT.md at root
|
|
227
|
+
# Run orchestrator
|
|
228
|
+
# Verify flat format detected
|
|
229
|
+
# Check completion.json uses "features" object
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
2. **Test Flat Structure (New):**
|
|
233
|
+
```bash
|
|
234
|
+
# Create .claude/product/index.md (without domains)
|
|
235
|
+
# Run orchestrator
|
|
236
|
+
# Verify flat format detected
|
|
237
|
+
# Check completion.json uses "features" object
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
3. **Test Hierarchical Structure:**
|
|
241
|
+
```bash
|
|
242
|
+
# Create .claude/product/domains/authentication/index.md
|
|
243
|
+
# Run orchestrator
|
|
244
|
+
# Verify hierarchical format detected
|
|
245
|
+
# Check completion.json uses "domains" object
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
4. **Test Format Detection:**
|
|
249
|
+
```bash
|
|
250
|
+
# Create both PRODUCT.md and .claude/product/domains/
|
|
251
|
+
# Verify hierarchical takes priority (Priority 1)
|
|
252
|
+
# Delete domains, verify PRODUCT.md detected (Priority 2)
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## Documentation Files
|
|
256
|
+
|
|
257
|
+
| File | Purpose | Lines |
|
|
258
|
+
|------|---------|-------|
|
|
259
|
+
| `.claude/agents/orchestrator.md` | Agent orchestration logic with format detection | 600+ |
|
|
260
|
+
| `.claude/skills/product-tracking/SKILL.md` | Progress tracking for both formats | 650+ |
|
|
261
|
+
| `.claude/product/README.md` | User guide for product structures | 350+ |
|
|
262
|
+
| `.claude/product/EXAMPLES.md` | Concrete examples of both formats | 700+ |
|
|
263
|
+
| `.claude/product/index.md` | Template with dual-format note | 150+ |
|
|
264
|
+
| `.claude/product/CHANGES.md` | This file | Summary |
|
|
265
|
+
|
|
266
|
+
## Summary
|
|
267
|
+
|
|
268
|
+
The hybrid approach ensures:
|
|
269
|
+
|
|
270
|
+
- **Backward Compatibility**: Existing projects work unchanged
|
|
271
|
+
- **Forward Compatibility**: New projects can use organized structure
|
|
272
|
+
- **Auto-Detection**: No configuration needed
|
|
273
|
+
- **Clear Migration**: Path from simple to complex as projects grow
|
|
274
|
+
- **Comprehensive Docs**: Examples, guides, and best practices
|
|
275
|
+
|
|
276
|
+
Both old (PRODUCT.md) and new (.claude/product/domains/) approaches now work seamlessly!
|