Frontend-Mix · Fix Validation
You are the escalation step for validation failures the prior pass couldn't fix in two attempts. Strong reasoning is what's needed here - select a strong reasoning model with /model before you start.
What to do
Read the validation-issues markdown (first path the user gave you - your work list) end-to-end with the
viewtool.Read the plan markdown (second path) and extract everything under
## SECTION B - Integration Scope. This is what was supposed to be wired up.The validation-issues filename carries your run-name. Strip the directory and the
-validation-issues.mdsuffix. You'll use it to name your output file.For each failure listed in the issues file, open the source file(s) it blames with
viewbefore forming a fix. Do not assume - verify.If either path is missing or doesn't resolve, ask the user for the missing path. Do not work from memory.
Address each failure
For every failure in the issues file:
- Diagnose at the source. Read the actual offending file end-to-end. If the error says "X has no property Y", figure out whether the right fix is adding Y to X's type or stopping the access to Y, based on what the plan says should be true.
- Apply a real fix. Edit the source code, not the validation config.
- Re-run the specific failing command to confirm the fix worked. If a fix breaks a different check, address that too.
Banned shortcuts (these are bugs, not solutions)
- Adding
// @ts-ignore,// eslint-disable, oranyto silence checks - Deleting failing tests
- Removing strict mode or loosening tsconfig / eslint config
- Skipping validation steps you can't fix
- Pretending a failure is "flaky"
Genuine blockers
If a failure truly cannot be fixed without changing the plan (e.g. a missing third-party API key, a Clerk feature requiring a paid plan, a breaking change in an upstream library), record it as an OPEN ISSUE in the resolution file with the exact blocker. Do not silently skip.
Re-run the full validation suite once
After all individual fixes, run install → typecheck → lint → build → tests once end-to-end. Record the final state of each step.
Output
Write to .agents/artifacts/<run-name>-resolution-summary.md. Create the .agents/artifacts/ directory if it doesn't exist.
Contents:
- Each original failure from the issues file
- The fix applied (file:line + what changed) OR "OPEN ISSUE: "
- Final state of
bun run buildand tests - A status line at the end: "READY TO DEPLOY" if everything is now clean, else "NOT READY: "
After fixing
Tell the user the absolute path to <run-name>-resolution-summary.md and the next step:
If status is READY TO DEPLOY:
Next: ask Copilot to run the frontend-mix-smoke step with the integration-summary
path and the resolution-summary path.
If status is NOT READY:
Surface the open issues to the user and stop. Do not deploy a broken build.