"FastAPI backend routes, auth credentials, data services,
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill backend-core --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Backend Core?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-backend-core-arex-skill)More formats (shields.io, HTML) on the badges page.
---
name: backend-core
description: "FastAPI backend routes, auth credentials, data services,
migrations, tests, and service-layer troubleshooting for Open Wearables."
disable-model-invocation: true
metadata:
disco-role: operating
license: MIT
---
# Backend Core
Use this sub-skill for Open Wearables FastAPI backend work: API routes, developer auth, API keys, SDK applications, users, connections, summaries, events, health scores, timeseries, sync status, seed data, outgoing webhooks, service/repository/model/schema patterns, configuration, migrations, Celery/Redis orchestration, and backend tests.
## Route the task
- For endpoint families, auth requirements, route registration, OpenAPI/docs navigation, and API-change checklists, read [api-routes.md](references/api-routes.md).
- For data models, repositories, service layer patterns, schemas, summaries/events/timeseries flow, sync status, seed data, and outgoing webhook internals, read [data-model-and-services.md](references/data-model-and-services.md).
- For concrete backend commands, local Docker/uv workflows, migrations, seeding, targeted pytest selection, and endpoint implementation steps, read [workflows.md](references/workflows.md).
- For PostgreSQL/Redis/testcontainers, auth/API-key, Svix, AWS, Celery, OpenAPI, pagination/date, and migration failures, read [troubleshooting.md](references/troubleshooting.md).
- When a checkout is available, run the safe static checker before or after backend edits: `python skills/disco/open-wearables/sub-skills/backend-core/scripts/check_backend_core.py --repo-root .`. Add `--import-openapi` only when backend dependencies and config are ready; it still avoids network and writes.
## Boundaries
This sub-skill owns generic backend/API behavior. Route provider-specific OAuth, provider factory registration, coverage constants, vendor workout parsing, provider webhook parsing, historical backfill internals, and provider-specific import normalization to [provider-integrations](../provider-integrations/SKILL.md). Route React portal pages, API hooks, query keys, runtime frontend config, and UI presentation to [frontend-portal](../frontend-portal/SKILL.md). Route FastMCP tools, assistant configs, and MCP REST-client behavior to [mcp-server](../mcp-server/SKILL.md).
When work crosses boundaries, keep the shared endpoint contract, auth, database schema, service/repository changes, migrations, and external API docs navigation here; ask the owning sibling sub-skill to handle provider internals or frontend/MCP callers.
## Non-negotiable backend rules
- Preserve the route hierarchy: module routers are prefix-free, the v1 router attaches prefixes/tags, the head router attaches the API version prefix, and `app.main` includes the head router.
- Do not use trailing slash route roots on prefixed routers. Use `""` for a prefixed router's root endpoint; `"/"` can create 307 redirects behind reverse proxies.
- Keep route handlers thin. Validate/parse request inputs, call services, and return Pydantic response models; do not call repositories directly from routes.
- Keep repositories database-only and model-only. Pydantic schemas and business decisions belong in services or route schemas, not repository methods.
- Use SQLAlchemy 2.0 `Mapped[...]` model fields and the existing `app.mappings` aliases for IDs, FKs, constrained strings, dates, decimals, JSON, and relationships.
- Use Pydantic v2 schema style with `ConfigDict(from_attributes=True)` for ORM reads and schema defaults for generated IDs/timestamps where appropriate.
- Protect public/external data APIs with `ApiKeyDep` unless the route is intentionally token/SDK/OAuth/system-specific; protect dashboard/admin routes with `DeveloperDep`.
- If you add, remove, rename, or retag an endpoint tagged `External: *`, update the API Reference navigation in `docs/docs.json` in the same change.
- Treat credentials as secrets. Never log API keys, JWTs, application secrets, provider OAuth tokens, Svix tokens, AWS keys, or master encryption material.
- Run focused backend quality checks after changes when dependencies are available: targeted `pytest`, `ruff check`, `ruff format --check` or format, and `ty check` for type-impacting work.
## Fast start for future agents
1. Classify the task as route/API contract, data-service/model, background/sync/webhook, migration/config, test failure, or troubleshooting.
2. Read the nearest reference in this sub-skill; avoid reopening source files unless you are implementing or verifying drift.
3. For endpoint changes, update the route module, schemas, service, repository/model/migration if needed, route registration/tags, tests, and external API docs navigation together.
4. For data ingestion or sync changes, verify the affected data-source identity, event/timeseries upsert semantics, sync-status events, and outgoing webhook side effects.
5. Prefer the smallest safe test set first, then expand to the native candidate files listed in [workflows.md](references/workflows.md) when the change scope requires it.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!