add-team-source
Register a git URL as a team-profile source so nyann can periodically sync and expose its profiles under a namespace. TRIGGER when the user says "add a team…
Inspect a reference repo and save its nyann-relevant setup (stack, hooks, branching, commit convention, extras) as a reusable profile. TRIGGER when the user says "save this setup as a profile called X", "learn a profile from ~/projects/foo", "capture this repo's setup as
$ npx -y skills add thettwe/nyann --skill learn-profile --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/learn-profileContext preview
The summary Claude sees to decide when to auto-load this skill.
Inspect a reference repo and save its nyann-relevant setup (stack, hooks, branching, commit convention, extras) as a reusable profile. TRIGGER when the user says "save this setup as a profile called X", "learn a profile from ~/projects/foo", "capture this repo's setup as
name: learn-profile description: > Inspect a reference repo and save its nyann-relevant setup (stack, hooks, branching, commit convention, extras) as a reusable profile. TRIGGER when the user says "save this setup as a profile called X", "learn a profile from ~/projects/foo", "capture this repo's setup as my-profile", "make a profile from this repo", "turn this repo into a profile", "extract a profile from <path>", "remember this setup as <name>", "/nyann:learn-profile". Do NOT trigger on "what does this profile do?" — that's `inspect-profile`. Do NOT trigger on "apply profile X to this repo" — that's `bootstrap-project`. Do NOT trigger on "fix drift" — that's `retrofit`.
Read-only inspection of a reference repo. Writes one JSON file (the new profile) to the user's profile root. Never touches the reference repo itself.
Need two things:
the current working directory only if the user says "this repo"; otherwise ask for the path explicitly. Profile learning from the wrong repo produces a confusing profile, so err on the side of confirming.
`^[a-z0-9][a-z0-9-]*$`. If the user offers a name with spaces or caps (e.g. "My Next Starter"), propose a slug (`my-next-starter`) and confirm before running.
Optional:
explicitly when the user wants a different root.
without writing it to disk. Useful for "show me what you'd save".
repo, say so — the inference loses most of its signal (branching strategy comes from branches + tags, commit convention from subject history). Offer to continue anyway, but warn.
`<user-root>/profiles/<name>.json`. If it does, ask the user whether to overwrite or pick a different name. Never silently clobber.
bin/learn-profile.sh \ --target <resolved-path> \ --name <slug> \ [--user-root <dir>] \ [--stdout]
Expected exit codes:
| Code | Meaning | What to do | |---|---|---| | 0 | profile written | Tell the user the path + show the inferred summary | | 1 | bad input (missing target, invalid name, etc.) | Surface the error verbatim; fix and retry | | other | internal failure | Surface stderr and stop — don't paper over |
On success, show the user:
framework, branching strategy, commit_format, hook list). Any field marked `"inferred": true` in the output came from heuristics rather than explicit config; call those out so the user knows to double-check.
`bootstrap-project` with `--profile <name>`" (or the matching natural language).
`learn-profile` reads:
git hooks → hooks block
When evidence is thin (e.g. a fresh repo with 2 commits), the inferred profile will be sparse. That's fine — flag it to the user ("I could only infer X and Y; everything else defaults"). Don't invent data to fill gaps.
with `--profile <name>`.
the JSON directly.
`add-team-source` for the team-profile side; `learn-profile` itself only writes to the user root.
ငြမ်း is Burmese for scaffolding. Nyann is the Claude Code plugin that picks expert git defaults for your stack — branching, working hooks (Husky / pre-commit.com / lefthook), commits, releases, CI, docs — then keeps the repo on those rails through every PR
Repo: thettwe/nyann
Register a git URL as a team-profile source so nyann can periodically sync and expose its profiles under a namespace. TRIGGER when the user says "add a team…
Bootstrap a fresh or existing repo with nyann. TRIGGER when the user says "set up this project", "initialize git workflow", "bootstrap this repo", "scaffold…
Survey the machine and report which nyann features are usable right now. TRIGGER when the user says "is my machine ready for nyann", "what do I need to…
Prune local branches whose work is already merged into the base. TRIGGER when the user says "clean up branches", "delete merged branches", "prune local…
Generate a Conventional Commits message from the staged diff and create the commit after user confirmation. TRIGGER when the user says "commit these changes",…
Bundle a redacted, support-grade snapshot of the current nyann state for inclusion in a bug report or support request. Combines explain-state + doctor + git…