Technical Manuals

TECHNICAL MANUAL

2200 Studios Archive

Technical Manual — October 2026 · Tom Proctor

1Scope and audience

The 2200 Studios archive is a relational Airtable database that documents every verifiable recording event at one building, 2200 Bridgeway, Sausalito, across two operating identities: Record Plant Sausalito (1972 to roughly 1986) and The Plant Studios (roughly 1986 to 2008). It publishes at 2200studios.us. It is a public-interest project with one operator and no affiliation with the studio or 2200studios.com.

This manual documents how the base was built, how evidence is qualified before it becomes a record, how the schema grew from a flat Recordings list into nine core linked tables, and the governance that keeps automated and LLM-assisted work from corrupting it. The audience is technical peers: database, archive, and information-architecture practitioners.

Core numbers at a glance

MeasureValueAs of
Tables in base14 (9 core, 5 process or support)2026-10-03 live
Recordings fields482026-10-03 live
Recordings rows4552026-08-21 (last dated count)
Recordings rows, peak4952026-08-13, before duplicate and placeholder removal
Recordings rows, first build732026-05-20
Date span covered1972 to 2008Project scope

2Archive taxonomy

The unit of record is one discrete recording event at 2200 Bridgeway: a session, a show, or a broadcast. Nothing recorded elsewhere qualifies, even when it aired on a station tied to the building.

Record classes

ClassUnitTypical evidenceDate precision
Studio sessionA recording event or production credit in the roomRelease credits, liner notes, tape cards, client listsOften year only
KSAN broadcast (1973 to 1978)An aired in-studio performanceRaechel Donahue's handwritten schedule notebook, airchecks, archive listingsExact day
KFOG broadcast (1993 to 2002)An aired "KFOG Live from The Plant" performanceLive From The Archives liner notes, archive listings, the series producerExact day

The Type field carries six values: Live Broadcast, Studio Session, Interview, Rehearsal, Other, Mix Only. Studio Role (multi-select: Recorded, Mixed, Mastered, Overdubs, Rehearsal) states what the room did, since one album can carry more than one role.

Simulcasts. KWST-FM and WLIR carried Record Plant broadcasts alongside KSAN. A non-KSAN station tag does not by itself disqualify a row or make it a separate event.

The disambiguation problem. Most verification effort goes to proving a credit belongs to this building:

  • Three studios shared the Record Plant name: New York, Los Angeles, Sausalito. Credits often read "Record Plant" with no city. A Savoy Brown item labeled Record Plant 1975 proved to be the New York room on WLIR.
  • Sausalito was informally credited as San Francisco. Discogs lists the Bob Marley Talkin' Blues sessions as "Record Plant, San Francisco."
  • Sausalito had other rooms: Studio D, Harbour Sound, White Rabbit, and Tres Virgos nearby in San Rafael. A Sausalito credit is not by itself a 2200 Bridgeway credit.
  • The rebrand splits one building across two names. Records from 1985 to 1987 can read Record Plant, The Plant, or Plant Recording Studios.

The Studio Provenance field exists to state in plain language what happened at 2200 Bridgeway versus elsewhere. The Ownership Era select (Record Plant (Sausalito), The Plant Studios, Unknown) separates the two operating identities and drove the Phase 1 and Phase 2 split of the studio census.

3System architecture

Airtable is the sole source of truth and the only write path. Data flows in one direction to the public site, and nothing a visitor sees changes until a deliberate import runs.

  1. Airtable (base app9n3a39Mcn1sfWO). All archive data is edited here, by hand or through the Airtable API with field IDs.
  2. Importer. An "Import from Airtable" control in the site's /admin route upserts Recordings into Supabase, keyed on airtable_id. The mapping lives in src/lib/broadcasts.functions.ts.
  3. Supabase (table public.broadcasts). The read store for /archive, /rockbox (Record Plant Radio), and article pages.
  4. Site (React on Lovable, 2200studios.us). Renders from Supabase. Some KSAN list content was historically held in code files (src/data/ksanBroadcasts.ts, src/data/ksanNoAudio.ts), editable only through a build.

Importer properties that shape every workflow

  • Destructive and no-diff. It deletes any Supabase row with no matching Airtable record, and nulls any Supabase column without a matching Airtable field and mapping.
  • Order of work is fixed: Airtable field first, then importer mapping, then Supabase column. Reversing it loses data on the next import.
  • Mappings key off Airtable field-name strings. Renaming a mapped field writes NULL silently instead of erroring.
  • Airtable state and live-site state are reported separately. A confirmed Airtable write is not a visible change until Tom runs the import.

Field boundaries between internal and public

FieldAudienceRule
NotesInternal, plus a noindex drawerNever in indexed page content. Served on click from /api/notes/$slug, robots-disallowed. Lines starting PRIVATE: are filtered server-side.
Field SummaryPublicReader-safe prose, 600 to 750 characters as a ceiling, feeds public_summary
KSAN BlurbPublicList-page blurb, 25 to 45 words
Studio ProvenancePublicPlain statement of what happened at 2200 Bridgeway. Site computes a fallback (explicit cell, then Notes keyword inference, then type default) when empty
Date DisplayPublicRanges and year-only strings a date column cannot hold

Failure lessons from the publish path

  • The KSAN code file was a frozen snapshot that stopped tracking Airtable around July 2026. Every normalization pass edited a copy while the source moved underneath it. Found 2026-08-12.
  • A route marked "local verification only" in a build prompt still served publicly. There is no staging buffer. Anything built is treated as live.
  • A passing type check is not a deployed change. A corrected sentence still served old bytes at identical length. Live content is verified by fetching the page, and search-engine snippets of the site are never treated as evidence.

4Schema

The archive runs on nine core tables: eight that describe the archive and one that logs the work done on it. Recordings is the hub. Every other core table hangs off it through reciprocal link fields. Five more tables run intake, session state, and news, and are covered in sections 7, 9, and 11.

RecordingsArtistsPeopleTracksSourcesAlbumsRightsArticlesCleanup Runs
Recordings is the central hub. Cleanup Runs is a process table, shown with a dotted relationship.

Core schema: Recordings hub with eight linked tables. Dotted link = process table.

Cross-links among the spokes also exist: Artists to People (Members) and Albums, and Articles to Artists, People, and Sources.

The nine core tables (live read 2026-10-03)

TableTable IDOne row perPrimary fieldLinks to
RecordingstblNdouVvWgsmOFVXDiscrete recording event at 2200 BridgewayTitleAll core tables, Recording Leads, Session Handoff
ArtiststblLHVGMo8Q9VwWtAAct or band, the headlining creditNameRecordings, People (Members), Albums, Articles, News Items
PeopletblIcNEB2es8JN76vIndividual: musician, engineer, producer, broadcasterNameRecordings as Musician, Engineer, Producer (three separate links), Artists, Articles, News Items
TrackstblQblc6x3xI3oxHwSong within a recordingTrack TitleRecordings
Sourcestblun2DkVFpOyQ5D4Chain-of-custody item for a recordingSource NameRecordings, Articles
AlbumstblsKxbllOysyTyaRRelease tied to the studioNameRecordings, Artists
RightstblKIz868cdpUL4IVRights holdingRights HolderRecordings
ArticlestblnvoHKZ6vGgGbNiJournal article or research targetTitleRecordings, Artists, People, Sources, News Items
Cleanup RunstblcxVZ2OOrdfHVZjOne relational cleanup run on one RecordingNameRecordings

Design decisions in the core model

  • Sources and Rights are separate tables because provenance and rights do not always match. A Source records where a copy came from and whether it is reachable. A Rights row records who owns it. A commercial release is never treated as a rights determination.
  • People carries three link fields to Recordings (as Musician, as Engineer, as Producer) rather than one link plus a role column. Each mirrors a dedicated field on Recordings (Musicians, Engineer, Producer). The ambiguous auto-named reciprocals were renamed 2026-06-21 after their inverse mapping was confirmed through the schema API.
  • Studio Connection on People is kept apart from Bio Notes. Bio Notes holds general biography. Studio Connection holds what the person did at 2200 Bridgeway, which is the archive's original contribution. Affiliation Tier (House, Recurring, Visiting) sets bio depth and backfill order.
  • Tracks carries tape-card fields: Reel Number, Session Date per take, Speed (ips), Track Count. Track Count is diagnostic. A 2-track reel usually means a mix or reference copy, not a master.
  • Albums is distinct from Recordings. An album's Release Date and Artist describe the release. A Recording's date and Artist describe one session. Albums got a real schema 2026-06-21 after starting as a template stub.
  • Articles separates drafting from publication. Writing Status (renamed from Status 2026-07-16) is a workflow stage only. Live Article URL decides publication, and the Web Publication Status formula reads that field alone. An audit found 51 of 66 Articles marked Published in the workflow field while 9 were live.
  • Field IDs, not names, for every write. Names are mutable. IDs are not. One 2026-08-13 write confused Catalog Number with Date Display because both were addressed loosely, and had to be cleared and rewritten.

Controlled vocabularies on Recordings (live read 2026-10-03)

FieldValues
TypeLive Broadcast, Studio Session, Interview, Rehearsal, Other, Mix Only
Verification StatusVerified, From Primary Source, Unconfirmed, Needs Review, Conflicting Sources, Unconfirmed / Needs Review, Disproven
Census StatusDone, In Progress, Not Started, Revisit
Broadcast StationKSAN 95 FM, KFOG 104.5 FM, Other Radio, Not Broadcast, Unknown
Ownership EraRecord Plant (Sausalito), The Plant Studios, Unknown
Studio RoleRecorded, Mixed, Mastered, Overdubs, Rehearsal
Journal TierA-Article, B-Standard, C-Stub

Sources Type carries Radio Broadcast, Private Tape, Commercial Release, Archival Institution, Digital Transfer, Physical Document, Reference. Sources Access Status carries Public, Private, Licensed, Unknown. People Role(s) carries Musician, Engineer, Producer, Broadcaster, Other, Studio Staff, Author-Journalist, DJ, Archivist.

Recordings field groups (48 fields)

GroupFields
IdentityTitle, Type, Artist, Label, Catalog Number, Reel ID, Duration, Studio Room, Genre
DatesDate Recorded, Date Broadcast, Date Display
Provenance and evidenceStudio Provenance, Ownership Era, Studio Role, Broadcast Station, Donahue Intro, Notes, Source, db.etree.org URL, Media Files
VerificationVerification Status, Census Status, Census Date, Transcription Status
Audio and mediaRecording URL, Recording URL2, Spotify, Image URL, Cover Art URL, Rock Box
Public copyField Summary, KSAN Blurb, Summary (Field Summary) AI field
PublicationSite Article Link, Published to Site, Articles, Journal Tier, Journal Weight
RelationsMusicians, Engineer, Producer, Tracks, Album, Rights, Recording Leads, Cleanup Runs, Session Handoff

5Data qualification

A claim becomes a field value only after its source is ranked, its status assigned, and its uncertainty written down. Conflicts are held, never quietly resolved, and a negative search result is recorded as a finding.

5.1 Source tiers

Source reliability is ranked before status is assigned. Original documents and recordings outrank release databases. Release databases outrank aggregators and fan sites.

TierExamplesCan earn Verified alone?
PrimaryTape cards, session logs, the studio's 1990 to 1991 client list and 1993 client newsletter, Raechel Donahue's KSAN schedule notebook, the KFOG series producer's direct testimonyYes, as From Primary Source
A-tierDiscogs credits and liner notes, Wikipedia citing liner notes, AllMusic, Internet Archive item metadataYes, when the credit names Sausalito or the building
B-tierAggregators such as OurSausalito, fan sites, unsourced web listsNo. A single B-tier attribution never earns Verified
Reference onlysetlist.fm, MusicBrainz, grey-market release titlesSupports Notes and Tracks evidence, never decides a venue or date alone

Two rows carry explicit NOT A PLANT RECORDING findings because one B-tier source asserted a credit that Wikipedia, AllMusic, and every Discogs pressing contradict: SWV's It's About Time and Huey Lewis's "The Power of Love."

When a person who was in the room contradicts a document, the person is ranked by role. Jude Heller produced every KFOG Live from The Plant broadcast, so her 2026-08-17 testimony outranks setlist.fm, archive.org metadata, and release titles for that series. It disproved one row outright and resolved a duplicate date.

5.2 Verification Status

ValueMeaning
From Primary SourceConfirmed directly from an original document or recording
VerifiedConfirmed by a clear, credible A-tier source
UnconfirmedPlausible, not independently corroborated
Needs ReviewEvidence exists, a specific open question remains
Conflicting SourcesTwo credible sources disagree and are not reconciled
Unconfirmed / Needs ReviewTransitional value on a small number of rows
DisprovenEvidence shows the event did not happen at 2200 Bridgeway, or did not happen. Added 2026-08-22

Disproof and non-confirmation are kept distinct. SWV carries Disproven. Jackopierce and Melissa Etheridge 1997 sit at Needs Review and Unconfirmed, because the producer could not confirm them rather than ruling them out.

5.3 The CENSUS process

A census is a dated research pass over a defined set of rows. Each row gets a Census Status (Not Started, In Progress, Revisit, Done), a Census Date, and a census note in Notes. The note template:

CENSUS YYYY-MM-DD:
Source checked:
Evidence:
Studio role:
Uncertainty:
Next action:

The KSAN census ran first, against the notebook. The studio discography census followed in two phases by ownership era, Record Plant Sausalito first, The Plant Studios second, so each phase had a clean source set. Delete candidates were marked Needs Review in place rather than removed, preserving them for adjudication.

5.4 Date precision

  • January 1 is a placeholder. A date of January 1 means the source gives a year only. It is not a claim about January 1. On 2026-08-11, 298 of 486 Recordings carried one, 289 of them Studio Sessions, and no more precise date was hiding in Notes.
  • Broadcast dates are exact. They come from the notebook, station schedules, or dated KFOG listings.
  • Date Recorded and Date Broadcast are separate questions. About 20 KSAN rows once held the broadcast date in Date Recorded. Normalization ran per record with preview, never as a bulk copy, because some session and broadcast dates genuinely differ.
  • Ranges go in Date Display. The standing rule for ranges is precedence for conflicts, union for coverage. Inference-only windows stay out.
  • Year-in-title rows with no date are not filled with January 1. The 23 rows from the 2026-08-07 Katiana Giacona intake were held Unconfirmed until a month and day surface.

5.5 Conflict handling

Competing dates are reported with every source and the source that would settle them, then left unchanged.

  • Al Kooper KSAN, three dates. The row and Wolfgang's say 1974-10-23. A sound-archive operator says 1974-09-11. A grey-market release says 1974-12-30. The notebook is the arbiter, and the date has not changed.
  • Commander Cody, merge nearly run backwards. A pair looked like one event. The merge direction was caught before execution. The 1974 row proved correct and the public page carried the 1975 transcription error. Re-dating then invalidated the duplicate reasoning, so two events remain pending tape digitization.
  • Identity conflation. Raechel Donahue owns the schedule notebook. Tom Donahue was the DJ who introduced broadcasts on air. The Donahue Intro checkbox is set only where the source states his intro.

5.6 Retention of disproven records

A Recording is never deleted to resolve a disproven or conflated show (rule set 2026-08-19). The row is retitled with a DO NOT USE prefix, Studio Provenance is rewritten to state the finding, the evidence is written into Notes, and the public display switches (Rock Box, Published to Site) are turned off. Disproof is archive material, and the row is where it lives.

5.7 Negative results

When a search of every permitted audio host comes back empty, the row's Notes record the date and the hosts searched. Six rows carry this line from 2026-08-15. The Project State record lists them under Do Not Redo until 2026-11-15.

6Expansion method: from a flat list to nine tables

The base started as a single Recordings table whose facts lived in titles and Notes. Expansion moved those facts into linked tables one Recording at a time, through a fixed wave sequence, with every archive write previewed, approved, and read back.

6.1 Starting state

On 2026-05-20 the base held 73 Recordings drawn from three sources: the KSAN notebook, the site's Chapter 8 research, and stub rows from the 1990 to 1991 client list. Artist names, personnel, setlists, and sources were prose inside Title and Notes. The first structural decision was to keep research sources out of the Recordings table: a source document and a recording event share almost no fields, so mixing them bloats both. Recordings stayed narrow and publication-ready, and the companion tables were built around it.

The first population pass proved the model with data that was widely available and low risk: six Albums (Rumours, Songs in the Key of Life, Sports, Street Songs, A Place in the Sun, Centerfield) linked bidirectionally to their Recordings, plus Broadcast Station and Verification Status set across all 73 rows from their source class.

6.2 Growth of Recordings

Volume came from census passes, not from the relational buildout. The studio census added 119 records on 2026-06-04 alone, verified against a pre-existing deaddisc.com Sausalito discography and Discogs label page 304325. By 2026-06-05 the base held 478 rows, up from 104.

6.3 The Show Packet cleanup: how links were built

Each run takes one Recording, reads its full linked state (its Show Packet), and proposes link-table writes in a fixed order. Cleanup Runs logs every run. Certified 2026-07-01 after four tests.

  1. Wave 0, Show Packet read. Read the Recording and every linked record. Report what is linked, missing, prose-only, ready, or held.
  2. Wave 1, Article cleanup note. Append a cleanup note to the linked Article if approved. Never change Writing Status without approval.
  3. Wave 2, Sources. Create or link Sources. Preserve provenance warnings. No rights or access claims without support.
  4. Wave 3, Artist. Create one Artist only if no match exists. No inferred Active Years, Genre, or external IDs.
  5. Wave 4, People. Create People only from Recording-specific personnel evidence. Article-only personnel is held.
  6. Wave 5, Tracks. Create Tracks only from Recording-specific setlist evidence. No invented reel numbers, tape speed, order, composers, or durations.
  7. Wave 6, Albums and Rights. Default is HOLD. Both usually need a policy decision.
  8. Wave 7, Final integrity check. Read back the Recording and confirm every link, every hold, and the audio-field policy.
  9. Wave 8, Lovable prompt. Only on request.

Every wave follows the same pattern: read the live schema, confirm exact field names and select options, search for existing records before proposing new ones, sort candidates into High, Medium, and HOLD, show an exact patch preview, wait for approval, write only the approved patch, read back every affected record, and update the tracker.

Operating modes

ModeScopeArchive writes
Standard approval-gatedOne RecordingEach patch approved by Tom
Single-record auto-previewOne RecordingNone. Runs all read-only waves and stops at one consolidated approval packet
Single-Recording Autopilot, Low-Risk WritesOne Recording, invoked by name onlyPre-authorized for minimal Artist, minimal People, and Internet Archive Source creates or links. Everything else held
Batch triageMany RecordingsNone. Read-only queue building only, no tracker writes

Cleanup Runs is the only table with a standing write exception. Its Cleanup Status field (Not Started, Previewing, Awaiting Approval, Write Complete, Held, Complete, Error) and Current Wave field track state, and the Write Log is appended, never overwritten. The table's template Status field is deliberately unused.

6.4 Build log

DateChange
2026-09News Items table and Seed Priority formulas added to Artists and People
2026-08-26Disproven verification value confirmed live and applied
2026-08-22Project State table built. Session Handoff retired
2026-08-21ACTION-line protocol adopted. Six long-standing delete candidates executed, Recordings 461 to 455
2026-08-19Retention rule for disproven records. Reference report rebuilt from a live pull
2026-08-15No-sweep rule. Wolfgang's removed as an audio host. Session Handoff table built
2026-08-14Recording Leads table built. 30 placeholder rows migrated out, Recordings 491 to 461
2026-08-13First duplicate audit of studio sessions, four pairs merged. KSAN Blurb and Date Display fields added, importer extended
2026-08-12KSAN list normalized. Journal Tier added and all 91 KSAN rows tiered
2026-08-11Intake skill certified. Full-export methodology contract written
2026-07-16Articles Status renamed Writing Status. Live Article URL decides publication
2026-07-02Cleanup Runs tracker exception and low-risk autopilot adopted
2026-07-01Show Packet cleanup skill certified
2026-06-29Articles gains Related People, closing the last entity table without an Articles link
2026-06-21Albums given a real schema. People link fields renamed. Cover Art URL added. Field Summary purpose locked
2026-06-04Studio census Phase 1, 119 rows added
2026-05-20First build: 73 Recordings, Albums and Artists tables seeded

7Intake pipeline

New evidence enters through two doors. Thin or hypothesis-stage material goes to Recording Leads. Evidence strong enough to stand as an event goes through the intake skill, which creates one hub Recording per run after a mandatory duplicate check. The intake skill was certified 2026-08-11.

7.1 Recording Leads as quarantine

Recording Leads (tblMYFCuusKiQtkyt) holds year-only and hypothesis-stage material that has not crossed the verification threshold, so Recordings stays clean for export, the player, and the importer. Fields: Title, Artist Name, Year or Year Range, Label/Catalog Lead, Source Citation, Intake Date, Status, Notes, Linked Recording. Status runs New, Research Lead, Enriched, Ready to Promote.

The 2026-08-14 migration moved 30 rows: 15 from the 1990 to 1991 client list and 15 from the 1993 client newsletter. Three planning documents disagreed on scope (36, 50, 53 rows). A live read settled it at 30. A third batch of 23 rows was excluded after inspection showed every row named a specific, cross-verified release missing only a calendar date. Those are qualified records with a precision gap, not placeholders.

One behavior surprised the planning documents: deleting a Recordings row clears it from the Lead's Linked Recording field. The surviving provenance trail is a plain-text ORIGIN line in each Lead's Notes naming the source row ID and its old status.

7.2 The intake run

One lead per run. If several leads arrive together, the run asks which goes first and does not queue the rest.

  1. Evidence read. Extract only what the evidence states: performer, date, venue or station, title text, evidence type, location. Keep what the evidence says apart from what Tom says about it.
  2. Duplicate check, mandatory. Search Recordings by title, partial title, artist, Date Recorded, Date Broadcast, station, and venue text. Return exactly one verdict: DUPLICATE (run ends), POSSIBLE DUPLICATE (Tom rules), or NEW.
  3. Preview packet. Every proposed field cites its evidence. Fields with no evidence are listed as not set. No linked-table values, no external facts.
  4. Approval and write. Write exactly the approved fields to one new Recording.
  5. Read-back. Report every written field verbatim plus the new record ID. A mismatch stops the run.
  6. Handoff. Relational buildout belongs to a separate cleanup run.

Certification tests cover duplicate detection, packet quality, an approved write with read-back, the batch boundary, and trap recognition. The first certified writes were Box Set, The Black Labs, and Jackopierce.

7.3 Discovery: the archive.org harvest method

Artist-name search is structurally blind to much of the audio record. Many archive.org roio and folksoundomy items carry a bare date as the title and no creator field. The artist and venue appear only in the description or file names. One Widespread Panic broadcast was missed about five times for this reason.

The working query set uses archive.org advancedsearch:

venue:("Record Plant")
venue:("The Plant")
coverage:("Sausalito")
("Record Plant" AND Sausalito) AND mediatype:(audio)

Then each item's /metadata/ description is read rather than its title.

7.4 Known traps

Each of these is confirmed and recorded so no session re-derives it.

ItemTrap
savoy-brown-record-plant-new-york-city-1975Record Plant New York on WLIR, not Sausalito
jimmy-buffet-sausalito-record-plant-1974-ksanThe 1974-10-24 Jerry Jeff Walker band show, not the February solo session
Suzi Quatro MP&D reels 683A and 683BOld Waldorf 1979, a different venue
the-outlaws-the-record-plant-sausalito-ca-112276Labeled Sausalito, but matching sources place the same date and setlist at Record Plant Los Angeles. HOLD
Two David Crosby and Shawn Colvin itemsChecksum-identical copies of one broadcast
Search-engine snippets of 2200studios.usStale. One showed Savoy Brown as 1974 when the live page and Airtable both said 1975

A venue name in an archive.org title is a claim, not a confirmation.

8Write governance

The model does retrieval, cross-referencing, and preview generation. A human authorizes every state change. Each gate below was written after a specific failure, and the rules are encoded in skill files that load with the work.

8.1 Skill stack

SkillOwns
2200-core-contextProject identity, taxonomy, routing between skills, Project State startup rule, export contract
airtable-safetyLive-read rule, write approval, no-sweep rule, audio and thumbnail field policy, review queues
2200-recording-intakeOne-lead intake, duplicate gate, preview packet, hub Recording creation
2200-show-packet-cleanup-skillOne-Recording relational buildout through the wave sequence
2200-writing-voicePublic prose only. No database decisions
lovable-publishingSite build prompts and verification
2200-reference-reportDiff-based rebuild of the provenance and stations PDF

Each decision belongs to one skill. Rules are not copied across skills except as one-line boundary reminders. When two skills appear to conflict, work stops and Tom picks the winner. Any skill edit reports the skills affected and runs a regression test on the changed rule alone. Because a sandboxed copy of a skill resets between sessions, an edit there is never reported as done. Tom applies edits from complete replacement files, never from find-and-replace instructions against a file he cannot diff.

8.2 Live-read rule

Current counts, statuses, field values, record IDs, and publish state require a live read in the current session. Memory, old exports, prior chat, and stale summaries are not evidence. CSV exports are read-only snapshots and do not prove current state.

8.3 Write sequence

  1. Confirm the record ID by live read. Never write to an assumed ID.
  2. Confirm the target field by ID.
  3. Confirm the intended value and its valid select option.
  4. Get explicit approval. Discussion, review, and correction are not approval.
  5. Write only the approved patch.
  6. Read back every affected record. A write is closed when it is read-back verified, not when the call returns.
  7. On a transport error, read current state before any retry. A retry on an error that had in fact succeeded has duplicated work.

8.4 No-sweep rule

A defensible rule applied in bulk is still a bulk write. On 2026-08-14 a base-wide audio-URL sweep cleared non-permitted hosts from six rows. It enforced the policy correctly and still lost data: on four rows the Notes named free sources that commercial links had overwritten earlier, and three addresses could not be recovered.

The replacement sequence for any field-integrity cleanup:

  1. Find a compliant replacement value first.
  2. Swap it one record at a time, each previewed and approved.
  3. Only where no replacement exists, move the old value to Notes with a reason line.
  4. Never run step 3 before step 1.

A non-compliant value that identifies which performance a row means is worth more than an empty field.

8.5 Audio and image field policy

Recording URL and Recording URL2 are playable-audio fields, not citation fields. Permitted hosts are archive.org and youtube.com.

  • Excluded by rule: Discogs, MusicBrainz, AllMusic, Wikipedia, setlist.fm, release and article pages, Spotify, Apple Music, Amazon, Deezer, Vimeo.
  • Commercial uploads on permitted domains are excluded. An auto-generated YouTube Art Track playlist (identifier beginning OLAK5uy_) is treated as a store link.
  • Fan players without an embed endpoint are excluded. panicstream.com hosts a complete broadcast but serves it through a playlist shortcode with no oEmbed. An archive.org copy of the same source was found and used.
  • Wolfgang's was removed 2026-08-15. Shows are listed but no audio is reachable in any form. Four rows keep a wolfgangs.com URL by decision because both permitted hosts were searched to exhaustion and those rows are already filtered from the player.
  • Links are verified live by oEmbed and content-confirmed on playback where identity is in question. A link that resolves is not proof it plays the right performance.
  • Image follows audio. Thumbnails resolve from the same archive.org item or YouTube video. Both hosts auto-derive artwork, so an empty Image URL on such a row is correct, not a gap.
  • Spotify has its own field, used as a raw fallback only when neither audio field holds a recognized host.

A title links to audio in exports only when Rock Box is checked and Recording URL is populated, both read live.

8.6 Count before claiming

Three blank fields in a ten-row sample are three blank fields, not a base-wide pattern. Either count, or state that the count is unknown. When an instruction has two readings and one of them writes to Airtable, ask which before writing.

8.7 Certification

The intake and cleanup skills each carry a certification record and a test suite. A skill without a passing record may preview but not write. No mode at any level permits autonomous archive writes, batch writes, or writes outside the named low-risk fields. Adding any of those requires a new skill version, a change report, and new tests.

9Session state and continuity

Continuity now lives in one Airtable record that every session reads first and overwrites in place. It replaced four earlier handoff backends that each failed the same way: they grew, went stale, and were not read.

9.1 Failed backends

BackendActiveWhy it failed
Notion operating pageto 2026-08-15Cost money and was never referenced during build work. One nine-write session touched it zero times
START-NEXT-CODEX-SESSION.txtto 2026-08-03Went stale and stayed stale
Drive session-closeout filesdemotedUseful as a log, never as controlling state
Session Handoff table (tblDfjRQNKWxNkTyY)2026-08-15 to 2026-08-22One row per session accumulated narrative. Rows were left Open, breaking the one-open-row design. Retired after one week as expensive and unused

The Session Handoff table remains in the base for its history. Its durable content (the harvest method, the trap list, the exhausted-host list) was mined into skill text on 2026-08-26.

9.2 Project State design

Project State (tblomhREXXPrDipOQ) holds exactly one record, keyed by the sentinel STATE-CURRENT.

FieldConstraint
KeyFixed sentinel STATE-CURRENT
Next ActionOne sentence. The next session's first move
Decisions For TomMax 5 lines. Each answerable yes, no, or with a record ID
Do Not RedoMax 5 lines. Each carries the date it can be dropped
Updated, Updated ByDate, and Claude or ChatGPT
Over CapFormula. Flags when the three content fields pass 900 characters combined

Because the record lives in Airtable, it survives across tools. A Claude session and a ChatGPT session read the same state, which per-tool session memory cannot do.

9.3 Execution closure: the ACTION line

The single most common way a known defect stayed live was a finding written into Notes with no path to execution. On 2026-08-13, two of four duplicate pairs found in a full audit had been self-flagged as delete candidates ten weeks earlier, survivor named, with nothing done. A wrong-venue audio link served on the live site for two days after its resolution was written into Notes.

Since 2026-08-21 every finding that names an action carries a closing line:

ACTION YYYY-MM-DD: [verb] [record ID] — [exact action] (read-back confirmed)

A finding without an ACTION line is open and carries forward. A finding examined and left standing goes to Do Not Redo with its reason and drop date.

10Incidents and the rules they produced

Every standing rule in sections 5 to 9 traces to a specific failure. This log keeps the cause attached to the rule so a future maintainer can judge whether a rule still earns its cost.

DateIncidentRule produced
2026-08-21Six delete candidates from the 2026-06-04 census sat unexecuted for 11 weeksACTION line closes every finding. Open findings carry forward explicitly
2026-08-19A disproven KFOG row was nearly deleted, taking its research trail with itDisproven rows are retained, retitled, and switched off public display
2026-08-16A session treated three blank Image URLs in a ten-row sample as a base-wide gap and proposed a sweep. Empty Image URL on archive.org rows is correct behaviorCount before claiming. Ask which reading when one writes
2026-08-15Search-index snippet showed a Savoy Brown date one year off. Live page and Airtable agreedSnippets of the site are never evidence. Fetch the page
2026-08-15A Widespread Panic broadcast was missed about five times by artist-name searchVenue and coverage queries on archive.org, read metadata not titles
2026-08-14Bulk audio-URL sweep stripped six rows, three source addresses unrecoverableNo-sweep rule. Replace first, remove second, one record at a time
2026-08-14Hoodoo Rhythm Devils served wrong-venue audio for two days after the fix was written into NotesA finding is not an action
2026-08-14Planning documents claimed Airtable keeps a back-reference after a linked row is deleted. It clears itProvenance survives deletion only as plain text in Notes
2026-08-13Two of four duplicate pairs had been self-flagged ten weeks earlierDetection was never the bottleneck. Execution needs a closing loop
2026-08-13A write confused Catalog Number with Date DisplayWrites address fields by ID
2026-08-12KSAN list normalization stalled for months while editing a frozen code snapshotAirtable is the only write path. Code copies of data are retired
2026-08-12Two build prompts marked local-only shipped public routesNo staging buffer exists. Treat every build as live
2026-08-11Live broadcasts mistyped as Studio Session, missing from every station-filtered viewWhen a defect pattern appears once, audit the whole base for it
  1. Live Broadcast rows mistyped as Studio Session or Other, with no Broadcast Station, dropped from station views.
  2. KSAN broadcast dates stored in Date Recorded instead of Date Broadcast.
  3. Studio-session rows carrying their year in the title string with no date value.
  4. Placeholder aggregate rows standing in for real works.

A related schema hazard closed by 2026-10-03: Broadcast Station once carried two KFOG options, "KFOG" and "KFOG 104.5 FM", so a row tagged with the unused one would vanish from station views. The live vocabulary now holds only KFOG 104.5 FM.

11Known limits and open work

The archive states its weaknesses alongside its data. These are the limits a peer reviewer would want to know before relying on any figure.

11.1 Known limits

  • Date precision is uneven. Broadcast dates are exact. Most studio-session dates are year-only placeholders.
  • Hand-written provenance is sparse. On 2026-08-19, 63 of 459 rows carried an explicit Studio Provenance statement and 51 more had a Field Summary. The site fills the rest from structured fields, which is accurate but generic. Exports never recompute that site fallback, because reconstructing text from inaccessible site logic would be fabrication.
  • Full-table reads are approximate. The Airtable connector in use has no single-call export. Full pulls merge several full-text searches by record ID, which reached 458 of about 460 rows on 2026-08-19. A row with no searchable text is invisible to it. One such row, recuML6zLEnaEfWHW, is known and hard-coded into the report build. Checkbox and date fields are not indexed by search.
  • Current archive counts (October 2026 analysis). 454 total records, 452 published to the public archive. 394 are verified (355 Verified plus 39 From Primary Source), which is 87% of published. The rest: 37 unconfirmed, 18 needs review, 2 conflicting sources, 1 disproven, 1 blank status. 65 recording URLs are filled, 61 of them with playable audio streams. 38 journal articles are live.
  • Some shows have no streamable source. Five KFOG broadcasts exist only on out-of-print compilations: Los Lobos 1996-07-30, Big Head Todd 1997-01-31, John Wesley Harding 1996-04-03, Shawn Colvin 1996-09-10, Patti Rothberg 1996-06-05.
  • Coverage is bounded by survival. Tape cards remain in private hands, and some known reels are not digitized.

11.2 Support tables outside the nine

TableRole
Recording LeadsIntake quarantine (section 7.1)
Project StateSingle-record session state (section 9.2)
Session HandoffRetired 2026-08-22, kept for history
News Items (tbl8yPej1CVySdWT2)One row per news article about an archive person or act, found by a news sweep. Tom's Verdict field feeds Seed Priority on People and Artists. Never written in bulk and never touches Recordings

11.3 Open items from Project State (read 2026-10-03, updated 2026-09-29)

  • Next action: Tom re-runs the import, then the 191 pre-existing People get linked to the Articles that name them, merging and never overwriting existing links.
  • Decisions for Tom: whether five rows are Plant recordings at all (Train, Matters of the Heart, Marky Mark, Sonia Dada, Stabbing Westward), the Dinosaurs (Studio D) row, a Soul Provider delete flag, pre-1985 Plant Studios credits, and whether to keep or delete the blank row recuML6zLEnaEfWHW.
  • Pending GUI action: the AI field Summary (Field Summary) is marked for deletion by Tom's decision.

11.4 Other open items

  • The importer's field-name keying remains a silent-failure risk on any rename. A mapping keyed on field IDs would remove it.
  • The site's provenance fallback has a known regex bug that false-triggers on the bare word "tracks" in Notes.

Pending counts and verification

  • [ ] Recordings row counts are from the October 2026 analysis (454 total, 452 published). Older figures in this manual are dated.
  • [ ] Verification Status distribution is from the October 2026 analysis. No live distribution of Type or Ownership Era. A count table by value would strengthen sections 4 and 5.
  • [ ] Row counts for Artists, People, Tracks, Sources, Albums, Rights, Articles, and Cleanup Runs not pulled.
  • [ ] News Items creation date given as 2026-09, month only.
  • [ ] The provenance-fallback regex bug in section 11.4 was last confirmed unfixed on 2026-08-09. Current state unverified.
  • [ ] Section 6.1 credits the first-build sources as the KSAN notebook, Chapter 8 research, and the 1990 to 1991 client list, from a 2026-05-20 session. Confirm against Tom's recollection.

12Appendix: evidence log for this manual

This manual was assembled on 2026-10-03 from four kinds of source. Anything not listed as a live read is historical and carries the date it was last confirmed.

SourceWhat it supplied
Live Airtable read, list_tables_for_base, 2026-10-03All 14 tables, every field name and type, table and field descriptions
Live Airtable read, get_table_schema, 2026-10-03Select vocabularies for Type, Verification Status, Census Status, Broadcast Station, Ownership Era, Studio Role, Journal Tier, Cleanup Status, Current Wave, Leads Status, Sources Type and Access Status, People Role(s) and Affiliation Tier, the Journal Weight formula
Live Airtable read, Project State, 2026-10-03Section 11.3
Installed skill filesTaxonomy, intake and cleanup procedures, safety rules, traps, certification records
Appendix A, Sourcing, Verification, and Systems Method, 2026-08-17Disambiguation cases, research ladder, source handling, known limits
Dated project records and prior session transcripts, 2026-05-20 to 2026-09-29Build history, counts, incidents

+Examples

Savoy Brown: the wrong Record Plant

Disambiguation comes before attribution.

An item labeled “Record Plant 1975” proved to be the New York room on WLIR, not 2200 Bridgeway in Sausalito.

Al Kooper: three competing dates

Conflicts are held until the right source settles them.

The row, Wolfgang’s, a sound-archive operator, and a grey-market release pointed to three dates. The notebook remains the arbiter, so the date stayed unresolved.

The audio-URL sweep

A correct policy can still produce a destructive bulk write.

On 2026-08-14, a base-wide sweep enforced host policy correctly and still lost three unrecoverable source addresses.

Disproof is archive material

Disproven records are retained, documented, and removed from public display—not deleted.

Rows for SWV’s It’s About Time and Huey Lewis’s “The Power of Love” were disproven and retained with the evidence attached.