fix: stop tracking spec files in git (#295)
* fix: stop tracking spec files in git - Remove git commit instructions from planner.md for spec files - Spec files (implementation_plan.json, init.sh, build-progress.txt) should be gitignored - Untrack existing spec files that were accidentally committed - AI agents should only commit code changes, not spec metadata The .auto-claude/specs/ directory is gitignored by design - spec files are local project metadata that shouldn't be version controlled. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(prompts): remove git commit instructions for gitignored spec files The spec files (build-progress.txt, qa_report.md, implementation_plan.json, QA_FIX_REQUEST.md) are all stored in .auto-claude/specs/ which is gitignored. Removed instructions telling agents to commit these files, replaced with notes explaining they're tracked automatically by the framework. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
-68
@@ -1,68 +0,0 @@
|
||||
=== AUTO-BUILD PROGRESS ===
|
||||
|
||||
Project: Spec Approval Mechanism for Human-in-the-Loop Workflow
|
||||
Workspace: Managed by orchestrator
|
||||
Started: 2025-12-26 07:14:00 UTC
|
||||
|
||||
Workflow Type: feature
|
||||
Rationale: This is new functionality bridging a critical gap in the human-in-the-loop workflow. Adding approval UI and backend state transitions that don't currently exist.
|
||||
|
||||
Session 1 (Planner):
|
||||
- Created implementation_plan.json
|
||||
- Phases: 4
|
||||
- Total subtasks: 9
|
||||
- Created init.sh
|
||||
- Updated context.json with investigation findings
|
||||
|
||||
Phase Summary:
|
||||
- Phase 1 (Backend Spec Approval State Management): 2 subtasks, no dependencies, parallel-safe
|
||||
- Phase 2 (Frontend Approval UI Components): 4 subtasks, no dependencies, parallel-safe
|
||||
- Phase 3 (IPC Integration): 2 subtasks, depends on [phase-1, phase-2]
|
||||
- Phase 4 (End-to-End Verification): 1 subtask, depends on [phase-3]
|
||||
|
||||
Services Involved:
|
||||
- frontend: Approval UI, state management, user interactions
|
||||
- backend: Spec approval state persistence and workflow transitions
|
||||
|
||||
Parallelism Analysis:
|
||||
- Max parallel phases: 2
|
||||
- Recommended workers: 2
|
||||
- Parallel groups: [phase-1-backend-state, phase-2-frontend-ui] can run together
|
||||
- Speedup estimate: 1.4x faster than sequential execution
|
||||
|
||||
Key Implementation Insights:
|
||||
- TaskStatus already includes 'human_review' status
|
||||
- ReviewReason already includes 'plan_review' type ("Spec/plan created and awaiting approval before coding starts")
|
||||
- Frontend has existing patterns: Zustand stores, Radix UI dialogs, task review components
|
||||
- Backend needs to check requireReviewBeforeCoding metadata and set reviewReason='plan_review' after spec creation
|
||||
- Integration requires new IPC handlers: approveSpec(), rejectSpec()
|
||||
|
||||
Files Identified for Modification:
|
||||
Backend:
|
||||
- apps/backend/spec/pipeline/orchestrator.py
|
||||
- apps/backend/runners/spec_runner.py
|
||||
- apps/frontend/src/main/project-store.ts (IPC handlers)
|
||||
|
||||
Frontend:
|
||||
- apps/frontend/src/renderer/stores/task-store.ts
|
||||
- apps/frontend/src/renderer/components/task-detail/TaskActions.tsx
|
||||
- apps/frontend/src/renderer/components/task-detail/TaskHeader.tsx
|
||||
- apps/frontend/src/shared/types/ipc.ts
|
||||
|
||||
New Files:
|
||||
- apps/frontend/src/renderer/components/task-detail/SpecReviewModal.tsx
|
||||
|
||||
Reference Patterns:
|
||||
- apps/frontend/src/renderer/components/ui/dialog.tsx (Radix Dialog pattern)
|
||||
- apps/frontend/src/renderer/components/task-detail/task-review/DiffViewDialog.tsx (Review modal pattern)
|
||||
- apps/frontend/src/renderer/stores/task-store.ts (Zustand store pattern)
|
||||
|
||||
=== STARTUP COMMAND ===
|
||||
|
||||
To continue building this spec, run:
|
||||
|
||||
source auto-claude/.venv/bin/activate && python auto-claude/run.py --spec 015 --parallel 2
|
||||
|
||||
This will execute Phase 1 (backend) and Phase 2 (frontend) in parallel, then proceed to Phase 3 (integration) and Phase 4 (E2E verification).
|
||||
|
||||
=== END SESSION 1 ===
|
||||
-38
@@ -1,38 +0,0 @@
|
||||
{
|
||||
"task_description": "Task stuck after spec creation with 'Require human review before coding' enabled - no way to approve",
|
||||
"scoped_services": ["frontend", "backend"],
|
||||
"files_to_modify": {
|
||||
"frontend": [
|
||||
"apps/frontend/src/renderer/stores/task-store.ts",
|
||||
"apps/frontend/src/renderer/components/task-detail/TaskActions.tsx",
|
||||
"apps/frontend/src/shared/types/ipc.ts"
|
||||
],
|
||||
"backend": [
|
||||
"apps/backend/spec/pipeline/orchestrator.py",
|
||||
"apps/backend/runners/spec_runner.py",
|
||||
"apps/frontend/src/main/project-store.ts"
|
||||
]
|
||||
},
|
||||
"files_to_reference": [
|
||||
"apps/frontend/src/renderer/components/ui/dialog.tsx",
|
||||
"apps/frontend/src/renderer/components/task-detail/task-review/DiffViewDialog.tsx",
|
||||
"apps/frontend/src/renderer/stores/settings-store.ts",
|
||||
"apps/frontend/src/renderer/components/task-detail/TaskDetailModal.tsx"
|
||||
],
|
||||
"patterns": {
|
||||
"zustand_store": "Use create() from zustand, define interface with state and actions, export async functions for IPC calls",
|
||||
"radix_dialog": "Use Dialog, DialogContent, DialogHeader, DialogTitle from ui/dialog.tsx, apply Tailwind classes for styling",
|
||||
"ipc_pattern": "Define IPC handlers in electronAPI interface, implement in main process, call from renderer via window.electronAPI",
|
||||
"task_status_flow": "Tasks use status='human_review' with reviewReason='plan_review' when awaiting spec approval"
|
||||
},
|
||||
"existing_implementations": {
|
||||
"description": "Found existing task review patterns in task-detail/task-review/ showing how to handle human_review states with diff viewing and approval actions",
|
||||
"relevant_files": [
|
||||
"apps/frontend/src/renderer/components/task-detail/task-review/index.ts",
|
||||
"apps/frontend/src/renderer/components/task-detail/task-review/WorkspaceStatus.tsx",
|
||||
"apps/frontend/src/shared/types/task.ts"
|
||||
],
|
||||
"key_insight": "ReviewReason type already includes 'plan_review' but it's not being set anywhere. Tasks should transition to status='human_review' with reviewReason='plan_review' after spec creation when requireReviewBeforeCoding is enabled."
|
||||
},
|
||||
"created_at": "2025-12-26T07:14:00.000000"
|
||||
}
|
||||
-282
@@ -1,282 +0,0 @@
|
||||
{
|
||||
"feature": "Spec Approval Mechanism for Human-in-the-Loop Workflow",
|
||||
"workflow_type": "feature",
|
||||
"workflow_rationale": "This is new functionality bridging a critical gap in the human-in-the-loop workflow. Adding approval UI and backend state transitions that don't currently exist, rather than fixing existing code or refactoring.",
|
||||
"phases": [
|
||||
{
|
||||
"id": "phase-1-backend-state",
|
||||
"name": "Backend Spec Approval State Management",
|
||||
"type": "implementation",
|
||||
"description": "Implement backend logic to transition tasks to plan_review state after spec creation and handle approval/rejection",
|
||||
"depends_on": [],
|
||||
"parallel_safe": true,
|
||||
"subtasks": [
|
||||
{
|
||||
"id": "subtask-1-1",
|
||||
"description": "Add plan_review state transition after spec creation when requireReviewBeforeCoding is enabled",
|
||||
"service": "backend",
|
||||
"files_to_modify": ["apps/backend/spec/pipeline/orchestrator.py", "apps/backend/runners/spec_runner.py"],
|
||||
"files_to_create": [],
|
||||
"patterns_from": ["apps/backend/review/state.py"],
|
||||
"verification": {
|
||||
"type": "command",
|
||||
"command": "python -c \"from apps.backend.spec.pipeline.orchestrator import SpecOrchestrator; print('OK')\"",
|
||||
"expected": "OK"
|
||||
},
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"id": "subtask-1-2",
|
||||
"description": "Add IPC handlers for spec approval and rejection in main process",
|
||||
"service": "backend",
|
||||
"files_to_modify": ["apps/frontend/src/main/project-store.ts"],
|
||||
"files_to_create": [],
|
||||
"patterns_from": ["apps/frontend/src/main/project-store.ts"],
|
||||
"verification": {
|
||||
"type": "command",
|
||||
"command": "grep -q 'approveSpec\\|rejectSpec' apps/frontend/src/main/project-store.ts && echo 'OK' || echo 'FAIL'",
|
||||
"expected": "OK"
|
||||
},
|
||||
"status": "pending"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "phase-2-frontend-ui",
|
||||
"name": "Frontend Approval UI Components",
|
||||
"type": "implementation",
|
||||
"description": "Build the spec review modal, approval actions, and visual indicators for tasks awaiting approval",
|
||||
"depends_on": [],
|
||||
"parallel_safe": true,
|
||||
"subtasks": [
|
||||
{
|
||||
"id": "subtask-2-1",
|
||||
"description": "Create SpecReviewModal component with markdown rendering and approve/reject actions",
|
||||
"service": "frontend",
|
||||
"files_to_modify": [],
|
||||
"files_to_create": ["apps/frontend/src/renderer/components/task-detail/SpecReviewModal.tsx"],
|
||||
"patterns_from": ["apps/frontend/src/renderer/components/ui/dialog.tsx", "apps/frontend/src/renderer/components/task-detail/task-review/DiffViewDialog.tsx"],
|
||||
"verification": {
|
||||
"type": "command",
|
||||
"command": "grep -q 'SpecReviewModal' apps/frontend/src/renderer/components/task-detail/SpecReviewModal.tsx && echo 'OK' || echo 'FAIL'",
|
||||
"expected": "OK"
|
||||
},
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"id": "subtask-2-2",
|
||||
"description": "Add spec approval actions to task-store (openSpecReview, approveSpec, rejectSpec)",
|
||||
"service": "frontend",
|
||||
"files_to_modify": ["apps/frontend/src/renderer/stores/task-store.ts"],
|
||||
"files_to_create": [],
|
||||
"patterns_from": ["apps/frontend/src/renderer/stores/task-store.ts"],
|
||||
"verification": {
|
||||
"type": "command",
|
||||
"command": "grep -q 'approveSpec\\|rejectSpec' apps/frontend/src/renderer/stores/task-store.ts && echo 'OK' || echo 'FAIL'",
|
||||
"expected": "OK"
|
||||
},
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"id": "subtask-2-3",
|
||||
"description": "Update TaskActions to show Review Spec button when reviewReason is plan_review",
|
||||
"service": "frontend",
|
||||
"files_to_modify": ["apps/frontend/src/renderer/components/task-detail/TaskActions.tsx"],
|
||||
"files_to_create": [],
|
||||
"patterns_from": ["apps/frontend/src/renderer/components/task-detail/TaskActions.tsx"],
|
||||
"verification": {
|
||||
"type": "browser",
|
||||
"url": "http://localhost:3000",
|
||||
"checks": ["Review Spec button appears for tasks in plan_review state", "No console errors"]
|
||||
},
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"id": "subtask-2-4",
|
||||
"description": "Add visual indicator badge for tasks awaiting spec approval in task list",
|
||||
"service": "frontend",
|
||||
"files_to_modify": ["apps/frontend/src/renderer/components/task-detail/TaskHeader.tsx"],
|
||||
"files_to_create": [],
|
||||
"patterns_from": ["apps/frontend/src/renderer/components/ui/badge.tsx"],
|
||||
"verification": {
|
||||
"type": "browser",
|
||||
"url": "http://localhost:3000",
|
||||
"checks": ["Badge shows for plan_review tasks", "Badge has distinct styling"]
|
||||
},
|
||||
"status": "pending"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "phase-3-ipc-integration",
|
||||
"name": "IPC Integration",
|
||||
"type": "integration",
|
||||
"description": "Wire frontend approval actions to backend IPC handlers and add TypeScript type definitions",
|
||||
"depends_on": ["phase-1-backend-state", "phase-2-frontend-ui"],
|
||||
"parallel_safe": false,
|
||||
"subtasks": [
|
||||
{
|
||||
"id": "subtask-3-1",
|
||||
"description": "Add approveSpec and rejectSpec to IPC type definitions",
|
||||
"service": "frontend",
|
||||
"files_to_modify": ["apps/frontend/src/shared/types/ipc.ts"],
|
||||
"files_to_create": [],
|
||||
"patterns_from": ["apps/frontend/src/shared/types/ipc.ts"],
|
||||
"verification": {
|
||||
"type": "command",
|
||||
"command": "grep -q 'approveSpec\\|rejectSpec' apps/frontend/src/shared/types/ipc.ts && echo 'OK' || echo 'FAIL'",
|
||||
"expected": "OK"
|
||||
},
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"id": "subtask-3-2",
|
||||
"description": "Integrate SpecReviewModal into TaskDetailModal component",
|
||||
"service": "frontend",
|
||||
"files_to_modify": ["apps/frontend/src/renderer/components/task-detail/TaskDetailModal.tsx"],
|
||||
"files_to_create": [],
|
||||
"patterns_from": ["apps/frontend/src/renderer/components/task-detail/TaskDetailModal.tsx"],
|
||||
"verification": {
|
||||
"type": "browser",
|
||||
"url": "http://localhost:3000",
|
||||
"checks": ["Modal opens when Review Spec clicked", "Modal displays spec content", "Approve/Reject buttons functional"]
|
||||
},
|
||||
"status": "pending"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "phase-4-end-to-end",
|
||||
"name": "End-to-End Verification",
|
||||
"type": "integration",
|
||||
"description": "Test complete flow from spec creation to approval to implementation start",
|
||||
"depends_on": ["phase-3-ipc-integration"],
|
||||
"parallel_safe": false,
|
||||
"subtasks": [
|
||||
{
|
||||
"id": "subtask-4-1",
|
||||
"description": "End-to-end test: Create task with requireReviewBeforeCoding, verify spec approval flow",
|
||||
"all_services": true,
|
||||
"files_to_modify": [],
|
||||
"files_to_create": [],
|
||||
"patterns_from": [],
|
||||
"verification": {
|
||||
"type": "e2e",
|
||||
"steps": [
|
||||
"Enable 'Require human review before coding' setting",
|
||||
"Create a new task",
|
||||
"Wait for spec generation to complete",
|
||||
"Verify task status is human_review with reviewReason plan_review",
|
||||
"Click 'Review Spec' button",
|
||||
"Verify spec.md displays in modal",
|
||||
"Click 'Approve' button",
|
||||
"Verify task transitions to in_progress and implementation starts",
|
||||
"Test rejection flow: reject spec and verify task state"
|
||||
]
|
||||
},
|
||||
"status": "pending"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"total_phases": 4,
|
||||
"total_subtasks": 9,
|
||||
"services_involved": ["frontend", "backend"],
|
||||
"parallelism": {
|
||||
"max_parallel_phases": 2,
|
||||
"parallel_groups": [
|
||||
{
|
||||
"phases": ["phase-1-backend-state", "phase-2-frontend-ui"],
|
||||
"reason": "Both have no dependencies and work on different services (backend vs frontend)"
|
||||
}
|
||||
],
|
||||
"recommended_workers": 2,
|
||||
"speedup_estimate": "1.4x faster than sequential - backend and frontend work can happen simultaneously"
|
||||
},
|
||||
"startup_command": "source auto-claude/.venv/bin/activate && python auto-claude/run.py --spec 015 --parallel 2"
|
||||
},
|
||||
"verification_strategy": {
|
||||
"risk_level": "medium",
|
||||
"skip_validation": false,
|
||||
"test_creation_phase": "post_implementation",
|
||||
"test_types_required": ["unit", "integration", "e2e"],
|
||||
"security_scanning_required": false,
|
||||
"staging_deployment_required": false,
|
||||
"acceptance_criteria": [
|
||||
"All existing tests pass",
|
||||
"New code has test coverage for approval flow",
|
||||
"No regressions in existing task workflow",
|
||||
"Spec approval UI is accessible and intuitive",
|
||||
"Edge cases handled (missing spec, concurrent approvals)"
|
||||
],
|
||||
"verification_steps": [
|
||||
{
|
||||
"name": "Frontend Unit Tests",
|
||||
"command": "cd apps/frontend && npm test",
|
||||
"expected_outcome": "All tests pass",
|
||||
"type": "test",
|
||||
"required": true,
|
||||
"blocking": true
|
||||
},
|
||||
{
|
||||
"name": "Frontend Integration Tests",
|
||||
"command": "cd apps/frontend && npm run test:integration",
|
||||
"expected_outcome": "All integration tests pass",
|
||||
"type": "test",
|
||||
"required": true,
|
||||
"blocking": true
|
||||
},
|
||||
{
|
||||
"name": "End-to-End Tests",
|
||||
"command": "cd apps/frontend && npx playwright test",
|
||||
"expected_outcome": "Approval flow E2E test passes",
|
||||
"type": "test",
|
||||
"required": true,
|
||||
"blocking": true
|
||||
},
|
||||
{
|
||||
"name": "Manual Browser Verification",
|
||||
"command": "cd apps/frontend && npm run dev",
|
||||
"expected_outcome": "Spec approval flow works end-to-end in browser",
|
||||
"type": "manual",
|
||||
"required": true,
|
||||
"blocking": false
|
||||
}
|
||||
],
|
||||
"reasoning": "Medium risk workflow change requires comprehensive testing. Critical user flow must work correctly to avoid blocking task execution."
|
||||
},
|
||||
"qa_acceptance": {
|
||||
"unit_tests": {
|
||||
"required": true,
|
||||
"commands": ["cd apps/frontend && npm test"],
|
||||
"minimum_coverage": null
|
||||
},
|
||||
"integration_tests": {
|
||||
"required": true,
|
||||
"commands": ["cd apps/frontend && npm run test:integration"],
|
||||
"services_to_test": ["frontend", "backend"]
|
||||
},
|
||||
"e2e_tests": {
|
||||
"required": true,
|
||||
"commands": ["cd apps/frontend && npx playwright test"],
|
||||
"flows": ["spec-approval-flow", "spec-rejection-flow"]
|
||||
},
|
||||
"browser_verification": {
|
||||
"required": true,
|
||||
"pages": [
|
||||
{
|
||||
"url": "http://localhost:3000/",
|
||||
"checks": ["Review Spec button appears", "Modal opens", "Spec content renders", "Approve/Reject work", "No console errors"]
|
||||
}
|
||||
]
|
||||
},
|
||||
"database_verification": {
|
||||
"required": false,
|
||||
"checks": []
|
||||
}
|
||||
},
|
||||
"qa_signoff": null,
|
||||
"created_at": "2025-12-26T07:14:00.000Z",
|
||||
"updated_at": "2025-12-26T07:14:00.000Z"
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Auto-Build Environment Setup
|
||||
# Generated by Planner Agent for Spec 015
|
||||
|
||||
set -e
|
||||
|
||||
echo "========================================"
|
||||
echo "Starting Development Environment"
|
||||
echo "Spec 015: Spec Approval Mechanism"
|
||||
echo "========================================"
|
||||
|
||||
# Colors
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
# Wait for service function
|
||||
wait_for_service() {
|
||||
local port=$1
|
||||
local name=$2
|
||||
local max=30
|
||||
local count=0
|
||||
|
||||
echo "Waiting for $name on port $port..."
|
||||
while ! nc -z localhost $port 2>/dev/null; do
|
||||
count=$((count + 1))
|
||||
if [ $count -ge $max ]; then
|
||||
echo -e "${RED}$name failed to start${NC}"
|
||||
return 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
echo -e "${GREEN}$name ready${NC}"
|
||||
}
|
||||
|
||||
# ============================================
|
||||
# START SERVICES
|
||||
# ============================================
|
||||
|
||||
# Frontend (Port 3000)
|
||||
echo ""
|
||||
echo -e "${YELLOW}Starting Frontend Service...${NC}"
|
||||
cd apps/frontend
|
||||
npm run dev &
|
||||
FRONTEND_PID=$!
|
||||
cd ../..
|
||||
wait_for_service 3000 "Frontend"
|
||||
|
||||
# ============================================
|
||||
# SUMMARY
|
||||
# ============================================
|
||||
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo -e "${GREEN}Environment Ready!${NC}"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
echo "Services:"
|
||||
echo " Frontend: http://localhost:3000"
|
||||
echo ""
|
||||
echo "Key Files to Modify:"
|
||||
echo " Backend:"
|
||||
echo " - apps/backend/spec/pipeline/orchestrator.py"
|
||||
echo " - apps/backend/runners/spec_runner.py"
|
||||
echo " - apps/frontend/src/main/project-store.ts"
|
||||
echo " Frontend:"
|
||||
echo " - apps/frontend/src/renderer/stores/task-store.ts"
|
||||
echo " - apps/frontend/src/renderer/components/task-detail/TaskActions.tsx"
|
||||
echo " - apps/frontend/src/renderer/components/task-detail/SpecReviewModal.tsx (new)"
|
||||
echo ""
|
||||
echo "To stop services:"
|
||||
echo " kill $FRONTEND_PID"
|
||||
echo ""
|
||||
-75
@@ -1,75 +0,0 @@
|
||||
=== AUTO-BUILD PROGRESS ===
|
||||
|
||||
Project: Fix Task Runner Crash Loop - File Not Found Error
|
||||
Workspace: Managed by orchestrator
|
||||
Started: 2025-12-26 07:15:00
|
||||
|
||||
Workflow Type: investigation
|
||||
Rationale: Root cause (specific missing file) is unknown. Must first reproduce and identify the issue before implementing a fix. Investigation phase output will determine fix phase scope.
|
||||
|
||||
Session 1 (Planner):
|
||||
- Created implementation_plan.json
|
||||
- Phases: 5
|
||||
- Total subtasks: 13
|
||||
- Created init.sh
|
||||
- Created context.json with investigation notes
|
||||
|
||||
Phase Summary:
|
||||
- Phase 1 (Reproduce & Locate Error): 3 subtasks, no dependencies
|
||||
→ Search error logs and crash traces
|
||||
→ Identify exact file path causing error
|
||||
→ Trace git history for file deletions/moves
|
||||
|
||||
- Phase 2 (Analyze Root Cause): 3 subtasks, depends on Phase 1
|
||||
→ Analyze task runner code to understand file dependency
|
||||
→ Determine crash loop mechanism and retry logic
|
||||
→ Formulate fix strategy based on findings
|
||||
|
||||
- Phase 3 (Implement Fix): 3 subtasks, depends on Phase 2
|
||||
→ Add file existence validation at startup
|
||||
→ Implement crash loop prevention with max retries
|
||||
→ Improve error messages with file paths and suggestions
|
||||
|
||||
- Phase 4 (Testing & Validation): 3 subtasks, depends on Phase 3
|
||||
→ Create unit tests for file validation
|
||||
→ Create integration test for crash loop prevention
|
||||
→ Verify existing tests still pass
|
||||
|
||||
- Phase 5 (Documentation): 2 subtasks, depends on Phase 4
|
||||
→ Document all file dependencies in README
|
||||
→ Update error handling documentation
|
||||
|
||||
Services Involved:
|
||||
- backend: Investigation and implementation of crash loop fix
|
||||
|
||||
Parallelism Analysis:
|
||||
- Max parallel phases: 1
|
||||
- Recommended workers: 1
|
||||
- Parallel groups: None
|
||||
- Reasoning: Investigation workflow requires sequential execution. Phase 2 depends on Phase 1 findings, Phase 3 depends on Phase 2 analysis.
|
||||
|
||||
Key Patterns Identified:
|
||||
- File validation pattern: Check path.exists() before reading files (agent_runner.py:79-81)
|
||||
- Error handling pattern: Use pathlib.Path, return clear error messages with file paths
|
||||
- Example: "if not prompt_path.exists(): return False, f'Prompt not found: {prompt_path}'"
|
||||
|
||||
Reference Files:
|
||||
- apps/backend/spec/pipeline/agent_runner.py (error handling pattern)
|
||||
- apps/backend/core/progress.py (file validation pattern)
|
||||
- apps/backend/services/orchestrator.py (service orchestration)
|
||||
|
||||
Investigation Focus:
|
||||
- Locate task runner/orchestrator implementation code
|
||||
- Find error logs or stack traces showing file not found error
|
||||
- Identify which file is missing and why it's being accessed
|
||||
- Determine if file should exist or if code should handle absence gracefully
|
||||
|
||||
=== STARTUP COMMAND ===
|
||||
|
||||
To continue building this spec, run:
|
||||
|
||||
source auto-claude/.venv/bin/activate && python auto-claude/run.py --spec 020
|
||||
|
||||
This will start the investigation workflow (sequential, 1 worker recommended).
|
||||
|
||||
=== END SESSION 1 ===
|
||||
-40
@@ -1,40 +0,0 @@
|
||||
{
|
||||
"task_description": "Task Appears Stuck: Task Runner Crash Loop (File Not Found)",
|
||||
"scoped_services": ["backend"],
|
||||
"files_to_modify": {
|
||||
"backend": []
|
||||
},
|
||||
"files_to_reference": [
|
||||
"apps/backend/spec/pipeline/agent_runner.py",
|
||||
"apps/backend/core/progress.py",
|
||||
"apps/backend/services/orchestrator.py"
|
||||
],
|
||||
"patterns": {
|
||||
"file_validation_pattern": "Check path.exists() before reading files, return clear error messages",
|
||||
"error_handling_pattern": "Use pathlib.Path, provide actionable error messages with file paths",
|
||||
"retry_pattern": "No infinite retries - fail fast with clear errors"
|
||||
},
|
||||
"existing_implementations": {
|
||||
"description": "Found file validation patterns in agent_runner.py (lines 79-81) and progress.py (lines 41-43)",
|
||||
"relevant_files": [
|
||||
"apps/backend/spec/pipeline/agent_runner.py",
|
||||
"apps/backend/core/progress.py"
|
||||
],
|
||||
"key_pattern_location": "agent_runner.py:79-81 shows: if not prompt_path.exists(): return False, f\"Prompt not found: {prompt_path}\""
|
||||
},
|
||||
"investigation_notes": {
|
||||
"workflow_type": "investigation",
|
||||
"primary_objective": "Identify the missing file causing crash loop through log analysis and code inspection",
|
||||
"key_questions": [
|
||||
"What is the exact file path that cannot be found?",
|
||||
"Is this affecting spec creation, task execution, or service startup?",
|
||||
"Did recent changes move or delete this file?"
|
||||
],
|
||||
"likely_locations": [
|
||||
"apps/backend - Task runner/orchestrator code",
|
||||
".auto-claude/specs - Spec-related files",
|
||||
"Logs directory - Error traces"
|
||||
]
|
||||
},
|
||||
"created_at": "2025-12-26T07:15:00.000000"
|
||||
}
|
||||
-367
@@ -1,367 +0,0 @@
|
||||
{
|
||||
"feature": "Fix Task Runner Crash Loop - File Not Found Error",
|
||||
"workflow_type": "investigation",
|
||||
"workflow_rationale": "This is an investigation workflow because the root cause (specific missing file) is unknown. Must first reproduce and identify the issue before implementing a fix. Investigation phase output will determine fix phase scope.",
|
||||
"phases": [
|
||||
{
|
||||
"id": "phase-1-reproduce",
|
||||
"name": "Reproduce & Locate Error",
|
||||
"type": "investigation",
|
||||
"description": "Reproduce the crash loop and identify the specific missing file through log analysis and code inspection",
|
||||
"depends_on": [],
|
||||
"parallel_safe": true,
|
||||
"subtasks": [
|
||||
{
|
||||
"id": "subtask-1-1",
|
||||
"description": "Search for recent error logs and crash traces",
|
||||
"service": "backend",
|
||||
"files_to_modify": [],
|
||||
"files_to_create": ["INVESTIGATION.md"],
|
||||
"patterns_from": [],
|
||||
"verification": {
|
||||
"type": "manual",
|
||||
"instructions": "Document findings in INVESTIGATION.md: (1) Error logs found, (2) Stack traces captured, (3) Timestamps of crashes"
|
||||
},
|
||||
"status": "pending",
|
||||
"expected_output": "List of log files with file-not-found errors, including timestamps and context"
|
||||
},
|
||||
{
|
||||
"id": "subtask-1-2",
|
||||
"description": "Identify the exact file path causing the error",
|
||||
"service": "backend",
|
||||
"files_to_modify": [],
|
||||
"files_to_create": [],
|
||||
"patterns_from": [],
|
||||
"verification": {
|
||||
"type": "manual",
|
||||
"instructions": "Update INVESTIGATION.md with: (1) Exact file path, (2) Where it's being accessed, (3) Expected vs actual location"
|
||||
},
|
||||
"status": "pending",
|
||||
"expected_output": "Documented file path, code location accessing it, and why access is failing"
|
||||
},
|
||||
{
|
||||
"id": "subtask-1-3",
|
||||
"description": "Trace git history to check if file was moved or deleted",
|
||||
"service": "backend",
|
||||
"files_to_modify": [],
|
||||
"files_to_create": [],
|
||||
"patterns_from": [],
|
||||
"verification": {
|
||||
"type": "command",
|
||||
"command": "git log --diff-filter=D --summary --all -- [MISSING_FILE_PATH] | head -20",
|
||||
"expected": "Shows git history of file deletions/moves"
|
||||
},
|
||||
"status": "pending",
|
||||
"expected_output": "Git history showing if/when file was deleted or moved"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "phase-2-root-cause",
|
||||
"name": "Analyze Root Cause",
|
||||
"type": "investigation",
|
||||
"description": "Determine why the file is missing and whether it should exist or code should handle absence gracefully",
|
||||
"depends_on": ["phase-1-reproduce"],
|
||||
"parallel_safe": false,
|
||||
"subtasks": [
|
||||
{
|
||||
"id": "subtask-2-1",
|
||||
"description": "Analyze task runner code to understand file dependency",
|
||||
"service": "backend",
|
||||
"files_to_modify": [],
|
||||
"files_to_create": [],
|
||||
"patterns_from": [
|
||||
"apps/backend/spec/pipeline/agent_runner.py",
|
||||
"apps/backend/core/progress.py"
|
||||
],
|
||||
"verification": {
|
||||
"type": "manual",
|
||||
"instructions": "Update INVESTIGATION.md with: (1) Why file is accessed, (2) Is it required or optional, (3) Current error handling (if any)"
|
||||
},
|
||||
"status": "pending",
|
||||
"expected_output": "Root cause analysis: file purpose, whether it's required, and current handling"
|
||||
},
|
||||
{
|
||||
"id": "subtask-2-2",
|
||||
"description": "Determine crash loop mechanism and retry logic",
|
||||
"service": "backend",
|
||||
"files_to_modify": [],
|
||||
"files_to_create": [],
|
||||
"patterns_from": ["apps/backend/services/orchestrator.py"],
|
||||
"verification": {
|
||||
"type": "manual",
|
||||
"instructions": "Document in INVESTIGATION.md: (1) How retry occurs, (2) Why it loops infinitely, (3) Where to add circuit breaker"
|
||||
},
|
||||
"status": "pending",
|
||||
"expected_output": "Understanding of retry mechanism and why it causes crash loop instead of failing gracefully"
|
||||
},
|
||||
{
|
||||
"id": "subtask-2-3",
|
||||
"description": "Formulate fix strategy based on findings",
|
||||
"service": "backend",
|
||||
"files_to_modify": [],
|
||||
"files_to_create": [],
|
||||
"patterns_from": [],
|
||||
"verification": {
|
||||
"type": "manual",
|
||||
"instructions": "Complete INVESTIGATION.md with: (1) Root cause summary, (2) Proposed fix, (3) Files to modify, (4) Testing plan"
|
||||
},
|
||||
"status": "pending",
|
||||
"expected_output": "Complete investigation report with actionable fix strategy"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "phase-3-implement-fix",
|
||||
"name": "Implement Fix",
|
||||
"type": "implementation",
|
||||
"description": "Implement the fix based on investigation findings - add file validation and prevent crash loop",
|
||||
"depends_on": ["phase-2-root-cause"],
|
||||
"parallel_safe": false,
|
||||
"subtasks": [
|
||||
{
|
||||
"id": "subtask-3-1",
|
||||
"description": "Add file existence validation at startup/initialization",
|
||||
"service": "backend",
|
||||
"files_to_modify": ["TBD - determined by investigation"],
|
||||
"files_to_create": [],
|
||||
"patterns_from": [
|
||||
"apps/backend/spec/pipeline/agent_runner.py"
|
||||
],
|
||||
"verification": {
|
||||
"type": "command",
|
||||
"command": "python -m pytest apps/backend/tests/test_file_validation.py -v",
|
||||
"expected": "File validation tests pass"
|
||||
},
|
||||
"status": "pending",
|
||||
"notes": "Use pattern from agent_runner.py:79-81: if not path.exists(): return False, f'File not found: {path}'"
|
||||
},
|
||||
{
|
||||
"id": "subtask-3-2",
|
||||
"description": "Implement crash loop prevention with max retries",
|
||||
"service": "backend",
|
||||
"files_to_modify": ["TBD - determined by investigation"],
|
||||
"files_to_create": [],
|
||||
"patterns_from": [],
|
||||
"verification": {
|
||||
"type": "manual",
|
||||
"instructions": "Test that missing file causes graceful failure after max 3 retries, no infinite loop"
|
||||
},
|
||||
"status": "pending",
|
||||
"notes": "Add exponential backoff: base_delay=1.0s, max_delay=10.0s, max_retries=3"
|
||||
},
|
||||
{
|
||||
"id": "subtask-3-3",
|
||||
"description": "Improve error messages with file paths and suggestions",
|
||||
"service": "backend",
|
||||
"files_to_modify": ["TBD - determined by investigation"],
|
||||
"files_to_create": [],
|
||||
"patterns_from": [
|
||||
"apps/backend/spec/pipeline/agent_runner.py"
|
||||
],
|
||||
"verification": {
|
||||
"type": "manual",
|
||||
"instructions": "Verify error message includes: file path, current directory, suggested fix"
|
||||
},
|
||||
"status": "pending",
|
||||
"notes": "Error format: 'Required file not found: {path}\\nCurrent directory: {cwd}\\nPlease ensure file exists or check configuration'"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "phase-4-test",
|
||||
"name": "Testing & Validation",
|
||||
"type": "implementation",
|
||||
"description": "Add comprehensive tests for file validation and crash loop prevention",
|
||||
"depends_on": ["phase-3-implement-fix"],
|
||||
"parallel_safe": false,
|
||||
"subtasks": [
|
||||
{
|
||||
"id": "subtask-4-1",
|
||||
"description": "Create unit tests for file validation",
|
||||
"service": "backend",
|
||||
"files_to_modify": [],
|
||||
"files_to_create": ["apps/backend/tests/test_file_validation.py"],
|
||||
"patterns_from": ["tests/test_merge_orchestrator.py"],
|
||||
"verification": {
|
||||
"type": "command",
|
||||
"command": "python -m pytest apps/backend/tests/test_file_validation.py -v",
|
||||
"expected": "All tests pass"
|
||||
},
|
||||
"status": "pending",
|
||||
"notes": "Test cases: missing required file, missing optional file, file permissions, path variations"
|
||||
},
|
||||
{
|
||||
"id": "subtask-4-2",
|
||||
"description": "Create integration test for crash loop prevention",
|
||||
"service": "backend",
|
||||
"files_to_modify": [],
|
||||
"files_to_create": ["apps/backend/tests/test_crash_loop_prevention.py"],
|
||||
"patterns_from": ["tests/test_service_orchestrator.py"],
|
||||
"verification": {
|
||||
"type": "command",
|
||||
"command": "python -m pytest apps/backend/tests/test_crash_loop_prevention.py -v",
|
||||
"expected": "Crash loop prevention tests pass"
|
||||
},
|
||||
"status": "pending",
|
||||
"notes": "Test: remove file, trigger task, verify max 3 retries, verify graceful failure"
|
||||
},
|
||||
{
|
||||
"id": "subtask-4-3",
|
||||
"description": "Verify existing tests still pass",
|
||||
"service": "backend",
|
||||
"files_to_modify": [],
|
||||
"files_to_create": [],
|
||||
"patterns_from": [],
|
||||
"verification": {
|
||||
"type": "command",
|
||||
"command": "python -m pytest apps/backend/tests/ -v --ignore=apps/backend/tests/test_file_validation.py --ignore=apps/backend/tests/test_crash_loop_prevention.py",
|
||||
"expected": "All existing tests pass"
|
||||
},
|
||||
"status": "pending",
|
||||
"notes": "Ensure changes don't break existing functionality"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "phase-5-documentation",
|
||||
"name": "Documentation",
|
||||
"type": "cleanup",
|
||||
"description": "Document file dependencies and error handling improvements",
|
||||
"depends_on": ["phase-4-test"],
|
||||
"parallel_safe": true,
|
||||
"subtasks": [
|
||||
{
|
||||
"id": "subtask-5-1",
|
||||
"description": "Document all file dependencies in README",
|
||||
"service": "backend",
|
||||
"files_to_modify": ["apps/backend/README.md"],
|
||||
"files_to_create": [],
|
||||
"patterns_from": [],
|
||||
"verification": {
|
||||
"type": "manual",
|
||||
"instructions": "README lists all required and optional files with their purposes"
|
||||
},
|
||||
"status": "pending",
|
||||
"notes": "Include file paths, when they're accessed, and what happens if missing"
|
||||
},
|
||||
{
|
||||
"id": "subtask-5-2",
|
||||
"description": "Update error handling documentation",
|
||||
"service": "backend",
|
||||
"files_to_modify": ["INVESTIGATION.md"],
|
||||
"files_to_create": [],
|
||||
"patterns_from": [],
|
||||
"verification": {
|
||||
"type": "manual",
|
||||
"instructions": "INVESTIGATION.md includes fix summary and lessons learned"
|
||||
},
|
||||
"status": "pending",
|
||||
"notes": "Document root cause, fix implemented, and how to prevent similar issues"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"total_phases": 5,
|
||||
"total_subtasks": 13,
|
||||
"services_involved": ["backend"],
|
||||
"parallelism": {
|
||||
"max_parallel_phases": 1,
|
||||
"parallel_groups": [],
|
||||
"recommended_workers": 1,
|
||||
"speedup_estimate": "Investigation workflow requires sequential execution",
|
||||
"reasoning": "Phase 2 depends on Phase 1 findings, Phase 3 depends on Phase 2 analysis. Cannot parallelize investigation workflow."
|
||||
},
|
||||
"startup_command": "source auto-claude/.venv/bin/activate && python auto-claude/run.py --spec 020"
|
||||
},
|
||||
"verification_strategy": {
|
||||
"risk_level": "high",
|
||||
"skip_validation": false,
|
||||
"test_creation_phase": "post_implementation",
|
||||
"test_types_required": ["unit", "integration"],
|
||||
"security_scanning_required": false,
|
||||
"staging_deployment_required": false,
|
||||
"acceptance_criteria": [
|
||||
"Missing file identified through investigation",
|
||||
"Crash loop no longer occurs",
|
||||
"Clear error messages display file paths and suggestions",
|
||||
"File validation added at startup",
|
||||
"All existing tests pass",
|
||||
"New tests cover file validation and crash loop scenarios"
|
||||
],
|
||||
"verification_steps": [
|
||||
{
|
||||
"name": "Unit Tests",
|
||||
"command": "python -m pytest apps/backend/tests/test_file_validation.py -v",
|
||||
"expected_outcome": "All file validation tests pass",
|
||||
"type": "test",
|
||||
"required": true,
|
||||
"blocking": true
|
||||
},
|
||||
{
|
||||
"name": "Integration Tests",
|
||||
"command": "python -m pytest apps/backend/tests/test_crash_loop_prevention.py -v",
|
||||
"expected_outcome": "Crash loop prevention verified",
|
||||
"type": "test",
|
||||
"required": true,
|
||||
"blocking": true
|
||||
},
|
||||
{
|
||||
"name": "Regression Tests",
|
||||
"command": "python -m pytest apps/backend/tests/ -v",
|
||||
"expected_outcome": "All existing tests still pass",
|
||||
"type": "test",
|
||||
"required": true,
|
||||
"blocking": true
|
||||
}
|
||||
],
|
||||
"reasoning": "High-risk blocking issue requires thorough testing. Investigation must complete before fix can be implemented."
|
||||
},
|
||||
"qa_acceptance": {
|
||||
"unit_tests": {
|
||||
"required": true,
|
||||
"commands": ["python -m pytest apps/backend/tests/test_file_validation.py -v"],
|
||||
"minimum_coverage": null
|
||||
},
|
||||
"integration_tests": {
|
||||
"required": true,
|
||||
"commands": ["python -m pytest apps/backend/tests/test_crash_loop_prevention.py -v"],
|
||||
"services_to_test": ["backend"]
|
||||
},
|
||||
"e2e_tests": {
|
||||
"required": false,
|
||||
"commands": [],
|
||||
"flows": []
|
||||
},
|
||||
"browser_verification": {
|
||||
"required": false,
|
||||
"pages": []
|
||||
},
|
||||
"database_verification": {
|
||||
"required": false,
|
||||
"checks": []
|
||||
},
|
||||
"manual_checks": {
|
||||
"required": true,
|
||||
"checks": [
|
||||
{
|
||||
"name": "Verify crash loop eliminated",
|
||||
"description": "Remove suspected file, trigger task, verify graceful failure without infinite retry",
|
||||
"expected": "Task fails with clear error message after max 3 retries"
|
||||
},
|
||||
{
|
||||
"name": "Verify error message quality",
|
||||
"description": "Check error message includes file path, current directory, and suggested fix",
|
||||
"expected": "Error message is actionable and guides user to resolution"
|
||||
},
|
||||
{
|
||||
"name": "Verify investigation findings",
|
||||
"description": "Review INVESTIGATION.md for completeness",
|
||||
"expected": "Document includes root cause, evidence, proposed fix, and testing plan"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"qa_signoff": null
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Auto-Build Environment Setup
|
||||
# Generated by Planner Agent
|
||||
|
||||
set -e
|
||||
|
||||
echo "========================================"
|
||||
echo "Starting Development Environment"
|
||||
echo "========================================"
|
||||
|
||||
# Colors
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
# Wait for service function
|
||||
wait_for_service() {
|
||||
local port=$1
|
||||
local name=$2
|
||||
local max=30
|
||||
local count=0
|
||||
|
||||
echo "Waiting for $name on port $port..."
|
||||
while ! nc -z localhost $port 2>/dev/null; do
|
||||
count=$((count + 1))
|
||||
if [ $count -ge $max ]; then
|
||||
echo -e "${RED}$name failed to start${NC}"
|
||||
return 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
echo -e "${GREEN}$name ready${NC}"
|
||||
}
|
||||
|
||||
# ============================================
|
||||
# INVESTIGATION WORKFLOW
|
||||
# ============================================
|
||||
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "Investigation Workflow"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
echo "This is an INVESTIGATION workflow."
|
||||
echo "No services need to be started for investigation phase."
|
||||
echo ""
|
||||
echo "Phase 1: Reproduce & Locate Error"
|
||||
echo " - Search logs and crash traces"
|
||||
echo " - Identify missing file path"
|
||||
echo " - Check git history"
|
||||
echo ""
|
||||
echo "Phase 2: Analyze Root Cause"
|
||||
echo " - Analyze task runner code"
|
||||
echo " - Understand crash loop mechanism"
|
||||
echo " - Formulate fix strategy"
|
||||
echo ""
|
||||
echo "Phase 3: Implement Fix (blocked until investigation complete)"
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "Environment Ready for Investigation"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
echo "Backend Path: apps/backend"
|
||||
echo "Project Root: ."
|
||||
echo ""
|
||||
echo "Key Investigation Files:"
|
||||
echo " - Error logs in: logs/"
|
||||
echo " - Task logs in: .auto-claude/specs/"
|
||||
echo " - Backend code in: apps/backend/"
|
||||
echo ""
|
||||
echo "To start investigation:"
|
||||
echo " python apps/backend/run.py --spec 020"
|
||||
echo ""
|
||||
@@ -681,13 +681,8 @@ Next phase (if applicable): [phase-name]
|
||||
=== END SESSION N ===
|
||||
```
|
||||
|
||||
**Commit progress:**
|
||||
|
||||
```bash
|
||||
git add build-progress.txt
|
||||
git commit -m "auto-claude: Update progress"
|
||||
# Do NOT push - user will push after review
|
||||
```
|
||||
**Note:** The `build-progress.txt` file is in `.auto-claude/specs/` which is gitignored.
|
||||
Do NOT try to commit it - the framework tracks progress automatically.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -737,26 +737,18 @@ chmod +x init.sh
|
||||
|
||||
---
|
||||
|
||||
## PHASE 6: COMMIT IMPLEMENTATION PLAN
|
||||
## PHASE 6: VERIFY PLAN FILES
|
||||
|
||||
**IMPORTANT: Branch/worktree management is handled by the Python orchestrator.**
|
||||
Do NOT run `git checkout` or `git branch` commands - your workspace is already set up.
|
||||
**IMPORTANT: Do NOT commit spec/plan files to git.**
|
||||
|
||||
**Commit the implementation plan (if changes are present):**
|
||||
```bash
|
||||
# Add plan files
|
||||
git add implementation_plan.json init.sh
|
||||
The following files are gitignored and should NOT be committed:
|
||||
- `implementation_plan.json` - tracked locally only
|
||||
- `init.sh` - tracked locally only
|
||||
- `build-progress.txt` - tracked locally only
|
||||
|
||||
# Check if there's anything to commit
|
||||
git diff --cached --quiet || git commit -m "auto-claude: Initialize subtask-based implementation plan
|
||||
These files live in `.auto-claude/specs/` which is gitignored. The orchestrator handles syncing them between worktrees and the main project.
|
||||
|
||||
- Workflow type: [type]
|
||||
- Phases: [N]
|
||||
- Subtasks: [N]
|
||||
- Ready for autonomous implementation"
|
||||
```
|
||||
|
||||
Note: If the commit fails (e.g., nothing to commit, or in a special workspace), that's okay - the plan is still saved.
|
||||
**Only code changes should be committed** - spec metadata stays local.
|
||||
|
||||
---
|
||||
|
||||
@@ -808,12 +800,7 @@ Example:
|
||||
=== END SESSION 1 ===
|
||||
```
|
||||
|
||||
**Commit progress:**
|
||||
|
||||
```bash
|
||||
git add build-progress.txt
|
||||
git commit -m "auto-claude: Add progress tracking"
|
||||
```
|
||||
**Note:** Do NOT commit `build-progress.txt` - it is gitignored along with other spec files.
|
||||
|
||||
---
|
||||
|
||||
@@ -826,7 +813,8 @@ Your session ends after:
|
||||
2. **Creating/updating context files** - project_index.json, context.json
|
||||
3. **Creating init.sh** - the setup script
|
||||
4. **Creating build-progress.txt** - progress tracking document
|
||||
5. **Committing all planning files**
|
||||
|
||||
Note: These files are NOT committed to git - they are gitignored and managed locally.
|
||||
|
||||
**STOP HERE. Do NOT:**
|
||||
- Start implementing any subtasks
|
||||
|
||||
@@ -427,17 +427,9 @@ cat > qa_report.md << 'EOF'
|
||||
[QA Report content]
|
||||
EOF
|
||||
|
||||
git add qa_report.md implementation_plan.json
|
||||
git commit -m "qa: Sign off - all verification passed
|
||||
|
||||
- Unit tests: X/Y passing
|
||||
- Integration tests: X/Y passing
|
||||
- E2E tests: X/Y passing
|
||||
- Browser verification: complete
|
||||
- Security review: passed
|
||||
- No regressions found
|
||||
|
||||
🤖 QA Agent Session [N]"
|
||||
# Note: qa_report.md and implementation_plan.json are in .auto-claude/specs/ (gitignored)
|
||||
# Do NOT commit them - the framework tracks QA status automatically
|
||||
# Only commit actual code changes to the project
|
||||
```
|
||||
|
||||
### If REJECTED:
|
||||
@@ -472,16 +464,9 @@ Once fixes are complete:
|
||||
|
||||
EOF
|
||||
|
||||
git add QA_FIX_REQUEST.md implementation_plan.json
|
||||
git commit -m "qa: Rejected - fixes required
|
||||
|
||||
Issues found:
|
||||
- [Issue 1]
|
||||
- [Issue 2]
|
||||
|
||||
See QA_FIX_REQUEST.md for details.
|
||||
|
||||
🤖 QA Agent Session [N]"
|
||||
# Note: QA_FIX_REQUEST.md and implementation_plan.json are in .auto-claude/specs/ (gitignored)
|
||||
# Do NOT commit them - the framework tracks QA status automatically
|
||||
# Only commit actual code fixes to the project
|
||||
```
|
||||
|
||||
Update `implementation_plan.json`:
|
||||
|
||||
Reference in New Issue
Block a user