Imported from kevglynn/onboarding-copilot (
AGENTS.md). Install upstream withnpx skills add kevglynn/onboarding-copilot. Copyright stays with the author.
Agent Instructions
Engineering Onboarding Copilot
This workspace is the Engineering Onboarding Copilot — a system that guides new engineers through safe first contributions to open-source libraries.
Tools available to you
CLI (ob) — three profile-driven commands:
ob check <workspace> # validate against conventions
ob scaffold --task "description" # create a convention-compliant workspace
ob brief --role <engineer|pm|qa|devops> -w <path> # role-specific brief
All commands accept --profile <path> to swap the library. Default:
profiles/scikit-image.yaml.
MCP server (Cursor only — registered in .cursor/mcp.json):
check_workspacetool — run the convention checker, get structured results- 7
conventions://resources — approved directories, forbidden paths, deprecated APIs, docstring style, testing, checklist, profile summary
Profile YAML (profiles/) — the single source of truth for conventions.
The CLI reads it, the Cursor rules reference it, the MCP server exposes it.
When you should use these tools
- Reviewing code? Run
ob checkfirst (or the MCPcheck_workspacetool). - Creating files? Use
ob scaffold— it places files in the right directory with correct test stubs and docstring templates. - Asked about conventions? Query the MCP resources or read the profile YAML — do not guess.
- Generating a brief? Use
ob brief --role <role>— each role gets different content (engineer: checklist, PM: scope, QA: test strategy, DevOps: CI guardrails).
Key files
| File | Purpose |
|---|---|
profiles/scikit-image.yaml |
Primary convention profile |
profiles/diffusers.yaml |
Stub profile proving extensibility |
.cursor/mcp.json |
MCP server registration for Cursor |
.cursor/rules/*.mdc |
Cursor rules (conventions, SDLC stages) |
examples/bad-first-contrib/ |
Seeded violations for demo/testing |
examples/safe-first-contrib/ |
Clean example that passes all checks |
docs/demo.md |
45-minute walkthrough script |
Task Tracking (Beads)
This project uses bd (beads) for issue tracking. Run bd prime for full workflow context.
Architecture in one line: Issues live in a local Dolt database (
.beads/dolt/); cross-machine sync usesbd dolt push/pull(a git-compatible protocol), stored underrefs/dolt/dataon your git remote — separate fromrefs/heads/*where your code lives..beads/issues.jsonlis a passive export, not the wire protocol.See SYNC_CONCEPTS.md for the one-screen overview and anti-patterns (don't treat JSONL as the source of truth; don't
bd importduring normal operation; don't reach for third-party Dolt hosting before trying the default).
Quick Reference
bd ready # Find available work
bd show <id> # View issue details
bd update <id> --claim # Claim work atomically
bd close <id> # Complete work
bd dolt push # Push beads data to remote
Non-Interactive Shell Commands
ALWAYS use non-interactive flags with file operations to avoid hanging on confirmation prompts.
Shell commands like cp, mv, and rm may be aliased to include -i (interactive) mode on some systems, causing the agent to hang indefinitely waiting for y/n input.
Use these forms instead:
# Force overwrite without prompting
cp -f source dest # NOT: cp source dest
mv -f source dest # NOT: mv source dest
rm -f file # NOT: rm file
# For recursive operations
rm -rf directory # NOT: rm -r directory
cp -rf source dest # NOT: cp -r source dest
Other commands that may prompt:
scp- use-o BatchMode=yesfor non-interactivessh- use-o BatchMode=yesto fail instead of promptingapt-get- use-yflagbrew- useHOMEBREW_NO_AUTO_UPDATE=1env var
Beads Issue Tracker
This project uses bd (beads) for issue tracking. Run bd prime to see full workflow context and commands.
Quick Reference
bd ready # Find available work
bd show <id> # View issue details
bd update <id> --claim # Claim work
bd close <id> # Complete work
Rules
- Use
bdfor ALL task tracking — do NOT use TodoWrite, TaskCreate, or markdown TODO lists - Run
bd primefor detailed command reference and session close protocol - Use
bd rememberfor persistent knowledge — do NOT use MEMORY.md files
Architecture in one line: issues live in a local Dolt DB; sync uses refs/dolt/data on your git remote; .beads/issues.jsonl is a passive export. See https://github.com/gastownhall/beads/blob/main/docs/SYNC_CONCEPTS.md for details and anti-patterns.
Agent Context Profiles
The managed Beads block is task-tracking guidance, not permission to override repository, user, or orchestrator instructions.
- Conservative (default): Use
bdfor task tracking. Do not run git commits, git pushes, or Dolt remote sync unless explicitly asked. At handoff, report changed files, validation, and suggested next commands. - Minimal: Keep tool instruction files as pointers to
bd prime; use the same conservative git policy unless active instructions say otherwise. - Team-maintainer: Only when the repository explicitly opts in, agents may close beads, run quality gates, commit, and push as part of session close. A current "do not commit" or "do not push" instruction still wins.
Session Completion
This protocol applies when ending a Beads implementation workflow. It is subordinate to explicit user, repository, and orchestrator instructions.
- File issues for remaining work - Create beads for anything that needs follow-up
- Run quality gates (if code changed) - Tests, linters, builds
- Update issue status - Close finished work, update in-progress items
- Handle git/sync by active profile:
# Conservative/minimal/default: report status and proposed commands; wait for approval. git status # Team-maintainer opt-in only, unless current instructions forbid it: git pull --rebase bd dolt push git push git status - Hand off - Summarize changes, validation, issue status, and any blocked sync/commit/push step
Critical rules:
- Explicit user or orchestrator instructions override this Beads block.
- Do not commit or push without clear authority from the active profile or the current user request.
- If a required sync or push is blocked, stop and report the exact command and error.
Beads Issue Tracker
Use Beads (bd) for durable task tracking in repositories that include it. Use the beads skill at .agents/skills/beads/SKILL.md (project install) or ~/.agents/skills/beads/SKILL.md (global install) for Beads workflow guidance, then use the bd CLI for issue operations.
Quick Reference
bd ready # Find available work
bd show <id> # View issue details
bd update <id> --claim # Claim work
bd close <id> # Complete work
bd prime # Refresh Beads context
Rules
- Use
bdfor all task tracking; do not create markdown TODO lists. - Run
bd primewhen Beads context is missing or stale. Codex 0.129.0+ can load Beads context automatically through native hooks; use/hooksto inspect or toggle them. - Keep persistent project memory in Beads via
bd remember; do not create ad hoc memory files.
Architecture in one line: issues live in a local Dolt DB; sync uses refs/dolt/data on your git remote; .beads/issues.jsonl is a passive export. See https://github.com/gastownhall/beads/blob/main/docs/SYNC_CONCEPTS.md for details and anti-patterns.
ai-dev-playbook
This project follows the ai-dev-playbook — rules, skills, and scripts for working with coding agents.
Rules location: .cursor/rules/*.mdc (Cursor) and/or .claude/rules/*.md (Claude Code). Synced from ${AI_DEV_PLAYBOOK:-$HOME/ai-dev-playbook}. Do not edit in place.
Diagnose setup (human-readable):
bash "${AI_DEV_PLAYBOOK:-$HOME/ai-dev-playbook}/scripts/playbook-doctor.sh"
Diagnose (agent-consumable; structured exit codes + SUMMARY: line):
bash "${AI_DEV_PLAYBOOK:-$HOME/ai-dev-playbook}/scripts/playbook-doctor.sh" --agent
Exit: 0=ok, 2=bootstrap_needed, 3=rules_drift, 1=error. The rules_drift SUMMARY line carries the format that needs remediation (rules_drift_cursor | rules_drift_claude | rules_drift_both). See the agent-protocol block in ~/CLAUDE.md for the full contract.
Sync rules with upstream:
bash "${AI_DEV_PLAYBOOK:-$HOME/ai-dev-playbook}/scripts/sync-rules.sh"
Install playbook on a new machine:
git clone https://bitbucket.org/pryoninc/ai-dev-playbook ~/ai-dev-playbook
bash ~/ai-dev-playbook/scripts/install-global-safety-net.sh # per-machine, once
Generated by playbook-init.sh on 2026-06-26 from playbook v1.2.0.