Cards
Cards are the primary unit of work in Crabyard. Each card has a prompt, repo, source, policy, lane, event log, optional diff metadata, and optional active run.
Card Shape
{
id: "CY-101",
title: "Add health check endpoint",
prompt: "Add a new /healthz endpoint...",
repo: "openclaw/crabyard",
source: "Prompt",
runtime: "auto",
policy: "open_pr",
lane: "Running",
owner: "steipete",
startedAt: 1736700000000,
createdAt: 1736699900000,
changes: {
files: [
{ path: "src/index.ts", status: "modified", additions: 18, deletions: 5 }
],
patch: "diff --git ...",
totals: { files: 1, additions: 18, deletions: 5 }
},
run: {
id: "CY-101-R1",
runtime: "container",
status: "running",
selectionReason: "default container runtime",
capabilities: { terminal: true, takeover: false, vnc: false, desktop: false, logs: true, artifacts: true }
},
logs: ["14:32:01 card created", "14:32:02 runtime=container ..."]
}
Cards are empty by default in production. The board gets data when users create cards from a prompt or a GitHub issue/PR preview.
Creating Cards
Prompt is the only mandatory human text. Title is optional and derived from the first non-empty prompt line when blank.
Required:
promptrepo
Optional:
titlesource:Prompt,Issue, orPRruntime:auto,container, orcrabboxpolicy: repo default,open_pr,merge_when_green, orfix_until_green_and_merge
The repo must be enabled in Admin. openclaw/openclaw is sorted first as the default OpenClaw repo.
GitHub Issue/PR Preview
Type an issue or PR number such as #76552 in board search. With GITHUB_TOKEN, Crabyard looks across enabled repos and previews every matching issue/PR. Without it, preview falls back to openclaw/openclaw or the first enabled repo. If the same number exists in multiple repos, each match appears separately when token-backed lookup is available.
Creating a card from a match uses:
- title:
owner/repo#number: title - prompt: source URL, title, and body
- repo: matched repo
- runtime:
auto - policy: repo default
Lanes
Current lanes:
- Todo
- Running
- Human Review
- Done
Manual Advance cycles through the lanes. Starting a Todo card claims capacity and creates a run attempt. Moving a Running card to Human Review or Done closes the active run as review or completed.
Actions
- Start: claim a card or pulse heartbeat if already active.
- Advance: move to the next lane.
- Attach: open the Ghostty WASM session grid/details.
- Watch: record a watch attachment event.
- Take over: maintainer-only, active-run-only, and runtime-capability-gated.
- Move/Mark stalled: preserve state for human review.
Runtime Policy
Use auto unless you need a hard override.
container: fastest default adapter surface for autonomous work.crabbox: desktop/VNC/manual/heavy adapter surface.auto: card prompt cues, repo workflow defaults, then Container fallback.
Hard prompt cues that force Crabbox under auto: vnc, manual, takeover, gpu, perf, performance.
Merge Policy
open_pr: create or hand off a PR for human review.merge_when_green: intended direct merge once checks are green.fix_until_green_and_merge: intended autonomous repair loop then merge.
Current Worker stores and displays policy. Actual merge execution is a planned integration and is not faked.
Repo Defaults
Owners can evaluate CRABYARD.md from Admin. Valid workflow config can supply runtime and merge defaults for new cards:
---
runtime:
default: auto
merge:
default_policy: open_pr
---
Only runtime and merge defaults are effective today. stall_ms, cap, prompt_prefix, and the Markdown body are parsed/stored for future policy work. Invalid workflow values are visible in Admin and ignored when creating cards or selecting runtimes.