team-setup
SkillDev toolsWire a repo for Loobster's team layer in one command: vendor the fleet dashboard workflow + the scripts it runs in CI, scaffold signals/ and plans/loop/, and enable GitHub Pages via gh (refusing on public repos unless explicitly overridden). Use when onboarding a repo to the team features.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the team-setup skill
What this skill tells your AI
The instructions your AI receives, as published by nilswidal/loobster in .agents/skills/team-setup/SKILL.md and read by ahel’s review.
Make this repo team-ready on GitHub in one command: vendor the fleet dashboard workflow (plus the scripts it runs in CI), scaffold the signals hub and the loop-marker directory, and enable GitHub Pages — so the team gets one URL showing every loop on every branch, with Pause / Resume / Stop that commit back. GitHub is the server: Actions is the runtime, Pages is the UI, git is the only data plane.
Why files are copied, not referenced
fleet-pages.yml runs python3 bin/fleet-build.py and bin/signals-build.py from the repo checkout inside Actions, where the plugin install directory does not exist. A hand-copied workflow without the scripts fails on its first run. So setup vendors the workflow and its scripts into the repo, each stamped vendored from loobster vX.Y.Z. After a plugin upgrade, re-run with --force to refresh the copies.
Steps
- Preflight. Confirm the workspace is a git repo. Check
gh auth status; ifghis missing or unauthenticated, still proceed — the script vendors everything and prints the one manual step (Settings → Pages → Source: GitHub Actions) instead of doing it via API. - Compliance gate — before running. The real question is not "is the repo private?" but "will the Pages site be world-readable?" — and it will be for every repo except a private repo on GitHub Enterprise Cloud (a private repo on Free/Pro/Team still publishes public Pages). The script checks visibility and plan and refuses (exit 3) whenever the board would be public, unless
--public-ok. So: if it refuses, stop and ask the human explicitly before passing--public-ok— the board would expose loop goals, task titles, and signals. Never on PHI-adjacent work — seecompliance/org-controls-audit.md. After enabling, the script reads the live Pages object back and prints whether the URL is actually public or private; relay that to the human. - Run it:
Flags to pass through when asked:bash bin/team-init.sh --repo "$(pwd)"--protect-main(require 1 approving PR review on the default branch — pairs withpr-laneloops, where PR review is the human gate),--no-pages(wire files only),--dry-run(show the plan first),--force(refresh vendored copies after an upgrade). - Heed the script's warnings. If it reports an existing
signals-pages.yml, remove that workflow in the same change — one Pages site per repo; the fleet board serves signals at/signals/. - Land it team-style. Review
git status/git diff, commit on a feature branch, open a PR. Never commit straight to the default branch — that is the point of team-ready. - After the PR merges, trigger the first build and hand the team URL back:
(gh workflow run fleet-pages.yml gh api repos/<owner>/<repo>/pages -q .html_urlworkflow_dispatchonly works once the workflow file is on the default branch — do not try it before the merge.)
Notes
- Re-runs are safe: existing files are skipped without
--force, so/team-setupis also the upgrade path for the vendored scripts. - Genuinely private Pages requires GitHub Enterprise Cloud — an org-level fact the script cannot change. On any other plan a "private" repo still serves a fully public Pages site (not merely unlisted), which is why the gate blocks it by default; see
compliance/org-controls-audit.md. - This wires the team layer only. The RePPITS workflow itself (
/run,/loop,/secure) needs no setup.
Signals
- GitHub stars
- 36
- Forks
- 2
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
team-setup- Source
- github.com/nilswidal/loobster