Step-by-step setup for a new project consuming agent-homebase.
Visual overview: open command-centre-visual.html in a browser to see all agents, modes, and flows at a glance before diving in.
- Python 3.12+ with PyYAML (
pip install pyyaml) - A
.github/agents/directory in your project (create it if absent) - A
.github/instructions/directory in your project (create it if absent)
Each skill is a specialized agent role (e.g., @planner drafts sprint plans, @qa runs tests, @reviewer checks code). You don't need all of them—pick the ones your team uses. Below, "minimum viable" = solo/small teams; optional = add as you grow.
Minimum viable set (solo / small team):
planner, sprint-lead, qa, reviewer, bug
Add if doing research-driven features:
pm, researcher
Add if touching architecture regularly:
architect
Add if shipping UI:
a11y
Add if tracking bundle size / dependencies:
perf
Add for automated documentation:
docs
Add for vulnerability scanning and security audits:
security
You can install all thirteen and let the skill descriptions handle routing — skills only load when relevant. The cost of unused skills is negligible.
Links the library as a separate repo. You get updates via git submodule update --remote. Keeps your repo clean and upgradeable.
git submodule add https://github.com/j78f88/agent-homebase.git skills-libraryCopies files once. No auto-updates, but simpler setup if you don't plan to upgrade.
git clone https://github.com/j78f88/agent-homebase.git skills-library
rm -rf skills-library/.git # detach from library historyCopy the closest profile to project.config.yml:
cd skills-library
cp profiles/react-web-app.config.yml project.config.yml
# or: cp profiles/python-api.config.yml project.config.yml
# or: cp profiles/monorepo-fullstack.config.yml project.config.ymlpython init.py --quick-setupThis prompts for the essential values (project name, repo, namespace, branch) and updates your config.
Open project.config.yml and fill in every FIXME value. If you skip this step, agents won't run correctly - the system will show which values are missing (marked with ⚠) when you run init.py.
Platform selection: Set editor.target to control what gets generated:
| Value | Generates | Best For |
|---|---|---|
"both" (default) |
Skills + agent wrappers + instructions | Teams on mixed platforms |
"vscode" |
Agent wrappers + instructions (skills set to non-invocable) | VS Code-only teams |
"claude-code" |
Skills + instructions (no agent wrappers) | Claude Code-only teams |
The key fields to get right:
project.name— your project name (e.g., "My App") — used in all agent identity promptsteam.cto_name— your name (e.g., "Alex") — used in approval markers and skill personalizationgit.repo— your GitHub repository (e.g., "owner/repo") — used for CI status checkspaths.*— where your planning docs livecommands.*— your actual test/build/lint commandsquality.coverage_store_thresholdandquality.coverage_web_threshold— your coverage targetsplatform.ci_workflow_display_name— the exact name shown in GitHub Actions UIgit.main_branch—mainormaster
cd skills-library
python init.py --config project.config.ymlWatch for ⚠ warnings — each one is a token with no config value. Fix them in project.config.yml and re-run until the output shows ✓ All tokens resolved.
cp -r resolved/skills/* ../.github/agents/
cp -r resolved/instructions/* ../.github/instructions/
# If using VS Code agents (editor.target: "vscode" or "both"):
cp -r resolved/agents/* ../.github/agents/Note: When
editor.targetincludes"vscode",init.pygenerates thin.agent.mdwrappers inresolved/agents/with native tool restrictions and subagent delegation. These go alongside skills in.github/agents/.
If your project doesn't already have planning infrastructure:
mkdir -p ../docs/planning ../docs/architecture ../docs/development ../docs/user
mkdir -p ../docs/security ../docs/security/reports
mkdir -p ../.claude/memory
cp starters/BACKLOG_LEDGER.md ../docs/planning/
cp starters/BUG_BACKLOG.md ../docs/planning/
cp starters/HANDOFF_REJECTIONS.md ../docs/planning/
cp starters/SPRINTS.md ../
cp starters/NON_GOALS.md ../docs/
cp starters/SECURITY_CHANGELOG.md ../docs/security/
cp starters/FILE_HASHES.md ../docs/security/
cp starters/memory-architecture.md ../.claude/memory/architecture.md
cp starters/memory-conventions.md ../.claude/memory/conventions.mdThe agents @reviewer and @architect read .claude/memory/architecture.md and .claude/memory/conventions.md to understand project-specific patterns. The starters ship with instructional comments — fill them in with your actual stack, patterns, and decisions.
The more specific these files are, the more useful the agents become. A blank conventions file produces generic advice; a detailed one produces project-aware advice.
Create .github/copilot-instructions.md with project-level context: what the project is, its key directories, and any agent routing notes. This is the file Copilot loads before every session.
Run these checks to confirm everything is working:
# Skills should be in place
ls ../.github/agents/
# Expected: architect/ bug/ docs/ a11y/ onboarding/ perf/ planner/ pm/ qa/ reviewer/ researcher/ security/ sprint-lead/
# Agent wrappers (if editor.target includes "vscode")
ls ../.github/agents/*.agent.md
# Expected: 13 .agent.md files (one per skill)
# Instructions should be in place
ls ../.github/instructions/
# Expected: Multiple .instructions.md files# Search for leftover {{tokens}} — should return nothing
grep -r "{{" ../.github/agents/ ../.github/instructions/ || echo "✓ No unresolved tokens"cd skills-library
pytest tests/ -v
# Expected: All tests pass (69+ tests)In VS Code with Copilot Chat:
- Open your project (not the skills-library)
- Type
@plannerand hit Enter - If the agent responds, your setup is working
Troubleshooting: If the agent isn't found:
- Reload VS Code:
Ctrl+Shift+P→ "Developer: Reload Window" - Check files are in the correct location (
.github/agents/, not.github/skills/) - See TROUBLESHOOTING.md for common issues
When the library is updated:
cd skills-library
git pull # if submodule: git submodule update --remote skills-library
python init.py --config project.config.yml
cp -r resolved/skills/* ../.github/agents/
cp -r resolved/instructions/* ../.github/instructions/Your project.config.yml is not overwritten — config is yours to keep.
If you want a custom orchestrator agent that sequences these skills in your own workflow, write it in .github/agents/ alongside the resolved skills. It stays in your project and is not part of the library. The library ships the role agents; you build the coordination layer on top.