sync-team-profileslisted
Install: claude install-skill thettwe/nyann
# sync-team-profiles
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>`.
## 1. Pre-flight
- Config at `~/.claude/nyann/config.json` must have at least one
entry in `team_profile_sources[]`. If empty, route to
`add-team-source` first.
- Uses the sync interval from each source. When the user says
"force refresh" / "ignore the interval" / "pull now", pass
`--force`.
- When the user names a specific source ("sync just the platform-
team profiles"), pass `--name <source>` so unrelated sources
don't get pulled.
## 2. Invoke
```
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.
## 3. Interpret the JSON summary
Top-level shape is four arrays (see `schemas/team-sync-result.schema.json`):
- `synced[]` — sources that pulled this run. Each entry: `{name, synced_at}`.
- `skipped[]` — sources within their interval window. Each entry:
`{name, reason: "within-interval", next_due}`. Tell the user the
next-due timestamp; they can re-r