Development
Set up the project
git clone https://github.com/kannandreams/secchi.git
cd secchi
uv sync
Run the dashboard from source
uv run textual run --dev src/secchi/dev.py -- -p duckdb
Run checks
uv run pytest
uv run ruff check .
uv run ruff format --check src tests
uv build
The test suite uses mocked HTTP transports for registry adapters and local temporary paths for cache/history behavior. Tests do not need live registry access.
Build the documentation site
Install the documentation dependency through the development group:
uv sync
Preview the site locally:
uv run mkdocs serve
Build a static site into site/:
uv run mkdocs build --strict
The documentation configuration lives in mkdocs.yml, and source pages live
under docs/.
Architecture direction
The CLI, dashboard, reports, MCP server, and future SDK surfaces should reuse the same application workflows and intelligence services. Registry adapters normalize external data, services enrich and score it, and renderers present the result for a specific surface.
The project uses dataclasses for internal domain models and explicit Pydantic schemas at cache and external JSON boundaries.