Browse and install team skills from the team AI directives. Use when listing, adding, or onboarding team skills to the current agent's skills directory. Supports --all to install every default and external skill at once.
npx skills add https://github.com/tikalk/adlc-team-skills --skill team-skills
Browse available skills from the team AI directives and install
selected ones to the current agent's skills directory. Use --all to
install every default and external skill in one pass. Skills are
installed under their original names (no prefix) so they stay in sync
with the manifest.
team-setup delegates /team-skills --all after initial configuration.$ARGUMENTS
Read the file .adlc/init-options.json directly. Do NOT use glob, find,
or any file-search tool to locate it — search tools may silently skip
dotfile-prefixed path segments. Read the file at the exact relative path
.adlc/init-options.json from the current working directory.
If that read fails (file not found), walk up parent directories by reading
../.adlc/init-options.json, then ../../.adlc/init-options.json,
and so on — up to 4 levels. Stop at the first successful read.
From the JSON, extract the team_ai_directives field:
{
"team_ai_directives": "/path/to/team-ai-directives"
}
If team_ai_directives is not set, STOP:
Team AI directives not configured.
Run: /team-setup
Helper scripts (relative to skill directory):
$(dirname "$0")/team-helpers.sh --json$(Split-Path $PSCommandPath -Parent)/team-helpers.ps1 -JsonRead {REPO_ROOT}/.skills.json (where {REPO_ROOT} denotes the project
root — the directory where .adlc/ lives) and {TEAM_AI_DIRECTIVES}/.skills.json
(team directives manifest). Merge both, with project-root entries taking
precedence. Parse the manifest sections (schema v2.0.0):
| Section | Description | Installed by --all? |
|---------|-------------|-----------------------|
| default | Local skills (in skills/{name}/) auto-installed during setup | Yes |
| external | Remote skills fetched by URL, installed on demand | Yes |
| blocked | Rejected — must never be installed | Never |
Present skills grouped by section. For each skill show:
github-actions for local, react-best-practices for external)Format:
Team Skills from {TEAM_AI_DIRECTIVES}
Default (local, installed by --all):
[installed] dbt-template - DBT project templates and best practices
[available] github-actions - GitHub Actions CI/CD pipeline patterns
[available] helm-charts - Helm chart patterns for Kubernetes
[available] crossplane - Crossplane Composition and XRD patterns
[available] external-secrets - External Secrets Operator patterns
[available] gke-workload-identity - GKE Workload Identity patterns
External (remote, installed by --all):
[available] react-best-practices - React performance optimization
[available] web-design-guidelines - Web interface best practices
Determine the install target from the arguments:
--all: Install every default skill and every external skill,skipping anything in blocked and anything already installed.
Determine the agent's skills directory:
.adlc/integration.json to get the current agent{agent_folder}/skills/ as the destinationInstall under the original name (no prefix), frontmatter name unchanged:
For local skills (default list — names map to skills/{name}/):
{TEAM_AI_DIRECTIVES}/skills/{name}/SKILL.mdSKILL.md to {skills_dir}/{name}/SKILL.mdFor external skills (external map — entries have a url):
SKILL.md from the entry's url field{skills_dir}/{name}/SKILL.mdNever install any skill listed in blocked. Skip skills already present at the
destination (report them as [installed]).
Installed: github-actions
Location: .opencode/skills/github-actions/SKILL.md
Source: default (local:./skills/github-actions)
--all, typically invoked by team-setupafter initial configuration or run manually at any time.
team- prefix — so theon-disk name matches the manifest key.
blocked list are never installed.| Rationalization | Why it's wrong | Do this instead |
|---|---|---|
| "I'll add a team- prefix to installed skills" | Diverges the on-disk name from the manifest key, breaking lookups | Install under the original name; frontmatter name stays unchanged |
| "Search tools will find .adlc/init-options.json" | Glob/find silently skip dotfile-prefixed path segments | Read the exact relative path directly |
| "Blocked skills are just strong recommendations" | blocked means explicitly rejected on install | Never install blocked skills |
| "Default skills already auto-installed elsewhere" | Only --all (via team-setup or manual) installs them | Run /team-skills --all to onboard the default set |
| "I'll skip merging the project-root manifest" | Project entries are meant to override team defaults | Merge both manifests; project-root wins conflicts |
.adlc/init-options.json instead of reading the exact path.team- prefix on install — install under the original name so it matches the manifest.blocked section.team_ai_directives field instead of stopping with the config message..adlc/init-options.json was read directly (no search tool) and team_ai_directives resolved to a path.{REPO_ROOT}/.skills.json and {TEAM_AI_DIRECTIVES}/.skills.json were merged; project-root entries won any conflicts.{skills_dir}/{name}/SKILL.md with its original name in frontmatter (no prefix).blocked section was installed.--all installed every default and external skill (skipping blocked and already-installed).TEAM_AI_DIRECTIVES — Path to the team AI directives (overrides .adlc/init-options.json)..adlc/init-options.json — Project-level config file with team_ai_directives field.team-ai-directives/ relative to project root.team-helpers.sh / team-helpers.ps1 — Shared scripts used for path resolution.Factor XII (Team Capability) — manages team skill catalog and installation.
Take tikalk/team-skills from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.