blackboard
Skill0 starsChanged 56 days agoApache-2.0View on GitHub
Typed multi-model workspace with kitchen-shift ownership, resource, hazard, protected-target, and next-action handovers.
3 other projects use a version of this.
Adopted by
Most recently taken up by
- nivoset/skillstheir own version, first seen Oct 18, 2026
- modeled-information-format/mnemonictheir own version, first seen Oct 13, 2026
- Lutra-Fs/blackboard-skilltheir own version, first seen Oct 11, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- modeled-information-format/mnemonic★ 23same name
- nivoset/skills★ 4same name
- Lutra-Fs/blackboard-skill★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository12 other files it gives its agents.
- chatterbox-tts-recoverySkill
- check-notes-firstSkill
- council-blackboardSkill
- invariant-guarded-debuggingSkill
- local-model-runtime-profilerSkill
- minimum-sufficient-changeSkill
- openwebui-regression-testSkill
- privileged-operationsSkill
- risk-aware-retrySkill
- session-handoverSkill
- symlink-space-saverSkill
- video-clip-editorSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 7 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use when several models or agents must hand off one task without collapsing observations, guesses, decisions, actions, and test evidence …
- Distinctive: line 14
Treat contributors as specialist kitchen staff working overlapping shifts.
- Distinctive: line 16
Every worker must be able to establish:
- Very specific: line 31
Read blackboard → validate station state → claim one bounded job → attach receipts → update hazards/resources/protected state → request the …
- Distinctive: line 33
Never rewrite another contributor's entry.
- Distinctive: line 39
Do not keep old entries resident merely because they exist.
- Very specific: line 43
Use scripts/blackboard.py.
- Very specific: line 52
Read references/schema.md before router integration.
- Very specific: line 72
Run validate. Stop on schema, policy, state, route-loop, ownership, or provenance failure.
- Very specific: line 73
Read the goal, typed collections, revision, current next, unresolved questions, active ownership, constraints, hazards, and remaining …
- Distinctive: line 84
Every entry carries writer, timestamp, provenance, verification state, and route/ownership identity where the schema supports it.
- Very specific: line 85
Before any action, run guard --target ....
- Distinctive: line 87
Before routing, record material resource pressure, hazards, stale assumptions, and protected targets.
- Very specific: line 106
Use none known rather than leaving safety-critical categories ambiguous.
- Very specific: line 137
Use references/canary.md for the three-model canary.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Blackboard
Use when several models or agents must hand off one task without collapsing observations, guesses, decisions, actions, and test evidence into a notes blob.
This is an external coordination workspace. J-space is an internal model mechanism; this skill borrows only the selective shared-workspace idea and makes handoffs persistent and auditable.
Operating model: a working kitchen in shifts
Treat contributors as specialist kitchen staff working overlapping shifts. The board is the shared station state and handover sheet, not a transcript of everybody's internal monologue.
Every worker must be able to establish:
- what is completed;
- what remains outstanding;
- what is in progress and who owns it;
- what failed and should not be repeated blindly;
- what resource, quota, time, hop, storage, or context budget is running low;
- what is hazardous or requires verification;
- what is reserved or DO NOT TOUCH;
- the exact next bounded action.
Workers need the relevant shared state; they do not need every other worker's private reasoning. Router and supervisory layers may expose only the entries relevant to the assigned capability while preserving full provenance underneath.
Core rule
Read blackboard → validate station state → claim one bounded job → attach receipts → update hazards/resources/protected state → request the next capability → unload.
Never rewrite another contributor's entry. Append corrections or verification.
Context rule
The append-only board is the durable audit record, not default prompt payload. Use summary for normal model turns and route-results for the current routed job. Use full show only for audit, recovery, or when the compact view is demonstrably insufficient.
Do not keep old entries resident merely because they exist. Preserve them on the board and promote only the state needed for the current job into model context.
Start
Use scripts/blackboard.py; do not hand-edit a live board.
python scripts/blackboard.py init BOARD.json --goal "..." --model "provider/model" --max-hops 6
python scripts/blackboard.py summary BOARD.jsonThe board owns policy.max_hops; later commands cannot override it. Mutations lock the board for the full load/validate/change/write transaction, increment revision, write atomically, and preserve a timestamped backup. Use --expect-revision N on mutations when the caller has read a particular revision.
Read references/schema.md before router integration.
UCS integration
Pass an existing board as blackboard_path to UnifiedCognitionSystem, or use
scripts/run_ucs.py --board ... --memory ... --task ... from the repository root.
UCS reads its typed constraints and bounded recent context before reasoning,
then appends a synthesis to inferences and verifier receipts to evidence in
one locked transaction. It does not create user decisions, acquire route
ownership, grant permissions, or mark the board completed.
The helper also accepts an exported UCS report through
record-ucs BOARD.json --report report.json --model ucs/runtime --expect-revision N.
An identical run ID/report is deduplicated; changed content under the same ID
is rejected. A changed revision requires reconciliation, not a repeated solve.
Runtime receipts are self-reported evidence until independently checked under
the normal completion policy.
One-hop workflow
- Run
validate. Stop on schema, policy, state, route-loop, ownership, or provenance failure. - Read the goal, typed collections,
revision, currentnext, unresolved questions, active ownership, constraints, hazards, and remaining limits. - Claim or confirm exactly one bounded job matching the assigned capability. Do not duplicate active work.
- Keep contributions typed:
facts: directly observed or source-stated claims.inferences: interpretations, hypotheses, conclusions.user_decisions: authenticated user choices, approvals, and constraints.evidence: receipt locators, hashes, excerpts, tool results.actions: operations actually attempted or completed.test_results: explicitPASS:orFAIL:outcomes.failed_attempts: failed approaches and boundaries.open_questions: unresolved questions.
- Every entry carries writer, timestamp, provenance, verification state, and route/ownership identity where the schema supports it.
- Before any action, run
guard --target .... Every recorded action also requires--targetand repeats the constraint check. - Destructive actions additionally require
--destructive --approval-entry UUID. Approval must be a user-provenance decision whose exact content isAPPROVE: <target>; it is single-use. - Before routing, record material resource pressure, hazards, stale assumptions, and protected targets. Never silently hand over a nearly exhausted budget or an unverified dangerous state.
- Set the smallest next capability and bounded instruction with
route. Routing is allowed only fromactive. - End the model turn after handoff.
Shift handover contract
A route, pause, lead-model change, or session close must leave a compact operational handover containing:
- Outcome / current state
- Completed, with receipt locators
- In progress / owner
- Outstanding
- Failures / do not repeat
- Running low / limits
- Hazards / must verify
- Reserved / DO_NOT_TOUCH
- Exact next action and required capability
- Revision, route ID, locks, and rollback
Use none known rather than leaving safety-critical categories ambiguous. Do not dump chain-of-thought. Preserve conclusions, evidence, decisions, failure boundaries, and state needed for continuation.
User constraints and identity boundary
DO_NOT_TOUCH: <target> is the machine-readable equivalent of a reserved item in the walk-in. It is a hard constraint and blocks that exact target and descendants.
The helper requires every user_decisions entry to have a user/* writer identity and at least one provenance.kind=user source. A JSON file cannot authenticate a human by itself: the router or calling environment must bind user/* and user provenance to the authenticated inbound user, and must not expose those credentials as model-selectable strings.
State
Allowed transitions are mechanically enforced:
active→needs_user,needs_verification,blocked, orcompleted.needs_user→activeonly after a newer user decision.needs_verification→active,blocked, orcompleted.blockedandcompletedare terminal.
Completion requires a PASS: test written by a model that did not perform the tested non-route action, or a PASS entry independently verified by another model. Merely having a test-result entry is insufficient.
Raising policy.max_hops requires an unused user decision exactly matching APPROVE_POLICY: max_hops OLD -> NEW. Lowering it cannot go below the current hop count.
Verification
A writer cannot verify its own entry. A verifier checks cited provenance, appends verification, and records a typed verdict.
Verification is the incoming shift checking the label and station rather than trusting that “done” was written. Critical, volatile, destructive, or recovery-sensitive claims must be rechecked before action.
python scripts/blackboard.py validate BOARD.jsonUse references/canary.md for the three-model canary.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

