[build-system]
requires = ["hatch-vcs>=0.4.0", "hatchling>=1.27.0"]
build-backend = "hatchling.build"

[project]
name = "slop-guard"
dynamic = ["version"]
description = "Rule-based prose linter for formulaic AI writing patterns."
readme = "README.md"
requires-python = ">=3.11"
dependencies = ["mcp"]
license = "MIT"
authors = [
  { name = "Eric Tramel" },
]
classifiers = [
  "Development Status :: 4 - Beta",
  "Intended Audience :: Developers",
  "License :: OSI Approved :: MIT License",
  "Programming Language :: Python :: 3",
  "Programming Language :: Python :: 3.11",
  "Programming Language :: Python :: 3.12",
  "Programming Language :: Python :: 3.13",
  "Topic :: Software Development :: Quality Assurance",
  "Topic :: Text Processing :: Linguistic",
]
keywords = ["lint", "style", "mcp", "prose", "writing"]

[project.urls]
Homepage = "https://github.com/eric-tramel/slop-guard"
Repository = "https://github.com/eric-tramel/slop-guard"
Issues = "https://github.com/eric-tramel/slop-guard/issues"

[project.scripts]
slop-guard = "slop_guard:main"
sg = "slop_guard.cli:main"
sg-fit = "slop_guard.fit_cli:main"

[dependency-groups]
dev = [
  "pytest>=8.4.0",
  "pytest-cov>=7.0.0",
]

[tool.hatch.build]
exclude = [
  "benchmark",
  "benchmark/**",
  ".hf-cache",
  ".hf-cache/**",
  ".mplconfig",
  ".mplconfig/**",
  ".uv-cache",
  ".uv-cache/**",
  ".venv",
  ".venv/**",
]

[tool.hatch.build.targets.sdist]
exclude = [
  "benchmark",
  "benchmark/**",
  ".hf-cache",
  ".hf-cache/**",
  ".mplconfig",
  ".mplconfig/**",
  ".uv-cache",
  ".uv-cache/**",
  ".venv",
  ".venv/**",
]

[tool.hatch.build.targets.wheel]
packages = ["src/slop_guard"]

[tool.hatch.version]
source = "vcs"

[tool.pytest.ini_options]
minversion = "8.0"
addopts = [
  "-ra",
  "--strict-config",
  "--strict-markers",
]
testpaths = ["tests"]

[tool.coverage.run]
branch = true
source = ["slop_guard"]

[tool.coverage.report]
show_missing = true
skip_covered = true
