Gen claudemd
Nyann (ငြမ်း) is Burmese for scaffolding. Nyann is a Claude Code plugin that sets up and maintains project governance.
npx -y skills add thettwe/nyann --skill gen-claudemdAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Regenerate the nyann-managed block in CLAUDE.md from the current profile, stack detection, and doc plan — without re-running a full bootstrap or retrofit. TRIGGER when the user says "regenerate CLAUDE.md", "update CLAUDE.md", "refresh CLAUDE.md", "rebuild CLAUDE.md", "re-gen CLAUDE.md", "my CLAUDE.md is stale", "CLAUDE.md doesn't match my profile", "sync CLAUDE.md with the profile", "/nyann:gen-claudemd". Do NOT trigger on "optimize CLAUDE.md" / "trim CLAUDE.md" / "what's unused" — that's the `optimize-claudemd` skill (usage-analytics-driven). Do NOT trigger on "explain CLAUDE.md" / "what's in CLAUDE.md" — that's `explain-state`. Do NOT trigger on initial project setup — that's `bootstrap-project`.
SKILL.md
3.8 KB, as published. Nobody here has run it
gen-claudemd
Standalone CLAUDE.md regeneration. Wraps bin/gen-claudemd.sh with the
same inputs bootstrap uses, but skips the full bootstrap pipeline so the
user can refresh CLAUDE.md after changing their profile, adding docs, or
restructuring workspaces.
1. Gather inputs
The generator needs three inputs. Resolve them in this order:
- Profile — resolve the active profile via preferences or CLAUDE.md
markers; load with
bin/load-profile.sh <name>. If the user names a specific profile, use that instead. - Doc plan — the generator needs a DocumentationPlan. To preserve
the repo's existing doc routing (local / Obsidian / Notion / split),
re-derive the plan using the same routing the user originally chose.
Check
profile.documentation.storage_strategy; if it names a non-local backend, also runbin/detect-mcp-docs.shand pass--mcp-targetsto route-docs. For local-only repos (the common case):bin/route-docs.sh --profile <profile-path>suffices. Write the resulting DocumentationPlan JSON to a temp file. - Stack (optional but recommended) — run
bin/detect-stack.sh --path .for a StackDescriptor JSON. Write it to a temp file. Skip if detection fails (gen-claudemd falls back to profile-only data).
For monorepos, also resolve workspace configs:
bin/resolve-workspace-configs.sh --stack <stack-path> --profile <profile-path>
Pass the result via --workspace-configs <path>.
2. Snapshot the current state
Before running the generator, capture the existing managed block so
you can show a before/after diff. If CLAUDE.md exists with markers,
read the content between <!-- nyann:start --> and
<!-- nyann:end -->. If no markers exist, note that a new block will
be appended.
3. Confirm before writing
Ask: "Regenerate the nyann-managed block in CLAUDE.md?"
Show what will feed into the generation (profile name, stack, storage strategy) so the user can verify the inputs are correct. Skip the confirmation only when the user said "just do it".
4. Run the generator
On confirmation:
bin/gen-claudemd.sh \
--profile <profile-path> \
--doc-plan <doc-plan-path> \
[--stack <stack-path>] \
[--workspace-configs <ws-path>] \
[--project-name <name>] \
--target <cwd>
The script writes CLAUDE.md in-place — content outside markers is preserved verbatim.
If the script warns about the 3 KB soft cap, relay the warning and
suggest /nyann:optimize-claudemd as a follow-up.
If the script refuses at the 8 KB hard cap, explain and offer
--force to override.
5. Report
- Before/after diff of the managed block.
- Byte count of the managed block.
- Whether user content outside markers was preserved (always yes).
When to hand off
- "Optimize CLAUDE.md based on usage" →
optimize-claudemdskill. - "What does nyann see in this repo?" →
explain-stateskill. - "Check if my repo is healthy" →
doctorskill. - "Switch to a different profile" →
migrate-profileskill (which calls gen-claudemd internally after the switch).