Daily repo hygiene — review the day's repo state, then perform the cleanups under per-action confirmation. Fast-forward only, never destructive without a yes.
npx skills add https://github.com/arbiterForge/codeArbiter --skill ca-standup
The best-practice checklist you run when you sit down to code, made routine and
gated. The SessionStart briefing *reports* hygiene state read-only; this command is
where the *actions* happen — each one confirmed individually, none taken unbidden.
Arbiter gathers and proposes; you decide every mutation.
The orchestrator reads the current repo state (reusing the briefing's read-only
computation — branch, ahead/behind, dirty tree, stashes, prune-candidate branches,
stale worktrees) and presents it, then offers each applicable action in turn. Skip
an action that has no candidates; never bundle confirmations.
git fetch, then offer a --ff-onlypull of the current branch. Eligibility is the briefing summary's
ff_pull_eligible flag (SH-6: clean working tree AND behind upstream) — the same
pure helper the SessionStart briefing computes, not a condition re-derived here.
On a dirty tree the pull is withheld and the dirty state is reported instead. A
diverged branch (would need a merge) is refused with a diverged-branch message —
never a merge commit.
(the : gone] upstream set), excluding the current branch and the default
(main). Delete a listed branch only after an explicit per-branch confirmation;
declining leaves it in place.
or path missing on disk), never the main worktree. Remove one only after explicit
per-item confirmation; declining leaves it intact.
un-pushed commits, each with a suggested next step (/ca-commit, git push,
git stash show). Report-and-route only: never discard a stash, reset, or push.
git log over the recent merge window(since the last ca-scoped tag, or a rolling 30-day window when no tag exists)
and pipe that text to
python3 "<plugin-root>/hooks/boardsync.py" reconcile || python "<plugin-root>/hooks/boardsync.py" reconcile.
Display the advisory drift report as-is: DRIFTED tasks (work merged but board
state not [x]) and informational UNKNOWN ids (in the log but absent from the
board). This step is read-only and best-effort — the dotted-id grep can miss a
task never named in a commit. The board is never mutated here; open-tasks.md
is never written. Any drifted task must be resolved explicitly through
/ca-task done <id> — the only blessed board writer. State this clearly to the
user; do not auto-flip.
accumulate on the board and inflate the in-flight count until it stops meaning
anything. List the done items older than the cutoff, then ask about **each one
separately** and archive only the ones the user says yes to:
python3 "<plugin-root>/hooks/taskwrite.py" archive <id> || python "<plugin-root>/hooks/taskwrite.py" archive <id>.
One confirmation per item, one helper call per item — the two map 1:1 on
purpose. A batched "archive all 12?" turns twelve decisions into one, and the
helper's own per-item ordering (append to done-tasks.md first, then remove
from open-tasks.md) is what makes an interrupted sweep recoverable; a batch
loop that answered once would throw that away.
An item marked [x] with no (done YYYY-MM-DD) stamp cannot be aged, so
it is never in the proposed set. Offer it only if the user asks, and only with
--allow-undated — both /ca-task done and the board classifier require
the stamp, so an unstamped entry is legacy or override-era and its real age is
unknown.
Declining is always available and costs nothing: an unarchived task stays
exactly where it is. Never archive without a yes.
Present a one-line summary of what was done and what was declined.
/ca-status./ca-doctor./ca-commit.--ff-only and ONLY on a clean working tree — never a mergecommit, never on a dirty tree, never a rebase.
the main worktree from worktree cleanup.
individually before performing it — no batched or implied yes.
discard, reset, force, or push on the user's behalf.
and read-only; resolving a drifted task is the user's decision and routes
exclusively through /ca-task done <id>.
Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.
Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances
Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.
Build and distribute Expo development clients locally or via TestFlight
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
Take arbiterforge/codearbiter-ca-standup from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.