Unclassified

Canonical Ecosystem Coverage Companion

Status: Grounded implementation companion — subordinate to
INTEGRATEWISE_ARCHITECTURE.md and
SPEC_AMENDMENTS_v1.md
Verified against checkout: 2026-08-20
Purpose: Account for every repository component and turn the canonical architecture into
an explicit connection, ownership, deployment, storage, and remediation program.

This companion does not create new product concepts or override the architecture. It answers
the implementation question that the architecture alone cannot answer: why does each thing
in this repository exist, what owns it, what is it connected to, and what must happen to it?

Current state summary (2026-08-20)

CategoryCountStatus
Apps12 directories (11 manifests + mcp-servers)9 material surfaces; 3 empty/untracked aliases
Services31 directories (~30 Worker manifests)9 core release; 12 bound/outside-release; 11 orphaned
Packages48 directories (47 manifests + domain-shells)~57 logical units when nested counted
Core release Workers9pipeline, connector, mcp-connector, connector-sync, knowledge, continuity, intelligence, workflow, gateway
Stop-ship gaps5Identity drift, connect-once drift, canonical writer placeholder, Hermes orphaned, reconciliation unproven
Vertical integration proof1Three-flow A/B/C deterministic local proof (§16)
Open decisions10D11 identity, D12 isolation, D13 Twin/ADK, plus 7 more (§14)

1. Evidence and status rules

The repository currently contains 15 physical apps/* directories (11 package manifests), 34
physical services/* directories (approximately 30 Worker manifests), and 52 physical
packages/* directories. The package tree represents approximately 57 logical package units
when nested packages and non-workspace source packages are counted. Product/browser coverage is
ten material app surfaces; skeletons, Workers under apps/, and empty/untracked aliases are
reported separately. Counts are a checkout snapshot, not an architectural target.

LabelMeaning
verifiedDirect code, test, route, or manifest evidence was inspected.
configured/wiredA route, binding, rewrite, or deploy manifest exists; this is not proof that the target is deployed or healthy.
runtime-provenExternal or clean-tenant evidence proves the deployed path. No path receives this label from code alone.
partialUseful implementation exists but a required authority, persistence, caller, or return path is missing.
orphanedImplementation exists without a release path or inbound runtime binding.
legacySuperseded implementation retained in the tree.
intendedCanonical target without complete implementation evidence.
driftCurrent implementation conflicts with the canonical law.
decisionProduct/engineering ownership must be explicitly decided before implementation.

Evidence boundaries are strict:

  • package.json, Vercel configuration, Wrangler manifests, service bindings, rewrites, and code
    prove presence or configured wiring, never runtime reachability.
  • Vercel owns browser/product deployments. Cloudflare Wrangler manifests are the deployment
    evidence for shared platform/runtime services. Vercel rewrites may describe ingress but do not
    prove a Worker exists.
  • The nine-Worker array in scripts/release/deploy-platform.sh is the intentional core release
    profile: pipeline, connector, mcp-connector, connector-sync, knowledge, continuity,
    intelligence, workflow, gateway.
  • No current repository evidence proves the complete clean-tenant action loop. Customer Zero is
    useful evidence only when its tenant, deployment, provider, and audit boundaries are recorded;
    it is not a substitute for external clean-tenant evidence.

2. Product and authority lock

QuestionCanonical answerImplementation consequence
CompanyIntegrateWiseCompany, legal, marketing, and operator identity.
ProductSpine WorkspaceRole-aware Workbenches are projections of one product, not separate products.
Protected coreThe SpineTenant-wide organizational context; only governed Pipeline promotion writes canonical truth.
Browser/runtime splitVercel / Cloudflare WorkersBrowser shells do not become service or storage authorities.
Connection lawDiscover first; adopt/connect once per tenantHost-connected connectors are the first source. Authorized products, Workbenches, and agents reuse an eligible governed connection under identity, consent, RBAC, least privilege, approvals, provenance, and audit.
Surface lawMultiple surfaces, one continuity systemLogin, connections, data, context, and AI cannot become independent tenant islands.
Workbench lawOne role-aware surfaceCompeting route families must converge behind the Projection Binding Registry.
Twin lawSilent, THINK-only, approval-boundTwin creates proposals/context; it never directly writes the Spine or providers.

Authority order is: canonical architecture → canonical amendment → retained implementation
specifications → this coverage companion → evidence/drift reports → lineage. AGENTS.md and
architecture README.md are pointers. CODEBASE_EXCAVATION.md is a dated drift baseline, not
current authority. Commercial/GTM documents cannot override this chain.

Connector ownership doctrine

Spine Workspace owns connectors at the ecosystem and governance layer; it does not claim to
wholly own or rebuild every provider integration. A connected host is the first source of
connection discovery. The shared platform discovers eligible host connections and, only after
identity, tenant, consent and policy checks, adopts a durable tenant ConnectionBinding that
authorized Workbenches, products and agents can reuse.

IntegrateWise owns OneAuth and the Spine Network MCP as its connector products. External
provider integrations remain provider/host capabilities, with host-connected access preferred.
Cataloging, governing or projecting an external connector does not make the underlying provider
integration an IntegrateWise-owned connector product.

The shared platform owns that binding's consent, capability grants, confirmed scopes, sync and
reconciliation lifecycle, health/freshness, provenance, consumers, revocation and audit. It never
copies a host token. Provider or host credentials remain behind their credential wall. Discovery
does not mean IntegrateWise created a second integration, received unrestricted access, or may
transfer all host data. Every read and action remains capability-, scope-, tenant-, purpose- and
approval-bounded. IntegrateWise-managed OAuth is a fallback only when the host cannot delegate the
required capability and the user explicitly consents.

The Discovery Agent is the bounded explorer of the host-connected and already-connected
environment. It may inspect declared app/capability metadata, connection health and consent-visible
scope; compare those declarations with Workbench needs; and propose mapping, reuse or an explicit
fallback connection. It never receives unrestricted provider credentials, cannot infer consent
from discovery, cannot read arbitrary provider data, cannot create its own ConnectionBinding, and
has no canonical Spine write authority. Gateway/OneAuth validates every discovery result before
Provider Management records or changes a binding.

The Gateway-owned binding must record tenant, workspace, principal, provider and provider-workspace
identity; source kind (host-declared or IW-managed); opaque credential/delegation reference;
confirmed scopes; consent; policy and capability grants; primary route; health and freshness;
provenance; sync and reconciliation state; authorized consumers; and audit/revocation state. Every
surface resolves and binds through Gateway rather than reading a UI-local registry.

3. End-to-end control and data map

Flow D: host identity → user identity → tenant membership → consent/grant → RBAC/policy
                              │
                              ▼
Flow A/B: provider/webhook/file/MCP → Gateway → Loader → Normalizer → operational Spine
                                                        │
                                                        ▼
                                      promotion record + provenance
                                                        │
                                                        ▼
                                 governed Pipeline canonical writer
                                                        │
                              Neon canonical Spine ─────┤
                                                        ▼
                                  bounded D1/KV/search projections
                                                        │
                    Projection Binding Registry → role-aware Workbench
                                                        │
Flow C: operational evidence → THINK/Twin → governed intent → APPROVE token
                                                        │
                                                        ▼
                                 Hermes → capability/MCP/provider adapter
                                                        │
                                                        ▼
                 provider result → re-ingestion → reconciliation → projection refresh

Current result: individual segments are verified or configured, but the chain is partial.
Canonical promotion, durable shared connection reuse, authoritative shared identity, Hermes
reachability, and the closed reconciliation/refresh loop are release blockers.

4. Application and public/domain surface manifest

Every browser surface must consume Flow D and Gateway-owned contracts. None in the write column
means it must not write canonical or provider state directly.

The currently declared shared host ownership is www → marketing, auth → auth, platform → platform, and operational role hosts → web. docs, activation, and connector have app roots
but no reconciled release host owner; they are non-release until assigned or deliberately invoked
inside an owned shell. Vercel browser ownership and Cloudflare Worker ownership must be recorded in
one deployment registry. A rewrite between them is wiring evidence, not ownership or live proof.

Root / surfaceReason and ownerUpstream → downstreamWrite/storage authorityBoundary / targetStatus → dispositionEvidence
apps/webPrimary Spine Workspace and role projections; Product UIFlow D/Gateway → Projection Engine/Workbench APIsNone; governed intents onlyauthenticated product; Vercelpartial, drift → KEEP + CONNECT competing /workspace, /workbench, /workbenches, and domain-host families must convergeapps/web/app, apps/web/middleware.ts, apps/web/vercel.json/root vercel.json
apps/platformPlatform Console/control board; Platform EngineeringFlow D/Gateway discovery → owning control servicesControl intents only; never projection/canonical authorityinternal/tenant-admin; Vercelpartial → KEEP + CONNECT fail-closed discovery is valid; mock/static fallback and TODO endpoints prevent SoT-console claimsapps/platform/app/api/v1/workspace/discovery/route.ts, apps/platform/lib/services, apps/platform/vercel.json
apps/authDedicated login/signup entryidentity provider → tenant/consent handoffIdentity session onlypublic-to-authenticated; Vercelconfigured/wired → MERGE contractually into OneAuth Flow D, not an identity islandapps/auth/package.json, source routes
apps/activationOnboarding/activation journeyFlow D + connection discovery → hydration/WorkbenchActivation commands onlyauthenticated; Vercelpartial → CONNECT to durable tenant/connection and activation stateapps/activation/package.json
apps/connectorConnection discovery/consent tray hosthost discovery + Flow D → Gateway Provider/Integration Management APIsDelegation/OAuth grants and commands through ownerauthenticated; Vercelpartial → CONNECT discover host connections first; adopt one governed binding; never copy host tokens or create a second registryapps/connector/package.json
apps/one-accessComposite OneAuth shellauth + activation + connector MFEs → Spine WorkspaceNone beyond identity/grant commandspublic/authenticated; Vercelconfigured → KEEP + MERGE three journeys behind one tenant trust contractapps/one-access/package.json
apps/marketingCompany/product discovery and GTMpublic content → signup/marketplaceNonepublic; Vercelverified → KEEP claims remain gated by release proofapps/marketing/app, apps/marketing/vercel.json
apps/docsPublished technical/product documentationcanonical docs → evaluators/operatorsNonepublic/controlled; Vercelconfigured → KEEP + ADAPT publish authority labels prominentlyapps/docs/package.json
apps/portfolioCorporate/portfolio presentationpublic content → company/productNonepublic; Verceldecision → MERGE or ARCHIVE avoid a second marketing truth sourceapps/portfolio/package.json, apps/portfolio/vercel.json
apps/workspaceWorkspace alias/root without tracked implementationintended Workbench → noneNoneintended productuntracked/empty → DELETE residue or document generator ownerphysical directory; no tracked files
apps/mcp-serversWorker-hosted public MCP entry despite apps locationassistant/OAuth → semantic MCP facadeIntent/event onlypublic machine surface; Cloudflareconfigured/wired → MOVE classification to runtime inventory; verify exact 19-tool public contractapps/mcp-servers/wrangler.toml
apps/mobileNative mobile skeletonintended Gateway → mobile projectionNoneauthenticated nativepartial skeleton → decision: FUND or ARCHIVEapps/mobile/package.json
apps/desktopElectron desktop skeletonintended Gateway → desktop projectionNoneauthenticated desktoppartial skeleton → decision: FUND or ARCHIVEapps/desktop/package.json, apps/desktop/vercel.json
apps/one-access-consoleEmpty/local aliasnoneNoneunknownuntracked/empty → DELETE residuephysical directory; no tracked files
apps/platform-consoleEmpty/local aliasnoneNoneunknownuntracked/empty → DELETE residue; apps/platform is the real consolephysical directory; no tracked files

Domain and Projection Binding Registry contract

Domain hosts are routing inputs, not separate data authorities. The binding contract is:

hostname → known/reserved/unknown classification → ProjectionId
→ authenticated principal + tenant → RoleConfig + grants
→ Gateway projection endpoint → Projection Engine → bounded SharedWorkbench DTO
Contract elementOwnerRequired behaviorCurrent evidence/status
Host registryProduct routing, apps/web/lib/projection-registry/hosts.tsKnown role host resolves; reserved host bypasses; unknown workspace host fails 404verified in current user change; retain
Middleware bindingProduct routing, apps/web/middleware.tsAttach projection headers only for known projections; reject unknown workspacesverified in current user change; focused tests pending in §13
Projection identifiers/contractspackages/projection-contracts, packages/workbench-configStable role/module vocabulary, no user-facing engineering layersconfigured/wired
Compositionpackages/projection-engineSole composer of bounded role-aware DTOspartial/configured; deployed reachability and full data path not proven
Backend registryGateway projection routesResolve frontend binding to tenant-scoped service/data contractpartial; direct Vercel rewrites and route-family competition remain
Unknown hostWeb edgeFail closed without leaking tenant/projection dataimplemented by preserved change

The apps/web profile → compose → context path through Gateway is the strongest current projection
direction, but mock and fallback payloads remain. Every view, including restored donor views,
workflows, skills, agents, Platform modules, and marketplace/control views, requires an explicit
frontend-to-backend projection/capability binding; component presence is not a binding.

Public solution taxonomy must not expose internal brandstore or book-of-records/orgmemory
as marketing solutions. Host/domain changes require route, middleware, redirects, sitemap,
navigation, host map, and resolver tests to move together.

5. Worker service manifest

Storage abbreviations: N Neon canonical, D D1 operational, K KV/cache,
DO Durable Object, P provider. “Intent” means no direct canonical/provider authority.

5.1 Core release profile (nine Workers)

The actual release script publishes only the nine rows below. It explicitly does not publish
spine, hermes, mcp-pool, provider-management-mcp, integration-management-mcp,
twin-orchestrator, loader, store, webhook-ingress, or the hidden Workers under apps/ and
packages/. Some are referenced through bindings, but a binding to a service excluded from the
release profile is a dependency gap, not deployment proof. Because Spine authority, durable
bindings, governed execution and reconciliation depend on excluded services, the nine-Worker
profile cannot currently prove the canonical release loop.

ServiceReason / ownerUpstream → downstreamAuthorityBoundary/targetStatus → disposition
pipelineLOAD/NORMALIZE/STORE promotion owner; Data PlatformGateway/loader → operational/canonical Spinesole intended N writer, D staginginternal CF Workerdrift/stop-ship → KEEP + CONNECT placeholder/skipped canonical writes and legacy alternatives must be removed only after real writer proof
connectorCompatibility router; IntegrationGateway → loader/mcp-connector/storeIntent; P delegatedinternal CF Workerconfigured → ADAPT/MERGE keep temporarily, publish owning boundaries
mcp-connectorPublic semantic MCP/provider OAuth adapterGateway/assistants → provider/capabilitygrants, governed P callspublic/internal CF Workerconfigured → KEEP + CONNECT exact public tool and approval boundaries need deployed proof; legacy Firestore path is drift
connector-syncScheduled/on-demand provider syncconnection registry → providers → pipelineP read; D job state; no Ninternal CF Workerconfigured → KEEP + CONNECT to durable shared registry and reconciliation
knowledgeChunk/search/synthesis/promotion evidenceoperational Spine → search/Twinderived indexes, candidates onlyinternal CF Workerconfigured → KEEP separate nested legacy server
continuitySession/event continuityGateway/Workbench → context assemblerD/K bounded context; no Ninternal CF Workerconfigured → KEEP + CONNECT enforce tenant/freshness boundaries
intelligenceTHINK, proposals, governance compatibilityprojections → approval/Hermesproposal/audit state; no P/Ninternal CF Workerpartial → SPLIT contractually governance hard gate and execution owner must remain explicit despite co-location
workflowBFF, views, stream, HITLGateway → projection/workflow DOD/DO operational; Intentinternal CF Workerconfigured → KEEP + ADAPT do not become second Gateway/projection authority
gatewayIntended single ingress and TenantGatebrowser/MCP/webhooks → ownersnone; routing/auth onlyedge CF Workerdrift → KEEP + CONNECT direct Vercel rewrites and incomplete/commented bindings bypass or weaken single-ingress claim

5.2 Services outside core release

| Service(s) | Reason / owner | Relationship and authority | Status → disposition; evidence |
| --------------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| spine | Legacy/operational Spine service; Data Platform | Gateway → D/cache; must not compete with Pipeline N writer | bound outside core + drift → ADAPT/MERGE; services/spine/wrangler.toml |
| loader, store | ingestion retrieval and compatibility storage; Integration/Data | connector → loader/store → pipeline; provider read/D staging only | bound indirectly, outside core → CONNECT and clarify why core connector depends on non-core deploys |
| iw-agent-runtime | agent runtime; AI Platform | Gateway → governed capabilities; no N/P direct | bound outside core → CONNECT or add explicit profile |
| webhook-ingress | provider event ingress; Integration | provider → Gateway/Pipeline; append evidence only | bound outside core → CONNECT required for reconciliation |
| mcp-pool | internal capability registry/router; Capability Platform | Gateway/management MCPs → internal tools | registry/health only | bound outside core → CONNECT not deployable/reachable in core profile |
| admin, billing, tenants | internal control/account services; Platform Ops | Gateway → control stores | scoped control writes, never N business truth | bound outside core → KEEP + CONNECT remove mystery admin: document routes, roles, and audit |
| folder-watcher | file ingress | Gateway (prod/config variance) → loader/pipeline | evidence only | partially bound → ADAPT make environment profile explicit |
| context-fetch | tenant context read facade | callers → bounded context | read/cache only | configured, non-core → CONNECT or ARCHIVE no unexplained parallel context path |
| task-management | internal tasks MCP | MCP Pool → task state/events | operational task state | indirect/non-core → CONNECT |
| provider-management-mcp | connections/apps/OAuth control | Platform/Gateway → provider grants | connection/grant metadata | orphaned → CONNECT canonical owner of provider-once registry |
| integration-management-mcp | connectors/sync/webhooks/schema control | Platform/Gateway → integration services | control metadata | orphaned → CONNECT |
| twin-orchestrator | Silent Twin orchestration | THINK → governed proposal | candidates only | orphaned/critical → CONNECT |
| hermes | approved action dispatch | Governance token → adapter/provider → reconciliation | governed P mutation + audit | orphaned/architecture-critical → CONNECT, stop-ship; stale/nonexistent binding references must be corrected |
| marketplace-installation | install/activation lifecycle | marketplace → Flow D/grants/catalog | installation metadata only | orphaned → CONNECT to OneAuth and Platform Console |
| agent-registry | governed agent catalog | Platform/MCP → agent runtime | registry only | orphaned → CONNECT or MERGE with capability registry |
| schema-ai | schema assistance | connector evidence → candidate mappings | candidates only | orphaned → CONNECT or ARCHIVE |
| signals | material event/signal service | Spine → Workbench/Twin | derived events | orphaned → CONNECT or MERGE |
| telemetry | operational observability | all services → operator views | telemetry only | orphaned → CONNECT required for release evidence |
| vercel-mcp | Vercel integration MCP | internal capability → Vercel | governed external mutation | orphaned → CONNECT or ARCHIVE |
| billing | billing control (also above bound group) | Gateway → billing provider/state | billing state only | configured outside core; runtime proof absent |
| schema-ai, signals, telemetry migrations | service-local operational schemas | service → own store | never implicit N authority | partial; migration ownership must be registered |
| ai-provider-mcp, core-engine, huggingface-inference | local/build residue without product source | none | none | legacy/residue → ARCHIVE/DELETE after tracked-state check |
| knowledge/server | nested Express/Firestore/GCS knowledge API | no workspace/release caller | legacy external stores | legacy orphan → ARCHIVE after data/export decision |

MCP reconciliation backlog: the MCP Pool has a service-binding/source-name mismatch and a
process-local registry; the management MCPs are scoped facades but lack core-profile reachability;
the MCP Connector has configured external-boundary code without live external proof; and
apps/mcp-servers contains configuration placeholders. Reconcile names, bindings, durable registry,
public/internal inventory, deployment profile, OAuth/tenant scope and health evidence before MCP or
marketplace readiness claims. None may become a duplicate connection, policy, or projection
authority.

The Gateway itself has zero inbound service bindings because it is edge ingress; that is not an
orphan signal. All other zero-inbound Workers require an explicit caller and deployment profile.

6. Package coverage manifest

Packages define contracts and reusable implementation; they do not become independent product or
canonical data authorities. Each item below is accounted for. Package manifests are evidence of
build intent, not consumption or publication.

Family / packagesReason and ownerUpstream → downstream; authorityStatus → disposition
Kernel/contracts: kernel, types, contracts, connector-contracts, context-contracts, projection-contractsFrozen vocabulary and boundary types; Architecture/Platformarchitecture → all apps/services; no storageKEEP + MERGE definitions where duplicated; contracts/some narrow packages have weak consumption evidence
Identity/tenancy: auth, rbac, tenancy, auth-connectors-mfe, auth-onboarding-mfe, one-access-ui, host-platform-connectorFlow D, consent, grants, reusable OneAuth UI; Identityidentity provider/host → Gateway/apps; session/grant onlyKEEP + CONNECT; default tenant/preview fallback is drift and shared authority is unproven
Projection/Workbench: workbench-config, projection-engine, platform-mfe, domain-shells, ui, design-system, knowledge-bank-uiRole configuration, composition, control UI and presentation; ProductGateway contracts → browser surfaces; no writesKEEP core; CONNECT UI; MERGE duplicate libraries; ARCHIVE legacy knowledge UI
Ingestion: loader, normalizer, connectors, connector-utils, provider-base, adapters, webhooksProvider discovery/read/normalization/adapters; Integrationconnection → provider → Pipeline; evidence/operational onlyKEEP + CONNECT; avoid duplicate implementations inside services without explicit ownership
Spine/data: spine-entities, spine-schema, spine-schema-generator, db, lib, spine-network, hermes-spine-memoryentity/schema/data utilities and distribution; Data PlatformPipeline/Spine → consumers; only Pipeline runtime may receive N write authorityKEEP canonical contracts; ADAPT/ARCHIVE zero-consumer and dist-only packages
Capability/agents: core, core/capability-registry, adk, accelerators, orchestrator, handoff-adapters, integratewise-mcp-tool-connector, model-gateway, omni-routercapability catalog, agent kit, model routing and handoff; AI/Capability PlatformTwin/Governance → MCP/Hermes/providers; no direct N/PKEEP + CONNECT/MERGE; reachability and approval enforcement required
APIs/SDK: api, gateway-sdk, sdk, bootstrap, configGateway clients, bootstrap, shared configuration; Platformapps/services → Gateway; api also hides a WorkerKEEP + SPLIT classification packages/api must be in Worker/deploy inventory; eliminate same-name cross-env binding
Validation: integration-testscross-service contract/release proof; Qualityrelease profile → evidenceKEEP + CONNECT to clean-tenant gates
Product integrations: coda-pack, analyticsexternal packaging/analytics helperscapability/provider → externaldecision → CONNECT or ARCHIVE; no unexplained published asset
Residue: config-backup-1782830543, lib-backup-1782830543timestamped local backupsnoneuntracked/excluded → DELETE residue only with explicit approval

Package-by-package owner/disposition register

This compact register closes the “approximately 57” logical-unit inventory. The family table above
defines upstream/downstream and authority; this register makes every unit discoverable.

DispositionPackages
KEEPaccelerators, adk, auth, auth-connectors-mfe, auth-onboarding-mfe, bootstrap, config, connector-contracts, connector-utils, connectors, connectors/memory-repo, context-contracts, db, gateway-sdk, host-platform-connector, integration-tests, kernel, lib, loader, model-gateway, normalizer, omni-router, one-access-ui, platform-mfe, projection-contracts, projection-engine, provider-base, rbac, sdk, spine-entities, spine-schema, spine-schema-generator, tenancy, types, webhooks, workbench-config
CONNECT / prove consumptionadapters, analytics, coda-pack, core, core/capability-registry, handoff-adapters, hermes-spine-memory, integratewise-mcp-tool-connector, orchestrator, spine-network
MERGE / select one UI authoritydesign-system, ui, domain-shells
SPLIT deployment classificationapi (package plus bound Worker)
ARCHIVE candidatecontracts if its frozen definitions are merged, knowledge-bank-ui with knowledge/server
DELETE local residue after approvalconfig-backup-1782830543, lib-backup-1782830543

No deletion is authorized by this ledger; it records the required outcome after ownership and data
retention checks.

Public package and artifact registry requirement

Every publishable package, tarball, Plugin/MCP manifest, generated SDK, schema artifact and release
bundle must have one registry record containing: canonical name, owning team, source path, build
command, version, commit, content digest/signature, public/internal boundary, supported consumers,
compatibility contract, publication channel, environment, supersedes/superseded-by links,
revocation status and verification evidence. private: false, a tarball in releases/, or a
manifest in the tree is packaging intent—not proof that the artifact is current, published, safe,
or consumed. Unregistered public artifacts block release.

7. Configuration and deployment roots

RootReason/ownerTarget / authorityStatus → disposition
root vercel.json, configs/root/vercel.jsonbrowser routing/deploy description; Product OpsVercel; no Worker deployment authorityconfigured → MERGE canonical Vercel config and eliminate contradictory direct service rewrites
app vercel.json filesapp-specific browser buildsVercelconfigured → KEEP/ADAPT only for funded product surfaces
root wrangler.toml, wrangler.dev.toml, wrangler.customer-zero.toml, wrangler.external-users.tomlenvironment/profile binding declarations; Platform OpsCloudflare Workersconfigured → KEEP + ADAPT profile matrix must name every included/excluded Worker and tenant boundary
services/*/wrangler.toml, apps/mcp-servers/wrangler.toml, packages/api/wrangler.toml, packages/integratewise-mcp-tool-connector/wrangler.toml, packages/webhooks/wrangler.tomldeployable Worker manifestsCloudflaredeployment evidence only; register all non-service Workers in release tooling
configs/templates/{packages,services}scaffoldinggenerated future componentsKEEP but templates must inherit canonical auth, tenant, telemetry, and deployment contracts
configs/scriptsconfig generation/validationoperator toolingKEEP + CONNECT to drift checks
infrastructure/configruntime/catalog manifestsdeployment/catalog inputsKEEP + RECONCILE with Wrangler/release profile; not independent truth
.github/workflows and scripts/releaseCI publication and verificationVercel/Cloudflare/packagesKEEP; core nine is intentional but incomplete for canonical loop

Deployment profile matrix

ProfileProven by repoMissing proof
Core Workersnine-service release script and matching validation/workflow intentcritical non-core dependencies, Hermes, management MCPs, MCP Pool, telemetry, actual deployment health
Customer Zerowrangler.customer-zero.toml, Customer Zero specs/runbooksisolated tenant evidence across entire loop; cannot certify external readiness alone
External userswrangler.external-users.toml and release docsclean tenant, real consent/provider, audit, reconciliation, rollback, multi-surface refresh
Local/devdev Wrangler/root scriptsno production inference permitted
Browser appsVercel configs/package manifestscurrent production project/domain mapping and Gateway-only ingress

Marketing deployment authority is unresolved while root/app Vercel configurations, rewrites,
domain references and more than one marketing-capable app can describe overlapping public routes.
The required owner is one declared Vercel project and one route/domain manifest for the public
company/product surface. Cloudflare may serve shared runtime APIs, but it must not become a second
marketing deployment authority. A DNS target, rewrite or merged PR is not proof of the currently
serving deployment.

8. Storage and migration authority register

Migration duplication is evidence of unresolved storage ownership. The tree contains canonical,
operational, fixtures, copied public docs, legacy Supabase, and service-local roots. A migration is
not canonical merely because it is SQL.

Root familyIntended owner/targetStatus → disposition
migrations/, migrations/v0-corecanonical Neon schema history, Data Platformpartial → KEEP + declare one migration runner/order
services/pipeline/migrationsPipeline canonical/operational writer schemacritical → MERGE/CONNECT to the authoritative Neon history; placeholder writes block release
services/{intelligence,knowledge,mcp-connector,schema-ai,signals,tenants}/migrationsservice-local D1/operational storesKEEP where owner is live; ARCHIVE with orphan otherwise
services/{connector-sync,workflow}/d1_migrations, services/workflow/migrationsscheduled sync/workflow operational D1/DO stateKEEP + register ordering/tenant scope
services/context-fetch/migrationscontext cache/read modeldecision → CONNECT or ARCHIVE with service
packages/api/migrations, packages/webhooks/migrations, packages/api/schema.sqlhidden Worker/package stateSPLIT and register in deployment/migration tooling
sql-migrations/*, docs/internal/sql-migrations/*duplicated operational/reference migrationslegacy/reference → ARCHIVE, never run from docs
apps/web/public/docs/**/sql and mirrored docs/domains/**/sqlpublished copies/reference artifactsdocumentation only → KEEP labeled; never execute
supabase/migrations, migrations/supabase-exportsuperseded provider/storage pathlegacy → ARCHIVE after data-retention/export decision; prohibited in product path
services/*/src/{schema,fixtures}, apps/web/scripts SQLschemas/fixtures/scripts, not automatically migrationsADAPT label purpose and block production runner discovery

Canonical N writes belong only to the governed Pipeline writer. D1/KV/DO/search stores are bounded
operational projections. Memory and model output inform truth but cannot promote themselves.

The migration registry must record, for every migration root: storage target, logical owner,
environment, runner, ordering/version scheme, tenant scope, checksum, applied-state evidence,
rollback/forward-fix policy and whether the root is executable, fixture-only, copied documentation
or legacy export. No release runner may discover SQL transitively from docs/, public/, fixtures,
Supabase exports or an orphaned service.

9. Connection, identity, and consent lifecycle (Flow D before A/B/C)

PhaseRequired owner and recordReuse/guardCurrent status
Host connection discoveryOneAuth host adapter; host identity, eligible connections and capabilitieshost is first source; metadata is not tenant authority or unrestricted transfer permissionpartial/configured
Discovery Agent mappingbounded explorer → Gateway/OneAuth confirmationdeclared capabilities only; proposes reuse/mapping; no credentials, consent inference, binding write or canonical authorityintended/partial; runtime boundedness not proven
User authenticationshared identity authorityaudience-bound session; no preview identity in releasedrift: platform default-tenant/preview fallbacks do not prove shared identity
Tenant bindingTenantGate + membership authorityfail closed; every durable record has tenant_idpartial
Consent/grantProvider Management + identityprovider/scopes/purpose/user/tenant/auditpartial/orphaned owner
Adopt/connect onceGateway-owned durable ConnectionBindingprefer host delegation; never copy host token; IW OAuth fallback only; reusable by authorized consumerspartial/drift: Gateway tenant/Nango/tenant_integrations lifecycle exists but is not runtime-proven; Platform global-memory registry and OneAccess APIs are scaffold/mock; competing registry tables and D11 identity remain unresolved
Discover capabilitieshost/provider discovery → connector projectionsprojections are not re-connectionsconfigured; runtime proof absent
Hydrateloader/sync → normalizer → operational Spineprovenance, cursor, idempotencypartial
Activate WorkbenchProjection Binding Registry + RoleConfigRBAC/policy-bounded DTOpartial
Revoke/rotateProvider Managementfan-out invalidation, credential rotation, auditnot end-to-end proven

10. Current wiring versus canonical target

CapabilityCurrent wiringCanonical targetGap/status
Identity/tenantapp/platform fallbacks and multiple auth surfacesone authoritative Flow D before data/contextdrift, stop-ship
Connect onceGateway lifecycle/Nango/tenant_integrations plus competing UI/scaffold registriesone Gateway ConnectionBinding, host-declared first, reusable everywherepartial/drift, stop-ship
IngressGateway routes plus direct Vercel rewrites/bindingsGateway/TenantGate single policy ingresspartial/drift
Load/normalizemultiple useful loaders/normalizersone owned chain into operational Spineconfigured, integration gap
Canonical promotionplaceholder/skipped writer and legacy pathsPipeline performs real governed N transaction with provenance/outboxstop-ship
Projectionconfigs/engine/routes and competing familiesregistry-bound role projection, one Workbench namespacepartial/drift
Twin/agents/MCPsubstantial code; core reachability gapsTHINK-only Twin through internal MCP/capability fabricpartial/orphaned
Approval/actiongovernance code co-located; Hermes orphanedcryptographic approval → Hermes → adapterstop-ship
Reconciliationsync/webhook pieces existoutcome re-ingested, reconciled, audited, all surfaces refreshednot proven
Platform Consolefail-closed discovery plus mocks/TODOsreal control plane over owning APIs, never SoTpartial
Marketplacecontracts, release bundles, manifests, install servicesigned/versioned distribution → Flow D install/consent → activationpartial/orphaned
External releasescripts/config/specsclean-tenant evidence pack for full loopnot runtime-proven

Operational brandstore and book-of-records/orgmemory bindings are internal-only. They may be
used by authorized operational projections but cannot appear as public marketing solutions,
marketplace categories, or unauthenticated navigation.

11. Marketplace and distribution assets

AssetReason/ownerBoundary/authorityStatus → disposition
marketplace/connector/catalog contentpublic catalog metadata onlyKEEP + reconcile with canonical connector registry
releases/iw-spine-network-* bundles/checksumsChatGPT/Claude/Notion/MCP distribution snapshotspublic signed/versioned artifact; no credentialsconfigured artifacts → KEEP as releases, verify provenance and supersession
apps/web/app/.well-known/ai-plugin.json and public/manifest.jsondiscovery manifestspublicKEEP + validate against current domains/tool inventory
infrastructure/config/{spine-network,adk}/manifest.yamlruntime/package manifestsinternal/configKEEP + connect to build/release source of truth
packages/contracts/src/marketplacemarketplace contractsinternal reusable schemaCONNECT or merge into consumed contract package
services/marketplace-installationinstallation lifecycle runtimeauthenticated controlorphaned → CONNECT
scripts/seed-marketplace-apps.ts, marketplace migrationsseed/catalog statecontrolled operator pathADAPT idempotency, environment, tenant and ownership guards
docs/submission/plugin-directory-submission.md and marketplace specssubmission/runbook evidencedocumentationKEEP subordinate; claims gated by deployed proof

The public Plugin exposes exactly the canonical 19 semantic IW Spine tools. Internal MCP Pool,
provider-management, integration-management, task-management, and raw provider tools are not
public marketplace inventory.

12. Remediation ledger

IDActionScopeAcceptance evidenceOrder
R1KEEP + CONNECTFlow D shared identity/TenantGateno default/preview release path; negative tenant tests; shared session accepted by all surfaces1
R2KEEP + CONNECTdurable Gateway ConnectionBindingeligible host connection discovered first; required binding fields persisted; two products reuse it; revoke/rotate propagates; no host-token copy or unrestricted transfer2
R3MERGEGateway ingress policyVercel routes only to Gateway/public allowed endpoints; complete Worker bindings per profile3
R4CONNECTloader/normalizer/operational Spineidempotent A/B ingest with provenance and tenant isolation4
R5ADAPT + DELETE legacy after migrationcanonical Pipeline writer✅ Neon primary writer implemented (hard-fail, R8 boundary guard, DATABASE_URL bound). Remaining: outbox pattern in Neon, retire pipeline/src/spine/ legacy writer, delete CANONICAL_SPINE_DB D1 binding after edge cache migration5
R6MERGE + CONNECTprojection route families and registryone canonical namespace; host/role/RBAC contract tests; unknown host fail closed6
R7CONNECTPlatform Console control APIsno mocks in release; every module names service owner, permissions, audit, freshness7
R8CONNECTMCP Pool, management MCPs, Twin runtimeexplicit release profile, health/routes, public/internal inventory tests8
R9SPLIT contractually + CONNECTGovernance and Hermesapproval token validation; denied/expired/replayed tokens cannot mutate provider9
R10CONNECTprovider writeback/re-ingestion/reconciliationsame action observed back, correlated, reconciled, audited, multi-surface refresh10
R11ADAPTmarketplace/install lifecyclesigned versioned assets, Flow D consent, clean uninstall/revoke, exact 19 public tools11
R12SPLIThidden Workers under apps//packages/deployment and migration registry covers each target/environment12
R13ARCHIVElegacy Supabase/Firestore/nested knowledge UI-server/docsdata-retention decision, no imports/bindings/runners, clear lineage label13
R14DELETEempty/untracked aliases/backupsexplicit approval and tracked/data check; recoverable cleanup14
R15ADAPTrelease evidenceCustomer Zero plus external clean tenant full-loop evidence, rollback and observability15

13. Dependency-ordered implementation and release program

This is an order lock; downstream work does not compensate for a missing upstream authority.

  1. Spine authority: select the single canonical Spine implementation and real Neon target;
    replace the Pipeline placeholder/cache-success path with truthful transactional writes. Pipeline
    is the sole canonical writer; other Spine implementations become bounded reads or are retired.
  2. Binding and deployment closure: reconcile names, environment bindings and release profiles;
    register every Vercel app, Worker, package Worker, dependency and migration root. Remove
    browser-to-internal-service bypasses.
  3. Flow D and ConnectionBinding: remove identity/tenant fallbacks; make Gateway/Provider
    Management the durable binding owner; discover host capabilities first; reconcile competing
    tables; never copy host tokens; prove consent, grants, revocation and consumer reuse.
  4. Flow A/B/C remediation: route structured provider records (A), evidence/documents (B) and
    cognitive candidates (C) through tenant-bound ingress, loader, normalizer, operational Spine and
    governed promotion. Discovery produces proposals only. Flow C never self-promotes, and no stage
    may report success when canonical persistence was skipped.
  5. Projection closure: require a registered Projection Binding for every view; converge route
    families and prove role, tenant, freshness, provenance, empty/error and unknown-host behavior.
  6. Governance/Hermes loop: replace the nonexistent/stale workflow binding, make Hermes reachable,
    validate approval tokens, execute through the selected provider route, then re-ingest, reconcile,
    audit and refresh all affected projections.
  7. Twin ownership: after the action loop works, bind the Silent Twin to THINK-only evidence and
    proposal ownership through the MCP/capability fabric. Twin never becomes a canonical writer or
    an alternate action path.
  8. Control and distribution: replace Platform Console fixtures/TODOs with owner APIs; validate
    public package/artifact manifests, exact public tools, install/upgrade/uninstall/revoke and
    marketplace claims.
  9. Customer Zero cross-surface proof: exercise OneAuth, Spine Network MCP, Workbench, Platform,
    Twin and provider reconciliation as a controlled rehearsal, followed by an external clean tenant.
  10. Consolidation: only after proof, merge duplicate packages/routes and archive/delete legacy
    components. Do not clean first and discover dependencies later.

14. Release proof and unresolved decisions

Required proof pack

  • commit/artifact identifiers and Vercel/Cloudflare deployment identifiers;
  • profile-to-Worker binding inventory and health checks;
  • clean user, tenant, membership, consent and provider connection evidence;
  • A/B ingest provenance, normalization and real canonical promotion record;
  • role-aware projection/host/RBAC and negative isolation tests;
  • Twin proposal and cryptographically bound approval/denial/replay tests;
  • Hermes/provider mutation and correlated re-ingestion/reconciliation audit;
  • multi-surface refresh/freshness evidence;
  • marketplace install, upgrade, revoke and exact public-tool inventory;
  • rollback/recovery and telemetry evidence.

Release evidence manifest

Each release candidate must produce one immutable manifest that joins otherwise fragmented proof:

Manifest sectionRequired fields
Sourcerepository, commit, dirty-tree declaration, build run, approving change set
Browser deploymentsVercel project, app/root, domains/routes, deployment ID/URL, artifact digest, environment
Worker deploymentscanonical service, Wrangler source, Worker name, environment, version/deployment ID, bindings and health
Packages/artifactspackage/bundle name, version, digest/signature, registry/channel, public/internal status, compatibility
Migrationsroot, target store, owner/runner, ordered versions/checksums, applied evidence, forward-fix/rollback status
Identity/bindingsuser/tenant authority, consent record, ConnectionBinding source/scopes/grants, revocation and negative isolation proof
Flows A/B/Cingress IDs, provenance, normalize result, operational record, promotion record and real canonical transaction ID
ProjectionsView → Projection Binding → Gateway route → owner mapping, tenant/RBAC/freshness and negative tests
Action loopproposal, approval token/hash, Hermes dispatch, provider result, re-ingestion, reconciliation, audit and refresh IDs
DistributionOneAuth/Spine Network MCP versions, exact public tools, install/upgrade/revoke checks, marketplace listing identity
Verificationtest suites, Customer Zero run, external clean-tenant run, telemetry window, rollback/recovery exercise and known exceptions

The manifest may reference signed evidence artifacts, but every reference must be immutable and
environment-specific. Missing sections are release blockers, not documentation follow-ups.

Decisions that remain open

  1. Which identity provider/record is the final shared authority, and when are all preview/default
    tenant fallbacks prohibited?
  2. Which durable store and service own the provider-once registry, connection leases, rotation and
    revocation?
  3. Are non-core but canonical services added to the core profile, or is there a dependency-ordered
    multi-profile release? “Bound somewhere” is not a release policy.
  4. Which Workbench route family is canonical, and what is the redirect/deprecation window?
  5. Does packages/api remain a Worker, move to services/, or merge into an existing owner?
  6. Which UI library survives (ui, design-system, domain-shell components), and who migrates
    consumers?
  7. Are mobile, desktop, portfolio, context-fetch, schema-ai, signals, and vercel-mcp funded now or
    archived?
  8. What is the data-retention/export plan for Supabase, Firestore/GCS knowledge, and other legacy
    provider paths?
  9. Which marketplace bundle is current, who signs it, and what is the revocation/supersession rule?
  10. What objective evidence promotes Customer Zero learning into external GTM readiness?

Until R1–R10 and the clean-tenant proof pack pass, GTM and release planning may continue as a
conditional plan, but must not be labeled final or generally available.

15. Pull-request lineage: protected Workbench capabilities

This section records read-only GitHub evidence inspected on 2026-08-13. PR state is not checkout
state, and a merged label is not architectural approval. No PR was merged, closed, reopened, or
otherwise changed during this review.

Protected scope: workflows, skills, agents, capability registry/execution, and their Workbench
entry points are existing product scope. Donor-view or taxonomy work must preserve these surfaces;
absence from a replacement registry is a regression, not permission to retire them.

PRChange evidenceShared-platform assessmentDisposition / sequencing advice
#139 — migrate donor domain viewsMerged 2026-08-11; 268 files, approximately 55,579 additions and one deletion. Adds 261 donor domain-view components, a new dynamic domain-view registry, hydration compatibility hooks, and DomainViewShell integration. It includes donor workflow/capability views, but its changed-file inventory does not add or prove preservation of the existing first-class skills and agents routes/registries.Partial alignment with Projection direction, regression risk elsewhere. Binding donor views to AuthorizedProjectionPayload and ProjectionRouteRuntime is directionally correct. The bulk snapshot, compatibility stubs, fixture-heavy components, and incomplete protected-surface coverage do not prove Gateway/Spine/OneAuth authority or full capability preservation. The reported post-merge loss of existing workflow/skill/agent work is treated as material regression evidence.Do not re-merge wholesale. Extract the registry/hydration pattern and individually accepted views only after protected-surface contract tests exist. Require real bounded projection data; stubs/fixtures cannot become release truth.
#140 — revert #139Open at inspection time; mechanical inverse of #139: 268 files, approximately 55,579 deletions and one addition. It removes the donor registry, hydration hook, workflow canvas/list views, and donor capability views along with the rest of the import.Rollback, not target architecture. It avoids retaining the risky bulk integration, but also removes useful donor scope and supplies no shared Spine/OneAuth/connector/platform reconnection plan.Use only as change-isolation evidence. Do not merge merely to “restore” protected capabilities; verify the base actually contains them and recover missing pieces from their authoritative commits/sources.
#141 — SpineWorkspace/domain refactorMerged 2026-08-11; 178 files, about 5,317 additions and 6,749 deletions. Changes marketing/domain taxonomy, projection registry and teleport switcher, centralizes marketing content, modifies CI, and deletes apps/portfolio. It does not restore #139's donor view registry and its file list does not add workflow/skill/agent preservation coverage.Mixed. “Spine Workspace” branding, industry-as-context, marketing consolidation, and removal of a duplicate portfolio app are directionally aligned. The registry revision includes internal brandstore/orgmemory identifiers and competing domain names; they may be internal projection identifiers but must not become public marketing solution routes. It does not close shared identity, connection, Gateway, or projection-backend contracts.Retain only changes already reconciled with current canon. Revalidate route/redirect/sitemap/host-map/tests as one unit. Do not treat #141 as restoration of #139 or of protected capabilities.

Required restoration sequence

  1. Inventory and pin the existing route, navigation, registry, component, test, workflow service,
    capability service, skill, and agent entry points on the current canonical base.
  2. Add non-regression tests proving each protected surface remains discoverable and consumes a
    tenant/RBAC-bounded Gateway projection or capability contract.
  3. Reconcile projection identifiers with the canonical public/internal taxonomy. Internal
    brandstore and orgmemory may remain internal bindings; they cannot become public solutions.
  4. Port PR #139's AuthorizedProjectionPayload hydration/registry mechanics as a small reviewed
    change, without compatibility identity stubs or fixture truth.
  5. Port domain views by role family in bounded batches. Each batch must prove loading, empty/error/
    stale states, RBAC, accessibility, and no replacement of workflow/skill/agent navigation.
  6. Connect workflow/capability/agent actions through Governance and Hermes; until then, imported
    controls are declarative previews, not executable product proof.
  7. Only after the protected surfaces and closed loop pass may obsolete donor/duplicate code be
    archived. Never use a bulk revert or historical merge label as the source of truth.

The direct checkout inspected for this companion contains existing capability-engine,
capability-registry, agent-registry, agent route, capability route, agent runtime view, and agent
activation drawer sources. It contains no populated apps/web/components/domain-views tree at
the inspected HEAD. This is checkout evidence only; it does not infer the contents of a remote
merged commit or deployed Vercel project.

16. First Spine Workspace vertical integration proof

The deterministic proof in
services/intelligence/src/chatgpt-brainstorm.vertical.integration.test.ts binds three explicit,
tenant-scoped exemplars to one work context without using or requiring provider credentials:

FlowExemplarEnforced pathProof boundary
Astructured CRM account fixtureexplicit item consent → Loader fixture adapter → real Normalizer → Pipeline operational D1provenance and tenant isolation; no live CRM or canonical promotion claim
Bauthorized document excerpt fixtureexplicit item consent → Loader fixture adapter → real Normalizer → Pipeline operational D1/referencebounded excerpt and provenance; no full document-history ingestion
Cuser-authorized ChatGPT chat/window referenceexplicit reference handoff → Brainstorming → deterministic Triage comparison → novel-only candidateno Loader/Normalizer; duplicate content consolidates citations; candidate remains pending_governance

The public get_context IW-Spine-Network MCP dispatcher reads the correlated active work context
and returns minimum-necessary references and citations for A, B, and C. It does not return the CRM
record, document excerpt, ChatGPT excerpt, provider credential, or arbitrary chat history. A second
tenant cannot read the first tenant's candidate, operational rows, or active context. The harness is
a full local integration-path proof, not proof of live provider authentication, deployed Worker
bindings, external ChatGPT history access, or a canonical Neon transaction.

Flow C intentionally bypasses Loader and Normalizer. Triage owns novelty, repetition, conflict and
consolidation decisions, but it does not own canonical writes. The proof stores only a governed
promotion candidate in operational D1; promotion remains a later Pipeline/Spine governance step.

Omni Router / model-routing boundary

The checkout contains two different routing packages. packages/omni-router is currently a
provider-agnostic connector tool executor with connector credentials; it has no model-selection
or fallback contract. packages/model-gateway is the package that currently defines provider/model
routing. Therefore the test uses a bounded TriageReasoningRouter contract seam and asserts that
Triage emits only tenant, principal, purpose, policy and an input hash to the routing boundary. The
external reasoning response is deterministic and local; no secret or raw excerpt is sent.

Connecting that seam to the required private OmniRoute AI gateway, and reconciling the naming and
ownership overlap between omni-router, model-gateway, and the OmniRoute endpoint, is unresolved
runtime wiring. This test does not claim the current Codex session, a deployed Triage Worker, or any
external model call traversed that gateway.

Run the proof with:

NODE_OPTIONS=--experimental-sqlite pnpm --dir services/intelligence exec vitest run src/chatgpt-brainstorm.vertical.integration.test.ts --reporter=verbose

Customer Zero may begin only after replacing each fixture with an explicitly authorized real item,
binding the Triage reasoning seam to the deployed policy router, proving the Pipeline canonical
writer transaction rather than its operational candidate, and repeating the negative isolation and
bounded MCP assertions against deployed services.