SR-4 dispatch cutover — replace skillForEvent / skillForAgent with renderPrompt; drop FS fallback + delta lookup + appendix gating #872
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#872
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 every dispatch site to call the new
renderPromptpipeline instead of the legacyskillForEvent/skillForAgentchain, so that the resolver, render, and abort behaviour are uniform and the legacy ladder is no longer reachable at runtime.Acceptance criteria
Replacements
apps/server/src/domain/workflow/event-handlers.ts— everyskillForEvent(...)call becomesrenderPrompt(...).skillForAgent(agent.type, base)is dropped — pass the base name straight in.apps/server/src/domain/flows/agent-nodes.ts— same, for theagent.render_skillnode body.apps/server/src/background/janitor.ts— same, forfix-ciand rebase paths.apps/server/src/background/tail-pr-rebase-watchdog.ts— same.apps/server/src/domain/workflow/slash-commands.ts— same, forbreakdownand any other slash-command paths.interpolate+applyAppendix+maybeApplyCavemanAppendix+applyArtifactStyleAppendixcollapse to a singlerenderPrompt(...)call.renderPromptreturnsnull(skill missing), the call site invokesabortDispatchMissingSkill(...)and returns. No silent skip, no 500.Code deletions
skillForEvent,STATELESS_SKILLS,shouldApplyCaveman,maybeApplyCavemanAppendix,applyArtifactStyleAppendixfromskill-loader.ts. KeeploadSkill(now used only by SR-6's library endpoint and SR-3's migration drift-check) andinterpolate.resolveSkill+SkillRow+ theskill_overrides_jsonparsing path fromapps/server/src/infrastructure/database/agent-type-config.ts. Keep the rest of the resolver intact (other artifacts unaffected).<base>-deltafilename are simplified — there is no delta variant; everyone passes the base name.Tests
event-handlers.test.ts,agent-nodes.test.ts,janitor.test.ts,tail-pr-rebase-watchdog.test.ts,slash-commands.test.ts) to use seededagent_skillrows in their fixtures instead of FSskills/*.md.abortDispatchMissingSkill(assert comment + label strip + task_history row).Out of scope
skilltable /skill_overrides_jsoncolumn (covered in SR-11).References
specs/skills-rework.md§Dispatch path, §Code deletions.just qa+ full test suite. Coordinate timing — no other branch should be touching the dispatch path while this lands.