{ "version": "2.0", "generated_at": "2026-07-16", "tasks": [ { "task_id": "readability-baseline", "description": "Repository readability baseline audit introduction and ratchet", "files": [ "Makefile", "scripts/readability_audit.py", "scripts/readability_baseline.json", "scripts/readability_read_sets.json", "scripts/readability_audit_test.py" ], "budget": { "max_total_loc": 2209, "reason": "no new violations allowed; only existing baseline violations persist" } }, { "task_id": "edge-openai-readability", "description": "Edge OpenAI adapter readability (chat/Responses surface, text-tool parsing, SSE, provider tunnel, route/policy)", "files": [ "apps/edge/internal/openai/chat_handler.go", "apps/edge/internal/openai/chat_decode.go", "apps/edge/internal/openai/chat_policy.go", "apps/edge/internal/openai/chat_completion.go", "apps/edge/internal/openai/chat_types.go", "apps/edge/internal/openai/common_types.go", "apps/edge/internal/openai/responses_handler.go", "apps/edge/internal/openai/responses_decode.go", "apps/edge/internal/openai/responses_completion.go", "apps/edge/internal/openai/responses_types.go", "apps/edge/internal/openai/route_resolution.go", "apps/edge/internal/openai/normalized_sse.go", "apps/edge/internal/openai/buffered_sse.go", "apps/edge/internal/openai/sse_writer.go", "apps/edge/internal/openai/provider_tunnel.go", "apps/edge/internal/openai/provider_model_rewrite.go", "apps/edge/internal/openai/provider_observation.go", "apps/edge/internal/openai/text_tool_parser.go", "apps/edge/internal/openai/text_tool_markup.go", "apps/edge/internal/openai/text_tool_literals.go", "apps/edge/internal/openai/tool_argument_normalization.go", "apps/edge/internal/openai/tool_command_normalization.go", "apps/edge/internal/openai/tool_schema.go" ], "budget": { "max_total_loc": 800, "reason": "core adapter must be refactorable to smaller units; responsibilities are split per file so a task reads only the matching subset" } }, { "task_id": "edge-service-readability", "description": "Edge service layer readability (run dispatch and model queue, split per responsibility)", "files": [ "apps/edge/internal/service/run_types.go", "apps/edge/internal/service/run_submit.go", "apps/edge/internal/service/provider_resolution.go", "apps/edge/internal/service/provider_pool.go", "apps/edge/internal/service/provider_tunnel.go", "apps/edge/internal/service/run_cancel.go", "apps/edge/internal/service/run_wire.go", "apps/edge/internal/service/model_queue_types.go", "apps/edge/internal/service/model_queue_admission.go", "apps/edge/internal/service/model_queue_release.go", "apps/edge/internal/service/model_queue_snapshot.go", "apps/edge/internal/service/control_command.go" ], "budget": { "max_total_loc": 700, "reason": "service dispatch logic is large; refactor into smaller command handlers" } }, { "task_id": "node-core-readability", "description": "Node core readability (node handlers and sink, split per responsibility)", "files": [ "apps/node/internal/node/node.go", "apps/node/internal/node/run_handler.go", "apps/node/internal/node/tunnel_handler.go", "apps/node/internal/node/cancel_handler.go", "apps/node/internal/node/config_refresh_handler.go", "apps/node/internal/node/command_handler.go", "apps/node/internal/node/runtime_sink.go", "apps/node/internal/adapters/openai_compat/openai_compat.go", "apps/node/internal/bootstrap/module.go" ], "budget": { "max_total_loc": 700, "reason": "node runtime core; split into focused sub-packages" } }, { "task_id": "client-edges-panel-readability", "description": "Flutter client Edges panel readability", "files": [ "apps/client/lib/widgets/edges_panel.dart" ], "budget": { "max_total_loc": 600, "reason": "edges panel builder responsibilities extracted to focused widgets" } }, { "task_id": "client-nodes-panel-readability", "description": "Flutter client Nodes panel readability (panel composition and node/provider sections)", "files": [ "apps/client/lib/widgets/nodes_panel.dart", "apps/client/lib/widgets/nodes_panel_sections.dart" ], "budget": { "max_total_loc": 600, "reason": "nodes panel composition and node/provider section widgets split per responsibility" } }, { "task_id": "client-runtime-orchestration-readability", "description": "Flutter client Runtime panel orchestration readability", "files": [ "apps/client/lib/widgets/runtime_panel.dart" ], "budget": { "max_total_loc": 600, "reason": "runtime panel orchestration state and command dispatch" } }, { "task_id": "client-runtime-sections-readability", "description": "Flutter client Runtime panel section widgets readability", "files": [ "apps/client/lib/widgets/runtime_panel_sections.dart" ], "budget": { "max_total_loc": 600, "reason": "runtime panel section widgets extracted from the orchestration panel" } }, { "task_id": "iop-console-overview-readability", "description": "IOP console overview widget readability", "files": [ "packages/flutter/iop_console/lib/src/iop_console_overview.dart" ], "budget": { "max_total_loc": 600, "reason": "console overview responsive sections extracted to focused builders" } }, { "task_id": "packages-go-config-readability", "description": "Go config package readability", "files": [ "packages/go/config/config.go" ], "budget": { "max_total_loc": 700, "reason": "config struct defaults and parsing are mixed; split into struct defs and loaders" } }, { "task_id": "edge-transport-readability", "description": "Edge transport layer readability", "files": [ "apps/edge/internal/transport/server.go", "apps/edge/internal/transport/integration_test.go" ], "budget": { "max_total_loc": 600, "reason": "transport server has mixed concerns" } }, { "task_id": "edge-config-refresh-readability", "description": "Edge config refresh readability", "files": [ "apps/edge/internal/configrefresh/classify.go", "apps/edge/internal/edgecmd/node_register.go", "apps/edge/internal/edgecmd/smoke_openai.go" ], "budget": { "max_total_loc": 500, "reason": "config classification and edge commands are monolithic" } }, { "task_id": "node-adapters-readability", "description": "Node adapter readability", "files": [ "apps/node/internal/adapters/cli/persistent.go", "apps/node/internal/adapters/cli/opencode_sse.go", "apps/node/internal/adapters/ollama/ollama.go", "apps/node/internal/adapters/vllm/vllm.go", "apps/node/internal/adapters/cli/status/antigravity.go", "apps/node/internal/adapters/cli/status/claude.go", "apps/node/internal/adapters/cli/status/codex.go" ], "budget": { "max_total_loc": 500, "reason": "CLI adapters and status reporters have large functions" } } ] }