@itz4blitz/agentful 0.1.0 → 0.1.4
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 +283 -11
- package/.claude/agents/backend.md +282 -218
- package/.claude/agents/frontend.md +242 -319
- package/.claude/agents/orchestrator.md +27 -27
- package/.claude/agents/reviewer.md +1 -1
- package/.claude/agents/tester.md +375 -284
- package/.claude/commands/agentful-decide.md +104 -29
- package/.claude/commands/agentful-start.md +18 -16
- package/.claude/commands/agentful-status.md +28 -22
- package/.claude/commands/agentful-validate.md +42 -20
- package/.claude/commands/agentful.md +329 -0
- package/.claude/product/README.md +1 -1
- package/.claude/product/index.md +1 -1
- package/.claude/settings.json +4 -3
- package/.claude/skills/conversation/SKILL.md +1130 -0
- package/LICENSE +1 -1
- package/README.md +557 -222
- package/bin/cli.js +319 -36
- package/lib/agent-generator.js +685 -0
- package/lib/domain-detector.js +468 -0
- package/lib/domain-structure-generator.js +770 -0
- package/lib/index.js +40 -0
- package/lib/project-analyzer.js +701 -0
- package/lib/tech-stack-detector.js +1091 -0
- package/lib/template-engine.js +153 -0
- package/package.json +14 -5
- package/template/CLAUDE.md +62 -21
- package/template/PRODUCT.md +89 -1
|
@@ -3,7 +3,7 @@ name: agentful-decide
|
|
|
3
3
|
description: Answer pending decisions that are blocking development progress.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# agentful Decide
|
|
7
7
|
|
|
8
8
|
This command helps you resolve pending decisions that are blocking development.
|
|
9
9
|
|
|
@@ -18,14 +18,14 @@ Read `.agentful/decisions.json`:
|
|
|
18
18
|
"pending": [
|
|
19
19
|
{
|
|
20
20
|
"id": "decision-001",
|
|
21
|
-
"question": "
|
|
21
|
+
"question": "How should we handle inventory race conditions during flash sales?",
|
|
22
22
|
"options": [
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
23
|
+
"Pessimistic locking (database row locks during checkout)",
|
|
24
|
+
"Optimistic locking with automatic retry on conflict",
|
|
25
|
+
"Queue-based processing (serialize checkout requests)"
|
|
26
26
|
],
|
|
27
|
-
"context": "
|
|
28
|
-
"blocking": ["
|
|
27
|
+
"context": "Shopfinity e-commerce platform expects 1000+ concurrent checkouts during Black Friday. Current implementation allows overselling when multiple users attempt to purchase the same item simultaneously.",
|
|
28
|
+
"blocking": ["checkout-feature", "order-history-feature"],
|
|
29
29
|
"timestamp": "2026-01-18T00:00:00Z"
|
|
30
30
|
}
|
|
31
31
|
],
|
|
@@ -41,17 +41,30 @@ For each pending decision, display:
|
|
|
41
41
|
┌────────────────────────────────────────────────────────────┐
|
|
42
42
|
│ Decision #1 │
|
|
43
43
|
├────────────────────────────────────────────────────────────┤
|
|
44
|
-
│ Question:
|
|
44
|
+
│ Question: How should we handle inventory race conditions │
|
|
45
|
+
│ during flash sales? │
|
|
45
46
|
│ │
|
|
46
|
-
│ Context:
|
|
47
|
+
│ Context: Shopfinity expects 1000+ concurrent checkouts │
|
|
48
|
+
│ during Black Friday. Current implementation allows │
|
|
49
|
+
│ overselling when multiple users attempt to purchase │
|
|
50
|
+
│ the same item simultaneously. │
|
|
47
51
|
│ │
|
|
48
52
|
│ Options: │
|
|
49
|
-
│ [1]
|
|
50
|
-
│
|
|
51
|
-
│
|
|
53
|
+
│ [1] Pessimistic locking (database row locks) │
|
|
54
|
+
│ Pros: Simple, guarantees consistency │
|
|
55
|
+
│ Cons: Poor performance under high concurrency │
|
|
56
|
+
│ │
|
|
57
|
+
│ [2] Optimistic locking with automatic retry │
|
|
58
|
+
│ Pros: Better performance, handles spikes well │
|
|
59
|
+
│ Cons: Requires retry logic, potential starvation │
|
|
60
|
+
│ │
|
|
61
|
+
│ [3] Queue-based processing │
|
|
62
|
+
│ Pros: Full control, can prioritize customers │
|
|
63
|
+
│ Cons: Complex, adds infrastructure │
|
|
64
|
+
│ │
|
|
52
65
|
│ [4] Custom input... │
|
|
53
66
|
│ │
|
|
54
|
-
│ Blocking:
|
|
67
|
+
│ Blocking: checkout-feature, order-history-feature │
|
|
55
68
|
└────────────────────────────────────────────────────────────┘
|
|
56
69
|
|
|
57
70
|
Your choice:
|
|
@@ -67,8 +80,8 @@ After user selects:
|
|
|
67
80
|
"resolved": [
|
|
68
81
|
{
|
|
69
82
|
"id": "decision-001",
|
|
70
|
-
"question": "
|
|
71
|
-
"answer": "
|
|
83
|
+
"question": "How should we handle inventory race conditions during flash sales?",
|
|
84
|
+
"answer": "Queue-based processing",
|
|
72
85
|
"timestamp_resolved": "2026-01-18T00:30:00Z"
|
|
73
86
|
}
|
|
74
87
|
],
|
|
@@ -82,10 +95,60 @@ Remove from `.agentful/state.json` blocked_on array:
|
|
|
82
95
|
|
|
83
96
|
```json
|
|
84
97
|
{
|
|
85
|
-
"blocked_on": [] // Was: ["
|
|
98
|
+
"blocked_on": [] // Was: ["checkout-feature", "order-history-feature"]
|
|
86
99
|
}
|
|
87
100
|
```
|
|
88
101
|
|
|
102
|
+
## Example Decisions Across Different Domains
|
|
103
|
+
|
|
104
|
+
**SaaS Billing Platform:**
|
|
105
|
+
```
|
|
106
|
+
Question: How should we prorate subscription changes mid-cycle?
|
|
107
|
+
|
|
108
|
+
Options:
|
|
109
|
+
[1] Prorate to the day (calculate daily rate)
|
|
110
|
+
[2] Prorate to the week (simpler calculation)
|
|
111
|
+
[3] Charge full amount, credit next cycle
|
|
112
|
+
[4] Custom input...
|
|
113
|
+
|
|
114
|
+
Context: Startup plan users frequently upgrade/downgrade.
|
|
115
|
+
Complex daily proration may confuse customers on invoices.
|
|
116
|
+
|
|
117
|
+
Blocking: subscription-management, invoice-generation
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**Content Management System:**
|
|
121
|
+
```
|
|
122
|
+
Question: How should we handle concurrent content edits?
|
|
123
|
+
|
|
124
|
+
Options:
|
|
125
|
+
[1] Last write wins (overwrite without warning)
|
|
126
|
+
[2] Optimistic locking (show conflict, let user merge)
|
|
127
|
+
[3] Pessimistic locking (lock document on edit)
|
|
128
|
+
[4] Google Docs-style real-time collaboration
|
|
129
|
+
|
|
130
|
+
Context: Marketing team of 12 editors reports frequent
|
|
131
|
+
conflicts when updating blog posts and landing pages.
|
|
132
|
+
|
|
133
|
+
Blocking: content-editor, version-control
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Project Management Tool:**
|
|
137
|
+
```
|
|
138
|
+
Question: How should we calculate project completion percentage?
|
|
139
|
+
|
|
140
|
+
Options:
|
|
141
|
+
[1] Equal weight (all tasks count equally)
|
|
142
|
+
[2] Story points (weighted by effort estimate)
|
|
143
|
+
[3] Time spent (weighted by actual hours logged)
|
|
144
|
+
[4] Custom (manual percentage per task)
|
|
145
|
+
|
|
146
|
+
Context: Developers complain that completing 10 small tasks
|
|
147
|
+
shows same progress as 1 complex architectural change.
|
|
148
|
+
|
|
149
|
+
Blocking: dashboard, reporting-metrics
|
|
150
|
+
```
|
|
151
|
+
|
|
89
152
|
## Interactive Mode
|
|
90
153
|
|
|
91
154
|
If there are multiple pending decisions, process them one at a time:
|
|
@@ -93,14 +156,14 @@ If there are multiple pending decisions, process them one at a time:
|
|
|
93
156
|
```
|
|
94
157
|
You have 3 pending decisions to resolve:
|
|
95
158
|
|
|
96
|
-
[1/3]
|
|
97
|
-
>
|
|
159
|
+
[1/3] How should we handle inventory race conditions?
|
|
160
|
+
> 3 (Queue-based processing)
|
|
98
161
|
|
|
99
|
-
[2/3] Which
|
|
100
|
-
>
|
|
162
|
+
[2/3] Which payment gateway should we use?
|
|
163
|
+
> 1
|
|
101
164
|
|
|
102
|
-
[3/3]
|
|
103
|
-
> 4 (custom: "
|
|
165
|
+
[3/3] Should we support international shipping from day 1?
|
|
166
|
+
> 4 (custom: "Only US and Canada, expand in Q2")
|
|
104
167
|
|
|
105
168
|
✅ All decisions resolved! Run /agentful-start to continue.
|
|
106
169
|
```
|
|
@@ -122,18 +185,30 @@ Use AskUserQuestion tool to present decisions interactively:
|
|
|
122
185
|
```
|
|
123
186
|
AskUserQuestion({
|
|
124
187
|
questions: [{
|
|
125
|
-
|
|
188
|
+
id: "decision-001",
|
|
189
|
+
question: "How should we handle inventory race conditions?",
|
|
126
190
|
options: [
|
|
127
|
-
{
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
191
|
+
{
|
|
192
|
+
label: "Pessimistic locking",
|
|
193
|
+
description: "Database row locks during checkout"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
label: "Optimistic locking",
|
|
197
|
+
description: "Automatic retry on conflict"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
label: "Queue-based processing",
|
|
201
|
+
description: "Serialize checkout requests"
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
context: "Expected 1000+ concurrent checkouts during Black Friday...",
|
|
205
|
+
blocking: ["checkout-feature", "order-history-feature"]
|
|
131
206
|
}]
|
|
132
207
|
})
|
|
133
208
|
```
|
|
134
209
|
|
|
135
210
|
After receiving answers:
|
|
136
|
-
1. Update decisions.json
|
|
137
|
-
2. Update state.json blocked_on
|
|
211
|
+
1. Update decisions.json (move to resolved)
|
|
212
|
+
2. Update state.json blocked_on (clear the array)
|
|
138
213
|
3. Show summary of what was resolved
|
|
139
214
|
4. Suggest running /agentful-start
|
|
@@ -3,7 +3,7 @@ name: agentful-start
|
|
|
3
3
|
description: Start or resume autonomous product development loop. Delegates to orchestrator agent.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# agentful Start
|
|
7
7
|
|
|
8
8
|
This command initiates the autonomous product development loop.
|
|
9
9
|
|
|
@@ -14,9 +14,9 @@ This command initiates the autonomous product development loop.
|
|
|
14
14
|
Check if the user provided a specific request with this command:
|
|
15
15
|
|
|
16
16
|
**Examples:**
|
|
17
|
-
- `/agentful-start "Fix the
|
|
18
|
-
- `/agentful-start "Add
|
|
19
|
-
- `/agentful-start "
|
|
17
|
+
- `/agentful-start "Fix the memory leak in checkout flow"` → BUGFIX workflow
|
|
18
|
+
- `/agentful-start "Add subscription proration logic"` → FEATURE_DEVELOPMENT workflow
|
|
19
|
+
- `/agentful-start "Migrate from REST to GraphQL"` → REFACTOR workflow
|
|
20
20
|
- `/agentful-start` (no args) → Continue autonomous development loop
|
|
21
21
|
|
|
22
22
|
**User Request Detection:**
|
|
@@ -53,15 +53,15 @@ current_checksums = calculate_checksums(".claude/")
|
|
|
53
53
|
# Compare with stored checksums
|
|
54
54
|
if current_checksums != stored_checksums:
|
|
55
55
|
if context == "agentful_framework":
|
|
56
|
-
# We're in
|
|
56
|
+
# We're in agentful repo
|
|
57
57
|
"Framework updated. Changes detected in:
|
|
58
58
|
- orchestrator.md (improved)
|
|
59
59
|
- validation skill (new gate added)
|
|
60
60
|
|
|
61
61
|
Testing updated framework..."
|
|
62
62
|
else:
|
|
63
|
-
# User project -
|
|
64
|
-
"
|
|
63
|
+
# User project - agentful was updated
|
|
64
|
+
"agentful framework updated.
|
|
65
65
|
New capabilities available:
|
|
66
66
|
- Enhanced orchestrator with work classification
|
|
67
67
|
- New validation gates
|
|
@@ -89,8 +89,8 @@ if agent_improvements.pending.any(priority == "HIGH"):
|
|
|
89
89
|
|
|
90
90
|
# Delegate to orchestrator for META_WORK
|
|
91
91
|
else:
|
|
92
|
-
"Note: The
|
|
93
|
-
These will be available when you update
|
|
92
|
+
"Note: The agentful framework has suggested improvements.
|
|
93
|
+
These will be available when you update agentful."
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
### 5. Check Decisions
|
|
@@ -99,7 +99,9 @@ If `.agentful/decisions.json` has pending items:
|
|
|
99
99
|
|
|
100
100
|
```
|
|
101
101
|
⚠️ Pending decisions need your input:
|
|
102
|
-
1. "
|
|
102
|
+
1. "How should we handle race conditions in inventory allocation?"
|
|
103
|
+
Options: Pessimistic locking, Optimistic locking with retry, Queue-based
|
|
104
|
+
Blocking: checkout-feature
|
|
103
105
|
Run: /agentful-decide
|
|
104
106
|
|
|
105
107
|
Cannot proceed until decisions are resolved.
|
|
@@ -147,14 +149,14 @@ Output this **ONLY when truly complete** (all features done, all gates passing):
|
|
|
147
149
|
## Example Flow
|
|
148
150
|
|
|
149
151
|
```
|
|
150
|
-
1. Read state.json → "
|
|
151
|
-
2. Read completion.json →
|
|
152
|
-
3. Read .claude/product/index.md →
|
|
153
|
-
4. Delegate to @backend → "
|
|
152
|
+
1. Read state.json → "checkout-cart" in progress
|
|
153
|
+
2. Read completion.json → checkout: 60% complete
|
|
154
|
+
3. Read .claude/product/index.md → e-commerce requirements
|
|
155
|
+
4. Delegate to @backend → "Implement tax calculation service"
|
|
154
156
|
5. Wait for completion
|
|
155
|
-
6. Delegate to @reviewer → "Review
|
|
157
|
+
6. Delegate to @reviewer → "Review checkout changes"
|
|
156
158
|
7. If issues → @fixer → @reviewer again
|
|
157
|
-
8. Update completion.json →
|
|
159
|
+
8. Update completion.json → checkout: 80%
|
|
158
160
|
9. Loop → What's next?
|
|
159
161
|
```
|
|
160
162
|
|
|
@@ -3,7 +3,7 @@ name: agentful-status
|
|
|
3
3
|
description: Show current progress, completion percentage, and what's being worked on.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# agentful Status
|
|
7
7
|
|
|
8
8
|
This command shows the current state of autonomous product development.
|
|
9
9
|
|
|
@@ -13,26 +13,28 @@ This command shows the current state of autonomous product development.
|
|
|
13
13
|
|
|
14
14
|
```
|
|
15
15
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
-
|
|
16
|
+
agentful Development Status
|
|
17
17
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
18
18
|
|
|
19
|
-
Product:
|
|
20
|
-
Overall Progress:
|
|
21
|
-
Phase:
|
|
22
|
-
Iterations:
|
|
19
|
+
Product: Shopfinity E-commerce Platform
|
|
20
|
+
Overall Progress: ████████░░░░░░░ 62%
|
|
21
|
+
Phase: feature_development
|
|
22
|
+
Iterations: 24
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
### Completion Table
|
|
26
26
|
|
|
27
27
|
```
|
|
28
|
-
|
|
29
|
-
│ Feature │ Status │ Score │ Notes
|
|
30
|
-
|
|
31
|
-
│
|
|
32
|
-
│
|
|
33
|
-
│
|
|
34
|
-
│
|
|
35
|
-
|
|
28
|
+
┌─────────────────────┬──────────┬─────────┬────────────────────────┐
|
|
29
|
+
│ Feature │ Status │ Score │ Notes │
|
|
30
|
+
├─────────────────────┼──────────┼─────────┼────────────────────────┤
|
|
31
|
+
│ Product Catalog │ ✅ Done │ 100% │ │
|
|
32
|
+
│ Shopping Cart │ ✅ Done │ 100% │ │
|
|
33
|
+
│ Checkout Flow │ 🔄 Active│ 65% │ Tax calc needs tests │
|
|
34
|
+
│ Payment Integration │ 🔄 Active│ 40% │ Stripe webhook pending │
|
|
35
|
+
│ Order History │ ⏸ Pending│ 0% │ Blocked on checkout │
|
|
36
|
+
│ Admin Dashboard │ ⏸ Pending│ 0% │ │
|
|
37
|
+
└─────────────────────┴──────────┴─────────┴────────────────────────┘
|
|
36
38
|
```
|
|
37
39
|
|
|
38
40
|
### Quality Gates
|
|
@@ -43,8 +45,9 @@ Iterations: [number from state.json]
|
|
|
43
45
|
├─────────────────────┼────────┤
|
|
44
46
|
│ Tests Passing │ ✅ │
|
|
45
47
|
│ No Type Errors │ ✅ │
|
|
46
|
-
│ No Dead Code │
|
|
47
|
-
│ Coverage ≥ 80% │ ⚠️
|
|
48
|
+
│ No Dead Code │ ✅ │
|
|
49
|
+
│ Coverage ≥ 80% │ ⚠️ 76% │
|
|
50
|
+
│ Security Clean │ ✅ │
|
|
48
51
|
└─────────────────────┴────────┘
|
|
49
52
|
```
|
|
50
53
|
|
|
@@ -53,9 +56,12 @@ Iterations: [number from state.json]
|
|
|
53
56
|
```
|
|
54
57
|
⚠️ Decisions Needed:
|
|
55
58
|
|
|
56
|
-
1. "
|
|
57
|
-
Options:
|
|
58
|
-
Blocking:
|
|
59
|
+
1. "How should we handle inventory race conditions during flash sales?"
|
|
60
|
+
Options: Pessimistic locking, Optimistic locking with retry, Queue-based processing
|
|
61
|
+
Blocking: payment-integration, order-history
|
|
62
|
+
|
|
63
|
+
Context: Current implementation allows overselling when multiple users
|
|
64
|
+
checkout simultaneously. Peak traffic expected during Black Friday.
|
|
59
65
|
|
|
60
66
|
→ Run /agentful-decide to resolve
|
|
61
67
|
```
|
|
@@ -64,11 +70,11 @@ Iterations: [number from state.json]
|
|
|
64
70
|
|
|
65
71
|
```
|
|
66
72
|
🔧 Currently Working On:
|
|
67
|
-
Task:
|
|
73
|
+
Task: stripe-webhook-handler
|
|
68
74
|
Agent: backend
|
|
69
|
-
Started:
|
|
75
|
+
Started: 5 minutes ago
|
|
70
76
|
|
|
71
|
-
Last output: "Implementing
|
|
77
|
+
Last output: "Implementing webhook signature verification for Stripe events..."
|
|
72
78
|
```
|
|
73
79
|
|
|
74
80
|
## Implementation
|
|
@@ -3,7 +3,7 @@ name: agentful-validate
|
|
|
3
3
|
description: Run all quality checks and validation gates. Delegates to reviewer agent.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# agentful Validate
|
|
7
7
|
|
|
8
8
|
This command runs all quality checks and validation gates.
|
|
9
9
|
|
|
@@ -38,20 +38,25 @@ After reviewer completes, display:
|
|
|
38
38
|
TypeScript ✅ PASS - No type errors
|
|
39
39
|
Lint ✅ PASS - No lint errors
|
|
40
40
|
Dead Code ❌ FAIL - 3 issues found
|
|
41
|
-
Tests ✅ PASS -
|
|
42
|
-
Coverage ⚠️ WARN -
|
|
43
|
-
Security
|
|
41
|
+
Tests ✅ PASS - 156 tests passed
|
|
42
|
+
Coverage ⚠️ WARN - 76% (needs 80%)
|
|
43
|
+
Security ✅ PASS - No issues found
|
|
44
44
|
|
|
45
|
-
Overall:
|
|
45
|
+
Overall: ⚠️ PASSED with warnings
|
|
46
46
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
47
47
|
|
|
48
48
|
Issues that must be fixed:
|
|
49
49
|
|
|
50
|
-
1. Unused export:
|
|
51
|
-
2. Unused file: src/components/
|
|
52
|
-
3. Unused
|
|
53
|
-
|
|
54
|
-
|
|
50
|
+
1. Unused export: calculateDiscount in src/billing/promotions.ts
|
|
51
|
+
2. Unused file: src/components/LegacyAddressForm.tsx
|
|
52
|
+
3. Unused import: { logger } in src/services/email.ts
|
|
53
|
+
|
|
54
|
+
Warnings (recommended fixes):
|
|
55
|
+
|
|
56
|
+
4. Coverage below 80% threshold (4% points needed)
|
|
57
|
+
Missing tests in:
|
|
58
|
+
- src/stripe/webhook-handler.ts (45% coverage)
|
|
59
|
+
- src/inventory/allocation.ts (62% coverage)
|
|
55
60
|
|
|
56
61
|
Run /agentful-start to auto-fix these issues.
|
|
57
62
|
```
|
|
@@ -66,7 +71,8 @@ Update `.agentful/completion.json` gates:
|
|
|
66
71
|
"tests_passing": true,
|
|
67
72
|
"no_type_errors": true,
|
|
68
73
|
"no_dead_code": false,
|
|
69
|
-
"coverage_80": false
|
|
74
|
+
"coverage_80": false,
|
|
75
|
+
"security_clean": true
|
|
70
76
|
}
|
|
71
77
|
}
|
|
72
78
|
```
|
|
@@ -82,19 +88,35 @@ When run directly (not via orchestrator):
|
|
|
82
88
|
```
|
|
83
89
|
4. If yes, delegate to @fixer
|
|
84
90
|
|
|
85
|
-
##
|
|
91
|
+
## Example Output for Different Domains
|
|
92
|
+
|
|
93
|
+
**SaaS Billing Platform:**
|
|
94
|
+
```
|
|
95
|
+
Dead Code ❌ FAIL - 2 issues found
|
|
96
|
+
- Unused export: prorateSubscription in src/billing/usage.ts
|
|
97
|
+
- Unused file: src/components/UsageChartOld.tsx
|
|
86
98
|
|
|
87
|
-
|
|
99
|
+
Coverage ⚠️ WARN - 74% (needs 80%)
|
|
100
|
+
Missing: src/stripe/subscription-updates.ts
|
|
101
|
+
```
|
|
88
102
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
103
|
+
**Content Management System:**
|
|
104
|
+
```
|
|
105
|
+
Dead Code ❌ FAIL - 4 issues found
|
|
106
|
+
- Unused export: parseMarkdownFrontmatter in src/content/parser.ts
|
|
107
|
+
- Unused file: src/components/RichTextEditorLegacy.tsx
|
|
108
|
+
- Unused imports in 2 files
|
|
92
109
|
|
|
93
|
-
|
|
94
|
-
/
|
|
110
|
+
Security ⚠️ WARN - 1 issue found
|
|
111
|
+
- Debug console.log in src/api/content-preview.ts:23
|
|
112
|
+
```
|
|
95
113
|
|
|
96
|
-
|
|
97
|
-
|
|
114
|
+
**Project Management Tool:**
|
|
115
|
+
```
|
|
116
|
+
Tests ❌ FAIL - 3 tests failed
|
|
117
|
+
- TaskAssignmentService › should handle concurrent assignments
|
|
118
|
+
- ProjectTimeline › should calculate critical path correctly
|
|
119
|
+
- SprintController › should prevent sprint deletion with active tasks
|
|
98
120
|
```
|
|
99
121
|
|
|
100
122
|
## Exit Codes
|