The briefing & facilitation factory.
🌐 Translations: 简体中文 · 日本語 — derived from this English source (the source of truth). Policy & freshness:
.eamos-core/docs/i18n/.
EAMOS turns a maintainer's inputs into the material and the regie for an enterprise meeting — pre-read, deck, facilitation script, minutes, decision and action log — for any company size, department, audience altitude, and output language.
It is the second instance of the EADOS pattern: the same machine (interview → manifest → profiles → templates → render → gate → roles), re-targeted to a different class of output. Where EADOS renders governed repositories, EAMOS renders meeting bundles. The principle is the same: knowledge is data, not code — adding a meeting archetype, an audience altitude, a function pack, or a gate is editing a validated YAML file, never a special case in code.
- It frames, structures, and synthesizes input you provide. It does not fabricate. When
material is missing, it may fill the gap professionally — but the value is rendered labeled
(
⟨… — da verificare⟩) and collected into a "verify before the room" appendix. You adapt and review; the machine never invents silently. - The agent drafts; the human presents and facilitates. EAMOS never sends material to real executives and never runs a live meeting. A board deck is "published" when you carry it into the room.
- Not a BI tool. EAMOS consumes the numbers you provide or paste; it does not own them.
A small composable grammar (RFC §3), not a catalogue of meeting types:
| Axis | Examples |
|---|---|
| Archetype (deep structure, ~8) | decision/steering · review/status · planning · discovery · post-mortem · retrospective · alignment · 1:1 |
| Audience altitude | board/c-level → vp/director → manager/lead → ic |
| Function | Eng · Product · Sales · Marketing · CS · HR · Finance · R&D · Ops |
| Company context | size · sector · regulatory (SOX/GDPR/HIPAA) · framework (SAFe/Scrum) · formality · output language |
A QBR is not a type — it is review @ c-level × finance × {context}. The render path is
deterministic: the meeting manifest renders into a typed deck-IR, gates run on the IR, and
the pptx/docx/xlsx skills are only the cosmetic last hop (RFC §5). How context flows through
that path, station by station: the context engine. Every tool and flag:
the CLI reference.
EAMOS never passes your meeting context through a prompt — it compiles it. Context moves through four typed stations, and each hop is validated by a gate:
- The inputs ledger (
inputs:in the manifest) — every number and fact you provide is a typed cell withlabel,value,source, andprovenance: sourced | assumed. Prose never contains a number; it binds a cell with{{key}}.tools/intake.pybuilds this ledger from pasted CSVs, a prior instance's series store, or an uploaded deck — zero hand-entry. - The meeting manifest — the ledger plus the four axes (archetype × altitude × function ×
company context) and the authored content. One file, one source of truth, validated against a
schema (
manifest-schema) and confirmed by a human before anything renders (manifest-confirmed). - The IR (
tools/render.py) — a deterministic, versioned JSON projection per deliverable (deck, infographic, KPI table, mind map, quiz, topology) over the same ledger, so a number cannot diverge between the deck and the one-pager. Sourced values render plain; anything else renders labeled⟨… — to verify⟩(fail-closed) and is collected into a review appendix. - The gates (
tools/eamos_lint.py) — structural checks on the IR and the manifest (completeness, labeled grounding, audience fit, confidentiality, …). Only a green IR reaches the cosmetic last hop (theemit_*.pytools — Markdown, PPTX, DOCX, SVG, XLSX — themed by data tokens).
Same manifest in, same bytes out — the CI proves it on every push, on Linux and Windows.
One cell of the reference manifest is missing real material, so it is marked assumed:
kpi.churn_q3:
value: "~4.2%"
provenance: assumed # missing material, filled professionally — never silently
assumption: "stimato dal trend H1; placeholder — adattare e verificare prima della sala"
review_required: trueEvery deliverable renders it labeled, never plain — this line is from the rendered deck:
- **Churn logo Q3**: ⟨~4.2% — da verificare⟩
The ⟨…⟩ marker survives into the deck, the pre-read, the infographic (amber), the sheet
(highlighted), and the "verify before the room" appendix — and the grounding-labeled gate turns
red if a label or an appendix entry is missing. A typo'd provenance is treated as assumed
(fail-closed), so a value is plain only when it is explicitly sourced.
From a clone (the repo is private until GTM — see the installer note below for the bundle path):
git clone https://github.com/danielPoloWork/pgs-eamos.git
cd pgs-eamos/.eamos-core
python tools/render.py orchestrator/examples/qbr-c-level.yaml --out build/deck-ir.json
python tools/eamos_lint.py orchestrator/examples/qbr-c-level.yaml
python tools/emit_md.py build/deck-ir.json --out build/deck.md
python tools/facilitate.py prep orchestrator/examples/qbr-c-level.yaml --minutes 60That renders the reference QBR into a gated deck-IR, lints it (all gates green), emits the
Markdown deck, and prints a timeboxed facilitation script. No dependencies — stdlib Python
(3.12+). pip install python-pptx only if you want the .pptx hop
(python tools/emit_pptx.py build/deck-ir.json --out build/deck.pptx). The full tool-by-tool
reference: .eamos-core/docs/cli.md.
Most enterprise meetings recur. The persistent series manifest carries forward open actions, the decision log, a rolling risk register, and KPI history — so the Q3 QBR opens already knowing what Q2 decided and how the KPIs moved. A prompt wrapper cannot do this.
Drop the EAMOS machine into a repo from a published release — download + placement only, not the agent init:
# macOS / Linux
curl -fsSL https://github.com/danielPoloWork/pgs-eamos/releases/latest/download/setup.sh | sh# Windows (PowerShell)
irm https://github.com/danielPoloWork/pgs-eamos/releases/latest/download/setup.ps1 | iexOr download setup.sh / setup.ps1 and run with flags (--help — new-vs-existing repo, path, ref).
The installer verifies the bundle's SHA256 (fail-closed) and extracts it additively (never
overwrites). Double-click setup.command (macOS) or setup.bat (Windows).
Needs a published GitHub release. The repo is private until GTM — until then, build a bundle locally (
git archive --format=tar.gz -o bundle.tar.gz HEAD) and install withsh setup/setup.sh --from bundle.tar.gz.
Pre-1.0, feature-complete through M8: the whole loop — manifest → IR → gates → deck, pre-read, infographic, KPI sheet, quiz, topology — renders end-to-end and deterministically, with the series store, intake, facilitation, the advisor, and the guided installer shipped. The design of record is RFC-0001 and RFC-0002; the plan and the milestone log are in ROADMAP.md.
The full agent contract is AGENTS.md. All factory machinery lives under
.eamos-core/ — a consumer ignores it with a single line.
Contributing: how to contribute (and the exhaustive-PR bar) is in CONTRIBUTING.md; bugs and feature requests go through the issue forms (a bug needs the manifest + the exact command; a feature names its axis). We follow the Contributor Covenant; security reports: SECURITY.md.
- Owner & maintainer: Daniel Polo (@danielPoloWork).
- Architecture: the second instance of the EADOS pattern — schema-first data, mechanical gates, a persistent manifest, and a human-held terminal gate.
- Built with Anthropic Claude / Claude Code. The cosmetic
.pptxhop uses python-pptx — optional, outside the dependency-free core.
MIT — see LICENSE. © 2026 Daniel Polo. EAMOS is owner-governed: anyone may propose
changes, only the owner lands them on main.