study · collaboration · 01

Silo to silo.
Two harnesses, opposite depths.

Every team building an AI product with coding agents runs two harnesses: one for the agents that build the software, one for the agents inside the product. We put ours beside The Collaborator's, a spoken-assessment app on Firebase, and found each side deep where the other is thin.

For Lossless
How to take our in-product harness to the next level, learning from theirs.
For The Collaborator
The small developer-harness pieces worth adopting from ours, sized for one repo.

ch · the layer map

Each side is deep where the other is thin

The Collaborator's developer-agents harness is thin and its in-product harness is deep. Lossless is the mirror image: deep developer harness, moderate in-product harness. So The Collaborator can easily adopt our developer-agents techniques, and we can learn from their in-product harness to take ours to the next level.

Lossless
The Collaborator
Developer-agents harnessHow coding agents help build the software.

Lossless · Developer-agentsDeep

Layered AGENTS.md / CLAUDE.md from anchor to app, 240 context-v files in augment-it alone, about 206 changelog entries, 11 loops, handoffs, a Stow-linked skills library, CI plus a deploy watchdog, and a Chroma corpus over past sessions.

Lossless teaches The Collaboratoreasy: the small pieces, each effort S

The Collaborator · Developer-agentsThin

No instruction file, CI or changelog; a frozen 210-entry click-approval allowlist; one dev skill. Two real strengths: signed-off specs that get post-ship updates, and commit bodies that work as a dated, measured record.

In-product-agents harnessHow the product's own agents generate its output.

Lossless · In-product-agentsModerate

An outline YAML contract with a schema, runtime AGENTS.md principles cited in code, 46 agents including fact checkers and citation validators, an artifact trail, and an in-app agent on skill-sourced prompts. Missing: replay, synthetic inputs, preflights, error bars.

The Collaborator teaches Losslessreal, not cheap: effort M to L

The Collaborator · In-product-agentsDeep

A rulebook with a single-source rule, a 2,163-line ID-stable findings ledger with a checked index, skeleton plus validator plus assembler, /exam-build ported into the product as /studio, an 18-profile simulator with error bars, five preflight and audit scripts, and a flight recorder.

Caveat one. The Collaborator adopting our dev techniques is easy because the pieces they need are the small ones: one instruction file, one CI job, a permission policy, a handoff habit. Our big pieces (pseudomonorepo rules, the skills library, the corpus) answer problems a single repo doesn't have, and they shouldn't adopt them.

Caveat two. Our learning from their product harness is real but not cheap. Replay and preflights are a few hundred lines each. A tiered synthetic-input harness is harder for memos than for exams: a "weak deal" is harder to fabricate convincingly than a weak candidate.

Exceptions run the other way in both layers. They are labelled in the recommendations.

ch · highlights

Highlights

for them · dev layer

Their dev gaps are cheap to close.

No repo-wide instruction file, no CI, no changelog, and an allowlist of about 210 click-approvals that lets an agent push and deploy without asking. Each fix is small for a single-app repo, and none needs our tree machinery.

for lossless · product layer

Our product gap is measurement.

memopop-orchestrator has real structure, but no run-to-run replay, no synthetic inputs in tiers, no preflight against the live model and no error bars. The Collaborator has all four.

convergence · product layer

Same ideas, reached apart.

Both assemble rather than generate, keep a runtime rulebook with addressable rules, write every run step to disk, route several providers behind one module, and gate generation on human sign-off.

thin ≠ careless · dev layer

Thin in structure, not in discipline.

Their design docs carry sign-off gates and dated "what shipped" sections, and their commits read like a measured lab notebook. What's missing is structure and discoverability.

  • Developer layer30 ledger rows
    • Shared 6
    • Similar 10
    • Different 11
    • Missing 3
    Dominated by different: our machinery for scale, which one repo doesn’t need.
  • In-product layer20 ledger rows
    • Shared 4
    • Similar 11
    • Different 1
    • Missing 4
    Dominated by similar; the missing rows mostly run one way, toward us.

ch · the harness maps

The harness maps, one per layer

Every artifact either side keeps, grouped by category and compared only within its layer. Lines join pairs, and each line names its bucket in words.

  • shared: solid amber
  • similar: dashed cyan
  • missing on one side: dashed plum
  • no counterpart

Developer-agents harness

Harness map: developer-agents layer Developer-agents harness. Lossless on the left, The Collaborator on the right, artifacts grouped by category. Each line joins a pair and is labelled shared, similar, or missing on their side. Three Lossless pieces (a root instruction file, CI and a changelog convention) have no counterpart on their side; the tree machinery (Stow-linked skills, the Chroma corpus, Spec Kit) has none either, and needs none. CLAUDE.md in layers · anchor to app · Lossless: developer harness (deep) CLAUDE.md in layers anchor to app No repo-wide CLAUDE.md · nothing at any commit · The Collaborator: developer harness (thin) No repo-wide CLAUDE.md nothing at any commit settings.local.json · two entries, tracked · Lossless: developer harness (deep) settings.local.json two entries, tracked .claude/settings.json · ~210 allow entries · The Collaborator: developer harness (thin) .claude/settings.json ~210 allow entries decile-hub-interface skill · real-data operating guide · Lossless: developer harness (deep) decile-hub-interface skill real-data operating guide verify skill · emulators, real routes · The Collaborator: developer harness (thin) verify skill emulators, real routes context-v specs + plans · roles, status frontmatter · Lossless: developer harness (deep) context-v specs + plans roles, status frontmatter docs/ design docs · signed off, flat · The Collaborator: developer harness (thin) docs/ design docs signed off, flat Handoffs + Pickup files · git state first · Lossless: developer harness (deep) Handoffs + Pickup files git state first Session opener TODOs · carried-over platform work · The Collaborator: developer harness (thin) Session opener TODOs carried-over platform work Issues + Tasks.md · separate pile · Lossless: developer harness (deep) Issues + Tasks.md separate pile TODO.md · stale since July · The Collaborator: developer harness (thin) TODO.md stale since July vitest, pytest · platform tests · Lossless: developer harness (deep) vitest, pytest platform tests functions/test · platform half · The Collaborator: developer harness (thin) functions/test platform half Browser-drive blueprint · e2e harness, prove scripts · Lossless: developer harness (deep) Browser-drive blueprint e2e harness, prove scripts Ad-hoc browser drives · scratchpad, not kept · The Collaborator: developer harness (thin) Ad-hoc browser drives scratchpad, not kept deploy-watch.yml · did the deploy happen? · Lossless: developer harness (deep) deploy-watch.yml did the deploy happen? check-deploy-drift.sh · is prod what I think? · The Collaborator: developer harness (thin) check-deploy-drift.sh is prod what I think? ci.yml · runs on every push · Lossless: developer harness (deep) ci.yml runs on every push No CI · gates run when remembered · The Collaborator: developer harness (thin) No CI gates run when remembered git-conventions · written convention · Lossless: developer harness (deep) git-conventions written convention Lab-notebook commits · measured, why-first · The Collaborator: developer harness (thin) Lab-notebook commits measured, why-first changelog-conventions · ~206 entries · Lossless: developer harness (deep) changelog-conventions ~206 entries No changelog · commit bodies only · The Collaborator: developer harness (thin) No changelog commit bodies only Stow skills, Chroma, Spec Kit · machinery for scale · Lossless: developer harness (deep) Stow skills, Chroma, Spec Kit machinery for scale missing on their side shared shared similar similar similar shared similar similar missing on their side shared missing on their side Lossless: developer harness (deep) The Collaborator: developer harness (thin) Legend Instructions Verification Context and memory Config and skills Git and history Tree machinery

Instructions

  • LosslessCLAUDE.md in layersanchor to appmissing on their sideThe CollaboratorNo repo-wide CLAUDE.mdnothing at any commit

Config and skills

  • Losslesssettings.local.jsontwo entries, trackedsharedThe Collaborator.claude/settings.json~210 allow entries
  • Losslessdecile-hub-interface skillreal-data operating guidesharedThe Collaboratorverify skillemulators, real routes

Context and memory

  • Losslesscontext-v specs + plansroles, status frontmattersimilarThe Collaboratordocs/ design docssigned off, flat
  • LosslessHandoffs + Pickup filesgit state firstsimilarThe CollaboratorSession opener TODOscarried-over platform work
  • LosslessIssues + Tasks.mdseparate pilesimilarThe CollaboratorTODO.mdstale since July

Verification

  • Losslessvitest, pytestplatform testssharedThe Collaboratorfunctions/testplatform half
  • LosslessBrowser-drive blueprinte2e harness, prove scriptssimilarThe CollaboratorAd-hoc browser drivesscratchpad, not kept
  • Losslessdeploy-watch.ymldid the deploy happen?similarThe Collaboratorcheck-deploy-drift.shis prod what I think?
  • Losslessci.ymlruns on every pushmissing on their sideThe CollaboratorNo CIgates run when remembered

Git and history

  • Losslessgit-conventionswritten conventionsharedThe CollaboratorLab-notebook commitsmeasured, why-first
  • Losslesschangelog-conventions~206 entriesmissing on their sideThe CollaboratorNo changelogcommit bodies only

Tree machinery

  • LosslessStow skills, Chroma, Spec Kitmachinery for scaleno counterpartThe Collaborator—
Lossless deep on the left, The Collaborator thin on the right. Three missing lines, all on their side. On a narrow screen the map stacks into pairs.

In-product-agents harness

Harness map: in-product-agents layer In-product-agents harness. Lossless on the left, The Collaborator on the right, artifacts grouped by category. Most pairs are similar. Three lines are missing on our side: a tiered simulator, run-to-run replay and live-model preflights. One is missing on their side: a source-of-truth rule between a coding-agent command and its in-product copy. src/agents, prompt-runner · prompts built in code · Lossless: in-product harness (moderate) src/agents, prompt-runner prompts built in code Runtime prompt builders · examiner, grader, handoff · The Collaborator: in-product harness (deep) Runtime prompt builders examiner, grader, handoff llm_provider.py · routing in code · Lossless: in-product harness (moderate) llm_provider.py routing in code llm.js routing · routing in runtime config · The Collaborator: in-product harness (deep) llm.js routing routing in runtime config Outline YAML + schema · the outline is the contract · Lossless: in-product harness (moderate) Outline YAML + schema the outline is the contract Skeleton JSON + validator · slots, invariants · The Collaborator: in-product harness (deep) Skeleton JSON + validator slots, invariants Orchestrator AGENTS.md · numbered runtime rules · Lossless: in-product harness (moderate) Orchestrator AGENTS.md numbered runtime rules Exam rulebook · single source of truth · The Collaborator: in-product harness (deep) Exam rulebook single source of truth data/, Sources.md · per-deal inputs · Lossless: in-product harness (moderate) data/, Sources.md per-deal inputs Intake sheets · [CHECK], [STILL OPEN] · The Collaborator: in-product harness (deep) Intake sheets [CHECK], [STILL OPEN] Claude Code memo skills · describe the stops · Lossless: in-product harness (moderate) Claude Code memo skills describe the stops /exam-build command · enforces the stops · The Collaborator: in-product harness (deep) /exam-build command enforces the stops Source approval, reviewers · human gates · Lossless: in-product harness (moderate) Source approval, reviewers human gates Sketch sign-off gates · two gates in product · The Collaborator: in-product harness (deep) Sketch sign-off gates two gates in product LangGraph pipeline · CLI and native app · Lossless: in-product harness (moderate) LangGraph pipeline CLI and native app /studio generator · the command, in product · The Collaborator: in-product harness (deep) /studio generator the command, in product Artifact trail · every step to disk · Lossless: in-product harness (moderate) Artifact trail every step to disk Flight recorder · every step to disk · The Collaborator: in-product harness (deep) Flight recorder every step to disk issue-resolution, reminders · 36 scattered files · Lossless: in-product harness (moderate) issue-resolution, reminders 36 scattered files EXAM_CRAFT.md ledger · 2,163 lines, ID-stable · The Collaborator: in-product harness (deep) EXAM_CRAFT.md ledger 2,163 lines, ID-stable evaluate_memo, fact checkers · is it true and good? · Lossless: in-product harness (moderate) evaluate_memo, fact checkers is it true and good? Rubric + re-ask audits · did it obey? · The Collaborator: in-product harness (deep) Rubric + re-ask audits did it obey? No tiered simulator · no synthetic deals · Lossless: in-product harness (moderate) No tiered simulator no synthetic deals /sim + 18 profiles · error bars, ρ vs tier · The Collaborator: in-product harness (deep) /sim + 18 profiles error bars, ρ vs tier No run-to-run replay · variance suppressed · Lossless: in-product harness (moderate) No run-to-run replay variance suppressed gate-replay · flip rate 2% (1/63) · The Collaborator: in-product harness (deep) gate-replay flip rate 2% (1/63) No live-model preflight · Lossless: in-product harness (moderate) No live-model preflight Preflights · persona + shipped prompt · The Collaborator: in-product harness (deep) Preflights persona + shipped prompt chat.ts slabs from SKILL.md · update together · Lossless: in-product harness (moderate) chat.ts slabs from SKILL.md update together No source-of-truth rule · /exam-build vs /studio · The Collaborator: in-product harness (deep) No source-of-truth rule /exam-build vs /studio shared shared similar similar similar similar similar similar shared similar similar missing on our side missing on our side missing on our side missing on their side Lossless: in-product harness (moderate) The Collaborator: in-product harness (deep) Legend Rules and inputs Evaluation Memory and records Runtime machinery Generation and gates Sync rule

Runtime machinery

  • Losslesssrc/agents, prompt-runnerprompts built in codesharedThe CollaboratorRuntime prompt buildersexaminer, grader, handoff
  • Losslessllm_provider.pyrouting in codesharedThe Collaboratorllm.js routingrouting in runtime config
  • LosslessOutline YAML + schemathe outline is the contractsimilarThe CollaboratorSkeleton JSON + validatorslots, invariants

Rules and inputs

  • LosslessOrchestrator AGENTS.mdnumbered runtime rulessimilarThe CollaboratorExam rulebooksingle source of truth
  • Losslessdata/, Sources.mdper-deal inputssimilarThe CollaboratorIntake sheets[CHECK], [STILL OPEN]

Generation and gates

  • LosslessClaude Code memo skillsdescribe the stopssimilarThe Collaborator/exam-build commandenforces the stops
  • LosslessSource approval, reviewershuman gatessimilarThe CollaboratorSketch sign-off gatestwo gates in product
  • LosslessLangGraph pipelineCLI and native appsimilarThe Collaborator/studio generatorthe command, in product

Memory and records

  • LosslessArtifact trailevery step to disksharedThe CollaboratorFlight recorderevery step to disk
  • Losslessissue-resolution, reminders36 scattered filessimilarThe CollaboratorEXAM_CRAFT.md ledger2,163 lines, ID-stable

Evaluation

  • Losslessevaluate_memo, fact checkersis it true and good?similarThe CollaboratorRubric + re-ask auditsdid it obey?
  • LosslessNo tiered simulatorno synthetic dealsmissing on our sideThe Collaborator/sim + 18 profileserror bars, ρ vs tier
  • LosslessNo run-to-run replayvariance suppressedmissing on our sideThe Collaboratorgate-replayflip rate 2% (1/63)
  • LosslessNo live-model preflightmissing on our sideThe CollaboratorPreflightspersona + shipped prompt

Sync rule

  • Losslesschat.ts slabs from SKILL.mdupdate togethermissing on their sideThe CollaboratorNo source-of-truth rule/exam-build vs /studio
Lossless moderate on the left, The Collaborator deep on the right. Three missing lines on our side, one on theirs. On a narrow screen the map stacks into pairs.

ch · the loops

The loops, per layer

Same four lanes in every diagram. The two layers cross in one place: on The Collaborator's side, a finding from the in-product loop often becomes a platform change in the developer loop.

Developer loops

The Collaborator. A design doc is signed off first, but the session starts cold: there is no instruction file. The agent implements, checks with the verify skill, node tests and an ad-hoc browser drive, and commits with a measured message. Memory is the git log, and sometimes a "what shipped" section.

Lossless. A signed-off spec, a plan per phase re-grounded on the code, an agent loaded with layered instructions and skills, then a proof ladder. A red proof stops it. A green one leads to a changelog entry, a commit with CI, a handoff, and a corpus the next session queries.

The Collaborator · developer loop
The Collaborator: developer loop The Collaborator's developer loop in four lanes. A signed-off design doc, a session that starts cold with no instruction file, implementation, the verify skill with node tests and an ad-hoc browser drive, a measured commit, then merge and deploy. Memory is the git log, and sometimes a what-shipped section in the design doc. 01 / Human 02 / Agent 03 / Checks 04 / Memory Idea Context Agent work Verify Commit and memory Design doc · signed off first · Human › Idea Design doc signed off first Merge + deploy · PR or local merge · Human › Commit and memory Merge + deploy PR or local merge Doc: what shipped · sometimes · Human › Commit and memory Doc: what shipped sometimes Session starts cold · no instruction file · Agent › Context Session starts cold no instruction file Implement · branch or main · Agent › Agent work Implement branch or main Commit · measured + trailer · Agent › Commit and memory Commit measured + trailer verify skill · node tests, ad-hoc drive · Checks › Verify verify skill node tests, ad-hoc drive git log · the dev memory · Memory › Commit and memory git log the dev memory Legend Instructions and context Agent work and checks Commit Memory Person or trigger
Lossless · developer loop
Lossless: developer loop The Lossless developer loop in the same four lanes. An exploration or issue becomes a signed-off spec and a plan per phase; the agent implements with layered instructions and skills. A red proof stops it; a green one leads to a changelog entry, a commit with CI, a handoff and submodule bump, and ingest into the Chroma corpus the next session queries. 01 / Human 02 / Agent 03 / Checks 04 / Memory Idea Context Agent work Verify Commit and memory Exploration or issue · in context-v · Human › Idea Exploration or issue in context-v Spec · status: Signed-Off · Human › Context Spec status: Signed-Off Stop, surface it · red proof · Human › Verify Stop, surface it red proof Plan per phase · re-grounded on code · Agent › Context Plan per phase re-grounded on code Implement · CLAUDE.md layers, skills · Agent › Agent work Implement CLAUDE.md layers, skills Commit + CI · git-conventions · Agent › Commit and memory Commit + CI git-conventions Handoff · + submodule bump · Agent › Commit and memory Handoff + submodule bump Proof green? · prove, tests, drive · Checks › Verify Proof green? prove, tests, drive Changelog · + status flip · Memory › Commit and memory Changelog + status flip Chroma corpus · next session queries · Memory › Commit and memory Chroma corpus next session queries ingest yes no Legend Instructions and context Agent work and checks Human stop Commit Memory Person or trigger

In-product loops

The Collaborator: generating an exam. Source text and notes go to an agent that reads the rulebook and the craft ledger. /exam-build, or its in-product twin /studio, drafts a sketch and stops for sign-off. The exam is assembled from a skeleton and validated, then run through simulated candidates with error bars and preflights. Every change must name the defect it fixes; findings go to the ledger. Then a human sits the exam.

Lossless: generating a memo. Deal inputs, an outline YAML and runtime rules, section writers working from a closed corpus, then citation and fact-checking agents. The memo is evaluated and scored once. An analyst revises or exports, and lessons land in issue-resolution files or an AGENTS.md rule. Replay, tiered inputs and error bars are the missing step.

The Collaborator · in-product loop
The Collaborator: in-product loop (exam generation) The Collaborator's in-product loop for generating an exam. Source text and notes go into a session opener; the agent reads the rulebook and craft ledger; the exam-build command or its in-product studio drafts a sketch and stops for human sign-off; the exam is assembled from a skeleton and validated, then run through a simulator with error bars and preflights. Findings go to the craft ledger; when it holds, a human sits the exam and the sitting is reviewed. 01 / Human 02 / Agent 03 / Checks 04 / Memory Input Rules Draft Check Review and learn Source text + notes · into session opener · Human › Input Source text + notes into session opener Sign-off stop · approve or revise · Human › Draft Sign-off stop approve or revise Human sitting · flightReview grades it · Human › Review and learn Human sitting flightReview grades it Read rulebook · + craft ledger · Agent › Rules Read rulebook + craft ledger /exam-build, /studio · drafts the sketch · Agent › Draft /exam-build, /studio drafts the sketch Assemble · skeleton + validator · Agent › Check Assemble skeleton + validator /sim + preflights · error bars · Checks › Check /sim + preflights error bars Craft ledger · defect named, measured · Memory › Review and learn Craft ledger defect named, measured approved stop log finding holds Legend Rules and inputs Generation and checks Human stop Memory Person or trigger
Lossless · in-product loop
Lossless: in-product loop (memo generation) The Lossless in-product loop for generating a memo. Deal inputs, an outline YAML and runtime rules, harvesting and section writing from a closed corpus, citation and fact-checking agents, then evaluation and scoring of one run. An analyst revises or exports. Lessons land in issue-resolution files or an AGENTS.md rule. Marked as missing: replay, tiered inputs and error bars. 01 / Human 02 / Agent 03 / Checks 04 / Memory Input Rules Draft Check Review and learn Deal inputs · data, Sources.md, deck · Human › Input Deal inputs data, Sources.md, deck Analyst satisfied? · revise or export · Human › Review and learn Analyst satisfied? revise or export Outline YAML · + runtime AGENTS.md · Agent › Rules Outline YAML + runtime AGENTS.md Harvest + write · closed corpus · Agent › Draft Harvest + write closed corpus Fact + citation · checking agents · Checks › Check Fact + citation checking agents evaluate, score · one run, one score · Checks › Review and learn evaluate, score one run, one score Missing here · replay, tiers, error bars · Checks › Review and learn Missing here replay, tiers, error bars issue-resolution · or an AGENTS.md rule · Memory › Review and learn issue-resolution or an AGENTS.md rule lessons Legend Rules and inputs Generation and checks Human stop Memory Person or trigger

ch · shape against harness

Shape against harness

Where dev instructions live follows where the boundaries are. One repo needs one entry point; a tree needs a rule for each level and a way to share across levels. The product harness sits inside one app on both sides.

Shape against harness: monolith and pseudomonorepo Left: the monolith. One repo with one app branches into its in-product exam chain (ledger, validator, simulator), developer work with no entry point, and a .claude folder with one skill, one command and an allowlist. Right: the pseudomonorepo. The anchor AGENTS.md leads to the ai-labs CLAUDE.md, then the augment-it and memopop-ai instruction files and the orchestrator, whose product harness (runtime AGENTS.md, outlines, agents) sits below it. A shared skills library is linked into both; context-v and changelog sit at every level and are ingested into a Chroma corpus. One repo, one app · one developer · Monolith: The Collaborator One repo, one app one developer Product: exam chain · ledger, validator, sim · Monolith: The Collaborator Product: exam chain ledger, validator, sim Dev: no entry point · sessions start cold · Monolith: The Collaborator Dev: no entry point sessions start cold .claude/ · skill, command, allowlist · Monolith: The Collaborator .claude/ skill, command, allowlist Anchor AGENTS.md · tree rules · Pseudomonorepo: Lossless Anchor AGENTS.md tree rules ai-labs CLAUDE.md · uv, MCP scope, corpus · Pseudomonorepo: Lossless ai-labs CLAUDE.md uv, MCP scope, corpus memopop-ai CLAUDE.md · workspace layout · Pseudomonorepo: Lossless memopop-ai CLAUDE.md workspace layout augment-it CLAUDE.md · + Spec Kit constitution · Pseudomonorepo: Lossless augment-it CLAUDE.md + Spec Kit constitution Shared skills library · Stow into the harness · Pseudomonorepo: Lossless Shared skills library Stow into the harness Orchestrator CLAUDE.md · + runtime AGENTS.md · Pseudomonorepo: Lossless Orchestrator CLAUDE.md + runtime AGENTS.md context-v + changelog · at every level · Pseudomonorepo: Lossless context-v + changelog at every level Chroma corpus · across the tree · Pseudomonorepo: Lossless Chroma corpus across the tree Product harness · AGENTS.md, outlines, agents · Pseudomonorepo: Lossless Product harness AGENTS.md, outlines, agents linked linked ingest Monolith: The Collaborator Pseudomonorepo: Lossless Legend Instructions In-product harness Context and memory Config, skills, commands Repo shape

A monolith. The Collaborator keeps one repo with one app: a static front end and an Express API on Firebase, in plain JavaScript. Its in-product harness is a deliberate chain; its developer work has no entry point.

A pseudomonorepo. augment-it is a pnpm workspace with 20 federated front ends; memopop-ai is a Bun workspace that mounts a Python and LangGraph orchestrator, which mounts firm-private submodules. Both sit under ai-labs, under the anchor monorepo. Most dev-layer differences follow from that shape.

ch · stack against harness

The stacks, and what they do to agents

The Collaborator uses no front-end framework at all: plain JavaScript on Firebase, with no build step. We run typed, federated, multi-language workspaces. Each stack shapes how much structure an agent gets for free, and how much machinery someone has to keep running.

The Collaboratoraugment-itmemopop-ai
ShapeOne repo, one apppnpm workspace: 20 front-end apps, 12 services, 7 packages, a shellBun workspace of 4 apps, plus a Python orchestrator as a submodule
Front endNo framework. About 20k lines of plain JS: 23 numbered scripts loaded in order, separate HTML pages per surfaceSvelte 5 built with rsbuild; apps load into the shell at runtime via Module FederationSvelteKit 2 (web app, and a Tauri 2 desktop app); Astro 5 site
Back endExpress 5 on Cloud Functions (Node 22), about 20k linesFastify services with WebSockets, NATS as the message bus, Docker ComposePython 3.11, LangGraph and LangChain, managed with uv
DataFirestore and Cloud Storage; rules deny all direct client accessSurrealDBFiles on disk, an artifact trail per run
TypesNoneTypeScript 6, zodpydantic; TypeScript in the apps
HostingFirebase Hosting and Functions; SDK from Google's CDN, with App CheckRailwayDesktop app plus a web app
ModelsOne router across Gemini, DeepSeek, OpenAI and Claude; the model is runtime config, so switching needs no redeployAnthropic SDK, Claude Agent SDK, ComposioAnthropic via LangChain, plus search and crawl providers
SpeechAzure and Google TTS, Google speech-to-text, Whispern/an/a

Where The Collaborator's stack wins

  • No build, no toolchain. Edit a file, reload. There's no bundler, type setup or federation manifest for an agent to break.
  • One deploy surface. One command, one region, one set of rules.
  • Locked-down data. Deny-all rules shrink the damage an agent's mistake can do.
  • Model routing as data. Swapping providers is a config edit, which makes their model comparisons cheap to run.
  • Cheap to sit idle. Everything scales to zero.

Where it costs them

  • No types, no imports. Twenty-three scripts share globals and depend on load order, so nothing tells an agent what depends on what. Their agents grep their way around.
  • A 12,897-line dead file still in the repo, which agents keep reading.
  • Locked to one vendor and region. Firestore and Functions are hard to leave.
  • No CI, so the tests run only when someone remembers.

Where our stacks win

  • Types and boundaries. TypeScript, zod, pydantic and components give an agent contracts to read instead of greps.
  • Swappable parts. A bus, a database and federated apps that ship on their own. Right for a multi-client platform.
  • Python for the pipeline. LangGraph fits a 46-agent memo pipeline better than route handlers would.

Where they cost us

  • Much more to keep running. Federation, NATS, SurrealDB, Railway and Docker. Much of our dev-harness machinery exists to manage them, which is the root of the overbuilding.
  • A slow first session. An agent has to learn the workspace, the federation contract and the bus before it can change a button.
  • Three languages across two monorepos, each with its own tests and tools.
  • No model routing as data. We'd need it to make replay and preflights cheap.

For The Collaborator: add types at the API boundary. JSDoc with // @ts-check is enough, no build step needed. Delete the dead script. Both give an agent structure without giving up the no-build simplicity.

For Lossless: make model routing runtime config. Their best stack idea, and a prerequisite for the in-product measurement we want to borrow. Then audit which moving parts earn their keep.

ch · three trade-offs

Database, architecture, failure

Three choices where both sides are right for their context, and where the reasons we give for ours only partly hold up against the evidence.

Firestore against SurrealDB

The Collaborator's data is document-shaped: sessions, transcripts and exams, each owned by a user. Ours is a graph of people, organizations and affiliations shared across clients. Each database fits its data.

Firestore

  • Fully managed, scales to zero, with a local emulator for tests.
  • Security in the database. Their rules deny all client access; every write goes through the API.
  • Agents know it well. Years of examples in training data.
  • But no joins or graph, queries limited by indexes, pay per read, and high lock-in.

SurrealDB: the multi-model benefits

  • One engine, one query language for documents and relationships. No second store to keep in sync.
  • A native graph. Affiliations are edges you traverse, not copied documents.
  • Room to grow: vector, full-text and live queries are built in.
  • Namespaces map onto clients, and it's open source, so lower lock-in.

SurrealDB: the multi-model costs

  • Mostly unrealized. We use two models, documents and graph edges. No vector indexes, full-text search or live queries; vector search runs in a separate Chroma store.
  • A broad surface agents know least. We needed a blueprint, a skill and a verification pass to compensate.
  • Less depth per model than a specialist database.
  • One engine, one failure domain. Its outage takes documents, graph and search down together.

The pattern: an unusual technology choice gets paid for in harness. The Collaborator's mainstream choices need almost no explaining to an agent. For us: either use the other models (moving vector search into SurrealDB would retire a store), or stop counting them as a reason for the choice.

One app against a monorepo of services

Our rationale: as code, collaborators and agents scale, boundaries let each agent load only the context it needs, and keep parallel work from overwriting itself.

Where the evidence supports it

  • Less context per task. An agent changing one app reads that app and its contract. In a monolith of shared globals, any change could touch anything, and agents end up searching by line number.
  • Fewer collisions between parallel agents.
  • Tests, ownership and deploys per unit.

Where it doesn't

  • Cross-boundary work gets harder. A change to a bus message or the federation contract needs context from several services, and errors move between them.
  • A slower first session for every fresh agent.
  • Overwrites are mostly a git problem. Branches, small commits and handoffs prevent them in any shape. The Collaborator's worst one came from 16 days of work outside git, not from being a monolith.
  • Every boundary needs its own instructions, contract and checks.

The nuance: what helps agents is clear module boundaries with explicit contracts. Microservices are one way to get them, and the most expensive. A modular monolith gets most of the benefit. For The Collaborator: ES modules with // @ts-check instead of 23 global scripts. For us: the services shape fits many collaborators and clients in parallel, as a deliberate cost rather than a default.

Failure isolation

Our second rationale: with microservices in containers, one part failing doesn't take the others down.

What isolation buys

  • A crash stays in its process. If an ingest service dies, the shell and other apps keep running.
  • Containers restart on their own, and a bad deploy of one service leaves the rest alone.
  • A federated app that fails to load leaves the others rendering.

Where it doesn't hold yet

  • A shared trunk. Every app connects to one workspace service; most services share one message bus and one database. Any of the three going down takes nearly everything with it.
  • Invisible partial failure. Our own issue log lists five different failures that all look the same to the user: a dead click.
  • Isolation needs the rest to become resilience: timeouts, fallbacks, health checks, a UI that says what's down.
  • More parts, more failures.

The Collaborator gets more than "monolith" suggests

  • Pages come from a static CDN, so they load when the API is down.
  • Seven separately deployed functions: one API plus six triggers and scheduled jobs, so a bug in integrity analysis can't stop an exam sitting.
  • Crashes stay in one instance.
  • The weak spot: one function behind every API route, so a bad deploy takes them all down. Splitting it by surface is configuration, not microservices.

For both sides: we should build the live/not-live indicators, add timeouts and fallbacks on the socket and bus, and plan for the trunk. The Collaborator should split the API function by surface.

ch · the four comparisons

Shared, similar, different, missing, by layer

Every artifact from both inventories sits in exactly one row, and no row pairs across layers: 30 rows in the developer layer, 20 in the in-product layer.

Shared

dev 6 of 30 · product 4 of 20

Both sides keep the same kind of artifact; the interest is in how differently each is written and kept up.

Developer layer

Permission files. Both sides commit a Claude Code settings file, and neither treats it as a policy. Theirs is about 210 allow entries saved from click-approvals, committed once on 2026-08-20, granting push, deploy and credential commands; the permission allowlist held credentials. Ours are tiny but tracked in git, though settings.local.json is meant to stay on one machine. They got that right: their local file stayed local. Neither side has a deny list or a hook.

Dev skills. Their verify skill is a lesson learned the hard way: --only functions alone leaves Firestore calls pointed at production. Our decile-hub-interface is the same kind of guide for a system where a careless agent touches real data. Theirs sits where Claude Code finds it with no setup; ours are found only once linked, and at the snapshot none of augment-it's or memopop's project skills was. On discoverability, their simple path wins.

Commit history is the closest match. 220 of their 263 non-merge commits carry a Claude trailer, with subjects that state findings (Fix the check, not the briefs: five of eight preflight failures were mine). They got lab-notebook commits without a written convention; we wrote git-conventions down so it holds across 27 repos.

In-product layer

Runtime prompt builders on both sides pin behaviour in comments next to the prompt. Their grader runs three passes and averages; our writer is pinned to temperature 0. Two answers to the same worry about variance: theirs measures it, ours suppresses it.

Model routing sits behind one module on both sides; they keep the choice in runtime config, we keep it in code. Run records converge: the flight recorder and our artifact trail both write every step to disk. Don't tune on reasoning alone. Get the flight-recorder data first.

Tests of the LLM machinery exist on both sides. Their fixtures README, exam-craft edits must never break platform tests, marks the boundary between the two layers better than anything on our side.

Ledger rows: shared
IDThe CollaboratorLossless
D-SH1.claude/settings.jsonai-labs and memopop-ai .claude/settings.local.json (both tracked in git)
D-SH2.claude/skills/verify/SKILL.mdaugment-it decile-hub-interface skill
D-SH3functions/test/ (platform half), fixtures README (dev facet)augment-it vitest (48 test files), test-all.sh; orchestrator tests (platform half)
D-SH4README.mdREADMEs, DEPLOYMENT.md, PROJECT-STRUCTURE.md, user guides
D-SH5functions/package.json, .eslintrc.js, firebase.jsonpackage.json, tsconfig*.json, pyproject.toml
D-SH6Agent-written commits with Claude trailersgit history under the git-conventions skill
P-SH1Runtime prompt builders (examiner, conversation, handoff, grader)Orchestrator src/agents/; augment-it prompt-runner, prompt-store, prompt-template manager
P-SH2functions/lib/llm.js, config.jsOrchestrator src/llm_provider.py
P-SH3Flight recorder (front end and server)Orchestrator artifact trail, "every step writes its output to file"
P-SH4functions/test/ (LLM-machinery half), fixtures README (product facet)Orchestrator tests (product half: preservation, thesis frames, prompt templates)

D- rows are the developer layer, P- rows the in-product layer.

Similar

dev 10 of 30 · product 11 of 20

Same job, different form: in the product layer, this is where most of the learning sits.

Developer layer

Specs. Their dev layer is not spec-less: Design doc for review. Nothing gets built until this is signed off. The architecture doc has dated "what shipped" sections, a "Start here in a fresh session" section and epistemic tags. The discipline matches ours; the difference is structure. Their docs/ is flat and unindexed, and nothing points an agent at it.

Handoffs, browser drives, to-do lists. Their session opener carries platform to-dos but exists for exam sessions. Their browser drives run from the scratchpad and are thrown away; we codified ours in a blueprint and committed proof scripts. Both sides let to-do lists rot.

In-product layer

Runtime rulebooks. Their rulebook names itself the single source of truth (revise this section, not individual exams). The orchestrator's AGENTS.md has numbered principles that the code cites. Ours carries a naming hazard: in the tree, AGENTS.md also means coding-agent instructions.

Craft ledgers. Their EXAM_CRAFT.md is one 2,163-line file: stable IDs, an evidence line per finding, a part for candidate principles, not yet distilled, an append-only build log, a checked index. Our product craft is spread across 36 issue-resolution and reminder files. Ours is easier to publish; theirs does the job a ledger exists for.

Assemble, don't generate, the strongest convergence. They copy structure from a skeleton and validate invariants that are silently violable. The orchestrator fixes section taxonomy in an outline YAML with a schema because drift made merging seven ChromaDB runs produce 26 best-of catalogs instead of 9.

Generation commands and human gates. /exam-build enforces its tool list and two stops (Do not deploy, commit, or import anything into the builder. The user does that.); our memo skills cover more situations but only describe their stops. Both sides gate generation on a human, at different points.

Grading the output. Their audits check whether the model did what it was told; our five checking agents and scorers check whether the output is true and good. What we lack is their next step: running the checks many times and reporting the spread.

Ledger rows: similar
IDThe CollaboratorLossless
D-SI1Session opener (dev facet: carried-over platform to-dos)context-v/handoffs/, Pickup-*.md reminders, prompts/
D-SI2A simulator action plancontext-v/plans/ (41 in augment-it, 11 in memopop-ai, 10 in the orchestrator)
D-SI3Two UI after-action summarieschangelog/ (109, 5, 6 and 86 entries)
D-SI4Four design docs in docs/ (dev facet)context-v/specs/ and explorations/
D-SI5Three feature references in docs/Blueprints, notes, patterns, decisions, refactors, reminders
D-SI6docs/record-test-checklist.mdA test-registry spec in augment-it
D-SI7Ad-hoc Puppeteer and Playwright drives in the scratchpadBrowser-drive blueprint, e2e/harness.mjs, prove and smoke scripts
D-SI8TODO.mdcontext-v/issues/ (55 in augment-it), a sprint hitlist, Tasks.md
D-SI9Notes/ (two .rtf files)context-v/extra/ (gitignored scratch)
D-SI10scripts/check-deploy-drift.shaugment-it deploy-watch.yml
P-SI1Exam rulebook (EXAM_TEMPLATE_PROMPT.md)Orchestrator AGENTS.md (runtime contract)
P-SI2EXAM_CRAFT.md findings ledgerOrchestrator issue-resolution/ (24), reminders/ (11)
P-SI3scripts/check-craft-index.jsgen_pipeline_reference.py --check
P-SI4Architecture doc (product facet: pipeline, model routing)PIPELINE-REFERENCE.md and its overlay
P-SI5Exam skeleton JSON, generated shapes, validatorOutline YAML, sections-schema.json, memo templates, style guide
P-SI6Intake template, three filled intake sheets, session opener (product facet)data/*.json, brand configs, Sources and corrections templates
P-SI7.claude/commands/exam-build.mdClaude Code memo skills (seven across the orchestrator and memopop-ai)
P-SI8Sketch schema with two sign-off gatesSource-approval loop; augment-it request and response reviewers
P-SI9/studio (assembler, route, page)LangGraph pipeline, CLI, memopop-native app
P-SI10A pedagogy reference docDomain skills: competitive-analysis, market-capture-analysis, timeline-scenario-analysis
P-SI11Rubric-gate and re-ask audits, review of real sittingsevaluate_memo, score_memo, scorecards; validator, fact-checker, citation and attribution agents

D- rows are the developer layer, P- rows the in-product layer.

Different

dev 11 of 30 · product 1 of 20

On one side only, where the absence fits the other side's context, so nobody should "fix" it.

Developer layer

Pseudomonorepo rules, the shared skills library, the Chroma corpus exist because of our shape: 27 projects, nested submodules, parallel sessions. In one repo with 280 commits, git log does what the corpus does. Spec Kit is different but a candidate overbuild on our side. Legacy per-harness files are leftovers, not a choice; their single place for instructions is the better state.

Deny-all database rules, on their side, force every write, an agent's included, through the API: a structural guardrail where we would use a prose rule.

In-product layer

Firm-private submodules fence each client's inputs and outputs in its own repo. Their customer content lives in the app repo, which is fine for one customer.

Ledger rows: different
IDThe CollaboratorLossless
D-DF1—Pseudomonorepo rules: branch tiers, the relocation hard stop, submodule bumps
D-DF2—Shared skills library, linked with GNU Stow
D-DF3—Chroma corpus over context, changelogs and past sessions
D-DF4—Spec Kit in augment-it
D-DF5—Design-system machinery and its drift scripts
D-DF6—Publishing frontmatter, splash sites, Pages workflows
D-DF7—Legacy per-harness files: WARP.md, project-instructions.md
D-DF8—MCP wiring: SurrealDB, Playwright, Chroma
D-DF9—The context-vigilance convention
D-DF10—augment-it dev loops (11)
D-DF11Deny-all Firestore and Storage rules—
P-DF1—Firm-private nested submodules under the orchestrator

D- rows are the developer layer, P- rows the in-product layer.

Missing

dev 3 of 30 · product 4 of 20

On one side only, where the other would benefit. In the dev layer every gap is theirs; in the product layer the gaps run mostly toward us.

Developer layer (all on their side)

A repo-wide instruction file. Nothing maps the API routes, libraries or the 23 ordered front-end scripts, and nothing says the old 12,897-line script is dead. With 220 agent-trailered commits, the cost of a cold start recurs. CI: their dev gates run only when remembered. A changelog, low priority: commit bodies are their only running dev memory, and one commit folded 16 days of work done "outside git".

In-product layer

On our side, the main lesson. A simulator plays 18 personas, from native-phd down to stalled, through a real exam and reports a matrix, the correlation with tier, a standard error per candidate and a resolution floor. A gate replay measures how often a decision flips on identical input (flip rate 2% (1/63)). Preflights check that a persona plays its brief and run the shipped prompt against the live model: A result here is a statement about production. None of this exists for memos.

On their side, an exception. /exam-build and /studio implement the same flow twice with no declared source of truth. augment-it wrote that rule at the point of use: the SKILL.md is the source of truth, this slab is its always-loaded condensation; update together.

Ledger rows: missing
IDThe CollaboratorLossless
D-MI1Missing: no CLAUDE.md or AGENTS.mdLayered instruction files, anchor to app
D-MI2Missing: no CIaugment-it ci.yml
D-MI3Missing: no changelogThe changelog-conventions skill
P-MI1/sim driver and 18 tiered profilesMissing
P-MI2scripts/gate-replay.jsMissing
P-MI3Persona and handoff preflightsMissing
P-MI4Missing: no declared source of truth between /exam-build and /studioaugment-it chat.ts slabs ("the SKILL.md is the source of truth"), runtime skills

D- rows are the developer layer, P- rows the in-product layer.

ch · insights and recommendations

Insights and recommendations

Each item is labelled by layer. Items marked exception run against the headline: the side that is thin in a layer still teaching something there.

For Lossless

Insights

  1. Product layer We verify the code around the model, not the model. Our checks ask whether a memo is true. Theirs also ask whether the system would say the same thing twice, and whether it ranks a known-strong input above a known-weak one.
  2. Product layer We suppress variance where they measure it. Pinning the writer to temperature 0 hides variance without telling us how large it is. Three averaged grading passes, plus a flip rate, tell them.
  3. Product layer Craft knowledge compounds better in one ledger. For bugs, one file per issue is right. For product craft, an ID-stable ledger with a “not yet distilled” tier and a per-run log compounds in a way 36 scattered files don’t.
  4. Product layer The convergences confirm our product bets. Assemble, don’t generate; a rulebook with addressable rules; run records on disk; human gates before generation. A silo with none of our conventions reached all four.
  5. Dev layerexception A command enforces; a loop doc only describes. Their best workflow is one invocable file with a tool list and hard stops. Our dev loops are better written, but an agent has to be told to read them.
  6. Dev layer We’re overbuilt where layers pile up without pruning. Spec Kit beside context-v, four instruction files in the orchestrator, diverged skill copies, undiscoverable project skills, stale paths. None is serious alone.
  7. Dev layer Committing settings.local.json is our slip, not theirs. They kept the local file local. We track it in two repos.
  8. Dev layer Our dev memory depends on infrastructure. The Chroma server was down for this very comparison. Markdown plus git log can’t go down.
  9. Both layers Both silos prototype product agents in the coding harness. /exam-build became /studio; our triage skill became a slab in augment-it’s in-app agent. On both sides it lacks a sync rule.

Recommendations, ranked by payoff

  1. Product layer Measure run-to-run reliability. Replay one section N times on frozen inputs; report verdict flip rate and score spread. Make evaluate_memo.py report a standard error. From their gate replay and reviewer error bars. effort M
  2. Product layer Preflight prompt changes against the live model. N passes before shipping, recorded as “a statement about production”. From their handoff preflight. effort S–M
  3. Product layer A craft ledger for memo writing. Stable finding IDs, an evidence line each, a “not yet distilled” tier, an append-only run log, an index checked in tests. From EXAM_CRAFT.md and its index check. effort M
  4. Product layer Synthetic inputs in tiers. Synthetic deals from clearly strong to clearly weak with expected score bands, each preflighted to read as its tier. Harder for memos than for exams. From their tiered profiles and profile preflight. effort L
  5. Product layer Obedience audits. Over a batch of runs, check agents did what their rules say, separately from whether the memo is good. From their rubric-gate and re-ask audits. effort S
  6. Product layer [CHECK] and [STILL OPEN] markers in run inputs. So the human sees what is unverified. From their intake template. effort S
  7. Both layersexception Name the graduation path from Claude Code skill to product agent. With a sync rule and a check. From /exam-build becoming /studio. effort M
  8. Dev layerexception Make our most-used loops invocable. A .claude/commands/ file with allowed-tools, a reading order, explicit stops and a “do not push or deploy” line. A product artifact of theirs teaching our dev layer. effort M
  9. Dev layerexception Epistemic tags and “start here” sections in specs, plus a written model-routing rule for coding sessions. From their measurement design and architecture doc. effort S
  10. Dev layerexception A pruning pass on our dev harness. Retire legacy harness files, untrack settings.local.json, reconcile diverged skills, link project skills, fix stale paths, decide Spec Kit’s future. Prompted by their one-place harness, by contrast. effort S–M

Recommendations 1–7 come from their product layer; 8–10 are dev-layer exceptions where their thinner setup still teaches us.

For The Collaborator

Insights

  1. Dev layer The harness around your best work is almost all defaults. No repo-wide instruction file, and a permission allowlist nobody curated, frozen since 2026-08-20, that lets an agent push and deploy without asking. The permission allowlist held credentials.
  2. Dev layer Two workflows, one front door. Exam work opens with a session opener and /exam-build. Platform work starts cold, which probably explains the exploratory greps in the allowlist.
  3. Dev layer Your dev discipline is real, just hard to find. Signed-off specs, post-ship sections and measured commits are all there. They need a map, not a new system.
  4. Dev layer The gates exist, but nothing makes them run. Tests, a validator, a craft-index check and a deploy-drift check all run only when remembered.
  5. Dev layer History has a hole, and stale context misleads. One commit folds 16 days of work done “outside git” into a single commit, and TODO.md contradicts the repo. A short end-of-session habit prevents both.
  6. Dev layer Your simplicity is an asset. One repo, plain JavaScript, deny-all database rules, model choice in runtime config. Take only the small pieces.
  7. Product layer Your product harness is ahead of ours, and of most we’ve seen. Measuring the instrument before the exam, giving the reviewer error bars, and logging human sittings that “could not have come from a matrix” is rigorous evaluation practice.
  8. Product layerexception The /exam-build to /studio port needs a source-of-truth rule. Two implementations of one flow will drift, and the template has already started.

Recommendations, ranked by payoff

  1. Dev layer Add a short root CLAUDE.md for platform work. 40 to 80 lines: what the app is, a map of the API routes and libraries and the ordered front-end scripts, a line saying the old script is dead, how to test and verify, the rule that must never break (no --only functions against production), a pointer to docs/ and the exam session opener, who deploys and commits. Worked example: memopop-ai/CLAUDE.md, minus the tree rules. effort S
  2. Dev layer Turn the allowlist into a policy. Rotate the credentials it held. Cut it to the 20 to 30 commands you’re glad to have run without asking; move push, deploy and credential commands to “ask”; deny curl against production. Honestly, we don’t have a good worked example; we plan to do this too. effort S
  3. Dev layer Run npm test in CI on every push. One workflow: Node 22, npm ci, npm test, plus the exam validator over shipped exams. Keep live-model preflights manual. Worked example: augment-it ci.yml and its “WHY THIS EXISTS” header. effort S
  4. Dev layer End every session with a handoff, platform sessions included. First line states git state, then where things stand and the next step. Fold TODO.md into it. Save any browser drive that proved something. Worked example: an augment-it Pickup handoff that opens “Nothing is uncommitted. Nothing is unpushed.” effort S
  5. Product layerexception Name the source of truth between /exam-build and /studio. One comment at the top of both saying which leads, then a small test in the style of your own craft-index check that fails when they disagree or the template falls behind. Worked example: augment-it chat.ts (“the SKILL.md is the source of truth … update together”). Ours has the rule but no check, so yours would be better. effort S

Five on purpose: four from our dev harness, one labelled exception from our product harness, each the smallest version that helps.

ch · method and sources

Method and sources

This is a collaboration study: one friend's codebase beside ours, read both ways, as described in the exploration Explore Collaborator Codebases for Insights: Comparative Highlights, including its section "Two harnesses, not one". It ran in three steps.

  1. Harness evidence. An inventory of every sign of how The Collaborator works with coding agents, read at one commit (last commit 2026-10-01; about 280 commits, 251 tracked files), each artifact tagged dev, product or both.
  2. Compare and contrast, by layer. The Lossless side inventoried across augment-it, memopop-ai, memopop-orchestrator, ai-labs and the anchor layer, then every artifact sorted into one bucket within its own layer. A first draft compared everything in one pool, which made depth in one layer look like parity in the other.
  3. This page, built only from those two steps, on 2026-10-03. No finding here is new.

Anonymized on purpose. The Collaborator is a friend's private project. This page names no repo, account, product or person on their side, and quoted paths are trimmed of anything that would identify it. Lossless projects are named freely.

Limits. The Chroma server was down during the comparison, so our corpus is described from its README, not queried. Client and firm-private submodules on our side were not read.

Diagrams. The harness maps, loops and shape diagram were authored as Archify sources from the comparison's Mermaid, validated, and re-themed with this site's tokens. The layer map is hand-built HTML.

↑ Back to contents · ← All studies