From ece3c349b922e65b17b34f1d2730f1747dd84ccd Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sun, 10 May 2026 12:56:50 -0400 Subject: [PATCH] docs(conductor): Initialize Phase 6 GenCpp UX Validation tracks --- conductor/tracks.md | 28 +++++++++++++++++++ .../index.md | 4 +++ .../metadata.json | 5 ++++ .../plan.md | 9 ++++++ .../spec.md | 9 ++++++ .../index.md | 4 +++ .../metadata.json | 5 ++++ .../plan.md | 9 ++++++ .../spec.md | 8 ++++++ .../gencpp_project_init_20260510/index.md | 4 +++ .../metadata.json | 5 ++++ .../gencpp_project_init_20260510/plan.md | 6 ++++ .../gencpp_project_init_20260510/spec.md | 9 ++++++ .../granular_ast_control_20260510/index.md | 4 +++ .../metadata.json | 5 ++++ .../granular_ast_control_20260510/plan.md | 9 ++++++ .../granular_ast_control_20260510/spec.md | 9 ++++++ .../manual_context_pruner_20260510/index.md | 4 +++ .../metadata.json | 5 ++++ .../manual_context_pruner_20260510/plan.md | 10 +++++++ .../manual_context_pruner_20260510/spec.md | 9 ++++++ 21 files changed, 160 insertions(+) create mode 100644 conductor/tracks/context_batch_operations_ux_20260510/index.md create mode 100644 conductor/tracks/context_batch_operations_ux_20260510/metadata.json create mode 100644 conductor/tracks/context_batch_operations_ux_20260510/plan.md create mode 100644 conductor/tracks/context_batch_operations_ux_20260510/spec.md create mode 100644 conductor/tracks/context_snapshotting_takes_20260510/index.md create mode 100644 conductor/tracks/context_snapshotting_takes_20260510/metadata.json create mode 100644 conductor/tracks/context_snapshotting_takes_20260510/plan.md create mode 100644 conductor/tracks/context_snapshotting_takes_20260510/spec.md create mode 100644 conductor/tracks/gencpp_project_init_20260510/index.md create mode 100644 conductor/tracks/gencpp_project_init_20260510/metadata.json create mode 100644 conductor/tracks/gencpp_project_init_20260510/plan.md create mode 100644 conductor/tracks/gencpp_project_init_20260510/spec.md create mode 100644 conductor/tracks/granular_ast_control_20260510/index.md create mode 100644 conductor/tracks/granular_ast_control_20260510/metadata.json create mode 100644 conductor/tracks/granular_ast_control_20260510/plan.md create mode 100644 conductor/tracks/granular_ast_control_20260510/spec.md create mode 100644 conductor/tracks/manual_context_pruner_20260510/index.md create mode 100644 conductor/tracks/manual_context_pruner_20260510/metadata.json create mode 100644 conductor/tracks/manual_context_pruner_20260510/plan.md create mode 100644 conductor/tracks/manual_context_pruner_20260510/spec.md diff --git a/conductor/tracks.md b/conductor/tracks.md index 59ea75c..cc37976 100644 --- a/conductor/tracks.md +++ b/conductor/tracks.md @@ -4,6 +4,34 @@ This file tracks all major tracks for the project. Each track has its own detail --- +## Phase 6: GenCpp UX Validation & "Take" Granularity + +*Initialized: 2026-05-10* + +### Context Control & Workflow Enhancements + +1. [ ] **Track: Granular AST Control (Signatures vs. Definitions)** + *Link: [./tracks/granular_ast_control_20260510/](./tracks/granular_ast_control_20260510/)* + *Goal: Introduce 'AST Signatures' and 'AST Definitions' states in the Context Panel for C/C++ files.* + +2. [ ] **Track: Context Snapshotting per "Take"** + *Link: [./tracks/context_snapshotting_takes_20260510/](./tracks/context_snapshotting_takes_20260510/)* + *Goal: Snapshot and visually restore the Context Panel state when switching between Takes.* + +3. [ ] **Track: Manual Context Pruner / Intercept Modal** + *Link: [./tracks/manual_context_pruner_20260510/](./tracks/manual_context_pruner_20260510/)* + *Goal: Introduce a "Review Context Before Send" modal for manual pruning of RAG chunks and summaries.* + +4. [ ] **Track: Context Batch Operations UX** + *Link: [./tracks/context_batch_operations_ux_20260510/](./tracks/context_batch_operations_ux_20260510/)* + *Goal: Add multi-select and batch state modification capabilities to the Context Panel for rapid wrangling.* + +5. [ ] **Track: GenCpp Project Initialization** + *Link: [./tracks/gencpp_project_init_20260510/](./tracks/gencpp_project_init_20260510/)* + *Goal: Configure manual_slop.toml in the gencpp repo to isolate conductor tracks, logs, and history.* + +--- + ## Phase 5: Codebase Curation *Initialized: 2026-05-07* diff --git a/conductor/tracks/context_batch_operations_ux_20260510/index.md b/conductor/tracks/context_batch_operations_ux_20260510/index.md new file mode 100644 index 0000000..210609d --- /dev/null +++ b/conductor/tracks/context_batch_operations_ux_20260510/index.md @@ -0,0 +1,4 @@ +# Track: Context Batch Operations UX + +- [Specification](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/context_batch_operations_ux_20260510/metadata.json b/conductor/tracks/context_batch_operations_ux_20260510/metadata.json new file mode 100644 index 0000000..bf9cc30 --- /dev/null +++ b/conductor/tracks/context_batch_operations_ux_20260510/metadata.json @@ -0,0 +1,5 @@ +{ + "id": "context_batch_operations_ux_20260510", + "title": "Context Batch Operations UX", + "status": "planned" +} \ No newline at end of file diff --git a/conductor/tracks/context_batch_operations_ux_20260510/plan.md b/conductor/tracks/context_batch_operations_ux_20260510/plan.md new file mode 100644 index 0000000..b733ecd --- /dev/null +++ b/conductor/tracks/context_batch_operations_ux_20260510/plan.md @@ -0,0 +1,9 @@ +# Implementation Plan: Context Batch Operations UX + +## Phase 1: Selection State +- [ ] Introduce a `selected_files` set in the `AppController` state. +- [ ] Update `_render_context_panel` in `src/gui_2.py` to support clicking/checkboxes to modify the selection state. + +## Phase 2: Batch Actions +- [ ] Add a 'Batch Actions' sub-menu or inline bar in the Context Panel. +- [ ] Implement controller methods to apply state changes to all items in `selected_files`. diff --git a/conductor/tracks/context_batch_operations_ux_20260510/spec.md b/conductor/tracks/context_batch_operations_ux_20260510/spec.md new file mode 100644 index 0000000..4b0068c --- /dev/null +++ b/conductor/tracks/context_batch_operations_ux_20260510/spec.md @@ -0,0 +1,9 @@ +# Specification: Context Batch Operations UX + +## Overview +Add multi-select and batch state modification capabilities to the Context Panel to allow rapid wrangling of large numbers of files (e.g., setting 20 C++ files to 'AST Signatures' at once). + +## Acceptance Criteria +- [ ] Context panel supports multi-select (Shift-click, Ctrl-click, or checkboxes). +- [ ] A batch operations context menu or action bar allows applying states (Force Full, Summary, AST Signatures, Remove) to all selected items. +- [ ] Selections persist correctly during UI refreshes. diff --git a/conductor/tracks/context_snapshotting_takes_20260510/index.md b/conductor/tracks/context_snapshotting_takes_20260510/index.md new file mode 100644 index 0000000..49970b4 --- /dev/null +++ b/conductor/tracks/context_snapshotting_takes_20260510/index.md @@ -0,0 +1,4 @@ +# Track: Context Snapshotting per "Take" + +- [Specification](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/context_snapshotting_takes_20260510/metadata.json b/conductor/tracks/context_snapshotting_takes_20260510/metadata.json new file mode 100644 index 0000000..f862692 --- /dev/null +++ b/conductor/tracks/context_snapshotting_takes_20260510/metadata.json @@ -0,0 +1,5 @@ +{ + "id": "context_snapshotting_takes_20260510", + "title": "Context Snapshotting per 'Take'", + "status": "planned" +} \ No newline at end of file diff --git a/conductor/tracks/context_snapshotting_takes_20260510/plan.md b/conductor/tracks/context_snapshotting_takes_20260510/plan.md new file mode 100644 index 0000000..03b1df1 --- /dev/null +++ b/conductor/tracks/context_snapshotting_takes_20260510/plan.md @@ -0,0 +1,9 @@ +# Implementation Plan: Context Snapshotting per "Take" + +## Phase 1: Snapshot Model +- [ ] Update `HistoryManager` and the `Take` model to store a `context_snapshot` (list of serialized file items). + +## Phase 2: Save and Restore +- [ ] Modify `AppController` to save the current context state when a new Take is created. +- [ ] Modify the "Switch Take" logic in `AppController` to restore the context state from the `context_snapshot`. +- [ ] Ensure UI automatically refreshes the Context Panel upon Take switch. diff --git a/conductor/tracks/context_snapshotting_takes_20260510/spec.md b/conductor/tracks/context_snapshotting_takes_20260510/spec.md new file mode 100644 index 0000000..332e95a --- /dev/null +++ b/conductor/tracks/context_snapshotting_takes_20260510/spec.md @@ -0,0 +1,8 @@ +# Specification: Context Snapshotting per "Take" + +## Overview +When branching a discussion using the "Takes" system, snapshot the exact state of the Context Panel (active files, their aggregation flags, and RAG status). When switching between Takes, the UI must visually restore this context state so the user knows exactly what the agent "saw" during that timeline branch. + +## Acceptance Criteria +- [ ] Modifying context (adding/removing files, changing AST/summary flags) creates a context delta tied to the active Take. +- [ ] Switching Takes updates the Context panel to reflect the file list and states exactly as they were in that timeline branch. diff --git a/conductor/tracks/gencpp_project_init_20260510/index.md b/conductor/tracks/gencpp_project_init_20260510/index.md new file mode 100644 index 0000000..d421c59 --- /dev/null +++ b/conductor/tracks/gencpp_project_init_20260510/index.md @@ -0,0 +1,4 @@ +# Track: GenCpp Project Initialization + +- [Specification](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/gencpp_project_init_20260510/metadata.json b/conductor/tracks/gencpp_project_init_20260510/metadata.json new file mode 100644 index 0000000..f84cad8 --- /dev/null +++ b/conductor/tracks/gencpp_project_init_20260510/metadata.json @@ -0,0 +1,5 @@ +{ + "id": "gencpp_project_init_20260510", + "title": "GenCpp Project Initialization", + "status": "planned" +} \ No newline at end of file diff --git a/conductor/tracks/gencpp_project_init_20260510/plan.md b/conductor/tracks/gencpp_project_init_20260510/plan.md new file mode 100644 index 0000000..a3b0545 --- /dev/null +++ b/conductor/tracks/gencpp_project_init_20260510/plan.md @@ -0,0 +1,6 @@ +# Implementation Plan: GenCpp Project Initialization + +## Phase 1: Configuration Template +- [ ] Draft the exact `manual_slop.toml` structure required. +- [ ] (Manual step) Place this file in `C:/projects/gencpp/`. +- [ ] Verify that opening Manual Slop and selecting the `gencpp` directory correctly initializes the isolated `.manual_slop` taxonomy. diff --git a/conductor/tracks/gencpp_project_init_20260510/spec.md b/conductor/tracks/gencpp_project_init_20260510/spec.md new file mode 100644 index 0000000..9d0d384 --- /dev/null +++ b/conductor/tracks/gencpp_project_init_20260510/spec.md @@ -0,0 +1,9 @@ +# Specification: GenCpp Project Initialization + +## Overview +Configure `manual_slop.toml` in the `gencpp` repository to isolate conductor tracks, logs, and history. This ensures Manual Slop operates cleanly as an external tooling layer for the `gencpp` project without polluting its root directory. + +## Acceptance Criteria +- [ ] A `manual_slop.toml` template exists that configures `[conductor].dir` to `.manual_slop/conductor`. +- [ ] Paths for logs and scripts are properly configured to stay within `.manual_slop/`. +- [ ] Instructions are provided on how to run Manual Slop targeting this configuration. diff --git a/conductor/tracks/granular_ast_control_20260510/index.md b/conductor/tracks/granular_ast_control_20260510/index.md new file mode 100644 index 0000000..0cc735b --- /dev/null +++ b/conductor/tracks/granular_ast_control_20260510/index.md @@ -0,0 +1,4 @@ +# Track: Granular AST Control + +- [Specification](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/granular_ast_control_20260510/metadata.json b/conductor/tracks/granular_ast_control_20260510/metadata.json new file mode 100644 index 0000000..c918712 --- /dev/null +++ b/conductor/tracks/granular_ast_control_20260510/metadata.json @@ -0,0 +1,5 @@ +{ + "id": "granular_ast_control_20260510", + "title": "Granular AST Control (Signatures vs. Definitions)", + "status": "planned" +} \ No newline at end of file diff --git a/conductor/tracks/granular_ast_control_20260510/plan.md b/conductor/tracks/granular_ast_control_20260510/plan.md new file mode 100644 index 0000000..3a5c9dd --- /dev/null +++ b/conductor/tracks/granular_ast_control_20260510/plan.md @@ -0,0 +1,9 @@ +# Implementation Plan: Granular AST Control + +## Phase 1: Models & UI State +- [ ] Update `FileItem` model in `src/models.py` to support the new AST states. +- [ ] Update `src/gui_2.py` Context Panel to render toggle buttons/dropdowns for the new states. + +## Phase 2: Aggregation Logic +- [ ] Modify `src/aggregate.py` to intercept files with these states and call the appropriate `tree-sitter` MCP tools. +- [ ] Ensure caching works for the new AST extraction states. diff --git a/conductor/tracks/granular_ast_control_20260510/spec.md b/conductor/tracks/granular_ast_control_20260510/spec.md new file mode 100644 index 0000000..2329e21 --- /dev/null +++ b/conductor/tracks/granular_ast_control_20260510/spec.md @@ -0,0 +1,9 @@ +# Specification: Granular AST Control (Signatures vs. Definitions) + +## Overview +Introduce 'AST Signatures' and 'AST Definitions' states in the Context Panel for C/C++ files to allow granular control over context exposure without blowing up token limits. + +## Acceptance Criteria +- [ ] Context panel file items support two new states: `AST Signatures` and `AST Definitions`. +- [ ] `aggregate.py` respects these states by invoking the `ts_c_get_skeleton` / `ts_cpp_get_skeleton` tools accordingly. +- [ ] Visual indicators in the UI clearly show the current aggregation state of each file. diff --git a/conductor/tracks/manual_context_pruner_20260510/index.md b/conductor/tracks/manual_context_pruner_20260510/index.md new file mode 100644 index 0000000..45531d5 --- /dev/null +++ b/conductor/tracks/manual_context_pruner_20260510/index.md @@ -0,0 +1,4 @@ +# Track: Manual Context Pruner / Intercept Modal + +- [Specification](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/manual_context_pruner_20260510/metadata.json b/conductor/tracks/manual_context_pruner_20260510/metadata.json new file mode 100644 index 0000000..295a8da --- /dev/null +++ b/conductor/tracks/manual_context_pruner_20260510/metadata.json @@ -0,0 +1,5 @@ +{ + "id": "manual_context_pruner_20260510", + "title": "Manual Context Pruner / Intercept Modal", + "status": "planned" +} \ No newline at end of file diff --git a/conductor/tracks/manual_context_pruner_20260510/plan.md b/conductor/tracks/manual_context_pruner_20260510/plan.md new file mode 100644 index 0000000..124592e --- /dev/null +++ b/conductor/tracks/manual_context_pruner_20260510/plan.md @@ -0,0 +1,10 @@ +# Implementation Plan: Manual Context Pruner + +## Phase 1: Aggregation Intercept +- [ ] Add `review_context_before_send` boolean flag to `AppController`. +- [ ] Update the `generate` workflow in `src/app_controller.py` to pause and trigger the UI modal if the flag is true. + +## Phase 2: UI Modal +- [ ] Add `_render_context_pruner_modal` in `src/gui_2.py`. +- [ ] The modal must use a large `imgui.input_text_multiline` (or similar editor) to allow manual redaction. +- [ ] Handle the callback to resume the `generate` workflow with the modified string. diff --git a/conductor/tracks/manual_context_pruner_20260510/spec.md b/conductor/tracks/manual_context_pruner_20260510/spec.md new file mode 100644 index 0000000..75de233 --- /dev/null +++ b/conductor/tracks/manual_context_pruner_20260510/spec.md @@ -0,0 +1,9 @@ +# Specification: Manual Context Pruner / Intercept Modal + +## Overview +Introduce a "Review Context Before Send" toggle. When enabled, hitting "Send" opens a modal displaying the final, aggregated Markdown string. The user can manually delete lines, redact symbols, or prune irrelevant RAG chunks before giving the final approval to send the payload to the API. + +## Acceptance Criteria +- [ ] A UI toggle exists for "Review Context Before Send". +- [ ] When enabled, sending a prompt opens a modal with a large text editor containing the fully aggregated markdown string (files + RAG chunks + prompt). +- [ ] User can edit the text and click "Approve and Send" or "Cancel".