Not in the top 1,000 by GitHub stars

wdm0006/python-skills

a set of claude skills for python development (and more) based on mcginniscommawill.com writings.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

skills/common/accessible-interfaces/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/app-config/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/build-artifacts/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/ci-permissions/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/concurrent-branches/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/cross-surface-changes/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/defect-reports/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/derived-metrics/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/destructive-operations/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/git-hygiene/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/github-actions/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/interaction-states/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/marketing-pages/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/rendering-untrusted-content/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/reproducing-ci-locally/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/sync-jobs/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/text-normalization/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/threshold-calibration/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/ui-design/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/common/verifying-external-behavior/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/go/projects/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/javascript/browser-extensions/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/api-design/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/cli-development/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/code-quality/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/community/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/documentation/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/lazy-dependencies/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/library-review/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/llm-features/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/mcp-servers/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/packaging/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/performance/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/project-setup/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/release-management/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/security-audit/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/testing-strategy/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/python/web-app-architecture/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/rust/crates/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/scala/projects/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/swift/apps/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

skills/swift/releases/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a6ecdc0286de

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit a6ecdc0286deb95cc0a8fb1840086089ed8847d4

git clone --filter=blob:none --no-checkout https://github.com/wdm0006/python-skills.git .hotskills/wdm0006-python-skills && git -C .hotskills/wdm0006-python-skills checkout --detach a6ecdc0286deb95cc0a8fb1840086089ed8847d4 # Copy each selected skill directory from .hotskills/wdm0006-python-skills into .claude/skills/<skill-name>/
111GitHub stars
0stars in 7 days
42skills in this repository
62commits in 30 days

Heat

1.8
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Oct 30, 2026111

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

building-accessible-interfaces

When your agent uses it

Makes web and app UIs usable by keyboard, screen-reader, low-vision and motion-sensitive users — semantic HTML before ARIA, labelled controls, visible focus, WCAG AA contrast measured rather than eyeballed, touch targets, reduced motion, and automated axe checks plus a manual keyboard pass in CI or before every UI PR. Use when building or restyling a screen, adding a form, modal, menu or custom control, choosing colors, or reviewing a UI change.

What it loads into context

Frontmatter

106 tokens

Always available to the agent

SKILL.md

1,498 tokens

When the skill is activated

Reference documents

144,614 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Contents
  2. Step 1 — Semantic HTML first
  3. Step 2 — Every control has a name
  4. Step 3 — Keyboard and focus
  5. Step 4 — Contrast, measured
  6. Step 5 — Motion, zoom and touch
  7. Step 6 — Automated checks plus a manual pass
  8. Native apps
  9. Anti-patterns

Scripts executed separately

  • ../../python/project-setup/scripts/create_project.py
  • ../../python/release-management/scripts/bump_version.py
  • ../../python/security-audit/scripts/security_scan.py

Files

  • ../../../.claude-plugin/marketplace.jsonasset19,600 bytes
  • SKILL.mdcore5,951 bytes
  • SKILL.mdcore5,951 bytes
  • SKILL.mdcore5,951 bytes
  • SKILL.mdcore5,951 bytes
  • ../app-config/SKILL.mddoc13,136 bytes
  • ../build-artifacts/SKILL.mddoc7,706 bytes
  • ../ci-permissions/SKILL.mddoc9,011 bytes
  • ../concurrent-branches/SKILL.mddoc11,000 bytes
  • ../cross-surface-changes/SKILL.mddoc11,878 bytes
  • ../defect-reports/SKILL.mddoc11,600 bytes
  • ../derived-metrics/SKILL.mddoc14,250 bytes
  • ../destructive-operations/SKILL.mddoc10,860 bytes
  • ../git-hygiene/SKILL.mddoc7,622 bytes
  • ../github-actions/SKILL.mddoc14,159 bytes
  • ../interaction-states/SKILL.mddoc6,025 bytes
  • ../marketing-pages/SKILL.mddoc6,920 bytes
  • ../rendering-untrusted-content/SKILL.mddoc8,000 bytes
  • ../reproducing-ci-locally/SKILL.mddoc13,498 bytes
  • ../sync-jobs/SKILL.mddoc25,902 bytes
  • ../text-normalization/SKILL.mddoc13,610 bytes
  • ../threshold-calibration/SKILL.mddoc15,825 bytes
  • ../ui-design/MODERNIZING.mddoc6,600 bytes
  • ../ui-design/SKILL.mddoc14,682 bytes
  • ../ui-design/TOKENS.mddoc5,560 bytes
  • ../verifying-external-behavior/SKILL.mddoc11,668 bytes
  • ../../go/projects/SKILL.mddoc15,145 bytes
  • ../../javascript/browser-extensions/SKILL.mddoc17,775 bytes
  • ../../python/api-design/EVOLUTION.mddoc6,257 bytes
  • ../../python/api-design/PATTERNS.mddoc7,905 bytes
  • ../../python/api-design/SKILL.mddoc10,811 bytes
  • ../../python/cli-development/CLICK_PATTERNS.mddoc7,329 bytes
  • ../../python/cli-development/SKILL.mddoc3,275 bytes
  • ../../python/cli-development/TYPER_GUIDE.mddoc5,905 bytes
  • ../../python/code-quality/MYPY_CONFIG.mddoc1,427 bytes
  • ../../python/code-quality/RUFF_CONFIG.mddoc1,666 bytes
  • ../../python/code-quality/SKILL.mddoc13,446 bytes
  • ../../python/code-quality/TYPE_PATTERNS.mddoc2,512 bytes
  • ../../python/community/GOVERNANCE.mddoc6,368 bytes
  • ../../python/community/SKILL.mddoc3,401 bytes
  • ../../python/community/TEMPLATES.mddoc6,953 bytes
  • ../../python/documentation/SKILL.mddoc3,311 bytes
  • ../../python/documentation/SPHINX_CONFIG.mddoc5,039 bytes
  • ../../python/documentation/TUTORIALS.mddoc5,886 bytes
  • ../../python/lazy-dependencies/SKILL.mddoc8,297 bytes
  • ../../python/library-review/CHECKLIST.mddoc6,048 bytes
  • ../../python/library-review/REPORT_TEMPLATE.mddoc3,363 bytes
  • ../../python/library-review/SKILL.mddoc2,986 bytes
  • ../../python/llm-features/SKILL.mddoc11,354 bytes
  • ../../python/mcp-servers/SKILL.mddoc11,578 bytes
  • ../../python/packaging/CONDA.mddoc3,615 bytes
  • ../../python/packaging/SKILL.mddoc6,830 bytes
  • ../../python/performance/BENCHMARKS.mddoc6,375 bytes
  • ../../python/performance/PROFILING.mddoc7,025 bytes
  • ../../python/performance/SKILL.mddoc3,357 bytes
  • ../../python/project-setup/CI.mddoc6,175 bytes
  • ../../python/project-setup/MAKEFILE.mddoc1,315 bytes
  • ../../python/project-setup/PYPROJECT.mddoc3,305 bytes
  • ../../python/project-setup/SKILL.mddoc5,110 bytes
  • ../../python/project-setup/scripts/create_project.pyruns13,501 bytes
  • ../../python/release-management/AUTOMATION.mddoc2,983 bytes
  • ../../python/release-management/MIGRATION.mddoc3,033 bytes
  • ../../python/release-management/SKILL.mddoc3,638 bytes
  • ../../python/release-management/scripts/bump_version.pyruns9,176 bytes
  • ../../python/security-audit/CI_SECURITY.mddoc6,494 bytes
  • ../../python/security-audit/SKILL.mddoc6,142 bytes
  • ../../python/security-audit/VULNERABILITIES.mddoc8,234 bytes
  • ../../python/security-audit/scripts/security_scan.pyruns11,162 bytes
  • ../../python/testing-strategy/FIXTURES.mddoc1,419 bytes
  • ../../python/testing-strategy/HYPOTHESIS.mddoc1,807 bytes
  • ../../python/testing-strategy/SKILL.mddoc39,847 bytes
  • ../../python/web-app-architecture/AUTH.mddoc9,849 bytes
  • ../../python/web-app-architecture/BACKGROUND_JOBS.mddoc7,085 bytes
  • ../../python/web-app-architecture/DEPLOYMENT.mddoc8,700 bytes
  • ../../python/web-app-architecture/FRONTEND.mddoc3,887 bytes
  • ../../python/web-app-architecture/PAYMENTS.mddoc4,826 bytes
  • ../../python/web-app-architecture/SKILL.mddoc9,180 bytes
  • ../../python/web-app-architecture/STACK.mddoc6,130 bytes
  • ../../rust/crates/SKILL.mddoc5,002 bytes
  • ../../scala/projects/SKILL.mddoc4,599 bytes
  • ../../swift/apps/SKILL.mddoc12,499 bytes
  • ../../swift/releases/SKILL.mddoc11,127 bytes
Read SKILL.md

# Building Accessible Interfaces

Accessibility failures are concentrated in a few places: custom controls built from
`div`s, inputs without labels, invisible focus, low-contrast "subtle" text, and
modals that trap nothing or everything. Check those first; they cover most real
users' problems and most automated findings.

## Contents
- Step 1 — Semantic HTML first
- Step 2 — Every control has a name
- Step 3 — Keyboard and focus
- Step 4 — Contrast, measured
- Step 5 — Motion, zoom and touch
- Step 6 — Automated checks plus a manual pass
View the complete source on GitHub

Skills included

  • building-accessible-interfaces
  • wiring-application-config
  • shipping-build-artifacts
  • permissioning-ci-workflows
  • concurrent-branches
  • shipping-across-surfaces
  • writing-defect-reports
  • reporting-derived-metrics
  • guarding-destructive-operations
  • keeping-git-repos-clean
  • running-github-actions-efficiently
  • designing-interaction-states
  • designing-marketing-pages
  • rendering-untrusted-content
  • reproducing-ci-locally
  • running-resumable-sync-jobs
  • normalizing-text-for-measurement
  • calibrating-thresholds-and-baselines
  • designing-interfaces
  • verifying-external-behavior
  • building-go-projects
  • building-browser-extensions
  • designing-python-apis
  • building-python-clis
  • improving-python-code-quality
  • building-python-communities
  • documenting-python-libraries
  • deferring-heavy-dependencies
  • reviewing-python-libraries
  • building-llm-backed-features
  • building-python-mcp-servers
  • packaging-python-libraries
  • optimizing-python-performance
  • setting-up-python-libraries
  • managing-python-releases
  • auditing-python-security
  • testing-python-libraries
  • building-python-web-apps
  • building-rust-crates
  • building-scala-projects
  • building-swift-apps
  • shipping-swift-apps

Repository facts

License
MIT
Created
Jan 15, 2026
Last pushed
Nov 5, 2026
Forks
17
Open issues
2
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 262 notes
  • skills/common/accessible-interfaces/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/accessible-interfaces/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/accessible-interfaces/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/app-config/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/app-config/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/app-config/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/app-config/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/app-config/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/app-config/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/build-artifacts/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/build-artifacts/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/build-artifacts/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/build-artifacts/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/build-artifacts/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/build-artifacts/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/build-artifacts/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/build-artifacts/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/build-artifacts/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/build-artifacts/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/common/build-artifacts/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 468 signals by file

.claude-plugin/marketplace.json

  • Network accessline 8
    "description": "Opinionated, checklist-driven skills for professional software development across languages - Python libraries and web apps, Go projects, Swift/Apple apps, Rust crates, Scala projects, browser extensions, and UI design",    
  • Network accessline 9
    "version": "2.31.0",     "homepage": "https://github.com/wdm0006/python-skills",     "keywords": ["python", "go", "swift", "rust", "scala", "javascript", "browser-extension", "library", "packaging", "testing", "ci", "api-design", "xss", "sa
  • Network accessline 10
    "homepage": "https://github.com/wdm0006/python-skills",     "keywords": ["python", "go", "swift", "rust", "scala", "javascript", "browser-extension", "library", "packaging", "testing", "ci", "api-design", "xss", "sanitization", "sync-jobs",
  • Access to secretsline 278
    [Credential-related source omitted]

skills/common/accessible-interfaces/SKILL.md

  • Network accessline 71
    # axe reports contrast failures with the exact ratio and element npx --yes @axe-core/cli "http://127.0.0.1:$PORT/" --tags wcag2a,wcag2aa
  • Network accessline 72
    npx --yes @axe-core/cli "http://127.0.0.1:$PORT/" --tags wcag2a,wcag2aa

skills/common/destructive-operations/SKILL.md

  • Dangerous shell operationline 3
    description: Add and review preconditions on operations that delete, overwrite, rewrite history, or resolve a caller-supplied name to a filesystem path — refusing instead of warning, placing the guard ahead of the first mutation, structural
  • Dangerous shell operationline 3
    description: Add and review preconditions on operations that delete, overwrite, rewrite history, or resolve a caller-supplied name to a filesystem path — refusing instead of warning, placing the guard ahead of the first mutation, structural
  • Dangerous shell operationline 29
    // `rm -rf --ignore-unmatch .`, keeping only the state files it rewrites.
  • Dangerous shell operationline 29
    // `rm -rf --ignore-unmatch .`, keeping only the state files it rewrites.

skills/common/git-hygiene/SKILL.md

  • Dangerous shell operationline 3
    description: Prevents, detects, and remediates files that should never be committed — secrets (.env, API tokens, hardcoded credentials) and dev artifacts (build output, scratch databases, editor/OS files). Covers .gitignore (and why it does
  • Dangerous shell operationline 3
    description: Prevents, detects, and remediates files that should never be committed — secrets (.env, API tokens, hardcoded credentials) and dev artifacts (build output, scratch databases, editor/OS files). Covers .gitignore (and why it does
  • Dangerous shell operationline 23
    git rm --cached path/to/file        # untrack, leave working-tree copy in place
  • Dangerous shell operationline 23
    git rm --cached path/to/file        # untrack, leave working-tree copy in place
  • Dangerous shell operationline 24
    git rm -r --cached some/dir/        # for a directory
  • Dangerous shell operationline 24
    git rm -r --cached some/dir/        # for a directory
  • Dangerous shell operationline 62
    2. **Untrack going forward** (`git rm --cached` + `.gitignore` + `.env.example`
  • Dangerous shell operationline 62
    2. **Untrack going forward** (`git rm --cached` + `.gitignore` + `.env.example`
  • Network accessline 93
    # .pre-commit-config.yaml repos:   - repo: https://github.com/gitleaks/gitleaks
  • Network accessline 93
    # .pre-commit-config.yaml repos:   - repo: https://github.com/gitleaks/gitleaks
  • Network accessline 94
    repos:   - repo: https://github.com/gitleaks/gitleaks     rev: v8.18.0
  • Network accessline 94
    repos:   - repo: https://github.com/gitleaks/gitleaks     rev: v8.18.0
  • Network accessline 95
    - repo: https://github.com/gitleaks/gitleaks
  • Network accessline 95
    - repo: https://github.com/gitleaks/gitleaks
  • Network accessline 96
    rev: v8.18.0     hooks: [{id: gitleaks}]   - repo: https://github.com/Yelp/detect-secrets
  • Network accessline 96
    rev: v8.18.0     hooks: [{id: gitleaks}]   - repo: https://github.com/Yelp/detect-secrets
  • Network accessline 97
    hooks: [{id: gitleaks}]   - repo: https://github.com/Yelp/detect-secrets     rev: v1.5.0
  • Network accessline 97
    hooks: [{id: gitleaks}]   - repo: https://github.com/Yelp/detect-secrets     rev: v1.5.0
  • Network accessline 98
    - repo: https://github.com/Yelp/detect-secrets
  • Network accessline 98
    - repo: https://github.com/Yelp/detect-secrets
  • Access to secretsline 107
    [Credential-related source omitted]
  • Access to secretsline 107
    [Credential-related source omitted]
  • Access to secretsline 183
    [Credential-related source omitted]
  • Access to secretsline 183
    [Credential-related source omitted]
  • Dangerous shell operationline 188
    - [ ] `git rm --cached` + .gitignore entry for each offending file
  • Dangerous shell operationline 188
    - [ ] `git rm --cached` + .gitignore entry for each offending file

skills/common/github-actions/SKILL.md

  • Network accessline 49
    run: |           set -euxo pipefail           curl -fsSL -o /tmp/sl.zip https://github.com/realm/SwiftLint/releases/download/0.65.0/swiftlint_linux_amd64.zip
  • Network accessline 49
    run: |           set -euxo pipefail           curl -fsSL -o /tmp/sl.zip https://github.com/realm/SwiftLint/releases/download/0.65.0/swiftlint_linux_amd64.zip
  • Network accessline 49
    run: |           set -euxo pipefail           curl -fsSL -o /tmp/sl.zip https://github.com/realm/SwiftLint/releases/download/0.65.0/swiftlint_linux_amd64.zip
  • Network accessline 50
    set -euxo pipefail           curl -fsSL -o /tmp/sl.zip https://github.com/realm/SwiftLint/releases/download/0.65.0/swiftlint_linux_amd64.zip           unzip -oq /tmp/sl.zip -d /tmp/sl
  • Network accessline 50
    set -euxo pipefail           curl -fsSL -o /tmp/sl.zip https://github.com/realm/SwiftLint/releases/download/0.65.0/swiftlint_linux_amd64.zip           unzip -oq /tmp/sl.zip -d /tmp/sl
  • Network accessline 50
    set -euxo pipefail           curl -fsSL -o /tmp/sl.zip https://github.com/realm/SwiftLint/releases/download/0.65.0/swiftlint_linux_amd64.zip           unzip -oq /tmp/sl.zip -d /tmp/sl
  • Network accessline 51
    curl -fsSL -o /tmp/sl.zip https://github.com/realm/SwiftLint/releases/download/0.65.0/swiftlint_linux_amd64.zip
  • Network accessline 51
    curl -fsSL -o /tmp/sl.zip https://github.com/realm/SwiftLint/releases/download/0.65.0/swiftlint_linux_amd64.zip
  • Network accessline 51
    curl -fsSL -o /tmp/sl.zip https://github.com/realm/SwiftLint/releases/download/0.65.0/swiftlint_linux_amd64.zip
  • Network accessline 52
    unzip -oq /tmp/sl.zip -d /tmp/sl           sudo install -m0755 /tmp/sl/swiftlint-static /usr/local/bin/swiftlint           curl -fsSL -o /tmp/sf.zip https://github.com/nicklockwood/SwiftFormat/releases/download/0.62.1/swiftformat_linux.zip
  • Network accessline 52
    unzip -oq /tmp/sl.zip -d /tmp/sl           sudo install -m0755 /tmp/sl/swiftlint-static /usr/local/bin/swiftlint           curl -fsSL -o /tmp/sf.zip https://github.com/nicklockwood/SwiftFormat/releases/download/0.62.1/swiftformat_linux.zip
  • Network accessline 52
    unzip -oq /tmp/sl.zip -d /tmp/sl           sudo install -m0755 /tmp/sl/swiftlint-static /usr/local/bin/swiftlint           curl -fsSL -o /tmp/sf.zip https://github.com/nicklockwood/SwiftFormat/releases/download/0.62.1/swiftformat_linux.zip
  • Dangerous shell operationline 53
    sudo install -m0755 /tmp/sl/swiftlint-static /usr/local/bin/swiftlint
  • Dangerous shell operationline 53
    sudo install -m0755 /tmp/sl/swiftlint-static /usr/local/bin/swiftlint
  • Dangerous shell operationline 53
    sudo install -m0755 /tmp/sl/swiftlint-static /usr/local/bin/swiftlint
  • Network accessline 53
    sudo install -m0755 /tmp/sl/swiftlint-static /usr/local/bin/swiftlint           curl -fsSL -o /tmp/sf.zip https://github.com/nicklockwood/SwiftFormat/releases/download/0.62.1/swiftformat_linux.zip           unzip -oq /tmp/sf.zip -d /tmp/sf
  • Network accessline 53
    sudo install -m0755 /tmp/sl/swiftlint-static /usr/local/bin/swiftlint           curl -fsSL -o /tmp/sf.zip https://github.com/nicklockwood/SwiftFormat/releases/download/0.62.1/swiftformat_linux.zip           unzip -oq /tmp/sf.zip -d /tmp/sf
  • Network accessline 53
    sudo install -m0755 /tmp/sl/swiftlint-static /usr/local/bin/swiftlint           curl -fsSL -o /tmp/sf.zip https://github.com/nicklockwood/SwiftFormat/releases/download/0.62.1/swiftformat_linux.zip           unzip -oq /tmp/sf.zip -d /tmp/sf
  • Network accessline 54
    curl -fsSL -o /tmp/sf.zip https://github.com/nicklockwood/SwiftFormat/releases/download/0.62.1/swiftformat_linux.zip
  • Network accessline 54
    curl -fsSL -o /tmp/sf.zip https://github.com/nicklockwood/SwiftFormat/releases/download/0.62.1/swiftformat_linux.zip
  • Network accessline 54
    curl -fsSL -o /tmp/sf.zip https://github.com/nicklockwood/SwiftFormat/releases/download/0.62.1/swiftformat_linux.zip
  • Dangerous shell operationline 56
    sudo install -m0755 /tmp/sf/swiftformat_linux /usr/local/bin/swiftformat
  • Dangerous shell operationline 56
    sudo install -m0755 /tmp/sf/swiftformat_linux /usr/local/bin/swiftformat
  • Dangerous shell operationline 56
    sudo install -m0755 /tmp/sf/swiftformat_linux /usr/local/bin/swiftformat
  • Network accessline 62
    which needs a Swift runtime the bare runner lacks) and SwiftFormat's `swiftformat_linux` — both are statically linked and run on plain `ubuntu-latest`. Pin versions in the URL, `curl -f` to fail on a bad download, and reference the
  • Network accessline 62
    which needs a Swift runtime the bare runner lacks) and SwiftFormat's `swiftformat_linux` — both are statically linked and run on plain `ubuntu-latest`. Pin versions in the URL, `curl -f` to fail on a bad download, and reference the
  • Network accessline 62
    which needs a Swift runtime the bare runner lacks) and SwiftFormat's `swiftformat_linux` — both are statically linked and run on plain `ubuntu-latest`. Pin versions in the URL, `curl -f` to fail on a bad download, and reference the
  • Network accessline 63
    `swiftformat_linux` — both are statically linked and run on plain `ubuntu-latest`. Pin versions in the URL, `curl -f` to fail on a bad download, and reference the exact binary names rather than a fragile `find`.
  • Network accessline 63
    `swiftformat_linux` — both are statically linked and run on plain `ubuntu-latest`. Pin versions in the URL, `curl -f` to fail on a bad download, and reference the exact binary names rather than a fragile `find`.
  • Network accessline 63
    `swiftformat_linux` — both are statically linked and run on plain `ubuntu-latest`. Pin versions in the URL, `curl -f` to fail on a bad download, and reference the exact binary names rather than a fragile `find`.
  • Network accessline 64
    Pin versions in the URL, `curl -f` to fail on a bad download, and reference the
  • Network accessline 64
    Pin versions in the URL, `curl -f` to fail on a bad download, and reference the
  • Network accessline 64
    Pin versions in the URL, `curl -f` to fail on a bad download, and reference the
  • Network accessline 261
    Verify both a passing matrix and a deliberately failing cell on a disposable branch, then confirm the PR reports the original required check name. See [GitHub's required-check troubleshooting guidance](https://docs.github.com/en/pull-reques
  • Network accessline 261
    Verify both a passing matrix and a deliberately failing cell on a disposable branch, then confirm the PR reports the original required check name. See [GitHub's required-check troubleshooting guidance](https://docs.github.com/en/pull-reques
  • Network accessline 261
    Verify both a passing matrix and a deliberately failing cell on a disposable branch, then confirm the PR reports the original required check name. See [GitHub's required-check troubleshooting guidance](https://docs.github.com/en/pull-reques
  • Network accessline 262
    branch, then confirm the PR reports the original required check name. See [GitHub's required-check troubleshooting guidance](https://docs.github.com/en/pull-requests/how-tos/merge-and-close-pull-requests/troubleshooting-required-status-chec
  • Network accessline 262
    branch, then confirm the PR reports the original required check name. See [GitHub's required-check troubleshooting guidance](https://docs.github.com/en/pull-requests/how-tos/merge-and-close-pull-requests/troubleshooting-required-status-chec
  • Network accessline 262
    branch, then confirm the PR reports the original required check name. See [GitHub's required-check troubleshooting guidance](https://docs.github.com/en/pull-requests/how-tos/merge-and-close-pull-requests/troubleshooting-required-status-chec
  • Network accessline 263
    [GitHub's required-check troubleshooting guidance](https://docs.github.com/en/pull-requests/how-tos/merge-and-close-pull-requests/troubleshooting-required-status-checks)
  • Network accessline 263
    [GitHub's required-check troubleshooting guidance](https://docs.github.com/en/pull-requests/how-tos/merge-and-close-pull-requests/troubleshooting-required-status-checks)
  • Network accessline 263
    [GitHub's required-check troubleshooting guidance](https://docs.github.com/en/pull-requests/how-tos/merge-and-close-pull-requests/troubleshooting-required-status-checks)

skills/common/reproducing-ci-locally/SKILL.md

  • Access to secretsline 167
    [Credential-related source omitted]
  • Access to secretsline 167
    [Credential-related source omitted]
  • Access to secretsline 167
    [Credential-related source omitted]
  • Access to secretsline 274
    [Credential-related source omitted]
  • Access to secretsline 274
    [Credential-related source omitted]
  • Access to secretsline 274
    [Credential-related source omitted]

skills/common/sync-jobs/SKILL.md

  • Network accessline 289
    var scrapeClient = &http.Client{Timeout: 30 * time.Second}
  • Network accessline 289
    var scrapeClient = &http.Client{Timeout: 30 * time.Second}
  • Network accessline 384
    So the sign of the offset decides which failure you get: west of UTC you over-fetch (free, if the merge is idempotent), east of UTC you silently
  • Network accessline 384
    So the sign of the offset decides which failure you get: west of UTC you over-fetch (free, if the merge is idempotent), east of UTC you silently
  • Network accessline 385
    over-fetch (free, if the merge is idempotent), east of UTC you silently
  • Network accessline 385
    over-fetch (free, if the merge is idempotent), east of UTC you silently

skills/common/text-normalization/SKILL.md

  • Network accessline 203
    def test_markdown_measures_as_its_plain_equivalent():     markdown = "# Title\n\nSome [linked](https://example.com/a/long/path) text.\n"
  • Network accessline 203
    def test_markdown_measures_as_its_plain_equivalent():     markdown = "# Title\n\nSome [linked](https://example.com/a/long/path) text.\n"
  • Network accessline 204
    markdown = "# Title\n\nSome [linked](https://example.com/a/long/path) text.\n"
  • Network accessline 204
    markdown = "# Title\n\nSome [linked](https://example.com/a/long/path) text.\n"

skills/common/ui-design/SKILL.md

  • Network accessline 30
    uvx --from playwright playwright screenshot --viewport-size "1280,800" "http://127.0.0.1:$PORT/" before-home-desktop.png
  • Network accessline 30
    uvx --from playwright playwright screenshot --viewport-size "1280,800" "http://127.0.0.1:$PORT/" before-home-desktop.png
  • Network accessline 31
    uvx --from playwright playwright screenshot --viewport-size "390,844"  "http://127.0.0.1:$PORT/" before-home-phone.png
  • Network accessline 31
    uvx --from playwright playwright screenshot --viewport-size "390,844"  "http://127.0.0.1:$PORT/" before-home-phone.png

skills/common/verifying-external-behavior/SKILL.md

  • Network accessline 26
    # The exact URL, including the collection-vs-item distinction curl -s -o /dev/null -w '%{http_code}\n' https://api.example.com/v1/things
  • Network accessline 26
    # The exact URL, including the collection-vs-item distinction curl -s -o /dev/null -w '%{http_code}\n' https://api.example.com/v1/things
  • Network accessline 26
    # The exact URL, including the collection-vs-item distinction curl -s -o /dev/null -w '%{http_code}\n' https://api.example.com/v1/things
  • Network accessline 26
    # The exact URL, including the collection-vs-item distinction curl -s -o /dev/null -w '%{http_code}\n' https://api.example.com/v1/things
  • Network accessline 27
    curl -s -o /dev/null -w '%{http_code}\n' https://api.example.com/v1/things
  • Network accessline 27
    curl -s -o /dev/null -w '%{http_code}\n' https://api.example.com/v1/things
  • Network accessline 27
    curl -s -o /dev/null -w '%{http_code}\n' https://api.example.com/v1/things
  • Network accessline 27
    curl -s -o /dev/null -w '%{http_code}\n' https://api.example.com/v1/things
  • Network accessline 28
    curl -s -o /dev/null -w '%{http_code}\n' https://api.example.com/v1/things/1
  • Network accessline 28
    curl -s -o /dev/null -w '%{http_code}\n' https://api.example.com/v1/things/1
  • Network accessline 28
    curl -s -o /dev/null -w '%{http_code}\n' https://api.example.com/v1/things/1
  • Network accessline 28
    curl -s -o /dev/null -w '%{http_code}\n' https://api.example.com/v1/things/1

skills/go/projects/SKILL.md

  • Network accessline 298
    client := &http.Client{Timeout: 15 * time.Second}
  • Network accessline 298
    client := &http.Client{Timeout: 15 * time.Second}
  • Network accessline 298
    client := &http.Client{Timeout: 15 * time.Second}
  • Network accessline 299
    req, _ := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) req.Header.Set("User-Agent", "project/1.0 (+https://github.com/owner/project)") resp, err := client.Do(req)
  • Network accessline 299
    req, _ := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) req.Header.Set("User-Agent", "project/1.0 (+https://github.com/owner/project)") resp, err := client.Do(req)
  • Network accessline 299
    req, _ := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) req.Header.Set("User-Agent", "project/1.0 (+https://github.com/owner/project)") resp, err := client.Do(req)
  • Network accessline 300
    req.Header.Set("User-Agent", "project/1.0 (+https://github.com/owner/project)")
  • Network accessline 300
    req.Header.Set("User-Agent", "project/1.0 (+https://github.com/owner/project)")
  • Network accessline 300
    req.Header.Set("User-Agent", "project/1.0 (+https://github.com/owner/project)")
  • Network accessline 313
    hazard, it does not remove it — prefer a machine-readable attribute   (`data-date`, a JSON endpoint) when the source offers one. - **Hold the client in a package-level `var`** (`var httpClient = &http.Client{...}`)
  • Network accessline 313
    hazard, it does not remove it — prefer a machine-readable attribute   (`data-date`, a JSON endpoint) when the source offers one. - **Hold the client in a package-level `var`** (`var httpClient = &http.Client{...}`)
  • Network accessline 313
    hazard, it does not remove it — prefer a machine-readable attribute   (`data-date`, a JSON endpoint) when the source offers one. - **Hold the client in a package-level `var`** (`var httpClient = &http.Client{...}`)
  • Network accessline 314
    (`data-date`, a JSON endpoint) when the source offers one. - **Hold the client in a package-level `var`** (`var httpClient = &http.Client{...}`)   so tests can swap its transport for an `httptest` server and assert the headers
  • Network accessline 314
    (`data-date`, a JSON endpoint) when the source offers one. - **Hold the client in a package-level `var`** (`var httpClient = &http.Client{...}`)   so tests can swap its transport for an `httptest` server and assert the headers
  • Network accessline 314
    (`data-date`, a JSON endpoint) when the source offers one. - **Hold the client in a package-level `var`** (`var httpClient = &http.Client{...}`)   so tests can swap its transport for an `httptest` server and assert the headers
  • Network accessline 315
    - **Hold the client in a package-level `var`** (`var httpClient = &http.Client{...}`)
  • Network accessline 315
    - **Hold the client in a package-level `var`** (`var httpClient = &http.Client{...}`)
  • Network accessline 315
    - **Hold the client in a package-level `var`** (`var httpClient = &http.Client{...}`)

skills/python/api-design/EVOLUTION.md

  • Network accessline 124
    def fetch(url, *, verify=_UNSET):
  • Network accessline 124
    def fetch(url, *, verify=_UNSET):

skills/python/api-design/PATTERNS.md

  • Network accessline 193
    result = parse("https://x.com/y")
  • Network accessline 193
    result = parse("https://x.com/y")

skills/python/api-design/SKILL.md

  • Network accessline 286
    This skill is based on the [Ergonomics](https://mcginniscommawill.com/guides/python-library-development/#ergonomics-the-joy-of-good-design) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/gui
  • Network accessline 286
    This skill is based on the [Ergonomics](https://mcginniscommawill.com/guides/python-library-development/#ergonomics-the-joy-of-good-design) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/gui
  • Network accessline 288
    - [The Art of API Design](https://mcginniscommawill.com/posts/2025-02-03-art-of-api-design/)
  • Network accessline 288
    - [The Art of API Design](https://mcginniscommawill.com/posts/2025-02-03-art-of-api-design/)
  • Network accessline 289
    - [Designing for Developer Joy](https://mcginniscommawill.com/posts/2025-02-06-designing-for-developer-joy/)
  • Network accessline 289
    - [Designing for Developer Joy](https://mcginniscommawill.com/posts/2025-02-06-designing-for-developer-joy/)

skills/python/cli-development/CLICK_PATTERNS.md

  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]

skills/python/cli-development/SKILL.md

  • Network accessline 121
    This skill is based on the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/python-library-development/) by [Will McGinnis](https://mcginniscommawill.com/). See these posts for related coverage:
  • Network accessline 121
    This skill is based on the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/python-library-development/) by [Will McGinnis](https://mcginniscommawill.com/). See these posts for related coverage:
  • Network accessline 123
    - [Makefiles for Python Development](https://mcginniscommawill.com/posts/2025-04-08-makefiles-for-python/)
  • Network accessline 123
    - [Makefiles for Python Development](https://mcginniscommawill.com/posts/2025-04-08-makefiles-for-python/)
  • Network accessline 124
    - [pyproject.toml Explained](https://mcginniscommawill.com/posts/2025-01-26-pyproject-toml-explained/)
  • Network accessline 124
    - [pyproject.toml Explained](https://mcginniscommawill.com/posts/2025-01-26-pyproject-toml-explained/)

skills/python/cli-development/TYPER_GUIDE.md

  • Access to secretsline 59
    [Credential-related source omitted]
  • Access to secretsline 59
    [Credential-related source omitted]

skills/python/code-quality/SKILL.md

  • Network accessline 47
    # Optional def fetch(url: str, timeout: int | None = None) -> bytes: ...
  • Network accessline 47
    # Optional def fetch(url: str, timeout: int | None = None) -> bytes: ...
  • Network accessline 48
    def fetch(url: str, timeout: int | None = None) -> bytes: ...
  • Network accessline 48
    def fetch(url: str, timeout: int | None = None) -> bytes: ...
  • Network accessline 371
    This skill is based on the [Code Quality](https://mcginniscommawill.com/guides/python-library-development/#code-quality-the-foundation) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/
  • Network accessline 371
    This skill is based on the [Code Quality](https://mcginniscommawill.com/guides/python-library-development/#code-quality-the-foundation) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/
  • Network accessline 373
    - [Linting & Formatting with Ruff](https://mcginniscommawill.com/posts/2025-01-30-linting-formatting-ruff/)
  • Network accessline 373
    - [Linting & Formatting with Ruff](https://mcginniscommawill.com/posts/2025-01-30-linting-formatting-ruff/)
  • Network accessline 374
    - [Understanding McCabe Complexity](https://mcginniscommawill.com/posts/2025-04-24-understanding-mccabe-complexity/)
  • Network accessline 374
    - [Understanding McCabe Complexity](https://mcginniscommawill.com/posts/2025-04-24-understanding-mccabe-complexity/)
  • Network accessline 375
    - [Adding Type Hints](https://mcginniscommawill.com/posts/2025-04-03-pygeohash-type-hints/)
  • Network accessline 375
    - [Adding Type Hints](https://mcginniscommawill.com/posts/2025-04-03-pygeohash-type-hints/)

skills/python/code-quality/TYPE_PATTERNS.md

  • Network accessline 42
    # Keyword-only after * def fetch(url: str, *, timeout: int = 30) -> bytes:
  • Network accessline 42
    # Keyword-only after * def fetch(url: str, *, timeout: int = 30) -> bytes:
  • Network accessline 43
    def fetch(url: str, *, timeout: int = 30) -> bytes:
  • Network accessline 43
    def fetch(url: str, *, timeout: int = 30) -> bytes:

skills/python/community/SKILL.md

  • Network accessline 17
    git clone https://github.com/user/package.git
  • Network accessline 17
    git clone https://github.com/user/package.git
  • Network accessline 40
    Use [Contributor Covenant](https://www.contributor-covenant.org/) - the standard for open source.
  • Network accessline 40
    Use [Contributor Covenant](https://www.contributor-covenant.org/) - the standard for open source.
  • Network accessline 125
    This skill is based on the [Maintenance](https://mcginniscommawill.com/guides/python-library-development/#maintenance-the-long-game) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/pyt
  • Network accessline 125
    This skill is based on the [Maintenance](https://mcginniscommawill.com/guides/python-library-development/#maintenance-the-long-game) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/pyt
  • Network accessline 127
    - [Building Engaging Community](https://mcginniscommawill.com/posts/2025-01-22-building-engaging-community/)
  • Network accessline 127
    - [Building Engaging Community](https://mcginniscommawill.com/posts/2025-01-22-building-engaging-community/)
  • Network accessline 128
    - [Inner Source Introduction](https://mcginniscommawill.com/posts/2025-02-11-inner-source-introduction/)
  • Network accessline 128
    - [Inner Source Introduction](https://mcginniscommawill.com/posts/2025-02-11-inner-source-introduction/)
  • Network accessline 129
    - [Building Internal Library Community](https://mcginniscommawill.com/posts/2025-02-15-building-internal-library-community/)
  • Network accessline 129
    - [Building Internal Library Community](https://mcginniscommawill.com/posts/2025-02-15-building-internal-library-community/)
  • Network accessline 130
    - [From Silos to Shared Libraries](https://mcginniscommawill.com/posts/2025-02-18-silos-to-shared-libraries/)
  • Network accessline 130
    - [From Silos to Shared Libraries](https://mcginniscommawill.com/posts/2025-02-18-silos-to-shared-libraries/)
  • Network accessline 131
    - [Cursor for Library Maintenance](https://mcginniscommawill.com/posts/2025-03-09-cursor-for-library-maintenance/)
  • Network accessline 131
    - [Cursor for Library Maintenance](https://mcginniscommawill.com/posts/2025-03-09-cursor-for-library-maintenance/)

skills/python/community/TEMPLATES.md

  • Network accessline 25
    We use [uv](https://docs.astral.sh/uv/) for environment and dependency management.
  • Network accessline 25
    We use [uv](https://docs.astral.sh/uv/) for environment and dependency management.
  • Network accessline 27
    git clone https://github.com/user/package.git
  • Network accessline 27
    git clone https://github.com/user/package.git
  • Network accessline 83
    Adopt the [Contributor Covenant](https://www.contributor-covenant.org/) rather than writing your own. It is the de facto standard, translated into many languages, and instantly recognizable to contributors.
  • Network accessline 83
    Adopt the [Contributor Covenant](https://www.contributor-covenant.org/) rather than writing your own. It is the de facto standard, translated into many languages, and instantly recognizable to contributors.
  • Network accessline 87
    1. Download version 2.1 from the [Contributor Covenant site](https://www.contributor-covenant.org/version/2/1/code_of_conduct/).
  • Network accessline 87
    1. Download version 2.1 from the [Contributor Covenant site](https://www.contributor-covenant.org/version/2/1/code_of_conduct/).
  • Network accessline 205
    contact_links:   - name: Questions & Discussion     url: https://github.com/user/package/discussions
  • Network accessline 205
    contact_links:   - name: Questions & Discussion     url: https://github.com/user/package/discussions
  • Network accessline 206
    - name: Questions & Discussion     url: https://github.com/user/package/discussions     about: Ask usage questions and share ideas here.
  • Network accessline 206
    - name: Questions & Discussion     url: https://github.com/user/package/discussions     about: Ask usage questions and share ideas here.
  • Network accessline 207
    url: https://github.com/user/package/discussions
  • Network accessline 207
    url: https://github.com/user/package/discussions

skills/python/documentation/SKILL.md

  • Network accessline 67
    [![PyPI](https://badge.fury.io/py/package.svg)](https://pypi.org/project/package/)
  • Network accessline 67
    [![PyPI](https://badge.fury.io/py/package.svg)](https://pypi.org/project/package/)
  • Network accessline 82
    Full docs at [package.readthedocs.io](https://package.readthedocs.io/)
  • Network accessline 82
    Full docs at [package.readthedocs.io](https://package.readthedocs.io/)
  • Network accessline 124
    This skill is based on the [Documentation](https://mcginniscommawill.com/guides/python-library-development/#documentation-your-librarys-ambassador) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill
  • Network accessline 124
    This skill is based on the [Documentation](https://mcginniscommawill.com/guides/python-library-development/#documentation-your-librarys-ambassador) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill
  • Network accessline 126
    - [Writing Effective Docstrings](https://mcginniscommawill.com/posts/2025-03-06-writing-effective-docstrings/)
  • Network accessline 126
    - [Writing Effective Docstrings](https://mcginniscommawill.com/posts/2025-03-06-writing-effective-docstrings/)
  • Network accessline 127
    - [Getting Started with Sphinx](https://mcginniscommawill.com/posts/2025-03-15-getting-started-sphinx/)
  • Network accessline 127
    - [Getting Started with Sphinx](https://mcginniscommawill.com/posts/2025-03-15-getting-started-sphinx/)
  • Network accessline 128
    - [Automating Docs Deployment](https://mcginniscommawill.com/posts/2025-03-23-automating-docs-deployment/)
  • Network accessline 128
    - [Automating Docs Deployment](https://mcginniscommawill.com/posts/2025-03-23-automating-docs-deployment/)
  • Network accessline 129
    - [Documenting Your Library's API](https://mcginniscommawill.com/posts/2025-03-30-documenting-library-api/)
  • Network accessline 129
    - [Documenting Your Library's API](https://mcginniscommawill.com/posts/2025-03-30-documenting-library-api/)

skills/python/documentation/SPHINX_CONFIG.md

  • Network accessline 89
    # Cross-link identifiers to the stdlib and common libraries. intersphinx_mapping = {     "python": ("https://docs.python.org/3", None),
  • Network accessline 89
    # Cross-link identifiers to the stdlib and common libraries. intersphinx_mapping = {     "python": ("https://docs.python.org/3", None),
  • Network accessline 90
    intersphinx_mapping = {     "python": ("https://docs.python.org/3", None),     "numpy": ("https://numpy.org/doc/stable/", None),
  • Network accessline 90
    intersphinx_mapping = {     "python": ("https://docs.python.org/3", None),     "numpy": ("https://numpy.org/doc/stable/", None),
  • Network accessline 91
    "python": ("https://docs.python.org/3", None),
  • Network accessline 91
    "python": ("https://docs.python.org/3", None),
  • Network accessline 92
    "numpy": ("https://numpy.org/doc/stable/", None),
  • Network accessline 92
    "numpy": ("https://numpy.org/doc/stable/", None),

skills/python/library-review/SKILL.md

  • Network accessline 11
    git clone https://github.com/user/package && cd package
  • Network accessline 11
    git clone https://github.com/user/package && cd package
  • Network accessline 103
    This skill is based on the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/python-library-development/) by [Will McGinnis](https://mcginniscommawill.com/). The review criteria in this skill draw from
  • Network accessline 103
    This skill is based on the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/python-library-development/) by [Will McGinnis](https://mcginniscommawill.com/). The review criteria in this skill draw from

skills/python/llm-features/SKILL.md

  • Network accessline 251
    This skill is based on the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/python-library-development/) by [Will McGinnis](https://mcginniscommawill.com/).
  • Network accessline 251
    This skill is based on the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/python-library-development/) by [Will McGinnis](https://mcginniscommawill.com/).
  • Network accessline 251
    This skill is based on the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/python-library-development/) by [Will McGinnis](https://mcginniscommawill.com/).

skills/python/mcp-servers/SKILL.md

  • Network accessline 263
    This skill is based on the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/python-library-development/) by [Will McGinnis](https://mcginniscommawill.com/).
  • Network accessline 263
    This skill is based on the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/python-library-development/) by [Will McGinnis](https://mcginniscommawill.com/).
  • Network accessline 263
    This skill is based on the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/python-library-development/) by [Will McGinnis](https://mcginniscommawill.com/).

skills/python/packaging/CONDA.md

  • Network accessline 25
    source:   url: https://pypi.io/packages/source/m/my-package/my_package-1.0.0.tar.gz
  • Network accessline 25
    source:   url: https://pypi.io/packages/source/m/my-package/my_package-1.0.0.tar.gz
  • Network accessline 26
    url: https://pypi.io/packages/source/m/my-package/my_package-1.0.0.tar.gz
  • Network accessline 26
    url: https://pypi.io/packages/source/m/my-package/my_package-1.0.0.tar.gz
  • Network accessline 47
    about:   home: https://github.com/user/my-package
  • Network accessline 47
    about:   home: https://github.com/user/my-package
  • Network accessline 48
    home: https://github.com/user/my-package
  • Network accessline 48
    home: https://github.com/user/my-package

skills/python/packaging/SKILL.md

  • Network accessline 27
    [project.urls] Homepage = "https://github.com/user/package"
  • Network accessline 27
    [project.urls] Homepage = "https://github.com/user/package"
  • Network accessline 28
    Homepage = "https://github.com/user/package"
  • Network accessline 28
    Homepage = "https://github.com/user/package"
  • Network accessline 29
    Documentation = "https://package.readthedocs.io"
  • Network accessline 29
    Documentation = "https://package.readthedocs.io"
  • Network accessline 90
    A dependency such as `toolkit @ https://example.com/toolkit.whl` may resolve in
  • Network accessline 90
    A dependency such as `toolkit @ https://example.com/toolkit.whl` may resolve in
  • Network accessline 95
    [project] dependencies = [     "toolkit @ https://example.com/releases/toolkit.whl",
  • Network accessline 95
    [project] dependencies = [     "toolkit @ https://example.com/releases/toolkit.whl",
  • Network accessline 96
    dependencies = [     "toolkit @ https://example.com/releases/toolkit.whl", ]
  • Network accessline 96
    dependencies = [     "toolkit @ https://example.com/releases/toolkit.whl", ]
  • Network accessline 97
    "toolkit @ https://example.com/releases/toolkit.whl",
  • Network accessline 97
    "toolkit @ https://example.com/releases/toolkit.whl",
  • Network accessline 194
    This skill is based on the [Distribution](https://mcginniscommawill.com/guides/python-library-development/#distribution-reaching-your-users) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/gu
  • Network accessline 194
    This skill is based on the [Distribution](https://mcginniscommawill.com/guides/python-library-development/#distribution-reaching-your-users) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/gu
  • Network accessline 196
    - [pyproject.toml Explained](https://mcginniscommawill.com/posts/2025-01-26-pyproject-toml-explained/)
  • Network accessline 196
    - [pyproject.toml Explained](https://mcginniscommawill.com/posts/2025-01-26-pyproject-toml-explained/)
  • Network accessline 197
    - [Publishing PyGeohash](https://mcginniscommawill.com/posts/2025-04-06-pygeohash-publishing/)
  • Network accessline 197
    - [Publishing PyGeohash](https://mcginniscommawill.com/posts/2025-04-06-pygeohash-publishing/)

skills/python/performance/SKILL.md

  • Network accessline 122
    This skill is based on the [Performance](https://mcginniscommawill.com/guides/python-library-development/#performance-beyond-raw-speed) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/
  • Network accessline 122
    This skill is based on the [Performance](https://mcginniscommawill.com/guides/python-library-development/#performance-beyond-raw-speed) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/
  • Network accessline 124
    - [Performance Benchmarking](https://mcginniscommawill.com/posts/2025-02-22-testing-benchmark/)
  • Network accessline 124
    - [Performance Benchmarking](https://mcginniscommawill.com/posts/2025-02-22-testing-benchmark/)
  • Network accessline 125
    - [Profiling with PyInstrument](https://mcginniscommawill.com/posts/2025-02-25-testing-profiling-pyinstrument/)
  • Network accessline 125
    - [Profiling with PyInstrument](https://mcginniscommawill.com/posts/2025-02-25-testing-profiling-pyinstrument/)
  • Network accessline 126
    - [Memory Profiling with Memray](https://mcginniscommawill.com/posts/2025-03-01-testing-profiling-memray/)
  • Network accessline 126
    - [Memory Profiling with Memray](https://mcginniscommawill.com/posts/2025-03-01-testing-profiling-memray/)

skills/python/project-setup/CI.md

  • Network accessline 128
    # .pre-commit-config.yaml repos:   - repo: https://github.com/pre-commit/pre-commit-hooks
  • Network accessline 128
    # .pre-commit-config.yaml repos:   - repo: https://github.com/pre-commit/pre-commit-hooks
  • Network accessline 128
    # .pre-commit-config.yaml repos:   - repo: https://github.com/pre-commit/pre-commit-hooks
  • Network accessline 129
    repos:   - repo: https://github.com/pre-commit/pre-commit-hooks     rev: v4.5.0
  • Network accessline 129
    repos:   - repo: https://github.com/pre-commit/pre-commit-hooks     rev: v4.5.0
  • Network accessline 129
    repos:   - repo: https://github.com/pre-commit/pre-commit-hooks     rev: v4.5.0
  • Network accessline 130
    - repo: https://github.com/pre-commit/pre-commit-hooks
  • Network accessline 130
    - repo: https://github.com/pre-commit/pre-commit-hooks
  • Network accessline 130
    - repo: https://github.com/pre-commit/pre-commit-hooks
  • Network accessline 139
    - repo: https://github.com/astral-sh/ruff-pre-commit
  • Network accessline 139
    - repo: https://github.com/astral-sh/ruff-pre-commit
  • Network accessline 139
    - repo: https://github.com/astral-sh/ruff-pre-commit
  • Network accessline 146
    - repo: https://github.com/pre-commit/mirrors-mypy
  • Network accessline 146
    - repo: https://github.com/pre-commit/mirrors-mypy
  • Network accessline 146
    - repo: https://github.com/pre-commit/mirrors-mypy

skills/python/project-setup/MAKEFILE.md

  • Dangerous shell operationline 33
    rm -rf build dist *.egg-info .pytest_cache .mypy_cache .ruff_cache .coverage htmlcov
  • Dangerous shell operationline 33
    rm -rf build dist *.egg-info .pytest_cache .mypy_cache .ruff_cache .coverage htmlcov
  • Dangerous shell operationline 34
    find . -type d -name __pycache__ -exec rm -rf {} +
  • Dangerous shell operationline 34
    find . -type d -name __pycache__ -exec rm -rf {} +

skills/python/project-setup/PYPROJECT.md

  • Network accessline 51
    [project.urls] Homepage = "https://github.com/username/my-library"
  • Network accessline 51
    [project.urls] Homepage = "https://github.com/username/my-library"
  • Network accessline 51
    [project.urls] Homepage = "https://github.com/username/my-library"
  • Network accessline 52
    Homepage = "https://github.com/username/my-library"
  • Network accessline 52
    Homepage = "https://github.com/username/my-library"
  • Network accessline 52
    Homepage = "https://github.com/username/my-library"
  • Network accessline 53
    Documentation = "https://my-library.readthedocs.io"
  • Network accessline 53
    Documentation = "https://my-library.readthedocs.io"
  • Network accessline 53
    Documentation = "https://my-library.readthedocs.io"
  • Network accessline 54
    Repository = "https://github.com/username/my-library"
  • Network accessline 54
    Repository = "https://github.com/username/my-library"
  • Network accessline 54
    Repository = "https://github.com/username/my-library"
  • Network accessline 55
    Changelog = "https://github.com/username/my-library/blob/main/CHANGELOG.md"
  • Network accessline 55
    Changelog = "https://github.com/username/my-library/blob/main/CHANGELOG.md"
  • Network accessline 55
    Changelog = "https://github.com/username/my-library/blob/main/CHANGELOG.md"

skills/python/project-setup/SKILL.md

  • Network accessline 139
    This skill is based on the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/python-library-development/) by [Will McGinnis](https://mcginniscommawill.com/). See these posts for deeper coverage:
  • Network accessline 139
    This skill is based on the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/python-library-development/) by [Will McGinnis](https://mcginniscommawill.com/). See these posts for deeper coverage:
  • Network accessline 141
    - [Defining Library Scope](https://mcginniscommawill.com/posts/2025-01-17-defining-library-scope/)
  • Network accessline 141
    - [Defining Library Scope](https://mcginniscommawill.com/posts/2025-01-17-defining-library-scope/)
  • Network accessline 142
    - [Dependency Management](https://mcginniscommawill.com/posts/2025-01-21-dependency-management/)
  • Network accessline 142
    - [Dependency Management](https://mcginniscommawill.com/posts/2025-01-21-dependency-management/)
  • Network accessline 143
    - [Licensing Your Project](https://mcginniscommawill.com/posts/2025-01-24-licensing-your-project/)
  • Network accessline 143
    - [Licensing Your Project](https://mcginniscommawill.com/posts/2025-01-24-licensing-your-project/)
  • Network accessline 144
    - [pyproject.toml Explained](https://mcginniscommawill.com/posts/2025-01-26-pyproject-toml-explained/)
  • Network accessline 144
    - [pyproject.toml Explained](https://mcginniscommawill.com/posts/2025-01-26-pyproject-toml-explained/)

skills/python/project-setup/scripts/create_project.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 152
    [project.urls]         Homepage = {_toml_string(f"https://github.com/username/{name}")}
  • Network accessline 152
    [project.urls]         Homepage = {_toml_string(f"https://github.com/username/{name}")}
  • Network accessline 153
    Homepage = {_toml_string(f"https://github.com/username/{name}")}
  • Network accessline 153
    Homepage = {_toml_string(f"https://github.com/username/{name}")}
  • Network accessline 154
    Repository = {_toml_string(f"https://github.com/username/{name}")}
  • Network accessline 154
    Repository = {_toml_string(f"https://github.com/username/{name}")}
  • Network accessline 233
    git clone https://github.com/username/{name}
  • Network accessline 233
    git clone https://github.com/username/{name}
  • Dangerous shell operationline 329
    \tfind . -type d -name __pycache__ -exec rm -rf {{}} +
  • Dangerous shell operationline 329
    \tfind . -type d -name __pycache__ -exec rm -rf {{}} +
  • Network accessline 399
    pre_commit = dedent('''         repos:           - repo: https://github.com/pre-commit/pre-commit-hooks
  • Network accessline 399
    pre_commit = dedent('''         repos:           - repo: https://github.com/pre-commit/pre-commit-hooks
  • Network accessline 400
    repos:           - repo: https://github.com/pre-commit/pre-commit-hooks             rev: v4.5.0
  • Network accessline 400
    repos:           - repo: https://github.com/pre-commit/pre-commit-hooks             rev: v4.5.0
  • Network accessline 401
    - repo: https://github.com/pre-commit/pre-commit-hooks
  • Network accessline 401
    - repo: https://github.com/pre-commit/pre-commit-hooks
  • Network accessline 410
    - repo: https://github.com/astral-sh/ruff-pre-commit
  • Network accessline 410
    - repo: https://github.com/astral-sh/ruff-pre-commit
  • Network accessline 417
    - repo: https://github.com/pre-commit/mirrors-mypy
  • Network accessline 417
    - repo: https://github.com/pre-commit/mirrors-mypy

skills/python/release-management/AUTOMATION.md

  • Network accessline 29
    One tag-triggered workflow builds the distribution with `uv`, creates a GitHub release, and publishes to PyPI via [trusted publishing](https://docs.pypi.org/trusted-publishers/)
  • Network accessline 29
    One tag-triggered workflow builds the distribution with `uv`, creates a GitHub release, and publishes to PyPI via [trusted publishing](https://docs.pypi.org/trusted-publishers/)
  • Network accessline 29
    One tag-triggered workflow builds the distribution with `uv`, creates a GitHub release, and publishes to PyPI via [trusted publishing](https://docs.pypi.org/trusted-publishers/)
  • Network accessline 30
    release, and publishes to PyPI via [trusted publishing](https://docs.pypi.org/trusted-publishers/)
  • Network accessline 30
    release, and publishes to PyPI via [trusted publishing](https://docs.pypi.org/trusted-publishers/)
  • Network accessline 30
    release, and publishes to PyPI via [trusted publishing](https://docs.pypi.org/trusted-publishers/)

skills/python/release-management/SKILL.md

  • Network accessline 37
    [Unreleased]: https://github.com/user/repo/compare/v1.2.0...HEAD
  • Network accessline 37
    [Unreleased]: https://github.com/user/repo/compare/v1.2.0...HEAD
  • Network accessline 38
    [1.2.0]: https://github.com/user/repo/releases/tag/v1.2.0
  • Network accessline 38
    [1.2.0]: https://github.com/user/repo/releases/tag/v1.2.0
  • Network accessline 135
    This skill is based on the [Maintenance](https://mcginniscommawill.com/guides/python-library-development/#maintenance-the-long-game) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/pyt
  • Network accessline 135
    This skill is based on the [Maintenance](https://mcginniscommawill.com/guides/python-library-development/#maintenance-the-long-game) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/pyt
  • Network accessline 137
    - [Semantic Versioning](https://mcginniscommawill.com/posts/2025-01-28-semantic-versioning/)
  • Network accessline 137
    - [Semantic Versioning](https://mcginniscommawill.com/posts/2025-01-28-semantic-versioning/)

skills/python/release-management/scripts/bump_version.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

skills/python/security-audit/CI_SECURITY.md

  • Network accessline 85
    # .pre-commit-config.yaml repos:   - repo: https://github.com/Yelp/detect-secrets
  • Network accessline 85
    # .pre-commit-config.yaml repos:   - repo: https://github.com/Yelp/detect-secrets
  • Network accessline 86
    repos:   - repo: https://github.com/Yelp/detect-secrets     rev: v1.5.0
  • Network accessline 86
    repos:   - repo: https://github.com/Yelp/detect-secrets     rev: v1.5.0
  • Network accessline 87
    - repo: https://github.com/Yelp/detect-secrets
  • Network accessline 87
    - repo: https://github.com/Yelp/detect-secrets
  • Dangerous shell operationline 141
    value = eval(expr)  # nosemgrep: python.lang.security.audit.eval-detected
  • Dangerous shell operationline 141
    value = eval(expr)  # nosemgrep: python.lang.security.audit.eval-detected

skills/python/security-audit/SKILL.md

  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Network accessline 151
    This skill is based on the [Security](https://mcginniscommawill.com/guides/python-library-development/#security-a-matter-of-trust) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/pytho
  • Network accessline 151
    This skill is based on the [Security](https://mcginniscommawill.com/guides/python-library-development/#security-a-matter-of-trust) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/pytho
  • Network accessline 153
    - [Avoiding Injection Flaws](https://mcginniscommawill.com/posts/2025-01-18-avoiding-injection-flaws/)
  • Network accessline 153
    - [Avoiding Injection Flaws](https://mcginniscommawill.com/posts/2025-01-18-avoiding-injection-flaws/)
  • Network accessline 154
    - [Intro to Bandit](https://mcginniscommawill.com/posts/2025-01-25-intro-to-bandit/)
  • Network accessline 154
    - [Intro to Bandit](https://mcginniscommawill.com/posts/2025-01-25-intro-to-bandit/)
  • Network accessline 155
    - [Advanced Bandit Configuration](https://mcginniscommawill.com/posts/2025-08-22-advanced-bandit-configuration/)
  • Network accessline 155
    - [Advanced Bandit Configuration](https://mcginniscommawill.com/posts/2025-08-22-advanced-bandit-configuration/)
  • Network accessline 156
    - [SQL Injection Detection](https://mcginniscommawill.com/posts/2025-08-25-sql-injection-detection-b608/)
  • Network accessline 156
    - [SQL Injection Detection](https://mcginniscommawill.com/posts/2025-08-25-sql-injection-detection-b608/)
  • Network accessline 157
    - [Dependency Security with pip-audit](https://mcginniscommawill.com/posts/2025-01-27-dependency-security-pip-audit/)
  • Network accessline 157
    - [Dependency Security with pip-audit](https://mcginniscommawill.com/posts/2025-01-27-dependency-security-pip-audit/)
  • Network accessline 158
    - [Handling Sensitive Data](https://mcginniscommawill.com/posts/2025-01-29-handling-sensitive-data/)
  • Network accessline 158
    - [Handling Sensitive Data](https://mcginniscommawill.com/posts/2025-01-29-handling-sensitive-data/)
  • Network accessline 159
    - [Secure Coding Practices](https://mcginniscommawill.com/posts/2025-02-02-secure-coding-practices/)
  • Network accessline 159
    - [Secure Coding Practices](https://mcginniscommawill.com/posts/2025-02-02-secure-coding-practices/)

skills/python/security-audit/VULNERABILITIES.md

  • Dangerous shell operationline 40
    # Vulnerable — shell parses the string, so filename can inject `; rm -rf /`
  • Dangerous shell operationline 40
    # Vulnerable — shell parses the string, so filename can inject `; rm -rf /`
  • Access to secretsline 80
    [Credential-related source omitted]
  • Access to secretsline 80
    [Credential-related source omitted]
  • Access to secretsline 86
    [Credential-related source omitted]
  • Access to secretsline 86
    [Credential-related source omitted]
  • Access to secretsline 87
    [Credential-related source omitted]
  • Access to secretsline 87
    [Credential-related source omitted]
  • Network accessline 136
    # Vulnerable — attacker points url at internal metadata / localhost services url = request.args["url"] resp = requests.get(url)
  • Network accessline 136
    # Vulnerable — attacker points url at internal metadata / localhost services url = request.args["url"] resp = requests.get(url)
  • Network accessline 138
    resp = requests.get(url)
  • Network accessline 138
    resp = requests.get(url)
  • Network accessline 145
    if any(ipaddress.ip_address(item[4][0]).is_private for item in addresses):     raise ValueError("Disallowed URL") resp = requests.get(url, timeout=5)  # resolves the hostname again
  • Network accessline 145
    if any(ipaddress.ip_address(item[4][0]).is_private for item in addresses):     raise ValueError("Disallowed URL") resp = requests.get(url, timeout=5)  # resolves the hostname again
  • Network accessline 147
    resp = requests.get(url, timeout=5)  # resolves the hostname again
  • Network accessline 147
    resp = requests.get(url, timeout=5)  # resolves the hostname again

skills/python/security-audit/scripts/security_scan.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

skills/python/testing-strategy/SKILL.md

  • Network accessline 161
    # GOOD — pins both the count and the values. canonicals = re.findall(r'<link rel="canonical" href="([^"]*)"', html) assert canonicals == ["https://example.com/guide/"]
  • Network accessline 161
    # GOOD — pins both the count and the values. canonicals = re.findall(r'<link rel="canonical" href="([^"]*)"', html) assert canonicals == ["https://example.com/guide/"]
  • Network accessline 161
    # GOOD — pins both the count and the values. canonicals = re.findall(r'<link rel="canonical" href="([^"]*)"', html) assert canonicals == ["https://example.com/guide/"]
  • Network accessline 161
    # GOOD — pins both the count and the values. canonicals = re.findall(r'<link rel="canonical" href="([^"]*)"', html) assert canonicals == ["https://example.com/guide/"]
  • Network accessline 163
    assert canonicals == ["https://example.com/guide/"]
  • Network accessline 163
    assert canonicals == ["https://example.com/guide/"]
  • Network accessline 163
    assert canonicals == ["https://example.com/guide/"]
  • Network accessline 163
    assert canonicals == ["https://example.com/guide/"]
  • Access to secretsline 753
    [Credential-related source omitted]
  • Access to secretsline 753
    [Credential-related source omitted]
  • Access to secretsline 753
    [Credential-related source omitted]
  • Access to secretsline 753
    [Credential-related source omitted]
  • Network accessline 844
    This skill is based on the [Code Quality](https://mcginniscommawill.com/guides/python-library-development/#code-quality-the-foundation) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/
  • Network accessline 844
    This skill is based on the [Code Quality](https://mcginniscommawill.com/guides/python-library-development/#code-quality-the-foundation) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/
  • Network accessline 844
    This skill is based on the [Code Quality](https://mcginniscommawill.com/guides/python-library-development/#code-quality-the-foundation) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/
  • Network accessline 844
    This skill is based on the [Code Quality](https://mcginniscommawill.com/guides/python-library-development/#code-quality-the-foundation) section of the [Guide to Developing High-Quality Python Libraries](https://mcginniscommawill.com/guides/
  • Network accessline 846
    - [Testing with Pytest](https://mcginniscommawill.com/posts/2025-02-04-testing-pytest-intro/)
  • Network accessline 846
    - [Testing with Pytest](https://mcginniscommawill.com/posts/2025-02-04-testing-pytest-intro/)
  • Network accessline 846
    - [Testing with Pytest](https://mcginniscommawill.com/posts/2025-02-04-testing-pytest-intro/)
  • Network accessline 846
    - [Testing with Pytest](https://mcginniscommawill.com/posts/2025-02-04-testing-pytest-intro/)
  • Network accessline 847
    - [Testing Coverage](https://mcginniscommawill.com/posts/2025-02-09-testing-coverage/)
  • Network accessline 847
    - [Testing Coverage](https://mcginniscommawill.com/posts/2025-02-09-testing-coverage/)
  • Network accessline 847
    - [Testing Coverage](https://mcginniscommawill.com/posts/2025-02-09-testing-coverage/)
  • Network accessline 847
    - [Testing Coverage](https://mcginniscommawill.com/posts/2025-02-09-testing-coverage/)
  • Network accessline 848
    - [Testing with Tox](https://mcginniscommawill.com/posts/2025-02-13-testing-tox/)
  • Network accessline 848
    - [Testing with Tox](https://mcginniscommawill.com/posts/2025-02-13-testing-tox/)
  • Network accessline 848
    - [Testing with Tox](https://mcginniscommawill.com/posts/2025-02-13-testing-tox/)
  • Network accessline 848
    - [Testing with Tox](https://mcginniscommawill.com/posts/2025-02-13-testing-tox/)
  • Network accessline 849
    - [Testing with Mocking](https://mcginniscommawill.com/posts/2025-02-16-testing-mocking/)
  • Network accessline 849
    - [Testing with Mocking](https://mcginniscommawill.com/posts/2025-02-16-testing-mocking/)
  • Network accessline 849
    - [Testing with Mocking](https://mcginniscommawill.com/posts/2025-02-16-testing-mocking/)
  • Network accessline 849
    - [Testing with Mocking](https://mcginniscommawill.com/posts/2025-02-16-testing-mocking/)

skills/python/web-app-architecture/AUTH.md

  • Access to secretsline 101
    [Credential-related source omitted]
  • Access to secretsline 101
    [Credential-related source omitted]
  • Access to secretsline 128
    [Credential-related source omitted]
  • Access to secretsline 128
    [Credential-related source omitted]

skills/python/web-app-architecture/FRONTEND.md

  • Access to secretsline 16
    [Credential-related source omitted]
  • Access to secretsline 16
    [Credential-related source omitted]

skills/python/web-app-architecture/PAYMENTS.md

  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Network accessline 108
    resource "stripe_webhook_endpoint" "app" {   url            = "https://${var.app_host}/api/v1/stripe/webhook"
  • Network accessline 108
    resource "stripe_webhook_endpoint" "app" {   url            = "https://${var.app_host}/api/v1/stripe/webhook"
  • Network accessline 109
    url            = "https://${var.app_host}/api/v1/stripe/webhook"
  • Network accessline 109
    url            = "https://${var.app_host}/api/v1/stripe/webhook"

skills/python/web-app-architecture/SKILL.md

  • Access to secretsline 114
    [Credential-related source omitted]
  • Access to secretsline 114
    [Credential-related source omitted]
  • Access to secretsline 150
    [Credential-related source omitted]
  • Access to secretsline 150
    [Credential-related source omitted]

skills/python/web-app-architecture/STACK.md

  • Access to secretsline 75
    [Credential-related source omitted]
  • Access to secretsline 75
    [Credential-related source omitted]

skills/rust/crates/SKILL.md

  • Network accessline 26
    license = "MIT OR Apache-2.0" description = "One line; required by crates.io" repository = "https://github.com/owner/my-crate"
  • Network accessline 26
    license = "MIT OR Apache-2.0" description = "One line; required by crates.io" repository = "https://github.com/owner/my-crate"
  • Network accessline 28
    repository = "https://github.com/owner/my-crate"
  • Network accessline 28
    repository = "https://github.com/owner/my-crate"

skills/swift/apps/SKILL.md

  • Access to secretsline 3
    [Credential-related source omitted]
  • Access to secretsline 3
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Dangerous shell operationline 43
    - run: sudo xcode-select -s /Applications/Xcode_26.2.app
  • Dangerous shell operationline 43
    - run: sudo xcode-select -s /Applications/Xcode_26.2.app
  • Access to secretsline 105
    [Credential-related source omitted]
  • Access to secretsline 105
    [Credential-related source omitted]
  • Access to secretsline 109
    [Credential-related source omitted]
  • Access to secretsline 109
    [Credential-related source omitted]
  • Access to secretsline 239
    [Credential-related source omitted]
  • Access to secretsline 239
    [Credential-related source omitted]

skills/swift/releases/SKILL.md

  • Network accessline 55
    [Credential-related source omitted]
  • Network accessline 55
    [Credential-related source omitted]
  • Access to secretsline 55
    [Credential-related source omitted]
  • Access to secretsline 55
    [Credential-related source omitted]
  • Network accessline 56
    [Credential-related source omitted]
  • Network accessline 56
    [Credential-related source omitted]
  • Access to secretsline 56
    [Credential-related source omitted]
  • Access to secretsline 56
    [Credential-related source omitted]
  • Network accessline 57
    key_id: ENV.fetch("ASC_KEY_ID"),
  • Network accessline 57
    key_id: ENV.fetch("ASC_KEY_ID"),
  • Network accessline 58
    issuer_id: ENV.fetch("ASC_ISSUER_ID"),
  • Network accessline 58
    issuer_id: ENV.fetch("ASC_ISSUER_ID"),
  • Network accessline 59
    key_filepath: ENV.fetch("ASC_KEY_PATH"),
  • Network accessline 59
    key_filepath: ENV.fetch("ASC_KEY_PATH"),

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 464 facts

and 414 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skills/common/accessible-interfaces/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/common/accessible-interfaces/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/common/accessible-interfaces/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/common/accessible-interfaces/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/common/accessible-interfaces/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.