Drift table (2026-10-23)

Shared patterns are real. Shared implementations often are not. Domain overlap is small: pages/OCR vs speakers/audio.

TX pins cited in Transcribe docs: analysis 50a0ede…; settings notes also cite da742f9….

Naming pairs

Idea

TranscriptX

Transcribe

UI package

src/transcriptx/web/

src/transcribe/ui/

Nav registry

web/navigation.py (section="settings")

ui/navigation.py (section="system")

Workspace roots

PathSettings

RuntimePaths

Analyse launcher

Run Analysis

Analyse

Consume text

Transcript

Reading

Correction surface

Corrections Studio

Review (OCR lanes)

People/places

Speakers → Locations (Folium)

View → People & Places (st.map)

Tag rules

io/tag_validation.py

tagging/kernel.py + catalog store

Geocode cache

location_cache.json

data/cache/geocode.json

Doctor

DiagnosticsController

DoctorService + CorpusDoctorService

Analysis layout

core/analysis/<module>/

analysis/modules/<id>.py

Backup format

transcriptx.workspace-backup

transcribe.workspace-backup

Default port

8501

8510

Do not port (from analysis_module_porting.md)

interactions, pauses, transcript_quality, llm_speaker_summary, contagion, and the voice family (voice_features, voice_mismatch, voice_tension, voice_fingerprint, voice_charts_core, voice_contours, prosody_dashboard).

Deferred (not this programme): reinterpretations such as politeness, echoes, temporal_dynamics, momentum, and special-case ocr_quality.

Drift

Area

TX

Transcribe

Severity

Nav skeleton

primary / workflow / view / settings

Same groups; notebook pages

none on skeleton; large on page set

Settings tabs

Storage, Watcher, Speakers, Questions, Keywords, Corrections; Profiles and Dashboard Builder as pages

Configuration, Analysis, Detection, Tags, Prompts, Interface, Models, Profiles, Export

medium (intentional)

Tag catalog

String sanitize; no personal_corpus.tag-catalog

Full kernel + colours + Settings → Tags

large (docs claim a share; TX never got the kernel)

Analysis ids (core 25)

Present plus many more

Same 25 registered

none on ids

Analysis depth

Multi-file packages, sklearn/spaCy/viz

Mostly adaptations (TF-IDF, seed buckets, baseline clouds, optional extras)

large vs “ported” wording; keep for v1

Result envelope

TX pipeline objects

transcribe.analysis-result

medium (intentional)

Export

Transcript bundle / library-by-tag

transcribe.notebook, export-bundle, finetune

medium (intentional)

Backup ZIP

Role roots under transcripts/config/data

Role roots projects/data/inbox/exports

small (same pattern)

Doctor / Diagnostics

Diagnostics page

Diagnostics + notebook + corpus doctor

small

Places

Folium; default geocode on

st.map; opt-in Nominatim

medium (intentional)

Review vs Corrections

Transcript/speaker corrections

OCR lanes

large (different jobs)

First-run / sample

Fixtures + workflow docs; demo mode removed

Home CTAs; no samples/

large (Transcribe UX)

OCR / corpus import

Absent

Core product

none as a gap-to-port

Voice / speakers

Shipped

Out of scope

none (intentional)

PR CI

Smoke-focused; nightly owns contracts/coverage

Matrix 3.10–3.12 + blocking release-checks

medium (different shape; keep Transcribe’s PR gate)

Nightly / issue templates / Docker CI

Present

Missing (I6)

large

Release extras

clean_env_audit, image_pip_check, perf envelopes

Core I2 kit only

medium

Pre-commit

black + ruff fix + mypy

thinner critical ruff

small

Coverage floor

70%, omit web/

70%, omit ui/

none

Docs hosting

Pages + Sphinx + RTD + docs/workflows/

Pages + Sphinx + RTD; no workflow media

small

Runtime coupling

n/a

Must not import TX

none (policy held)

Transcribe-only (keep)

Page/notebook domain; OCR lifecycle; Prompt Hub; Detect; corpus ImportRun; British Analyse; port 8510; project OCR precedence over env; organisation tag catalog.

Doc authority for intentional divergence

settings_tx_alignment.md, places_tx_alignment.md, analysis_module_porting.md, analysis_visual_compare.md. Treat tag-catalog.md / INTEGRATION_SEAM.md “shared with TX” as planned copy-boundary.