272 lines
10 KiB
JSON
272 lines
10 KiB
JSON
{
|
|
"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"
|
|
}
|
|
},
|
|
{
|
|
"task_id": "openai-chat-stream-change",
|
|
"description": "Mandatory project rules, focused OpenAI chat stream sources, and direct regression test",
|
|
"files": [
|
|
"AGENTS.md",
|
|
"agent-ops/rules/project/rules.md",
|
|
"agent-ops/rules/project/domain/edge/rules.md",
|
|
"agent-ops/rules/project/domain/testing/rules.md",
|
|
"apps/edge/internal/openai/chat_handler.go",
|
|
"apps/edge/internal/openai/normalized_sse.go",
|
|
"apps/edge/internal/openai/chat_stream_session.go",
|
|
"apps/edge/internal/openai/chat_stream_session_test.go"
|
|
],
|
|
"budget": {
|
|
"max_total_loc": 2000,
|
|
"reason": "representative project change read set; shared Agent-Ops common files are excluded"
|
|
}
|
|
},
|
|
{
|
|
"task_id": "provider-pool-dispatch-change",
|
|
"description": "Mandatory project rules, focused provider-pool dispatch sources, and direct resolution tests",
|
|
"files": [
|
|
"AGENTS.md",
|
|
"agent-ops/rules/project/rules.md",
|
|
"agent-ops/rules/project/domain/edge/rules.md",
|
|
"agent-ops/rules/project/domain/testing/rules.md",
|
|
"apps/edge/internal/service/provider_resolution.go",
|
|
"apps/edge/internal/service/model_queue_admission.go",
|
|
"apps/edge/internal/service/service_internal_test.go"
|
|
],
|
|
"budget": {
|
|
"max_total_loc": 2000,
|
|
"reason": "representative project change read set; shared Agent-Ops common files are excluded"
|
|
}
|
|
},
|
|
{
|
|
"task_id": "node-config-refresh-change",
|
|
"description": "Mandatory project rules, focused Node config refresh source, and direct gate refresh regression",
|
|
"files": [
|
|
"AGENTS.md",
|
|
"agent-ops/rules/project/rules.md",
|
|
"agent-ops/rules/project/domain/node/rules.md",
|
|
"agent-ops/rules/project/domain/testing/rules.md",
|
|
"apps/node/internal/node/config_refresh_handler.go",
|
|
"apps/node/internal/node/gate_refresh_test.go"
|
|
],
|
|
"budget": {
|
|
"max_total_loc": 2000,
|
|
"reason": "representative project change read set; shared Agent-Ops common files are excluded"
|
|
}
|
|
},
|
|
{
|
|
"task_id": "flutter-runtime-panel-change",
|
|
"description": "Mandatory project rules, focused Flutter runtime panel sources, and direct widget regression",
|
|
"files": [
|
|
"AGENTS.md",
|
|
"agent-ops/rules/project/rules.md",
|
|
"agent-ops/rules/project/domain/client/rules.md",
|
|
"agent-ops/rules/project/domain/testing/rules.md",
|
|
"apps/client/lib/widgets/runtime_panel.dart",
|
|
"apps/client/lib/widgets/runtime_panel_sections.dart",
|
|
"apps/client/test/runtime_panel_test.dart"
|
|
],
|
|
"budget": {
|
|
"max_total_loc": 2000,
|
|
"reason": "representative project change read set; shared Agent-Ops common files are excluded"
|
|
}
|
|
}
|
|
]
|
|
}
|