Files
ten31-database/start9/0.4/startos/versions/v0.1.0.53.ts
T
Keysat 49d384a0fb Seed the v5 thesis into the Architect Workshop (v0.1.0:53)
backend/thesis_seed.py builds the starting "living messaging source of truth"
from docs/thesis-seed-v5.md: a core line (throughline; the open Option A/B banner
as a competing variant group; the three pillars; the proof; voice rules), one line
per LP segment carrying that segment's angle, and the five segment definitions.

ensure_thesis_seed(conn) runs from init_db, seeding ONLY when the Workshop is empty
(no thesis lines) — idempotent and non-destructive, so it bootstraps once and never
overwrites partner edits. Everything lands draft/candidate; nothing is made canonical
(that stays the partners' dual-approval action, guardrail #4). Content is Ten31's own
messaging, not LP data.

Test: backend/test_thesis_seed.py runs init_db and asserts the core line, 5 segment
lines, the 2-member Option A/B variant group, 3 pillars, segment_cuts, and segment
defs, plus re-seed-is-a-no-op (11/11).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 15:19:44 -05:00

22 lines
1.1 KiB
TypeScript

import { VersionInfo } from '@start9labs/start-sdk'
// Seed the v5 thesis into the Architect's Thesis Workshop. On upgrade, if the
// Workshop is empty, it is populated once with the core line (throughline, the
// open Option A/B banner debate as competing variants, the three pillars, the
// proof, voice rules), one line per LP segment carrying that segment's angle, and
// the segment definitions. Everything lands as draft/candidate — nothing is made
// canonical (that stays the partners' dual-approval action). Idempotent: never
// overwrites partner edits. No schema migration.
export const v_0_1_0_53 = VersionInfo.of({
version: '0.1.0:53',
releaseNotes: {
en_US: [
'Seeds the v5 thesis into the Thesis Workshop so you and your partner can start',
'iterating immediately: the core line (throughline, the Option A/B banner as',
'competing options, three pillars, the proof) plus a line per LP segment with its',
'angle. Seeds once when the Workshop is empty and never overwrites your edits.',
].join(' '),
},
migrations: { up: async () => {}, down: async () => {} },
})