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…
Fetch (or refresh) registered team-profile sources — git clone on first run, shallow git fetch + reset on subsequent runs — and register discovered profiles under a namespace. TRIGGER when the user says "sync team profiles", "pull the latest team profiles", "refresh team
$ npx -y skills add thettwe/nyann --skill sync-team-profiles --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/sync-team-profilesContext preview
The summary Claude sees to decide when to auto-load this skill.
Fetch (or refresh) registered team-profile sources — git clone on first run, shallow git fetch + reset on subsequent runs — and register discovered profiles under a namespace. TRIGGER when the user says "sync team profiles", "pull the latest team profiles", "refresh team
name: sync-team-profiles description: > Fetch (or refresh) registered team-profile sources — git clone on first run, shallow git fetch + reset on subsequent runs — and register discovered profiles under a namespace. TRIGGER when the user says "sync team profiles", "pull the latest team profiles", "refresh team profiles", "update team profiles", "sync from <team-name> profile source", "fetch profiles from the team repo", "/nyann:sync-team-profiles". Do NOT trigger on "add a new team profile source" (that's `add-team-source` — registers without pulling). Do NOT trigger on "sync my branch" (that's the `sync` skill — feature-branch rebase/merge). Do NOT trigger on "install a profile" from a URL when no source is registered yet — walk the user through `add-team-source` first.
Wraps `bin/sync-team-profiles.sh`. On first run it shallow-clones each registered team-profile source (`git clone --depth=1`); on subsequent runs it does a shallow fetch (`git fetch --depth=1`) and `git reset --hard FETCH_HEAD` to advance to the latest commit. Every profile under the cache is then validated against `profiles/_schema.json`, and valid profiles are registered under `<source-name>/<profile-name>`.
entry in `team_profile_sources[]`. If empty, route to `add-team-source` first.
"force refresh" / "ignore the interval" / "pull now", pass `--force`.
team profiles"), pass `--name <source>` so unrelated sources don't get pulled.
bin/sync-team-profiles.sh \ [--user-root <dir>] \ [--force] \ [--name <source>]
Network operation. Expect up to a few seconds per source. The backend is resilient — a failing source logs the error and moves on to the next.
Top-level shape is four arrays (see `schemas/team-sync-result.schema.json`):
`{name, reason: "within-interval", next_due}`. Tell the user the next-due timestamp; they can re-run with `--force` if they need to pull immediately.
Each entry: `{source, name, namespaced, path}`. The `namespaced` field is what to use with `bootstrap-project --profile <namespaced>`.
failure, clone failure, hand-edited config with a bad ref/url, TOCTOU on the cache dir, profile that fails schema validation). Each entry: `{name|source, kind, error}` where `kind` is one of `invalid-name`, `invalid-ref`, `invalid-url`, `fetch-failed`, `clone-failed`, `toctou`, `invalid-schema`. Show these but don't treat any single one as fatal — the script logs and moves on to the next source.
team profile does.
one to a repo.
issues and surface in `invalid[]` with `kind: clone-failed` or `fetch-failed`. The error string passes through `nyann::redact_url` before reaching the JSON, so any embedded `https://<token>@host` credentials are scrubbed — safe to relay verbatim. Don't try to auth-fix on the user's behalf.
data) — safe to delete the cache dir and re-run. Confirm before deleting; it's a file-system mutation.
user + team profiles can shadow starters. Clarify which version will win (user > team > starter) and let the user decide if the shadow is intentional.
remote?" → that's `check-team-drift` (separate backend; not in this skill's scope).
ငြမ်း 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…