Private
Public Access
0
0
Commit Graph

5010 Commits

Author SHA1 Message Date
ed 0d7293d59e conductor(track): complete twitter_threads_extraction_20260705 + TRACK_COMPLETION report [state=completed]
All 5 phases done, 34 tests passing, VC1-VC7 pass. Task 5.3 (live 8-URL smoke) + 5.6 (user manual verification) deferred to user (network/cookies + merge decision).
2026-07-05 17:53:42 -04:00
ed fe207c1e42 docs(twitter_threads): README — standalone usage + strategies + copy-to-another-repo
FR7/VC2: prerequisites (gallery-dl, cookies.txt, py3.11+), usage for all 3 stages (-m and bare-script), local-HTML fallback, output layout, Markdown schema, URL normalization, strategies A-D, copy-to-another-repo instructions.
2026-07-05 17:50:30 -04:00
ed ed86731701 feat(twitter_threads): thread_from_dict + download_media/render_markdown CLIs (end-to-end -m pipeline)
thread_from_dict (JSON wire boundary) round-trips thread_data.json; download_media/render_markdown gain argparse main() + __main__ so the plan Task 5.3 pipeline runs via -m; dual-import added so all modules run standalone or via -m (G5). Pipeline integration test (html->names->render) + CLI tests cover the glue without network. TDD: red -> green (4 pipeline + 29 regression = 33 passed).
2026-07-05 17:48:07 -04:00
ed 41656d6b7c conductor(plan): mark Phase 4 (fetch_thread.py) complete [06ff9299] 2026-07-05 17:36:37 -04:00
ed 06ff9299e2 feat(twitter_threads): fetch_thread.py — html.parser (local HTML) + gallery-dl subprocess (URL) + URL query-strip + CLI
fetch_thread_from_html parses the data-attr article contract via stdlib html.parser; _normalize_url strips ?s=20 quote-share suffix (spec FR2); fetch_thread_from_url wraps gallery-dl --dump-json (best-effort, manually smoke-tested); dual-import (absolute/relative) makes it runnable via -m AND as a bare script (VC6/G5); CLI writes thread_data.json. TDD: red(no module) -> green(7 fetch + 22 regression = 29 passed).
2026-07-05 17:36:03 -04:00
ed ea33a49f15 conductor(plan): mark Phase 3 (download_media.py) complete [f503eb5d] 2026-07-05 17:25:09 -04:00
ed f503eb5de3 feat(twitter_threads): download_media.py — stdlib urllib + idempotent + typed per-kind naming
media_names_for_post derives <post_id>_<kind><index>.<ext> (img/vid/gif, per-kind counters) from media_urls; download_media(thread, output_dir) -> Result[list[Path]] downloads via stdlib urlopen, idempotent skip when target exists with size>0, URLError -> Result.err(HttpError). Authorized HTTP-boundary mock tests. TDD: red(no module) -> green(6 media + 16 regression pass).
2026-07-05 17:24:45 -04:00
ed 36de54a9e0 conductor(plan): mark Phase 2 (render_markdown.py) complete [ef98f6d1] 2026-07-05 17:17:52 -04:00
ed ef98f6d1a1 feat(twitter_threads): Result[T] + render_markdown.py (YAML front-matter + per-post sections + media links)
Added standalone Result[T] (frozen+slots, ok/err classmethods, is_ok) to error_types.py per canonical AND-over-OR error_handling.md (not the video_analysis _Ok|_Err sum type). render_markdown renders YAML front-matter from root post, per-post ## sections with reply markers, quote blockquotes, and ./media/<name> links; media_names mapping keeps render decoupled from download_media. TDD: red (no Result) -> green (7 render + 9 types passed).
2026-07-05 17:17:18 -04:00
ed 0440be0288 conductor(plan): mark Phase 1 (scaffold + error types + dataclasses) complete [161d8da] 2026-07-05 17:08:31 -04:00
ed 161d8da882 feat(twitter_threads): scaffold package + error types + typed dataclasses
TIER-2 READ AGENTS.md, conductor/workflow.md, conductor/edit_workflow.md, conductor/tier2/githooks/forbidden-files.txt, conductor/tracks/tier2_leak_prevention_20260620/spec.md (archived -> read docs/reports/2026-06-15/TRACK_COMPLETION_tier2_leak_prevention_20260620.md), conductor/code_styleguides/data_oriented_design.md, conductor/code_styleguides/python.md, conductor/code_styleguides/type_aliases.md, conductor/code_styleguides/error_handling.md, conductor/product-guidelines.md (Core Value via aggregate_directives) before Phase 1 (scaffold + error_types + dataclasses).

scripts/twitter_threads/__init__.py (namespace docstring); error_types.py (ErrorInfo + make_error + PostMetrics/PostData/ThreadData, frozen+slots); tests/test_twitter_threads_types.py (9 contract tests).
2026-07-05 17:07:04 -04:00
ed 0908f8fa28 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).
2026-07-05 16:50:05 -04:00
ed 4c9fc99cd4 docs(chronology): switch to manual maintenance; delete generator scripts; archive review report
Deleted scripts/audit/generate_chronology.py + chronology_quality_gate.py
after repeated corruption incidents (auto-classifier drifted from
user intent, silently rewrote rows). chronology.md is now maintained
by hand: add a row at the top when a track ships/abandons/is archived.

Updated conductor/workflow.md §Chronology Maintenance and
conductor/tracks.md §Archiving a track to reflect manual maintenance.

Added 40 rows to conductor/chronology.md for the 2026-07-05 archive
batch, with archive-folder paths and deferral notes where applicable.

Removed 12 archived-track rows from conductor/tracks.md Active Tracks
table (rows 2, 3, 7c, 16, 17, 23b, 23c, 23d, 25, 26, 29, 29c) and
their track-detail anchors.

Wrote docs/reports/ARCHIVE_REVIEW_20260705.md: a categorized index
of unfinished work items from the archived tracks' state.toml files
that remain relevant to the codebase, with a ranked follow-up list.
2026-07-05 16:17:13 -04:00
ed 2f3a8283f9 archive: test patrch fixes and sandbox hardening 2026-07-05 15:56:33 -04:00
ed 78204ac392 archive: send result to send 2026-07-05 15:56:19 -04:00
ed 39fcf12a6b archive: post-module taxonomy de cruft 2026-07-05 15:56:10 -04:00
ed f7136c5fff archive: phase2_4_5 call site completion 2026-07-05 15:55:59 -04:00
ed 3493a95144 archive: cruft elimination 2026-07-05 15:55:41 -04:00
ed 5d060a477d archive: fable review 2026-07-05 15:55:30 -04:00
ed aacfb1ff56 archive: context preview fixes 2026-07-05 15:54:39 -04:00
ed f619e05021 archive public api migration 2026-07-05 15:54:28 -04:00
ed fe10892d48 archive: superpowers review tracks 2026-07-05 15:54:18 -04:00
ed 8c98a3bc42 archive: code path audit polish. 2026-07-05 15:53:43 -04:00
ed 1eac425287 archive: tier 2 leak prevention 2026-07-05 15:53:28 -04:00
ed eb5cc68b51 archive: agent directives consolidation 2026-07-05 15:53:17 -04:00
ed 01a12d6eaf archive: type alias unfuck 2026-07-05 15:53:03 -04:00
ed 3512708edc conductor(tracks): mark agent_directives_consolidation_20260705 as Completed (row 23d) 2026-07-05 15:21:36 -04:00
ed 8ab8202257 conductor(track): agent_directives_consolidation_20260705 state.toml finalized (current_phase=4, all tasks completed) 2026-07-05 15:21:26 -04:00
ed 4c3f989257 refactor(conductor/product-guidelines.md): thin-pointer §Data Structure Conventions to type_aliases.md
Per agent_directives_consolidation_20260705 §3.4.

The 14-line §Data Structure Conventions section (the 'names for shapes'
pattern intro + the 16-alias list + canonical reference) is replaced
with a 1-line pointer to conductor/code_styleguides/type_aliases.md,
the canonical home for the 10 TypeAlias definitions + 11 per-aggregate
dataclasses + 5-pattern decision tree.

Net: 14 lines reduced to 1 line of pointer. The type-registry
auto-generation note (docs/type_registry/) is preserved as unique
project information.

Phase 3.2, 3.3, 3.4 all complete in this single commit batch.
2026-07-05 15:20:16 -04:00
ed 8996a3c92d refactor(conductor/product-guidelines.md): thin-pointer §Data-Oriented Error Handling to error_handling.md
Per agent_directives_consolidation_20260705 §3.4.

The 30-line §Data-Oriented Error Handling section (key principles +
incremental rollout plan + audit-script enforcement) is replaced with
a 1-line pointer to conductor/code_styleguides/error_handling.md, the
canonical home for the Result[T] + NIL_T convention.

Net: 30 lines reduced to 1 line. Duplicate content removed; the
canonical styleguide remains the source of truth.
2026-07-05 15:19:50 -04:00
ed 8ac3385a56 refactor(conductor/product-guidelines.md): thin-pointer §AI-Optimized Compact Style Indentation + Newlines to python.md
Per agent_directives_consolidation_20260705 §3.4.

The 2 duplicate bullets (Indentation, Newlines) are replaced with a
1-line pointer to conductor/code_styleguides/python.md §1, the
canonical home for Python style. The 4 project-specific bullets
(Vertical Compaction, Region Blocks, Type Hinting, SDM) are
preserved — they are unique to this project.

Net: 6 lines reduced to 1 line of pointer + 4 preserved bullets.
2026-07-05 15:19:24 -04:00
ed 3a47dede4b refactor(conductor/edit_workflow.md): thin-pointer §9 to conductor/code_styleguides/python.md
Per agent_directives_consolidation_20260705 §3.3.

The 9-line §9 'No Diagnostic Noise in Production Code' section is
replaced with a 1-line pointer to the canonical home in
conductor/code_styleguides/python.md §AI-Agent Specific Conventions.

Net: 9 lines reduced to 1 line. Duplicate content removed; the
canonical styleguide remains the source of truth.
2026-07-05 15:18:01 -04:00
ed fa0ba73035 refactor(conductor/workflow.md): promote §Process Anti-Patterns to canonical home
Per agent_directives_consolidation_20260705 §3.2.

The 14-line abridged §Process Anti-Patterns section (1-line summaries per
pattern) is promoted to the full canonical home: each of the 8 anti-patterns
now has the full Symptom + Rule content matching what was previously in
AGENTS.md. The 9th item (Workspace-Path Drift Pattern) was already
present here and is preserved.

AGENTS.md §Process Anti-Patterns is now a thin index pointing here
(per the previous commit in Phase 1.3). The canonical home for the full
process anti-pattern content is now conductor/workflow.md.

Net: 14 lines expanded to 80 lines (canonical expansion). 9 items
with full Symptom + Rule content. The 8 anti-patterns are now
locally accessible from the operational workflow file where they're
most actionable.
2026-07-05 15:17:07 -04:00
ed e9ae8cc459 refactor(conductor/workflow.md): thin-pointer §Known Pitfalls to AGENTS.md
Per agent_directives_consolidation_20260705 §3.2.

The 25-line §Known Pitfalls section (the git restore/git checkout/git
reset hard ban with full rationale + correct non-destructive inspection
pattern) is replaced with a thin pointer to AGENTS.md §Critical Anti-Patterns,
the canonical project-wide home for HARD BANs.

Net: 25 lines reduced to 7 lines (72% reduction). The full content
remains in AGENTS.md where the 4 canonical HARD BANs are documented.
2026-07-05 15:16:06 -04:00
ed 3470629ef6 refactor(AGENTS.md): thin-index §Process Anti-Patterns to conductor/workflow.md
Per agent_directives_consolidation_20260705 §3.1.

The 8 anti-patterns (Deduction Loop, Report-Instead-of-Fix, Scope-Creep
Track-Doc, Inherited-Cruft, No Diagnostic Noise, Surrender, Verbose-Commit-
Message, Isolated Pass Verification Fallacy) are now 1-line summaries
with a pointer to conductor/workflow.md §Process Anti-Patterns, which
becomes the canonical home for these rules.

Net: 70 lines reduced to 13 lines (81% reduction). The full Symptom + Rule
content remains in conductor/workflow.md where it will be promoted to
canonical in Phase 2.2 of this track.
2026-07-05 15:15:13 -04:00
ed 8a560cc627 refactor(AGENTS.md): thin-index §Session-Learned Anti-Patterns to conductor/edit_workflow.md
Per agent_directives_consolidation_20260705 §3.1.

The 5 items (ALWAYS use proper edit tool, decorator-orphan pitfall,
ast.parse is not enough, git status trap, small edits beat big scripts)
are now 1-line pointers to conductor/edit_workflow.md, which is the
canonical home for edit-tool lessons-learned (per its §1, §6, §7).

Net: 30 lines reduced to 7 lines (76% reduction in section size).
Duplicate content removed; conductor/edit_workflow.md remains the
canonical source for these rules.
2026-07-05 15:14:13 -04:00
ed 2d2d88fb81 refactor(AGENTS.md): thin-index §Critical Anti-Patterns to canonical styleguides
Per agent_directives_consolidation_20260705 §3.1.

The 9 duplicated items (read full files, modify tech stack, skip TDD, skip
markers, batch commits, no comments, set_file_slice, git restore caveat)
are now 1-line summaries + pointers to the canonical homes:
- conductor/code_styleguides/python.md (LLM Default Anti-Patterns §17)
- conductor/code_styleguides/data_oriented_design.md §8.5 (Python
  Type Promotion Mandate)
- conductor/edit_workflow.md (the edit tool contract)
- conductor/workflow.md §Known Pitfalls + Skip-Marker Policy

The 4 canonical HARD BANs (git restore / git checkout / git reset;
git stash*; day estimates; opaque types) remain inline as they are the
project-wide rules with no single canonical home. Each HARD BAN now
points to its technical mandate for the full rationale.

Net effect: AGENTS.md §Critical Anti-Patterns reduced from 14-line
section with 13 mixed items to 19-line section with 4 HARD BANs + a thin
index. The duplicated content is now in the canonical styleguides where it
belongs; the 4 HARD BANs are deduplicated to their one proper home here.
2026-07-05 15:13:21 -04:00
ed 4e882e15fa conductor(tracks): register agent_directives_consolidation_20260705 in tracks.md (row 23d) 2026-07-05 15:12:02 -04:00
ed 48ddd15ca2 conductor(track): init agent_directives_consolidation_20260705 (spec + state) 2026-07-05 15:11:37 -04:00
ed 38430fd312 restore: re-add .opencode/ directory (OpenCode agent + command starters)
Restores the 20 tracked files deleted in commit f63769ac.
The user clarified that the .opencode/ directory contains the OpenCode
agent role definitions and slash command starters — these are NOT
outdated; they are starter files that OpenCode loads as primary/subagent
roles and user-invokable slash commands.

The .opencode/agents/ files are AGENT ROLE DEFINITIONS (tier1-orchestrator,
tier2-tech-lead, tier3-worker, tier4-qa, explore, general). OpenCode loads
these as primary/subagent roles.

The .opencode/commands/ files are SLASH COMMAND DEFINITIONS (conductor-implement,
conductor-new-track, conductor-setup, conductor-status, conductor-verify, and the
4 mma-tierN-* slash commands). OpenCode surfaces these as user-invokable commands.

These are NOT equivalent to .agents/skills/mma-*/SKILL.md (skill definitions
loaded on-demand via the Skill tool). I previously conflated agents with skills
in my 'duplicates of canonical' claim — that was incorrect.

Restoration method (per AGENTS.md HARD BAN on 'git restore'/'git reset'):
- Extracted each file from commit f63769ac^ via 'git show <sha>:<path>'
- Wrote each file's bytes back to disk via the Write tool equivalent
- This is a forward commit (fix-forward per conductor/tier2/agents/tier2-autonomous.md
  'timeline-is-immutable' principle); git history preserved.

f63769ac remains in history for forensics; this commit supersedes it.
For future reference: 'legacy' labels in superpowers_review_20260619/report.md §16.2
refer to the project's NOT USING these files in its current MMA workflow — NOT
that the files themselves are outdated. They remain starter templates for OpenCode.
2026-07-05 14:38:17 -04:00
ed 887589d1bc docs(specs): add directive preset system design + implementation plan 2026-07-05 14:36:33 -04:00
ed f63769ac1a cleanup: remove legacy .opencode/ directory (18 agent/command .md files + package.json + package-lock.json)
Per user directive 'review all the traditional aggregate directive markdown
prompts in the codebase tailored for agents and see if they have redundant
directives... lets do a clean pass on them' (2026-07-05).

REDUNDANT DIRECTIVES REMOVED:
- All 18 files in .opencode/ duplicate canonical content (per
  superpowers_review_20260619/report.md §16.2 'Legacy .opencode/ and
  .gemini/ directories' documented the directory as legacy).
- 10 agent files (.opencode/agents/*.md) duplicate .agents/skills/mma-*/
  SKILL.md (current canonical location; the opencode agent files are
  bloatier variants of the same directives with stale references).
- 8 command files (.opencode/commands/*.md) are legacy Gemini CLI slash
  commands; OpenCode does not use them.

CANONICAL LOCATIONS (UNTOUCHED):
- .agents/skills/mma-orchestrator/SKILL.md
- .agents/skills/mma-tier1-orchestrator/SKILL.md
- .agents/skills/mma-tier2-tech-lead/SKILL.md
- .agents/skills/mma-tier3-worker/SKILL.md
- .agents/skills/mma-tier4-qa/SKILL.md
- conductor/tier2/agents/tier2-autonomous.md (Tier 2 sandbox canonical)
- conductor/tier2/agents/tier2-autonomous.warm.md (Tier 2 sandbox warm)
- .opencode/node_modules/ was already gitignored (npm install artifact)

PRESERVED REDUNDANCIES (audit found, kept intentionally):
- AGENTS.md + conductor/workflow.md + .agents/skills/mma-tier2-tech-lead/
  SKILL.md + conductor/tier2/agents/tier2-autonomous.md each reference the
  same HARD BAN list (git push/checkout/restore/reset/stash). Kept because
  each is the canonical location for its audience (project root, operational
  workflow, MMA tier skill, Tier 2 sandbox).
- conductor/tier2/agents/tier2-autonomous.md (174 lines) is a SUPERSET of
  .opencode/agents/tier2-tech-lead.md (254 lines) with sandbox-specific
  operational contracts. Both are valid for their target audience.

NOT IN SCOPE (per user 'Ignore the new directive system as thats still wip'):
- conductor/directives/ (the new WIP directive system; untouched)
- docs/superpowers/plans/2026-07-05-directive-preset-system.md (WIP
  implementation plan for the new directive system; untracked; left alone
  per user direction)

VERIFICATION:
- All 20 tracked files in .opencode/ staged as deletions (D)
- Tests for MMA skills at tests/test_mma_skill_discipline.py still pass
- conductor/workflow.md Session Start Checklist unchanged
- .agents/skills/mma-*/SKILL.md files unchanged
2026-07-05 14:34:56 -04:00
ed ad8ba4d001 feat(tier2): update setup_tier2_clone_directives.ps1 default preset to tier2_autonomous.md 2026-07-05 14:34:27 -04:00
ed ef0ba85e7b cruft cleanup part 3 2026-07-05 14:33:46 -04:00
ed 053f28b633 refactor(tier2): dedup tier2-autonomous.warm.md — strip inline sections covered by directives 2026-07-05 14:24:23 -04:00
ed 7c02fd3625 docs(directives): mark current_baseline.md deprecated (retained as control group) 2026-07-05 14:23:30 -04:00
ed 6c94405e21 feat(directives): add 12 engagement presets (audit, fix_tests, implement_feature, refactor, new_script_tool, meta_tooling, directives_curation, documentation, media_analysis, ideation, tier2_autonomous) 2026-07-05 14:22:51 -04:00
ed 0c4a7621d4 feat(directives): add 15 engagement-specific directives + tags.toml entries 2026-07-05 14:17:51 -04:00
ed 9434e4c6e9 conductor(track): superpowers_review_apply_high_20260705 state.toml finalized (current_phase=3) 2026-07-05 14:17:21 -04:00
ed ee3eee6955 conductor(tracks): register superpowers_review_apply_high_20260705 as Completed 2026-07-05 14:17:00 -04:00