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…
Max open dependency-updater PRs per ecosystem (1-25, default 5).
$ npx -y skills add thettwe/nyann --skill gen-dependency-updater --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/gen-dependency-updaterContext preview
The summary Claude sees to decide when to auto-load this skill.
Max open dependency-updater PRs per ecosystem (1-25, default 5).
name: gen-dependency-updater
description: >
Generate a Dependabot or Renovate config (`.github/dependabot.yml`
or `renovate.json`) for the active stack with sensible defaults
(weekly schedule, minor+patch grouping, open-PR cap at 5). Preview-
before-mutate: prints the rendered config and exits without writing
unless `--apply` is passed. Idempotent: same content is a no-op,
different content shows a diff and refuses to overwrite without
`--force-overwrite`.
TRIGGER when the user says "add dependabot", "enable dependabot",
"add renovate", "set up renovate", "configure dependency updates",
"automate dependency updates", "scaffold dependabot.yml", "create
renovate.json", "add automated dependency PRs", "wire dependency
bot", "turn on dependency updates", "/nyann:gen-dependency-updater".
Do NOT trigger on "update my dependencies" / "run npm update" —
that's a one-off package-manager invocation, not config scaffolding.
Do NOT trigger on "fix this dependabot PR" — that's a workflow
inside a specific PR, not config generation.
arguments:
- name: updater
description: Which generator to emit — `dependabot` (per-ecosystem YAML) or `renovate` (single JSON using `config:recommended`).
- name: ecosystem
description: Repeatable. Dependabot's `package-ecosystem` value (npm / pip / gomod / cargo / bundler / composer / maven / gradle / pub / nuget / mix / swift / docker / github-actions). `npm` covers npm/pnpm/yarn/bun. For monorepos pair with `--directory` per workspace.
- name: directory
description: Repo-relative directory of the manifest, must start with `/`. Default `/` (repo root). When `--ecosystem` repeats, place `--directory` BEFORE the corresponding `--ecosystem` to associate them.
optional: true
- name: target
description: Path to the repo. Required only when `--apply` is set; preview mode doesn't need it.
optional: true
- name: apply
description: Write the config to the destination path. Without it, the rendered config is printed to stdout (preview).
optional: true
- name: force-overwrite
description: Overwrite an existing config whose content differs from the rendered output. Without it, the script prints a diff and exits with code 3.
optional: true
- name: schedule
description: How often the updater polls — `daily`, `weekly` (default), or `monthly`.
optional: true
- name: grouping
description: How to bundle updates — `off` (one PR per update), `minor-patch` (default, groups minor+patch, keeps majors separate), `all` (group everything).
optional: true
- name: open-prs
description: Max open dependency-updater PRs per ecosystem (1-25, default 5).
optional: trueWraps `bin/gen-dependency-updater.sh`. Emits a Dependabot or Renovate config; preview-by-default; idempotent on apply.
config wired up.
template defaults shift with each `snapshot_version`).
`npm install`, `pip install -U`, `cargo update`, etc.
PR diff with them; this skill is for config generation only.
Renovate runs anywhere but its app installation is out of scope for this skill.
Default to **dependabot** when:
no app to install).
Default to **renovate** when:
package rules are richer than Dependabot's `groups`).
When in doubt, ask: > "Dependabot is GitHub-native and zero-install — recommended for > most. Renovate is more configurable but requires installing the > Renovate GitHub App. Which do you want?"
Read the StackDescriptor (from `bin/detect-stack.sh`) and map:
| Stack hint | Ecosystem(s) | |---|---| | `primary_language=typescript` / `javascript` | `npm` | | `primary_language=python` | `pip` | | `primary_language=go` | `gomod` | | `primary_language=rust` | `cargo` | | `primary_language=ruby` | `bundler` | | `primary_language=php` | `composer` | | `primary_language=java` (Maven) | `maven` | | `primary_language=java` (Gradle) / `kotlin` | `gradle` | | `primary_language=dart` | `pub` | | `primary_language=csharp` / `dotnet` | `nuget` | | `primary_language=elixir` | `mix` (v1.10+) | | `primary_language=swift` | `swift` | | `Dockerfile` present | `docker` (in addition to language ecosystem) | | `.github/workflows/` present | `github-actions` (always recommended) |
Always include `github-actions` even when the user didn't ask — it keeps the SAST workflow pins current.
For monorepos (`workspaces` resolved by `bin/resolve-workspace-configs.sh`), emit one `--ecosystem` per workspace with the workspace path as `--directory`. Dependabot doesn't auto-walk; one entry per manifest is mandatory.
Always preview first. Even if the user said "just do it", show the rendered config and wait for confirmation:
bin/gen-dependency-updater.sh --updater dependabot --ecosystem npm --ecosystem github-actions
Then on confirmation:
bin/gen-dependency-updater.sh --updater dependabot \ --ecosystem npm --ecosystem github-actions \ --target . --apply
If the destination file already exists and matches: log "unchanged" and exit. If it differs: print diff, exit 3, prompt the user before re-running with `--force-overwrite`.
ငြမ်း 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…