thesis: seed 5 Architect positioning framings into the Workshop (v0.1.0:58)

Saves the 2026-06-05 Architect positioning pass as competing CANDIDATE options
under the core line's positioning variant group, beside Option A/B: Convergence
(47/60), Access (40), Asymmetry (36), Scarcity/chokepoints (35), Freedom-tech (28),
each with its red-team weakness inline. One-time, additive, non-canonical
(guardrail #4); idempotent via an interaction_log sentinel so a partner-deleted
option is never resurrected. ensure_positioning_framings runs after the v5 seed.
Test: test_positioning_framings.py (count/candidacy/idempotency/no-resurrection/log).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Keysat
2026-06-05 19:40:25 -05:00
parent c898ad8530
commit 196f1f6c65
6 changed files with 201 additions and 4 deletions
+3 -2
View File
@@ -22,8 +22,9 @@ export const PACKAGE_TITLE = 'Ten31 Database'
// * 0.1.0:54 (unification polish: LinkedIn in grid inline contact editor)
// * 0.1.0:55 (Architect grounding boundary: redaction/re-hydration privacy gate)
// * 0.1.0:56 (Thesis Workshop redesign: edit/choose/delete + approve-as-current)
// * Current: 0.1.0:57 (redaction fix: magnitude regex no longer eats the word after an amount)
export const PACKAGE_VERSION = '0.1.0:57'
// * 0.1.0:57 (redaction fix: magnitude regex no longer eats the word after an amount)
// * Current: 0.1.0:58 (seed 5 Architect positioning framings into the Workshop as candidate options)
export const PACKAGE_VERSION = '0.1.0:58'
export const DATA_MOUNT_PATH = '/data'
export const WEB_PORT = 8080
+3 -2
View File
@@ -18,8 +18,9 @@ import { v_0_1_0_54 } from './v0.1.0.54'
import { v_0_1_0_55 } from './v0.1.0.55'
import { v_0_1_0_56 } from './v0.1.0.56'
import { v_0_1_0_57 } from './v0.1.0.57'
import { v_0_1_0_58 } from './v0.1.0.58'
export const versionGraph = VersionGraph.of({
current: v_0_1_0_57,
other: [v_0_1_0_39, v_0_1_0_40, v_0_1_0_41, v_0_1_0_42, v_0_1_0_43, v_0_1_0_44, v_0_1_0_45, v_0_1_0_46, v_0_1_0_47, v_0_1_0_48, v_0_1_0_49, v_0_1_0_50, v_0_1_0_51, v_0_1_0_52, v_0_1_0_53, v_0_1_0_54, v_0_1_0_55, v_0_1_0_56],
current: v_0_1_0_58,
other: [v_0_1_0_39, v_0_1_0_40, v_0_1_0_41, v_0_1_0_42, v_0_1_0_43, v_0_1_0_44, v_0_1_0_45, v_0_1_0_46, v_0_1_0_47, v_0_1_0_48, v_0_1_0_49, v_0_1_0_50, v_0_1_0_51, v_0_1_0_52, v_0_1_0_53, v_0_1_0_54, v_0_1_0_55, v_0_1_0_56, v_0_1_0_57],
})
+20
View File
@@ -0,0 +1,20 @@
import { VersionInfo } from '@start9labs/start-sdk'
// Saves the 2026-06-05 Architect positioning pass into the Thesis Workshop: five
// divergent framings of the core banner (Convergence, Access, Asymmetry, Scarcity,
// Freedom-tech), each scored and red-teamed, added as competing CANDIDATE options
// beside Option A/B so the partners can review and mark one up. One-time, additive,
// non-canonical (guardrail #4); idempotent via an interaction_log sentinel so a
// soft-deleted option is never resurrected. No schema migration.
export const v_0_1_0_58 = VersionInfo.of({
version: '0.1.0:58',
releaseNotes: {
en_US: [
'Thesis Workshop now starts with five Architect-drafted positioning options for the',
'core banner, each scored and pressure-tested, sitting beside the original Option A/B',
'for you and your partner to compare and pick from. They are drafts only; nothing is',
'made canonical without two admins signing off.',
].join(' '),
},
migrations: { up: async () => {}, down: async () => {} },
})