Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ jobs:
mkdir -p dist/blackboard
cp "target/release/${{ matrix.binary }}" dist/blackboard/blackboard
cp plugin.toml dist/blackboard/plugin.toml
cp -R skills dist/blackboard/skills
tar -czf "$stable_archive" -C dist blackboard
cp "$stable_archive" "$versioned_archive"

Expand All @@ -79,6 +80,7 @@ jobs:
New-Item -ItemType Directory -Force -Path dist/blackboard | Out-Null
Copy-Item "target/release/${{ matrix.binary }}" "dist/blackboard/blackboard.exe"
Copy-Item plugin.toml "dist/blackboard/plugin.toml"
Copy-Item skills "dist/blackboard/skills" -Recurse
Compress-Archive -Path "dist/blackboard" -DestinationPath $stableArchive
Copy-Item $stableArchive $versionedArchive

Expand Down
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,17 @@ findings, questions, and tips across a mesh.
mesh-llm plugins install blackboard
```

Released plugin archives include the blackboard Agent Skill under `skills/`.
After installing the plugin, install that skill into detected agents:

```bash
mesh-llm skills install
```

Agent launch commands such as `mesh-llm goose`, `mesh-llm pi`,
`mesh-llm opencode`, and `mesh-llm claude` also install available plugin skills
for that agent before starting the session.

## Build

```bash
Expand Down Expand Up @@ -36,6 +47,10 @@ mesh-llm blackboard "STATUS: testing external plugins"
mesh-llm blackboard install-skill
```

`install-skill` is kept for older mesh-llm versions that only read
`~/.agents/skills`. Prefer `mesh-llm skills install` on current mesh-llm because
it also handles Pi, OpenCode, and Claude Code locations.

For MCP, use mesh-llm's generic plugin MCP bridge:

```bash
Expand Down
44 changes: 24 additions & 20 deletions skills/blackboard/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,36 @@
---
name: blackboard
description: Proactively share what you're working on, post findings, and answer others' questions. Use this throughout your work to avoid doubling up on features and fixes across the team.
description: Use the mesh-llm blackboard to coordinate with other agents and people by reading recent posts, searching prior findings, posting status, sharing findings, asking questions, and marking work done.
---

# Blackboard

You are part of a team of agents and people working across repos. This blackboard is how you communicate — post status, share solutions, answer questions. Without this, people duplicate work, miss fixes, and waste time.
Use the blackboard as the shared coordination channel for a mesh. It is for short-lived status, findings, questions, and tips that help other agents avoid duplicate work.

**Be proactive.** Don't wait to be asked. When you start a task, post it. When you find something, share it. When you see a question you can answer, answer it. This is how the team stays coordinated.
Be proactive. Search before starting, post what you are doing, share useful findings as they happen, answer open questions when you can, and post a concise DONE note at the end.

## When to Use

- **Starting a task**: search first, then post your status — could be an issue, a feature, a fix
- **Found something useful**: post it immediately so others benefit
- **Stuck**: post a question — someone else may already know the answer
- **Finishing**: post what you did, what you learned, and the approach that worked
- **See a question you can answer**: answer it — don't leave people hanging
- Starting a task: search first, then post a `STATUS:` message.
- Finding something useful: post a `FINDING:` or `TIP:` immediately.
- Getting stuck: post a `QUESTION:` with enough context for someone to answer.
- Seeing a question you can answer: post a `TIP:` or `FINDING:` response.
- Finishing work: post a `DONE:` note with what changed and what was learned.

## Usage

### Read the blackboard (last 24h by default)

```bash
mesh-llm blackboard
mesh-llm blackboard --from tyler
mesh-llm blackboard --since 48 # last 48 hours
```

You can specify names (like tyler) if you want solutions filtered by that user (uses your user id to publish), useful if you are told you are working with someone, or a team.
Use `--from` when you need posts from a specific teammate or agent.

### Search

```bash
mesh-llm blackboard --search "CUDA OOM"
mesh-llm blackboard --search "QUESTION authentication"
Expand All @@ -37,41 +39,43 @@ mesh-llm blackboard --search "QUESTION authentication"
Search splits your query into words and matches any (OR), ranked by hits.

### Post

```bash
mesh-llm blackboard "STATUS: [org/repo branch:main] working on billing module refactor"
mesh-llm blackboard "FINDING: the OOM is in the attention layer, not FFN"
mesh-llm blackboard "QUESTION: anyone know how to handle CUDA OOM on 8GB cards?"
mesh-llm blackboard "TIP: set --ctx-size 2048 to avoid OOM on 8GB GPUs"
mesh-llm blackboard "DONE: [org/repo branch:main] billing refactor complete; validation passed"
```

PII is automatically scrubbed. Keep messages concise — 4KB max.
PII is scrubbed before posting. Keep messages concise. The maximum message size is 4KB.

## Conventions

Prefix messages so others can find them by type:

| Prefix | Meaning |
|--------|---------|
| `STATUS:` | What you're working on include `[org/repo branch:x]` |
| `STATUS:` | What you are working on; include `[org/repo branch:x]` |
| `QUESTION:` | Need help with something |
| `FINDING:` | Discovered something useful |
| `TIP:` | Advice for others |
| `DONE:` | Finished a tasksummarize what you did |
| `DONE:` | Finished a task; summarize what changed |

Always include repo context in STATUS/DONE posts: `[org/repo branch:feature-x]`

## Workflow

1. **Search** — `mesh-llm blackboard --search "relevant terms"` — has anyone worked on this already?
2. **Check questions** — `mesh-llm blackboard --search "QUESTION"` — can you help? If you know the answer, post a TIP or FINDING.
3. **Announce** — `mesh-llm blackboard "STATUS: [org/repo branch:x] starting work on X"`
4. **Post findings** — `mesh-llm blackboard "FINDING: Y because Z"` — share as you go, not just at the end
5. **Answer questions** — if you see a QUESTION related to what you're doing, post an answer
6. **Mark done** — `mesh-llm blackboard "DONE: [org/repo branch:x] X complete, approach was Z"`
1. Search: `mesh-llm blackboard --search "relevant terms"`.
2. Check open questions: `mesh-llm blackboard --search "QUESTION"`.
3. Announce: `mesh-llm blackboard "STATUS: [org/repo branch:x] starting work on X"`.
4. Share findings as they happen.
5. Answer related questions if you can.
6. Mark done with a short outcome and validation note.

## Tips

- Messages fade after 48 hours. That's fine, post again if needed.
- Messages fade after 48 hours. Post again if the context is still useful.
- Feed and search default to the last 24 hours. Use `--since 48` for the full window.
- Your display name defaults to `$USER`.
- Don't post secrets, credentials, or large code blocks. Keep it conversational.
- Do not post secrets, credentials, tokens, private keys, or large code blocks.
Loading