docs/guides/labels.md
Rama main · réplica de lectura del repositorio original.
# Label taxonomy
Labels organise issues and route `ticket-gate`: the type and special labels decide which lenses
join the critic, and the area labels say which part of Actual-sync a ticket touches. Every work
ticket needs at least one area label or the gate stops at Step 0b.
`.github/labels.yml` declares the same set for GitHub. Apply it with `bash scripts/sync-labels.sh`
(`--check` changes nothing and lists drift). The script creates and updates, and never deletes.
Do not create labels by hand.
## Type labels
| Label | Meaning | Gate effect |
|---|---|---|
| `bug` | Something isn't working | - |
| `enhancement` | New feature or request | - |
| `security` | Security vulnerability or hardening | Adds the security lens |
| `infrastructure` | CI/CD, Docker, dependencies | - |
| `design` | Dashboard UI, UX, accessibility | - |
| `documentation` | Docs updates | - |
| `testing` | Tests, QA, coverage | - |
### Area labels
| Label | Area | Triggers |
|---|---|---|
| `api` | Dashboard/API routes or contracts (`/api/dashboard/*`) | API-design checklist in the critic's brief |
| `privacy` | Personal data (bank/transaction data, credentials, budget passwords) | privacy-regime skill if installed; rule 4 always applies |
| `sync-engine` | `src/syncService.js` sync flow, retries, correlation IDs | - |
| `actual-api` | `@actual-app/api` integration, budget download/decrypt, E2EE | - |
| `config` | Config schema/loader, AJV validation, config bootstrap | - |
| `dashboard` | Express dashboard, `dashboard.html`, `healthCheck.js` | - |
| `notifications` | Telegram/Slack/Discord/email/ntfy/webhook, message formatting | - |
| `metrics` | Prometheus / prom-client | - |
| `sync-history` | better-sqlite3 storage (`syncHistory.js`) | - |
| `logging` | Logger, redaction, rotation | - |
| `docker` | Image, entrypoint, PUID/PGID | - |
| `ci-release` | GitHub Actions, auto-release, version bump | - |
The first column of this table is the area set `check-ticket-mechanics.sh --labels-doc` accepts.
It matches the areas dropdown in the issue templates; change both together.
## Priority labels
| Label | Meaning |
|---|---|
| `P0` | Critical, blocks release |
| `P1` | High, important for current milestone |
| `P2` | Medium, should do, not blocking |
| `P3` | Low, nice to have |
## Special labels
| Label | Effect |
|---|---|
| `critical` | Adds the security lens and puts the critic in maximum scrutiny |