From claudboard
Generates Claude Code artifacts (CLAUDE.md, rules, full-scope skills) from a claudboard convention catalog. Reads .claudboard/catalog.json as primary input; falls back to legacy .claude/reports/claudboard-analysis.md with one-time migration. Requires a prior `/analyse` run — does not analyse inline. Use when: /generate, "generate rules", "create CLAUDE.md", "bootstrap Claude for this repo", "generate skills for this project", "set up Claude Code for this project", "onboard this project".
How this skill is triggered — by the user, by Claude, or both
Slash command
/claudboard:claudboard-generateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Reads the convention catalog and generates Claude Code artifacts: CLAUDE.md, rules, and full-scope skills.
Reads the convention catalog and generates Claude Code artifacts: CLAUDE.md, rules, and full-scope skills.
Model tier: Sonnet. Generation is template-fill on structured catalog input — no cross-document synthesis or pattern discovery. See monorepo-generation spec for rationale.
/generate [path]
Path defaults to the current working directory.
Recommendation: Run this skill in a fresh Claude Code session. Analysis fills context with discovery data not needed for generation — a clean session gives better output.
Check for .claudboard/catalog.json first. If present, proceed to 1b-catalog. If absent, check for .claude/reports/claudboard-analysis.md (legacy migration path, 1c).
All modes (single-project, monorepo, workspace) use the same catalog-driven path. Workspace detection is not special-cased: the catalog's mode and umbrella_root fields carry all the information needed. Do NOT branch on mode for generation logic — use umbrella_root (or repo if umbrella_root absent) as the write root for all artifacts.
Read .claudboard/catalog.json. Assert schema_version == "1":
if catalog.schema_version != "1":
error: "Catalog schema mismatch: got <observed>, expected 1.
Re-run /analyse to produce a fresh catalog, or check
that claudboard SKILL.md and catalog-schema.json are
at the same version."
Check generated_at — if older than 24 hours, warn: "Catalog is N days old. Consider re-running /analyse for fresh results."
Derive umbrella_root from catalog (umbrella_root field if present, else repo). All artifact writes use <umbrella_root>/.claude/ and <umbrella_root>/CLAUDE.md as the base.
Derive mode (UX text only), stacks, conventions, patterns, proposed artifacts, and adaptive depth from catalog fields. Display a summary of proposed_artifacts.
When .claudboard/catalog.json is absent AND .claude/reports/claudboard-analysis.md is present:
cloudboard-analysis-<svc>.md files best-effort.proposed_artifacts, conventions, pattern exemplars (best_example file references), and stacks from the reports' sections.from_audit: true if per-service reports are present, else false..claudboard/catalog.json with schema_version: "1" and synthesised fields.Legacy report files are NOT moved, deleted, or modified. Subsequent runs see the catalog and skip migration.
If parsing fails (missing "Proposed Artifacts" section or incompatible format):
/analyse to produce a fresh .claudboard/catalog.json."If neither catalog nor legacy reports exist:
/analyse first to produce .claudboard/catalog.json."/analyse from the workspace root to produce .claudboard/catalog.json. If the workspace is not bootstrapped, run /claudboard-workspace-init first."Show the Proposed Artifacts from catalog.proposed_artifacts. Preserve any dedup decisions encoded in the catalog — don't re-evaluate.
## Artifacts to Generate
Write root: <umbrella_root>/.claude/ (mode: <catalog.mode>)
**Umbrella CLAUDE.md** — [create/update] — [outline]
**Per-service CLAUDE.md (N files):**
- `<service-dir>/CLAUDE.md` — ≤30 lines, service-specific, references umbrella ecosystem.md
**Rules (N files):**
- `<name>.md` (paths: `<catalog.stacks[id].applicable_paths>`) — <depth: catalog.adaptive_depth[stack-id]>
**Skills (M files):**
- `<skill-name>/` — <SKILL.md + references/ + scripts/>
exemplar: catalog.patterns[<id>].exemplar_path
[Pattern A dispatcher if per-service variations detected]
[If existing .claude/ found:]
**Already covered (skipping):**
- `<existing artifact>` — no gaps
**NOT generated (umbrella-only rule):**
- No writes to <service>/.claude/skills/, <service>/.claude/rules/, or <service>/.claude/memories/
I'll proceed now — interrupt with Esc to abort or adjust.
Write files to <umbrella_root>/.claude/ and <umbrella_root>/CLAUDE.md. Never write to <umbrella>/<service>/.claude/ — per-service .claude/ directories are outside the generation scope under all modes. Never modify existing source files.
Load these references as needed:
../claudboard/references/claude-md-template.md → for CLAUDE.md structure../claudboard/references/rule-templates.md → for rule file templates../claudboard/references/skill-generation.md → for full-scope skill generation and Pattern AFollow ../claudboard/references/claude-md-template.md exactly.
Single-project: Use the standard template. Target 60-120 lines.
Monorepo / Workspace: Use the monorepo variant template from claude-md-template.md. Target 80-150 lines. Include:
claude-md-template.md.claude/memories/ecosystem.md (auto-loaded)"If CLAUDE.md exists: Read it, add only gaps — new commands, new architecture notes, new rules/skills table entries, new critical rules. Do not rewrite.
If new: Generate from scratch using detected values for every field.
Write to: <umbrella_root>/CLAUDE.md (repo root for monorepo/single-project; workspace root for workspace)
For EACH detected service (not library), generate a short per-service CLAUDE.md using the "Per-Service CLAUDE.md Template" from ../claudboard/references/claude-md-template.md.
Rules:
ecosystem.md and rules — never duplicates their content.<umbrella_root>/<service-dir>/CLAUDE.mdFor each rule in catalog.proposed_artifacts where type == "rule", follow ../claudboard/references/rule-templates.md.
Adaptive depth: from catalog.adaptive_depth[<stack-id>] (or proposed_artifact.depth_signal):
full → 80-120 lines with real code examplesmedium → 50-70 linesskeleton → 30-50 lines with TODO markerspaths: scoping: use proposed_artifact.paths (derived from catalog.stacks[id].applicable_paths). In monorepos with multiple services sharing a stack, a SINGLE rule file covers all services in that stack — do NOT generate one rule file per service.
Global rules (no paths:): rules/ci-cd.md, rules/gitops.md, etc. — CI/CD and cross-service conventions.
Write to: <umbrella_root>/.claude/rules/<name>.md. If file exists: add only what's missing; never overwrite.
For each skill in catalog.proposed_artifacts where type == "skill", follow ../claudboard/references/skill-generation.md.
Umbrella-only rule: All generated skills live under <umbrella_root>/.claude/skills/. NEVER write into <umbrella>/<service>/.claude/skills/ under any mode.
Every generated skill includes:
SKILL.md (100-250 lines): architecture diagram specific to this project, step-by-step workflow, code examples from catalog.patterns[<id>].exemplar_pathreferences/ dir: at minimum one template from detected conventions; annotated example from the exemplar filescripts/scaffold.sh if the skill creates 3+ boilerplate files with predictable namingAdaptive depth: from catalog.adaptive_depth or proposed_artifact.depth_signal. Full for clean codebases, skeleton+ask for inconsistent patterns.
Monorepo / Workspace — Pattern A dispatcher skills:
When the catalog's proposed_artifacts contains a skill where services/repos in the same stack have meaningfully different procedural content, generate a Pattern A dispatcher skill:
<umbrella_root>/.claude/skills/<concern>/
├── SKILL.md # dispatcher — enumerates exact valid service names
└── references/
├── <service-a>.md # per-service content
├── <service-b>.md # per-service content
└── ...
Follow the Pattern A contract from ../claudboard/references/skill-generation.md → "Pattern A". SKILL.md must enumerate the exact set of valid service names (closed-set lookup). Reference filenames must exactly match those names.
Scope per-stack skills to catalog.stacks[id].applicable_paths; reference only that stack's conventions and exemplars.
Write to: <umbrella_root>/.claude/skills/<name>/. If skill exists: add only missing components.
## Generation Complete
Generated:
- CLAUDE.md [created/updated — N lines]
- Rules: [list with adaptive depth used]
- Skills: [list, each with: SKILL.md ✓, references/ ✓/✗, scripts/ ✓/✗]
Next steps:
- Review generated artifacts and adjust to team preferences
- Run `/refresh` as the project evolves to keep artifacts current
- Flesh out any TODO sections in skeleton rules or skills
- Try the suggested validation tasks below to verify artifacts work
Conditional next step (include only when analysis report indicates Jira+ADO MCPs are configured):
Ready to generate a tailored
feature-workflowskill? Run/claudboard-workflowto create a full ticket→branch→BDD→plan→implement→PR workflow for this project.
After presenting the completion report, propose 3-5 representative tasks the user can try in a fresh Claude Code session to verify the generated artifacts actually help. Select tasks based on what was detected:
Task selection (pick 3-5 from this priority list based on what was generated):
[skill-name] skill" — tests whether the skill workflow produces correct codeOutput format:
## Suggested Validation Tasks
Try these in a fresh Claude Code session to verify the artifacts work:
1. [Task description] — validates: [artifact name]
2. [Task description] — validates: [artifact name]
3. [Task description] — validates: [artifact name]
If Claude stumbles on any of these, run `/refresh` to update the artifacts.
| Condition | Behavior |
|---|---|
| Target path doesn't exist | Report error with path and stop |
| No catalog or legacy reports found | Tell user: "No catalog or legacy reports found. Run /analyse first to produce .claudboard/catalog.json." Stop. |
| Catalog schema mismatch | Exit with error naming observed and expected version; instruct user to re-run /analyse |
| Catalog older than 24 hours | Warn but proceed if user confirms |
| Legacy migration parsing fails | Exit with error naming offending file; instruct user to run /analyse |
| Catalog contains "ASK USER" markers | Pause and ask user before generating those artifacts |
<umbrella_root>/.claude/, <umbrella_root>/CLAUDE.md, and <umbrella_root>/<service>/CLAUDE.md..claude/ writes — NEVER write to <service>/.claude/skills/, <service>/.claude/rules/, or <service>/.claude/memories/ under any mode. Per-service content reaches the umbrella via rules with paths: globs, ecosystem.md, or a Pattern A dispatcher skill..claude/ artifacts exist, append or update sections, never delete existing content..claudboard/audits/*.md) are NOT consumed by /generate even when present — only the catalog is read.mode field is UX-only — never branch on mode for generation logic; use umbrella_root for write paths.| File | When to load |
|---|---|
../claudboard/references/catalog-schema.json | Phase 1b — schema validation on catalog read |
../claudboard/references/catalog-format.md | Phase 1b-1c — catalog field semantics and migration rules |
../claudboard/references/claude-md-template.md | Phase 3a — CLAUDE.md generation |
../claudboard/references/rule-templates.md | Phase 3b — rule file generation |
../claudboard/references/skill-generation.md | Phase 3c — full-scope skill generation |
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub lukovicperisa/claudboard --plugin claudboard