Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/aps08/fullstack-clean-architecture/python_testingnpx skills add aps08/fullstack-clean-architecture --skill python_testinggit clone --depth 1 https://github.com/aps08/fullstack-clean-architectureWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00024 | $0.00717 |
| Opus 5 | $0.00012 | $0.00358 |
| Sonnet 5 | $0.00005 | $0.00143 |
| Haiku 4.5 | $0.00002 | $0.00072 |
Grade A, and why
python-testing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 63 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Python Testing Skill
Testing Framework & Configuration
- Use
pytestcombined withpytest-asynciofor all testing. - Auto Mode: The project is configured with
asyncio_mode = "auto"inserver/pyproject.toml. Because of this, any test function declared withasync defis automatically run inside an asyncio event loop. - No Decorators Needed: Do not use the
@pytest.mark.anyioor@pytest.mark.asynciodecorators on async test functions, asasyncio_mode = "auto"handles this automatically.
Directory Structure
All test files are located under server/tests/ and are organized as follows:
tests/unit/: Contains unit tests testing components in isolation. Subdirectories match the application structure (e.g.,core,repositories,service,utils).tests/integrations/: Contains end-to-end integration tests that call API endpoints using a test client.tests/mocks/: Contains mock classes for repositories and external integrations (e.g.MockTodoRepository).tests/factories.py: Contains factory methods (likecreate_user,create_todo) to generate mock data.tests/conftest.py: Contains common fixtures and configuration for all tests.
Conventions & Best Practices
- Docstrings: Every test function MUST have a descriptive docstring explaining exactly what it verifies.
- Mocking: Mock external dependencies (like database repositories or third-party HTTP clients) when writing unit tests for services. Use the classes in
tests/mocks/. - Fixture Scopes: Ensure all fixtures are explicitly scoped (e.g.
scope="session"). - Code Coverage: Ensure test coverage is strictly more than 80%.
- Async loops: Use the default loop scopes defined in
pyproject.toml(asyncio_default_fixture_loop_scope = "session"andasyncio_default_test_loop_scope = "session"). - No need to add comments inside any of the test code. Docstrings are enough.
Example: Unit Test
async def test_add_todo_without_attachments(
todo_service: TodoService,
mock_todo_repository: MockTodoRepository,
) -> None:
"""Test that creating a Todo task without specifying attachment IDs persists the Todo correctly."""
todo_data = TodoCreate(
title="Buy groceries",
description="Milk and bread",
is_completed=False,
attachment_ids=None,
)
todo = await todo_service.add(todo_data)
assert len(mock_todo_repository.todos_db) == 1
assert mock_todo_repository.todos_db[0].title == "Buy groceries"
assert mock_todo_repository.todos_db[0].id == todo.id
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 63 lines · 24 tokens per session scan A 4b6dc1b972e8
python-testing is a skill published in the GitHub repository aps08/fullstack-clean-architecture (2 stars, last pushed 3mo ago), licensed Apache-2.0. It adds 24 tokens to every session and 717 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
backend-conventions
Backend convention reference (.NET 10 / C# 13). Auto-injected into backend-aware agents - not user-invocable.
frontend-conventions
Frontend convention reference (SvelteKit / Svelte 5). Auto-injected into frontend-aware agents - not user-invocable.
add-test
Add tests following project test patterns.
polish-ui
Design-quality workflow that combines design taste, aesthetic direction, image-to-code, a Web Interface Guidelines audit, and real-browser verification. Use when building or polishing a UI surface, implementing a mockup/screenshot, or when asked to make a page "look great".
review-dependabot
Reviews a Dependabot PR and evaluates whether the dependency update is safe to merge. Use when a Dependabot PR is opened, when evaluating dependency updates, or when asked to check if a version bump is safe.
add-background-job
Add a Hangfire background job (recurring or one-time).