@champpaba/claude-agent-kit 2.1.4 → 2.1.6
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/CLAUDE.md
CHANGED
|
@@ -402,16 +402,21 @@ Prompt "Update PROJECT_STATUS.yml?" when detecting these patterns:
|
|
|
402
402
|
|
|
403
403
|
| Event Detected | What to Update |
|
|
404
404
|
|----------------|----------------|
|
|
405
|
-
| After `/openspec:archive` completes | Add to `completed_changes` |
|
|
405
|
+
| After `/openspec:archive` completes | Add to `completed_changes` + check Non-Goals for `pending_followups` |
|
|
406
406
|
| User says "waiting for...", "need X from...", "blocked by..." | Add to `blockers` |
|
|
407
407
|
| User mentions blocker resolved | Remove from `blockers` |
|
|
408
408
|
| Infrastructure change (deploy, tunnel, DB migration) | Update `infrastructure` |
|
|
409
409
|
| User discusses priority shift | Update `next_priorities` |
|
|
410
|
-
| `/csetup {change-id}` started | Update `current_focus
|
|
410
|
+
| `/csetup {change-id}` started | Update `current_focus` + **check `pending_followups` for related items** |
|
|
411
411
|
| **Future features/ideas:** "อยากให้มี...", "want to add...", "later we should...", "in the future..." | Add to `future_ideas` |
|
|
412
412
|
| **Technical debt:** "ต้องแก้...", "should refactor...", "tech debt...", "needs cleanup..." | Add to `technical_debt` |
|
|
413
413
|
| **Decisions made:** "ตัดสินใจว่า...", "we decided...", "going with...", "chose X over Y" | Add to `decisions` |
|
|
414
414
|
| **Learnings/notes:** "พบว่า...", "discovered...", "note:...", "important:..." | Add to `notes` |
|
|
415
|
+
| **Problems found (by Claude):** "⚠️ ปัญหาที่พบ", "ไม่มี X", "missing X", "not configured" | Add to `technical_debt` or `blockers` |
|
|
416
|
+
| **Config gaps:** "ไม่ได้ตั้งค่า...", "need to configure...", "should add to CI/CD" | Add to `technical_debt` |
|
|
417
|
+
| **Sync issues:** "DB not synced", "schema mismatch", "local vs production differs" | Add to `blockers` + `infrastructure` |
|
|
418
|
+
| **Non-Goal needs follow-up:** design.md has "Non-Goal: X (separate proposal)" | Add to `pending_followups` when archiving |
|
|
419
|
+
| **Pending resolved:** User creates proposal for pending item | Remove from `pending_followups` |
|
|
415
420
|
|
|
416
421
|
### Update Protocol
|
|
417
422
|
|
|
@@ -453,6 +458,49 @@ User: "ตัดสินใจใช้ Drizzle แทน Prisma แล้ว
|
|
|
453
458
|
Claude: "Add to PROJECT_STATUS.yml decisions?
|
|
454
459
|
- decision: Use Drizzle over Prisma
|
|
455
460
|
- reason: Better type safety"
|
|
461
|
+
|
|
462
|
+
# Problem found by Claude during analysis
|
|
463
|
+
Claude: "⚠️ ปัญหาที่พบ: ไม่มี migration step ใน CI/CD!"
|
|
464
|
+
Claude: "Add to PROJECT_STATUS.yml?
|
|
465
|
+
technical_debt:
|
|
466
|
+
- item: Add DB migration to CI/CD
|
|
467
|
+
- reason: Schema not synced between local and VPS
|
|
468
|
+
- priority: high"
|
|
469
|
+
|
|
470
|
+
# Config gap discovered
|
|
471
|
+
Claude: "Local DB กับ VPS schema ไม่ sync กัน"
|
|
472
|
+
Claude: "Add to PROJECT_STATUS.yml?
|
|
473
|
+
blockers:
|
|
474
|
+
- id: db-schema-sync
|
|
475
|
+
- description: Local and VPS DB schemas out of sync
|
|
476
|
+
infrastructure.database:
|
|
477
|
+
- status: degraded
|
|
478
|
+
- notes: Schema mismatch, need migration"
|
|
479
|
+
|
|
480
|
+
# Archive with Non-Goals that need follow-up
|
|
481
|
+
Claude: "Archiving add-infrastructure-cicd..."
|
|
482
|
+
Claude: *reads design.md, finds Non-Goals: "Database migrations (separate proposal)"*
|
|
483
|
+
Claude: "Add to PROJECT_STATUS.yml pending_followups?
|
|
484
|
+
- item: Database migration strategy
|
|
485
|
+
- from_change: add-infrastructure-cicd
|
|
486
|
+
- reason: Non-Goal marked 'separate proposal'
|
|
487
|
+
- affects: ['any change with DB schema']"
|
|
488
|
+
|
|
489
|
+
# /csetup checks pending_followups (Medium aggressiveness)
|
|
490
|
+
User: "/csetup add-auth-system"
|
|
491
|
+
Claude: *reads PROJECT_STATUS.yml pending_followups*
|
|
492
|
+
Claude: "⚠️ Found related pending follow-up:
|
|
493
|
+
- 'Database migration strategy' (from add-infrastructure-cicd)
|
|
494
|
+
- Affects: 'any change with DB schema'
|
|
495
|
+
|
|
496
|
+
This change adds DB tables. The migration strategy hasn't been addressed yet.
|
|
497
|
+
|
|
498
|
+
Options:
|
|
499
|
+
1. Continue anyway (risk: schema sync issues)
|
|
500
|
+
2. Address migration first (create proposal)
|
|
501
|
+
3. Add migration step to this change's scope
|
|
502
|
+
|
|
503
|
+
Which approach?"
|
|
456
504
|
```
|
|
457
505
|
|
|
458
506
|
---
|
|
@@ -83,6 +83,50 @@ if (fileExists(projectStatusPath)) {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
// Check pending follow-ups that might affect this change (v2.1.6)
|
|
87
|
+
if (projectStatus.pending_followups?.length > 0) {
|
|
88
|
+
const proposalPath = `openspec/changes/${changeId}/proposal.md`
|
|
89
|
+
const proposal = fileExists(proposalPath) ? Read(proposalPath).toLowerCase() : ''
|
|
90
|
+
|
|
91
|
+
const relatedPending = projectStatus.pending_followups.filter(p => {
|
|
92
|
+
const affects = p.affects || []
|
|
93
|
+
return affects.some(pattern => {
|
|
94
|
+
const patternLower = pattern.toLowerCase()
|
|
95
|
+
return changeId.toLowerCase().includes(patternLower) ||
|
|
96
|
+
proposal.includes(patternLower) ||
|
|
97
|
+
(patternLower.includes('db') && proposal.includes('table')) ||
|
|
98
|
+
(patternLower.includes('schema') && proposal.includes('model')) ||
|
|
99
|
+
(patternLower.includes('migration') && proposal.includes('database'))
|
|
100
|
+
})
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
if (relatedPending.length > 0) {
|
|
104
|
+
output(`\n ⚠️ Found related pending follow-ups:`)
|
|
105
|
+
relatedPending.forEach(p => {
|
|
106
|
+
output(` - "${p.item}" (from ${p.from_change})`)
|
|
107
|
+
output(` Reason: ${p.reason}`)
|
|
108
|
+
if (p.affects) output(` Affects: ${p.affects.join(', ')}`)
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
output(`\n This change may be affected by unresolved follow-ups.`)
|
|
112
|
+
output(` Options:`)
|
|
113
|
+
output(` 1. Continue anyway (risk: issues like schema sync)`)
|
|
114
|
+
output(` 2. Address follow-up first (create separate proposal)`)
|
|
115
|
+
output(` 3. Include follow-up in this change's scope`)
|
|
116
|
+
|
|
117
|
+
const choice = await askUser(`\n How to proceed? (1/2/3)`)
|
|
118
|
+
|
|
119
|
+
if (choice === '2') {
|
|
120
|
+
output(`\n ❌ Setup paused. Create proposal for pending follow-up first.`)
|
|
121
|
+
return
|
|
122
|
+
} else if (choice === '3') {
|
|
123
|
+
output(`\n ℹ️ Remember to include follow-up items in tasks.md`)
|
|
124
|
+
} else {
|
|
125
|
+
output(`\n ⚠️ Continuing with caution. Monitor for related issues.`)
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
86
130
|
// Check stale status
|
|
87
131
|
const lastUpdated = new Date(projectStatus.last_updated)
|
|
88
132
|
const daysSinceUpdate = Math.floor((Date.now() - lastUpdated) / (1000 * 60 * 60 * 24))
|
|
@@ -71,6 +71,26 @@ blockers: []
|
|
|
71
71
|
# description: "Waiting for Stripe test API key from finance team"
|
|
72
72
|
# blocks: [payment-integration]
|
|
73
73
|
|
|
74
|
+
# -------------------------------------------------------------------
|
|
75
|
+
# PENDING FOLLOW-UPS
|
|
76
|
+
# Non-Goals from archived changes that need separate proposals
|
|
77
|
+
# Captured when: archiving a change with Non-Goals marked "separate proposal"
|
|
78
|
+
# Claude will warn during /csetup if new change relates to pending items
|
|
79
|
+
# -------------------------------------------------------------------
|
|
80
|
+
pending_followups: []
|
|
81
|
+
# Example:
|
|
82
|
+
# - item: "Database migration strategy"
|
|
83
|
+
# from_change: "add-infrastructure-cicd"
|
|
84
|
+
# reason: "Non-Goal: Database migrations (แยก proposal)"
|
|
85
|
+
# affects: ["any change with DB schema changes"]
|
|
86
|
+
# date: "2025-11-30"
|
|
87
|
+
#
|
|
88
|
+
# - item: "API rate limiting"
|
|
89
|
+
# from_change: "add-auth-system"
|
|
90
|
+
# reason: "Non-Goal: Rate limiting (phase 2)"
|
|
91
|
+
# affects: ["public API endpoints"]
|
|
92
|
+
# date: "2025-12-01"
|
|
93
|
+
|
|
74
94
|
# -------------------------------------------------------------------
|
|
75
95
|
# NEXT PRIORITIES
|
|
76
96
|
# What should be worked on next (with reasoning)
|