Bug Description
ddx init creates .ddx.yml configuration file but does not create the required .ddx/ directory structure, causing all subsequent DDx commands to fail with "not initialized" errors.
Expected .ddx/ Structure
According to the README "Local-First Architecture" section, ddx init should create:
your-project/
├── .ddx/
│ ├── prompts/ # AI prompts and instructions
│ ├── templates/ # Project and file templates
│ ├── patterns/ # Reusable code patterns
│ └── configs/ # Tool configurations
├── src/ # Your application code
└── .ddx.yml # DDX configuration
Current Behavior
After ddx init:
- ✅
.ddx.yml is created
- ❌
.ddx/ directory is NOT created
- ❌ Required subdirectories (prompts/, templates/, patterns/, configs/) are missing
Impact
All commands that use isInitialized() fail because they check for .ddx/ directory:
func isInitialized() bool {
_, err := os.Stat(".ddx")
return err == nil
}
Failing commands:
ddx update → "❌ Not in a DDx project. Run 'ddx init' first."
ddx contribute → "❌ Not in a DDx project. Run 'ddx init' first."
ddx rollback → "project is not initialized with DDx. Run 'ddx init' first"
ddx diagnose → Shows "Initialization: ✗ Not initialized"
Steps to Reproduce
- Run
ddx init in a clean project directory
- Verify
.ddx.yml exists ✅
- Check for
.ddx/ directory ❌ (missing)
- Run
ddx diagnose → incorrect "not initialized" status
- Run
ddx update → fails with "not initialized" error
Root Cause
The init.go file has a comment indicating it should create the directory:
// Always create .ddx directory (required for isInitialized check)
localDDxPath := ".ddx"
if err := os.MkdirAll(localDDxPath, 0755); err != nil {
But this code path may not be executing correctly or the directory creation is failing silently.
Proposed Fix
ddx init should create the complete directory structure:
mkdir -p .ddx/prompts
mkdir -p .ddx/templates
mkdir -p .ddx/patterns
mkdir -p .ddx/configs
Environment
- DDx version: Latest from easel/ddx repository
- OS: macOS
- Installation: Built from source
Workaround
Manual directory creation allows commands to work:
mkdir -p .ddx
ddx update # Now works
🤖 Generated with Claude Code
Bug Description
ddx initcreates.ddx.ymlconfiguration file but does not create the required.ddx/directory structure, causing all subsequent DDx commands to fail with "not initialized" errors.Expected .ddx/ Structure
According to the README "Local-First Architecture" section,
ddx initshould create:Current Behavior
After
ddx init:.ddx.ymlis created.ddx/directory is NOT createdImpact
All commands that use
isInitialized()fail because they check for.ddx/directory:Failing commands:
ddx update→ "❌ Not in a DDx project. Run 'ddx init' first."ddx contribute→ "❌ Not in a DDx project. Run 'ddx init' first."ddx rollback→ "project is not initialized with DDx. Run 'ddx init' first"ddx diagnose→ Shows "Initialization: ✗ Not initialized"Steps to Reproduce
ddx initin a clean project directory.ddx.ymlexists ✅.ddx/directory ❌ (missing)ddx diagnose→ incorrect "not initialized" statusddx update→ fails with "not initialized" errorRoot Cause
The
init.gofile has a comment indicating it should create the directory:But this code path may not be executing correctly or the directory creation is failing silently.
Proposed Fix
ddx initshould create the complete directory structure:Environment
Workaround
Manual directory creation allows commands to work:
mkdir -p .ddx ddx update # Now works🤖 Generated with Claude Code