Merge pull request #2491 from gaurav0107/fix/2477-opencode-command-agent-scope

fix(opencode): resolve command agent ids to registered opencode agents
This commit is contained in:
haelyra 2026-07-24 12:53:30 -04:00 committed by GitHub
commit 8512dc6f42
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
32 changed files with 53 additions and 34 deletions

View file

@ -184,7 +184,7 @@ Create a detailed implementation plan for: {input}
```markdown ```markdown
--- ---
description: Create implementation plan description: Create implementation plan
agent: everything-claude-code:planner agent: planner
--- ---
Create a detailed implementation plan for: $ARGUMENTS Create a detailed implementation plan for: $ARGUMENTS

View file

@ -1,6 +1,6 @@
--- ---
description: Fix build and TypeScript errors with minimal changes description: Fix build and TypeScript errors with minimal changes
agent: everything-claude-code:build-error-resolver agent: build-error-resolver
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Save verification state and progress checkpoint description: Save verification state and progress checkpoint
agent: everything-claude-code:build agent: build
--- ---
# Checkpoint Command # Checkpoint Command

View file

@ -1,6 +1,6 @@
--- ---
description: Review code for quality, security, and maintainability description: Review code for quality, security, and maintainability
agent: everything-claude-code:code-reviewer agent: code-reviewer
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Generate and run E2E tests with Playwright description: Generate and run E2E tests with Playwright
agent: everything-claude-code:e2e-runner agent: e2e-runner
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Run evaluation against acceptance criteria description: Run evaluation against acceptance criteria
agent: everything-claude-code:build agent: build
--- ---
# Eval Command # Eval Command

View file

@ -1,6 +1,6 @@
--- ---
description: Analyze instincts and suggest or generate evolved structures description: Analyze instincts and suggest or generate evolved structures
agent: everything-claude-code:build agent: build
--- ---
# Evolve Command # Evolve Command

View file

@ -1,6 +1,6 @@
--- ---
description: Fix Go build and vet errors description: Fix Go build and vet errors
agent: everything-claude-code:go-build-resolver agent: go-build-resolver
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Go code review for idiomatic patterns description: Go code review for idiomatic patterns
agent: everything-claude-code:go-reviewer agent: go-reviewer
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Go TDD workflow with table-driven tests description: Go TDD workflow with table-driven tests
agent: everything-claude-code:tdd-guide agent: tdd-guide
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Export instincts for sharing description: Export instincts for sharing
agent: everything-claude-code:build agent: build
--- ---
# Instinct Export Command # Instinct Export Command

View file

@ -1,6 +1,6 @@
--- ---
description: Import instincts from external sources description: Import instincts from external sources
agent: everything-claude-code:build agent: build
--- ---
# Instinct Import Command # Instinct Import Command

View file

@ -1,6 +1,6 @@
--- ---
description: Show learned instincts (project + global) with confidence description: Show learned instincts (project + global) with confidence
agent: everything-claude-code:build agent: build
--- ---
# Instinct Status Command # Instinct Status Command

View file

@ -1,6 +1,6 @@
--- ---
description: Extract patterns and learnings from current session description: Extract patterns and learnings from current session
agent: everything-claude-code:build agent: build
--- ---
# Learn Command # Learn Command

View file

@ -1,6 +1,6 @@
--- ---
description: Orchestrate multiple agents for complex tasks description: Orchestrate multiple agents for complex tasks
agent: everything-claude-code:planner agent: planner
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Create implementation plan with risk assessment description: Create implementation plan with risk assessment
agent: everything-claude-code:planner agent: planner
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: List registered projects and instinct counts description: List registered projects and instinct counts
agent: everything-claude-code:build agent: build
--- ---
# Projects Command # Projects Command

View file

@ -1,6 +1,6 @@
--- ---
description: Promote project instincts to global scope description: Promote project instincts to global scope
agent: everything-claude-code:build agent: build
--- ---
# Promote Command # Promote Command

View file

@ -1,6 +1,6 @@
--- ---
description: Remove dead code and consolidate duplicates description: Remove dead code and consolidate duplicates
agent: everything-claude-code:refactor-cleaner agent: refactor-cleaner
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Fix Rust build errors and borrow checker issues description: Fix Rust build errors and borrow checker issues
agent: everything-claude-code:rust-build-resolver agent: rust-build-resolver
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Rust code review for ownership, safety, and idiomatic patterns description: Rust code review for ownership, safety, and idiomatic patterns
agent: everything-claude-code:rust-reviewer agent: rust-reviewer
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Rust TDD workflow with unit and property tests description: Rust TDD workflow with unit and property tests
agent: everything-claude-code:tdd-guide agent: tdd-guide
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Run AgentShield against agent, hook, MCP, permission, and secret surfaces. description: Run AgentShield against agent, hook, MCP, permission, and secret surfaces.
agent: everything-claude-code:security-reviewer agent: security-reviewer
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Run comprehensive security review description: Run comprehensive security review
agent: everything-claude-code:security-reviewer agent: security-reviewer
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Configure package manager preference description: Configure package manager preference
agent: everything-claude-code:build agent: build
--- ---
# Setup Package Manager Command # Setup Package Manager Command

View file

@ -1,6 +1,6 @@
--- ---
description: Generate skills from git history analysis description: Generate skills from git history analysis
agent: everything-claude-code:build agent: build
--- ---
# Skill Create Command # Skill Create Command

View file

@ -1,6 +1,6 @@
--- ---
description: Enforce TDD workflow with 80%+ coverage description: Enforce TDD workflow with 80%+ coverage
agent: everything-claude-code:tdd-guide agent: tdd-guide
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Analyze and improve test coverage description: Analyze and improve test coverage
agent: everything-claude-code:tdd-guide agent: tdd-guide
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Update codemaps for codebase navigation description: Update codemaps for codebase navigation
agent: everything-claude-code:doc-updater agent: doc-updater
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Update documentation for recent changes description: Update documentation for recent changes
agent: everything-claude-code:doc-updater agent: doc-updater
subtask: true subtask: true
--- ---

View file

@ -1,6 +1,6 @@
--- ---
description: Run verification loop to validate implementation description: Run verification loop to validate implementation
agent: everything-claude-code:build agent: build
--- ---
# Verify Command # Verify Command

View file

@ -77,10 +77,16 @@ if (
else failed++; else failed++;
if ( if (
test('command markdown frontmatter uses plugin-scoped agent ids', () => { test('command markdown frontmatter agent ids resolve to a registered opencode agent', () => {
const commandsDir = path.join(opencodeDir, 'commands'); const commandsDir = path.join(opencodeDir, 'commands');
const registeredAgents = new Set(Object.keys(config.agent || {}));
assert.ok(registeredAgents.size > 0, 'Expected opencode.json to register at least one agent');
for (const entry of fs.readdirSync(commandsDir)) { for (const entry of fs.readdirSync(commandsDir)) {
if (!entry.endsWith('.md')) {
continue;
}
const body = fs.readFileSync(path.join(commandsDir, entry), 'utf8'); const body = fs.readFileSync(path.join(commandsDir, entry), 'utf8');
const match = body.match(/^agent:\s*(.+)$/m); const match = body.match(/^agent:\s*(.+)$/m);
@ -88,9 +94,22 @@ if (
continue; continue;
} }
const agentId = match[1].trim().replace(/^['"]|['"]$/g, '');
// Regression guard for #2477: opencode registers these agents unscoped
// in opencode.json's `agent` map, so ANY namespace-scoped id
// (`<plugin>:<agent>` — e.g. the Claude Code `everything-claude-code:`
// prefix) fails to resolve ("Agent not found") and hard-breaks subtask
// commands like /code-review on opencode. Reject the whole scoped class,
// not just the one legacy prefix.
assert.ok( assert.ok(
match[1].startsWith('everything-claude-code:'), !agentId.includes(':'),
`Expected plugin-scoped agent id in ${entry}, got: ${match[1]}` `${entry}: command agent must be an unscoped opencode agent id, got: ${agentId}`
);
assert.ok(
registeredAgents.has(agentId),
`${entry}: command agent "${agentId}" is not registered in opencode.json's agent map`
); );
} }
}) })