conductor(track): init twitter_threads_extraction_20260705 — standalone Twitter/X thread extraction tooling

Scripts + workflow for extracting Twitter/X posts and threads into
Markdown with associated media. Mirrors the scripts/video_analysis/
pattern. Standalone requirement: zero imports from src/, conductor/,
or scripts.video_analysis — copy-pasteable to another repo with only
gallery-dl as the external dep.

5 modules: __init__.py, error_types.py (Result[T, ErrorInfo] +
ThreadData/PostData typed dataclasses), fetch_thread.py (gallery-dl
subprocess for URLs + html.parser fallback for local HTML),
download_media.py (stdlib urllib, idempotent), render_markdown.py
(YAML front-matter + per-post sections + ./media/ links).

Reference project: C:\projects\forth\bootslop — the corpus feeds
bootslop's scripts and reference-generation pipeline. Acceptance
corpus: 8 threads (@NOTimothyLottes x6 + @VPCOMPRESSB x2) extracted
to tests/artifacts/twitter_threads_corpus/. The ?s=20 quote-share
suffix on the @VPCOMPRESSB URLs must be stripped by fetch_thread.py
before acquisition (added to FR2 as URL normalization).

5 phases / 23 tasks. 8 verification criteria (VC1-VC8). TDD red-first
on the pure-function modules (render_markdown, types, media naming).
This commit is contained in:
ed
2026-07-05 16:50:05 -04:00
parent 4c9fc99cd4
commit 0908f8fa28
6 changed files with 681 additions and 0 deletions
+2
View File
@@ -21,6 +21,7 @@ Tracks that are unblocked and ready to start. Ordered by **dependency** (blocked
| 4 | A | [MCP Architecture Refactor (Sub-MCP Extraction)](#track-mcp-architecture-refactor) | spec ✓, plan pending | (none) |
| 22b | A | [Meta-Tooling Workflow Review](#track-meta-tooling-workflow-review) | spec ✓, plan ✓, parked | (none) |
| 23 | A | [Intent-Based Scripting Languages Survey](#track-intent-dsl-survey) | spec ✓, plan pending | (none) |
| 30 | A | [Twitter/X Thread Extraction Tooling](#track-twitter-threads-extraction) | spec ✓, plan ✓, ready to start | (none) |
| 7 | — | [UI Polish (Five Issues)](#track-ui-polish-five-issues) | spec ✓, plan ✓, ready to start | (none) |
| 19 | — | [Context First Message Fix](#track-context-first-message-fix) | spec TBD | (none) |
@@ -30,6 +31,7 @@ Tracks that are unblocked and ready to start. Ordered by **dependency** (blocked
- **MCP Architecture Refactor** → `conductor/tracks/mcp_architecture_refactor_20260606/`
- **Meta-Tooling Workflow Review** → `conductor/tracks/meta_tooling_workflow_review_20260620/`
- **Intent-Based Scripting Languages Survey** → `conductor/tracks/intent_dsl_survey_20260612/`
- **Twitter/X Thread Extraction Tooling** → `conductor/tracks/twitter_threads_extraction_20260705/`
- **UI Polish (Five Issues)** → `conductor/tracks/` (see spec for details)
- **Context First Message Fix** → `conductor/tracks/context_first_message_fix_20260604/`