# Bundles, layers, records *Building a meta-model · lesson 2 of 6 · ~15 min* ## What you will learn How model content is actually organized and written: the bundle → layer → record hierarchy, naming that carries meaning, and what makes a good record. ## The hierarchy - A **bundle** is one semantic responsibility: "why the product exists", "system design", "quality and risk". Bundles are ordered: foundations first, so a single sequential read meets definitions before use. - A **layer** is one question inside a bundle: "who are the stakeholders?", "what are the APIs?". A layer directory carries a `README.md` that states the questions the layer answers: the README *is* the layer's meaning declaration. - A **record** is one independently routable statement: one requirement, one decision, one API contract, one risk. One record, one file. The flagship domain meta-model, AISMM, fixes thirteen bundles for the domain "software product" (b0 product core through b12 economics) with ~90 layers. Your domain will have its own bundles; the mechanics are identical. ## Names that machines can read Records follow a naming convention that carries classification in the filename: ```text {record_kind}-{YYMMDDNNNNN}-{memo}.md req-26071800001-minor-parental-consent.md decision-26061500001-concept-decisions.md i18n-26060300001-languages-roster.md ``` The prefix is the record kind (requirement, decision, api, risk...), the digits are a sortable date-based ID, the memo is for humans. Because the kind is in the name, a single declared rule in the manifest classifies thousands of files (next lesson). Two hard-won details: prefixes may contain digits (`i18n`), and the ID never changes after birth, even if the memo or content does: stability of reference beats prettiness. ## What is inside a record A record has two parts: a machine block and a human body. The machine block (front matter) carries identity (document ID, layer, product), classification (`kind_class`: is this *normative* for the product, *descriptive* of it, or a *projection* of something else?), and, crucially, **derivation**: if an agent produced this record from sources, the block says from what, by whom, how transformed, and whether an owner has validated it. The body is ordinary, well-written prose and structured data: the standard has no opinion about your writing style, only about your traceability. The `kind_class` + `derivation` + `validation_status` triple is what lets mixed human/agent teams trust a model: you can always tell an owner-validated normative statement from an agent's unvalidated summary of a wiki page. ## What makes a record good - **One concern.** If you cannot title it without "and", split it. - **Routable.** Someone assigned "handle req-26071800001" needs nothing else to find their work. - **Referenced, not repeated.** Records cite canon, evidence in `raw/`, and each other; the same fact stated twice will eventually be true once. - **Honest about status.** Draft, unvalidated, superseded: states are metadata, not secrets. ## Key takeaways - Bundle = responsibility, layer = question, record = one routable statement. - The filename carries the kind; the front matter carries identity, classification and derivation. - Traceability (who derived this from what, who validated it) is what makes agent-written content usable. ## Go deeper - [MMAS core architecture](/spec/#02-architecture/MMAS-Core.md) · [Naming conventions](/spec/#02-architecture/Naming-Conventions.md) - [Creating a new meta-model](/spec/#07-guides/Create-a-New-Meta-Model.md) - AISMM, the flagship domain meta-model: [github.com/orkestron-ai/software-meta-model](https://github.com/orkestron-ai/software-meta-model) Next: [The lossless walk](03-walk.md)