~/apexyard - main · v1.1
apexyard v1.1 open source · MIT · for founders forging multiple products

apexyard

v1.1.0  ·  changelog

Where projects get forged.

Built by me2resh

SDLC-as-code for founders who ship alone, or companies standing up AI-enabled squads. One ops-repo fork governs all your products. Rules that can't be argued with - they're shell hooks, not PDFs. 19 roles, 33 skills, 18 mechanical gates, one inbox across the whole portfolio. Claude Code is the default driver; the rules, hooks, agents, and skills are plain markdown and shell - swap the AI, keep the forge.

Inbox:
  #58 · Add CSV export to reports · P1 · your-org/billing-api
 
Picking up #58...
  ✓ branch feature/GH-58-csv-export
  Tech Lead role: planning
 
Plan for #58:
  1. CsvExporter service (domain layer)
  2. GET /reports/:id/export endpoint
  3. 12 unit + 1 integration test
Approve plan? (y/n)
> y
 
Backend Engineer role: implementing
  ✓ src/domain/csv-exporter.ts
  ✓ src/handlers/export-report.handler.ts
  ✓ tests pass locally
 
Detected decision: papaparse vs csv-stringify
  AgDR-0014 · chose csv-stringify (zero deps)
 
Local checks:
  ✓ lint  ✓ types  ✓ 147 tests  ✓ 1.2mb build
 
Ready to push PR #84?
> y
 
Pushed · Opened PR #84 · feat(#58): add CSV export
 
Rex reviewing a3f9c21...
  Architecture · PASS (domain clean)
  Tests       · 94% coverage
  AgDR        · AgDR-0014 linked
  Glossary    · 5 terms
  Verdict     · APPROVE - deferring to CEO
 
Waiting for CEO 👍
 
CEO 👍
  ✓ squashed as 8b2f4c1
  ✓ branch deleted
  ✓ #58 → QA state (not Done yet)
 
Pipeline on main:
  ✓ lint  ✓ test  ✓ build  ✓ deploy-staging
 
QA Engineer role: verifying on staging
  ✓ AC1 · export button renders
  ✓ AC2 · CSV columns + escaping correct
  ✓ AC3 · 10k rows in <5s
  ✓ regression clean
QA sign-off: #58 ready for Done
 
Done · #58 · 14m 32s dev + 3m 10s QA
$ gh repo fork me2resh/apexyard --clone
professional setup

One command forks apexyard into your org and clones the fork locally. The fork is your ops repo - no nested installs, no symlinks. Full walkthrough in the quickstart below. Rename the fork to your-org/ops if you prefer - GitHub handles the rename cleanly.

19 Role definitions across 5 departments
32 Skills (slash commands)
18 Mechanical gates (shell hooks)
1 Fork · your ops repo in one command

Proven shipping · TypeScript + AWS Lambda backends · Next.js web apps · Chrome extensions · native Swift macOS apps

Every pull request ties to a ticket.
Every ticket has acceptance criteria.
Code review validates against those criteria, and QA verifies the result in a separate pass before the ticket closes.

01 / QUICKSTART

Get started in three steps

From fork to first command. Everything is public; no invite needed.

01 - star, fork, clone

Pull it to your machine

One command via the GitHub CLI. Rename to your-org/ops if you prefer - GitHub handles the rename cleanly. Adding upstream lets you sync later via /update.

gh repo fork me2resh/apexyard --clone
cd apexyard
git remote add upstream \
  https://github.com/me2resh/apexyard.git
02 - claude, /setup

Open Claude Code and run /setup

Everything loads automatically from CLAUDE.md. On first run, a session-start hook checks upstream drift. Then run /setup once - three exchanges to configure company, team, and tech stack.

cd apexyard
claude
/setup
# three questions → onboarding.yaml is configured
03 - bring a project in, or capture an idea

Adopt, or originate

Two entry points depending on what you walked in with. /handover takes an existing repo and generates an assessment + C4 L2 stub + registry entry. /idea captures a new product concept to the shared backlog so it doesn't evaporate.

/handover <repo-url>   # existing project → assessment + registry + architecture stub
/idea                  # new concept → ideas-backlog.md, optional GitHub issue
02 / WALKTHROUGHS

What it actually feels like to use

Three flows - one for a feature, one for the portfolio, one for a risky change. Each starts with a specific pain and ends with the exact gates that handled it.

01 - FEATURE idea to production full SDLC
# "I have an idea. Ship it without forgetting a step."

› /idea  →  /write-spec  →  /decide
  ideas-backlog.md · PRD-0012 · AgDR-0021

› /start-ticket 178     (labels the session)
# code, tests, push…

› gh pr create
  auto-code-review.sh: "Rex REQUIRED before merge"

› invoke Rex on PR #178
  APPROVED at c8b736f · marker written

› /approve-merge 178     (per-PR CEO nod)
› gh pr merge 178
  ✓ merged · #178 → QA state, not Done yet
One trail: 6 skills · 2 agents · 4 hooks · 1 AgDR · 1 PRD. Two independent approvals (Rex + CEO), both SHA-bound. The marker-based merge gate is a shell hook, not a social convention.
02 - PORTFOLIO 5 products, 1 inbox cross-project
# "Monday. Where do I look first?"

› cd ~/apexyard
  ApexYard: 3 commits behind upstream/main.
             Run /update to sync.

› /inbox
  curios-dog     · 2 PRs awaiting Rex
  billing-api    · CEO approval pending · #203
  sharppick      · stale PR #89 (14 days)
  marketing-site · clear
  internal-tools · 1 P1 bug · unassigned

# Friday afternoon…

› /stakeholder-update weekly
  Drafted projects/updates/2026-04-17.md
  - rollup across all 5 projects
6 skills read one registry file. Five products surface from a single prompt. Portfolio isn't a view on top of separate repos - it IS the registry.
03 - TRUST risky change, 5pm Friday migration gate
# "Just drop a column. Can't be that hard."

› edit prisma/schema.prisma
BLOCKED: migration files need a labelled ticket
  hook: require-migration-ticket.sh

› /migration curios-dog
  → rollback plan? (required, non-empty)
  → estimated downtime?
  → cross-service consumers?
  → data volume?
  → observability?
  ✓ AgDR-0047 · issue #214 labelled `migration`
  ✓ body refs AgDR - gate 3 satisfied

› /start-ticket #214 · retry the edit
  ✓ all 3 gates pass · edit allowed

Rex: "analytics ETL reads user_profiles nightly -
confirm it skips the missing column before merge."
3 hooks, 2 skills, 1 AgDR - all before a single byte of schema changed. Questions that would surface at 2am during rollback get forced upfront, when your team is awake.
04 / WHAT'S IN THE BOX

What you can actually do

Everything below is already wired in your fork. Nothing to install, nothing to configure beyond /setup.

roles · 19

Activate by trigger

PR touches auth → Security Auditor activates. Ticket hits QA → QA Engineer. Migration edit → Data Engineer + migration AgDR. Each role has CAN / CANNOT lists - it won't step outside its lane.

skills · 33 slash commands

One prompt, one thing

/handover adopts a project. /idea captures a concept. /inbox, /status, /tasks triage the portfolio. /decide records a technical call as an AgDR. /launch-check runs an 8-dimension readiness audit. /c4 generates L1 + L2 architecture diagrams from a codebase.

hooks · 18 shell scripts

Rules that fire themselves

Ticket-first on every edit. Migration gate on schema paths. Two-marker merge (Rex + CEO), SHA-bound, invalidates on every commit. Red CI block. Secrets scanner. Design-review gate on UI PRs. Upstream-drift banner at session start.

agents · 5 sub-agents

Reviewers that don't rubber-stamp

Rex (code review) checks architecture + tests + AgDR links + glossary. Shield (security) flags auth / crypto / secrets. Guardian (deps) scans vulnerabilities + licences. PR Manager + Ticket Manager handle the orchestration.

portfolio · one fork, N products

One inbox across everything

apexyard.projects.yaml at your fork root lists every repo you manage. Skills like /inbox, /status, /tasks, /stakeholder-update aggregate across it. One prompt, every project. Add a project with /handover; sync with upstream via /update.

CI · 7 golden-path workflows

Drop-in GitHub Actions

At golden-paths/pipelines/: ci.yml, code-quality.yml, security.yml, dependency-audit.yml, pr-title-check.yml, review-check.yml, seo-check.yml. Copy what you need into each project's .github/workflows/.

Fork it, clone it,
run claude.

MIT. Plain markdown and shell. Fork freely, edit any rule, hook, or skill to match your team.