Terrain Knowledge Skill
Terrain stores AI knowledge assets under .terrain/ in this repository (not a global ~/.terrain/knowledge directory). The desktop app registry at ~/.terrain/registry.json only maps slugs → repo paths.
Load rtk-skill when you need to run shell commands during investigation (git, grep repomix file, tests). Resolve tools via conventional paths (~/.terrain/bin/…) with bunx/npx fallback — see rtk-skill / codegraph-skill.
Knowledge layers (mandatory order)
Architecture —
.terrain/agent/context.md- Module map, core flows, system boundaries, tech stack
- Check
.terrain/agent/context-meta.jsonormeta.jsonfor asset timestamps - Read directly (short); no RTK needed
Private domain —
.terrain/knowledge/**/*.md- Business glossary, internal frameworks, APIs, scaffolding guides
- Team-maintained markdown; read in filename sort order when surveying
Structured meta —
.terrain/agent/meta-inputs.md- Compiled from
terrain-meta.jsonandknowledge/scans
- Compiled from
Source index — see
repomix-context-skill- Local
.terrain/agent/repomix.md(gitignored; regenerate via Terrain scan)
- Local
Knowledge freshness (mandatory before architecture answers)
Before trusting context.md for module/architecture questions:
~/.terrain/bin/terrain tools freshness --project <slug>
# or: bunx @terrain-ai/cli tools freshness --project <slug>
This recomputes when stale and writes .terrain/.meta/freshness.json. Do not only read that JSON statically — it is a local cache snapshot.
| Score | Rule |
|---|---|
< 50 |
Do not rely on macro context; use repomix-context-skill |
50–69 |
Cross-check with repomix grep or codegraph-skill |
≥ 70 |
Architecture context is generally reliable |
On conflict: repomix source slices > codegraph > agent/context.md > human/
For symbol impact/callers, also see codegraph-skill (CodeGraph status can lie; use terrain tools codegraph-drift).
Query workflow
Task received
→ freshness check (architecture tasks)
→ Read context.md (or relevant section)
→ If business/internal terms → read knowledge/*.md
→ If symbol / call graph → codegraph-skill
→ If implementation / source → repomix-context-skill
→ If shell/git/test needed → rtk-skill (prefix with rtk)
Rules
- Do not invent module names that contradict
context.mdormeta-inputs.md - Do not read the entire live repository tree when indexed assets exist
- Do not load full
repomix.mdinto context — grep slices only (rtk grepon the file is OK) - Prefer
.terrain/over guessing project structure
Private knowledge directory
.terrain/knowledge/ — developers add markdown here; Terrain scans on context generation.
Example files:
00-glossary.md— domain terms10-internal-framework.md— internal libs20-api-usage.md— internal APIs30-scaffolding.md— project generators
Human docs (optional)
.terrain/human/ — Litho-generated docs for humans; useful for onboarding context but denser than context.md.
Related skills
| Skill | When |
|---|---|
repomix-context-skill |
Source code from repomix index |
codegraph-skill |
Callers, callees, impact |
rtk-skill |
All verbose shell commands |