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 +24 -21
- package/bin/claudefsd +32 -17
- package/bin/claudefsd-analyze-brief +3 -12
- package/bin/claudefsd-analyze-brief-personas +2 -2
- package/bin/claudefsd-check-dependencies +3 -25
- package/bin/claudefsd-create-plan +64 -96
- package/bin/claudefsd-dev +51 -32
- package/bin/claudefsd-find-brief +17 -1
- package/bin/claudefsd-interview +2 -2
- package/package.json +1 -1
- package/bin/claudefsd-dev 2 +0 -69
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
|
|
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
|
|
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
|
|
197
|
+
The system uses Claude Sonnet throughout with strategic ultrathinking for complex work:
|
|
192
198
|
|
|
193
|
-
- **
|
|
194
|
-
-
|
|
195
|
-
-
|
|
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
|
|
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
|
-
|
|
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 [ -
|
|
54
|
+
elif [ -n "$requirements_file" ] && [ -z "$plan_file" ]; then
|
|
53
55
|
echo "2" # Create plan from requirements
|
|
54
|
-
elif [ -
|
|
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
|
-
|
|
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 [ -
|
|
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
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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
|
-
|
|
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"
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
40
|
-
|
|
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
|
-
|
|
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
|
|
67
|
-
2. Update or create $
|
|
68
|
-
3. Update or create $
|
|
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 (
|
|
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
|
-
#
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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 $
|
|
175
|
-
echo "Working notes saved in $
|
|
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
|
|
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
|
-
|
|
59
|
-
|
|
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="
|
|
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="
|
|
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
|
|
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
|
-
|
|
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
|
-
- $
|
|
135
|
+
- $plan_file (development plan with tasks)"
|
|
121
136
|
fi
|
|
122
|
-
|
|
123
|
-
|
|
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
|
-
- $
|
|
141
|
+
- $requirements_file (project requirements)"
|
|
126
142
|
fi
|
|
127
|
-
|
|
128
|
-
|
|
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
|
-
- $
|
|
147
|
+
- $questions_file (interview Q&A)"
|
|
131
148
|
fi
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
- $
|
|
153
|
+
- $notes_file (technical notes)"
|
|
136
154
|
fi
|
|
137
|
-
|
|
138
|
-
|
|
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
|
-
- $
|
|
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 $
|
|
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 $
|
|
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 $
|
|
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 $
|
|
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 $
|
|
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 $
|
|
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 $
|
|
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 $
|
|
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
|
package/bin/claudefsd-find-brief
CHANGED
|
@@ -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
|
package/bin/claudefsd-interview
CHANGED
|
@@ -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
|
|
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
|
|
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
package/bin/claudefsd-dev 2
DELETED
|
@@ -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
|