Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mycelium-ai.co/llms.txt

Use this file to discover all available pages before exploring further.

A vault note is not just a markdown file. It is a typed record: the frontmatter declares which category the entry belongs to, and the runtime validates the body against the matching JSON Schema before accepting the write.

Categories

Five canonical categories ship in the substrate. Each maps to a stable slug used by the runtime API.
CategorySlugUse for
DecisiondecisionsA choice the team made, with context and trade-offs. Outcome filled later.
ExceptionexceptionsA documented deviation from the standard process and why.
FactfactsA stable claim about the world (a price, a deadline, a contract clause).
WorkflowworkflowsA repeatable procedure with steps, owners, and exit criteria.
RelationshiprelationshipsA typed edge between two entities (person, account, opportunity, etc.).
A sixth category, outcomes, exists for closing the loop on past decisions and is created automatically when a decision is marked resolved.

File shape

Every entry is a markdown file with a frontmatter block:
---
id: 0a3f88
type: decision
title: Move from monthly to weekly review cadence
tenant_id: acme-corp
valid_from: 2026-04-15
valid_to: null
recorded_at: 2026-04-20T14:32:00-05:00
tags: [process, cadence]
---

## Context

The monthly review cadence was missing weekly drift events that mattered.

## Trade-offs

Considered keeping monthly with mid-month spot-check; rejected because spot-checks were skipped in 3 of 4 months.

## Outcome

(Filled in when resolved.)
valid_from and valid_to are the bi-temporal anchors used by the resolver to answer “what was the rule on this date?”.

Validation

Each category has a JSON Schema in the substrate at schemas/<category>.schema.json. The schema declares required frontmatter fields and the body’s section structure. Writes through the runtime API validate against the schema and reject anything malformed with a 422. Schema evolution rules:
  • Add fields freely (default to null or empty).
  • Removing a field requires a migration script that runs against existing entries.
  • Changing a field’s type is a breaking change and requires a new schema version.

Storage

Entries live on disk under vaults/<tenant_id>/<Category>/<YYYY>/<YYYY-MM-DD>-<slug>.md. A SHA-8 of the file path becomes the entry’s stable id for API operations. The disk format is plain markdown so vaults remain readable, greppable, and git-versionable without the runtime running.