Files
Itamar Zand 90796191c8 chore: remove internal planning docs, scrub references, align pipeline skills
- delete docs/REFACTORING-PLAN.md and docs/superpowers/{plans,specs}/*
  (internal planning artifacts — not for the public repo)
- scrub the now-dangling REFACTORING-PLAN.md references from the
  repl_skin canonical source (resynced to all copies) and pyproject.toml
- methodology and boilerplate skills: document doctor.py and mcp_server.py
  as vendored runtime adapters alongside repl_skin, and the entry point's
  doctor + mcp-serve registration (previously only repl_skin was noted)
2026-06-10 14:13:04 +03:00

103 lines
3.4 KiB
TOML

[project]
name = "cli-anything-web-workspace"
version = "0.0.0"
description = "Workspace metadata for the CLI-Anything-Web monorepo (not a published package)"
requires-python = ">=3.10"
# ── Ruff: lint + format for the whole monorepo ─────────────────────────────
[tool.ruff]
line-length = 100
target-version = "py310"
extend-exclude = [
"cli-anything-web-plugin/templates", # .tpl files contain ${} placeholders
"assets",
]
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"F", # pyflakes
"W", # pycodestyle warnings
"I", # isort
"UP", # pyupgrade
"B", # flake8-bugbear
]
ignore = [
# Long lines are governed by `ruff format`; remaining E501 hits are
# docstrings/comments/string literals where wrapping hurts readability.
"E501",
# CLI entry points and pipeline scripts intentionally run code before
# imports (sys.stdout UTF-8 reconfigure, sys.path setup for sibling
# modules). Tracked as ratchet debt until the devkit package migration
# removes the need.
"E402",
]
[tool.ruff.lint.per-file-ignores]
# Reference examples are intentionally incomplete teaching snippets.
"cli-anything-web-plugin/skills/*/references/*.py" = ["F821", "F401", "B"]
# Re-export modules.
"**/__init__.py" = ["F401"]
# ── Pytest: repo-level suites (plugin scripts, devkit, core, contract) ─────
# Generated CLI tests are run per-package (see scripts/test-all.sh and CI),
# because each requires its own installed dependencies.
[tool.pytest.ini_options]
testpaths = [
"cli-anything-web-plugin/scripts/tests",
"devkit/tests",
"cli-web-core/tests",
]
addopts = "-q"
markers = [
"contract: fleet-wide contract tests (require installed CLIs)",
"live: tests that hit live external services",
]
# ── Coverage ────────────────────────────────────────────────────────────────
[tool.coverage.run]
source = [
"cli-anything-web-plugin/scripts",
"devkit/cli_web_devkit",
"cli-web-core/cli_web_core",
]
omit = ["*/tests/*"]
# ── Mypy: strict on the new packages, off elsewhere (ratchet) ───────────────
[tool.mypy]
python_version = "3.10"
files = ["devkit/cli_web_devkit", "cli-web-core/cli_web_core"]
strict = true
warn_unreachable = true
[[tool.mypy.overrides]]
# repl_skin predates the typing standard; vendored byte-identically across
# the fleet, so annotations are added only with a coordinated resync.
module = "cli_web_core.repl_skin"
disallow_untyped_defs = false
disallow_incomplete_defs = false
check_untyped_defs = false
warn_return_any = false
[[tool.mypy.overrides]]
# Optional dependency — only installed with the [repl] extra.
module = "prompt_toolkit.*"
ignore_missing_imports = true
[[tool.mypy.overrides]]
# mcp_server is vendored into CLIs (which all depend on click); core itself
# keeps zero hard deps, so click is a lazy import here.
module = "cli_web_core.mcp_server"
disallow_untyped_decorators = false
[[tool.mypy.overrides]]
module = "click.*"
ignore_missing_imports = true
[[tool.mypy.overrides]]
# doctor is vendored into CLIs (click is a lazy import); the py<3.10 branch
# is an intentional runtime guard mypy sees as unreachable under py310.
module = "cli_web_core.doctor"
disallow_untyped_decorators = false
warn_unreachable = false