DUNIN7 · Loomworks · Architecture Specification

Loomworks Architecture Specification

Viewing v0.1·2026-05-21·Editable
Section 01

Orientation — what Loomworks is

Foundation in place

Loomworks is the engagement memory environment for the agentic era. It is built around the idea that a person doing substantial work — building something, thinking through a domain, accumulating expertise — needs a place where that work lives durably, where the memory of what has been decided and produced grows over time, and where an AI collaborator works alongside them as a real participant rather than as a query interface.

The person doing the work is called the Operator. The unit of work is called an Engagement. The Operator's collaborator within an Engagement is called the Companion. The Companion is invisible as AI — it appears as a colleague, named by the Operator, with a voice that is warm, capable, and unannounced.

Around each Engagement, the methodology specifies four layered concepts through which work flows:

Memory
Accumulated knowledge
Manifestation
Organized at a moment
Shaping
Arranged for a reader
Rendering
Produced as artifact

These are not four tabs. They are four conceptual layers describing what happens to material as it accumulates in an Engagement. Memory holds everything. Manifestation organizes Memory at a point in time. Shaping arranges organized knowledge for a specific reader. Rendering produces the artifact that reader receives.

"A four-stage pipeline for agentic work. The Companion is your surface to it: the same interlocutor through Memory, Manifestation, Shaping, and Rendering."

The protocols Loomworks rests on are three: Loom (the engagement-memory wire layer), FORAY (the transaction grammar that attests every consequential action), and OVA (the agent identity and authorization layer). The three compose; removing any one leaves a gap the others cannot close.

Section 02

Core concepts

Built and operational

The Operator Built

The Operator is the person doing the work. They have final authority over their Engagements. They are the only party whose commitment makes contributions durable. The methodology's commitments — to Operator-final-authority, to plain-English communication, to "only show what is available," to Operator-vocabulary throughout — all derive from treating the Operator as the central actor.

Each Operator has their own identity, their own personal Memory space, their own Companion (named by them), their own dashboard showing the Engagements they belong to, and their own posture toward each Engagement (Operator on some, Contributor on others, Domain Expert on others still).

The Companion Built (core capabilities)

The Companion is the Operator's collaborator within an Engagement — the conversational interlocutor through which most interaction happens. The Companion is invisible as AI; it appears as a named entity (default name "Companion", renameable by the Operator), with a voice that is warm, capable, and unannounced. The Companion never refers to itself as an AI, never names models, never uses engine vocabulary.

The Companion has a standing posture and an engaged posture. The standing Companion runs alongside the Operator's day continuously — Operator-bound, not Engagement-bound. The engaged Companion foregrounds when the Operator enters an Engagement, working with that Engagement's seed and memory.

The Engagement Built

An Engagement is the unit of bounded work. Everything an Operator does in service of one purpose — a project, a research domain, a body of knowledge being built — lives in an Engagement. Each Engagement has its own Memory, its own Companion-state, its own seed (the founding articulation of what the Engagement is about), and its own four-room structure.

The Engagement is also a universal adapter. Anything that needs the methodology's governance properties — a credit ledger, a legal-document workflow, an external integration — can be modeled as an Engagement.

Each Operator has a special personal Engagement — addressable by the number 0 or the name Personal — that holds their notes, thoughts, and material that doesn't belong under any specific project. Project Engagements receive identifiers of the form E#### that are universal — the same value for every Contributor to the Engagement — plus per-Operator sequence numbers for working-set handling.

The seed Partial (creation built; editing surface absent)

The seed is each Engagement's founding articulation — a brief that names what the work is, who consumes it, the voice it takes, the constraints it operates under, the success conditions, and any additional commitments. The seed governs the Engagement's life. It is the frame against which Memory is interpreted, contributions are evaluated for relevance, and Manifestation is organized.

The seed has a specified structure: R-A5 what the work is, R-A6 who consumes it, R-A7 voice, R-A8 constraints, R-A9 success conditions, R-A10 initial contributors and agents, R-A11 additional assertions.

StatusSeed creation through Companion-assisted Discovery dialog exists. Seed editing exists in the substrate via the considerations pipeline, but no Operator-facing surface exposes it. Making the seed a living frame of reference is identified work, not yet shipped.

The assertion Built

An assertion is the durable unit in Memory. Every contribution that is meant to last becomes an assertion. Each assertion carries its content, its provenance (who contributed it, when, how, from what source), and its lifecycle state (held, committed, retracted, superseded).

Assertions are not edited in place. When an assertion changes, the old one is retracted (preserved with a "RETRACTED" marker) and a new one is written that supersedes it. The trajectory of how the Engagement's understanding evolved is always recoverable.

Workspaces and tags Partial

Engagements can be organized through two orthogonal mechanisms. Workspaces are vertical containment — named places the Operator enters (a client's account, a quarter's planning, a domain of work). Entering a Workspace narrows the visible Engagement set. Tags are lateral grouping — free-form strings applied to Engagements for slicing across Workspaces.

Both coexist as first-class. Each serves a different cognitive purpose: Workspaces for "where am I working right now," tags for "show me all the urgent ones."

Section 03

Memory — the foundation

Foundation built; substantial work remaining

Memory is the engagement's accumulated knowledge — everything that has been contributed, by everyone, over the life of the Engagement. When someone contributes, their contribution enters Memory. It carries who contributed it, when, and how. The system records the lineage automatically; the contributor focuses on the knowledge itself.

"Memory does not forget. Contributions that are corrected or superseded remain visible as part of the record. The trajectory matters — not just where the engagement arrived, but how it got there. A correction is a contribution. A retraction is a contribution. Both are preserved."

Memory grows. It is never finished. Every other operation in the system — Manifestation, Shaping, Rendering — draws from Memory. Memory is the source. Nothing downstream exists without it.

Population — how Memory grows Partial

Memory is populated through multiple modalities, each with its own pathway. The pathways differ in immediacy and surface affordance but converge on the same assertion structure once they land in Memory.

  • Talking Built — The Operator types or speaks to the Companion. Each contribution becomes a conversation turn.
  • Voice transcription Built — The Operator speaks; the transcript commits on silence (silence-submit). Voice-originated assertions are visually distinguishable from typed ones.
  • Upload Built in substrate; not surfaced — The Operator brings in a file. The substrate detects format, runs the appropriate transformation skill, produces assertions. The affordance is unmounted on the in-engagement surface.
  • Quick-capture Planned — Fast-path Memory contribution for utterances like "I parked on level 10."
  • Seed creation Partial — The first piece of Memory in any Engagement is its seed, created through Companion-assisted Discovery dialog.
Identified gapThe population pathway is uneven across modalities. Talking is solid. Voice is solid. Uploading is built but unmounted on the in-engagement surface. This is the most consequential current gap in Memory's practical reachability.

Addressing — how Memory is referenced Under investigation

Memory holds assertions; each assertion needs to be addressable so it can be referenced, retracted, superseded, or pointed at conversationally. Current substrate carries assertion identifiers and supports the lifecycle operations. Surface affordance for addressing is under active investigation.

The addressing scheme under investigation uses an M#### prefix for assertions (M for Memory). An Operator can say "retract M37" or "show me M5" and the Companion knows what to do. The substrate supports retract and supersede at the API level today; the surface affordance is being scoped.

Lifecycle — retract, supersede, archive Substrate built; surface partial

Assertions have a lifecycle. They are first held (proposed but not yet authoritative), then committed (the Operator's authority makes them durable). After commit, they can be retracted (marked invalidated, with a required rationale) or superseded (a new version is written and the old becomes part of the version chain).

The held-then-commit ceremony is load-bearing. A held assertion that turns out to be wrong can be retracted before commit without leaving a persistent trail. A committed assertion that needs correction goes through retract-or-supersede, both of which preserve history.

Relevance evaluation — drift and bulk mitigation Identified; not yet built

As Memory accumulates, two risks compound: drift (the Engagement's content gradually wanders away from its founding purpose) and bulk (uploaded materials produce many assertions, most of which don't serve the Engagement's focus). The Companion's job, sitting in the middle of Memory contribution, should be to evaluate contributions against the seed for relevance.

The evaluation is Companion-mediated, not gating: the Companion notes off-topic drift, surfaces elicitation when relevance is mixed, asks before extracting bulk that doesn't fit. The Operator's authority is preserved; the Companion's role is to surface the question, not decide it.

Provenance — where assertions come from Built

Every assertion knows its provenance: who contributed it, when, how, and from what source. Provenance is preserved through retract and supersede.

Provenance becomes load-bearing in multi-Contributor Engagements, in audit scenarios (the FORAY-attested trail), and in cross-Engagement awareness.

N-space Memory — multiple scopes composed Pattern recognized; full composition planned

Memory is not a single space. The methodology recognizes multiple scopes that compose: the Engagement's primary Memory, the Operator's personal Memory, standing Memory, and — as the architecture grows — organization Memory, team Memory, role Memory, jurisdiction Memory, and domain Memory.

All spaces share the same assertion structure, the same authority model, and the same audit posture. What differs is visibility scope. The Companion composes across the spaces relevant to the current operation.

Section 04

Manifestation — organized at a moment

Substrate built; full capability partial

A Manifestation is Memory organized at a moment in time. Memory accumulates continuously. At any given moment, the Engagement's Memory is a body of knowledge, but it has no structure beyond the order contributions arrived. Manifestation is the organizing act.

The system reads the Engagement's seed and all committed assertions, and produces a structured ordering — groups with labels, assertions placed within groups, the groups themselves ordered so that foundational knowledge precedes applied knowledge.

"A Manifestation is not a copy. The assertions remain in Memory. The Manifestation is a reading of Memory — an organizing act that says 'here is how this body of knowledge hangs together right now.'"

Capabilities Partial

  • Organize on demand Built — Fires on explicit invocation, not on every Memory write.
  • Read from seed and assertions Built — Manifestation takes the seed as input alongside committed assertions.
  • Label groups intelligibly Built — Groups emerge from content with descriptive labels.
  • Show rationale Planned — Why is this assertion in this group? The grouping should not be opaque.
  • Allow Operator override Planned — Operator can move things if they disagree with grouping.
  • Preserve prior Manifestations Built — Prior versions are preserved but superseded.

Relationship to Memory Built

The Manifestation is downstream of Memory but upstream of Shaping and Rendering. Shaping does not reach back into raw Memory; it works against the current Manifestation. This makes Shaping stable: a Shape derived from Manifestation version 3 draws from exactly the same organized knowledge today as it will tomorrow, even if new assertions arrive in Memory overnight.

Section 05

Shaping — arranged for a reader

Substrate built; full capability partial

Shaping is the moment where the Engagement's accumulated knowledge gets organized for someone specific. Everything the Engagement knows lives in Memory. The Manifestation organizes Memory at a point in time. But neither of those is shaped for any particular reader.

Shaping takes that organized knowledge and asks: what does this specific reader need, and how should it be arranged for them? The same Memory, the same Manifestation, produces different Shapings for different readers. The knowledge does not change — what changes is what gets selected, what gets emphasized, and what gets left out.

Capabilities Partial

  • Named Shape types Built — Each Shape has a declared type. Specifications, scoping notes, change requests are examples.
  • Selection Built — System picks the right assertions for the Shape.
  • Drafting Built — Selected material composed into the Shape's structure.
  • Refinement Partial — Operator can ask for refinement; system reshapes.
  • Versioning Built — Every shaping produces a preserved draft.
  • Specification grammar declaration Built — Shape types declare the grammar they produce.
Section 06

Rendering — produced as artifact

Substrate built; specific renders shipped

Rendering produces the final artifact that the reader actually receives. Memory accumulates knowledge. Manifestation organizes it. Shaping selects and arranges it for a specific reader. Rendering produces the thing they hold in their hands — the document, the report, the guide, the reference, whatever form the reader needs.

The dual mode Recognized

Rendering has two modes. In some cases, Loomworks owns the production directly — generating documents, reports, audio files. In other cases, Loomworks produces the specification that a downstream production system consumes — an app spec for Claude Code, a design spec for whatever produces the final form.

The render layer doesn't anticipate every production environment; it supplies the inputs each one needs.

Capabilities Partial

  • Multiple output formats Partial — Markdown, HTML built; PDF, slides, audio planned.
  • Format-appropriate specialists Partial — Each format has its own conventions; Specialist SDK partial.
  • Async production Built — Long-running renders use polling pattern.
  • Re-rendering Built — Shape evolution drives output regeneration.
  • Provenance Built — Every rendered artifact knows its source.
  • Render-as-spec for production systems Investigating — SDK for external production systems.
Section 07

Engagement patterns — the universal adapter

Pattern named; instances landing progressively

The Engagement is the methodology's unit of bounded knowledge work, but it is also the methodology's unit of integration with everything outside the Engagement. Any system that needs to participate in Loomworks can be modeled as an Engagement. Once modeled as such, it inherits the methodology's affordances: a Companion, a four-room pipeline, FORAY-attested actions, OVA-scoped access, and the Operator-as-final-authority discipline.

Not every external system should be an Engagement — many don't merit it. But the Engagement abstraction is the right shape for any system that wants the methodology's governance properties.

Operational vs infrastructure Engagements Both types built

Operational Engagements hold knowledge that is the Engagement's own. The substrate doesn't depend on this knowledge for its own operation; the Engagement is the consumer.

Infrastructure Engagements hold knowledge that the substrate itself reads on the hot path — credit balances, account lifecycle state, fleet membership. The substrate co-locates this knowledge under a separate database schema for the Engagement.

Two-engagement governance Built (credit system instance)

Some governance problems split naturally into two Engagements. The Authority Engagement sets policy and issues decisions. The Accounting Engagement maintains balances and reconciles. The credit system uses this pattern.

Resident vs delivery Engagements Distinction named

Resident Engagements consume their renders internally. Delivery Engagements produce artifacts that ship outside — a contract, a webpage, a report sent to a customer. Some Engagements are both.

Runtime vs workspace vs authoring-environment modes Trio recognized

Engagements operate in three modes. Runtime: the Engagement is its own runtime; its work is internal. Workspace: produces shippable artifacts. Authoring-environment: specifies a deployed system that operates beyond it. The three modes have different audit needs and different render specialist classes.

The shared-subject pattern Pattern named; build deferred

Some Engagements coordinate around a subject that multiple independent parties contribute to — a property, an asset, a person whose record spans multiple service relationships. Each party has their own Engagement; a shared layer holds contributions all parties can affect. Requires OVA to be a role-and-capability management substrate.

The personal Engagement Built

Every Operator has a personal Engagement automatically. It holds their notes, their preferences, their standing context. It is addressable as 0 or Personal. It floats outside the Workspace model — always accessible.

Section 08

The Companion

Core built; standing posture pieces shipping

The Companion is the surface to Loomworks. The Operator talks to their Companion; the Companion talks to the substrate. Most product interaction routes through this conversational interlocutor rather than through chrome.

"The Companion is not a feature of Loomworks. The Companion is the product."

Voice and posture Built

The Companion's voice has four operative principles:

  • Warm without sycophancy — Genuinely interested. Interest shows in attention, not adjectives.
  • Capable without performance — Brings expertise. Doesn't announce it.
  • Direct without curtness — Gets to the point. No throat-clearing.
  • Honest about uncertainty — "I'm not certain about that" is always acceptable.

The Companion never says "as an AI." Never mentions model names. Never uses engine vocabulary. It uses Operator vocabulary: project, note, specification, artifact.

Intent classification and dispatch Built

When the Operator speaks, the Companion's intent classifier determines what they mean. The classifier routes the message to the right engine operation. The Companion's voice — assembled from a persona component, the Engagement context, and the intent-specific instruction — produces the reply.

Engagement context loading Tiered loader built

The Companion loads context about the current Engagement before responding. Three tiers:

  • Tier 1 — Seed only. No committed assertions yet.
  • Tier 2 — Seed plus recent assertions. Has assertions but no Manifestation.
  • Tier 3 — Manifestation. Engagement has organized Memory state.

Standing vs engaged Companion Engaged built; standing pieces shipping

The Companion has two postures, both of one Companion.

The engaged Companion foregrounds when the Operator is inside an Engagement. It works with that Engagement's seed and Memory.

The standing Companion runs alongside the Operator's day continuously. Operator-bound, not Engagement-bound. Reads from the Operator's full Memory access set. Default posture is silence; proactive scope is Operator-declared.

Ambient context Substrate ready; capability not yet wired

The Companion should maintain continuous awareness of the Operator's current state — local time, day, calendar, location, weather, whether it's a workday, what's pending across Engagements. This is what distinguishes the Companion from cold-start voice assistants: it understands questions in context because the context is already loaded.

The Companion as agent Capability tiers named

The Companion crosses from tool to agent when it acts without being asked in that moment. Five tiers of capability:

  • Tier 0 — Observe and inform.
  • Tier 1 — Engine-internal actions.
  • Tier 2 — External information retrieval.
  • Tier 3 — External state changes.
  • Tier 4 — Financial agency. Tightly scoped; OVA-authorized.
Section 09

Loom · FORAY · OVA — the protocol triangle

Loom built; FORAY substrate operating; OVA via seam-and-stub

Three protocols compose to give Loomworks its governance properties. They are adjacent rather than nested. Each does its own work; the composition is load-bearing.

"Loom remembers. FORAY proves. OVA scopes."

Loom — the memory protocol Built

Loom is the engagement-memory wire layer. Its job is the durable record of what each Engagement holds — assertions, events, relationships, state. Without Loom there is no substrate to reason over. Loom is at v0.1 spec (2026-04-12), built underneath Loomworks, rests on PROV.

FORAY — the transaction grammar Substrate operating

FORAY is universal transaction grammar. Every state-changing action carries a FORAY flow row recording what happened, who did it, when, against what authorization. FORAY is the audit substrate; it doesn't enforce or interpret, it records.

FORAY does three things for harm prevention: audit trail for review; substrate for proactive monitoring; basis for trust establishment with external parties.

OVA — agent identity and authorization Seam-and-stub

OVA provides agent identity and authorization through cryptographic indistinguishability, path-branching topology concealment, and zero-knowledge least-privilege verification.

OVA's per-Operator credentials gate every consequential operation. The enforcement happens upstream of implementation. Denials are FORAY-attested alongside permits.

Loomworks integrates OVA via seam-and-stub progression: the seam ships now; the stub exercises the seam's contract; the full OVA hardens later.

Structural defensibility Principle named

The three layers compose into a structural defensibility property that filtering alone cannot match: rules are explicit (in Memory); enforcement happens upstream of implementation (at OVA); audit is mechanical (in FORAY). Harms that the rules prohibit are architecturally impossible.

Section 10

Surfaces — what the Operator sees

Multiple surfaces built; consolidation ongoing

Sign-in and authentication Built

Sign-in uses passkey (discoverable credential) or org SSO. No email-based credentials — DUNIN7's standing principle is that email is not identity.

Engagement navigation Built

After sign-in, the Operator sees their Engagement set. The navigation surface organizes Engagements through Workspaces and cross-cutting views. The personal Engagement sits at the top, expandable, above the Workspaces.

The in-engagement surface Core built; major gaps remain

When the Operator enters an Engagement, the in-engagement surface foregrounds. Three panes: a left rail with navigation, a center pane with the conversation, a right pane with Inbox and Library tabs. The composer at the bottom supports typed and voice input.

  • Conversation composer with typed input Built
  • Voice listening with silence-submit Built
  • Upload affordances Planned — substrate ready; surface unmounted
  • Seed surface element Planned
  • Addressable assertion identifiers (M-prefix) Investigating
  • Manifestation view Planned

Marketing site Live

The public-facing marketing site describes Loomworks to potential Operators. The marketing site is itself an Engagement. It hosts the public credit-request form and serves as the entry point for sign-up flows.

Mobile presence Planned

Mobile is a surface of the Operator Layer, not a forked environment. iPhone and Android Companion presence supports wake-word activation, App Intents/App Actions integration, tap-to-speak surfaces, and offline quick-capture queueing.

Section 11

Credit system

Built (substrate); operational refinements ongoing

The credit system meters Loomworks operations. Each consequential operation costs credits. The credit system is itself two Engagements following the universal-adapter pattern — Credit Management as the Authority that issues grants and decides eligibility, Accounting as the bookkeeper that maintains balances.

Asset model Built

Credits carry model identity. loomworks_credit_haiku, loomworks_credit_sonnet, loomworks_credit_opus are distinct assets. Each represents the right to use a specific tier of model intelligence.

Balances are derived artifacts maintained by a database trigger on the FORAY flow log.

Grant-based delivery Built

Credits are not requested as freeform codes; credits are delivered to specific email addresses. The Authority binds a grant to an email at issuance and registers the email hash.

Companion-as-Authority Built

The Companion on the Credit Management Engagement reads Memory assertions and proposes grant decisions for Operator approval. This is the first delivery-class instance of the proposer/committer pattern.

Section 12

Methodology — disciplines and patterns

Operative; consolidation ongoing

Operator-final-authority Operative

The Operator has final authority over their Engagements. Companion proposals require Operator commitment to become durable.

Memory-as-sole-write-target Operative

Renders are never edited in place. New memory is the new write. When a render needs to change, the Shape that produced it changes; the render is regenerated.

Plain-English communication Operative

The Operator's path never contains technical vocabulary. The Companion uses Operator vocabulary throughout. Decisions are requested in plain English.

Only show what is available Operative

No disabled buttons, no grayed-out options. If you can't do it, it doesn't exist on your surface. The interface reshapes itself to the role, silently.

Held-then-commit Operative

Memory contributions don't enter Memory immediately. They sit in a held state, attributable to a contributor, awaiting commit. The Operator's commit action is what makes the contribution durable.

Discovery-record posture Operative

The trajectory of how the project arrived at a decision matters as much as the decision itself. Corrections, alternatives considered and set aside, rejected paths, and moments of crystallization are preserved alongside chosen directions.

Substrate-friction-discipline-pattern Operative

Three paths handle different scales of build friction: naming-only resolution for small friction, halt-and-amend for large friction, and Operator-elective amendment scoping for friction that exceeds naming-only but does not breach halt-thresholds individually.

Seam-and-stub progression Operative

Some methodology pieces are too large to ship in a single phase but too important to defer indefinitely. The seam ships now, with a stub. The progression replaces the stub with the full implementation when the time comes.

Declare-and-register Operative

Many extensions to Loomworks follow the same pattern: declare the new type, register the actor that handles it, the engine matches at runtime. The pattern is reusable.

Section 13

Open questions and identified gaps

Active investigation

Memory population surface unification In progress

The most consequential gap: the upload pathway works in substrate but is unmounted on the in-engagement surface. Operators cannot bring materials in through the surface they actually use.

Seed as living frame of reference In progress

The seed is treated as a one-time creation rather than as the Engagement's living frame of reference. Making the seed a permanent first-class affordance — creation surfaced when absent; viewable and editable when present — is identified work.

Addressable assertions at the surface In progress

The substrate supports assertion lifecycle operations; the surface affordance for addressing — M-prefix identifiers, selection mode, spoken-and-typed addressing — is being scoped.

Relevance evaluation against the seed Identified, not started

The Companion should evaluate contributions for relevance against the Engagement's seed, mitigating drift and bulk. Today, no evaluation happens.

Cross-Engagement awareness Planned

When an Operator says something in one Engagement that might belong elsewhere, the Companion should recognize the mismatch and offer to redirect.

Multi-Contributor reality at the surface Planned

The substrate distinguishes Operator from Contributor at the membership level, but the surface treats all turns as if they're from the Engagement's primary Operator. Role-aware author labels need wiring.

Section 14

Glossary

Working vocabulary

Methodology vocabulary

  • Operator — The person doing the work, with final authority.
  • Companion — The Operator's AI collaborator within an Engagement.
  • Engagement — The unit of bounded work.
  • Memory — The Engagement's accumulated knowledge.
  • Manifestation — Memory organized at a moment in time.
  • Shaping — Organized knowledge arranged for a specific reader.
  • Rendering — Production of the artifact the reader receives.
  • Seed — The Engagement's founding articulation (R-A5 through R-A11).
  • Assertion — The durable unit in Memory.

Engagement vocabulary (Operator-facing)

What the Companion calls things when talking to the Operator. Never uses engine vocabulary.

  • project instead of "engagement"
  • note instead of "assertion"
  • specification instead of "shape"
  • artifact instead of "render"
  • draft instead of "held"
  • saved instead of "committed"