diff --git a/.gitignore b/.gitignore index e63cea4a..dcc5205c 100644 --- a/.gitignore +++ b/.gitignore @@ -109,6 +109,13 @@ temp/ test_venv/ .claude-plugin/ +# Pytest temp artifacts (macOS/Linux temp directories) +# Prevents accidentally committing test artifacts with personal paths +/private/ +\\private/ +**/pytest-of-*/ +**/pytest-*/ + # Session logs (all of them) docs/sessions/ diff --git a/.mcp/README.md b/.mcp/README.md index 914cfa64..04843d1e 100644 --- a/.mcp/README.md +++ b/.mcp/README.md @@ -143,11 +143,11 @@ Defines which MCP servers to run and their configuration: "mcpServers": { "filesystem": { "command": "npx", - "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/akaszubski/Documents/GitHub/autonomous-dev"] + "args": ["-y", "@modelcontextprotocol/server-filesystem", "${CLAUDE_PROJECT_DIR}"] }, "git": { "command": "npx", - "args": ["-y", "@modelcontextprotocol/server-git", "--repository", "/Users/akaszubski/Documents/GitHub/autonomous-dev"] + "args": ["-y", "@modelcontextprotocol/server-git", "--repository", "${CLAUDE_PROJECT_DIR}"] }, "github": { "command": "docker", @@ -308,7 +308,7 @@ Defines permission rules for all MCP operations. **Configuration**: ```bash # Repository root (from config.json) -"--repository /Users/akaszubski/Documents/GitHub/autonomous-dev" +"--repository ${CLAUDE_PROJECT_DIR}" ``` ### GitHub Server diff --git a/.mcp/config.json b/.mcp/config.json index 9698724e..086d6a0d 100644 --- a/.mcp/config.json +++ b/.mcp/config.json @@ -5,7 +5,7 @@ "args": [ "-y", "@modelcontextprotocol/server-filesystem", - "/Users/akaszubski/Documents/GitHub/autonomous-dev" + "${CLAUDE_PROJECT_DIR}" ] }, "git": { @@ -14,7 +14,7 @@ "-y", "@modelcontextprotocol/server-git", "--repository", - "/Users/akaszubski/Documents/GitHub/autonomous-dev" + "${CLAUDE_PROJECT_DIR}" ] }, "github": { diff --git "a/\\private\\var\\folders\\d5\\9whxtlz937l8xzx9p7bqm9vr0000gn\\T\\pytest-of-andrewkaszubski\\pytest-89\\test_save_load_roundtrip_with_0\\.claude\\batch_state.json" "b/\\private\\var\\folders\\d5\\9whxtlz937l8xzx9p7bqm9vr0000gn\\T\\pytest-of-andrewkaszubski\\pytest-89\\test_save_load_roundtrip_with_0\\.claude\\batch_state.json" deleted file mode 100644 index 19ecf769..00000000 --- "a/\\private\\var\\folders\\d5\\9whxtlz937l8xzx9p7bqm9vr0000gn\\T\\pytest-of-andrewkaszubski\\pytest-89\\test_save_load_roundtrip_with_0\\.claude\\batch_state.json" +++ /dev/null @@ -1,29 +0,0 @@ -{ - "batch_id": "batch-20251225-052414-630025", - "features_file": "", - "total_features": 1, - "features": [ - "test feature" - ], - "current_index": 0, - "completed_features": [], - "failed_features": [], - "context_token_estimate": 0, - "auto_clear_count": 0, - "auto_clear_events": [], - "created_at": "2025-12-25T05:24:14.630030Z", - "updated_at": "2025-12-25T05:24:14.630173Z", - "status": "in_progress", - "issue_numbers": null, - "source_type": "file", - "state_file": "", - "context_tokens_before_clear": null, - "paused_at_feature_index": null, - "retry_attempts": {}, - "git_operations": {}, - "feature_order": [], - "feature_dependencies": {}, - "analysis_metadata": {}, - "workflow_mode": "auto-implement", - "workflow_reminder": "Use /auto-implement for each feature. Do NOT implement directly." -} \ No newline at end of file diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index 80872355..ea6e256c 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -10,7 +10,7 @@ ```bash # 1. Check you're in the repo -pwd # Should show: /Users/akaszubski/Documents/GitHub/autonomous-dev +pwd # Should show: ${PROJECT_ROOT} # 2. After ANY file changes, resync ./scripts/resync-dogfood.sh # Copies plugins/* → .claude/* (no restart needed!) @@ -129,7 +129,7 @@ rm -f ~/.claude/plugins/known_marketplaces.json # 1. Restart Claude Code # 2. In your autonomous-dev repo: -cd /Users/akaszubski/Documents/GitHub/autonomous-dev +cd ${PROJECT_ROOT} # 3. Run bootstrap (copies plugin files to project) bash install.sh @@ -1054,7 +1054,7 @@ gh issue list --label "validate-need" I'm working on autonomous-dev plugin development (dogfooding mode). Context: -- Repo: /Users/akaszubski/Documents/GitHub/autonomous-dev +- Repo: ${PROJECT_ROOT} - Role: Plugin developer (not user) - Setup: Read docs/DEVELOPMENT.md for full context diff --git a/docs/MCP-ARCHITECTURE.md b/docs/MCP-ARCHITECTURE.md index cf853a8d..241a861f 100644 --- a/docs/MCP-ARCHITECTURE.md +++ b/docs/MCP-ARCHITECTURE.md @@ -343,11 +343,11 @@ def validate_web_request(url: str, policy: Policy) -> ValidationResult: "mcpServers": { "filesystem": { "command": "npx", - "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/akaszubski/Documents/GitHub/autonomous-dev"] + "args": ["-y", "@modelcontextprotocol/server-filesystem", "${PROJECT_ROOT}"] }, "git": { "command": "npx", - "args": ["-y", "@modelcontextprotocol/server-git", "--repository", "/Users/akaszubski/Documents/GitHub/autonomous-dev"] + "args": ["-y", "@modelcontextprotocol/server-git", "--repository", "${PROJECT_ROOT}"] }, "github": { "command": "docker", @@ -426,7 +426,7 @@ def validate_web_request(url: str, policy: Policy) -> ValidationResult: "args": [ "-y", "@modelcontextprotocol/server-filesystem", - "/Users/akaszubski/Documents/GitHub/autonomous-dev" + "${PROJECT_ROOT}" ] }, "git": { @@ -435,7 +435,7 @@ def validate_web_request(url: str, policy: Policy) -> ValidationResult: "-y", "@modelcontextprotocol/server-git", "--repository", - "/Users/akaszubski/Documents/GitHub/autonomous-dev" + "${PROJECT_ROOT}" ] }, "github": { diff --git a/docs/MCP-SECURITY.md b/docs/MCP-SECURITY.md index 9297faca..49349774 100644 --- a/docs/MCP-SECURITY.md +++ b/docs/MCP-SECURITY.md @@ -112,7 +112,7 @@ The system now integrates with official MCP servers for each capability: "args": [ "-y", "@modelcontextprotocol/server-filesystem", - "/Users/akaszubski/Documents/GitHub/autonomous-dev" + "${PROJECT_ROOT}" ] }, "git": { @@ -121,7 +121,7 @@ The system now integrates with official MCP servers for each capability: "-y", "@modelcontextprotocol/server-git", "--repository", - "/Users/akaszubski/Documents/GitHub/autonomous-dev" + "${PROJECT_ROOT}" ] }, "github": { diff --git a/docs/MIGRATION_GUIDE.md b/docs/MIGRATION_GUIDE.md index d0ad8cda..a6561763 100644 --- a/docs/MIGRATION_GUIDE.md +++ b/docs/MIGRATION_GUIDE.md @@ -145,7 +145,7 @@ diff -r .claude.backup.$(date +%Y%m%d) .claude The realign project already has bootstrap files from our earlier testing: ```bash -cd /Users/akaszubski/Documents/GitHub/realign +cd /path/to/your/realign-project # Check current state ls .claude/commands/ diff --git a/docs/SECURITY_AUDIT_INDEX.md b/docs/SECURITY_AUDIT_INDEX.md index 3678a229..9d93f056 100644 --- a/docs/SECURITY_AUDIT_INDEX.md +++ b/docs/SECURITY_AUDIT_INDEX.md @@ -9,7 +9,7 @@ ## Quick Links to Audit Documents ### 1. Executive Summary (Start here) -**File**: `/Users/akaszubski/Documents/GitHub/autonomous-dev/SECURITY_AUDIT_COMPREHENSIVE.md` +**File**: `${PROJECT_ROOT}/SECURITY_AUDIT_COMPREHENSIVE.md` **Length**: 251 lines **Contains**: - Overview of vulnerabilities @@ -23,7 +23,7 @@ --- ### 2. Detailed Vulnerability Report -**File**: `/Users/akaszubski/Documents/GitHub/autonomous-dev/SECURITY_AUDIT_ISSUE72.md` +**File**: `${PROJECT_ROOT}/SECURITY_AUDIT_ISSUE72.md` **Length**: 321 lines **Contains**: - Complete vulnerability details @@ -38,7 +38,7 @@ --- ### 3. Session Log -**File**: `/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/sessions/20251112-security-audit-issue72.md` +**File**: `${PROJECT_ROOT}/docs/sessions/20251112-security-audit-issue72.md` **Length**: ~100 lines **Contains**: - Audit summary diff --git a/docs/TESTS_INDEX.md b/docs/TESTS_INDEX.md index f0d68d2e..0ee81fd1 100644 --- a/docs/TESTS_INDEX.md +++ b/docs/TESTS_INDEX.md @@ -3,11 +3,11 @@ ## Quick Navigation ### Executive Summaries -- **[TDD_RED_PHASE_SUMMARY.md](/Users/akaszubski/Documents/GitHub/autonomous-dev/TDD_RED_PHASE_SUMMARY.md)** - High-level overview of all 96 tests, success criteria, and implementation roadmap -- **[tests/PHASE_8_PERFORMANCE_TESTS_SUMMARY.md](/Users/akaszubski/Documents/GitHub/autonomous-dev/tests/PHASE_8_PERFORMANCE_TESTS_SUMMARY.md)** - Comprehensive technical reference for all phases +- **[TDD_RED_PHASE_SUMMARY.md](${PROJECT_ROOT}/TDD_RED_PHASE_SUMMARY.md)** - High-level overview of all 96 tests, success criteria, and implementation roadmap +- **[tests/PHASE_8_PERFORMANCE_TESTS_SUMMARY.md](${PROJECT_ROOT}/tests/PHASE_8_PERFORMANCE_TESTS_SUMMARY.md)** - Comprehensive technical reference for all phases ### Test Directories -- **[tests/unit/performance/](/Users/akaszubski/Documents/GitHub/autonomous-dev/tests/unit/performance/)** - All 4 test modules +- **[tests/unit/performance/](${PROJECT_ROOT}/tests/unit/performance/)** - All 4 test modules - [test_phase8_5_profiler_integration.py](#phase-85-profiler-integration) (27 tests) - [test_phase9_model_downgrade.py](#phase-9-model-downgrade) (19 tests) - [test_phase10_prompt_streamlining.py](#phase-10-prompt-streamlining) (22 tests) @@ -19,7 +19,7 @@ ## Test Files Overview ### Phase 8.5: Profiler Integration -**File**: `/Users/akaszubski/Documents/GitHub/autonomous-dev/tests/unit/performance/test_phase8_5_profiler_integration.py` +**File**: `${PROJECT_ROOT}/tests/unit/performance/test_phase8_5_profiler_integration.py` **Size**: 662 lines, 25 KB | **Tests**: 27 | **Classes**: 6 @@ -62,7 +62,7 @@ --- ### Phase 9: Model Downgrade -**File**: `/Users/akaszubski/Documents/GitHub/autonomous-dev/tests/unit/performance/test_phase9_model_downgrade.py` +**File**: `${PROJECT_ROOT}/tests/unit/performance/test_phase9_model_downgrade.py` **Size**: 607 lines, 22 KB | **Tests**: 19 | **Classes**: 4 @@ -103,7 +103,7 @@ --- ### Phase 10: Prompt Streamlining -**File**: `/Users/akaszubski/Documents/GitHub/autonomous-dev/tests/unit/performance/test_phase10_prompt_streamlining.py` +**File**: `${PROJECT_ROOT}/tests/unit/performance/test_phase10_prompt_streamlining.py` **Size**: 470 lines, 18 KB | **Tests**: 22 | **Classes**: 6 @@ -153,7 +153,7 @@ --- ### Phase 11: Partial Parallelization -**File**: `/Users/akaszubski/Documents/GitHub/autonomous-dev/tests/unit/performance/test_phase11_partial_parallelization.py` +**File**: `${PROJECT_ROOT}/tests/unit/performance/test_phase11_partial_parallelization.py` **Size**: 555 lines, 21 KB | **Tests**: 28 | **Classes**: 7 @@ -241,7 +241,7 @@ ### All Tests ```bash -cd /Users/akaszubski/Documents/GitHub/autonomous-dev +cd ${PROJECT_ROOT} source .venv/bin/activate python -m pytest tests/unit/performance/ -v ``` @@ -382,20 +382,20 @@ python -m pytest tests/unit/performance/ --cov=plugins.autonomous_dev --cov-repo ## Quick Links ### Test Files -- [test_phase8_5_profiler_integration.py](/Users/akaszubski/Documents/GitHub/autonomous-dev/tests/unit/performance/test_phase8_5_profiler_integration.py) -- [test_phase9_model_downgrade.py](/Users/akaszubski/Documents/GitHub/autonomous-dev/tests/unit/performance/test_phase9_model_downgrade.py) -- [test_phase10_prompt_streamlining.py](/Users/akaszubski/Documents/GitHub/autonomous-dev/tests/unit/performance/test_phase10_prompt_streamlining.py) -- [test_phase11_partial_parallelization.py](/Users/akaszubski/Documents/GitHub/autonomous-dev/tests/unit/performance/test_phase11_partial_parallelization.py) +- [test_phase8_5_profiler_integration.py](${PROJECT_ROOT}/tests/unit/performance/test_phase8_5_profiler_integration.py) +- [test_phase9_model_downgrade.py](${PROJECT_ROOT}/tests/unit/performance/test_phase9_model_downgrade.py) +- [test_phase10_prompt_streamlining.py](${PROJECT_ROOT}/tests/unit/performance/test_phase10_prompt_streamlining.py) +- [test_phase11_partial_parallelization.py](${PROJECT_ROOT}/tests/unit/performance/test_phase11_partial_parallelization.py) ### Documentation -- [TDD_RED_PHASE_SUMMARY.md](/Users/akaszubski/Documents/GitHub/autonomous-dev/TDD_RED_PHASE_SUMMARY.md) -- [tests/PHASE_8_PERFORMANCE_TESTS_SUMMARY.md](/Users/akaszubski/Documents/GitHub/autonomous-dev/tests/PHASE_8_PERFORMANCE_TESTS_SUMMARY.md) -- [tests/unit/performance/README.md](/Users/akaszubski/Documents/GitHub/autonomous-dev/tests/unit/performance/README.md) +- [TDD_RED_PHASE_SUMMARY.md](${PROJECT_ROOT}/TDD_RED_PHASE_SUMMARY.md) +- [tests/PHASE_8_PERFORMANCE_TESTS_SUMMARY.md](${PROJECT_ROOT}/tests/PHASE_8_PERFORMANCE_TESTS_SUMMARY.md) +- [tests/unit/performance/README.md](${PROJECT_ROOT}/tests/unit/performance/README.md) ### Implementation Reference -- [CLAUDE.md](/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md) - Project standards -- [PROJECT.md](/Users/akaszubski/Documents/GitHub/autonomous-dev/PROJECT.md) - Project goals -- [plugins/autonomous-dev/agents/](/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/) - Agent implementations +- [CLAUDE.md](${PROJECT_ROOT}/CLAUDE.md) - Project standards +- [PROJECT.md](${PROJECT_ROOT}/PROJECT.md) - Project goals +- [plugins/autonomous-dev/agents/](${PROJECT_ROOT}/plugins/autonomous-dev/agents/) - Agent implementations --- diff --git a/docs/design/DOCUMENTATION_UPDATES_PROGRESS_DISPLAY.md b/docs/design/DOCUMENTATION_UPDATES_PROGRESS_DISPLAY.md index d105757e..4ea60936 100644 --- a/docs/design/DOCUMENTATION_UPDATES_PROGRESS_DISPLAY.md +++ b/docs/design/DOCUMENTATION_UPDATES_PROGRESS_DISPLAY.md @@ -34,7 +34,7 @@ Complete documentation package created for the real-time progress indicators fea ### 1. CHANGELOG.md Entry -**Location**: `/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md` (lines 12-26) +**Location**: `${PROJECT_ROOT}/CHANGELOG.md` (lines 12-26) **Content**: - Feature title and GitHub issue reference (#42) @@ -49,7 +49,7 @@ Complete documentation package created for the real-time progress indicators fea ### 2. Plugin README.md Update -**Location**: `/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/README.md` (lines 923-981) +**Location**: `${PROJECT_ROOT}/plugins/autonomous-dev/README.md` (lines 923-981) **Content**: - Feature overview with "NEW" indicator @@ -66,7 +66,7 @@ Complete documentation package created for the real-time progress indicators fea ### 3. Integration Guide (New Document) -**Location**: `/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/PROGRESS_DISPLAY_INTEGRATION.md` (15.9 KB) +**Location**: `${PROJECT_ROOT}/docs/PROGRESS_DISPLAY_INTEGRATION.md` (15.9 KB) **Sections**: 1. **Overview** - What the feature does and capabilities @@ -94,7 +94,7 @@ Complete documentation package created for the real-time progress indicators fea ### 4. Implementation Guide (New Document) -**Location**: `/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/PROGRESS_DISPLAY_IMPLEMENTATION.md` (17.1 KB) +**Location**: `${PROJECT_ROOT}/docs/PROGRESS_DISPLAY_IMPLEMENTATION.md` (17.1 KB) **Sections**: 1. **Architecture Overview** - ASCII diagram of polling architecture diff --git a/plugins/autonomous-dev/tests/integration/test_hook_path_portability.py b/plugins/autonomous-dev/tests/integration/test_hook_path_portability.py index 56c1d388..26719ad0 100644 --- a/plugins/autonomous-dev/tests/integration/test_hook_path_portability.py +++ b/plugins/autonomous-dev/tests/integration/test_hook_path_portability.py @@ -385,7 +385,7 @@ def user_environment(self, tmp_path): "matcher": "*", "hooks": [{ "type": "command", - "command": "MCP_AUTO_APPROVE=true python3 /Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/hooks/pre_tool_use.py" + "command": "MCP_AUTO_APPROVE=true python3 ${PROJECT_ROOT}/plugins/autonomous-dev/hooks/pre_tool_use.py" }] }] } diff --git a/plugins/autonomous-dev/tests/unit/test_hook_path_migration.py b/plugins/autonomous-dev/tests/unit/test_hook_path_migration.py index 752403ea..cfb4f090 100644 --- a/plugins/autonomous-dev/tests/unit/test_hook_path_migration.py +++ b/plugins/autonomous-dev/tests/unit/test_hook_path_migration.py @@ -26,7 +26,7 @@ def settings_hardcoded(self): "hooks": [ { "type": "command", - "command": "MCP_AUTO_APPROVE=true python3 /Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/hooks/pre_tool_use.py" + "command": "MCP_AUTO_APPROVE=true python3 ${PROJECT_ROOT}/plugins/autonomous-dev/hooks/pre_tool_use.py" } ] } @@ -64,7 +64,7 @@ def settings_multiple_hooks(self): "hooks": [ { "type": "command", - "command": "MCP_AUTO_APPROVE=true python3 /Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/hooks/pre_tool_use.py" + "command": "MCP_AUTO_APPROVE=true python3 ${PROJECT_ROOT}/plugins/autonomous-dev/hooks/pre_tool_use.py" } ] } @@ -251,7 +251,7 @@ def test_detects_various_hardcoded_patterns(self, settings_file): from autonomous_dev.scripts.migrate_hook_paths import migrate_hook_paths patterns = [ - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/hooks/pre_tool_use.py", + "${PROJECT_ROOT}/plugins/autonomous-dev/hooks/pre_tool_use.py", "/home/user/projects/autonomous-dev/plugins/autonomous-dev/hooks/pre_tool_use.py", "C:\\Users\\user\\autonomous-dev\\plugins\\autonomous-dev\\hooks\\pre_tool_use.py", "/opt/autonomous-dev/plugins/autonomous-dev/hooks/pre_tool_use.py" diff --git a/tests/archived/test_agent_output_cleanup_documentation.py b/tests/archived/test_agent_output_cleanup_documentation.py index 9be6caa2..1d9169b3 100644 --- a/tests/archived/test_agent_output_cleanup_documentation.py +++ b/tests/archived/test_agent_output_cleanup_documentation.py @@ -29,7 +29,7 @@ def test_claude_md_mentions_issue_72(): EXPECTED TO FAIL: Documentation not updated yet. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Should mention Issue #72 or agent output cleanup @@ -44,7 +44,7 @@ def test_claude_md_documents_token_savings(): EXPECTED TO FAIL: Token savings not documented yet. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Should mention token savings amount @@ -65,8 +65,8 @@ def test_claude_md_token_savings_matches_actual_measurements(): from scripts.measure_agent_tokens import calculate_token_savings # Get actual savings from measurements - baseline_file = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/metrics/baseline_tokens.json") - post_cleanup_file = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/metrics/post_cleanup_tokens.json") + baseline_file = Path("${PROJECT_ROOT}/docs/metrics/baseline_tokens.json") + post_cleanup_file = Path("${PROJECT_ROOT}/docs/metrics/post_cleanup_tokens.json") assert baseline_file.exists(), "Baseline token measurements not found" assert post_cleanup_file.exists(), "Post-cleanup token measurements not found" @@ -81,7 +81,7 @@ def test_claude_md_token_savings_matches_actual_measurements(): actual_savings = savings["total_saved"] # Extract documented savings from CLAUDE.md - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Look for Issue #72 section and extract token number @@ -106,7 +106,7 @@ def test_claude_md_explains_cleanup_approach(): EXPECTED TO FAIL: Cleanup approach not documented yet. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Should explain the phased approach @@ -130,7 +130,7 @@ def test_claude_md_maintains_correct_skill_count(): EXPECTED TO FAIL: Skill count may be outdated. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Find skills section @@ -154,7 +154,7 @@ def test_changelog_includes_issue_72_entry(): EXPECTED TO FAIL: Changelog not updated yet. """ - changelog = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md") + changelog = Path("${PROJECT_ROOT}/CHANGELOG.md") content = changelog.read_text() assert "#72" in content or "Issue 72" in content, \ @@ -167,7 +167,7 @@ def test_changelog_entry_has_correct_format(): EXPECTED TO FAIL: Entry doesn't exist yet or has wrong format. """ - changelog = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md") + changelog = Path("${PROJECT_ROOT}/CHANGELOG.md") content = changelog.read_text() # Find Issue #72 entry @@ -193,7 +193,7 @@ def test_changelog_entry_describes_cleanup(): EXPECTED TO FAIL: Entry doesn't exist or lacks description. """ - changelog = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md") + changelog = Path("${PROJECT_ROOT}/CHANGELOG.md") content = changelog.read_text() # Find Issue #72 section (could be multiple lines) @@ -219,7 +219,7 @@ def test_changelog_entry_includes_token_savings(): EXPECTED TO FAIL: Entry doesn't mention token savings yet. """ - changelog = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md") + changelog = Path("${PROJECT_ROOT}/CHANGELOG.md") content = changelog.read_text() issue_72_start = content.find("#72") @@ -264,8 +264,8 @@ def test_token_savings_range_is_accurate(): from scripts.measure_agent_tokens import calculate_token_savings # Get actual measurements - baseline_file = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/metrics/baseline_tokens.json") - post_cleanup_file = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/metrics/post_cleanup_tokens.json") + baseline_file = Path("${PROJECT_ROOT}/docs/metrics/baseline_tokens.json") + post_cleanup_file = Path("${PROJECT_ROOT}/docs/metrics/post_cleanup_tokens.json") if baseline_file.exists() and post_cleanup_file.exists(): import json @@ -288,7 +288,7 @@ def test_baseline_token_measurements_saved(): EXPECTED TO FAIL: Baseline measurements not saved yet. """ - baseline_file = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/metrics/baseline_tokens.json") + baseline_file = Path("${PROJECT_ROOT}/docs/metrics/baseline_tokens.json") assert baseline_file.exists(), \ "Baseline token measurements should be saved in docs/metrics/" @@ -308,7 +308,7 @@ def test_post_cleanup_token_measurements_saved(): EXPECTED TO FAIL: Post-cleanup measurements not saved yet. """ - post_cleanup_file = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/metrics/post_cleanup_tokens.json") + post_cleanup_file = Path("${PROJECT_ROOT}/docs/metrics/post_cleanup_tokens.json") assert post_cleanup_file.exists(), \ "Post-cleanup token measurements should be saved in docs/metrics/" @@ -333,7 +333,7 @@ def test_verification_script_exists(): EXPECTED TO FAIL: Script doesn't exist yet. """ - script_path = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/scripts/verify_token_claims.py") + script_path = Path("${PROJECT_ROOT}/scripts/verify_token_claims.py") assert script_path.exists(), f"Verification script not found: {script_path}" @@ -348,7 +348,7 @@ def test_verification_script_checks_claude_md(): result = subprocess.run( ["python", "scripts/verify_token_claims.py", "--check-claude-md"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -367,7 +367,7 @@ def test_verification_script_checks_changelog(): result = subprocess.run( ["python", "scripts/verify_token_claims.py", "--check-changelog"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -386,7 +386,7 @@ def test_verification_script_reports_discrepancies(): result = subprocess.run( ["python", "scripts/verify_token_claims.py", "--all"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -409,7 +409,7 @@ def test_claude_md_issue_72_section_placement(): EXPECTED TO FAIL: Section placement may be incorrect. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Find Issue #72 mention @@ -444,7 +444,7 @@ def test_changelog_entry_in_unreleased_section(): EXPECTED TO FAIL: Entry may be in wrong section. """ - changelog = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md") + changelog = Path("${PROJECT_ROOT}/CHANGELOG.md") content = changelog.read_text() # Find [Unreleased] section @@ -479,8 +479,8 @@ def test_documentation_uses_consistent_terminology(): EXPECTED TO FAIL: Terminology may be inconsistent. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") - changelog = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") + changelog = Path("${PROJECT_ROOT}/CHANGELOG.md") claude_content = claude_md.read_text() changelog_content = changelog.read_text() @@ -529,7 +529,7 @@ def test_claude_md_version_updated(): EXPECTED TO FAIL: Version not updated yet. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Extract version from header @@ -551,7 +551,7 @@ def test_claude_md_last_updated_date(): EXPECTED TO FAIL: Date may not be updated. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Extract Last Updated date @@ -582,12 +582,12 @@ def test_issue_72_mentioned_in_all_relevant_docs(): EXPECTED TO FAIL: May not be mentioned everywhere. """ relevant_docs = [ - Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md"), - Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md"), + Path("${PROJECT_ROOT}/CLAUDE.md"), + Path("${PROJECT_ROOT}/CHANGELOG.md"), ] # Optional: README might mention it - readme = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/README.md") + readme = Path("${PROJECT_ROOT}/README.md") if readme.exists(): relevant_docs.append(readme) @@ -613,7 +613,7 @@ def test_documentation_links_are_valid(): from scripts.validate_doc_links import validate_links_in_section # Validate links in CLAUDE.md Issue #72 section - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() issue_72_start = content.find("#72") @@ -630,6 +630,6 @@ def test_documentation_links_are_valid(): for link_text, link_url in links: # If relative path, check if file exists if not link_url.startswith('http'): - link_path = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev") / link_url + link_path = Path("${PROJECT_ROOT}") / link_url assert link_path.exists(), \ f"Broken link in Issue #72 docs: {link_url}" diff --git a/tests/archived/test_agent_output_cleanup_phase2.py b/tests/archived/test_agent_output_cleanup_phase2.py index dbe50d20..94a28e95 100644 --- a/tests/archived/test_agent_output_cleanup_phase2.py +++ b/tests/archived/test_agent_output_cleanup_phase2.py @@ -28,7 +28,7 @@ # Constants -AGENTS_DIR = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") +AGENTS_DIR = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") # Phase 1 agents (already cleaned up) PHASE_1_AGENTS = [ diff --git a/tests/archived/test_agent_output_cleanup_section_length.py b/tests/archived/test_agent_output_cleanup_section_length.py index f8ef15c8..8bafff13 100644 --- a/tests/archived/test_agent_output_cleanup_section_length.py +++ b/tests/archived/test_agent_output_cleanup_section_length.py @@ -64,7 +64,7 @@ def test_count_output_format_lines_in_agent(): from scripts.measure_output_format_sections import count_output_format_lines agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "project-progress-tracker.md" ) @@ -84,7 +84,7 @@ def test_output_format_section_extraction(): from scripts.measure_output_format_sections import extract_output_format_section agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "project-progress-tracker.md" ) @@ -187,7 +187,7 @@ def test_no_agent_exceeds_30_line_threshold(): """ from scripts.measure_output_format_sections import count_output_format_lines - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -211,7 +211,7 @@ def test_agents_with_output_format_section_are_within_limits(): from scripts.measure_output_format_sections import extract_output_format_section, \ count_output_format_lines - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -244,7 +244,7 @@ def test_30_line_threshold_allows_agent_specific_guidance(): "commit-message-generator", # Conventional commits format ] - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") for agent_name in special_agents: agent_file = agents_dir / f"{agent_name}.md" @@ -412,7 +412,7 @@ def test_agent_specific_guidance_preserved_after_cleanup(): # 1. project-progress-tracker: Should keep dual-mode guidance tracker_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "project-progress-tracker.md" ) tracker_content = tracker_file.read_text() @@ -423,7 +423,7 @@ def test_agent_specific_guidance_preserved_after_cleanup(): # 2. quality-validator: Should keep scoring guidance validator_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "quality-validator.md" ) validator_content = validator_file.read_text() @@ -433,7 +433,7 @@ def test_agent_specific_guidance_preserved_after_cleanup(): # 3. commit-message-generator: Should keep conventional commits format commit_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "commit-message-generator.md" ) commit_content = commit_file.read_text() @@ -451,7 +451,7 @@ def test_output_format_cleanup_preserves_examples(): """ from scripts.measure_output_format_sections import extract_output_format_section - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") # Check agents that have examples in Output Format agents_with_examples = ["quality-validator", "project-progress-tracker"] @@ -475,7 +475,7 @@ def test_output_format_cleanup_removes_verbose_templates(): """ from scripts.measure_output_format_sections import extract_output_format_section - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -515,7 +515,7 @@ def test_output_format_references_agent_output_formats_skill(): EXPECTED TO FAIL: References may not be added yet. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -555,7 +555,7 @@ def test_project_progress_tracker_output_format_cleaned(): from scripts.measure_output_format_sections import count_output_format_lines agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "project-progress-tracker.md" ) @@ -574,7 +574,7 @@ def test_quality_validator_output_format_cleaned(): from scripts.measure_output_format_sections import count_output_format_lines agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "quality-validator.md" ) @@ -594,7 +594,7 @@ def test_agents_without_output_format_section_have_zero_lines(): # test-master doesn't have Output Format section agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/test-master.md" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/test-master.md" ) line_count = count_output_format_lines(agent_file) @@ -615,7 +615,7 @@ def test_cleanup_script_exists(): EXPECTED TO FAIL: Script doesn't exist yet. """ script_path = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/scripts/cleanup_output_formats.py" + "${PROJECT_ROOT}/scripts/cleanup_output_formats.py" ) assert script_path.exists(), f"Cleanup script not found: {script_path}" @@ -630,7 +630,7 @@ def test_cleanup_script_dry_run_mode(): result = subprocess.run( ["python", "scripts/cleanup_output_formats.py", "--dry-run"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -650,7 +650,7 @@ def test_cleanup_script_reports_changes(): result = subprocess.run( ["python", "scripts/cleanup_output_formats.py", "--dry-run"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -672,7 +672,7 @@ def test_cleanup_script_validates_output(): # Run with validation flag result = subprocess.run( ["python", "scripts/cleanup_output_formats.py", "--validate"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) diff --git a/tests/archived/test_agent_output_cleanup_skill_references.py b/tests/archived/test_agent_output_cleanup_skill_references.py index 36acb5e9..449b4979 100644 --- a/tests/archived/test_agent_output_cleanup_skill_references.py +++ b/tests/archived/test_agent_output_cleanup_skill_references.py @@ -62,7 +62,7 @@ def test_all_agents_have_relevant_skills_section(): EXPECTED TO FAIL: Some agents may not have the section yet. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) # Exclude archived agents @@ -86,7 +86,7 @@ def test_relevant_skills_section_is_properly_formatted(): EXPECTED TO FAIL: Some agents may have incorrect format. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -120,7 +120,7 @@ def test_relevant_skills_section_placement(): EXPECTED TO FAIL: Some agents may have incorrect placement. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -157,7 +157,7 @@ def test_all_agents_reference_agent_output_formats_skill(): EXPECTED TO FAIL: Phase 1 target agents don't have reference yet. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -190,7 +190,7 @@ def test_phase1_target_agents_have_skill_reference(): "project-progress-tracker" ] - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") missing = [] for agent_name in phase1_targets: @@ -211,7 +211,7 @@ def test_agent_output_formats_reference_is_in_relevant_skills_section(): EXPECTED TO FAIL: Some agents may reference it elsewhere. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -250,7 +250,7 @@ def test_skill_reference_follows_standard_format(): EXPECTED TO FAIL: Some agents may have incorrect format. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -278,7 +278,7 @@ def test_skill_reference_has_description(): EXPECTED TO FAIL: Some agents may have empty or missing description. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -308,7 +308,7 @@ def test_skill_reference_description_is_relevant(): EXPECTED TO FAIL: Some agents may have generic description. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -346,7 +346,7 @@ def test_test_master_has_agent_output_formats_reference(): EXPECTED TO FAIL: test-master doesn't have reference yet (Phase 1). """ agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/test-master.md" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/test-master.md" ) content = agent_file.read_text() @@ -366,7 +366,7 @@ def test_quality_validator_has_agent_output_formats_reference(): EXPECTED TO FAIL: quality-validator doesn't have reference yet (Phase 1). """ agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/quality-validator.md" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/quality-validator.md" ) content = agent_file.read_text() @@ -381,7 +381,7 @@ def test_advisor_has_agent_output_formats_reference(): EXPECTED TO FAIL: advisor doesn't have reference yet (Phase 1). """ agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/advisor.md" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/advisor.md" ) content = agent_file.read_text() @@ -396,7 +396,7 @@ def test_alignment_validator_has_agent_output_formats_reference(): EXPECTED TO FAIL: alignment-validator doesn't have reference yet (Phase 1). """ agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/agents/alignment-validator.md" + "${PROJECT_ROOT}/agents/alignment-validator.md" ) content = agent_file.read_text() @@ -411,7 +411,7 @@ def test_project_progress_tracker_has_agent_output_formats_reference(): EXPECTED TO FAIL: project-progress-tracker doesn't have reference yet (Phase 1). """ agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/project-progress-tracker.md" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/project-progress-tracker.md" ) content = agent_file.read_text() @@ -432,7 +432,7 @@ def test_existing_skill_references_are_preserved(): """ # Example: test-master should keep existing skills agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/test-master.md" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/test-master.md" ) content = agent_file.read_text() @@ -462,7 +462,7 @@ def test_quality_validator_preserves_existing_skills(): EXPECTED TO FAIL: Implementation may remove existing skills. """ agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/quality-validator.md" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/quality-validator.md" ) content = agent_file.read_text() @@ -489,7 +489,7 @@ def test_skill_list_maintains_alphabetical_order(): EXPECTED TO FAIL: Implementation may not maintain proper ordering. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -533,7 +533,7 @@ def test_validation_script_exists(): EXPECTED TO FAIL: Script doesn't exist yet. """ script_path = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/scripts/validate_agent_skill_references.py" + "${PROJECT_ROOT}/scripts/validate_agent_skill_references.py" ) assert script_path.exists(), f"Validation script not found: {script_path}" @@ -548,7 +548,7 @@ def test_validation_script_checks_all_agents(): result = subprocess.run( ["python", "scripts/validate_agent_skill_references.py"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -567,7 +567,7 @@ def test_validation_script_reports_missing_references(): result = subprocess.run( ["python", "scripts/validate_agent_skill_references.py", "--check-agent-output-formats"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -589,7 +589,7 @@ def test_validation_script_supports_json_output(): result = subprocess.run( ["python", "scripts/validate_agent_skill_references.py", "--json"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -614,7 +614,7 @@ def test_agent_output_formats_skill_exists(): EXPECTED TO FAIL: Should pass (skill already exists from Issues #63, #64). """ skill_path = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/skills/" + "${PROJECT_ROOT}/plugins/autonomous-dev/skills/" "agent-output-formats/SKILL.md" ) assert skill_path.exists(), f"agent-output-formats skill not found: {skill_path}" @@ -627,7 +627,7 @@ def test_agent_output_formats_skill_has_metadata(): EXPECTED TO FAIL: Should pass (skill already exists). """ skill_path = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/skills/" + "${PROJECT_ROOT}/plugins/autonomous-dev/skills/" "agent-output-formats/SKILL.md" ) content = skill_path.read_text() @@ -646,7 +646,7 @@ def test_agent_references_match_skill_content(): EXPECTED TO FAIL: Descriptions may not match yet. """ skill_path = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/skills/" + "${PROJECT_ROOT}/plugins/autonomous-dev/skills/" "agent-output-formats/SKILL.md" ) skill_content = skill_path.read_text() @@ -658,7 +658,7 @@ def test_agent_references_match_skill_content(): skill_desc = line.split("description:")[1].strip() break - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] diff --git a/tests/archived/test_agent_output_cleanup_token_counting.py b/tests/archived/test_agent_output_cleanup_token_counting.py index a15c6fec..ec1166cc 100644 --- a/tests/archived/test_agent_output_cleanup_token_counting.py +++ b/tests/archived/test_agent_output_cleanup_token_counting.py @@ -30,7 +30,7 @@ def test_token_counting_script_exists(): EXPECTED TO FAIL: Script doesn't exist yet (TDD red phase). """ - script_path = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/scripts/measure_agent_tokens.py") + script_path = Path("${PROJECT_ROOT}/scripts/measure_agent_tokens.py") assert script_path.exists(), f"Token counting script not found at {script_path}" assert script_path.is_file(), f"Path exists but is not a file: {script_path}" @@ -41,7 +41,7 @@ def test_token_counting_script_is_executable(): EXPECTED TO FAIL: Script doesn't exist yet. """ - script_path = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/scripts/measure_agent_tokens.py") + script_path = Path("${PROJECT_ROOT}/scripts/measure_agent_tokens.py") assert script_path.exists(), "Script doesn't exist" content = script_path.read_text() @@ -55,7 +55,7 @@ def test_token_counting_script_has_main_function(): EXPECTED TO FAIL: Script doesn't exist yet. """ - script_path = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/scripts/measure_agent_tokens.py") + script_path = Path("${PROJECT_ROOT}/scripts/measure_agent_tokens.py") assert script_path.exists(), "Script doesn't exist" content = script_path.read_text() @@ -496,7 +496,7 @@ def test_cli_supports_baseline_measurement(): result = subprocess.run( ["python", "scripts/measure_agent_tokens.py", "--baseline"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -515,7 +515,7 @@ def test_cli_supports_post_cleanup_measurement(): result = subprocess.run( ["python", "scripts/measure_agent_tokens.py", "--post-cleanup"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -534,7 +534,7 @@ def test_cli_supports_savings_report(): result = subprocess.run( ["python", "scripts/measure_agent_tokens.py", "--report"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -554,7 +554,7 @@ def test_cli_supports_json_output(): result = subprocess.run( ["python", "scripts/measure_agent_tokens.py", "--report", "--json"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) diff --git a/tests/archived/test_agent_output_section_length_phase2.py b/tests/archived/test_agent_output_section_length_phase2.py index 37a3ac58..b0b29fc4 100644 --- a/tests/archived/test_agent_output_section_length_phase2.py +++ b/tests/archived/test_agent_output_section_length_phase2.py @@ -25,7 +25,7 @@ # Constants -AGENTS_DIR = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") +AGENTS_DIR = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") MAX_OUTPUT_FORMAT_LINES = 30 # Phase 1 agents (already cleaned up) diff --git a/tests/integration/ISSUE_85_VERIFICATION.md b/tests/integration/ISSUE_85_VERIFICATION.md index 1e185b93..2536729e 100644 --- a/tests/integration/ISSUE_85_VERIFICATION.md +++ b/tests/integration/ISSUE_85_VERIFICATION.md @@ -9,7 +9,7 @@ ## Current State (BEFORE Implementation) ### Problems -- ❌ Hardcoded `/Users/akaszubski/Documents/GitHub/autonomous-dev` on lines 112 and 344 +- ❌ Hardcoded `${PROJECT_ROOT}` on lines 112 and 344 - ❌ Breaks for other developers - ❌ Breaks in CI/CD environments - ❌ Not cross-platform compatible diff --git a/tests/integration/TEST_SUMMARY_ISSUE_85.md b/tests/integration/TEST_SUMMARY_ISSUE_85.md index 126be6ce..8dd365c7 100644 --- a/tests/integration/TEST_SUMMARY_ISSUE_85.md +++ b/tests/integration/TEST_SUMMARY_ISSUE_85.md @@ -11,7 +11,7 @@ **Lines 112 and 344** in `auto-implement.md` contain hardcoded paths: ```bash -cd /Users/akaszubski/Documents/GitHub/autonomous-dev && python3 << 'EOF' +cd ${PROJECT_ROOT} && python3 << 'EOF' ``` This breaks portability for: @@ -188,7 +188,7 @@ After these tests, the **implementer** agent will: 2. **Expected Changes**: ```diff - - cd /Users/akaszubski/Documents/GitHub/autonomous-dev && python3 << 'EOF' + - cd ${PROJECT_ROOT} && python3 << 'EOF' + python3 << 'EOF' + import sys + from pathlib import Path diff --git a/tests/integration/test_agent_output_cleanup_quality.py b/tests/integration/test_agent_output_cleanup_quality.py index b80b216d..77fe0c5f 100644 --- a/tests/integration/test_agent_output_cleanup_quality.py +++ b/tests/integration/test_agent_output_cleanup_quality.py @@ -519,7 +519,7 @@ def test_dual_mode_guidance_preserved_in_agent(): EXPECTED TO FAIL: Cleanup may remove mode-specific guidance. """ agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "project-progress-tracker.md" ) content = agent_file.read_text() diff --git a/tests/integration/test_agent_phase2_functionality.py b/tests/integration/test_agent_phase2_functionality.py index c40d46b3..d7b1e5bc 100644 --- a/tests/integration/test_agent_phase2_functionality.py +++ b/tests/integration/test_agent_phase2_functionality.py @@ -26,8 +26,8 @@ # Constants -AGENTS_DIR = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") -SKILLS_DIR = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/skills") +AGENTS_DIR = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") +SKILLS_DIR = Path("${PROJECT_ROOT}/plugins/autonomous-dev/skills") # Phase 2 agents (15 remaining) PHASE_2_HIGH_PRIORITY = [ diff --git a/tests/integration/test_auto_implement_checkpoint_portability.py b/tests/integration/test_auto_implement_checkpoint_portability.py index 029c1014..603973f3 100644 --- a/tests/integration/test_auto_implement_checkpoint_portability.py +++ b/tests/integration/test_auto_implement_checkpoint_portability.py @@ -6,7 +6,7 @@ Problem: - Lines 112 and 344 in auto-implement.md have hardcoded paths: - cd /Users/akaszubski/Documents/GitHub/autonomous-dev && python3 << 'EOF' + cd ${PROJECT_ROOT} && python3 << 'EOF' - Breaks portability for other developers and CI/CD environments Solution: diff --git a/tests/integration/test_checkpoint_portability_issue79.py b/tests/integration/test_checkpoint_portability_issue79.py index de137049..a284497f 100644 --- a/tests/integration/test_checkpoint_portability_issue79.py +++ b/tests/integration/test_checkpoint_portability_issue79.py @@ -7,7 +7,7 @@ Problem (Issue #79): - Command checkpoints in auto-implement.md have hardcoded paths -- Example: cd /Users/akaszubski/Documents/GitHub/autonomous-dev && python3 << 'EOF' +- Example: cd ${PROJECT_ROOT} && python3 << 'EOF' - Fails for other developers and in CI/CD environments Solution: @@ -224,7 +224,7 @@ def test_no_hardcoded_absolute_paths(self, auto_implement_command): r"cd /Users/akaszubski", r"cd /home/\w+", r"cd C:\\Users\\", - r"/Users/akaszubski/Documents/GitHub/autonomous-dev" + r"${PROJECT_ROOT}" ] for pattern in hardcoded_patterns: diff --git a/tests/integration/test_phase2_regression.py b/tests/integration/test_phase2_regression.py index e8a0a340..b0755e22 100644 --- a/tests/integration/test_phase2_regression.py +++ b/tests/integration/test_phase2_regression.py @@ -19,8 +19,8 @@ # Constants -AGENTS_DIR = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") -TESTS_DIR = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/tests") +AGENTS_DIR = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") +TESTS_DIR = Path("${PROJECT_ROOT}/tests") # Phase 1 agents (already cleaned up) PHASE_1_AGENTS = [ @@ -165,7 +165,7 @@ def test_run_all_existing_unit_tests(): ["pytest", str(TESTS_DIR / "unit"), "-v", "--tb=short"], capture_output=True, text=True, - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev" + cwd="${PROJECT_ROOT}" ) assert result.returncode == 0, \ @@ -182,7 +182,7 @@ def test_run_all_existing_integration_tests(): ["pytest", str(TESTS_DIR / "integration"), "-v", "--tb=short"], capture_output=True, text=True, - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev" + cwd="${PROJECT_ROOT}" ) assert result.returncode == 0, \ @@ -199,7 +199,7 @@ def test_run_all_existing_skill_tests(): ["pytest", str(TESTS_DIR / "unit/skills"), "-v", "--tb=short"], capture_output=True, text=True, - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev" + cwd="${PROJECT_ROOT}" ) assert result.returncode == 0, \ @@ -516,7 +516,7 @@ def test_claude_md_updated_for_phase2(): EXPECTED TO FAIL: Documentation update verification needed. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Should mention Phase 2 completion @@ -534,7 +534,7 @@ def test_issue_72_documentation_complete(): EXPECTED TO FAIL: Documentation completeness check needed. """ - docs_file = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/ISSUE_72_IMPLEMENTATION_SUMMARY.md") + docs_file = Path("${PROJECT_ROOT}/docs/ISSUE_72_IMPLEMENTATION_SUMMARY.md") content = docs_file.read_text() @@ -550,7 +550,7 @@ def test_changelog_updated_for_phase2(): EXPECTED TO FAIL: Changelog update verification needed. """ - changelog = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md") + changelog = Path("${PROJECT_ROOT}/CHANGELOG.md") content = changelog.read_text() # Should have Phase 2 entry diff --git a/tests/unit/performance/README.md b/tests/unit/performance/README.md index 11a24343..bc005a9d 100644 --- a/tests/unit/performance/README.md +++ b/tests/unit/performance/README.md @@ -14,7 +14,7 @@ This directory contains **96 failing TDD tests** for GitHub Issue #46 Phases 8.5 ### Run All Tests ```bash -cd /Users/akaszubski/Documents/GitHub/autonomous-dev +cd ${PROJECT_ROOT} source .venv/bin/activate python -m pytest tests/unit/performance/ -v ``` diff --git a/tests/unit/test_agent_output_cleanup_documentation.py b/tests/unit/test_agent_output_cleanup_documentation.py index 9be6caa2..1d9169b3 100644 --- a/tests/unit/test_agent_output_cleanup_documentation.py +++ b/tests/unit/test_agent_output_cleanup_documentation.py @@ -29,7 +29,7 @@ def test_claude_md_mentions_issue_72(): EXPECTED TO FAIL: Documentation not updated yet. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Should mention Issue #72 or agent output cleanup @@ -44,7 +44,7 @@ def test_claude_md_documents_token_savings(): EXPECTED TO FAIL: Token savings not documented yet. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Should mention token savings amount @@ -65,8 +65,8 @@ def test_claude_md_token_savings_matches_actual_measurements(): from scripts.measure_agent_tokens import calculate_token_savings # Get actual savings from measurements - baseline_file = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/metrics/baseline_tokens.json") - post_cleanup_file = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/metrics/post_cleanup_tokens.json") + baseline_file = Path("${PROJECT_ROOT}/docs/metrics/baseline_tokens.json") + post_cleanup_file = Path("${PROJECT_ROOT}/docs/metrics/post_cleanup_tokens.json") assert baseline_file.exists(), "Baseline token measurements not found" assert post_cleanup_file.exists(), "Post-cleanup token measurements not found" @@ -81,7 +81,7 @@ def test_claude_md_token_savings_matches_actual_measurements(): actual_savings = savings["total_saved"] # Extract documented savings from CLAUDE.md - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Look for Issue #72 section and extract token number @@ -106,7 +106,7 @@ def test_claude_md_explains_cleanup_approach(): EXPECTED TO FAIL: Cleanup approach not documented yet. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Should explain the phased approach @@ -130,7 +130,7 @@ def test_claude_md_maintains_correct_skill_count(): EXPECTED TO FAIL: Skill count may be outdated. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Find skills section @@ -154,7 +154,7 @@ def test_changelog_includes_issue_72_entry(): EXPECTED TO FAIL: Changelog not updated yet. """ - changelog = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md") + changelog = Path("${PROJECT_ROOT}/CHANGELOG.md") content = changelog.read_text() assert "#72" in content or "Issue 72" in content, \ @@ -167,7 +167,7 @@ def test_changelog_entry_has_correct_format(): EXPECTED TO FAIL: Entry doesn't exist yet or has wrong format. """ - changelog = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md") + changelog = Path("${PROJECT_ROOT}/CHANGELOG.md") content = changelog.read_text() # Find Issue #72 entry @@ -193,7 +193,7 @@ def test_changelog_entry_describes_cleanup(): EXPECTED TO FAIL: Entry doesn't exist or lacks description. """ - changelog = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md") + changelog = Path("${PROJECT_ROOT}/CHANGELOG.md") content = changelog.read_text() # Find Issue #72 section (could be multiple lines) @@ -219,7 +219,7 @@ def test_changelog_entry_includes_token_savings(): EXPECTED TO FAIL: Entry doesn't mention token savings yet. """ - changelog = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md") + changelog = Path("${PROJECT_ROOT}/CHANGELOG.md") content = changelog.read_text() issue_72_start = content.find("#72") @@ -264,8 +264,8 @@ def test_token_savings_range_is_accurate(): from scripts.measure_agent_tokens import calculate_token_savings # Get actual measurements - baseline_file = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/metrics/baseline_tokens.json") - post_cleanup_file = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/metrics/post_cleanup_tokens.json") + baseline_file = Path("${PROJECT_ROOT}/docs/metrics/baseline_tokens.json") + post_cleanup_file = Path("${PROJECT_ROOT}/docs/metrics/post_cleanup_tokens.json") if baseline_file.exists() and post_cleanup_file.exists(): import json @@ -288,7 +288,7 @@ def test_baseline_token_measurements_saved(): EXPECTED TO FAIL: Baseline measurements not saved yet. """ - baseline_file = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/metrics/baseline_tokens.json") + baseline_file = Path("${PROJECT_ROOT}/docs/metrics/baseline_tokens.json") assert baseline_file.exists(), \ "Baseline token measurements should be saved in docs/metrics/" @@ -308,7 +308,7 @@ def test_post_cleanup_token_measurements_saved(): EXPECTED TO FAIL: Post-cleanup measurements not saved yet. """ - post_cleanup_file = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/docs/metrics/post_cleanup_tokens.json") + post_cleanup_file = Path("${PROJECT_ROOT}/docs/metrics/post_cleanup_tokens.json") assert post_cleanup_file.exists(), \ "Post-cleanup token measurements should be saved in docs/metrics/" @@ -333,7 +333,7 @@ def test_verification_script_exists(): EXPECTED TO FAIL: Script doesn't exist yet. """ - script_path = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/scripts/verify_token_claims.py") + script_path = Path("${PROJECT_ROOT}/scripts/verify_token_claims.py") assert script_path.exists(), f"Verification script not found: {script_path}" @@ -348,7 +348,7 @@ def test_verification_script_checks_claude_md(): result = subprocess.run( ["python", "scripts/verify_token_claims.py", "--check-claude-md"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -367,7 +367,7 @@ def test_verification_script_checks_changelog(): result = subprocess.run( ["python", "scripts/verify_token_claims.py", "--check-changelog"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -386,7 +386,7 @@ def test_verification_script_reports_discrepancies(): result = subprocess.run( ["python", "scripts/verify_token_claims.py", "--all"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -409,7 +409,7 @@ def test_claude_md_issue_72_section_placement(): EXPECTED TO FAIL: Section placement may be incorrect. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Find Issue #72 mention @@ -444,7 +444,7 @@ def test_changelog_entry_in_unreleased_section(): EXPECTED TO FAIL: Entry may be in wrong section. """ - changelog = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md") + changelog = Path("${PROJECT_ROOT}/CHANGELOG.md") content = changelog.read_text() # Find [Unreleased] section @@ -479,8 +479,8 @@ def test_documentation_uses_consistent_terminology(): EXPECTED TO FAIL: Terminology may be inconsistent. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") - changelog = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") + changelog = Path("${PROJECT_ROOT}/CHANGELOG.md") claude_content = claude_md.read_text() changelog_content = changelog.read_text() @@ -529,7 +529,7 @@ def test_claude_md_version_updated(): EXPECTED TO FAIL: Version not updated yet. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Extract version from header @@ -551,7 +551,7 @@ def test_claude_md_last_updated_date(): EXPECTED TO FAIL: Date may not be updated. """ - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() # Extract Last Updated date @@ -582,12 +582,12 @@ def test_issue_72_mentioned_in_all_relevant_docs(): EXPECTED TO FAIL: May not be mentioned everywhere. """ relevant_docs = [ - Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md"), - Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CHANGELOG.md"), + Path("${PROJECT_ROOT}/CLAUDE.md"), + Path("${PROJECT_ROOT}/CHANGELOG.md"), ] # Optional: README might mention it - readme = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/README.md") + readme = Path("${PROJECT_ROOT}/README.md") if readme.exists(): relevant_docs.append(readme) @@ -613,7 +613,7 @@ def test_documentation_links_are_valid(): from scripts.validate_doc_links import validate_links_in_section # Validate links in CLAUDE.md Issue #72 section - claude_md = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/CLAUDE.md") + claude_md = Path("${PROJECT_ROOT}/CLAUDE.md") content = claude_md.read_text() issue_72_start = content.find("#72") @@ -630,6 +630,6 @@ def test_documentation_links_are_valid(): for link_text, link_url in links: # If relative path, check if file exists if not link_url.startswith('http'): - link_path = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev") / link_url + link_path = Path("${PROJECT_ROOT}") / link_url assert link_path.exists(), \ f"Broken link in Issue #72 docs: {link_url}" diff --git a/tests/unit/test_agent_output_cleanup_phase2.py b/tests/unit/test_agent_output_cleanup_phase2.py index dbe50d20..94a28e95 100644 --- a/tests/unit/test_agent_output_cleanup_phase2.py +++ b/tests/unit/test_agent_output_cleanup_phase2.py @@ -28,7 +28,7 @@ # Constants -AGENTS_DIR = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") +AGENTS_DIR = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") # Phase 1 agents (already cleaned up) PHASE_1_AGENTS = [ diff --git a/tests/unit/test_agent_output_cleanup_section_length.py b/tests/unit/test_agent_output_cleanup_section_length.py index f8ef15c8..8bafff13 100644 --- a/tests/unit/test_agent_output_cleanup_section_length.py +++ b/tests/unit/test_agent_output_cleanup_section_length.py @@ -64,7 +64,7 @@ def test_count_output_format_lines_in_agent(): from scripts.measure_output_format_sections import count_output_format_lines agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "project-progress-tracker.md" ) @@ -84,7 +84,7 @@ def test_output_format_section_extraction(): from scripts.measure_output_format_sections import extract_output_format_section agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "project-progress-tracker.md" ) @@ -187,7 +187,7 @@ def test_no_agent_exceeds_30_line_threshold(): """ from scripts.measure_output_format_sections import count_output_format_lines - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -211,7 +211,7 @@ def test_agents_with_output_format_section_are_within_limits(): from scripts.measure_output_format_sections import extract_output_format_section, \ count_output_format_lines - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -244,7 +244,7 @@ def test_30_line_threshold_allows_agent_specific_guidance(): "commit-message-generator", # Conventional commits format ] - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") for agent_name in special_agents: agent_file = agents_dir / f"{agent_name}.md" @@ -412,7 +412,7 @@ def test_agent_specific_guidance_preserved_after_cleanup(): # 1. project-progress-tracker: Should keep dual-mode guidance tracker_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "project-progress-tracker.md" ) tracker_content = tracker_file.read_text() @@ -423,7 +423,7 @@ def test_agent_specific_guidance_preserved_after_cleanup(): # 2. quality-validator: Should keep scoring guidance validator_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "quality-validator.md" ) validator_content = validator_file.read_text() @@ -433,7 +433,7 @@ def test_agent_specific_guidance_preserved_after_cleanup(): # 3. commit-message-generator: Should keep conventional commits format commit_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "commit-message-generator.md" ) commit_content = commit_file.read_text() @@ -451,7 +451,7 @@ def test_output_format_cleanup_preserves_examples(): """ from scripts.measure_output_format_sections import extract_output_format_section - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") # Check agents that have examples in Output Format agents_with_examples = ["quality-validator", "project-progress-tracker"] @@ -475,7 +475,7 @@ def test_output_format_cleanup_removes_verbose_templates(): """ from scripts.measure_output_format_sections import extract_output_format_section - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -515,7 +515,7 @@ def test_output_format_references_agent_output_formats_skill(): EXPECTED TO FAIL: References may not be added yet. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -555,7 +555,7 @@ def test_project_progress_tracker_output_format_cleaned(): from scripts.measure_output_format_sections import count_output_format_lines agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "project-progress-tracker.md" ) @@ -574,7 +574,7 @@ def test_quality_validator_output_format_cleaned(): from scripts.measure_output_format_sections import count_output_format_lines agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/" "quality-validator.md" ) @@ -594,7 +594,7 @@ def test_agents_without_output_format_section_have_zero_lines(): # test-master doesn't have Output Format section agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/test-master.md" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/test-master.md" ) line_count = count_output_format_lines(agent_file) @@ -615,7 +615,7 @@ def test_cleanup_script_exists(): EXPECTED TO FAIL: Script doesn't exist yet. """ script_path = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/scripts/cleanup_output_formats.py" + "${PROJECT_ROOT}/scripts/cleanup_output_formats.py" ) assert script_path.exists(), f"Cleanup script not found: {script_path}" @@ -630,7 +630,7 @@ def test_cleanup_script_dry_run_mode(): result = subprocess.run( ["python", "scripts/cleanup_output_formats.py", "--dry-run"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -650,7 +650,7 @@ def test_cleanup_script_reports_changes(): result = subprocess.run( ["python", "scripts/cleanup_output_formats.py", "--dry-run"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -672,7 +672,7 @@ def test_cleanup_script_validates_output(): # Run with validation flag result = subprocess.run( ["python", "scripts/cleanup_output_formats.py", "--validate"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) diff --git a/tests/unit/test_agent_output_cleanup_skill_references.py b/tests/unit/test_agent_output_cleanup_skill_references.py index 36acb5e9..449b4979 100644 --- a/tests/unit/test_agent_output_cleanup_skill_references.py +++ b/tests/unit/test_agent_output_cleanup_skill_references.py @@ -62,7 +62,7 @@ def test_all_agents_have_relevant_skills_section(): EXPECTED TO FAIL: Some agents may not have the section yet. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) # Exclude archived agents @@ -86,7 +86,7 @@ def test_relevant_skills_section_is_properly_formatted(): EXPECTED TO FAIL: Some agents may have incorrect format. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -120,7 +120,7 @@ def test_relevant_skills_section_placement(): EXPECTED TO FAIL: Some agents may have incorrect placement. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -157,7 +157,7 @@ def test_all_agents_reference_agent_output_formats_skill(): EXPECTED TO FAIL: Phase 1 target agents don't have reference yet. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -190,7 +190,7 @@ def test_phase1_target_agents_have_skill_reference(): "project-progress-tracker" ] - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") missing = [] for agent_name in phase1_targets: @@ -211,7 +211,7 @@ def test_agent_output_formats_reference_is_in_relevant_skills_section(): EXPECTED TO FAIL: Some agents may reference it elsewhere. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -250,7 +250,7 @@ def test_skill_reference_follows_standard_format(): EXPECTED TO FAIL: Some agents may have incorrect format. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -278,7 +278,7 @@ def test_skill_reference_has_description(): EXPECTED TO FAIL: Some agents may have empty or missing description. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -308,7 +308,7 @@ def test_skill_reference_description_is_relevant(): EXPECTED TO FAIL: Some agents may have generic description. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -346,7 +346,7 @@ def test_test_master_has_agent_output_formats_reference(): EXPECTED TO FAIL: test-master doesn't have reference yet (Phase 1). """ agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/test-master.md" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/test-master.md" ) content = agent_file.read_text() @@ -366,7 +366,7 @@ def test_quality_validator_has_agent_output_formats_reference(): EXPECTED TO FAIL: quality-validator doesn't have reference yet (Phase 1). """ agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/quality-validator.md" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/quality-validator.md" ) content = agent_file.read_text() @@ -381,7 +381,7 @@ def test_advisor_has_agent_output_formats_reference(): EXPECTED TO FAIL: advisor doesn't have reference yet (Phase 1). """ agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/advisor.md" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/advisor.md" ) content = agent_file.read_text() @@ -396,7 +396,7 @@ def test_alignment_validator_has_agent_output_formats_reference(): EXPECTED TO FAIL: alignment-validator doesn't have reference yet (Phase 1). """ agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/agents/alignment-validator.md" + "${PROJECT_ROOT}/agents/alignment-validator.md" ) content = agent_file.read_text() @@ -411,7 +411,7 @@ def test_project_progress_tracker_has_agent_output_formats_reference(): EXPECTED TO FAIL: project-progress-tracker doesn't have reference yet (Phase 1). """ agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/project-progress-tracker.md" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/project-progress-tracker.md" ) content = agent_file.read_text() @@ -432,7 +432,7 @@ def test_existing_skill_references_are_preserved(): """ # Example: test-master should keep existing skills agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/test-master.md" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/test-master.md" ) content = agent_file.read_text() @@ -462,7 +462,7 @@ def test_quality_validator_preserves_existing_skills(): EXPECTED TO FAIL: Implementation may remove existing skills. """ agent_file = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents/quality-validator.md" + "${PROJECT_ROOT}/plugins/autonomous-dev/agents/quality-validator.md" ) content = agent_file.read_text() @@ -489,7 +489,7 @@ def test_skill_list_maintains_alphabetical_order(): EXPECTED TO FAIL: Implementation may not maintain proper ordering. """ - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] @@ -533,7 +533,7 @@ def test_validation_script_exists(): EXPECTED TO FAIL: Script doesn't exist yet. """ script_path = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/scripts/validate_agent_skill_references.py" + "${PROJECT_ROOT}/scripts/validate_agent_skill_references.py" ) assert script_path.exists(), f"Validation script not found: {script_path}" @@ -548,7 +548,7 @@ def test_validation_script_checks_all_agents(): result = subprocess.run( ["python", "scripts/validate_agent_skill_references.py"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -567,7 +567,7 @@ def test_validation_script_reports_missing_references(): result = subprocess.run( ["python", "scripts/validate_agent_skill_references.py", "--check-agent-output-formats"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -589,7 +589,7 @@ def test_validation_script_supports_json_output(): result = subprocess.run( ["python", "scripts/validate_agent_skill_references.py", "--json"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -614,7 +614,7 @@ def test_agent_output_formats_skill_exists(): EXPECTED TO FAIL: Should pass (skill already exists from Issues #63, #64). """ skill_path = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/skills/" + "${PROJECT_ROOT}/plugins/autonomous-dev/skills/" "agent-output-formats/SKILL.md" ) assert skill_path.exists(), f"agent-output-formats skill not found: {skill_path}" @@ -627,7 +627,7 @@ def test_agent_output_formats_skill_has_metadata(): EXPECTED TO FAIL: Should pass (skill already exists). """ skill_path = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/skills/" + "${PROJECT_ROOT}/plugins/autonomous-dev/skills/" "agent-output-formats/SKILL.md" ) content = skill_path.read_text() @@ -646,7 +646,7 @@ def test_agent_references_match_skill_content(): EXPECTED TO FAIL: Descriptions may not match yet. """ skill_path = Path( - "/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/skills/" + "${PROJECT_ROOT}/plugins/autonomous-dev/skills/" "agent-output-formats/SKILL.md" ) skill_content = skill_path.read_text() @@ -658,7 +658,7 @@ def test_agent_references_match_skill_content(): skill_desc = line.split("description:")[1].strip() break - agents_dir = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") + agents_dir = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") agent_files = list(agents_dir.glob("*.md")) agent_files = [f for f in agent_files if "archived" not in str(f)] diff --git a/tests/unit/test_agent_output_cleanup_token_counting.py b/tests/unit/test_agent_output_cleanup_token_counting.py index a15c6fec..ec1166cc 100644 --- a/tests/unit/test_agent_output_cleanup_token_counting.py +++ b/tests/unit/test_agent_output_cleanup_token_counting.py @@ -30,7 +30,7 @@ def test_token_counting_script_exists(): EXPECTED TO FAIL: Script doesn't exist yet (TDD red phase). """ - script_path = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/scripts/measure_agent_tokens.py") + script_path = Path("${PROJECT_ROOT}/scripts/measure_agent_tokens.py") assert script_path.exists(), f"Token counting script not found at {script_path}" assert script_path.is_file(), f"Path exists but is not a file: {script_path}" @@ -41,7 +41,7 @@ def test_token_counting_script_is_executable(): EXPECTED TO FAIL: Script doesn't exist yet. """ - script_path = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/scripts/measure_agent_tokens.py") + script_path = Path("${PROJECT_ROOT}/scripts/measure_agent_tokens.py") assert script_path.exists(), "Script doesn't exist" content = script_path.read_text() @@ -55,7 +55,7 @@ def test_token_counting_script_has_main_function(): EXPECTED TO FAIL: Script doesn't exist yet. """ - script_path = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/scripts/measure_agent_tokens.py") + script_path = Path("${PROJECT_ROOT}/scripts/measure_agent_tokens.py") assert script_path.exists(), "Script doesn't exist" content = script_path.read_text() @@ -496,7 +496,7 @@ def test_cli_supports_baseline_measurement(): result = subprocess.run( ["python", "scripts/measure_agent_tokens.py", "--baseline"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -515,7 +515,7 @@ def test_cli_supports_post_cleanup_measurement(): result = subprocess.run( ["python", "scripts/measure_agent_tokens.py", "--post-cleanup"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -534,7 +534,7 @@ def test_cli_supports_savings_report(): result = subprocess.run( ["python", "scripts/measure_agent_tokens.py", "--report"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) @@ -554,7 +554,7 @@ def test_cli_supports_json_output(): result = subprocess.run( ["python", "scripts/measure_agent_tokens.py", "--report", "--json"], - cwd="/Users/akaszubski/Documents/GitHub/autonomous-dev", + cwd="${PROJECT_ROOT}", capture_output=True, text=True ) diff --git a/tests/unit/test_agent_output_section_length_phase2.py b/tests/unit/test_agent_output_section_length_phase2.py index 37a3ac58..b0b29fc4 100644 --- a/tests/unit/test_agent_output_section_length_phase2.py +++ b/tests/unit/test_agent_output_section_length_phase2.py @@ -25,7 +25,7 @@ # Constants -AGENTS_DIR = Path("/Users/akaszubski/Documents/GitHub/autonomous-dev/plugins/autonomous-dev/agents") +AGENTS_DIR = Path("${PROJECT_ROOT}/plugins/autonomous-dev/agents") MAX_OUTPUT_FORMAT_LINES = 30 # Phase 1 agents (already cleaned up) diff --git a/tests/unit/test_hook_activator_migration.py b/tests/unit/test_hook_activator_migration.py index d1490c40..94e5a743 100644 --- a/tests/unit/test_hook_activator_migration.py +++ b/tests/unit/test_hook_activator_migration.py @@ -945,7 +945,7 @@ def test_migration_handles_real_world_settings(self, temp_project_dir): "hooks": [ { "type": "command", - "command": "python /Users/akaszubski/Documents/GitHub/autonomous-dev/.claude/hooks/pre_tool_use.py" + "command": "python ${PROJECT_ROOT}/.claude/hooks/pre_tool_use.py" # Missing timeout! } ]