Board
alirezarezvani/claude-skills
Read, write, and browse the AgentHub message board for agent coordination.
Start the bring-up of a new board or ROM in CERF. An agent skill from gweslab/cerf.
$ npx skills add gweslab/cerf --skill start-board-implementation -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gweslab/cerf start-board-implementation --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/gweslab/cerf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/start-board-implementation .claude/skills/start-board-implementation && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "start-board-implementation" agent skill from https://github.com/gweslab/cerf/tree/main/.claude/skills/start-board-implementation into .claude/skills/start-board-implementation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "start-board-implementation", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/gweslab/cerf/tree/main/.claude/skills/start-board-implementationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add gweslab/cerf --skill start-board-implementation -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gweslab/cerf start-board-implementation --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gweslab/cerf.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/start-board-implementation .agents/skills/start-board-implementation && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "start-board-implementation" agent skill from https://github.com/gweslab/cerf/tree/main/.claude/skills/start-board-implementation into .agents/skills/start-board-implementation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "start-board-implementation", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gweslab/cerf --skill start-board-implementation -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gweslab/cerf start-board-implementation --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gweslab/cerf.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/start-board-implementation .cursor/skills/start-board-implementation && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "start-board-implementation" agent skill from https://github.com/gweslab/cerf/tree/main/.claude/skills/start-board-implementation into .cursor/skills/start-board-implementation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "start-board-implementation", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/gweslab/cerf.git --path .claude/skills/start-board-implementation--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add gweslab/cerf --skill start-board-implementation -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gweslab/cerf start-board-implementation --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gweslab/cerf.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/start-board-implementation .gemini/skills/start-board-implementation && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "start-board-implementation" agent skill from https://github.com/gweslab/cerf/tree/main/.claude/skills/start-board-implementation into .gemini/skills/start-board-implementation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "start-board-implementation", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install gweslab/cerf start-board-implementationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add gweslab/cerf --skill start-board-implementation -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gweslab/cerf.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/start-board-implementation .github/skills/start-board-implementation && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "start-board-implementation" agent skill from https://github.com/gweslab/cerf/tree/main/.claude/skills/start-board-implementation into .github/skills/start-board-implementation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "start-board-implementation", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gweslab/cerf --skill start-board-implementation -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gweslab/cerf start-board-implementation --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gweslab/cerf.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/start-board-implementation .opencode/skills/start-board-implementation && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "start-board-implementation" agent skill from https://github.com/gweslab/cerf/tree/main/.claude/skills/start-board-implementation into .opencode/skills/start-board-implementation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "start-board-implementation", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
start-board-implementationStart the bring-up of a new board or ROM in CERF. An agent skill from gweslab/cerf.
Start Board Implementation is an agent skill from gweslab/cerf. Start the bring-up of a new board or ROM in CERF.
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Universal Windows CE Emulator - CE Runtime Foundation. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6b8df83. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Start Board Implementation loads about 3.2k tokens when it runs. Until then it costs about 19 tokens; SKILL.md has 1,594 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from gweslab/cerf at commit 6b8df83, republished under its MIT licence (© gweslab). 1,594 words, ~3,169 tokens.
.claude/skills/start-board-implementation/SKILL.md (or your agent's skills folder).Obey CLAUDE.md and every agent_docs/ page; this ritual never overrides them.
Governing principle: the ROM is the only trusted starting point, and YOU establish every fact yourself. A stated SoC/board is a hint, not a fact - confirm board, SoC, CPU, and CERF's existing support from the ROM bytes + the internet before writing a line. A bring-up that starts on an unverified assumption wastes dozens of sessions.
Open with a brief, warm welcome + thank-you BEFORE Gate A1:
🎉 Welcome - and thank you for contributing a new board to CERF! I'll start from your ROM, confirm the board/SoC facts myself, and lay out what the bring-up will take before we commit to it.
A line or two, then straight into the gates. The welcome never delays a gate.
The user does not have to type a path - naming the board ("implement simpad
sl4") is enough. All regular dev ROMs live under bundled/devices/, so that
listing is your index.
ls bundled/devices/ and match by FAMILY, not exact
string (do NOT depend on cerf.json - optional, usually absent for a
user's own ROM). Tolerate variant/generation/letter/separator differences:
"simpad cl4", "simpad sl4", "SIMpad SL4" all resolve to the simpad_sl4_*
bundles. You are identifying the board, not string-equality testing a folder.bundled/devices/ → stat it, use it.bundled/devices/ → ask whether to copy it into
bundled/devices/ first (where every dev ROM lives); proceed once placed, or
if the user says to run it in place.HARD RULE - candidates found ≠ "absent". If ls surfaced any plausible
bundle for the named family, you have RESOLVED - you may NEVER report "no ROM /
not found" while holding a list of matching bundles. A variant/letter token
mismatch against bundles that are clearly the same family is a RESOLVE, never a
fail. Never assert presence/absence from memory; ls in THIS run and read it
like a human picking the obvious match.
Only if ls produced ZERO plausible candidates - STOP and FAIL:
❌ I couldn't find any ROM for "
<what the user said>" underbundled/devices/. Point me at the ROM path directly, then re-run/start-board-implementation.
Reverse engineering confirms every fact below and drives the whole loop.
The presence check IS the "list instances" call. ToolSearch query ida,
find the instance-list tool, load its schema, CALL it. Whether the tool is
available to call is the entire test - callable = IDA MCP running; no such tool
= not running.
Call succeeds → ✅ running. 0 open instances is NORMAL - IDA is usually closed and ROMs unextracted at the start; the call succeeding is the proof, not the count. You bring IDA up yourself when a step needs it (Phase B / B1).
No list-instances tool to call at all → not running. Do not fail - warn and ask:
⚠️ No IDA MCP detected. Without reverse engineering I'm badly limited - bring-up is decompile-driven (cracking the kernel OEMAddressTable for page tables, decoding which driver touches each register), and going blind tends to dead-end and burn far more sessions. The MCP server lives in this repo:
tools/ida_server.py(load inside IDA) +tools/claude_ida.py(the MCP client);tools/open_ida.py --wait <pe>opens a module. Install those and reconnect for a real shot.Continue anyway without RE?
[yes|no]
No → stop. Yes → continue, marking the RE-dependent table rows ⚠️.
Minimum traversal to fill the table. You are IDENTIFYING, not implementing. Each fact gets a source.
agent_docs/rom_acceptance.md): flat XIP, a recognised container (B000FF /
NOSAJ / ARNOLD), or a whole-storage dump the guest's own boot path reads. Check
the leading magic, the presence of ECEC markers (a CE2-era image legitimately
has none → ResolveRomhdrStructural), and whether the image is a raw bus
capture needing normalization (aliasing, wrap, pad). This decides whether B1's
extractor can even run.tools/extract_bundles.py produces per-module PEs under
references/extracted-roms/<device>/<rom>/fs/Windows/. Open a module with
python tools/open_ida.py --wait <pe> (--wait blocks until it's usable;
background it if you have parallel research). Note kernel/coredll/gwes/filesys/
device/driver module names - driver names are SoC tells (e.g. *_mx31.dll →
i.MX31).board_id
selects the BoardContext (agent_docs/rules.md § "Per-device facts come from
the ROM"); confirm that declaration names the silicon actually in the ROM before
writing a BoardContext asserting it. meta.soc_family and the user's word are
hints, never facts. Evidence, in order of weight: the B1 driver/module names (an
OEM BSP names its drivers after its own silicon); the register bases the OAL
actually addresses; then the OEM's model string if one appears in the blob. A
byte match is evidence only once you have shown the bytes are the string and
not arbitrary data.devices table in
bundled/db.json; list cerf/boards/ + bundled/devices/. Match
the B2 identity → fully present / different-ROM-revision / absent.CpuArch::Arm / CpuArch::Mips - which JIT engine
the board runs), and the specific core with its ISA level (ARM720T, ARM920T,
SA-11xx, ARM1136, Cortex-A8; R3000A/R3900/R4100/R5000-class MIPS, …). Confirm
via the internet (datasheet / Linux arch/arm/mach-* or arch/mips/, QEMU,
device specs) - not the user's word.socs table in
bundled/db.json; list
cerf/socs/ + cerf/cpu/. Is this SoC present? Is the core's strategy set
under cerf/cpu/<core>/ - ArmProcessorConfig/CoprocEmitter on ARM,
MipsProcessorConfig/MipsCp0Emitter on MIPS? If absent, is there a close
relative sharing silicon/core? Reuse is the difference between a short and a
long bring-up - name it.Emit exactly this. Same columns/rows/order every run. Finding = the fact + its
source; Status = one emoji (✅ present/reusable/good · ⚠️ caution/new
work/unconfirmed · ❌ missing/blocker).
## /start-board-implementation - bring-up readiness
| # | Check | Finding | Status |
|---|--------------------------------|-------------------------------------------|--------|
| 1 | ROM acquired | <bundle / path> | ✅/❌ |
| 2 | IDA MCP connectivity | <running, N instances | not running> | ✅/⚠️ |
| 3 | Board identity | <declared board.id> confirmed by <tells> | ✅/⚠️ |
| 4 | Board already in CERF | <db.json row exists | absent> | ✅/❌ |
| 5 | SoC / CPU family | <SoC>, <core>, <CpuArch + isa level> | ✅/⚠️ |
| 6 | SoC implemented in CERF | <cerf/socs/<x> present | absent> | ✅/❌ |
| 7 | Reusable / similar SoC or core | <what reuses what | none - from scratch> | ✅/⚠️ |Under the table, the session estimate from rows 6-7:
Then ask on its own line:
Start the bring-up?
[yes|no]
STOP and wait. Do not begin work, do not create any document, until yes.
yes: seed tracking, teach the workflow, start/tracking create (the yes authorizes this one write)Invoke the tracking skill's CREATE for a new board bring-up doc. It's an
umbrella / progress tracker (many independent peripheral workstreams), so
keep it a coarse index. Seed it with:
TASK & WHY - bring up board <X>; why it matters; empty FORBIDDEN
CONCLUSIONS / BANNED APPROACHES.VERIFY GATE line (survives compaction): "Every finished
implementation chunk - a peripheral, an ArmProcessorConfig/CoprocEmitter,
the PageTableBuilder, the BoardContext, the LCD/INTC/timer/
DMA/touch models - is run through /verify BEFORE the next chunk, verdict
recorded in that session's /tracking update (CODE STATE, verbatim with
file:line). Never skip the gate on JIT/MMU/CPU changes."PROCEDURE line pointing at the durable method: "Follow the bring-up
loop and ground rules in .claude/skills/start-board-implementation/SKILL.md
§ The bring-up loop." (Plus the committed reference set: CLAUDE.md,
agent_docs/rules.md, agent_docs/debugging.md, agent_docs/code_style.md.)Session 0 - paste the Phase C readiness table verbatim (identity +
source, SoC/CPU, what CERF has, reuse plan, estimate). The durable
baseline a compacted agent resumes from. Real work starts at Session 1.The yes authorizes this single create only - not standing authorization; every
later write needs its own /tracking update from the user.
For a productive multi-session bring-up:
- End of each session:
/tracking update(you invoke it).- Then
/compact.- Then
/tracking restorenext session to reload the world.One protecting rule: never run
/trackingbecause I asked you to. If I propose updating the tracking doc, that's a bailout - only YOU decide when a session ends. I never raise the tracking document myself.
Pick the entry point from the table, then run § The bring-up loop:
CpuArch: author ArmProcessorConfig + CoprocEmitter, or
MipsProcessorConfig + MipsCp0Emitter, from the CPU architecture reference
manual + the core TRM (downloaded to references/<soc>/ first), then the
PageTableBuilder / memory map, then the peripheral loop.bundled/db.json
row and its <board_id>_id.h (see agent_docs/database.md), then the
BoardContext concrete returning that id, and set board.id +
rom.primary in the bundle's cerf.json + the PageTableBuilder (crack the
kernel's OEMAddressTable in IDA), then the peripheral loop.The kernel boots, hits an unimplemented register/MMIO address, and
HaltUnsupportedAccess fatals with the PA + guest PC. One blocker per cycle,
each step obeying the rules in CLAUDE.md / agent_docs/ (don't restate them -
follow them):
CLAUDE.md § Build) - confirm it actually succeeded.timeout and a per-task --log-file
(agent_docs/debugging.md § Timeout). Never background cerf; never read
stdout.FATAL|unsupported|unmapped|rejected|Halt line - that PA +
guest PC is the blocker.agent_docs/debugging.md): find the
register in the SoC manual, decompile the guest PC that touched it for the
exact semantics, write the citation excerpt under references/<soc>/.agent_docs/rules.md § Board Implementation)./verify, fix any CRITICAL PROBLEM FOUND;© gweslab, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/start-board-implementation of gweslab/cerf.
Open the folder on GitHubat commit 6b8df83
Start Board Implementation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Start Board Implementation this skillgweslab/cerf | 104 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Boardalirezarezvani/claude-skills | 28k | — | ~610 | Automated safety check: Pass | MIT | |
| Paperclip Boardpaperclipai/paperclip | 99k | — | ~5.3k | Automated safety check: Pass | MIT | |
| Board Governancesickn33/agentic-awesome-skills | 47k | 1 repos | ~4.1k | Automated safety check: Pass | MIT | |
| Announcement Boardsickn33/agentic-awesome-skills | 47k | 1 repos | ~3.4k | Automated safety check: Pass | MIT | |
| Pre Boardingsickn33/agentic-awesome-skills | 47k | 1 repos | ~3.5k | Automated safety check: Pass | MIT |
alirezarezvani/claude-skills
Read, write, and browse the AgentHub message board for agent coordination.
paperclipai/paperclip
Manage a Paperclip company as a board member via chat. An agent skill from paperclipai/paperclip.
sickn33/agentic-awesome-skills
Board and governance register: meeting date, agenda, decision, resolution number, vote result, action owner and due date.
sickn33/agentic-awesome-skills
Announcement board: author, category, department, priority, audience, publish and expiry dates, status and acknowledgements, as CSV, SQL, JSON Schema or Notion on request.
sickn33/agentic-awesome-skills
Pre-boarding checklist: task, employee and department, owner, category, joining and due dates, documents received, laptop, email and account-record readiness, status.
ruvnet/ruflo
Agent skill for project-board-sync - invoke with $agent-project-board-sync
gweslab/cerf
List the project skills and offer the environment doctor. An agent skill from gweslab/cerf.
gweslab/cerf
Add a changelog entry for a change that was just made (only user triggered, no agent self-invocation).
gweslab/cerf
Create a git commit with a short message that describes the diff.
gweslab/cerf
Manage the cross-session tracking document with restore, create, update, or compact (only user triggered, no agent self-invocation).
gweslab/cerf
Spawn a hostile reviewer that checks a claim or a diff against the project rules.
gweslab/cerf
Audit a list of options for bailouts and rule violations before the user picks one.
Start the bring-up of a new board or ROM in CERF. An agent skill from gweslab/cerf. Start Board Implementation is an agent skill from gweslab/cerf. Start the bring-up of a new board or ROM in CERF.
Run `npx skills add gweslab/cerf --skill start-board-implementation -a claude-code`. Or copy the skill folder (.claude/skills/start-board-implementation in gweslab/cerf) into .claude/skills/start-board-implementation in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gweslab/cerf --skill start-board-implementation -a codex`. Or copy the skill folder (.claude/skills/start-board-implementation in gweslab/cerf) into .agents/skills/start-board-implementation in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gweslab/cerf --skill start-board-implementation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/start-board-implementation, .gemini/skills/start-board-implementation, .github/skills/start-board-implementation and .opencode/skills/start-board-implementation in your project.
Going by SKILL.md and its folder, Start Board Implementation needs the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Start Board Implementation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Start Board Implementation: Board (alirezarezvani/claude-skills, 28k stars), Paperclip Board (paperclipai/paperclip, 99k stars), Board Governance (sickn33/agentic-awesome-skills, 47k stars) and Announcement Board (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gweslab (a GitHub organization) maintains it in gweslab/cerf, which has 104 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 7, 2026.
Source: gweslab/cerf on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.