Skip to content

Add right-size-capability skill: tool vs MCP vs skill decision gate - #41

Open
alexbaur wants to merge 1 commit into
mainfrom
right-size-capability
Open

alexbaur wants to merge 1 commit into
mainfrom
right-size-capability

Conversation

@alexbaur

Copy link
Copy Markdown
Collaborator

What

Adds right-size-capability — a capability-level decision gate, sibling to add-supervisor's "is a supervisor warranted?" pre-gate. Before an agent-builder adds a capability, it decides whether it should be a UC-function tool, an MCP server, or an Agent Skill, and runs a falsification pass that argues against the option the user named before recommending. Builders routinely ask for the heavier mechanism ("write me an MCP server") when a governed UC function would do.

Design

  • Invariant cascade (first gate that fires leads): knowledge-vs-action → governed-in-workspace-vs-served → tenancy/reuse, with a governance/observability tiebreak.
  • Falsification pass runs before any recommendation: steelman the two options not chosen, test the leading option against its own necessary condition, and explicitly rebut the user's named artifact when the evidence lands elsewhere.
  • Escalation trigger is structural (keyed to cascade outputs, not a self-reported "feels close"): inline self-critique by default with a decision-log seam; an independent single subagent steelman sits behind a flag (RIGHT_SIZE_ESCALATE=fork), off by default. It's a conditional single escalation — deliberately not a per-option debate swarm, so it stays on the right side of the same "don't over-orchestrate" gate add-supervisor applies.

Framing (native to this repo)

  • Default = UC-function tool (governed by UC, in-workspace, traced as a tool call for free) → routes to uc-functions-ops.
  • MCP server and Agent Skill are decision + guidance paths — the template doesn't scaffold them today, so the skill decides and points the builder at the mechanism rather than generating it. (A scaffolder for those would be a follow-up.)
  • Self-contained and grounded in the Big Book operating principles (start narrow / expand deliberately; govern tools, data, actions centrally; design for observability) — no external references.

Changes

  • plugin/skills/right-size-capability/SKILL.md — new skill
  • plugin/skills/install_skills.sh — registered in SKILL_NAMES + both --list/help blocks

Testing

  • Frontmatter valid; matches repo convention (name + description).
  • install_skills.sh: bash -n clean; --list renders the new entry.
  • Full suite: pytest tests -vv → 91 passed (Databricks CLI v1.16.0) — same as the post-Add supervisor pattern: /add-supervisor skill (custom LangGraph) #33 baseline; no test enumerates skills, so the install-list addition is not test-gated and nothing regresses.

Follow-ups (not in this PR)

  • Wire it as a gate: reference it from uc-functions-ops ("When to use") and the scaffold's Phase 3 (Tools) — mirroring how add-supervisor is referenced from agentops-lifecycle Step 3.5. Held out so this PR stays a focused, reviewable addition.
  • Merge-order note: an in-flight agentops-bigbook branch also appends to install_skills.sh SKILL_NAMES; whichever merges second will need a one-line conflict resolution there.

This pull request and its description were written by Isaac.

A capability-level decision gate, sibling to add-supervisor's "is a supervisor
warranted?" pre-gate. Before adding a capability to an agent, it decides whether
it should be a UC-function tool, an MCP server, or an Agent Skill — and runs a
falsification pass that argues against the option the user named before
recommending. Grounded in the Big Book operating principles (start narrow,
govern centrally, design for observability); self-contained.

- New skill: plugin/skills/right-size-capability/SKILL.md
- Registered in install_skills.sh (SKILL_NAMES + both listings)

Default recommendation is the UC-function tool (governed, in-workspace, traced);
MCP and Agent Skill are decision+guidance paths (not template-scaffolded today).

Co-authored-by: Isaac <no-reply@databricks.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant