Sigil: Inventory
SkillAI & modelsUse when: installing or maintaining a repository-local compiled knowledge inventory that lets agents ingest once, index, tag, query, lint, and reuse context across sigils.
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 Sigil: Inventory skill
What this skill tells your AI
The instructions your AI receives, as published by cyberalchemyai/arcanum in arcana/inventory/SKILL.md and read by ahel’s review.
Default layout:
.arcanum/inventory/
README.md
schema.md
index.md
index.json
log.md
tags.md
indexes/
raw/
wiki/
entries/
queries/
lint/
- Run
scripts/sync-runtime.sh --check --target <inventory-root> --json. - Review exact
missing,drifted, andextra_managedpaths. - Apply only when requested with
scripts/sync-runtime.sh --apply --target <inventory-root> --json. - Re-run check and require a clean managed set.
- Prove consumer-owned entries, queries, raw material, receipts, indexes, local schema, tags, and logs remain byte-identical.
The managed set is declared by runtime-manifest.json. Never broaden it from
the target repository contents, and never treat runtime synchronization as
permission to rewrite consumer knowledge state.
- contradictions between pages,
- stale claims superseded by newer sources,
- orphan pages with no incoming or outgoing links,
- important concepts mentioned but lacking pages,
- missing cross-references,
- untagged pages,
- invalid frontmatter when frontmatter is enabled,
- raw sources not yet inventoried,
- generated pages without source coverage,
- log entries that do not match the configured heading pattern,
- missing, stale, or unparsable
index.json, - failed projection conformance between configured sources,
index.json, exact derived maps,index.md, and enabled projections, - machine index rows that lack source path, projection source, freshness, validation boundary, or residue fields when required by the local schema,
- CSV projections that do not declare their
index.jsonsource or are treated as authoritative, - evidence-cards missing
source_refs, - evidence-cards with unknown controlled vocabulary values,
- EvidenceSets with unknown controlled vocabulary values,
- EvidenceSets that reference missing evidence-card IDs,
- EvidenceSets that duplicate evidence-card source excerpts or summaries,
- full evidence-cards missing
trace, - terminal promotion status with
promotion_owner: none, - relation candidates missing a non-authority notice,
- unresolved
residuethat should be surfaced in lookup or validation output.
The machine index must be JSON, parse with jq, and preserve enough structure for downstream sigils to filter without reparsing Markdown. Repositories may add CSV projections for spreadsheets or shell pipelines, but CSV projections are secondary read models whose source must be index.json.
Minimum index.json shape:
{
"schema_version": "inventory.index.v0.1",
"inventory_root": ".arcanum/inventory",
"generated_at": "YYYY-MM-DDTHH:MM:SSZ",
"human_index": "index.md",
"entries": [
{
"id": "stable-entry-id",
"path": "entries/example.md",
"kind": "page | entry | query | lint | raw-manifest | evidence-card-bundle | evidence-set-bundle",
"type": "concept",
"title": "Entry title",
"summary": "Short reusable summary.",
"tags": ["inventory"],
"sources": ["source/path.md#selector"],
"updated": "YYYY-MM-DD",
"status": "candidate",
"confidence": "high | medium | low",
"selectors": [],
"evidence_card_ids": [],
"evidence_set_ids": [],
"residue": []
}
],
"indexes": {
"by_id": {},
"by_type": {},
"by_tag": {},
"by_source": {},
"by_status": {},
"by_evidence_card": {},
"by_evidence_set": {}
},
"projections": [
{
"path": "projections/index.csv",
"metadata": "projections/index.meta.json",
"format": "csv",
"source": "index.json",
"purpose": "flat table export",
"freshness": "generated-from-current-index",
"enabled": true
}
],
"validation": {
"parseable": true,
"source_coverage": "complete | partial | unknown",
"validation_boundary": "inventory-read-model-only",
"projection_conformance": {
"schema_version": "inventory.projection-conformance.config.v1",
"governed_sources": [
{"root": "entries", "patterns": ["**/*.md"]}
],
"human_indexed_prefixes": ["entries/"],
"uncontrolled_tags": "warn"
}
}
}
Optional indexes under indexes/*.json may specialize selector, link, backlink, tag, traceability, query-pattern, gap/risk, or projection lookup. They must declare their source index and remain Inventory read models, not Ontology Vault relations or Definitions Governance authority.
scripts/validate-index-json.sh is the lookup-readiness gate. Its projection
conformance stage enumerates configured source roots, proves one-to-one source
path and stable machine ID bindings, checks every indexed path, rebuilds all
required maps in memory for exact comparison, compares human path/type columns
where represented, and validates every enabled projection. Each enabled
projection needs a JSON metadata file whose source_sha256 equals the current
index.json, whose source_generated_at equals the current machine-index
timestamp, and whose projection_sha256 equals the projection artifact.
Uncontrolled historical tags are warnings unless a separately governed closed
vocabulary says otherwise.
Required authoring behavior:
- every material claim points to
source_refsor is explicitly marked as inference, synthesis, or open question, tracerecords field-level extraction or assignment decisions for full cards,residuepreserves schema or instance ambiguity instead of hiding it,promotion_ownerrecords who owns terminal promotion decisions,- downstream packets include non-authority language and do not imply ontology or definition promotion,
governed_refappears only after the downstream owner creates a real governed artifact.
Required authoring behavior:
- reference evidence-card IDs instead of copying card content,
- include
card_refswith inclusion reasons, - include
excluded_card_refswith boundary reasons, - include
index_termsfor shell plusjqlookup, - include
handoff_target,synthesis_note, andresidue, - keep
statuscandidate-level unless a later explicit promotion decision exists, - do not imply ontology, definition, ledger, or Context Builder authority.
source,entity,concept,architecture-layer,implementation-pattern,decision,capability,workflow,interface,dependency-rule,test-pattern,observability-signal,question,contradiction,synthesis.
Repositories may add custom entry types in schema.md when they define required fields, evidence rules, tag rules, and update behavior.
- machine index entry ID when available,
- inventory page path,
- evidence-card ID when available,
- selector or heading,
- summary,
- tags,
- confidence,
- source references,
- task obligation fit,
- excluded matches when useful,
- unresolved gaps.
For architecture-pattern-inventory, inventory output should support entries for:
- architecture layers,
- implementation patterns,
- dependency rules,
- test patterns,
- observability signals,
- relationship notes.
Inventory owns evidence-cards, indexes, lint findings, and handoff projections. Ontology Vault owns governed meaning, relations, confidence, and promotion. Definitions Governance owns canonical definitions. Evidence-card handoff packets are non-authority read models until a downstream owner accepts them.
- mode,
- install decisions,
- source count,
- entries created,
- entries updated,
- contradictions found,
- lint gaps,
- validation result,
- downstream sigil lookups,
- filed query syntheses.
- preserve raw source immutability,
- create or respect a local schema,
- maintain
index.md,index.json, andlog.md, - tag generated pages consistently,
- link generated knowledge to source evidence,
- expose a parseable machine index before claiming lookup readiness,
- flag contradictions instead of hiding them,
- expose lookup results that other sigils can consume,
- avoid creating a competing system when a repository already has a usable wiki or inventory.
- editing raw sources during ingest,
- making generated pages the sole authority for source facts,
- leaving
index.mdas the only machine lookup surface after install or sync, - treating CSV projections as authoritative when
index.jsonis missing or stale, - dumping source summaries without updating related pages,
- creating tags ad hoc without recording them,
- answering queries from raw files while ignoring the inventory,
- overwriting contradictions instead of recording them,
- installing a new package when existing repository conventions can be adapted,
- letting inventory maintenance replace human source curation.
## Inventory Result
- Mode: install | ingest | lookup | query | lint | validate | backfill | sync
- Repository: <path>
- Inventory root: <path>
- Files changed: <paths or none>
- Sources processed: <count>
- Entries created: <count>
- Entries updated: <count>
- Index updated: yes | no
- Machine index updated: yes | no | not applicable
- Log updated: yes | no
- Contradictions flagged: <count>
- Lint gaps: <count>
- Validation: pass | fail | not run
- Downstream lookup output: <summary or none>
- Next action: <action>
Signals
- GitHub stars
- 25
- Forks
- 3
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
inventory- Source
- github.com/cyberalchemyai/arcanum