SC-3 Skill resolver swap (skillForEvent reads from DB) #625
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#625
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?
User story
As a platform engineer, I want
skillForEventto route through the new resolver so dispatch picks up DB-stored skill overrides immediately, while/skills/*.mdstays as the factory image and the existing delta-skill resume rule keeps working unchanged.Acceptance criteria
Loader swap
apps/server/src/domain/analytics/skill-loader.ts::skillForEventbecomes:loadSkill(name)filesystem reader stays as the factory-image loader called bybuiltin-sync.tsonly.agent-runner.ts,dispatch/*) consumeskillForEventand notloadSkilldirectly. Migrate any stragglers.Legacy
skill_overridesmigrationagents.json::types[].skill_overridesbecomes a no-op at runtime.builtin-syncreads the field, converts each entry into anagent_type-scopeskillrow whose body equals the contents of the named file in/skills/, then ignores the field on subsequent boots.docs/agents-architecture.mddocuments the field as deprecated and points operators at the dashboard.Tests
apps/server/src/domain/analytics/skill-loader.test.tscases re-pass against the resolver-backed implementation.agent_type-scope skill row shadows the builtin for the matching agent.instance-scope skill row shadows the agent-type one.agents.json::types[].skill_overrides = { review: "design-review" }produces anagent_type-scopeskillrow namedreviewwhose body is the contents of/skills/design-review.md.Out of scope
References
specs/agent-config-customization.md§Story SC-3apps/server/src/domain/analytics/skill-loader.ts— primary swap siteapps/server/src/http/webhook-routing.ts::skillForAgentand the legacyskill_overridesresolution mapapps/server/src/shared/config/agents-config-schema.ts—skill_overrides: z.record(z.string(), z.string()).optional()