Stamped technical pack
The portable technical pack, read by every layer repo as external/technical/. Company identity and hard stops come from the master document, which wins on any conflict.
Start here: STAMPED_ARCHITECTURE.md is the single source of truth: six conceptual layers (① Plant, ② Context, ③ Analytics, ④ Decision, ⑤ Action, ⑥ Value), the governance plane, the fast and slow loops, ten contracts, autonomy levels AL0Autonomy levels (direction; fast-loop stages 1–3 = AL1–AL3)–AL5, the write path, scope cut and operating rules. What is still to be decided is in DECISIONS.md.
How to read it.
- The master document sets what Stamped is and what it never does silently; the architecture builds inside that.
- The architecture holds the shape; the decision board holds the open choices and the architecture follows its recommendations until Vinayak decides.
- Each deep folder expands one repo layer, or the plant-side fast loop, and names its conceptual layer.
- Handoffs, contracts and ADRs turn the pack into repo work.
Build now: read the architecture, then your layer page. Later: the deep folder for the layer you are building, then its handoff.
View Mermaid source
flowchart TB
%% house-style: technical-pack
md["Master document: identity and hard stops"]
subgraph core["Technical pack: the architecture"]
direction LR
arch["STAMPED_ARCHITECTURE.md<br/>layers, contracts, loops, scope"]
dec{{"DECISIONS.md<br/>open choices D1–D21"}}
end
subgraph deep["Depth per repo layer"]
direction LR
lay["layers/<br/>L1, L2, L5, L6"]
dp["L1-L2-DATA-PLANE.md<br/>② Context"]
l3["l3/<br/>③ Analytics"]
l4["l4/<br/>④ Decision"]
fl["fast-loop/<br/>Plant Box, seconds"]
end
build(["↩ handoff/, contracts/, decisions/: how each repo builds it"])
md --> arch
arch --- dec
arch --> lay & dp & l3 & l4 & fl
deep --> build
classDef govc fill:#fff4d6,stroke:#c99a2e,color:#000
classDef agentc fill:#e8f0ff,stroke:#5b7bd5,color:#000
classDef loopc fill:#eef7ee,stroke:#4f9a4f,color:#000
class md,dec govc
class build loopc
Reading order#
| # | Document | For |
|---|---|---|
| 0 | ../Stamped_Master_Document.md | Company identity and hard stops |
| 1 | STAMPED_ARCHITECTURE.md | The architecture (SSOT) |
| 2 | DECISIONS.md | Decisions waiting on Vinayak, and the full board |
| 3 | layers/ | One page per repo layer: repos, contracts, must-nots |
| 4 | L1-L2-DATA-PLANE.md | Loading meters, exports and context into L2 |
| 5 | l3/ | ③ Analytics in depth: runtime, engines, rulepacks, Finding contract, twin |
| 6 | l4/ · ADRs 020–027 | ④ Decision in depth: kernel, runtime, seams, as-built map |
| 7 | fast-loop/ · ADRs 033–038 | Plant Box: twin, fast read, writer, alerts, message budgets (direction) |
| 8 | SYSTEM_VIEWS.md | System and stamped-external views (SYS-00 to SYS-09, EXT-01 to EXT-05) as house diagrams |
| 9 | tour/ | Eight short stops through the architecture for engineers joining; tour/in-short/ holds the one-paragraph summaries the website shows |
| 10 | CHANGELOG.md | Every architecture version and what changed in it |
| — | pointers/ | Old filenames that redirect here |
Conventions#
- Status labels: as-built (code on a consumer repo's main), contract (schema or ADR), direction (not built).
- Names: conceptual layers ①–⑥ and repo layers L1–L6 are different things; architecture section 1.1 defines both. As-built names stay as they are in code and contracts (for example
Finding1.2.0); new contract names are marked direction. - Diagrams: house-style Mermaid (
flowchart TB, yellow governance, blue people and agents, green return paths), each followed by "How to read it" and a Build now / Later line. - Honesty: no invented detectors, savings, customers or revenue. Verified savings today: ₹0.
- Website: everything here is published on the architecture website, built from these files by
site/in this repo. Edit the markdown, never the site. - Contracts:
../contracts/· ADRs:../decisions/· Handoff:../handoff/· Design:../design/.
Changing the architecture#
- Edit the markdown here and add a line under Unreleased in
CHANGELOG.md. A change with no meaning, such as a typo, can carry theno-changeloglabel on its pull request instead. - Open a pull request. CI runs docs-check, builds the website and checks for the changelog line.
- Merge to
main. The website redeploys and shows the change under Unreleased.
To release a version, rename Unreleased to the new version and date following the rules at the top of CHANGELOG.md, add a fresh Unreleased above it, merge, then tag the merge commit architecture-vX.Y.Z and push the tag. CI fails a tag that has no matching heading. The website then shows the new version and marks the pages that changed. site/README.md has the commands and the deployment setup.
Page history: last 5 changes
- ci(site): deploy to Cloudflare on push to main; document the update and release workflow
4a86a4f - docs(technical): archive archify; add SYSTEM_VIEWS.md house diagrams; check_docs --min
1e190b6 - docs(technical): carry product sections; rewrite README and pointers
ee1e818 - docs(handoff,l4): fast-loop architecture handoff, L4 procedure and ledger links, indexes
0f45a47 - docs(decisions): add ADR-033..038 (twin runtime, fast read path, plant-side writer, message classes, alerts and quality-to-lot link, part-keyed parameters), fast-loop technical set, rebuilt index with renumbering map; fix bare-number link text and ranges
22e2872