Files
markitect-tool/docs/dependency-classification.md

55 lines
2.0 KiB
Markdown

# Dependency Classification
Source: `/home/worsch/markitect-main/pyproject.toml` and `package.json`
## Core Candidates
| Dependency | Recommendation | Reason |
| --- | --- | --- |
| `markdown-it-py` | Keep | Mature Markdown parser; good fit for deterministic parse contract. |
| `PyYAML` | Keep | Needed for frontmatter, config, and markdown schema metadata. |
| `click>=8` | Keep or replace deliberately | Legacy CLI uses Click. Keeping it lowers migration cost. |
| `jsonpath-ng>=1.5` | Conditional | Useful only if `mkt query` adopts JSONPath over structured docs. |
| `toml` / stdlib `tomllib` | Conditional | Use `tomllib` for read-only TOML on Python 3.11+; add a writer only if needed. |
| `tabulate` | Optional | Nice for human tables; structured output should not depend on it. |
## Optional Integration Candidates
| Dependency | Recommendation | Reason |
| --- | --- | --- |
| `llm-connect` | Optional extra only | FR-042 allows LLM-assisted generation, but core must remain provider-neutral. |
| `networkx` | Defer | Maybe useful later for transclusion reference graphs; mostly higher-layer. |
| `markdownify`, `markitdown-no-magika`, `pymupdf4llm` | Do not include in core | Multi-format proxy conversion is out of markdown-native scope. |
## Drop from Successor Core
| Dependency/source | Reason |
| --- | --- |
| Local capability packages | Old project ecosystem/tooling, not syntax-layer contract. |
| `aiohttp` | Only needed by old service/provider integrations. |
| `jsdom`, `jest` | Browser/editor/rendering tests are out of scope for core toolkit. |
## Recommended Initial Stack
Assuming Python 3.12+:
```toml
[project]
dependencies = [
"markdown-it-py",
"PyYAML",
"click>=8.0",
]
[project.optional-dependencies]
query = ["jsonpath-ng>=1.5"]
tables = ["tabulate>=0.9"]
llm = ["llm-connect @ file:///home/worsch/llm-connect"]
dev = ["pytest"]
```
## Packaging Decision Needed
`MKTT-WP-0001-T004` should decide Python minimum version, package import name,
CLI entry point, build backend, versioning, test runner, and lint/type tools.