Why use it: disco after installing there is still no operational knowledge. This step loads 1,000 repo skills + router into the agent dir.
What it produces: ~/.disco/agent/skills/repositories/{repo-skills,repo-skills-router}/, along with a record of the source commit for later drift comparison.
1. Install
disco repo-skills install
This command clones the shallow (--depth 1 --filter=blob:none) official repo, copies only the runtime collection portion, then records the source commit. Git must be available on the machine.
Sample output (printed by printInstallResult):
Installed repository skills from commit <sha>.
Official skills: <n>
Local skills preserved: <n>
Total repo skills: <n>
Routed repositories: 1000
Area-family assignments: 2209
Router taxonomy: 20 areas, 178 families
Router: enabled
Start a new Researcher session to load the updated repository skill index.
Running it again when already installed will not reinstall, only print:
Repository skills are already managed. Run 'disco repo-skills update' to check for updates.
2. Inspect status — and this is the command used as a CI gate
disco repo-skills status
status fully local: checks the digest of managed skills, the presence of the router, routing coverage. It does not call GitHub. Prints:
Installed: yes
Managed by DisCo: yes
Source: <repo url>
Commit: <sha> (<12 ký tự đầu>)
Official skills / Local skills / Total repo skills
Routed repositories / Area-family assignments / Router taxonomy
Files: <n>
Router: enabled | disabled | not installed
Drift: none ← hoặc "Drift/issues:" kèm danh sách
Exit code (check by code, not by README):
| Situation | Exit |
|---|---|
| Clean, no drift | 0 |
Any item in status.issues (drift / missing router / broken) |
1 |
Command syntax error (--force for status, unknown subcommand, router foo) |
2 |
Specifically: repo-skills.ts set process.exitCode = 1 when status.issues.length > 0; any parse error throws RepoSkillsLibraryError(..., 2). Don't write scripts like || true — 1 and 2 mean different things.
3. Update
disco repo-skills update # kiểm HEAD remote và áp bản mới
disco repo-skills update --force # thay cả skill official đã bị sửa local; giữ backup
Update rules:
- Only replace the managed official skill IDs.
- Skills created by the Creator or imported by you are kept as-is.
- If an official skill has been locally modified, or its ID collides with an unmanaged skill → the command stops. Only
--forceoverwrites, and it printsBackup: <path>for recovery.
4. Enable/disable router
disco repo-skills router disable
disco repo-skills router enable
By default repo-skills-router is the only entry point the model sees; the repo skill root and sub-skills are all disable-model-invocation: true so they aren't stuffed into the initial context. Disabling the router = removing it from automatic skill selection, but it can still be called manually with /skill:repo-skills-router.
Any install / update / router change only takes effect in a new Researcher session. The CLI itself also prints this reminder.
5. Offline mode
disco --offline ... # hoặc: export DISCO_OFFLINE=1
When offline, install/update fails intentionally with the message:
Repository skill install/update is unavailable in offline mode. Re-run without --offline or DISCO_OFFLINE.
status still runs because it never needed the network.
6. Fallback: manual install
git clone https://github.com/VectorSpaceLab/AREX-Skill.git
cd AREX-Skill
mkdir -p ~/.disco/agent/skills/repositories
cp -R \
skills/repositories/repo-skills \
skills/repositories/repo-skills-router \
~/.disco/agent/skills/repositories/
Run disco repo-skills install then it will adopt the manual copy if it hasn't been modified, and keep the other local skill IDs.
7. The structure you just installed (so you know where to read)
~/.disco/agent/skills/repositories/
├── repo-skills/
│ ├── repository-index.jsonl # 1000 dòng, mỗi dòng 1 repo
│ └── <skill-id>/
│ ├── SKILL.md
│ ├── sub-skills/
│ ├── references/repo-provenance.md
│ ├── references/repo-routing-metadata.json
│ └── scripts/
└── repo-skills-router/
├── SKILL.md
└── references/
├── areas/ # 20 area
├── families/<area>/ # 178 family
└── index/ # taxonomy.json · repositories.jsonl (1000) · assignments.jsonl (2209) · build-metadata.json
Routing path: request → area → family → repository skill root → sub-skill.
⚠️ Each skill has its own license. The field license in SKILL.md of that skill is what decides, not the Apache-2.0 of the original repo. Check before copying/redistributing.
Next step
03-chay-viec-researcher.md — actually use the knowledge you just installed.