geronimo-iia/llm-wiki-skills/schema
Claude Code and agent skill by geronimo-iia/llm-wiki-skills
- community
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/schemaSKILL.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:
| Role | Types | Question answered | |
|---|---|---|---|
| Synthesized knowledge | concept | What do we know? | |
| Source provenance | paper, article, documentation, ... | What does this source claim? | |
| Reasoning output | query-result | What did we conclude? | |
| Structure | section | How is knowledge organized? | |
| Agent workflow | skill | How to perform a task? | |
| Reference | doc | What 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:
| Type | Schema | Description | |
|---|---|---|---|
default | base.json | Fallback for unrecognized types | |
concept, query-result | concept.json | Synthesized knowledge and saved conclusions | |
paper, article, documentation, clipping, transcript, note, data, book-chapter, thread | paper.json | Source types — one page per source document | |
skill | skill.json | Agent skill with workflow instructions | |
doc | doc.json | Reference document | |
section | section.json | Section 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:
Resolution order:
- Scan
schemas/*.json→ collectx-wiki-typesentries - Read
[types.*]fromwiki.toml(if any) wiki.tomlentry 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:
Keyword fields:
- Indexed as
STRING | STORED | FAST— exact match, no tokenization - Appear in facet distributions (like
typeandstatus) - 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:
Aliases affect indexing only — files on disk are never rewritten.
Graph edges
Each schema declares outgoing edges via x-graph-edges:
| Type | Field | Relation | Target types | |
|---|---|---|---|---|
| concept | sources | fed-by | All source types | |
| concept | concepts | depends-on | concept | |
| source types | sources | cites | All source types | |
| source types | concepts | informs | concept | |
| doc | sources | informed-by | All source types | |
| skill | document_refs | documented-by | doc | |
| any | superseded_by | superseded-by | Any |
Body [[wiki-links]] get a generic links-to relation.
Constraints
- A
defaulttype must always exist in the registry. If no schema
declares it, the embedded base.json is used as fallback.
- A custom
base.jsonmust declaredefaultinx-wiki-types. - A custom
base.jsonmust require at leasttitleandtype
fields (superset is fine, but cannot drop them).
- Pages without a
typefield default totype: page, validated
against default.
- Pages with an unregistered type are validated against
default. - The
defaulttype cannot be removed.
List registered types
Inspect a type schema
Returns the full JSON Schema for the given type.
Get a frontmatter template
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:
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
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
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
- SKILL.md in the repositoryCheckingskills/schema/SKILL.md
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
[](https://verified-skill.com/skills/geronimo-iia/llm-wiki-skills/schema)