pywf-oss-audit
Audit a pywf open-source Python library against the template conventions (Python versions, dependencies, lint, code style, public API, test layout, docs, changelog) and report each deviation with the
SKILL.md.claude/skills/pywf-oss-audit/SKILL.md
GitHubCompare one repo with the template conventions, and produce a prioritized list of deviations. The audit changes no source file: if a check regenerates a tracked file, report the diff as a finding, then restore the file.
Read ../pywf-oss-base/SKILL.md, then every file in ../pywf-oss-base/references/.
Checks
Record each finding with the file, the rule broken (reference file and section), and the fixing skill.
- Python versions and dependencies.
uv tree --outdated --depth 1(fixed bypywf-oss-upgrade-deps).- The four Python version locations agree with
04-python-versions.md(fixed bypywf-oss-fix-ci). - Dependency constraints follow
05-uv-dependencies.md.
- Lint.
mise.tomlhas theformatandlinttasks, andpyproject.tomlhas[tool.ruff]and[tool.pytest].mise run lintpasses.uvx ruff format --checkon theformattask's paths inmise.tomlpasses. Never runmise run formatduring an audit: it rewrites files.
- Code style against
09-code-style.md, sampled in about 10 source files and the recently changed areas:- the file header;
- one name per import, and the five-group order;
- no absolute self-imports inside
<package_name>/; - 3.11+ type hints;
- docstrings and
#:comments; - one field per line in declarative models.
- Public API, against
08-package-files.md:api.pyexports no_privatenames;- every exported name has a docstring;
tests/test_api.pytouches every exported name.
- Test layout. Run
python ${CLAUDE_SKILL_DIR}/../pywf-oss-base/scripts/check_test_layout.py --project_root .. - Docs and knowledge channels.
- No maintainer or contributor-guide pages in
docs/source/(18-knowledge-channels.md); they belong in the<maintain_prefix>family (fixed bypywf-oss-write-maintain-skill). - If
.claude/skills/pypi-<package_name>/exists, its version header matches the last tag (fixed bypywf-oss-write-pypi-skill). - Folder names follow
14-docfly.md. - Headings use 78-character underlines.
mise run build-docshows no warnings. It regenerates the trackeddocs/source/api/, and may changeuv.lock: report anygit statusdiff in either, then restore them withgit checkout docs/source/api uv.lock.python ${CLAUDE_SKILL_DIR}/../pywf-oss-base/scripts/check_doc_xrefs.pyreports 0 unresolved.- Notebooks have committed outputs.
- No maintainer or contributor-guide pages in
- Changelog. The Backlog block is present, and the latest version section matches the
pyproject.tomlversion or the last tag.
Report
Group the findings by fixing skill:
pywf-oss-add-modulepywf-oss-write-testpywf-oss-write-docpywf-oss-write-maintain-skillpywf-oss-write-pypi-skillpywf-oss-changelogpywf-oss-fix-ci(Python versions and CI config)pywf-oss-upgrade-deps(outdated or unmaintained dependencies)- "direct edit" (config and style)
Within each group, order the findings by severity:
- breaks CI or the release;
- breaks a convention that tools rely on;
- style.
End with counts per group, and ask which group to fix first.