| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| [build-system] |
| requires = ["hatchling"] |
| build-backend = "hatchling.build" |
| |
| [project] |
| name = "skill-and-tool-validator" |
| version = "0.1.0" |
| description = "Validate framework skill definitions — YAML frontmatter, internal link integrity, and placeholder conventions." |
| readme = "README.md" |
| requires-python = ">=3.11" |
| license = { text = "Apache-2.0" } |
| # stdlib-only — yaml parsing is done via the built-in frontmatter |
| # heuristic (regex + text processing). No external deps needed. |
| dependencies = [] |
| |
| [project.scripts] |
| skill-and-tool-validate = "skill_and_tool_validator:main" |
| |
| [tool.hatch.build.targets.wheel] |
| packages = ["src/skill_and_tool_validator"] |
| |
| [tool.ruff] |
| line-length = 110 |
| target-version = "py311" |
| src = ["src", "tests"] |
| |
| [tool.ruff.lint] |
| select = [ |
| "E", |
| "W", |
| "F", |
| "I", |
| "B", |
| "UP", |
| "SIM", |
| "C4", |
| "RUF", |
| ] |
| ignore = [ |
| "E501", |
| ] |
| |
| [tool.ruff.lint.per-file-ignores] |
| "tests/**" = ["B", "SIM"] |
| |
| [tool.mypy] |
| python_version = "3.11" |
| files = ["src", "tests"] |
| warn_unused_ignores = true |
| warn_redundant_casts = true |
| warn_unreachable = true |
| check_untyped_defs = true |
| no_implicit_optional = true |
| disallow_untyped_defs = true |
| disallow_incomplete_defs = true |
| |
| [[tool.mypy.overrides]] |
| module = "tests.*" |
| disallow_untyped_defs = false |
| disallow_incomplete_defs = false |
| |
| [tool.pytest.ini_options] |
| minversion = "8.0" |
| addopts = "-ra -q" |
| testpaths = ["tests"] |
| |
| [dependency-groups] |
| dev = [ |
| "mypy>=2.1.0", |
| "pytest>=9.1.1", |
| "ruff>=0.15.20", |
| ] |