Patchwork — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Patchwork (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill teaches you how to read and apply a CONVENTIONS.md file generated by patchwork. When this file exists in a project, always read it before writing any code.
Before writing any new code, function, class, or file in a project, check if CONVENTIONS.md exists:
read_file("CONVENTIONS.md")If it exists, extract and apply every convention listed in it. Do not guess or use generic defaults.
The Naming Conventions section tells you the exact casing style and confidence level. Follow the highest-confidence style.
| What you see in CONVENTIONS.md | What you do |
|---|---|
Functions: snake_case (100%) | Every new function must be snake_case — no exceptions |
Classes: PascalCase (97%) | All new classes must be PascalCase |
Private prefix: _ | Private methods/vars must start with _ |
Test functions: prefix test_ | All test functions must start with test_ |
Files: snake_case | New files must be snake_case.py, not myFile.py |
If confidence is below 80%, flag the inconsistency to the user before writing.
The Error Handling section tells you how this project handles errors. Match it exactly.
pattern: try/except → always use try/except, never return error tuplespropagation: raise → re-raise exceptions, don't swallow themcustom exception naming: Error suffix → name new exceptions SomethingError, not SomethingExceptionUserNotFoundError) → extend those base classes, don't create new hierarchiesThe Testing Conventions section tells you how tests are written. Never deviate.
framework: pytest → write def test_...(): functions, never unittest.TestCaseassertions: assert → use plain assert, not assertEqualmocking: patch → use unittest.mock.patch, not raw MagicMockorganisation: function-based → don't wrap tests in classestest layout: separate → put tests in tests/, not next to source filesThe API Patterns section tells you the framework and style in use.
framework: FastAPI + async style: async/await → all route handlers must be async defroute params: {id} → use {param} style in route paths, not :paramroute params: :id → use Express-style :paramresponse shape: {data, error} → all responses must follow that exact shapeThe Import Conventions section tells you how imports are organised.
style: absolute imports → never use relative imports like from ..utils import xpath aliases: src/ → use from src.module import xThe Project Structure section tells you where to put new files.
tests: separate (tests/) → all test files go in tests/, not inlineorganisation: flat-based → don't create feature subdirectoriesorganisation: feature-based → group by feature, not by typesource root: src/ → all source code goes under src/Before finalising any function, class, variable, or file name, validate it against the conventions:
snake_case / PascalCase / camelCase)test_?_?Error?Correct any name that fails before writing the code.
Even if you think a different pattern is better:
pytest to unittestConsistency with the existing codebase is more important than your preference.
If no CONVENTIONS.md exists, scan existing files before writing:
You can suggest generating one:
pip install patchwork-conventions
patchwork scan .~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.