Intent in-tca-remediate
TCA remediate: execute prioritized fix batches in main conversation with compile/test gates
git clone https://github.com/matthewsinclair/intent
T=$(mktemp -d) && git clone --depth=1 https://github.com/matthewsinclair/intent "$T" && mkdir -p ~/.claude/skills && cp -r "$T/intent/plugins/claude/skills/in-tca-remediate" ~/.claude/skills/matthewsinclair-intent-in-tca-remediate && rm -rf "$T"
intent/plugins/claude/skills/in-tca-remediate/SKILL.mdTCA Remediate
Executes the remediation phase (Phase 4) of a Total Codebase Audit. All remediation happens in the main conversation with compile/test gates between batches.
For reference:
intent/docs/total-codebase-audit.md
Procedure
1. Read synthesis output
Read the synthesis WP's
socrates.md from /in-tca-synthesize. This contains the prioritized remediation backlog with fix batches.
2. Confirm remediation scope
Ask the user which batches to tackle this session:
- All batches (A through H)?
- Just P0 and P1 (Batches A-D)?
- Specific batches?
Set expectations: P0+P1 typically takes 1-2 hours. Full remediation may take 2-4 hours depending on scope.
3. Execute remediation in main conversation
DO ALL REMEDIATION IN THE MAIN CONVERSATION. Sub-agents cannot coordinate compile+test cycles and hit permission walls on file edits.
For each batch:
-
Apply fixes for each item in the batch
-
After every 5-8 edits: run compile+test gate
# Elixir mix compile --warnings-as-errors && mix test --failed # Rust cargo check && cargo test # Swift swift build && swift test -
Track completion at individual item level, not batch level
-
Mark false positives explicitly -- do not just skip them, record why
-
Commit at natural stopping points (end of each batch or every 10-15 fixes)
4. Batch ordering
Execute in priority order:
Batch A: P0 critical bugs -- test after each fix Batch B: P1 top Highlander fix -- test after batch Batch C: P1 second Highlander -- test after batch Batch D: P1 domain-scoped dedup -- test after batch Batch E: P2a mechanical fixes -- test after batch Batch F: P2b refactoring -- test after each extraction Batch G: P2b multi-head -- test after batch Batch H: P3 style fixes -- test after batch
Interleaving: P2a mechanical fixes (Batch E) can be interleaved with P1 work since they touch different files. P2b refactoring should wait until P1 shared modules exist.
5. Parallel extraction (exception only)
For P1/P2b extraction work ONLY, when file scopes are completely disjoint:
- Sub-agents may be used for extraction
- Create target modules FIRST, then update callers (creation-before-migration)
- Main session does verification pass after all agents complete
- Ensure file scopes are truly disjoint before launching parallel agents
6. Test optimization
Between individual edits (fast feedback):
mix test --failed mix test test/specific_file_test.exs
At batch boundaries (full verification):
# Elixir mix compile --warnings-as-errors && mix test && mix credo --strict # Rust cargo check && cargo test && cargo clippy -- -D warnings # Swift swift build && swift test
7. Handle false positives
If a fix breaks tests, investigate the data type before forcing the fix:
on a plain map is correct -- only flag on known defstructs (R7)Map.get
on a truthy non-boolean value may be intentional (R8)&&
on controlled inputs may be correct (not user input)String.to_atom
Revert broken fixes immediately. Mark as false positive with explanation in the synthesis doc.
8. Final verification
After all batches are complete:
# Full verification pass mix compile --warnings-as-errors && mix test && mix credo --strict
Commit the final state. Proceed to
/in-tca-finish.
Important Notes
- NEVER do remediation in sub-agents (except parallel extraction with disjoint files)
- Track completion at individual item level, not batch level
- Mark false positives explicitly with reasons
- Create target modules FIRST, then update callers
- Run mix test --failed between edits; full suite at batch boundaries
- Commit at natural stopping points, not at the very end