sky
Sky Knowledge Base
Registry
(Not configured yet. Ask a question or run /sky sync to set up.)
Routing
Parse the user's input to determine the subcommand:
sync→ Sync flowadd repo <url>→ Add Repo flowremove repo <name>→ Remove Repo flow- Anything else → Search flow (default)
Do not announce which flow you are running. Just execute it.
Setup flow
Triggered automatically when the Registry section above says "Not configured yet" and the user runs any command.
-
Ask where to store the KB using AskUserQuestion — suggest
~/sky-kbas the default (with the user's actual home directory expanded). Let the user pick or type a custom path. -
Clone the repo if the path doesn't exist:
git clone https://github.com/arcniko/sky-kb.git <path> -
Ask which bundle to install using AskUserQuestion with these options:
- All (Recommended) — all categories + Atlas (~41 repos). "Full picture: governance, technical, everything."
- Core — Atlas + protocol docs + core contracts (~18 repos). "Essential protocol documentation."
- Technical — Core + Spark, Grove, keepers, migration, endgame (~29 repos). "Developer-focused: all code repos, skip governance/community."
-
Map the bundle to category IDs:
- All →
["laniakea", "core-protocol", "spark", "grove", "migration", "endgame", "keepers", "governance"] - Core →
["laniakea", "core-protocol"] - Technical →
["laniakea", "core-protocol", "spark", "grove", "migration", "endgame", "keepers"]
- All →
-
Write
<path>/.kb_config.json:{"preset": "sky", "categories": [...selected IDs...], "custom_repos": [], "atlas": true} -
Update the Registry section in this SKILL.md — replace the placeholder text with
<path>using the Edit tool. -
Run sync:
python3 <path>/scripts/sync.py --kb-path <path> -
If the user had a question, continue to the Search flow to answer it.
Search flow
-
Resolve KB path from the Registry section above. If it says "Not configured yet" → trigger Setup flow automatically.
-
Read
<kb-path>/DIRECTORY.mdto understand what content exists and where. -
Target your search — based on DIRECTORY.md, identify the most relevant subdirectories for the question. Grep within those specific directories rather than all of
content/. -
Read matching files to find the answer.
-
For Atlas results: also read the parent scope file for broader context.
-
For protocol questions: prioritize
laniakea-docs(current), thenmcd-docs-content(legacy). -
For smart contract address lookups: read
<kb-path>/content/chainlog-ui/api/mainnet/active.json— this is the live chainlog with all current contract addresses.
How to answer
- Be specific and cite your sources (Atlas formal ID like
A.1.2.3, or file path for repo docs) - Quote relevant passages when helpful
- If the content doesn't contain an answer, say so clearly
Sync flow
- Resolve KB path from the Registry section above. If it says "Not configured yet" → trigger Setup flow.
- Run:
python3 <kb-path>/scripts/sync.py --kb-path <kb-path> - Summarize concisely — only mention what changed:
- Atlas: "updated" or "already up to date"
- Repos: if ≤5 updated, list their names; if >5, just show the count (e.g. "12 repos updated")
- If nothing changed: "Everything up to date."
- If errors occurred, show them and suggest fixes.
Add Repo flow
- Parse arguments — extract repo URL (required), name (optional, derive from URL), description (optional, ask user).
- Resolve KB path from the Registry section above. If it says "Not configured yet" → trigger Setup flow first.
- Validate — run
git ls-remote <url> HEADto confirm accessibility. - Read
<kb-path>/.kb_config.json— checkcustom_reposfor duplicates. - Add to config — append to the
custom_reposarray in.kb_config.json. - Run sync to clone the new repo.
- Report what was added.
Remove Repo flow
- Parse the repo name from arguments.
- Resolve KB path from the Registry section above.
- Read
<kb-path>/.kb_config.json— find the repo incustom_repos.- If not found there, check if it's a preset repo. If so, tell the user to remove the category instead.
- Remove from config — edit
.kb_config.jsonto remove the entry. - Delete content:
rm -rf <kb-path>/content/<name> - Run sync to regenerate DIRECTORY.md.
- Report what was removed.