Status: Authoritative. Last reconciled 2026-04-28. Owner: Platform docs. Canonical number going forward: 66 modules — shipping today.
If you are writing a new public-facing document, brief, or template after 2026-04-28, use 66 modules and frame it as "shipping today" / "in production today". Do not advertise a higher number unless it is explicitly labelled as a roadmap pathway count and the wording makes the roadmap framing unambiguous.
Different surfaces of the platform have, at various points, advertised three different module counts. All three were correct in their own definitional context at the time they were written; the drift is a result of three things being counted, not three measurements of the same thing.
| Number | What it actually counted | Where it appears |
|---|---|---|
| 66 | The canonical runtime modules that are wired into MODULE_MANIFEST, registered with the platform event bus, and exposed by the live server today. This is the number every operator and every evaluator can verify by hitting the running platform. |
server/platform.ts registry/health surfaces, server/dual-use.ts, server/evaluator-ai.ts, server/intel-synthesis.ts, server/ai-audit-engine.ts, server/routes.ts, server/esms-faq.ts, server/sbir-proposal-engine.ts, server/tactical-onboarding.ts |
| 86 | A historical MAP/GAP audit roll-up that included 66 runtime modules plus ~20 sub-module / capability-bundle entries that the audits treated as separately auditable units (e.g. POSEIDON's five maritime sub-modules, the four CYBER ecosystem layers, ESMS sub-capabilities). The 86 number is correct as an audit decomposition, not as a runtime module count. | docs/MAP_GAP_Audit_audit-*.md (timestamped, historical), docs/MAP_GAP_Audit_Round5_Final.md, docs/Army_ITDX26_* (snapshot at submission time), docs/jsoc_readahead/Capabilities_and_Boundaries.md |
| 94 / 95 | A "with roadmap pathways" count that bundled the 66 shipping modules with planned-but-not-shipped work (PQC tactical messenger, expanded mobile parity screens, additional dual-use sub-modules, evidentiary export packaging, etc.). This was written into the master capability statement and several outside-audience marketing surfaces while the work was in flight. The 29 planned-but-not-shipped pathways now have a single canonical home — see the Roadmap section at the bottom of docs/Capability_Statement_SHIELD_ATLAS.md and the matching roadmap-29 anchors in server/templates/capability-statement.html, server/templates/capability-statement-combined.html, and server/templates/capability-statement-general.html (each as a <section id="roadmap-29"> block) plus server/templates/whitepaper.html (sub-section <h3 id="roadmap-29"> under the existing <section id="roadmap">). |
docs/Capability_Statement_SHIELD_ATLAS.md (master), docs/Capability_Brief_SHIELD_ATLAS_World_Cup_2026.md, docs/SHIELD_ATLAS_Differentiator_Briefing.md, docs/Compound_Effects_Multi_Problem_Architecture.md, docs/APEX_CAPABILITY_PACKAGE.md, docs/SUBMISSION_HISTORY_AND_PIPELINE.md, server/templates/*.html (capability-statement, whitepaper, ops-hub, documents) |
After the Wed 29 Apr 2026 funk_capes brief was finalized (which does not surface audit history in front of the audience), we reconciled every live, forward-facing surface to 66:
server/templates/*.html).server/platform.ts.server/rag-researcher.ts,
server/procurement.ts).docs/Capability_Statement_SHIELD_ATLAS.md)
and the public-facing capability briefs / differentiator briefings.docs/Opportunity_Tracker.md,
docs/SUBMISSION_HISTORY_AND_PIPELINE.md).docs/Army_ITDX26_*, docs/jsoc_readahead/*,
docs/JSOC_Capes_Brief_2026-04-27.md, docs/MAP_GAP_Audit_Round5_Final.md,
docs/Compound_Effects_Multi_Problem_Architecture.md,
docs/APEX_CAPABILITY_PACKAGE.md).These surfaces are point-in-time historical records and rewriting them would be revisionist. They are preserved as-shipped:
docs/MAP_GAP_Audit_audit-<timestamp>.md — timestamped audit snapshots
generated by the AI audit engine at the moment of audit. These document what
each model believed at that timestamp.docs/submissions/<date>_*.md and docs/submissions/print/*.html — formal
submissions actually transmitted to government evaluators (DIU, FEMA, DoW,
AFRL, JIATF-401, MAPS, Golden Dome, APFIT, etc.). These reflect the
capability narrative ISS LLC sent on the date in the filename. If the
recipient asks how today's count reconciles with a 95-module submission,
refer them to this document.docs/outreach/<date>_*.md — dated outreach messages to partners.docs/HONEST_CAPABILITY_AUDIT_2026-04-16.md — dated honest-audit snapshot
that itself flags the 86 vs 95 inconsistency.docs/briefings/2026-04-29_funk_capes_brief/ — finalized brief deck. The
one residual reference ("not walking 95 modules") is positioning copy
describing what the brief is not meant to do, and the audience never sees
it.MODULE_MANIFEST in
dual-use/app-orchestrator-sop.js plus the getModuleRegistry() /
getRegistrySummary() outputs surfaced under /api/modules/registry and
/api/evaluator/capabilities. If those ever drift from 66, update this
reconciliation note (and every public surface) before the next outside
audience sees it.Headline counts that appear on the public surfaces /, /capabilities,
/cap, /whitepaper, /documents, and /ops-hub (as well as the
/api/health, /api/status, /api/evaluator/quick-start, and
/api/evaluator/capabilities endpoints) are no longer hard-coded. They are
derived at request time from the constant MODULE_COUNT, which is
MODULE_MANIFEST.length in server/module-manifest.ts. That file is now
the canonical, narrowly-scoped server-side manifest of the 66 shipping
modules — name, id, and category for each one — and it is what every
displayed headline reads from.
How it is wired:
__MODULE_COUNT__ wherever the
shipping-module headline number is shown.server/platform.ts exposes a tiny helper, injectModuleCount(template),
which substitutes __MODULE_COUNT__ with String(MODULE_COUNT) whenever a
template is served. Every /, /capabilities (and aliases), /cap (and
aliases), /whitepaper, /documents, and /ops-hub (and aliases) route
goes through this helper./api/health, /api/status, and evaluator endpoints reference
MODULE_COUNT directly instead of a numeric literal./api/evaluator/capabilities additionally returns the full manifest
array so external consumers can verify the per-module breakdown without
scraping HTML.If the shipping module count ever changes, edit
server/module-manifest.ts (add or remove an entry), and every headline,
health endpoint, status endpoint, and evaluator banner will follow on the
next request. No template edits, no string-search-and-replace across pages,
no risk of drift between the API and the marketing copy.
The historical MODULE_MANIFEST in dual-use/app-orchestrator-sop.js and
the broader getRegistrySummary() (which counts all safeRegister calls,
including sub-services) remain untouched — they continue to serve their
original audit/runtime-registry purposes. server/module-manifest.ts is the
narrower, intentionally-curated list used only for the public
shipping-module headline number.
This page works best with your current GPS location.