Wiki
SkillDocs & knowledgeDispatch four subcommands: ingest, query, lint, or compile. Manage tracked knowledge; .agro/knowledge/ owns source pages, patterns, and raw snapshots; local scratch is excluded. Canonical schema: .agro/skills/wiki/references/schema.md. Procedures: references/{ingest,query,lint,compile}.md. TRIGGER when: ingest a URL, path, or draft; query the wiki before planning; lint the index or review status; or compile a retro lesson into a pattern.
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 Wiki skill
What this skill tells your AI
The instructions your AI receives, as published by mifunedev/agro in .agro/skills/wiki/SKILL.md and read by ahel’s review.
One parameterized skill over the harness knowledge base. The first token of
$ARGUMENTS selects the operation; the remainder is that subcommand's argument
string. This dispatcher holds the routing logic and the rules shared by all four
operations; the full per-subcommand procedure lives in references/.
Two surfaces, one owner each. .agro/knowledge/ owns the data; this skill
owns the procedure. No knowledge page lives under .agro/skills/wiki/, and no
schema rule lives anywhere but references/schema.md.
Subcommands
| Subcommand | Argument form | Purpose | Reference |
|---|---|---|---|
ingest | <url|path> [--slug <override>] · --from-draft <slug> [--allow-stale] | Capture a source or promote a draft into an entity page (the only authorized write path) | references/ingest.md |
query | <topic> [--patterns] | Frontmatter OR-search over tracked knowledge; read the top matches into context (≤3 entity, ≤5 pattern) | references/query.md |
lint | [--dry-run] | Six correctness checks + atomic .agro/knowledge/README.md index regeneration | references/lint.md |
compile | [--from <path>] [--task <slug>] [--dry-run] | Consolidate a /retro report into kind: pattern entries (create or patch) | references/compile.md |
Dispatch
Parse $ARGUMENTS: the first whitespace-delimited token is the subcommand; the
rest is the subcommand's argument string.
ARGUMENTS="${ARGUMENTS:-}"
SUB="${ARGUMENTS%% *}" # first token
REST="${ARGUMENTS#"$SUB"}" # everything after it
REST="${REST# }" # trim one leading space
Route on $SUB, then follow the matching reference document end-to-end (its
instructions are authoritative — this dispatcher does not restate them):
$SUB | Action |
|---|---|
ingest | Read references/ingest.md; execute it with $REST as its argument string. |
query | Read references/query.md; execute it with $REST as the <topic>. |
lint | Read references/lint.md; execute it with $REST (only --dry-run is recognized). |
compile | Read references/compile.md; execute it with $REST as its argument string. |
| anything else (incl. empty) | Print the usage line from argument-hint and exit 0. Do not guess a subcommand. |
Shared rules
These hold across all four subcommands; the reference docs assume them.
- Knowledge root: entity pages at
.agro/knowledge/source/<slug>.md, pattern pages at.agro/knowledge/patterns/pattern-<subsystem>-<mode>.md, immutable external snapshots at.agro/knowledge/raw/<yyyy-mm-dd>-<slug>.md. Both entry globs are flat and do not descend. - Tracked by default:
source/,patterns/, andraw/are committed like any other repository content — a plaingit add, no-f, no whitelist..agro/knowledge/local/is the only ignored tier. local/is never an input: no query path and no/specflow reads it. A page one machine can see must not inform a plan another machine cannot reproduce. Promotion goes throughingest.- The repository outranks the knowledge base: a page is orientation, not authority. Re-ground material claims against the sources a page cites before relying on them.
- Canonical schema: frontmatter fields, the three kinds, provenance forms,
freshness, slug derivation, the word cap, cross-links, the confidence
lifecycle, and the body-merge strategy all live in
.agro/skills/wiki/references/schema.md. The reference docs and this dispatcher defer to it — they never redefine it. - Frontmatter extraction (canonical, used identically by every consumer):
awk '/^---$/{f=!f; next} f{print}' .agro/knowledge/source/<slug>.md - One freshness implementation:
.agro/skills/wiki/scripts/knowledge-impact.shdecides dependency-aware invalidation.lintcalls it with--verified;/spec executecalls it with--changed <paths>. Nothing reimplements it. - Orchestrator-only write gate:
ingestwrites (snapshots + entity pages),compile's pattern-page writes, andlint's index regeneration are orchestrator-only. Sub-agents propose drafts to$TMPDIR/oh-wiki-drafts/<slug>.md; the orchestrator promotes via/wiki ingest --from-draft <slug>. A sub-agent that writes directly to.agro/knowledge/is out of scope and may be reverted. - Index reflects the tracked entry set:
.agro/knowledge/README.md's Index table is generated state owned bylint, sorted byupdated:descending. Never hand-edit it.
When NOT to use
- A topic that is a behavioral norm ("always do X") → a rule/skill, not knowledge.
- A session journal entry ("this run showed Y") → the run's report. A
recurring failure mode the run revealed is different: that is a
kind: patternentry, written bycompile, named for the mode not the run. - A proposal decision record →
.agro/evals/decisions/skill-impact.md, not a knowledge page. - Human-facing prose →
docs/(knowledge pages are LLM-readable synthesis). - Full-text body search → direct
grep;queryis intentionally frontmatter-only.
See Also
.agro/skills/wiki/references/schema.md— canonical schema and authoring rules.agro/skills/wiki/references/ingest.md·query.md·lint.md·compile.md— full procedures.agro/skills/wiki/scripts/knowledge-impact.sh— dependency-aware invalidation.agro/knowledge/README.md— the generated index.agro/evals/decisions/skill-impact.md— the skill-change ledger the proposer reads.agro/evals/probes/wiki-readme-index.sh— drift guard for the generated index
Signals
- GitHub stars
- 38
- Forks
- 3
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
wiki-mifunedev- Source
- github.com/mifunedev/agro