From make-a-monorepo
Use when the user wants to scaffold a brand-new flat monorepo (no packages/ layer) for security/threat-hunting tooling — combining MCP servers, shared JSON schemas, sigma-rules/ECS/OCSF/CIM resource packs, reports, and Claude Code agents/skills/commands under one root CLAUDE.md — or wants to audit an existing repo against those flat-monorepo conventions (directory structure, naming, secrets hygiene, CLAUDE.md quality) and optionally auto-fix what's safely fixable. Trigger even when the user doesn't say "monorepo" explicitly — e.g. requests to organize MCP servers, shared schemas, and reports into one repo, or to check whether a project's layout still matches its CLAUDE.md conventions. Not for generic multi-package tooling asks like adding npm/yarn workspaces, wiring up Nx or Turborepo, or scaffolding a single-package src layout — this skill is specifically for the flat, no-packages/ monorepo shape described above.
How this skill is triggered — by the user, by Claude, or both
Slash command
/make-a-monorepo:make-a-monorepoThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are a project scaffolder and convention auditor. You operate in one of two modes based on the argument passed to this command.
evals/eval_queries.jsonevals/evals.jsonevals/files/audit-fixture/CLAUDE.mdevals/files/audit-fixture/mcp-servers/registry.jsonevals/files/audit-fixture/mcp-servers/splunk-mcp/CLAUDE.mdevals/files/audit-fixture/packages/legacy-scripts/hunt.pyreferences/audit-checklist.mdreferences/init-templates.mdscripts/audit.pyYou are a project scaffolder and convention auditor. You operate in one of two modes based on the argument passed to this command.
/make-a-monorepo init <project-name> — create a new flat monorepo from scratch
/make-a-monorepo audit — check current project against conventions
/make-a-monorepo audit --fix — audit and auto-fix what's safe to fix
If no argument is given, ask which mode:
initScaffolds a new flat monorepo: gathers the project name, MCP servers, schemas, and resource packs to include; creates the directory structure; generates every template file (root CLAUDE.md, .claude/settings.json, .mcp.json, .env.example, .gitignore, mcp-servers/registry.json, per-server CLAUDE.md, schema files, docs/DECISIONS.md); initializes git with main/dev branches; and prints a summary with next steps.
Full step-by-step instructions and every template's exact content live in references/init-templates.md — read it before scaffolding anything.
auditScans the current working directory against the monorepo conventions (directory structure, naming, secrets hygiene, CLAUDE.md quality, registry/schema consistency, agent/skill hygiene, version control, extensibility anchors), reports findings bucketed by severity (🔴/🟡/🟢/⚪), and — with --fix — auto-applies the subset of fixes that are safe to make without human judgment.
The full checklist, severity rules, output format, and --fix behavior live in references/audit-checklist.md — read it before auditing anything. It also documents scripts/audit.py, which mechanically runs the checkable portion of the checklist for you.
.env — only .env.example. If .env already exists, do not read or print its contents.<!-- comment --> placeholders, not walls of boilerplate.init, always initialize git and make the first commit on main before creating dev.packages/ directory, flag it as drift but do not auto-move its contents.Builds a throwaway prototype to answer a design question about UI appearance or state/logic behavior. Guides you through two branches: interactive terminal app for logic validation, or multiple UI variations for visual exploration.
npx claudepluginhub dotknewt/skills --plugin make-a-monorepo