← ODIN'S INSIGHT

Mimir — Standard Bundle Format

Knowledge Ingestion Layer · Odin's Insight
bundle format v0.3.0 Draft
ODIN'S INSIGHT·PRODUCER → CONSUMER CONTRACT·2026-07-13

Odin gave an eye at Mímir's well to drink of its wisdom. Mimir does the same work in reverse: it draws requirements out of published standards, lets a human weigh every one, and seals the approved set into a standard bundle — a single, text-only, human-vouched file a Bifrost library can drink from without ever touching the raw source.

The Producer / Consumer Contract

A standard bundle is the contract between Mimir (producer) and BifrostBackEnd (consumer) for delivering requirements extracted from published standards into a Bifrost requirements library.

Mimir ingests a publicly available standard, extracts requirement candidates with the assistance of an LLM, and — after human review and approval — seals the approved requirements into a bundle: a single, self-contained, text-only file. A BifrostBackEnd instance (typically a Muninn deployment) imports the bundle into its requirements library.

The importer is not yet built. This spec defines the format Mimir emits and the semantics the future importer must honour, so the two sides can be built independently. Everything in §7 is normative for that future component.

Place in the product family

Bifrost
What must be true? The NFSI model and the living Requirements Library.
Norn
Given what you need, what requirements must exist at each layer?
Fenrir
What can fail, how badly, and what binds it?
Mimir
What do the published standards already require? Ingest, review, seal.

Six Rules the Format Guarantees

1

Text only. Bundles carry no embeddings and no binary payloads. The importing instance re-embeds locally on import — Muninn owns its own embedding model and version.

2

Stable identity. Every requirement item carries a uid that never changes across bundle revisions. Idempotent import keys on it.

3

Additive, deprecate-not-delete. Importing a newer revision may add and update items, and marks vanished items deprecated — it never deletes.

4

Provenance everywhere. Every item records exactly where in the source standard it came from — clause, heading, page.

5

Human-sealed. A bundle is only produced from reviewed and approved items. Raw LLM output never leaves Mimir.

6

One bundle = one standard section. Standards are ingested section by section (e.g. one MIL-STD-810H test method per bundle). A full standard is a set of bundles.

One JSON File per Section

The Bundle Envelope

Every bundle opens with the format version, then five metadata blocks (bundle, standard, section, generator) and the two content arrays (requirements, links).

{ "bundle_format_version": "0.3.0", "bundle": { "uid": "MIL-STD-810H/501.7", "version": 1, "sealed_at": "2026-07-05T14:00:00Z", "sealed_by": "mcaktas", "item_count": 24 }, "standard": { "ref": "MIL-STD-810H", "revision": "2019", "title": "Environmental Engineering Considerations and Laboratory Tests", "publisher": "US Department of Defense", "public_domain": true }, "section": { "id": "501.7", "title": "High Temperature", "source_pages": "92-107" }, "generator": { "tool": "Mimir", "tool_version": "0.1.0", "model": "<model id used for extraction>" }, "requirements": [ /* see §5 */ ], "links": [ /* see §6 */ ] }

The Requirement Schema

Each entry in requirements[] is a single sealed requirement. Its statement is written in Bifrost quality style (shall form), not a verbatim clause copy — the source text lives in the source block.

{ "uid": "MIL-STD-810H/501.7/0007", "layer": "Implementation", "target": "product", "statement": "The materiel shall operate ... at the high operating temperature ...", "rationale": "Method 501.7 Procedure II requires operational capability at ...", "type": "functional", "priority": "medium", "parent_uid": null, "variant_tag": null, "source": { "clause": "4.5.3", "heading": "Procedure II — Operation", "page": "12", "excerpt": "Verbatim source sentence(s), only when public_domain is true." }, "parameters": [ { "name", "description", "source", "example" } ], "tags": ["emi", "radiated emissions", "electric field"], "applicability": { "statement", "platforms": [ ... ] }, "custom_attrs": {} }
FieldReq.Rules
uidyes<bundle.uid>/<seq> with a zero-padded sequence. Assigned at first sealing; never reused, never renumbered. Items removed in later bundle versions leave gaps.
layeryesCanonical English: Need | Function | Solution | Implementation.
targetyesWhat the constraint applies to: product (the materiel itself — capability, performance, environmental tolerance), verification (test setup, execution, laboratory obligations), or process (program documentation, planning, reporting). Test-method standards (MIL-STD-810 family) yield mostly verification literals plus derived product requirements; product standards (e.g. MIL-STD-461) yield mostly product directly.
statementyesRequirement text in Bifrost quality style ("shall" form). Not a verbatim clause copy — the source lives in source.
rationalenoWhy this constraint exists, in the standard's terms.
typenoDefaults to functional.
prioritynoDefaults to medium.
parent_uidnoSame-layer decomposition inside this bundle (Decompose per canon). Must reference a uid in the same bundle.
variant_tagnoImplementation-layer variant identifier when applicable.
source.clauseyesParagraph number in the source document, e.g. 4.5.3.
source.headingnoHeading text of that clause.
source.pagenoPage number within the section as printed (e.g. 501.7-12) or absolute PDF page.
source.excerptnoVerbatim source text; only permitted when standard.public_domain is true.
parametersnoThe tailorable values a product must fill in when adopting this requirement. Each: name (snake_case), description, source (where in the standard the value is chosen from), example. Enables form-based parameter filling at project adoption on Muninn, without an LLM. Statements reference parameters as bracketed text; the array is the machine-readable side of those brackets.
tagsno3–6 lowercase keywords for search, filtering, and retrieval. Supplements embeddings on Muninn.
applicabilitynostatement — when/to what the requirement applies, in the standard's terms; platforms — the platform/installation classes the standard names (empty = universal). Enables Muninn to pre-filter library matches by product type.
custom_attrsnoPass-through JSON object, imported verbatim. Reserved key: derived: true marks a requirement Mimir inferred from the source (e.g. the materiel requirement implied by a test procedure) rather than one the standard states literally — reviewers and importers must treat these as interpretations, not citations.

Enrichment fields — why they exist

parameters[] tags[] applicability are the v0.3 additions that let Muninn tailor a library requirement to a specific product downstream — a fill-in form for parameters, keywords for retrieval, and a scope filter — all without an LLM. All three are optional and are imported under custom_attrs.

Derived requirements. A test-method standard states test obligations; the materiel requirement they imply is inferred by Mimir and marked custom_attrs.derived: true. These are interpretations of the standard, not quotations from it — reviewers and the importer must treat them accordingly.

Cross-Layer Fulfils, Within a Bundle

Optional. Cross-layer Fulfils relations between items of the same bundle (orientation per the canonical methodology). Same-layer decomposition uses parent_uid, not a link. Bind is out of scope for bundles.

{ "source_uid": "…/0007", "target_uid": "…/0002", "relation": "Fulfils" }

Mimir v1 may emit an empty links array.

What the Future Importer Must Do

Normative for a component that does not exist yet. These seven rules define the behaviour BifrostBackEnd's future bundle importer must honour. They are published now so Mimir and the importer can be built against the same contract.
RULE 1

Placement

Every item becomes a library requirement: is_library = true, project_id = null.

RULE 3

Local IDs

req_id (LIB-{N|F|S|I}-xxx) is assigned by the importing instance. Bundles never ship req_ids — per-instance counters differ.

RULE 5

Idempotency

Keyed on (standard_ref, bundle_uid). Re-import is create / skip / update / deprecate — never delete.

RULE 6

Re-embed

After import, the instance recomputes embeddings locally for created/updated items. Bundles carry none.

The seven rules in full

1

Placement. Every item becomes a library requirement: is_library = true, project_id = null.

2

Provenance columns. origin = "standard", standard_ref = standard.ref, standard_revision = standard.revision. The item uid is stored as custom_attrs.bundle_uid; source.* under custom_attrs.source; target, parameters, tags, and applicability under the same names in custom_attrs (no dedicated columns exist). The adoption/tailor UI reads custom_attrs.parameters to build the fill-in form.

3

Local IDs. req_id is assigned by the importing instance's ID service (LIB-{N|F|S|I}-xxx). Bundles never ship req_ids — per-instance counters differ across deployments.

4

Status. Imported items enter the library as active and are read-only there. Adaptation happens via the existing promote-to-company flow, which creates an editable origin = "company" copy.

5

Idempotency. The import key is (standard_ref, custom_attrs.bundle_uid): unknown key → create; known key, identical content → skip; known key, changed content → update in place (version snapshot); key present locally but absent from a higher-version bundle → set status deprecated. Never delete.

6

Re-embed. After import, the instance (re)computes embeddings for all created/updated items locally. Bundles carry none.

7

Links. Imported links are created between the library copies; a link referencing a uid not present locally is an import error.

Deliberately Not in the Format

Format Revisions

VersionDateStatusDescription
0.3
current
2026-07-06 Draft Enrichment for downstream tailoring on Muninn: structured parameters[] (tailorable values a product must fill in), tags[] (search/retrieval keywords), and applicability (scope statement + platform list). All optional, imported under custom_attrs. bundle_format_version 0.3.0.
0.2 2026-07-05 Draft Added target classification (product / verification / process) and derived-requirement marking (custom_attrs.derived) — distinguishes constraints on the materiel itself from test-method and process obligations. bundle_format_version 0.2.0.
0.1 2026-07-05 Draft Initial specification — bundle structure, requirement item schema, import semantics. Pilot standard: MIL-STD-810H, Method 501.7.