/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 profile source", "register a team profile source", "set up team profiles from <url>", "wire up our team's shared profiles
Claude Code
$ npx -y skills add thettwe/nyann --skill add-team-source --agent claude-code
Codex
$ npx skills add thettwe/nyann --skill add-team-source -a codex -y
Cursor
$ npx skills add thettwe/nyann --skill add-team-source -a cursor -y
Gemini CLI
$ npx skills add thettwe/nyann --skill add-team-source -a gemini-cli -y
GitHub Copilot
$ npx skills add thettwe/nyann --skill add-team-source -a github-copilot -y
OpenCode
$ npx skills add thettwe/nyann --skill add-team-source -a opencode -y
Windsurf
$ npx skills add thettwe/nyann --skill add-team-source -a windsurf -y
SKILL.md
add-team-source.SKILL.mdname: add-team-source
description: >
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 profile source", "register a
team profile source", "set up team profiles from <url>", "wire up
our team's shared profiles at <repo>", "add profile source named
X at <url>", "install team profiles from <git repo>",
"/nyann:add-team-source".
Do NOT trigger on "sync team profiles now" (that's
`sync-team-profiles` — the pull operation). Do NOT trigger on
"save my setup as a profile" (that's `learn-profile` — writes to
user root, not a team source). Do NOT trigger on generic "add a
repo" or "add a remote" — those are git operations unrelated to
profile distribution.
add-team-source
Wraps `bin/add-team-source.sh`. Updates `~/.claude/nyann/config.json` to declare a new team-profile source. Idempotent — passing the same `--name` updates the entry in place.
1. Collect inputs
- **`--name <id>`** — required. Short slug, `^[a-z0-9][a-z0-9-]*$`.
Will also become the namespace prefix for team profiles (e.g. `platform-team/base` when name is `platform-team`). When the user gives a name with spaces or caps, propose a slug and confirm.
- **`--url <git-url>`** — required. Any URL git can clone
(https://, git@, file:// for testing).
- **`--ref <branch-or-tag>`** — default `main`. Override when the
team pins a specific branch or tag.
- **`--interval <hours>`** — default `24`. How often
`sync-team-profiles` will re-pull from this source without `--force`. Decrease only when the user says "we update these often" or similar.
2. Pre-flight
- Config path defaults to `~/.claude/nyann/config.json`. Override
only when the user explicitly names a different user root.
- The backend upserts on `--name` collision. Warn the user if
they're replacing an existing source with a different URL — that's usually unintentional. Read current config first if unsure.
3. Invoke
bin/add-team-source.sh \
--name <id> \
--url <git-url> \
[--ref <branch>] \
[--interval <hours>] \
[--user-root <dir>]
Exit 0 on success; config path is logged to stderr.
4. Report back
- Name, URL, ref, interval.
- Tell the user "Run `/nyann:sync-team-profiles` (or ask 'sync my
team profiles') to actually pull them". `add-team-source` only registers — the pull is a separate operation on purpose (no surprise network calls here).
When to hand off
- "Now pull them" → `sync-team-profiles` skill.
- "Apply a team profile to this repo" → `bootstrap-project` with
the namespaced profile name (e.g. `platform-team/base`).
- "Show what the team profile does" → `inspect-profile` with the
namespaced name.
Read more
name: add-team-source description: > 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 profile source", "register a team profile source", "set up team profiles from <url>", "wire up our team's shared profiles at <repo>", "add profile source named X at <url>", "install team profiles from <git repo>", "/nyann:add-team-source". Do NOT trigger on "sync team profiles now" (that's `sync-team-profiles` — the pull operation). Do NOT trigger on "save my setup as a profile" (that's `learn-profile` — writes to user root, not a team source). Do NOT trigger on generic "add a repo" or "add a remote" — those are git operations unrelated to profile distribution.
add-team-source
Wraps `bin/add-team-source.sh`. Updates `~/.claude/nyann/config.json` to declare a new team-profile source. Idempotent — passing the same `--name` updates the entry in place.
1. Collect inputs
- **`--name <id>`** — required. Short slug, `^[a-z0-9][a-z0-9-]*$`.
Will also become the namespace prefix for team profiles (e.g. `platform-team/base` when name is `platform-team`). When the user gives a name with spaces or caps, propose a slug and confirm.
- **`--url <git-url>`** — required. Any URL git can clone
(https://, git@, file:// for testing).
- **`--ref <branch-or-tag>`** — default `main`. Override when the
team pins a specific branch or tag.
- **`--interval <hours>`** — default `24`. How often
`sync-team-profiles` will re-pull from this source without `--force`. Decrease only when the user says "we update these often" or similar.
2. Pre-flight
- Config path defaults to `~/.claude/nyann/config.json`. Override
only when the user explicitly names a different user root.
- The backend upserts on `--name` collision. Warn the user if
they're replacing an existing source with a different URL — that's usually unintentional. Read current config first if unsure.
3. Invoke
bin/add-team-source.sh \ --name <id> \ --url <git-url> \ [--ref <branch>] \ [--interval <hours>] \ [--user-root <dir>]
Exit 0 on success; config path is logged to stderr.
4. Report back
- Name, URL, ref, interval.
- Tell the user "Run `/nyann:sync-team-profiles` (or ask 'sync my
team profiles') to actually pull them". `add-team-source` only registers — the pull is a separate operation on purpose (no surprise network calls here).
When to hand off
- "Now pull them" → `sync-team-profiles` skill.
- "Apply a team profile to this repo" → `bootstrap-project` with
the namespaced profile name (e.g. `platform-team/base`).
- "Show what the team profile does" → `inspect-profile` with the
namespaced name.
ငြမ်း 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
Other skills on nyann.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about add-team-source.
- Which coding agents can use add-team-source?
- add-team-source installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

