--- name: aidop-auto-verify-fix-loop description: Enforces automatic verify-and-fix loop after code changes in Ai-DOP (Admin.NET + Web). Use when implementing any change, especially tenant, RBAC, menu routing, and kanban data integration. --- # Ai-DOP Auto Verify Fix Loop ## Purpose After any implementation, run verification immediately, fix failures, and re-run checks until pass or explicit external blocker. ## Quick Workflow 1. Implement requested changes. 2. Choose validation set by changed area. 3. Run checks and collect errors. 4. Fix root cause (not symptom). 5. Re-run same checks. 6. Report with: changed files, checks run, results, remaining blockers. ## Validation Matrix ### Backend C# changes - Build target project first: - `references/Admin.NET/server/Admin.NET.Core`: `dotnet build --framework net8.0` - `references/Admin.NET/server/Admin.NET.Web.Entry`: `dotnet build --framework net8.0` - If API behavior changed, start/restart backend and run endpoint smoke tests. ### Frontend Web changes - In `references/Admin.NET/Web`: - `npm run build` - If route/menu/request logic changed, also verify: - page opens without blank screen - `/api` proxy path works - key endpoints return expected status ### Tenant / RBAC / Menu changes (mandatory extra checks) - Smoke check at least: - `/api/sysTenant/page` - `/api/sysRole/page` - `/api/sysMenu/list` - For tenant-switch related changes, verify `sysTenant:changeTenant` permission path. ### AiDOP Kanban / diagnosis changes - Verify related endpoints and one page-load smoke. - Confirm no new static fallback masks backend failures. ## Command Defaults - Use `npm` if `pnpm` is unavailable. - Prefer targeted builds over full-solution build for faster loop. - Keep long-running dev servers in background and poll health. ## Stop Conditions - Stop only when: - checks pass, or - blocked by external dependency (network/service/credential) with explicit blocker note. ## Output Template Use this final structure: - `Changes`: key files and what changed. - `Validation`: commands/endpoints checked. - `Result`: pass/fail per item. - `Blockers/Risks`: anything user must handle.