geronimo-iia/llm-wiki-skills/schema

Claude Code and agent skill by geronimo-iia/llm-wiki-skills

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Understand and manage the type system — built-in types, type discovery, field aliasing, graph edges, and schema operations.

Install

npx vskill@latest install geronimo-iia/llm-wiki-skills/schema

SKILL.md

Schema

Every wiki page has a type field. The type determines which JSON Schema validates the frontmatter, how fields are indexed, and what graph edges are declared.

For frontmatter field conventions, see the frontmatter skill.

Epistemic roles

The type field carries epistemic distinctions:

RoleTypesQuestion answered
Synthesized knowledgeconceptWhat do we know?
Source provenancepaper, article, documentation, ...What does this source claim?
Reasoning outputquery-resultWhat did we conclude?
StructuresectionHow is knowledge organized?
Agent workflowskillHow to perform a task?
ReferencedocWhat are the specifications?

Classify by the source material's nature, not its topic. A blog post about academic research is article, not paper.

Built-in types

Shipped by llm-wiki spaces create:

TypeSchemaDescription
defaultbase.jsonFallback for unrecognized types
concept, query-resultconcept.jsonSynthesized knowledge and saved conclusions
paper, article, documentation, clipping, transcript, note, data, book-chapter, threadpaper.jsonSource types — one page per source document
skillskill.jsonAgent skill with workflow instructions
docdoc.jsonReference document
sectionsection.jsonSection index grouping related pages

One schema can serve multiple types (e.g. paper.json serves all 9 source types).

Type discovery

Types are discovered automatically from schemas/*.json files. Each schema declares which types it serves via x-wiki-types:

json
"x-wiki-types": {
"paper": "Academic source — research papers, preprints",
"article": "Editorial source — blog posts, news, essays"
}

Resolution order:

  1. Scan schemas/*.json → collect x-wiki-types entries
  2. Read [types.*] from wiki.toml (if any)
  3. wiki.toml entry wins over discovered entry

Common case: no [types.*] in wiki.toml — types are fully discovered from schema files.

Keyword fields

String properties default to full-text analyzed indexing (BM25). Mark a property "x-keyword": true to index it as an exact-match keyword field:

json
{
"properties": {
"domain": {
"type": "string",
"x-keyword": true
}
}
}

Keyword fields:

  • Indexed as STRING | STORED | FAST — exact match, no tokenization
  • Appear in facet distributions (like type and status)
  • FAST storage means facet counts carry no extra segment pass overhead
  • Filtering is case-sensitive exact match — not partial-word

Use x-keyword: true for controlled vocabulary fields (states, categories, enums). Leave plain "type": "string" for free-text prose fields.

The built-in type and status fields use keyword indexing. tags uses keyword indexing on its array elements.

Field aliasing

Different types use different field names for the same role. The engine maps them via x-index-aliases in the schema:

json
"x-index-aliases": {
"name": "title",
"description": "summary",
"when_to_use": "read_when"
}

Aliases affect indexing only — files on disk are never rewritten.

Graph edges

Each schema declares outgoing edges via x-graph-edges:

TypeFieldRelationTarget types
conceptsourcesfed-byAll source types
conceptconceptsdepends-onconcept
source typessourcescitesAll source types
source typesconceptsinformsconcept
docsourcesinformed-byAll source types
skilldocument_refsdocumented-bydoc
anysuperseded_bysuperseded-byAny

Body [[wiki-links]] get a generic links-to relation.

Constraints

  • A default type must always exist in the registry. If no schema

declares it, the embedded base.json is used as fallback.

  • A custom base.json must declare default in x-wiki-types.
  • A custom base.json must require at least title and type

fields (superset is fine, but cannot drop them).

  • Pages without a type field default to type: page, validated

against default.

  • Pages with an unregistered type are validated against default.
  • The default type cannot be removed.

List registered types

wiki_schema(action: "list")
json
[
{
"name": "concept",
"description": "Synthesized knowledge — one concept per page",
"schema_path": "schemas/concept.json"
}
]

Inspect a type schema

wiki_schema(action: "show", type: "<type>")

Returns the full JSON Schema for the given type.

Get a frontmatter template

wiki_schema(action: "show", type: "<type>", template: true)

Returns a YAML frontmatter block with required fields filled with placeholder values.

Add a custom type

Drop a schema file into schemas/ with x-wiki-types for automatic discovery, or register explicitly:

wiki_schema(action: "add", type: "<type>", schema_path: "<path>")

A custom schema must be valid JSON Schema (Draft 2020-12) and should include x-wiki-types. The engine validates, copies it into schemas/, and confirms index resolution works.

Optionally add a body template at schemas/<type>.md — it will be used by wiki_content_new when creating pages of this type.

Remove a type

wiki_schema(action: "remove", type: "<type>")

The default type cannot be removed. Add delete: true to also modify/delete the schema file. Add delete_pages: true to delete page files from disk. Use dry_run: true to preview.

Validate schemas

wiki_schema(action: "validate")

Validates all schema files. Pass type: "<type>" to validate a single type. Checks: valid JSON Schema, x-wiki-types presence, alias resolution, base schema invariant (default type requires title and type), and full index compatibility.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/geronimo-iia/llm-wiki-skills/schema/badge)](https://verified-skill.com/skills/geronimo-iia/llm-wiki-skills/schema)

Something wrong with this skill or its page? Tell us.