This commit is contained in:
John Lancaster
2026-06-21 22:55:58 -05:00
parent 35d7fa1718
commit ab53c239bf
17 changed files with 31 additions and 25 deletions
@@ -1,16 +1,18 @@
--- ---
name: Pytest Scaffolding Guidance name: Pytest Scaffolding Guidance
description: Route tests edits to the Personal MCP pytest-scaffolding resource. description: Route tests edits to the Personal MCP pytesting resource.
applyTo: 'tests/**' applyTo: 'tests/**'
--- ---
When editing files under `tests/`, use `resource://skills/pytest-scaffolding/document` as the primary guidance source for test scaffolding and pytest authoring decisions. When editing files under `tests/`, use `resource://skills/pytesting/document` as the primary guidance source for test scaffolding and pytest authoring decisions.
Execution pattern: Execution pattern:
1. Load `resource://skills/pytest-scaffolding/document` first. 1. Load `resource://skills/pytesting/document` first.
2. Apply only the portions relevant to the file being edited. 2. Apply only the portions relevant to the file being edited.
3. Keep tests focused, deterministic, and aligned with repository conventions. 3. Keep tests focused, deterministic, and aligned with repository conventions.
4. Include source-document links for any feature-level recommendation. 4. Include source-document links for any feature-level recommendation.
If task intent is ambiguous, ask one clarifying question before editing. If task intent is ambiguous, ask one clarifying question before editing.
Be sure to also refer to the [testing page](../../docs/testing.md) page for design detail
@@ -7,3 +7,7 @@ applyTo: '**/*.md'
When editing Markdown files in this repository, use the Zensical docs resource `resource://skills/zensical-docs/document` for relevant documentation authoring guidance. When editing Markdown files in this repository, use the Zensical docs resource `resource://skills/zensical-docs/document` for relevant documentation authoring guidance.
Prefer Zensical-native documentation conventions when they cover the need cleanly, while preserving expected MkDocs compatibility unless the Zensical guidance intentionally diverges. Prefer Zensical-native documentation conventions when they cover the need cleanly, while preserving expected MkDocs compatibility unless the Zensical guidance intentionally diverges.
Always check to make sure the entries in `/home/john/Documents/prompts/zensical.toml` are up to date with any changes.
Also ensure that top-level pages specify icons in their front matter
+1 -1
View File
@@ -61,7 +61,7 @@ Example valid ids:
- `fastapi-uv-docker` - `fastapi-uv-docker`
- `zensical-docs` - `zensical-docs`
- `pytest-scaffolding` - `pytesting`
Example invalid ids: Example invalid ids:
+1 -1
View File
@@ -252,7 +252,7 @@ Allowed exception:
Existing markdown reference sets are valid examples of authored source material for this architecture: Existing markdown reference sets are valid examples of authored source material for this architecture:
1. docs/skills/pytest-scaffolding/references/pytest-docs.md 1. docs/skills/pytesting/references/pytest-docs.md
2. docs/skills/python-logging-dictconfig/references/python-logging-docs.md 2. docs/skills/python-logging-dictconfig/references/python-logging-docs.md
3. docs/skills/fastapi-uv-docker/references/fastapi-best-practices.md 3. docs/skills/fastapi-uv-docker/references/fastapi-best-practices.md
+1 -1
View File
@@ -60,7 +60,7 @@ Valid examples:
1. `fastapi-uv-docker` 1. `fastapi-uv-docker`
2. `zensical-docs` 2. `zensical-docs`
3. `pytest-scaffolding` 3. `pytesting`
Invalid examples: Invalid examples:
+1 -1
View File
@@ -193,7 +193,7 @@ This keeps docs publication explicit and predictable.
Existing reference docs remain valid content inputs in this pattern: Existing reference docs remain valid content inputs in this pattern:
1. docs/skills/pytest-scaffolding/references/pytest-docs.md 1. docs/skills/pytesting/references/pytest-docs.md
2. docs/skills/python-logging-dictconfig/references/python-logging-docs.md 2. docs/skills/python-logging-dictconfig/references/python-logging-docs.md
3. docs/skills/fastapi-uv-docker/references/fastapi-best-practices.md 3. docs/skills/fastapi-uv-docker/references/fastapi-best-practices.md
+5 -5
View File
@@ -47,11 +47,11 @@ Use this prompt after test scaffolding exists and method names/docstrings are al
Load these in order and use only what matches the task: Load these in order and use only what matches the task:
1. Core defaults: [pytest scaffolding skill](../../skills/pytest-scaffolding/SKILL.md) 1. Core defaults: [pytest scaffolding skill](../../skills/pytesting/SKILL.md)
2. Naming/hierarchy preservation: [naming and organization](../../skills/pytest-scaffolding/references/naming-and-organization.md) 2. Naming/hierarchy preservation: [naming and organization](../../skills/pytesting/references/naming-and-organization.md)
3. Baseline pytest fixtures/markers: [pytest docs notes](../../skills/pytest-scaffolding/references/pytest-docs.md) 3. Baseline pytest fixtures/markers: [pytest docs notes](../../skills/pytesting/references/pytest-docs.md)
4. FastAPI-specific behavior (only when needed): [fastapi testing](../../skills/pytest-scaffolding/references/fastapi-testing.md) 4. FastAPI-specific behavior (only when needed): [fastapi testing](../../skills/pytesting/references/fastapi-testing.md)
5. SQLAlchemy-specific behavior (only when needed): [sqlalchemy testing](../../skills/pytest-scaffolding/references/sqlalchemy-testing.md) 5. SQLAlchemy-specific behavior (only when needed): [sqlalchemy testing](../../skills/pytesting/references/sqlalchemy-testing.md)
## Workflow ## Workflow
@@ -1,8 +1,8 @@
--- ---
name: pytest-scaffolding name: pytesting
description: "Reference hub for pytest suite structure, naming, markers, and stack-specific testing patterns. Optimized for progressive discovery so naming and hierarchy guidance are loaded first when shaping or reorganizing tests." description: "Reference hub for pytest suite structure, naming, markers, and stack-specific testing patterns. Optimized for progressive discovery so naming and hierarchy guidance are loaded first when shaping or reorganizing tests."
x-personal-mcp: x-personal-mcp:
id: pytest-scaffolding id: pytesting
version: 1.0.0 version: 1.0.0
tags: tags:
- pytest - pytest
@@ -13,7 +13,7 @@ x-personal-mcp:
- anyio - anyio
- deterministic - deterministic
capabilities: capabilities:
- resource://skills/pytest-scaffolding/document - resource://skills/pytesting/document
--- ---
# Pytest Scaffolding # Pytest Scaffolding
+2 -2
View File
@@ -7,8 +7,8 @@ icon: lucide/flask-conical
This page describes the current test layout and execution model for this repository. This page describes the current test layout and execution model for this repository.
Primary guidance sources: Primary guidance sources:
- [Pytest scaffolding skill](./skills/pytest-scaffolding/SKILL.md) - [Pytest scaffolding skill](./skills/pytesting/SKILL.md)
- [Pytest docs reference](./skills/pytest-scaffolding/references/pytest-docs.md) - [Pytest docs reference](./skills/pytesting/references/pytest-docs.md)
- [FastAPI + uv + Docker skill](./skills/fastapi-uv-docker/SKILL.md) - [FastAPI + uv + Docker skill](./skills/fastapi-uv-docker/SKILL.md)
## Goals ## Goals
@@ -21,7 +21,7 @@ REQUIRED_LIBRARY_TAGS_BY_SKILL = {
"new-skill": {"mcp", "fastmcp"}, "new-skill": {"mcp", "fastmcp"},
"nicegui": {"nicegui", "fastapi"}, "nicegui": {"nicegui", "fastapi"},
"nicegui-ui-customization": {"nicegui", "fastapi"}, "nicegui-ui-customization": {"nicegui", "fastapi"},
"pytest-scaffolding": {"pytest", "testing", "fastapi", "asyncio", "anyio"}, "pytesting": {"pytest", "testing", "fastapi", "asyncio", "anyio"},
"python-logging-dictconfig": {"python", "logging"}, "python-logging-dictconfig": {"python", "logging"},
"python-typing": {"python", "typing"}, "python-typing": {"python", "typing"},
"ruff-linting-formating": {"ruff", "python"}, "ruff-linting-formating": {"ruff", "python"},
+4 -4
View File
@@ -33,22 +33,22 @@ TOOL_NAME_PARAMETERS = tuple(
SEARCH_QUERY_PARAMETERS = ( SEARCH_QUERY_PARAMETERS = (
pytest.param( pytest.param(
"pytest", "pytest",
{"pytest-scaffolding"}, {"pytesting"},
id="query-pytest", id="query-pytest",
), ),
pytest.param( pytest.param(
"asyncio", "asyncio",
{"pytest-scaffolding", "fastapi-async-sqlalchemy-modernization"}, {"pytesting", "fastapi-async-sqlalchemy-modernization"},
id="query-asyncio", id="query-asyncio",
), ),
pytest.param( pytest.param(
"fastapi testing", "fastapi testing",
{"pytest-scaffolding"}, {"pytesting"},
id="query-fastapi-testing", id="query-fastapi-testing",
), ),
pytest.param( pytest.param(
"asyncio fastapi testing deterministic pytest", "asyncio fastapi testing deterministic pytest",
{"pytest-scaffolding"}, {"pytesting"},
id="query-composite-async-fastapi-testing-deterministic-pytest", id="query-composite-async-fastapi-testing-deterministic-pytest",
), ),
) )
+3 -3
View File
@@ -108,9 +108,9 @@ nav = [
{ "Quality" = "skills/nicegui-ui-customization/references/troubleshooting-and-quality-gates.md" }, { "Quality" = "skills/nicegui-ui-customization/references/troubleshooting-and-quality-gates.md" },
] }, ] },
{ "Pytest" = [ { "Pytest" = [
{ "Overview" = "skills/pytest-scaffolding/SKILL.md" }, { "Overview" = "skills/pytesting/SKILL.md" },
{ "Docs" = "skills/pytest-scaffolding/references/pytest-docs.md" }, { "Docs" = "skills/pytesting/references/pytest-docs.md" },
{ "AsyncIO" = "skills/pytest-scaffolding/references/asyncio-testing.md" }, { "AsyncIO" = "skills/pytesting/references/asyncio-testing.md" },
] }, ] },
{ "MCP Details" = [ { "MCP Details" = [
{ "Overview" = "skills/mcp-details/SKILL.md" }, { "Overview" = "skills/mcp-details/SKILL.md" },