# Track state for tier2_no_appdata_20260618 # Updated by Tier 2 Tech Lead as tasks complete [meta] track_id = "tier2_no_appdata_20260618" name = "Tier 2 Sandbox - Move State/Failures Off AppData" status = "completed" current_phase = "complete" last_updated = "2026-06-18" [blocked_by] # No blockers. The track can start immediately. [blocks] # No downstream blocks. The user's re-bootstrap of the live Tier 2 clone is a manual action. [phases] phase_1 = { status = "pending", checkpointsha = "", name = "Move the default state and failure-report paths" } phase_2 = { status = "pending", checkpointsha = "", name = "Update OpenCode permissions and agent/command prompts" } phase_3 = { status = "pending", checkpointsha = "", name = "Update bootstrap scripts" } phase_4 = { status = "pending", checkpointsha = "", name = "Update tests" } phase_5 = { status = "pending", checkpointsha = "", name = "Update user-facing docs and workflow" } phase_6 = { status = "pending", checkpointsha = "", name = "Conductor verification" } [tasks] t1_1 = { status = "pending", commit_sha = "", description = "Update scripts/tier2/failcount.py:_state_dir default to scripts/tier2/state//" } t1_2 = { status = "pending", commit_sha = "", description = "Update scripts/tier2/write_report.py:_failures_dir default to scripts/tier2/failures/" } t1_3 = { status = "pending", commit_sha = "", description = "scripts/tier2/run_track.py: chdir to repo_path before state/report calls" } t1_4 = { status = "pending", commit_sha = "", description = "Add scripts/tier2/state/ and scripts/tier2/failures/ to .gitignore" } t2_1 = { status = "pending", commit_sha = "", description = "conductor/tier2/opencode.json.fragment: remove AppData allow rules from read/write" } t2_2 = { status = "pending", commit_sha = "", description = "conductor/tier2/opencode.json.fragment: add *AppData\\* bash deny rule" } t2_3 = { status = "pending", commit_sha = "", description = "conductor/tier2/agents/tier2-autonomous.md: replace AppData convention with inside-clone" } t2_4 = { status = "pending", commit_sha = "", description = "conductor/tier2/commands/tier-2-auto-execute.md: replace AppData paths with inside-clone paths" } t3_1 = { status = "pending", commit_sha = "", description = "scripts/tier2/setup_tier2_clone.ps1: stop creating AppData dirs" } t3_2 = { status = "pending", commit_sha = "", description = "scripts/tier2/run_tier2_sandboxed.ps1: remove AppData dir references" } t4_1 = { status = "pending", commit_sha = "", description = "tests/test_tier2_slash_command_spec.py: assert NO AppData refs in agent prompt" } t4_2 = { status = "pending", commit_sha = "", description = "tests/test_tier2_slash_command_spec.py: assert NO AppData refs in command prompt" } t4_3 = { status = "pending", commit_sha = "", description = "tests/test_no_temp_writes.py: replace AppData refs in docstring + fix message" } t5_1 = { status = "pending", commit_sha = "", description = "docs/guide_tier2_autonomous.md: replace AppData paths with inside-clone paths" } t5_2 = { status = "pending", commit_sha = "", description = "conductor/workflow.md hard bans table: AppData denied (no exception)" } t5_3 = { status = "pending", commit_sha = "", description = "scripts/tier2/write_track_completion_report.py: use inside-clone paths in output" } t6_1 = { status = "pending", commit_sha = "", description = "Run targeted test batches (test_failcount, test_tier2_report_writer, test_tier2_slash_command_spec, test_no_temp_writes)" } t6_2 = { status = "pending", commit_sha = "", description = "Run scripts/audit_no_temp_writes.py --strict" } t6_3 = { status = "pending", commit_sha = "", description = "Register the track in conductor/tracks.md" } [verification] phase_1_complete = false phase_2_complete = false phase_3_complete = false phase_4_complete = false phase_5_complete = false phase_6_complete = false