AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified CC0-1.0 Self-run

Python Types Contracts

skill-ahgraber-skills-python-types-contracts · by ahgraber

|-

No reviews yet
0 installs
36 views
0.0% view→install

Install

$ agentstack add skill-ahgraber-skills-python-types-contracts

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-ahgraber-skills-python-types-contracts)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Python Types Contracts? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Python Types and Contracts

Overview

Treat type hints as interface design, not decoration. Focus on explicit contracts, stable public APIs, and boundary-safe modeling.

These are preferred defaults for common cases, not universal rules. When a default conflicts with project constraints, suggest a better-fit alternative and explain tradeoffs and compensating controls.

When to Use

  • Public API signatures lack type annotations or use overly broad types.
  • Pydantic models are scattered throughout internal logic instead of at trust boundaries.
  • Contract changes risk breaking downstream consumers without migration paths.
  • Interfaces accept Any, object, or untyped dicts where narrower types apply.
  • Schema boundaries between layers (API, DB, domain) are implicit or inconsistent.
  • Adding or evolving protocols, abstract base classes, or structural subtyping.

When NOT to use:

  • Pure implementation-level code with no public interface.
  • Throwaway scripts or one-off data munging where type rigor adds no value.
  • Performance-critical inner loops where typing overhead matters more than safety.

Quick Reference

  • Type public APIs and keep contracts explicit.
  • Prefer narrow interfaces and boundary protocols over broad parameter types.
  • Use pydantic at trust boundaries by default, not everywhere.
  • Make compatibility and migration impact explicit for any contract change.
  • Favor Protocol for structural subtyping over deep inheritance hierarchies.
  • Return concrete types from public functions; accept protocols or unions as inputs.

Common Mistakes

  • Typing everything identically.

Internal helpers don't need the same rigor as public APIs. Over-annotating private code adds noise without safety.

  • Pydantic everywhere.

Using pydantic models for internal data flow instead of reserving them for validation at trust boundaries (API ingress, config loading, external data).

  • Broad return types.

Returning Any or dict from public functions forces callers to guess structure. Return concrete types or TypedDicts.

  • Breaking contracts silently.

Changing function signatures, removing fields, or narrowing accepted types without versioning, deprecation warnings, or migration notes.

  • Ignoring None.

Omitting Optional or union with None when a value can legitimately be absent, hiding null-safety bugs until runtime.

Scope Note

  • Treat these recommendations as preferred defaults for common cases, not universal rules.
  • If a default conflicts with project constraints or worsens the outcome, suggest a better-fit alternative and explain why it is better for this case.
  • When deviating, call out tradeoffs and compensating controls (tests, observability, migration, rollback).

Invocation Notice

  • Inform the user when this skill is being invoked by name: python-design-modularity.

References

  • references/typing-policy.md
  • references/contract-evolution.md
  • references/pydantic-boundaries.md

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.