askill
yams-blackboard

yams-blackboardSafety 90Repository

Blackboard plugin for OpenCode built on YAMS, enabling agents to share findings, tasks, and context via a persistent knowledge graph.

0 stars
1.2k downloads
Updated 2/5/2026

Package Files

Loading files...
SKILL.md

YAMS Blackboard Skill (OpenCode)

Overview

This skill implements the classic blackboard pattern for multi‑agent systems using YAMS as the shared memory layer. Agents can:

  • Register themselves and publish capabilities.
  • Post findings (tagged markdown documents) that other agents can query or search.
  • Create, claim, and complete tasks that coordinate work across agents.
  • Group related work into contexts and explore relationships via YAMS’ graph commands.

All data is stored in YAMS, so the same powerful search (yams grep, yams search) and graph (yams graph) capabilities are available.

Quick Reference

# Start a YAMS session (optional, auto‑starts on OpenCode session creation)
yams session start --name "opencode-session"

# Register an agent
bb_register_agent '{"id":"scanner","name":"Security Scanner","capabilities":["security","code-review"]}'

# Post a finding
bb_post_finding '{"agent_id":"scanner","topic":"security","title":"SQL Injection","severity":"high","confidence":0.94,"content":"..."}'

# Search findings
bb_search_findings '{"query":"SQL injection"}'

# Create and claim a task
bb_create_task '{"title":"Fix injection","type":"fix","created_by":"coordinator","priority":1}'
bb_claim_task '{"task_id":"t-abc123","agent_id":"fixer"}'

Tools

ToolDescription
bb_register_agentRegister an agent with ID, name, and capabilities
bb_list_agentsList all registered agents
bb_post_findingStore a finding (markdown front‑matter) on the blackboard
bb_get_findingRetrieve a finding by its ID
bb_query_findingsQuery findings by topic, agent, severity, etc.
bb_search_findingsSemantic search across finding contents
bb_acknowledge_findingMark a finding as acknowledged by an agent
bb_resolve_findingMark a finding as resolved with resolution details
bb_create_taskCreate a new coordination task
bb_get_ready_tasksList pending tasks with no unmet dependencies
bb_claim_taskClaim a pending task for an agent
bb_update_taskUpdate task status, findings, or artifacts
bb_complete_taskMark task as completed and optionally attach results
bb_fail_taskMark task as failed with an error message
bb_query_tasksQuery tasks by type, status, assignee, etc.
bb_create_contextCreate a named context to group work
bb_get_context_summaryGenerate a markdown summary of a context
bb_set_contextSet the active context for subsequent operations
bb_recent_activityRetrieve recent findings and tasks
bb_statsReturn blackboard statistics (agents, findings, tasks)
bb_connectionsExplore graph connections for an entity path

Compaction / Context Recovery

  • This skill auto-injects a blackboard summary into output.context during OpenCode compaction hooks (experimental.session.compacting and session.compacted).
  • For broader YAMS memory after compaction, use yams list (replaces the removed yams hook): yams list --owner opencode --since 24h --limit 20 --format markdown with optional --pbi, --task, --phase, --metadata key=value (repeatable), and --match-any-metadata.

Example:

yams list --owner opencode --since 24h --limit 20 --format markdown --metadata phase=checkpoint

Owner / multi-agent convention

  • When registering agents or writing findings/tasks via this plugin, use the shared owner opencode so multiple agents can read the same YAMS records. Retrieval: yams list --owner opencode ....

Canonical agent registration

bb_register_agent '{"id":"opencode-coordinator","name":"OpenCode Coordinator","capabilities":["coordination","routing","summary"]}'

Example Workflow

// Agent A registers and posts a security finding
bb_register_agent({ id: "scanner", name: "Scanner", capabilities: ["security"] })
bb_post_finding({
  agent_id: "scanner",
  topic: "security",
  title: "SQL Injection in auth.ts",
  severity: "high",
  confidence: 0.96,
  content: "Unsanitized user input reaches SQL query...",
})

// Agent B discovers the finding and creates a remediation task
bb_search_findings({ query: "SQL injection" })
bb_create_task({
  title: "Fix SQL injection",
  type: "fix",
  created_by: "coordinator",
  priority: 0,
})

// Agent B claims and works on the task
bb_claim_task({ task_id: "t-123", agent_id: "fixer" })
bb_update_task({ task_id: "t-123", status: "working" })
bb_complete_task({ task_id: "t-123", findings: ["f-xyz"] })

// Resolve the original finding
bb_resolve_finding({ finding_id: "f-abc", agent_id: "fixer", resolution: "Parameterized queries added" })

Development

The TypeScript implementation lives in blackboard.ts. Building the plugin:

bun install
bun run build

Run tests with bun test.


For more details see the plugin’s README.md and the YAMS skill definition at docs/skills/yams/SKILL.md.

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

92/100Analyzed 2/12/2026

A comprehensive and well-structured skill for implementing a blackboard pattern in multi-agent systems using YAMS. It provides a clear toolset, usage examples, and integration details for OpenCode.

90
95
70
95
90

Metadata

Licenseunknown
Version-
Updated2/5/2026
Publishertrvon

Tags

ci-cddatabasegithub-actionssecuritytesting