| name | backend-debugging |
| description | Systematic debugging for Encore.ts backend incidents using diagnostic scripts, database queries, and structured logging. Use when backend tests fail, services crash, or async flows stall. |
Backend Debugging Skill
Mission
Restore failing Encore.ts flows quickly by combining structured logs, targeted SQL queries, and the diagnostic script arsenal. This skill keeps the top-level procedure concise; each reference file contains deep dive playbooks.
When to Use
encore testfailures or flaky integration tests- Stalled workers (runs stuck
queued/in_progress) - Graph projector or subscription issues
- CI regressions surfaced by
task backend:testor smoke suites
Rapid Response Workflow
- Reproduce & capture context – Re-run the failing test with
encore test …and collect assertion + log data. - Inspect database state – Use targeted queries from
references/debug-queries.mdto confirm run status, events, and projector outcomes. - Run diagnostic scripts – Leverage the tools catalogued in
references/diagnostic-scripts.mdto inspect timelines, cursors, and agent snapshots. - Apply fix & verify – Update code, rerun tests, and document the outcome in Graphiti (include root cause + remediation).
Triage Aids
references/common-failures.md– Symptom ➜ cause ➜ fix matrix for the most frequent issues (queued runs, hanging services, alias errors, projector lag, budget exhaustion).references/detailed-examples.md– Step-by-step walkthroughs, including the "0 screens discovered" scenario and RCA templates.
Debugging Checklist
- Worker claimed the run (status not
queued) - Subscription imports present in test file
- Run completed (
status = 'completed') - Events emitted and projector outcomes present
- Async processing given time to complete (polling, not sleeps)
- Appium/device online when required
- Structured logs inspected for module/actor context
Critical Rules
- Structured Logging: Use
encore.dev/logwithmodule,actor, and identifiers (runId). - Subscriptions: Import every PubSub worker in tests before publishing events.
- Polling: Prefer polling loops with timeouts over fixed
setTimeoutsleeps.
Reference Library
references/debug-queries.md– SQL snippets for runs, events, projector state, and lag analysisreferences/diagnostic-scripts.md– CLI usage notes forinspect-run.ts,check-agent-state.ts,check-cursor-ordering.ts, and friendsreferences/common-failures.md– Symptom → cause → fix catalogue for top regressionsreferences/detailed-examples.md– Expanded case studies (e.g., projector lag, budget exhaustion)
Testing in CI/CD
# .github/workflows/test.yml
- name: Run backend tests
run: |
cd backend
encore test
Prerequisites: Appium + device available for integration suites, environment variables configured, Run logs streamed via task backend:logs when debugging CI.
Related Skills
backend-development_skill– Integration-first testing patterns that prevent regressionse2e-testing_skill– Playwright coverage for verifying frontend/backends flows end-to-endgraphiti-mcp-usage_skill– Capture debugging RCA and permanent fixes in the knowledge graph