diff --git a/conductor/tracks/directive_hotswap_harness_20260627/metadata.json b/conductor/tracks/directive_hotswap_harness_20260627/metadata.json new file mode 100644 index 00000000..5418645e --- /dev/null +++ b/conductor/tracks/directive_hotswap_harness_20260627/metadata.json @@ -0,0 +1,108 @@ +{ + "track_id": "directive_hotswap_harness_20260627", + "name": "Directive Hot-Swap Harness (OpenCode Directive Presets)", + "status": "active", + "branch": "master", + "created": "2026-06-27", + "owner": "Tier 1 (initialized); implementation delegated to Tier 2/3.", + "blocked_by": [], + "blocks": ["directive_encoding_experiments (future; alternative v2+ variant authoring)", "manual_slop_directive_lab (future; GUI integration)"], + "scope": { + "new_files": [ + "conductor/directives/<48 directive directories>/v1.md (48 files)", + "conductor/directives/presets/current_baseline.md", + "docs/reports/TRACK_COMPLETION_directive_hotswap_harness_20260627.md" + ], + "modified_files": [ + ".opencode/agents/tier1-orchestrator.md (replace hardcoded reading list with warm with:)", + ".opencode/agents/tier2-tech-lead.md (same)", + ".opencode/agents/tier3-worker.md (same)", + ".opencode/agents/tier4-qa.md (same)", + "conductor/tier2/agents/tier2-autonomous.md (same)" + ], + "deleted_files": [] + }, + "estimated_effort": { + "method": "scope (per workflow.md Tier 1 Track Initialization Rules. NO day estimates.)", + "phase_1": "10 steps: harvest 48 directives from doc tree into conductor/directives/ with exact source file:line refs", + "phase_2": "8 steps: baseline preset + 5 role-prompt warm with: updates", + "phase_3": "4 steps: verification + end-of-track report" + }, + "verification_criteria": [ + "48 directive directories exist under conductor/directives/, each with a v1.md file", + "Each v1.md has a header annotating the source location (file:line) and why this iteration exists", + "conductor/directives/presets/current_baseline.md exists and lists all 48 directives", + "All 5 tier role prompts have a 'warm with: conductor/directives/presets/current_baseline.md' line", + "Non-directive reads (AGENTS.md, workflow.md, edit_workflow.md, forbidden-files.txt, guide_*.md) remain hardcoded in the role prompts", + "Original docs are NOT modified (conductor/directives/ is a parallel structure)", + "No scripts, no TOML, no build steps — markdown-only", + "docs/reports/TRACK_COMPLETION_directive_hotswap_harness_20260627.md exists" + ], + "regressions_and_pre_existing_failures": [], + "pre_existing_failures_remaining": [], + "deferred_to_followup_tracks": [ + { + "title": "Alternative encoding authoring (v2+ variants)", + "description": "Author v2_rationale_first.md, v3_before_after.md, v4_tabular.md etc. per directive. The actual experimentation.", + "track_status": "not yet initialized" + }, + { + "title": "Manual Slop Directive Lab (GUI integration)", + "description": "A Directive Lab panel in Manual Slop for virtualized directive selection + context aggregation.", + "track_status": "not yet initialized" + }, + { + "title": "Token-cost analysis tooling", + "description": "Measure token cost per directive variant. Compare compliance vs token cost.", + "track_status": "not yet initialized" + }, + { + "title": "Automated compliance testing", + "description": "Test harness to measure LLM compliance per encoding (does the LLM follow the directive?).", + "track_status": "not yet initialized" + }, + { + "title": "Video Analysis Campaign 2 (4 new videos)", + "description": "Separate campaign; follows the 3-pass pattern. May inform alternative encoding strategies.", + "track_status": "not yet initialized; separate track" + } + ], + "risk_register": [ + { + "id": "R1", + "description": "Harvest completeness: directives embedded in prose may be missed", + "likelihood": "medium", + "impact": "the baseline preset is incomplete; some directives are not swappable", + "mitigation": "systematic combing of the entire doc tree with grep; the plan's Step 1.1-1.10 cover every doc file identified in the spec's source list" + }, + { + "id": "R2", + "description": "Granularity ambiguity: some directives overlap (e.g., ban_dict_any + typed_dataclass_fields are two sides of the same coin)", + "likelihood": "medium", + "impact": "the directive count is inflated by overlapping directives; preset becomes verbose", + "mitigation": "the 48-directive list is the initial best-guess; granularity is resolved iteratively as the user experiments. Merging directives is a future preset edit, not a blocker." + }, + { + "id": "R3", + "description": "LLM doesn't follow the warm with: instruction reliably", + "likelihood": "low", + "impact": "the LLM doesn't read the preset or the variant files; directives are missing from context", + "mitigation": "the instruction is simple (read a file, read the files it lists) and uses the existing file-reading behavior. The Step 3.2 manual verification catches this." + }, + { + "id": "R4", + "description": "Role-prompt update breaks existing Tier 2 autonomous runs", + "likelihood": "low", + "impact": "Tier 2 starts reading a different set of files; behavior changes", + "mitigation": "the current_baseline preset lists the exact same directives that were hardcoded. The change is structural (where the list lives), not semantic (what the directives say)." + } + ], + "campaign_context": { + "campaign_name": "Directive Encoding Campaign (Campaign A)", + "track_1": "directive_hotswap_harness_20260627 (THIS; harvest + scaffold + baseline preset + role-prompt bootstrap)", + "track_2": "directive_encoding_experiments (future; v2+ variant authoring + preset experimentation)", + "track_3": "manual_slop_directive_lab (future; GUI integration)", + "sibling_campaign": "Video Analysis Campaign 2 (Campaign B; 4 new videos; separate track)", + "cross_campaign_relationship": "Intellectual cross-pollination; no hard dependency. Video insights may surface alternative encoding strategies. The harness design mirrors the video campaign's deobfuscation pattern (same content, different encoding)." + } +} \ No newline at end of file diff --git a/docs/superpowers/plans/2026-06-27-directive-hotswap-harness.md b/conductor/tracks/directive_hotswap_harness_20260627/plan.md similarity index 100% rename from docs/superpowers/plans/2026-06-27-directive-hotswap-harness.md rename to conductor/tracks/directive_hotswap_harness_20260627/plan.md diff --git a/docs/superpowers/specs/2026-06-27-directive-hotswap-harness-design.md b/conductor/tracks/directive_hotswap_harness_20260627/spec.md similarity index 100% rename from docs/superpowers/specs/2026-06-27-directive-hotswap-harness-design.md rename to conductor/tracks/directive_hotswap_harness_20260627/spec.md diff --git a/conductor/tracks/directive_hotswap_harness_20260627/state.toml b/conductor/tracks/directive_hotswap_harness_20260627/state.toml new file mode 100644 index 00000000..5fdd1906 --- /dev/null +++ b/conductor/tracks/directive_hotswap_harness_20260627/state.toml @@ -0,0 +1,68 @@ +# Track state for directive_hotswap_harness_20260627 +# Initialized by Tier 1 Orchestrator on 2026-06-27. +# Implementation delegated to Tier 2 (autonomous) or Tier 3 worker dispatch. +# This is Track 1 of Campaign A (Directive Encoding Campaign). + +[meta] +track_id = "directive_hotswap_harness_20260627" +name = "Directive Hot-Swap Harness (OpenCode Directive Presets)" +status = "active" +current_phase = 0 +last_updated = "2026-06-27" + +[blocked_by] +# None. Pure documentation/track-artifact work; no code changes, no tests, +# zero overlap with any running track. + +[blocks] +directive_encoding_experiments = "planned (future; v2+ variant authoring)" +manual_slop_directive_lab = "planned (future; GUI integration)" + +[phases] +phase_1 = { status = "pending", checkpointsha = "", name = "Directive Harvest (10 steps: 48 directives from doc tree into conductor/directives/)" } +phase_2 = { status = "pending", checkpointsha = "", name = "Baseline Preset + Role-Prompt Bootstrap (8 steps: preset + 5 role-prompt warm with: updates)" } +phase_3 = { status = "pending", checkpointsha = "", name = "Verification + End-of-Track (4 steps: dir structure verify + manual LLM verify + report + commit)" } + +[tasks] +# Phase 1: directive harvest +t1_1 = { status = "pending", commit_sha = "", description = "Harvest 17.1-17.7 banned patterns (7 directives: ban_dict_any, ban_any_type, ban_optional_returns, ban_hasattr_dispatch, ban_getattr_dispatch, ban_dict_get_on_known_fields, boundary_layer_exception)" } +t1_2 = { status = "pending", commit_sha = "", description = "Harvest 17.9 import/aliasing bans (3 directives: ban_local_imports, ban_prefix_aliasing, ban_repeated_from_dict)" } +t1_3 = { status = "pending", commit_sha = "", description = "Harvest error handling conventions (2 directives: result_error_pattern, nil_sentinel_pattern)" } +t1_4 = { status = "pending", commit_sha = "", description = "Harvest type/data-structure conventions (3 directives: typed_dataclass_fields, metadata_boundary_type, update boundary_layer_exception)" } +t1_5 = { status = "pending", commit_sha = "", description = "Harvest code style directives (5 directives: one_space_indent, no_comments_in_body, no_diagnostic_noise, type_hints_required, sdm_dependency_tags)" } +t1_6 = { status = "pending", commit_sha = "", description = "Harvest file/taxonomy conventions (3 directives: file_naming_convention, no_new_src_files_without_permission, large_files_are_fine)" } +t1_7 = { status = "pending", commit_sha = "", description = "Harvest process/workflow directives (10 directives: atomic_per_task_commits, tdd_red_green_required, ban_arbitrary_core_mocking, live_gui_poll_not_sleep, batch_verification_not_isolation, git_hard_bans, ban_day_estimates, no_output_filtering, prefer_targeted_tier_runs, mandatory_research_first)" } +t1_8 = { status = "pending", commit_sha = "", description = "Harvest process anti-patterns (6 directives: no_skip_markers_as_avoidance, deduction_loop_limit, report_instead_of_fix_ban, scope_creep_track_doc_ban, inherited_cruft_ask_first, verbose_commit_message_ban)" } +t1_9 = { status = "pending", commit_sha = "", description = "Harvest GUI/architecture directives (5 directives: imgui_scope_verification, modular_controller_pattern, ui_delegation_for_hot_reload, strict_state_management, comprehensive_logging)" } +t1_10 = { status = "pending", commit_sha = "", description = "Harvest feature-flag + RAG + cache + knowledge directives (4 directives: feature_flag_delete_to_turn_off, rag_six_rules, cache_stable_to_volatile, knowledge_harvest_pattern)" } +t1_11 = { status = "pending", commit_sha = "", description = "Commit the directive harvest (48 files)" } +# Phase 2: baseline preset + role-prompt bootstrap +t2_1 = { status = "pending", commit_sha = "", description = "Create conductor/directives/presets/current_baseline.md (48 directives listed)" } +t2_2 = { status = "pending", commit_sha = "", description = "Commit the baseline preset" } +t2_3 = { status = "pending", commit_sha = "", description = "Update .opencode/agents/tier1-orchestrator.md with warm with: bootstrap" } +t2_4 = { status = "pending", commit_sha = "", description = "Update .opencode/agents/tier2-tech-lead.md with warm with: bootstrap" } +t2_5 = { status = "pending", commit_sha = "", description = "Update .opencode/agents/tier3-worker.md with warm with: bootstrap" } +t2_6 = { status = "pending", commit_sha = "", description = "Update .opencode/agents/tier4-qa.md with warm with: bootstrap" } +t2_7 = { status = "pending", commit_sha = "", description = "Update conductor/tier2/agents/tier2-autonomous.md with warm with: bootstrap" } +t2_8 = { status = "pending", commit_sha = "", description = "Commit the 5 role-prompt updates" } +# Phase 3: verification + end-of-track +t3_1 = { status = "pending", commit_sha = "", description = "Verify directory structure (48 dirs, 48 v1.md files, preset exists, 5 role prompts have warm with:)" } +t3_2 = { status = "pending", commit_sha = "", description = "Manual verification: does the LLM follow the warm with: instruction?" } +t3_3 = { status = "pending", commit_sha = "", description = "Write docs/reports/TRACK_COMPLETION_directive_hotswap_harness_20260627.md" } +t3_4 = { status = "pending", commit_sha = "", description = "Commit the end-of-track report" } + +[verification] +phase_1_complete = false +phase_2_complete = false +phase_3_complete = false +directive_count = 48 +preset_exists = false +role_prompts_updated = false + +[campaign_context] +campaign_name = "Directive Encoding Campaign (Campaign A)" +track_1 = "directive_hotswap_harness_20260627 (THIS; harvest + scaffold + baseline preset + role-prompt bootstrap)" +track_2 = "directive_encoding_experiments (future; v2+ variant authoring + preset experimentation)" +track_3 = "manual_slop_directive_lab (future; GUI integration)" +sibling_campaign = "Video Analysis Campaign 2 (Campaign B; 4 new videos; separate track)" +cross_campaign_relationship = "Intellectual cross-pollination; no hard dependency." \ No newline at end of file