The folder is the tutorial's finished uv project: pyproject.toml and uv.lock with the pinned gate tools, .pre-commit-config.yaml, .github/workflows/ci.yml, .github/CODEOWNERS, scripts/agent_diff_check.py, the fixed src/demo/ai_module.py with its five tests, and the agent's flawed module and tests in examples/.
Notes for review:
examples/ holds deliberately broken code (hard-coded token, shell=True, wrong return type). The folder's own pyproject.toml excludes it from Ruff with extend-exclude, so the repo's ruff check and ruff format --check pass.
.github/workflows/ci.yml and .github/CODEOWNERS are sample files for readers to copy into their own repository root. GitHub doesn't run workflows or apply CODEOWNERS from a subfolder, so they're inert here.
.python-version is matched by the root .gitignore, so it was force-added. The tutorial uses Python 3.13.
Verified locally with uv 0.13.3 from a clean git archive of the branch: uv sync --locked, ruff check, ruff format --check, mypy src tests, bandit, pip-audit on the exported requirements, and pytest (5 passed, 94.44% coverage) all pass, and actionlint reports nothing for ci.yml. The repo's ruff==0.14.1 checks and dircheck.py pass too.
Generated from the tutorial markdown with the post-materials skill, then verified locally before pushing.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Where to put new files:
How to merge your changes:
Code examples for the How to Set Up Quality Gates for AI Code in Python tutorial. Files live in the quality-gates-ai-code/ top-level folder, named after the article slug.
The folder is the tutorial's finished uv project: pyproject.toml and uv.lock with the pinned gate tools, .pre-commit-config.yaml, .github/workflows/ci.yml, .github/CODEOWNERS, scripts/agent_diff_check.py, the fixed src/demo/ai_module.py with its five tests, and the agent's flawed module and tests in examples/.
Notes for review:
Verified locally with uv 0.13.3 from a clean git archive of the branch: uv sync --locked, ruff check, ruff format --check, mypy src tests, bandit, pip-audit on the exported requirements, and pytest (5 passed, 94.44% coverage) all pass, and actionlint reports nothing for ci.yml. The repo's ruff==0.14.1 checks and dircheck.py pass too.
Generated from the tutorial markdown with the post-materials skill, then verified locally before pushing.
🤖 Generated with Claude Code