Skip to content

refactor(agents): implement integration-driven capability architecture#593

Merged
zbigniewsobiecki merged 1 commit intodevfrom
refactor/integration-driven-capabilities
Mar 1, 2026
Merged

refactor(agents): implement integration-driven capability architecture#593
zbigniewsobiecki merged 1 commit intodevfrom
refactor/integration-driven-capabilities

Conversation

@zbigniewsobiecki
Copy link
Copy Markdown
Member

@zbigniewsobiecki zbigniewsobiecki commented Mar 1, 2026

Summary

This PR implements a major refactoring of the agent capability system, replacing ad-hoc capability flags with a unified capability-centric architecture where:

  • Integrations provide capabilities (e.g., pm integration provides pm:read, pm:write, pm:checklist)
  • Capabilities provide tools (e.g., pm:read provides ReadWorkItem, ListWorkItems gadgets)

@nhopeatall
Copy link
Copy Markdown
Collaborator

nhopeatall commented Mar 1, 2026

⚠️ review agent failed

Error: Claude Code process exited with code 1

Manual intervention may be required.

@zbigniewsobiecki zbigniewsobiecki requested a review from aaight March 1, 2026 15:49
@nhopeatall
Copy link
Copy Markdown
Collaborator

nhopeatall commented Mar 1, 2026

⚠️ review agent failed

Error: Claude Code process exited with code 1

Manual intervention may be required.

@zbigniewsobiecki zbigniewsobiecki force-pushed the refactor/integration-driven-capabilities branch from d89314e to 41a51b1 Compare March 1, 2026 15:51
Replace the ad-hoc capability system with a unified capability-centric
architecture where integrations provide capabilities and capabilities
provide tools.

Key changes:

**New capability system (`src/agents/capabilities/`):**
- Add capability registry mapping capabilities to gadgets and SDK tools
- Add resolver functions for deriving integrations from capabilities
- Add `resolveEffectiveCapabilities()` for runtime optional capability filtering
- Add `createIntegrationChecker()` factory for project integration lookups
- Add `generateUnavailableCapabilitiesNote()` for system prompt injection

**Schema changes (`src/agents/definitions/schema.ts`):**
- Replace boolean capability flags with typed capability arrays
- `capabilities: { required: Capability[], optional: Capability[] }`
- Remove separate `integrations` and `tools` sections (now derived)
- Remove `gadgetBuilder` strategy (replaced by capability-based building)

**Agent definition updates (all YAML files):**
- Migrate all 10 agent definitions to new capability format
- debug.yaml: Remove fs:write (read-only analysis agent)
- respond-to-ci.yaml: Add pm:checklist to optional capabilities

**Runtime improvements:**
- Wire `IntegrationChecker` through profiles.ts and llmist backend
- Optional capabilities filtered by actual project integration availability
- Fix: Throw on missing gadget constructors (was silently skipped)
- Fix: Only fall back to full access for "not found" errors in legacy shim
- Fix: Pass correct agentType to preExecute hooks
- Add validation warning for missing tools in filterToolManifests

**Test coverage:**
- Add comprehensive resolver.test.ts for capability resolution functions
- Update all affected tests for new capability format
- Add mock for createIntegrationChecker in llmist tests

This refactoring:
- Eliminates redundancy between schema and runtime capability logic
- Makes integration requirements derivable from capability declarations
- Provides architectural safety (tools don't exist if cap not enabled)
- Enables graceful degradation for optional integrations

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@zbigniewsobiecki zbigniewsobiecki force-pushed the refactor/integration-driven-capabilities branch from 41a51b1 to e5d1c24 Compare March 1, 2026 15:56
@zbigniewsobiecki zbigniewsobiecki merged commit ee96a93 into dev Mar 1, 2026
6 checks passed
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.

2 participants