AOI-3: skill non-removal invariant — doc and tests #732
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#732
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?
As an operator overriding skill behavior at instance scope, I want explicit confirmation that the skill name remains in the resolved capability surface even when overridden, so that I can rely on the type contract guarantee that "every
devhas skill X" without reading resolver source code.Acceptance criteria
Doc
docs/agents-architecture.md§ resolver gains a short paragraph stating:enabledcolumn by design.resolveSkill(name, ...)always returns a body when the name is set at any lower scope.Tests
foo+ instance-scopefoowith different body → instance body wins,resolveSkill('foo', ...)returns the instance body.foo, no instance row →resolveSkill('foo', ...)returns the type body.resolveSkill('foo', ...)returnsnull.Code
skilltable already lacksenabledcolumn; replace-only is current behavior).Out of scope
enabled/ tombstone column to theskilltable — would let instance disable skill, contradicts AOI invariant.References
apps/server/src/domain/agent-config/resolver.tsresolveSkill