Files
2026-01-22 17:37:17 +03:00

2.9 KiB

Implementation Plan: 012-remove-superset-tool

Branch: 012-remove-superset-tool | Date: 2026-01-22 | Spec: spec.md

Summary

The primary requirement is to refactor the backend by removing the redundant superset_tool module and merging its essential logic into the backend package. This involves migrating the SupersetClient logic, utility modules, and configuration models while deprecating CLI-specific interactive logic.

Technical Context

Language/Version: Python 3.9+
Primary Dependencies: FastAPI, Pydantic, requests, pyyaml (migrated from superset_tool)
Storage: SQLite (tasks.db, migrations.db), Filesystem
Testing: pytest
Target Platform: Linux server
Project Type: Web application (FastAPI backend + SvelteKit frontend)
Performance Goals: N/A (Cleanup task)
Constraints: Zero references to superset_tool in backend/ source code.
Scale/Scope: Refactoring core backend infrastructure.

Constitution Check

GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.

  1. Semantic Protocol Compliance: All migrated code must use [DEF] anchors and @RELATION tags as per semantic_protocol.md.
  2. Causal Validity: Contracts (Pydantic models and API surfaces) must be defined before implementation.
  3. Everything is a Plugin: Ensure that logic previously in superset_tool that acts as a tool or extension is integrated within the backend's plugin architecture if applicable.
  4. Fractal Complexity Limit: Migrated modules must adhere to complexity limits.

Project Structure

Documentation (this feature)

specs/012-remove-superset-tool/
├── plan.md              # This file
├── research.md          # Phase 0 output
├── data-model.md        # Phase 1 output
├── quickstart.md        # Phase 1 output
├── contracts/           # Phase 1 output
└── tasks.md             # Phase 2 output

Source Code (repository root)

backend/
├── src/
│   ├── api/             # API routes
│   ├── core/            # Core logic (Target for migration)
│   │   ├── utils/       # Shared utilities
│   │   ├── config_models.py
│   │   ├── logger.py
│   │   └── superset_client.py
│   ├── models/          # Database models
│   ├── plugins/         # Plugin system
│   └── app.py
└── tests/               # Backend tests

Structure Decision: Web application structure. The superset_tool logic will be absorbed into backend/src/core/ and its subdirectories.

Complexity Tracking

Fill ONLY if Constitution Check has violations that must be justified

Violation Why Needed Simpler Alternative Rejected Because
None