"Operate on Observal FastAPI backend routes, data services, auth,
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill server --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Server?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-server-arex-skill)More formats (shields.io, HTML) on the badges page.
---
name: server
description: "Operate on Observal FastAPI backend routes, data services, auth,
migrations, jobs, insights, and route-focused tests."
metadata:
disco-role: operating
disable-model-invocation: true
license: Apache 2.0
---
# server
Use this sub-skill when a task touches the Observal FastAPI backend: REST or GraphQL route registration, PostgreSQL models and Pydantic schemas, service-layer behavior, auth/JWT/SSO/SCIM, registry and agent/component APIs, telemetry ingest storage, ClickHouse versus PostgreSQL migrations, dynamic settings, background jobs, insights, or route-focused tests.
Do not use this sub-skill for Typer CLI command hierarchy, frontend React/TanStack Router work, harness adapter/hook-spec/session-parser additions, or repo-wide release/compliance workflow except where they call into server APIs.
## Start here
1. Identify the backend surface:
- New or changed REST route: read `references/server-architecture.md` and `references/api-data-workflows.md`.
- SQLAlchemy model, Alembic, ClickHouse, dynamic settings, or arq jobs: read `references/migrations-and-settings.md`.
- Auth, SSO, SCIM, route registration, ingest, insights, or failing backend tests: read `references/troubleshooting.md` first, then the focused reference above.
2. Verify the route graph before and after route registration changes with this sub-skill's bundled helper `scripts/check_server_routes.py`.
3. Keep changes in the server-owned layers: `observal-server/api`, `models`, `schemas`, `services`, `jobs`, `alembic/versions`, and `clickhouse/migrations`.
4. Add or update focused `tests/test_*routes*.py`, `tests/test_clickhouse_*.py`, `tests/test_migration*.py`, or `tests/test_insights*.py` coverage for the exact behavior.
## Hard boundaries
- Server owns FastAPI, data models, migrations, settings, jobs, auth/admin routes, insights, and the ingest endpoint.
- Harness telemetry owns harness registry/adapters/hook specs/session parsers/session delivery. Server work may use ingest and ClickHouse storage patterns, but harness-specific parsing or hook installation belongs there.
- CLI owns Typer commands and bundled CLI skills.
- Web owns Vite/React/TanStack Router and Playwright/e2e guidance.
- Repo-development owns contributor policy, global lint/test/release workflow, and change-review process.
## Non-negotiable backend invariants
- Register new top-level routers in `routes.py`; package routers such as `api.routes.agent` and `api.routes.admin` must import submodules so decorators attach to the shared router.
- Authenticated HTTP APIs use `Authorization: Bearer <token>` and dependencies from `api.deps`; do not add an `X-API-Key` bypass without confirming a deliberate auth design change.
- PostgreSQL schema changes require Alembic migrations. ClickHouse schema changes require SQL files in `observal-server/clickhouse/migrations/`. Do not add new ClickHouse DDL to startup code.
- Runtime-tunable settings go through `services.dynamic_settings`, not direct env-var reads. Boot-time infrastructure and crypto settings stay in `config.py`.
- Use Loguru (`from loguru import logger as optic`) with positional placeholders; never log secrets, JWTs, keys, or bearer tokens.
- Outbound network from server services must pass the existing SSRF guard patterns.
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!