Tape Systems — Context as Architecture

2 min read Original article ↗

factfactfactanchorfactfactnewappend-only

A unified fact model for long-running, multi-team work.
It also extends to observability, eval, and training.
Practiced in bub.build, view source

Explore

TapeEntriesAnchorsIndexderivedViewExecutionnew entries

Tape

Chronological sequence of facts

Entry

An immutable fact record

Anchor

Logical checkpoint for state reconstruction

View

Task-oriented assembled context window

Invariants

01

History is append-only, never overwritten

02

Derivatives never replace original facts

03

Context is constructed, not inherited wholesale

WorkerTapeappend(entry_101)append(entry_102)append(correction_103)corrects 101; keeps 101[... 101, 102, 103]time

01

Order is trackable via monotonic IDs

02

Old facts cannot be modified in-place

03

Corrections are made by appending, not deleting

e1e2A1discoverye4A2implemente6e7preservedrebuild from here

01

Full history preserved before the anchor

02

Rebuild from anchor, skip full scans

03

Anchors can carry structured state payloads

DiscoveryhandoffImplementhandoffVerifystate: { phase: "implement", summary: "Discovery complete." source_ids: [128, 130, 131], owner: "agent" }

02

Attach minimum inherited state

03

Shift execution origin past the new anchor

State Contract Example

{ phase: "implement",
  summary: "Discovery complete.",
  next_steps: ["Run migration", "Integration tests"],
  source_ids: [128, 130, 131],
  owner: "agent" }

TapeAnchor GraphMemory Viewe101e102e103A1A2A3A4Viewassembledanchorsassemble

Why Complex

01

Anchors can form non-linear graphs, not a single timeline

02

Memory views assemble from multiple nodes, guided by policy

03

Graph structure requires explicit lineage and provenance

Task SchemaTask ConfigTask HarnessTask CreationTask DescriptionRuntime Source of TruthArtifactsdag node scopeAtask_initAnode_inite*entriesAnode_finAtask_checkpoint{...}dag.node*Atask_findag.node#0dag.node#1dag.node#2dag.node#3

Task as View Assembler

Here, Task is a special View Assembler: one task maps to one topic, assembling Task Schema, Task Config, Task Harness, and Task Description into a runtime-executable view; each DAG Node maps to one turn boundary inside that topic.

01schema

Task Schema

Declares task structure: node boundaries, dependencies, artifact contracts, and task presentation.

It answers which structure this task runs through.

02config

Task Config

Holds stable task-level configuration such as defaults, business rules, target environments, and external system constraints.

It answers which rules this task runs with.

03task

Task Description

Captures one task's business brief, scope, interpretation, delivery preference, and human confirmation.

It answers what this run should do.

04harness

Task Harness

Constrains executable agent behavior, for example with scripts/*.feature files that fix acceptance boundaries, run paths, and forbidden moves.

It answers what the agent must do and must not do.

05runtime

Runtime Source of Truth

After topic creation, runtime owns the authoritative projection; DAG anchors only record summaries, audit events, and lookup checkpoints.

Read runtime snapshots for state; read DAG anchors for boundary events.

01Define Factstape / append02Phase Boundariesanchor / handoff03Assembly Strategycompact / summary / fork-merge04Advanced Collaborationmemory / teams05Appendixobserve / eval / traina stable research framework