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

2.0 KiB

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.

Assuming Python 3.12+:

[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.