oden-forge 2.0.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/CLAUDE.md +75 -0
- package/.claude/commands/oden/architect.md +204 -0
- package/.claude/commands/oden/checklist.md +199 -0
- package/.claude/commands/oden/daily.md +223 -0
- package/.claude/commands/oden/debug.md +203 -0
- package/.claude/commands/oden/epic.md +224 -0
- package/.claude/commands/oden/git.md +259 -0
- package/.claude/commands/oden/help.md +304 -0
- package/.claude/commands/oden/init-agents.md +268 -0
- package/.claude/commands/oden/init-mcp.md +460 -0
- package/.claude/commands/oden/init.md +495 -0
- package/.claude/commands/oden/mcp.md +585 -0
- package/.claude/commands/oden/prd.md +134 -0
- package/.claude/commands/oden/research.md +207 -0
- package/.claude/commands/oden/review.md +146 -0
- package/.claude/commands/oden/spec.md +539 -0
- package/.claude/commands/oden/sync.md +286 -0
- package/.claude/commands/oden/tasks.md +156 -0
- package/.claude/commands/oden/test.md +200 -0
- package/.claude/commands/oden/work.md +791 -0
- package/.claude/epics/.gitkeep +0 -0
- package/.claude/hooks/README.md +130 -0
- package/.claude/hooks/bash-worktree-fix.sh +189 -0
- package/.claude/prds/.gitkeep +0 -0
- package/.claude/rules/agent-coordination.md +224 -0
- package/.claude/rules/branch-operations.md +147 -0
- package/.claude/rules/datetime.md +118 -0
- package/.claude/rules/frontmatter-operations.md +58 -0
- package/.claude/rules/github-operations.md +89 -0
- package/.claude/rules/oden-methodology.md +111 -0
- package/.claude/rules/path-standards.md +155 -0
- package/.claude/rules/standard-patterns.md +174 -0
- package/.claude/rules/strip-frontmatter.md +82 -0
- package/.claude/rules/worktree-operations.md +136 -0
- package/.claude/scripts/oden/blocked.sh +72 -0
- package/.claude/scripts/oden/epic-list.sh +101 -0
- package/.claude/scripts/oden/epic-show.sh +91 -0
- package/.claude/scripts/oden/epic-status.sh +90 -0
- package/.claude/scripts/oden/help.sh +71 -0
- package/.claude/scripts/oden/in-progress.sh +74 -0
- package/.claude/scripts/oden/init.sh +192 -0
- package/.claude/scripts/oden/next.sh +65 -0
- package/.claude/scripts/oden/prd-list.sh +89 -0
- package/.claude/scripts/oden/prd-status.sh +63 -0
- package/.claude/scripts/oden/search.sh +71 -0
- package/.claude/scripts/oden/standup.sh +89 -0
- package/.claude/scripts/oden/status.sh +42 -0
- package/.claude/scripts/oden/validate.sh +101 -0
- package/.claude/settings.json +27 -0
- package/MIGRATION.md +217 -0
- package/README.md +368 -0
- package/bin/install.js +155 -0
- package/bin/migrate.js +191 -0
- package/bin/oden-forge.js +114 -0
- package/bin/post-install.js +47 -0
- package/bin/pre-uninstall.js +108 -0
- package/install.sh +231 -0
- package/package.json +76 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
echo "Validating PM System..."
|
|
4
|
+
echo ""
|
|
5
|
+
echo ""
|
|
6
|
+
|
|
7
|
+
echo "🔍 Validating PM System"
|
|
8
|
+
echo "======================="
|
|
9
|
+
echo ""
|
|
10
|
+
|
|
11
|
+
errors=0
|
|
12
|
+
warnings=0
|
|
13
|
+
|
|
14
|
+
# Check directory structure
|
|
15
|
+
echo "📁 Directory Structure:"
|
|
16
|
+
[ -d ".claude" ] && echo " ✅ .claude directory exists" || { echo " ❌ .claude directory missing"; ((errors++)); }
|
|
17
|
+
[ -d ".claude/prds" ] && echo " ✅ PRDs directory exists" || echo " ⚠️ PRDs directory missing"
|
|
18
|
+
[ -d ".claude/epics" ] && echo " ✅ Epics directory exists" || echo " ⚠️ Epics directory missing"
|
|
19
|
+
[ -d ".claude/rules" ] && echo " ✅ Rules directory exists" || echo " ⚠️ Rules directory missing"
|
|
20
|
+
echo ""
|
|
21
|
+
|
|
22
|
+
# Check for orphaned files
|
|
23
|
+
echo "🗂️ Data Integrity:"
|
|
24
|
+
|
|
25
|
+
# Check epics have epic.md files
|
|
26
|
+
for epic_dir in .claude/epics/*/; do
|
|
27
|
+
[ -d "$epic_dir" ] || continue
|
|
28
|
+
if [ ! -f "$epic_dir/epic.md" ]; then
|
|
29
|
+
echo " ⚠️ Missing epic.md in $(basename "$epic_dir")"
|
|
30
|
+
((warnings++))
|
|
31
|
+
fi
|
|
32
|
+
done
|
|
33
|
+
|
|
34
|
+
# Check for tasks without epics
|
|
35
|
+
orphaned=$(find .claude -name "[0-9]*.md" -not -path ".claude/epics/*/*" 2>/dev/null | wc -l)
|
|
36
|
+
[ $orphaned -gt 0 ] && echo " ⚠️ Found $orphaned orphaned task files" && ((warnings++))
|
|
37
|
+
|
|
38
|
+
# Check for broken references
|
|
39
|
+
echo ""
|
|
40
|
+
echo "🔗 Reference Check:"
|
|
41
|
+
|
|
42
|
+
for task_file in .claude/epics/*/[0-9]*.md; do
|
|
43
|
+
[ -f "$task_file" ] || continue
|
|
44
|
+
|
|
45
|
+
# Extract dependencies from task file
|
|
46
|
+
deps_line=$(grep "^depends_on:" "$task_file" | head -1)
|
|
47
|
+
if [ -n "$deps_line" ]; then
|
|
48
|
+
deps=$(echo "$deps_line" | sed 's/^depends_on: *//')
|
|
49
|
+
deps=$(echo "$deps" | sed 's/^\[//' | sed 's/\]$//')
|
|
50
|
+
deps=$(echo "$deps" | sed 's/,/ /g')
|
|
51
|
+
# Trim whitespace and handle empty cases
|
|
52
|
+
deps=$(echo "$deps" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$//')
|
|
53
|
+
[ -z "$deps" ] && deps=""
|
|
54
|
+
else
|
|
55
|
+
deps=""
|
|
56
|
+
fi
|
|
57
|
+
if [ -n "$deps" ] && [ "$deps" != "depends_on:" ]; then
|
|
58
|
+
epic_dir=$(dirname "$task_file")
|
|
59
|
+
for dep in $deps; do
|
|
60
|
+
if [ ! -f "$epic_dir/$dep.md" ]; then
|
|
61
|
+
echo " ⚠️ Task $(basename "$task_file" .md) references missing task: $dep"
|
|
62
|
+
((warnings++))
|
|
63
|
+
fi
|
|
64
|
+
done
|
|
65
|
+
fi
|
|
66
|
+
done
|
|
67
|
+
|
|
68
|
+
if [ $warnings -eq 0 ] && [ $errors -eq 0 ]; then
|
|
69
|
+
echo " ✅ All references valid"
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
# Check frontmatter
|
|
73
|
+
echo ""
|
|
74
|
+
echo "📝 Frontmatter Validation:"
|
|
75
|
+
invalid=0
|
|
76
|
+
|
|
77
|
+
for file in $(find .claude -name "*.md" -path "*/epics/*" -o -path "*/prds/*" 2>/dev/null); do
|
|
78
|
+
if ! grep -q "^---" "$file"; then
|
|
79
|
+
echo " ⚠️ Missing frontmatter: $(basename "$file")"
|
|
80
|
+
((invalid++))
|
|
81
|
+
fi
|
|
82
|
+
done
|
|
83
|
+
|
|
84
|
+
[ $invalid -eq 0 ] && echo " ✅ All files have frontmatter"
|
|
85
|
+
|
|
86
|
+
# Summary
|
|
87
|
+
echo ""
|
|
88
|
+
echo "📊 Validation Summary:"
|
|
89
|
+
echo " Errors: $errors"
|
|
90
|
+
echo " Warnings: $warnings"
|
|
91
|
+
echo " Invalid files: $invalid"
|
|
92
|
+
|
|
93
|
+
if [ $errors -eq 0 ] && [ $warnings -eq 0 ] && [ $invalid -eq 0 ]; then
|
|
94
|
+
echo ""
|
|
95
|
+
echo "✅ System is healthy!"
|
|
96
|
+
else
|
|
97
|
+
echo ""
|
|
98
|
+
echo "💡 Run /pm:clean to fix some issues automatically"
|
|
99
|
+
fi
|
|
100
|
+
|
|
101
|
+
exit 0
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(git:*)",
|
|
5
|
+
"Bash(gh:*)",
|
|
6
|
+
"Bash(npm:*)",
|
|
7
|
+
"Bash(pnpm:*)",
|
|
8
|
+
"Bash(yarn:*)",
|
|
9
|
+
"Bash(bun:*)",
|
|
10
|
+
"Bash(ls:*)",
|
|
11
|
+
"Bash(mkdir:*)",
|
|
12
|
+
"Bash(wc:*)",
|
|
13
|
+
"Bash(date:*)",
|
|
14
|
+
"Read",
|
|
15
|
+
"Write",
|
|
16
|
+
"Edit",
|
|
17
|
+
"Glob",
|
|
18
|
+
"Grep",
|
|
19
|
+
"LS",
|
|
20
|
+
"Task",
|
|
21
|
+
"WebSearch",
|
|
22
|
+
"WebFetch"
|
|
23
|
+
],
|
|
24
|
+
"deny": []
|
|
25
|
+
},
|
|
26
|
+
"model": "claude-sonnet-4-20250514"
|
|
27
|
+
}
|
package/MIGRATION.md
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# 🔄 Migración de Oden Forge v1 → v2
|
|
2
|
+
|
|
3
|
+
Esta guía te ayudará a migrar de Oden Forge v1 (o CCPM) a la nueva versión 2.0.
|
|
4
|
+
|
|
5
|
+
## 📋 Resumen de Cambios
|
|
6
|
+
|
|
7
|
+
### ✅ Lo que MEJORA en v2:
|
|
8
|
+
- **67% menos comandos** (57 → 19 comandos esenciales)
|
|
9
|
+
- **Teams integrado** para desarrollo paralelo
|
|
10
|
+
- **CCPM nativo** (sin dependencia externa)
|
|
11
|
+
- **Gestión de MCPs** con instalación one-click
|
|
12
|
+
- **Documentación profesional** con GitHub Pages
|
|
13
|
+
|
|
14
|
+
### ⚠️ Lo que CAMBIA:
|
|
15
|
+
- Comandos `/pm:*` → `/oden:*`
|
|
16
|
+
- Estructura de archivos simplificada
|
|
17
|
+
- Workflow con Teams para epics grandes
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 🚀 Métodos de Migración
|
|
22
|
+
|
|
23
|
+
### Opción 1: Automática (Recomendado)
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Instalar v2 con migración automática
|
|
27
|
+
npm install -g oden-forge
|
|
28
|
+
|
|
29
|
+
# Si necesitas forzar migración manual:
|
|
30
|
+
oden-forge migrate
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Opción 2: Manual
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 1. Backup de datos importantes
|
|
37
|
+
cp -r ~/.claude/prds ~/.claude/prds.backup
|
|
38
|
+
cp -r ~/.claude/epics ~/.claude/epics.backup
|
|
39
|
+
|
|
40
|
+
# 2. Limpiar instalación anterior
|
|
41
|
+
rm -rf ~/.claude/commands/pm
|
|
42
|
+
rm -rf ~/.claude/commands/ccpm
|
|
43
|
+
rm -rf ~/.claude/scripts/pm
|
|
44
|
+
rm -rf ~/.ccpm
|
|
45
|
+
|
|
46
|
+
# 3. Instalar v2
|
|
47
|
+
npm install -g oden-forge
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 🔧 Proceso Detallado de Migración
|
|
53
|
+
|
|
54
|
+
### 1. Pre-Migración: Backup de Datos
|
|
55
|
+
|
|
56
|
+
La herramienta preserva automáticamente:
|
|
57
|
+
- ✅ PRDs existentes en `~/.claude/prds/`
|
|
58
|
+
- ✅ Epics existentes en `~/.claude/epics/`
|
|
59
|
+
- ✅ Configuraciones de proyecto
|
|
60
|
+
- ✅ Archivos de documentación en `docs/`
|
|
61
|
+
|
|
62
|
+
### 2. Detección Automática
|
|
63
|
+
|
|
64
|
+
El migrador detecta y limpia:
|
|
65
|
+
|
|
66
|
+
| Componente | Ubicación v1 | Acción |
|
|
67
|
+
|------------|-------------|---------|
|
|
68
|
+
| Comandos PM | `~/.claude/commands/pm/` | **Reemplazar** por `/oden:*` |
|
|
69
|
+
| Comandos CCPM | `~/.claude/commands/ccmp/` | **Reemplazar** por nativos |
|
|
70
|
+
| Scripts PM | `~/.claude/scripts/pm/` | **Actualizar** |
|
|
71
|
+
| CCMP Installation | `~/.ccmp/` | **Archivar y remover** |
|
|
72
|
+
| Rules antiguas | `~/.claude/rules/` | **Actualizar selectivamente** |
|
|
73
|
+
|
|
74
|
+
### 3. Mapeo de Comandos
|
|
75
|
+
|
|
76
|
+
| Comando v1 | Comando v2 | Cambios |
|
|
77
|
+
|------------|------------|---------|
|
|
78
|
+
| `/pm:init` | `/oden:init` | ✅ Mismo wizard mejorado |
|
|
79
|
+
| `/pm:prd-new` | `/oden:prd` | ✅ Brainstorming inteligente |
|
|
80
|
+
| `/pm:epic-decompose` | `/oden:epic` | ✅ Work streams + Teams |
|
|
81
|
+
| `/pm:issue-start` | `/oden:work` | ✅ Orquestador inteligente |
|
|
82
|
+
| `/pm:sync` | `/oden:sync` | ✅ 100% nativo, sin CCPM |
|
|
83
|
+
| `/pm:daily` | `/oden:daily` | ✅ Sin cambios |
|
|
84
|
+
| **37 comandos legacy** | **Removidos** | Simplificación |
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## ⚡ Quick Start Post-Migración
|
|
89
|
+
|
|
90
|
+
### 1. Verificar Instalación
|
|
91
|
+
```bash
|
|
92
|
+
oden-forge status
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 2. Primer Proyecto v2
|
|
96
|
+
```bash
|
|
97
|
+
# En tu proyecto
|
|
98
|
+
claude-code # O tu comando de Claude Code
|
|
99
|
+
|
|
100
|
+
# Dentro de Claude Code:
|
|
101
|
+
/oden:init # Wizard mejorado
|
|
102
|
+
/oden:mcp recommend # Nuevo: gestión de MCPs
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 3. Workflow Mejorado
|
|
106
|
+
```bash
|
|
107
|
+
# Flujo típico v2:
|
|
108
|
+
/oden:prd feature-name # PRD con brainstorming
|
|
109
|
+
/oden:epic feature-name # Epic con work streams
|
|
110
|
+
/oden:tasks feature-name # Descomposición automática
|
|
111
|
+
/oden:work feature-name # Teams para desarrollo paralelo
|
|
112
|
+
/oden:sync feature-name # Sync nativo con GitHub
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 🔍 Verificación de Migración
|
|
118
|
+
|
|
119
|
+
### Comando de Status
|
|
120
|
+
```bash
|
|
121
|
+
oden-forge status
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Output esperado:**
|
|
125
|
+
```
|
|
126
|
+
📋 Oden Forge Status
|
|
127
|
+
══════════════════════════════════════════════════
|
|
128
|
+
✅ Installed: 19 commands
|
|
129
|
+
Location: /Users/tu-usuario/.claude/commands/oden
|
|
130
|
+
|
|
131
|
+
💡 Quick Start:
|
|
132
|
+
1. cd your-project
|
|
133
|
+
2. claude-code
|
|
134
|
+
3. /oden:init
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Comandos Disponibles Post-Migración
|
|
138
|
+
```bash
|
|
139
|
+
/oden:init # Wizard de inicialización
|
|
140
|
+
/oden:architect # Decisiones técnicas
|
|
141
|
+
/oden:prd # PRDs con brainstorming
|
|
142
|
+
/oden:epic # Epic con work streams
|
|
143
|
+
/oden:tasks # Descomposición de tasks
|
|
144
|
+
/oden:work # Orquestador con Teams
|
|
145
|
+
/oden:sync # Sync nativo con GitHub
|
|
146
|
+
/oden:mcp # Gestión de MCPs
|
|
147
|
+
/oden:help # Ayuda integrada
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## ❓ Troubleshooting
|
|
153
|
+
|
|
154
|
+
### ❌ "Command not found: oden-forge"
|
|
155
|
+
```bash
|
|
156
|
+
# Reinstalar globalmente
|
|
157
|
+
npm uninstall -g oden-forge
|
|
158
|
+
npm install -g oden-forge
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### ❌ "Legacy installations detected"
|
|
162
|
+
```bash
|
|
163
|
+
# Migración manual
|
|
164
|
+
oden-forge migrate
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### ❌ "Commands not working in Claude Code"
|
|
168
|
+
```bash
|
|
169
|
+
# Verificar instalación
|
|
170
|
+
oden-forge status
|
|
171
|
+
|
|
172
|
+
# Reinstalar si es necesario
|
|
173
|
+
oden-forge install --force
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### ❌ "Lost my old PRDs/Epics"
|
|
177
|
+
```bash
|
|
178
|
+
# Buscar backups automáticos
|
|
179
|
+
ls ~/.claude/*.backup*
|
|
180
|
+
ls ~/.claude/prds.backup/
|
|
181
|
+
ls ~/.claude/epics.backup/
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## 🆘 Soporte
|
|
187
|
+
|
|
188
|
+
### GitHub Issues
|
|
189
|
+
- **Bug reports**: https://github.com/javikin/oden-forge/issues
|
|
190
|
+
- **Feature requests**: https://github.com/javikin/oden-forge/discussions
|
|
191
|
+
|
|
192
|
+
### Documentación
|
|
193
|
+
- **Guía completa**: https://javikin.github.io/oden-forge
|
|
194
|
+
- **Help integrado**: `/oden:help`
|
|
195
|
+
|
|
196
|
+
### Rollback (Si es necesario)
|
|
197
|
+
```bash
|
|
198
|
+
# Solo en caso de emergencia - volver a v1
|
|
199
|
+
npm uninstall -g oden-forge
|
|
200
|
+
|
|
201
|
+
# Restaurar backup
|
|
202
|
+
mv ~/.claude/prds.backup ~/.claude/prds
|
|
203
|
+
mv ~/.claude/epics.backup ~/.claude/epics
|
|
204
|
+
|
|
205
|
+
# Reinstalar v1 manualmente desde backup
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## 🎯 Próximos Pasos
|
|
211
|
+
|
|
212
|
+
1. ✅ **Completar migración** usando esta guía
|
|
213
|
+
2. 🆕 **Probar nuevas features** (Teams, MCPs, brainstorming)
|
|
214
|
+
3. 📚 **Explorar documentación** en GitHub Pages
|
|
215
|
+
4. 💡 **Dar feedback** para futuras mejoras
|
|
216
|
+
|
|
217
|
+
**¡Bienvenido a Oden Forge 2.0!** 🎉
|