claude-fsd 1.5.25 → 1.5.27

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/README.md CHANGED
@@ -69,10 +69,6 @@ claude-fsd create-plan # Generate development plan from requirements
69
69
  claude-fsd --working-dir=project1 dev
70
70
  claude-fsd --working-dir=backend interview
71
71
 
72
- # Fast mode (skips slow o3-pro planning)
73
- claude-fsd create-plan --fast
74
- claude-fsd --working-dir=project1 --fast create-plan
75
-
76
72
  # claudefsd also works the same way
77
73
  claudefsd # Same as claude-fsd
78
74
  ```
@@ -87,7 +83,7 @@ Runs the development agent fleet. This command:
87
83
  - Updates the plan to track progress
88
84
  - Repeats until all tasks are done
89
85
 
90
- Every 4th cycle, it activates "megathinking mode" using the Opus model for architectural planning.
86
+ Every 4th cycle, it activates "megathinking mode" using ultrathink for deep architectural planning.
91
87
 
92
88
  #### claudefsd-interview
93
89
  Interactive expert Q&A session that:
@@ -101,8 +97,7 @@ Generates a comprehensive development plan based on:
101
97
  - Your project brief (BRIEF.md)
102
98
  - Interview answers (QUESTIONS.md) or requirements (REQUIREMENTS.md)
103
99
  - Creates PLAN.md with prioritized tasks and CLAUDE-NOTES.md with architectural analysis
104
- - Uses Opus model for standard planning, o3-pro for deep strategic analysis (when codex available)
105
- - Use `--fast` flag to skip o3-pro step for quicker results
100
+ - Uses Claude Sonnet with ultrathink for deep strategic planning
106
101
 
107
102
  ## How it Works
108
103
 
@@ -142,12 +137,13 @@ This isn't sci-fi level "sleep through the entire project" automation - it's mor
142
137
  - Unix-like environment (macOS, Linux)
143
138
  - [Claude CLI](https://docs.anthropic.com/en/docs/claude-code) (`claude` command)
144
139
 
145
- ### Optional (but recommended)
146
- - [Codex](https://github.com/Codex-ai/codex) - For enhanced code review capabilities
147
- - OpenAI API key - For Codex features (set `OPENAI_API_KEY` environment variable)
148
-
149
140
  ## Project Structure
150
141
 
142
+ **Flexible Structure:** Files can be placed in either `docs/` (default) or root directory `.`
143
+ - System automatically detects file locations
144
+ - Use `docs/` for larger projects to keep files organized
145
+ - Use root `.` for smaller projects for simplicity
146
+
151
147
  Default structure (using 'docs' as working directory):
152
148
  ```
153
149
  your-project/
@@ -163,6 +159,16 @@ your-project/
163
159
  └── [your code files]
164
160
  ```
165
161
 
162
+ Simple structure (files in root):
163
+ ```
164
+ your-project/
165
+ ├── BRIEF.md
166
+ ├── PLAN.md
167
+ ├── CLAUDE-NOTES.md
168
+ ├── logs/
169
+ └── [your code files]
170
+ ```
171
+
166
172
  With custom working directory:
167
173
  ```
168
174
  your-project/
@@ -188,21 +194,18 @@ your-project/
188
194
 
189
195
  ## Model Selection Strategy
190
196
 
191
- The system intelligently selects AI models based on task complexity:
197
+ The system uses Claude Sonnet throughout with strategic ultrathinking for complex work:
192
198
 
193
- - **o3-pro Model**: Used for the most complex strategic work (requires codex CLI)
194
- - Deep architectural planning (create-plan, unless --fast used)
195
- - Takes 5-15 minutes but provides exceptional strategic reasoning
196
-
197
- - **Opus Model**: Used for complex architectural work
198
- - Requirements gathering (interview)
199
- - Standard architecture planning (create-plan with --fast or when codex unavailable)
199
+ - **Sonnet + Ultrathink**: Used for complex architectural work requiring deep thinking
200
+ - Requirements consolidation (interview)
201
+ - Deep strategic planning (create-plan)
200
202
  - Megathinking mode (every 4th dev iteration)
201
-
202
- - **Sonnet Model**: Used for regular development
203
+
204
+ - **Sonnet (Standard)**: Used for regular development
203
205
  - Standard development tasks
204
206
  - Code implementation and reviews
205
207
  - Most development iterations
208
+ - Question generation in interview
206
209
 
207
210
 
208
211
  ## License
package/bin/claudefsd CHANGED
@@ -10,7 +10,6 @@ NC='\033[0m' # No Color
10
10
 
11
11
  # Parse command line parameters
12
12
  WORKING_DIR="docs"
13
- FAST_MODE=""
14
13
  for arg in "$@"; do
15
14
  case $arg in
16
15
  --working-dir=*)
@@ -18,10 +17,6 @@ for arg in "$@"; do
18
17
  # Remove this argument from the list
19
18
  shift
20
19
  ;;
21
- --fast)
22
- FAST_MODE="--fast"
23
- shift
24
- ;;
25
20
  esac
26
21
  done
27
22
  export CLAUDEFSD_WORKING_DIR="$WORKING_DIR"
@@ -47,11 +42,18 @@ get_default_choice() {
47
42
  source "$(dirname "$0")/claudefsd-find-brief"
48
43
  if ! find_brief_file >/dev/null 2>&1; then
49
44
  echo "0"
50
- elif [ ! -f "$WORKING_DIR/REQUIREMENTS.md" ] && [ ! -f "$WORKING_DIR/QUESTIONS.md" ]; then
45
+ fi
46
+
47
+ # Use flexible file detection
48
+ local requirements_file=$(find_project_file "REQUIREMENTS.md" 2>/dev/null || echo "")
49
+ local questions_file=$(find_project_file "QUESTIONS.md" 2>/dev/null || echo "")
50
+ local plan_file=$(find_project_file "PLAN.md" 2>/dev/null || echo "")
51
+
52
+ if [ -z "$requirements_file" ] && [ -z "$questions_file" ]; then
51
53
  echo "1" # Interactive interview
52
- elif [ -f "$WORKING_DIR/REQUIREMENTS.md" ] && [ ! -f "$WORKING_DIR/PLAN.md" ]; then
54
+ elif [ -n "$requirements_file" ] && [ -z "$plan_file" ]; then
53
55
  echo "2" # Create plan from requirements
54
- elif [ -f "$WORKING_DIR/QUESTIONS.md" ] && [ ! -f "$WORKING_DIR/PLAN.md" ]; then
56
+ elif [ -n "$questions_file" ] && [ -z "$plan_file" ]; then
55
57
  echo "2" # Create plan from questions
56
58
  else
57
59
  echo "3" # Development mode
@@ -88,10 +90,14 @@ show_menu() {
88
90
  echo " 1) Interview - Gather requirements through expert Q&A"
89
91
  fi
90
92
 
91
- # Show create plan option based on what exists
92
- if [ -f "$WORKING_DIR/REQUIREMENTS.md" ]; then
93
+ # Show create plan option based on what exists (use flexible detection)
94
+ source "$(dirname "$0")/claudefsd-find-brief"
95
+ local requirements_file=$(find_project_file "REQUIREMENTS.md" 2>/dev/null || echo "")
96
+ local questions_file=$(find_project_file "QUESTIONS.md" 2>/dev/null || echo "")
97
+
98
+ if [ -n "$requirements_file" ]; then
93
99
  echo " 2) Create plan - Generate development plan from requirements"
94
- elif [ -f "$WORKING_DIR/QUESTIONS.md" ]; then
100
+ elif [ -n "$questions_file" ]; then
95
101
  echo " 2) Create plan - Generate plan from answered questions"
96
102
  else
97
103
  echo " 2) [Requires interview first]"
@@ -118,9 +124,14 @@ show_menu() {
118
124
  echo " 📝 Interview session: $session_status ($total_questions questions)"
119
125
  fi
120
126
 
121
- [ -f "$WORKING_DIR/REQUIREMENTS.md" ] && echo " ✓ $WORKING_DIR/REQUIREMENTS.md exists" || echo " ✗ $WORKING_DIR/REQUIREMENTS.md missing"
122
- [ -f "$WORKING_DIR/QUESTIONS.md" ] && echo " ✓ $WORKING_DIR/QUESTIONS.md exists" || echo " ✗ $WORKING_DIR/QUESTIONS.md missing"
123
- [ -f "$WORKING_DIR/PLAN.md" ] && echo " ✓ $WORKING_DIR/PLAN.md exists" || echo " ✗ $WORKING_DIR/PLAN.md missing"
127
+ # Show status with flexible file detection
128
+ local requirements_file=$(find_project_file "REQUIREMENTS.md" 2>/dev/null || echo "")
129
+ local questions_file=$(find_project_file "QUESTIONS.md" 2>/dev/null || echo "")
130
+ local plan_file=$(find_project_file "PLAN.md" 2>/dev/null || echo "")
131
+
132
+ [ -n "$requirements_file" ] && echo " ✓ $requirements_file exists" || echo " ✗ REQUIREMENTS.md missing"
133
+ [ -n "$questions_file" ] && echo " ✓ $questions_file exists" || echo " ✗ QUESTIONS.md missing"
134
+ [ -n "$plan_file" ] && echo " ✓ $plan_file exists" || echo " ✗ PLAN.md missing"
124
135
  echo
125
136
  }
126
137
 
@@ -267,11 +278,15 @@ if [ $# -eq 0 ]; then
267
278
  exec "$(dirname "$0")/claudefsd-interview" --working-dir="$WORKING_DIR"
268
279
  ;;
269
280
  2)
270
- # Create plan - check what source to use
271
- if [ -f "$WORKING_DIR/REQUIREMENTS.md" ] || [ -f "$WORKING_DIR/QUESTIONS.md" ]; then
281
+ # Create plan - check what source to use (flexible detection)
282
+ source "$(dirname "$0")/claudefsd-find-brief"
283
+ requirements_file=$(find_project_file "REQUIREMENTS.md" 2>/dev/null || echo "")
284
+ questions_file=$(find_project_file "QUESTIONS.md" 2>/dev/null || echo "")
285
+
286
+ if [ -n "$requirements_file" ] || [ -n "$questions_file" ]; then
272
287
  echo -e "${GREEN}Creating plan from project inputs...${NC}"
273
288
  echo
274
- exec "$(dirname "$0")/claudefsd-create-plan" --working-dir="$WORKING_DIR" $FAST_MODE
289
+ exec "$(dirname "$0")/claudefsd-create-plan" --working-dir="$WORKING_DIR"
275
290
  else
276
291
  echo -e "${RED}No requirements or questions found. Please run the interview first.${NC}"
277
292
  exit 1
@@ -16,7 +16,7 @@ exec "$(dirname "$0")/claudefsd-analyze-brief-personas" "$@"
16
16
 
17
17
  mkdir -p logs
18
18
 
19
- # Use a temporary directory for tmp files, as codex is sandboxed to this directory
19
+ # Use a temporary directory for tmp files
20
20
  mkdir -p tmp
21
21
  export TMPDIR=tmp/
22
22
 
@@ -48,7 +48,7 @@ Read all of these documents if they exist:
48
48
  - docs/WEBTESTS.md -- the project web tests
49
49
  - README.md -- the project README
50
50
 
51
- Your job, as a megathinker business analyst, is to analyze the project brief and generate clarifying questions.
51
+ Your job, as an ultrathinker business analyst, is to analyze the project brief and generate clarifying questions.
52
52
 
53
53
  1. Read through the BRIEF.md and any existing documents to understand the project.
54
54
  2. Generate 10-15 relevant questions to clarify ambiguous aspects of the brief.
@@ -67,18 +67,9 @@ DO NOT answer the questions yourself - just generate them for the user to answer
67
67
  "
68
68
 
69
69
  # run BA's
70
- echo "Running claude with opus model..."
70
+ echo "Running claude with opus model with ultrathink..."
71
71
  claude --model opus --dangerously-skip-permissions -p "$prompt1" | tee >(cat > $LOGFILE-ba1)
72
72
 
73
- # Only run codex if available
74
- if command -v codex >/dev/null 2>&1; then
75
- echo "Running codex o3 (results won't display)..."
76
- codex -m o3 --full-auto -q "$prompt1" > $LOGFILE-ba2
77
- else
78
- echo "Warning: codex not found, skipping enhanced analysis"
79
- echo "Codex not available, skipping o3 analysis" > $LOGFILE-ba2
80
- fi
81
-
82
73
  echo -e "\033[32m==================================================================\033[0m"
83
74
  echo -e "\033[32m== ANALYSIS COMPLETE\033[0m"
84
75
  echo -e "\033[32m==================================================================\033[0m"
@@ -83,7 +83,7 @@ Include only personas that are truly relevant to this project.
83
83
  "
84
84
 
85
85
  echo "Determining relevant expert personas..."
86
- PERSONAS=$(claude --model sonnet -p "$coordinator_prompt" 2>/dev/null | tail -1)
86
+ PERSONAS=$(claude --model opus -p "$coordinator_prompt" 2>/dev/null | tail -1)
87
87
 
88
88
  # Clean up and validate personas
89
89
  PERSONAS=$(echo "$PERSONAS" | tr -d ' \n\r')
@@ -172,7 +172,7 @@ Output ONLY the questions, one per line, no numbering or bullets.
172
172
  "
173
173
 
174
174
  # Generate questions
175
- QUESTIONS=$(claude --model sonnet -p "$batch_prompt" 2>/dev/null)
175
+ QUESTIONS=$(claude --model opus -p "$batch_prompt" 2>/dev/null)
176
176
 
177
177
  # Add section header
178
178
  echo "" >> "$WORKING_DIR/QUESTIONS.md"
@@ -13,26 +13,13 @@ command_exists() {
13
13
 
14
14
  # Function to check dependencies
15
15
  check_dependencies() {
16
- local check_codex=${1:-true} # Check codex by default
17
16
  local missing_deps=()
18
- local warnings=()
19
-
20
- # Check for claude
17
+
18
+ # Check for claude (only required dependency)
21
19
  if ! command_exists claude; then
22
20
  missing_deps+=("claude")
23
21
  fi
24
-
25
- # Check for codex (optional but recommended)
26
- if [ "$check_codex" = true ] && ! command_exists codex; then
27
- warnings+=("codex is not installed. Some review features will be unavailable.")
28
- fi
29
-
30
- # Check for OPENAI_API_KEY (optional for codex)
31
- if [ "$check_codex" = true ] && [ -z "${OPENAI_API_KEY:-}" ]; then
32
- warnings+=("OPENAI_API_KEY is not set. Codex features will be limited.")
33
- warnings+=("Set it with: export OPENAI_API_KEY='your-key-here'")
34
- fi
35
-
22
+
36
23
  # Show critical errors
37
24
  if [ ${#missing_deps[@]} -ne 0 ]; then
38
25
  echo -e "${RED}❌ Missing required dependencies:${NC}"
@@ -45,15 +32,6 @@ check_dependencies() {
45
32
  echo
46
33
  exit 1
47
34
  fi
48
-
49
- # Show warnings
50
- if [ ${#warnings[@]} -ne 0 ]; then
51
- echo -e "${YELLOW}⚠️ Optional dependencies:${NC}"
52
- for warning in "${warnings[@]}"; do
53
- echo -e " - $warning"
54
- done
55
- echo
56
- fi
57
35
  }
58
36
 
59
37
  # If sourced directly, run the check
@@ -4,17 +4,12 @@ set -e
4
4
 
5
5
  # Parse command line parameters
6
6
  WORKING_DIR="docs"
7
- FAST_MODE=false
8
7
  for arg in "$@"; do
9
8
  case $arg in
10
9
  --working-dir=*)
11
10
  WORKING_DIR="${arg#*=}"
12
11
  shift
13
12
  ;;
14
- --fast)
15
- FAST_MODE=true
16
- shift
17
- ;;
18
13
  esac
19
14
  done
20
15
  export CLAUDEFSD_WORKING_DIR="$WORKING_DIR"
@@ -24,7 +19,7 @@ $(dirname "$0")/claudefsd-check-dependencies
24
19
 
25
20
  mkdir -p logs
26
21
 
27
- # Use a temporary directory for tmp files, as codex is sandboxed to this directory
22
+ # Use a temporary directory for tmp files
28
23
  mkdir -p tmp
29
24
  export TMPDIR=tmp/
30
25
 
@@ -36,8 +31,12 @@ if [ $? -ne 0 ]; then
36
31
  exit 1
37
32
  fi
38
33
 
39
- if [ ! -f "$WORKING_DIR/QUESTIONS.md" ] && [ ! -f "$WORKING_DIR/REQUIREMENTS.md" ]; then
40
- echo "No $WORKING_DIR/QUESTIONS.md or $WORKING_DIR/REQUIREMENTS.md found."
34
+ # Check for required input files using flexible detection
35
+ questions_file=$(find_project_file "QUESTIONS.md" 2>/dev/null || echo "")
36
+ requirements_file=$(find_project_file "REQUIREMENTS.md" 2>/dev/null || echo "")
37
+
38
+ if [ -z "$questions_file" ] && [ -z "$requirements_file" ]; then
39
+ echo "No QUESTIONS.md or REQUIREMENTS.md found in $WORKING_DIR/ or root directory."
41
40
  echo "Please run either:"
42
41
  echo " - 'claudefsd analyze-brief' to generate questions, or"
43
42
  echo " - 'claudefsd interview' to conduct an interactive interview"
@@ -50,22 +49,48 @@ echo -e "\033[32m===============================================================
50
49
  echo -e "\033[32m== CREATING PLAN FROM PROJECT INPUTS\033[0m"
51
50
  echo -e "\033[32m==================================================================\033[0m"
52
51
 
52
+ # Build list of files to read (using flexible paths)
53
+ plan_file=$(find_project_file "PLAN.md" 2>/dev/null || echo "")
54
+ notes_file=$(find_project_file "CLAUDE-NOTES.md" 2>/dev/null || echo "")
55
+ ideas_file=$(find_project_file "IDEAS.md" 2>/dev/null || echo "")
56
+ webtests_file=$(find_project_file "WEBTESTS.md" 2>/dev/null || echo "")
57
+ readme_file=$(find_project_file "README.md" 2>/dev/null || echo "")
58
+
59
+ # Build file list for prompt
60
+ file_list="- $BRIEF_FILE -- the project brief"
61
+ [ -n "$questions_file" ] && file_list="$file_list
62
+ - $questions_file -- the project questions (with answers) from analyze-brief or interview"
63
+ [ -n "$requirements_file" ] && file_list="$file_list
64
+ - $requirements_file -- consolidated requirements from interview process"
65
+ [ -n "$notes_file" ] && file_list="$file_list
66
+ - $notes_file -- AI's working notes and understanding"
67
+ [ -n "$plan_file" ] && file_list="$file_list
68
+ - $plan_file -- the project plan"
69
+ [ -n "$ideas_file" ] && file_list="$file_list
70
+ - $ideas_file -- the backlog of future ideas"
71
+ [ -n "$webtests_file" ] && file_list="$file_list
72
+ - $webtests_file -- the project web tests"
73
+ [ -n "$readme_file" ] && file_list="$file_list
74
+ - $readme_file -- the project README"
75
+
76
+ # Determine output paths (prefer working dir if it exists, otherwise root)
77
+ if [ -d "$WORKING_DIR" ] && [ "$WORKING_DIR" != "." ]; then
78
+ output_notes="$WORKING_DIR/CLAUDE-NOTES.md"
79
+ output_plan="$WORKING_DIR/PLAN.md"
80
+ else
81
+ output_notes="CLAUDE-NOTES.md"
82
+ output_plan="PLAN.md"
83
+ fi
84
+
53
85
  prompt2="
54
86
  Read and analyze these project files if they exist:
55
- - $BRIEF_FILE -- the project brief
56
- - $WORKING_DIR/QUESTIONS.md -- the project questions (with answers) from analyze-brief or interview
57
- - $WORKING_DIR/REQUIREMENTS.md -- consolidated requirements from interview process
58
- - $WORKING_DIR/CLAUDE-NOTES.md -- AI's working notes and understanding
59
- - $WORKING_DIR/PLAN.md -- the project plan
60
- - $WORKING_DIR/IDEAS.md -- the backlog of future ideas
61
- - $WORKING_DIR/WEBTESTS.md -- the project web tests
62
- - $WORKING_DIR/README.md -- the project README (if exists in working directory)
87
+ $file_list
63
88
 
64
89
  Your job, as a megathinking architect and project manager, is to create the project plan and working notes.
65
90
 
66
- 1. Read through the BRIEF.md and any available requirements/questions ($WORKING_DIR/QUESTIONS.md and/or $WORKING_DIR/REQUIREMENTS.md).
67
- 2. Update or create $WORKING_DIR/CLAUDE-NOTES.md with your interpretation and understanding of the project.
68
- 3. Update or create $WORKING_DIR/PLAN.md with a detailed implementation plan based on all available inputs.
91
+ 1. Read through the BRIEF.md and any available requirements/questions.
92
+ 2. Update or create $output_notes with your interpretation and understanding of the project.
93
+ 3. Update or create $output_plan with a detailed implementation plan based on all available inputs.
69
94
 
70
95
  The CLAUDE-NOTES.md should contain:
71
96
  - Your understanding of the project goals and requirements
@@ -76,7 +101,7 @@ The CLAUDE-NOTES.md should contain:
76
101
  The PLAN.md should contain:
77
102
  - Master plan limited to 100 lines maximum
78
103
  - High-level sections with [ ] checkboxes for completion tracking
79
- - For complex projects, reference detailed sub-plans in separate files ($WORKING_DIR/plan-section1.md, $WORKING_DIR/plan-section2.md, etc.)
104
+ - For complex projects, reference detailed sub-plans in separate files (plan-section1.md, plan-section2.md, etc.)
80
105
  - Include proportional infrastructure setup (basic linting + pre-commit hooks)
81
106
  - Group related tasks into logical phases
82
107
  - If the plan would exceed 100 lines, create a master plan with section references and detailed sub-plans
@@ -92,87 +117,30 @@ INFRASTRUCTURE PROPORTIONALITY RULES:
92
117
  - Choose infrastructure complexity appropriate to solution size
93
118
  "
94
119
 
95
- # run BA's
96
- echo "Running claude with opus model..."
97
- claude --model opus --dangerously-skip-permissions -p "$prompt2" | tee >(cat > $LOGFILE-ba3)
120
+ # Add ultrathink instruction to the beginning
121
+ ultrathink_instruction="<ultrathink>
122
+ You are entering deep strategic planning mode. Before responding, engage in extended reasoning to:
123
+ - Analyze the full scope and implications of the project
124
+ - Consider architectural tradeoffs and long-term consequences
125
+ - Identify edge cases, failure modes, and technical risks
126
+ - Think through the optimal approach from multiple angles
127
+ Take your time to think deeply about the best solution before generating your plan.
128
+ </ultrathink>
98
129
 
99
- # Only run codex if available and not in fast mode
100
- if command -v codex >/dev/null 2>&1 && [ "$FAST_MODE" = false ]; then
101
- echo ""
102
- echo -e "\033[33m==================================================================\033[0m"
103
- echo -e "\033[33m== RUNNING O3-PRO FOR DEEP STRATEGIC PLANNING\033[0m"
104
- echo -e "\033[33m==================================================================\033[0m"
105
- echo " This will take several minutes as o3-pro deeply analyzes the project..."
106
- echo " o3-pro excels at strategic thinking and will create a comprehensive plan."
107
- echo ""
108
-
109
- # Prepare comprehensive context for o3-pro with file references
110
- file_list=""
111
- [ -f "$BRIEF_FILE" ] && file_list="$file_list\n- $BRIEF_FILE (project brief)"
112
- [ -f "$WORKING_DIR/QUESTIONS.md" ] && file_list="$file_list\n- $WORKING_DIR/QUESTIONS.md (interview questions & answers)"
113
- [ -f "$WORKING_DIR/REQUIREMENTS.md" ] && file_list="$file_list\n- $WORKING_DIR/REQUIREMENTS.md (consolidated requirements)"
114
- [ -f "$WORKING_DIR/INTERVIEW-SESSION.json" ] && file_list="$file_list\n- $WORKING_DIR/INTERVIEW-SESSION.json (interview metadata)"
115
- [ -f "$WORKING_DIR/CLAUDE-NOTES.md" ] && file_list="$file_list\n- $WORKING_DIR/CLAUDE-NOTES.md (existing technical notes)"
116
- [ -f "$WORKING_DIR/IDEAS.md" ] && file_list="$file_list\n- $WORKING_DIR/IDEAS.md (ideas backlog)"
117
- [ -f "$WORKING_DIR/README.md" ] && file_list="$file_list\n- $WORKING_DIR/README.md (project readme)"
118
-
119
- o3_prompt="You are an elite software architect and strategic planner using o3-pro's advanced reasoning capabilities.
120
-
121
- READ AND ANALYZE THESE PROJECT FILES:$file_list
122
-
123
- TASK:
124
- Using your deep strategic reasoning, create a comprehensive project architecture and implementation plan.
125
-
126
- 1. ARCHITECTURAL ANALYSIS ($WORKING_DIR/CLAUDE-NOTES.md):
127
- - System architecture and key design decisions
128
- - Technology stack justification
129
- - Critical technical challenges and mitigation strategies
130
- - Integration points and dependencies
131
- - Performance and scalability considerations
132
- - Security architecture
133
- - Long-term maintainability strategy
134
-
135
- 2. IMPLEMENTATION PLAN ($WORKING_DIR/PLAN.md):
136
- - Master plan limited to 100 lines maximum with high-level sections
137
- - For complex projects, create detailed sub-plans in separate files ($WORKING_DIR/plan-section1.md, etc.)
138
- - Phased development approach with clear milestones
139
- - Task breakdown with dependencies (detailed in sub-plans if needed)
140
- - Risk assessment for each phase
141
- - Testing strategy integrated into each phase
142
- - Infrastructure needs (proportional to project size)
143
- - Performance benchmarks and acceptance criteria
144
-
145
- Remember:
146
- - Think strategically about the entire system lifecycle
147
- - Consider edge cases and failure modes
148
- - Plan for iterative development and feedback loops
149
- - Keep infrastructure proportional to project complexity
150
- - Prioritize robustness and maintainability
151
-
152
- Take your time to think deeply about the optimal approach."
153
-
154
- echo "Running codex o3-pro (this may take 3-5 minutes)..."
155
- codex -m o3-pro --full-auto -q "$o3_prompt" | tee $LOGFILE-ba4
156
- echo ""
157
- echo "✅ o3-pro strategic planning complete!"
158
- else
159
- echo ""
160
- if [ "$FAST_MODE" = true ]; then
161
- echo -e "\033[33m⚡ Fast mode enabled - skipping o3-pro strategic analysis for quicker results.\033[0m"
162
- echo "Use 'claudefsd-create-plan' without --fast for deep o3-pro planning."
163
- echo "Fast mode: skipping o3-pro strategic analysis" > $LOGFILE-ba4
164
- else
165
- echo -e "\033[33mNote: Install 'codex' CLI to enable o3-pro strategic planning for enhanced results.\033[0m"
166
- echo "Proceeding with standard planning using Claude Opus..."
167
- echo "Codex not available, skipping o3-pro strategic analysis" > $LOGFILE-ba4
168
- fi
169
- fi
130
+ "
131
+
132
+ # Prepend ultrathink to the prompt
133
+ prompt2="$ultrathink_instruction$prompt2"
134
+
135
+ # Run planning with opus + ultrathink
136
+ echo "Running claude with opus model (ultrathink mode)..."
137
+ claude --model opus --dangerously-skip-permissions -p "$prompt2" | tee >(cat > $LOGFILE-ba3)
170
138
 
171
139
  echo -e "\033[32m==================================================================\033[0m"
172
140
  echo -e "\033[32m== PLAN CREATION COMPLETE\033[0m"
173
141
  echo -e "\033[32m==================================================================\033[0m"
174
- echo "Plan created in $WORKING_DIR/PLAN.md"
175
- echo "Working notes saved in $WORKING_DIR/CLAUDE-NOTES.md"
142
+ echo "Plan created in $output_plan"
143
+ echo "Working notes saved in $output_notes"
176
144
  echo "You can now run 'claudefsd dev' to start the development process."
177
145
 
178
146
 
package/bin/claudefsd-dev CHANGED
@@ -46,17 +46,18 @@ SCRIPT_DIR="$(dirname "$SCRIPT_PATH")"
46
46
 
47
47
  # Function to check for required files
48
48
  check_requirements() {
49
- # Load find_brief_file function
49
+ # Load file finding functions
50
50
  source "$SCRIPT_DIR/claudefsd-find-brief"
51
51
  brief_file=$(find_brief_file 2>/dev/null || echo "")
52
-
52
+
53
53
  if [ -z "$brief_file" ]; then
54
54
  echo "No BRIEF.md file found in $WORKING_DIR/ or root directory. Please create one first."
55
55
  exit 1
56
56
  fi
57
-
58
- if [ ! -f "$WORKING_DIR/PLAN.md" ]; then
59
- echo "No $WORKING_DIR/PLAN.md file found. Please run 'claudefsd create-plan' first."
57
+
58
+ plan_file=$(find_project_file "PLAN.md" 2>/dev/null || echo "")
59
+ if [ -z "$plan_file" ]; then
60
+ echo "No PLAN.md file found in $WORKING_DIR/ or root directory. Please run 'claudefsd create-plan' first."
60
61
  exit 1
61
62
  fi
62
63
  }
@@ -94,11 +95,23 @@ while true; do
94
95
  if [ $((LOOP_COUNTER % 4)) -eq 0 ]; then
95
96
  echo -e "\033[33m**** MEGATHINKING MODE ACTIVATED ****\033[0m"
96
97
  echo -e "\033[33mThis is your 4th development cycle. Taking a step back for architectural planning.\033[0m"
97
- MEGATHINKING_MODE="**** MEGATHINKING MODE ACTIVATED ****\nThis is your 4th development cycle. Before proceeding with the next task, please take a step back and use megathinking mode to architecturally plan the next phase of development. Consider the overall structure of the codebase, potential refactoring opportunities, design patterns, technical debt, and how the current work connects to broader project goals.\n\n"
98
+ MEGATHINKING_MODE="<ultrathink>
99
+ **** MEGATHINKING MODE ACTIVATED ****
100
+ This is your 4th development cycle. Before proceeding with the next task, engage in deep extended reasoning to:
101
+ - Take a step back and architecturally plan the next phase of development
102
+ - Consider the overall structure of the codebase
103
+ - Identify potential refactoring opportunities
104
+ - Evaluate design patterns and technical debt
105
+ - Think about how the current work connects to broader project goals
106
+ - Analyze edge cases and potential failure modes
107
+ Take your time to think deeply about the optimal approach before proceeding.
108
+ </ultrathink>
109
+
110
+ "
98
111
  CLAUDE_MODEL="opus"
99
112
  else
100
113
  MEGATHINKING_MODE=""
101
- CLAUDE_MODEL="sonnet"
114
+ CLAUDE_MODEL="opus"
102
115
  fi
103
116
 
104
117
  # Build the development prompt combining intelligent task selection with parallel execution
@@ -107,37 +120,43 @@ You are an elite AI developer working in an automated development environment. Y
107
120
 
108
121
  **PROJECT FILES TO READ AND ANALYZE:**"
109
122
 
110
- # Build file list more safely
123
+ # Build file list using flexible file detection
111
124
  source "$SCRIPT_DIR/claudefsd-find-brief"
125
+
112
126
  brief_file=$(find_brief_file 2>/dev/null || echo "")
113
127
  if [ -n "$brief_file" ]; then
114
128
  DEVELOPMENT_PROMPT="$DEVELOPMENT_PROMPT
115
129
  - $brief_file (project brief)"
116
130
  fi
117
-
118
- if [ -f "$WORKING_DIR/PLAN.md" ]; then
131
+
132
+ plan_file=$(find_project_file "PLAN.md" 2>/dev/null || echo "")
133
+ if [ -n "$plan_file" ]; then
119
134
  DEVELOPMENT_PROMPT="$DEVELOPMENT_PROMPT
120
- - $WORKING_DIR/PLAN.md (development plan with tasks)"
135
+ - $plan_file (development plan with tasks)"
121
136
  fi
122
-
123
- if [ -f "$WORKING_DIR/REQUIREMENTS.md" ]; then
137
+
138
+ requirements_file=$(find_project_file "REQUIREMENTS.md" 2>/dev/null || echo "")
139
+ if [ -n "$requirements_file" ]; then
124
140
  DEVELOPMENT_PROMPT="$DEVELOPMENT_PROMPT
125
- - $WORKING_DIR/REQUIREMENTS.md (project requirements)"
141
+ - $requirements_file (project requirements)"
126
142
  fi
127
-
128
- if [ -f "$WORKING_DIR/QUESTIONS.md" ]; then
143
+
144
+ questions_file=$(find_project_file "QUESTIONS.md" 2>/dev/null || echo "")
145
+ if [ -n "$questions_file" ]; then
129
146
  DEVELOPMENT_PROMPT="$DEVELOPMENT_PROMPT
130
- - $WORKING_DIR/QUESTIONS.md (interview Q&A)"
147
+ - $questions_file (interview Q&A)"
131
148
  fi
132
-
133
- if [ -f "$WORKING_DIR/CLAUDE-NOTES.md" ]; then
149
+
150
+ notes_file=$(find_project_file "CLAUDE-NOTES.md" 2>/dev/null || echo "")
151
+ if [ -n "$notes_file" ]; then
134
152
  DEVELOPMENT_PROMPT="$DEVELOPMENT_PROMPT
135
- - $WORKING_DIR/CLAUDE-NOTES.md (technical notes)"
153
+ - $notes_file (technical notes)"
136
154
  fi
137
-
138
- if [ -f "$WORKING_DIR/README.md" ]; then
155
+
156
+ readme_file=$(find_project_file "README.md" 2>/dev/null || echo "")
157
+ if [ -n "$readme_file" ]; then
139
158
  DEVELOPMENT_PROMPT="$DEVELOPMENT_PROMPT
140
- - $WORKING_DIR/README.md (project readme)"
159
+ - $readme_file (project readme)"
141
160
  fi
142
161
 
143
162
  if [ -f "CLAUDE.md" ]; then
@@ -167,7 +186,7 @@ You are an elite AI developer working in an automated development environment. Y
167
186
  **YOUR MISSION:**
168
187
 
169
188
  **PHASE 1: TASK SELECTION**
170
- 1. Read $WORKING_DIR/PLAN.md and work through tasks in order
189
+ 1. Read $plan_file and work through tasks in order
171
190
  2. If a phase references a sub-plan file, read that file as well
172
191
  3. Complete tasks in the order they appear - don't skip ahead
173
192
  4. Identify if tasks can be done in parallel
@@ -177,7 +196,7 @@ Choose the optimal approach:
177
196
 
178
197
  **Option A: Single Focus Task** (for sequential dependencies or complex architectural work)
179
198
  - Implement the next task in order using appropriate tools (Edit, Write, Bash, etc.)
180
- - Update $WORKING_DIR/PLAN.md to mark task as complete with [x]
199
+ - Update $plan_file to mark task as complete with [x]
181
200
 
182
201
  **Option B: Parallel Task Execution** (for independent tasks)
183
202
  - Identify 2-4 related but independent tasks that can be done simultaneously
@@ -187,13 +206,13 @@ Choose the optimal approach:
187
206
 
188
207
  **PHASE 3: COMPLETION CHECK**
189
208
  After completing work:
190
- 1. Update $WORKING_DIR/PLAN.md to reflect completed tasks
209
+ 1. Update $plan_file to reflect completed tasks
191
210
  2. Run any linters or tests specified in the project
192
211
  3. Report on what was accomplished and what remains
193
212
 
194
213
  **EXECUTION GUIDELINES:**
195
214
  - **BUILD BULLETPROOF**: Create robust solutions that handle edge cases
196
- - **STAY FOCUSED**: Only implement what's specified in $WORKING_DIR/PLAN.md
215
+ - **STAY FOCUSED**: Only implement what's specified in $plan_file
197
216
  - **QUALITY FIRST**: Proper error handling, testing, and documentation
198
217
  - **ARCHITECTURAL THINKING**: Consider long-term maintainability
199
218
 
@@ -208,10 +227,10 @@ When using parallel Task agents, ensure each one:
208
227
  **OUTPUT FORMAT:**
209
228
  1. **<task_analysis>**: List identified open tasks and selected approach
210
229
  2. **<execution>**: Details of your ACTUAL implementation work (code written, files edited, commands run)
211
- 3. **<plan_updates>**: How you updated $WORKING_DIR/PLAN.md to reflect progress
230
+ 3. **<plan_updates>**: How you updated $plan_file to reflect progress
212
231
  4. **<completion_check>**: Status of remaining work
213
232
 
214
- IMPORTANT: You must ACTUALLY IMPLEMENT tasks, not just describe what should be done. Use Edit, Write, Bash, and Task tools to complete real work. Begin by analyzing $WORKING_DIR/PLAN.md and then IMPLEMENT the next task in order."
233
+ IMPORTANT: You must ACTUALLY IMPLEMENT tasks, not just describe what should be done. Use Edit, Write, Bash, and Task tools to complete real work. Begin by analyzing $plan_file and then IMPLEMENT the next task in order."
215
234
 
216
235
  # Save the prompt to the log file first
217
236
  echo "=== DEVELOPMENT PROMPT ===" > $LOGFILE
@@ -231,7 +250,7 @@ IMPORTANT: You must ACTUALLY IMPLEMENT tasks, not just describe what should be d
231
250
  echo -e "\033[32m== REVIEWING/VERIFYING WORK\033[0m"
232
251
  echo -e "\033[32m==================================================================\033[0m"
233
252
 
234
- # Define the verifier prompt
253
+ # Define the verifier prompt (reuse plan_file from earlier)
235
254
  VERIFIER_PROMPT="You are an expert code reviewer tasked with verifying a developer's work.
236
255
 
237
256
  **DEVELOPER'S OUTPUT:**
@@ -242,13 +261,13 @@ $DEVELOPER_OUTPUT
242
261
  2. Verify the work was actually completed by checking files
243
262
  3. Look for any cheating patterns (disabled tests, silent fallbacks, etc.)
244
263
  4. Create a git commit (see guidelines below)
245
- 5. Check if ALL tasks in $WORKING_DIR/PLAN.md are now complete
264
+ 5. Check if ALL tasks in $plan_file are now complete
246
265
 
247
266
  **VERIFICATION CHECKLIST:**
248
267
  - Did the developer actually implement code (not just analyze)?
249
268
  - Are all changes working correctly?
250
269
  - Do tests pass (if applicable)?
251
- - Is the task properly marked as complete in $WORKING_DIR/PLAN.md?
270
+ - Is the task properly marked as complete in $plan_file?
252
271
 
253
272
  **GIT COMMIT GUIDELINES:**
254
273
  - If the code looks good: Definitely commit with a clear message
@@ -5,7 +5,7 @@
5
5
  find_brief_file() {
6
6
  # Use environment variable if set, otherwise default to "docs"
7
7
  local working_dir="${CLAUDEFSD_WORKING_DIR:-docs}"
8
-
8
+
9
9
  if [ -f "$working_dir/BRIEF.md" ]; then
10
10
  echo "$working_dir/BRIEF.md"
11
11
  elif [ -f "BRIEF.md" ]; then
@@ -15,6 +15,22 @@ find_brief_file() {
15
15
  fi
16
16
  }
17
17
 
18
+ # Generic function to find any file in working dir or root
19
+ # Usage: find_project_file "PLAN.md"
20
+ # Returns: path to file (prefers $WORKING_DIR/file, falls back to ./file)
21
+ find_project_file() {
22
+ local filename="$1"
23
+ local working_dir="${CLAUDEFSD_WORKING_DIR:-docs}"
24
+
25
+ if [ -f "$working_dir/$filename" ]; then
26
+ echo "$working_dir/$filename"
27
+ elif [ -f "$filename" ]; then
28
+ echo "$filename"
29
+ else
30
+ return 1
31
+ fi
32
+ }
33
+
18
34
  # If called directly, just output the path
19
35
  if [ "${BASH_SOURCE[0]}" = "${0}" ]; then
20
36
  find_brief_file
@@ -193,7 +193,7 @@ prepare_next_question_bg() {
193
193
  coordinator_prompt="${coordinator_prompt//\{qa_summary_by_domain\}/$qa_summary}"
194
194
 
195
195
  # Get coordinator decision
196
- local next_persona=$(claude --model sonnet -p "$coordinator_prompt" 2>/dev/null | tail -1)
196
+ local next_persona=$(claude --model opus -p "$coordinator_prompt" 2>/dev/null | tail -1)
197
197
 
198
198
  # Validate and clean decision - remove spaces, newlines, and markdown formatting
199
199
  next_persona=$(echo "$next_persona" | tr -d ' \n\r' | sed 's/[*_`]//g')
@@ -312,7 +312,7 @@ ${prompt_template}"
312
312
  prompt_template="${prompt_template//\{security_qa_history\}/$persona_qa}"
313
313
 
314
314
  # Get question from Claude
315
- local question=$(claude --model sonnet -p "$prompt_template" 2>/dev/null | tail -1)
315
+ local question=$(claude --model opus -p "$prompt_template" 2>/dev/null | tail -1)
316
316
  echo "$question" > "$QUESTION_CACHE"
317
317
 
318
318
  # Question is ready in cache, no output needed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-fsd",
3
- "version": "1.5.25",
3
+ "version": "1.5.27",
4
4
  "description": "Claude Full Self Drive tools for autonomous AI-powered development",
5
5
  "bin": {
6
6
  "claude-fsd": "bin/claude-fsd",
@@ -1,69 +0,0 @@
1
- #!/bin/bash
2
- #
3
- # Main development dispatcher - now uses unified development mode by default
4
- # Usage: claudefsd-dev [direct|iterative|legacy-direct|legacy-iterative]
5
- #
6
- # Modes:
7
- # (default): Unified mode combining best of both approaches
8
- # direct: Legacy single-context parallel execution (deprecated)
9
- # iterative: Legacy multi-iteration loop development (deprecated)
10
- # legacy-direct: Force legacy direct execution mode
11
- # legacy-iterative: Force legacy iterative loop mode
12
- #
13
- # Examples:
14
- # claudefsd-dev # Use unified development mode (recommended)
15
- # claudefsd-dev legacy-direct # Force legacy direct execution mode
16
- # claudefsd-dev legacy-iterative # Force legacy iterative loop mode
17
-
18
- set -e
19
-
20
- # Parse command line arguments
21
- DEV_MODE="$1"
22
-
23
- # Default to unified mode
24
- if [ -z "$DEV_MODE" ]; then
25
- DEV_MODE="unified"
26
- fi
27
-
28
- echo "Development mode: $DEV_MODE"
29
-
30
- # Route to appropriate development script
31
- case "$DEV_MODE" in
32
- unified)
33
- echo "Launching unified development mode (recommended)..."
34
- exec "$(dirname "$0")/claudefsd-dev-unified"
35
- ;;
36
- direct)
37
- echo "WARNING: Legacy direct mode is deprecated. Consider using unified mode."
38
- echo "Launching legacy direct execution mode..."
39
- exec "$(dirname "$0")/claudefsd-dev-direct"
40
- ;;
41
- iterative)
42
- echo "WARNING: Legacy iterative mode is deprecated. Consider using unified mode."
43
- echo "Launching legacy iterative development mode..."
44
- exec "$(dirname "$0")/claudefsd-dev-iterative"
45
- ;;
46
- legacy-direct)
47
- echo "Launching legacy direct execution mode..."
48
- exec "$(dirname "$0")/claudefsd-dev-direct"
49
- ;;
50
- legacy-iterative)
51
- echo "Launching legacy iterative development mode..."
52
- exec "$(dirname "$0")/claudefsd-dev-iterative"
53
- ;;
54
- small)
55
- # Legacy support - map to unified (was direct)
56
- echo "Legacy 'small' mode - redirecting to unified development..."
57
- exec "$(dirname "$0")/claudefsd-dev-unified"
58
- ;;
59
- large)
60
- # Legacy support - map to unified (was iterative)
61
- echo "Legacy 'large' mode - redirecting to unified development..."
62
- exec "$(dirname "$0")/claudefsd-dev-unified"
63
- ;;
64
- *)
65
- echo "Unknown development mode: $DEV_MODE"
66
- echo "Valid modes: unified (default), direct, iterative, legacy-direct, legacy-iterative"
67
- exit 1
68
- ;;
69
- esac