agentleFS
pinguypinguy/Skills/skills/blackboard/SKILL.md

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

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
  1. Distinctive:

    Use when several models or agents must hand off one task without collapsing observations, guesses, decisions, actions, and test evidence …

    line 8
  2. Distinctive:

    Treat contributors as specialist kitchen staff working overlapping shifts.

    line 14
  3. Distinctive:

    Every worker must be able to establish:

    line 16
  4. Very specific:

    Read blackboard → validate station state → claim one bounded job → attach receipts → update hazards/resources/protected state → request the …

    line 31
  5. Distinctive:

    Never rewrite another contributor's entry.

    line 33
  6. Distinctive:

    Do not keep old entries resident merely because they exist.

    line 39
  7. Very specific:

    Use scripts/blackboard.py.

    line 43
  8. Very specific:

    Read references/schema.md before router integration.

    line 52
  9. Very specific:

    Run validate. Stop on schema, policy, state, route-loop, ownership, or provenance failure.

    line 72
  10. Very specific:

    Read the goal, typed collections, revision, current next, unresolved questions, active ownership, constraints, hazards, and remaining …

    line 73
  11. Distinctive:

    Every entry carries writer, timestamp, provenance, verification state, and route/ownership identity where the schema supports it.

    line 84
  12. Very specific:

    Before any action, run guard --target ....

    line 85
  13. Distinctive:

    Before routing, record material resource pressure, hazards, stale assumptions, and protected targets.

    line 87
  14. Very specific:

    Use none known rather than leaving safety-critical categories ambiguous.

    line 106
  15. Very specific:

    Use references/canary.md for the three-model canary.

    line 137

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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.json

The 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

  1. Run validate. Stop on schema, policy, state, route-loop, ownership, or provenance failure.
  2. Read the goal, typed collections, revision, current next, unresolved questions, active ownership, constraints, hazards, and remaining limits.
  3. Claim or confirm exactly one bounded job matching the assigned capability. Do not duplicate active work.
  4. 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: explicit PASS: or FAIL: outcomes.
    • failed_attempts: failed approaches and boundaries.
    • open_questions: unresolved questions.
  5. Every entry carries writer, timestamp, provenance, verification state, and route/ownership identity where the schema supports it.
  6. Before any action, run guard --target .... Every recorded action also requires --target and repeats the constraint check.
  7. Destructive actions additionally require --destructive --approval-entry UUID. Approval must be a user-provenance decision whose exact content is APPROVE: <target>; it is single-use.
  8. 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.
  9. Set the smallest next capability and bounded instruction with route. Routing is allowed only from active.
  10. 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:

  1. Outcome / current state
  2. Completed, with receipt locators
  3. In progress / owner
  4. Outstanding
  5. Failures / do not repeat
  6. Running low / limits
  7. Hazards / must verify
  8. Reserved / DO_NOT_TOUCH
  9. Exact next action and required capability
  10. 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, or completed.
  • needs_user → active only after a newer user decision.
  • needs_verification → active, blocked, or completed.
  • blocked and completed are 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.json

Use references/canary.md for the three-model canary.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.