Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add bks-lab/open-bridge --skill board-pilotgit clone --depth 1 https://github.com/bks-lab/open-bridgeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/bks-lab/open-bridge/board-pilot)<a href="https://agentmods.dev/skills/bks-lab/open-bridge/board-pilot"><img src="https://agentmods.dev/badge/skills/bks-lab/open-bridge/board-pilot.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Excessive Agency · line 255 Skill allows unbounded resource consumption (API calls, storage, compute). Without rate limits or quotas, a compromised or misbehaving agent can cause denial-of-service or cost overruns.Fix: Set explicit rate limits, timeouts, and resource quotas for API calls, file operations, and compute. Implement circuit breakers for runaway loops.
- medium Rogue Agent · line 397 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00330 | $0.08163 |
| Opus 5 | $0.00165 | $0.04082 |
| Sonnet 5 | $0.00066 | $0.01633 |
| Haiku 4.5 | $0.00033 | $0.00816 |
Grade A, and why
board-pilot scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 483 lines — stays where its author put it; the contents beside it link to each section on GitHub.
board-pilot
A generic, board-driven implementation pipeline. It watches a GitHub Project, and when a human drags an item into the trigger column it drives that item autonomously — stage by stage, each stage a Bridge primitive — to a human-gated draft pull request, then stops. No project specifics live in the engine; a project declares its own pipeline in config. The same engine runs a heavy project (full implement→verify→review) and a light one (a two-stage doc edit) unchanged.
What it is NOT. Not a merge bot, not a board-sync tool (that is
tracker-sync), not a write executor for board fields (that isgithub-projects-manager). board-pilot only advances an item to a draft PR and hands the merge decision back to a human.
Mental model
-
Poller-fast / worker-slow split. A cheap cron tick (
Engine.tick()) runs often (~1 min). It contains no LLM — it only reads the board, arms new items, and advances each in-flight item by exactly one stage under a per-item lock. The slow work (aclaude -pimplement run, a workflow harness) happens inside a dispatched stage; the next tick re-reads the board to confirm before advancing again (confirmed-advance). A 1-minute poll therefore never double-dispatches a 20-minute job. -
Decision A — engine-owned
Pipelinevs human-ownedStatus. Each board item carries two fields:Status— the human lifecycle column (e.g.Backlog → Ready → Ready for Development → In Progress → Blocked → In Review → Done). A person owns it; dragging an item into the configured trigger column (trigger.on_status) is the only arm signal the engine reads. Which field this is (board.status_field) and which value arms are both config — the engine hardcodes neither. It writesworking_status/park_status/pr_statushere, but arming never depends on them.Pipeline— the engine's program counter (queued → implementing → verifying → … → pr-open). The engine owns it. Once an item is armed, the engine tracks progress throughPipelineand ignores furtherStatusmoves, so a human shuffling cards mid-flight cannot corrupt the state machine.Pipelineis also the durable arm marker: arming is gated onpipeline is None, so a wiped snapshot can never re-arm an in-flight item.
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- .gitignore 34 B
- assets/com.example.board-pilot.plist 3.1 KB
- assets/pipeline.example.yaml 9.8 KB
- criteria/implement.md 3.2 KB
- criteria/review.md 2.6 KB
- criteria/spec.md 4.1 KB
- engine/__init__.py 476 B runs code
- engine/board.py 4.9 KB runs code
- engine/claude_runner.py 23 KB runs code
- engine/cli.py 11 KB runs code
- engine/config.py 12 KB runs code
- engine/gh_board.py 30 KB runs code
- engine/guards.py 4.0 KB runs code
- engine/interfaces.py 7.0 KB runs code
- engine/lock.py 2.9 KB runs code
- engine/record.py 33 KB runs code
- engine/runner.py 3.0 KB runs code
- engine/scan.py 5.2 KB runs code
- engine/snapshot.py 1.3 KB runs code
- engine/tick.py 41 KB runs code
- references/agents.md 11 KB
- references/operations.md 7.8 KB
- references/transparency.md 16 KB
- stages/_lib.sh 9.4 KB runs code
- stages/implement.sh 6.8 KB runs code
- stages/pr.sh 8.7 KB runs code
- stages/review.sh 5.4 KB runs code
- stages/spec.sh 3.6 KB runs code
- stages/verify.sh 5.0 KB runs code
- templates/record.md.tmpl 747 B
- templates/row.md.tmpl 64 B
- tests/conftest.py 179 B runs code
- tests/test_acceptance.py 3.4 KB runs code
- tests/test_arm.py 21 KB runs code
- tests/test_binding.py 2.5 KB runs code
- tests/test_branch_consistency.py 2.1 KB runs code
- tests/test_claude_runner_reject.py 3.0 KB runs code
- tests/test_cli_wiring.py 7.1 KB runs code
- tests/test_comment_io.py 17 KB runs code
- tests/test_config.py 1.5 KB runs code
- tests/test_engine.py 18 KB runs code
- tests/test_evidence.py 10.0 KB runs code
- tests/test_gh_board_reject.py 8.2 KB runs code
- tests/test_implement_emptydiff.py 13 KB runs code
- tests/test_item_body.py 12 KB runs code
- tests/test_lock.py 1.6 KB runs code
- tests/test_number_field.py 1.4 KB runs code
- tests/test_park_invariants.py 20 KB runs code
- tests/test_parse_reject.py 2.9 KB runs code
- tests/test_preflight_options.py 4.4 KB runs code
- tests/test_rate_limit.py 15 KB runs code
- tests/test_record.py 37 KB runs code
- tests/test_reject_config.py 2.7 KB runs code
- tests/test_reject_edge.py 14 KB runs code
- tests/test_retry.py 3.5 KB runs code
- tests/test_rewind.py 9.2 KB runs code
- tests/test_run_shim.py 4.4 KB runs code
- tests/test_scan.py 5.7 KB runs code
- tests/test_stages.py 33 KB runs code
- tests/test_tick_record.py 22 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 483 lines · 330 tokens per session scan A 64403ab85b21
board-pilot is a skill published in the GitHub repository bks-lab/open-bridge (8 stars, last pushed yesterday), licensed MIT. It adds 330 tokens to every session and 8,163 once invoked, about $0.0016 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
audit-trail
Full traceability from PRD to code commit through the CCPM spec-driven pipeline.
github-sync
Bidirectional synchronization of epics and tasks with GitHub issues, labels, and relationships.
issue-tracking
Track beads as git-backed issues with persistent attribution, supporting Gas Town's bead lifecycle and convoy progress monitoring.
pr-shepherding
Monitor PR lifecycle from creation through merge including CI monitoring, review comment handling, thread resolution, and merge readiness verification.
ship-it
Worktree-side implementation orchestrator for an OpenSpec change. Idempotent: gates automated scenarios on filesystem reality, owns the red-test fix loop, runs the docker harness with always-teardown, then drives ship-change inline. Escape hatch writes SHIPITBLOCKED.md. Runnable headless. Triggers: "ship it", "build…
launch
Planning releases and reporting delivery work from GitHub PR history. Use when versioning, CHANGELOGs, rollout or rollback plans, engineering metrics, retrospectives, or stakeholder reports are needed.