diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fb85bc5..2368dee 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -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" @@ -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 diff --git a/README.md b/README.md index 83844bf..f78054f 100644 --- a/README.md +++ b/README.md @@ -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 @@ -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 diff --git a/skills/blackboard/SKILL.md b/skills/blackboard/SKILL.md index b0dc901..fda6e24 100644 --- a/skills/blackboard/SKILL.md +++ b/skills/blackboard/SKILL.md @@ -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" @@ -37,14 +39,16 @@ 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 @@ -52,26 +56,26 @@ 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 task — summarize 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.