@@ -189,25 +189,6 @@ generate_delegation_prompt() {
189189
190190${agent_context} "
191191
192- # Add atomic commits guidance if enabled
193- local atomic_commits
194- atomic_commits=$( get_mode_config " atomic_commits" )
195-
196- if [[ " $atomic_commits " == " true" ]]; then
197- full_context=" ${full_context}
198-
199- ## COMMIT STRUCTURE GUIDANCE
200- Create atomic commits following this pattern:
201- - Each commit represents one logical unit of work
202- - Independently reviewable (can understand from commit message + diff)
203- - Self-contained (feature complete or milestone complete)
204- - Descriptive message: \" [Feature]: What was accomplished\"
205- Example: \" [auth]: Implement JWT token validation\"
206-
207- This enables post-execution review and rollback capability.
208- "
209- fi
210-
211192 # Substitute variables using awk to handle multiline content safely
212193 local prompt
213194 prompt=$( awk -v agent_type=" $agent_type " \
@@ -637,66 +618,29 @@ ensure_documentation_consistency() {
637618 fi
638619}
639620
640- # Mode-aware rollback strategies
641- get_mode_aware_rollback_strategy () {
642- local mode=" ${1:- spec} " # Default to spec mode
621+ # Execute rollback (spec mode only)
622+ execute_rollback () {
623+ local feature_dir=" $1 "
624+ local rollback_type=" $2 "
625+ local task_id=" ${3:- } " # Optional task_id for task rollback
626+
627+ echo " Executing spec_mode_rollback for $rollback_type "
643628
644- case " $mode " in
645- " build" )
646- echo " build_mode_rollback"
629+ case " $rollback_type " in
630+ " task" )
631+ if [[ -z " $task_id " ]]; then
632+ echo " ERROR: task_id required for task rollback" >&2
633+ return 1
634+ fi
635+ rollback_task " $feature_dir /tasks_meta.json" " $task_id " " true"
647636 ;;
648- " spec " )
649- echo " spec_mode_rollback "
637+ " feature " )
638+ rollback_feature " $feature_dir " " true "
650639 ;;
651640 * )
652- echo " default_rollback"
653- ;;
654- esac
655- }
656-
657- # Execute mode-aware rollback
658- execute_mode_aware_rollback () {
659- local feature_dir=" $1 "
660- local rollback_type=" $2 "
661- local mode=" ${3:- spec} "
662-
663- local strategy
664- strategy=$( get_mode_aware_rollback_strategy " $mode " )
665-
666- echo " Executing $strategy for $rollback_type in $mode mode"
667-
668- case " $strategy " in
669- " build_mode_rollback" )
670- # Lightweight rollback for build mode
671- echo " Build mode: Minimal rollback preserving rapid iteration artifacts"
672- case " $rollback_type " in
673- " task" )
674- # Less aggressive task rollback in build mode
675- echo " Task rollback completed with minimal cleanup"
676- ;;
677- " feature" )
678- # Preserve more artifacts in build mode
679- echo " Feature rollback completed, preserving iteration artifacts"
680- ;;
681- esac
682- ;;
683-
684- " spec_mode_rollback" )
685- # Comprehensive rollback for spec mode
686- echo " Spec mode: Comprehensive rollback with full documentation preservation"
687- case " $rollback_type " in
688- " task" )
689- rollback_task " $feature_dir /tasks_meta.json" " $4 " " true"
690- ;;
691- " feature" )
692- rollback_feature " $feature_dir " " true"
693- ;;
694- esac
641+ echo " ERROR: Unknown rollback type: $rollback_type " >&2
642+ return 1
695643 ;;
696-
697- " default_rollback" )
698- echo " Default rollback strategy applied"
699- ;;
700644 esac
701645}
702646
@@ -717,37 +661,18 @@ get_framework_opinions() {
717661 local user_risk_tests
718662 user_risk_tests=$( jq -r " .options.risk_tests_enabled" " $config_file " 2> /dev/null || echo " null" )
719663
720- # Fill in defaults for unset options based on mode
721- case " $mode " in
722- " build" )
723- [[ " $user_tdd " == " null" ]] && user_tdd=" false"
724- [[ " $user_contracts " == " null" ]] && user_contracts=" false"
725- [[ " $user_data_models " == " null" ]] && user_data_models=" false"
726- [[ " $user_risk_tests " == " null" ]] && user_risk_tests=" false"
727- ;;
728- " spec" )
729- [[ " $user_tdd " == " null" ]] && user_tdd=" true"
730- [[ " $user_contracts " == " null" ]] && user_contracts=" true"
731- [[ " $user_data_models " == " null" ]] && user_data_models=" true"
732- [[ " $user_risk_tests " == " null" ]] && user_risk_tests=" true"
733- ;;
734- esac
664+ # Fill in defaults for unset options (spec mode defaults)
665+ [[ " $user_tdd " == " null" ]] && user_tdd=" true"
666+ [[ " $user_contracts " == " null" ]] && user_contracts=" true"
667+ [[ " $user_data_models " == " null" ]] && user_data_models=" true"
668+ [[ " $user_risk_tests " == " null" ]] && user_risk_tests=" true"
669+
735670 echo " tdd_enabled=$user_tdd contracts_enabled=$user_contracts data_models_enabled=$user_data_models risk_tests_enabled=$user_risk_tests "
736671 return
737672 fi
738673
739- # Fallback to mode-based defaults
740- case " $mode " in
741- " build" )
742- echo " tdd_enabled=false contracts_enabled=false data_models_enabled=false risk_tests_enabled=false"
743- ;;
744- " spec" )
745- echo " tdd_enabled=true contracts_enabled=true data_models_enabled=true risk_tests_enabled=true"
746- ;;
747- * )
748- echo " tdd_enabled=false contracts_enabled=false data_models_enabled=false risk_tests_enabled=false"
749- ;;
750- esac
674+ # Fallback to spec mode defaults
675+ echo " tdd_enabled=true contracts_enabled=true data_models_enabled=true risk_tests_enabled=true"
751676}
752677
753678# Set framework opinion (legacy compatibility - now handled by per-spec mode)
@@ -856,12 +781,12 @@ if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
856781 shift
857782 regenerate_tasks_after_rollback " $@ "
858783 ;;
859- regenerate_plan|ensure_documentation_consistency| get_mode_aware_rollback_strategy|execute_mode_aware_rollback | get_framework_opinions|set_framework_opinion|is_opinion_enabled|generate_tasks_with_opinions)
784+ regenerate_plan|ensure_documentation_consistency| execute_rollback | get_framework_opinions|set_framework_opinion|is_opinion_enabled|generate_tasks_with_opinions)
860785 shift
861786 " $1 " " $@ "
862787 ;;
863788 * )
864- echo " Usage: $0 {generate_delegation_prompt|check_delegation_status|dispatch_async_task|analyze_implementation_changes|propose_documentation_updates|apply_documentation_updates|rollback_task|rollback_feature|regenerate_tasks_after_rollback|regenerate_plan|ensure_documentation_consistency|get_mode_aware_rollback_strategy|execute_mode_aware_rollback } [args...]"
789+ echo " Usage: $0 {generate_delegation_prompt|check_delegation_status|dispatch_async_task|analyze_implementation_changes|propose_documentation_updates|apply_documentation_updates|rollback_task|rollback_feature|regenerate_tasks_after_rollback|regenerate_plan|ensure_documentation_consistency|execute_rollback } [args...]"
865790 exit 1
866791 ;;
867792 esac
0 commit comments