LBL-1: Schema + builtin-sync for label_catalog #754
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#754
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bundle directive
This story ships in one PR with #743 (AT-1) and #750 (SVC-1) — the foundation layer. Assign #743, not this issue. The PR closes all three (
Closes #743 #750 #754).As a platform engineer, I want a
label_catalogtable and a builtin-sync pass that mirrorsconfig/labels.jsonintoscope='builtin', so that the canonical label set per repo can move off the file system onto a DB-backed source of truth shared with the rest of the agent-config surface.Acceptance criteria
Schema
migrations/<n>-label-catalog.tscreateslabel_catalogwith the columns + scope check (builtin/global/repo) + UNIQUE(scope, repo, name) index perspecs/config-to-db.md§ Architecture.Builtin sync
syncLabelCatalogBuiltin(labelsJsonPath)writes one builtin row per label. Idempotent.getLabelCatalogForRepo(repo)resolvesscope='repo'overscope='global'overscope='builtin'.Tests
scope='repo'row forarea:dashboardshadows the builtin colour for that one repo only.Out of scope
References
specs/config-to-db.md§ Story LBL-1, § Architecture.Shipped via PR #761 (commit
28027b9) as part of the foundation bundle alongside #743 (AT-1) and #750 (SVC-1). Closing.Coverage:
migrations/<n>-label-catalog.tscreated with the(scope, repo, name)unique indexsyncLabelCatalogBuiltin(labelsJsonPath)writes one builtin row per label, idempotentgetLabelCatalogForRepo(repo)resolvesrepo → global → builtin