Complete development workflow support for the Typhon language ecosystem.
Install
mkdir -p .claude/skills/typhon && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18103" && unzip -o skill.zip -d .claude/skills/typhon && rm skill.zipInstalls to .claude/skills/typhon
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Write, check, build, debug, and migrate code in the Typhon language — a statically-typed, stricter superset of Python that compiles to clean CPython 3.13+ via the `tyc` binary. Use this skill whenever you are editing `.ty` / `.dty` / `typhon.toml` files, invoking any `tyc` subcommand (`build`, `check`, `fmt`, `lsp`, `init`, `run`, `repl`, `debug`, `trace`, `profile`, `explain`, `cheatsheet`, `stubtest`, `migrate`, `ty`, `add`, `remove`, `sync`, `install`), translating Python to Typhon, debugging Typhon-specific diagnostics, working on the Rust compiler crates under `tyc/crates/`, or answering any question about the language, the compiler pipeline, the in-process VM, the generated `typhon_runtime`, or the project's docs. Triggers include: file extensions `.ty` / `.dty` / `.py.map` / `typhon.toml`, the words "Typhon" / "tyc" / "let binding" / "mut binding" / "freeze let" / "newtype" / "pub" / "pub *" / "Result[T, E]" / "sealed union" / "interface" / "impl block" / "extend block" / "gather:" / "go f(x)" / "comptime" / "@gatherable" / "@pure" / "@memo" / "T?" / "plain class" / "class!" / "model class" / "lazy import" / "lazy let" / "unsafe:" / "as!" / "checked cast" / "rescue" / "guard" / "|>" / "typhon_runtime" / "tyc-vm" / "tyc-syntax" / "tyc-resolve" / "tyc-types" / "tyc-analyse" / "tyc-desugar" / "tyc-emit" / "tyc-format" / "tyc-db" / "tyc-diagnostics" / "tyc-lsp", and any error code matching `tyc::...`.Key capabilities
- →Write code in the Typhon language
- →Check Typhon code for errors
- →Build Typhon code to CPython 3.13+
- →Debug Typhon-specific diagnostics
- →Migrate Python code to Typhon
- →Answer questions about the Typhon language
How it works
The skill uses the `tyc` Rust binary to compile Typhon code to CPython, perform type checking, and assist with debugging and migration.
Inputs & outputs
When to use typhon
- →Writing Typhon code
- →Compiling to CPython
- →Debugging Typhon diagnostics
- →Migrating Python code to Typhon
About this skill
Typhon — Language, Compiler, Runtime, and VM Skill
Typhon is a statically-typed, stricter superset of Python that emits clean CPython 3.13+ with zero runtime dependency on the toolchain. The compiler, language server, formatter, debugger wrapper, REPL, and tree-walking interpreter are all a single Rust binary called tyc. Every .ty file emits valid, idiomatic .py. Not all .py is valid Typhon.
Current release: v1.0.0-alpha.6 (2026-07-21) — a maintenance release on top of alpha.5, driven by the 2026-07-20 release-readiness review (docs/release-readiness-2026-07-20.md). The July dependency wave is carried safely across the toml 0.8 → 1.x major — including the fix, before it could ship, for the one regression that bump introduced (the tyc-venv dependency allow-list reader silently returning empty, which would have no-opped third-party arg/type checking). Six squashed-acronym keywords join the secret-name table (API_TOKEN, APITOKEN, API_SECRET, APISECRET, API_PASSWORD, APIPASSWORD), now hoisted into a single shared tyc_analyse::SECRET_NAME_KEYWORDS constant so the tyc::contains_secret_literal lint and the tyc build scan can no longer drift. The release pipeline's artifact download is re-pinned to the proven v4 line (matching the v4 upload), and docs-site accessibility, diagnostics-index completeness (all 87 pages indexed), and repo hygiene (the .Jules/.jules case-collision fix) round it out. No new syntax; no previously-correct program changes behaviour — the only diagnostic-surface change is warn-level (six more secret-shaped names warned). v1.0.0-alpha.5 (2026-07-09) was a performance-focused release on top of alpha.4. VM performance Tier 1 (tyc run): a two-representation VmInt (Small(i64) inline, Big(BigInt) on overflow) keeps common-path integer arithmetic allocation-free while preserving CPython's exact arbitrary-precision semantics; a per-class resolved-method cache (negative results included) and a direct obj.method(args) dispatch path skip redundant find_method walks and BoundMethod allocation; and functions with no closures/global/nonlocal resolve locals to a fixed slot computed once instead of a HashMap lookup per read/write. Cumulative effect: the VM's steady-state slowdown vs tyc build + CPython compresses from ~5–18× to ~3–14× (startup-adjusted); the VM still wins on startup latency. [optimise] config profile + tyc build -O: a single level dial flips the default of auto-memoise / auto-gather / auto-parallel / pgo-memoise to true (an explicit [strictness] entry always wins). Seven new advice-only lints in tyc-analyse/src/perf.rs, gated by [strictness] suggest-perf: perf_membership_in_loop, perf_list_shift_in_loop, perf_str_concat_in_loop, perf_sort_in_loop, perf_sorted_first, perf_keys_membership, and lazy_import_opportunity. Free-threading parallelisation wave ([python] free-threaded = true): auto-parallel widens to comprehension filters, multi-argument calls, and nested pure calls; a new auto-parallel-reductions knob folds a provably-bounded integer accumulator loop (mut total: int; for x in xs: total += EXPR) into a parallel sum(map_pure(...)); two new advice lints (parallel_opportunity, shared_mut_across_tasks); and a parallel-backend = "interpreters" option tries a PEP 734 InterpreterPoolExecutor before falling back to threads. Native PEP 810 lazy imports: [python] target = "3.15" / "3.15t" lowers lazy import ALIAS = MODULE to CPython's native lazy import MODULE as ALIAS statement instead of the typhon_runtime helper call; 3.13/3.14 output is byte-for-byte unchanged. No new syntax; every rewrite here is opt-in or advice-only, so no previously-correct program changes behaviour. v1.0.0-alpha.4 (2026-07-08) was a focused hardening pass on top of alpha.3. Type-checker soundness: it closes H5, the one HIGH finding the release-readiness review deferred — the v0.15.0 qualified↔bare tail-unification let a locally declared class satisfy a same-named class from another module (a user class Response: type-checked into an httpx.Response-typed slot, and vice versa). is_assignable now refuses that unification when the bare side names a class declared in the module being checked and the qualified side's declaration — resolved through its exact module key — has a different shape. The guard is evidence-gated and degrades to the previous permissive unification on any uncertainty (unresolvable module, unknown shape, facade re-export with an equivalent shape, interfaces, bare names of unknown provenance), so the example/stress corpus is byte-identically unchanged. Diagnostics: the secret-name keyword tables in tyc-analyse and the tyc build scan match longest-first again — APIKEY precedes the bare KEY, so KEY_APIKEY reports the more-specific suffix. Supply-chain & packaging: every third-party GitHub Action is SHA-pinned (Dependabot keeps the pins fresh), the installers resolve the newest release including pre-releases (a default install no longer silently fetches older binaries), and a round of dependency / advisory bumps lands (crossbeam-epoch 0.9.20 for RUSTSEC-2026-0204, plus regex, memchr, compact_str). No new syntax; like the alpha.2 diagnostics, the H5 fix is a conservative narrowing that only rejects programs passing a provably-different-shaped class across a module boundary, so no previously-correct program changes behaviour. v1.0.0-alpha.3 (2026-07-03) was a release-readiness remediation pass (RELEASE_READINESS_REVIEW.md), the licensing / packaging / robustness counterpart to alpha.2's soundness sweep. Licensing & packaging: a repository-root MIT LICENSE, the upstream Ruff MIT notice vendored beside the fork, SECURITY.md / CONTRIBUTING.md / Dependabot, and release-workflow hygiene (pre-release tags flagged as such; auto-tag gated on green CI). Compiler & VM: identical errors at distinct source locations are all reported now (the module- and resolver-level dedupe no longer swallows the 2nd+ occurrence), nested-generic assignability is linear again (not O(2^depth)), four more flow-narrowing invalidation holes are closed, and six VM↔CPython parity gaps are fixed (cyclic-value comparison no longer aborts the process, str.find/rfind/index/rindex return character offsets, in-place list +=, float %/// sign & zero-division, broken-pipe print, json.dumps scalar-key coercion). Tooling: a 256 MiB LSP stack, atomic tyc fmt (temp-file + rename), a TYC_NO_INTROSPECT kill-switch for venv dependency introspection, Windows venv discovery, and the now-wired [strictness] exhaustive-match knob (previously a validated no-op). Diagnostics/docs: diagnostic doc URLs now point at resolvable GitHub paths (github.com/CodeHalwell/Typhon/blob/main/docs/diagnostics/<code>.md, not the never-deployed typhon.dev), and four diagnostics gained doc pages + tyc explain entries (empty_collection_no_annotation, freeze_not_freezable, newtype_invalid_base, typing_alias_in_annotation). No new syntax; the four flow-narrowing fixes are conservative widenings that only affect programs relying on a previously-unsound narrowing, so no previously-correct program changes behaviour. v1.0.0-alpha.2 (2026-06-29) was the remediation of a 2026-06-28 adversarial pre-release review: a type-checker soundness sweep (flow narrowing of a non-local place — global / instance field — is now invalidated across an intervening call or alias write; short-circuit and/or narrowing no longer false-positives on x is not None and x.method()), a batch of newly-typed positions (slice reads, subscript assignments, for / let tuple-unpack targets, match star / or-pattern captures, walrus bindings, parameter defaults), VM↔CPython parity fixes (bytes %-formatting, numeric int/float/bool dict-key collapse, VM as! enforcement), three new conservative diagnostics (tyc::not_a_context_manager, tyc::raise_non_exception, tyc::frozen_inheritance_conflict — each fires only where the emitted Python already crashed), and config / crash robustness (typhon.toml rejects unknown keys / invalid [checker] external / [strictness] severities; the CLI runs on a 256 MiB worker stack). No new syntax, and no previously-correct program changes behaviour — but, unlike the purely-additive releases before it, the three new diagnostics do narrow the accepted surface for programs that already crashed at runtime (they now surface as build-time errors instead). v1.0.0-alpha (2026-06-22) was Typhon's first tagged alpha and first feature-complete milestone: the proven surface plus the landed type-system frontier (HKT unification, user-generic variance inference, the inter-procedural field-init audit). The prior numbered release was v0.15.7 (2026-06-21). The language is additive across the v0.3.0 → v1.0.0-alpha line — every previously-accepted program continues to type-check identically (v1.0.0-alpha.2 was the first exception: its three conservative diagnostics reject a small set of programs that only ever crashed at runtime; v1.0.0-alpha.3 and v1.0.0-alpha.4 stay additive on correct programs — alpha.3's flow-narrowing fixes and alpha.4's H5 class-unification fix only reject code that relied on a previously-unsound narrowing). The v0.10.0 → v0.13.x line is dominated by two themes: making the in-process VM a true drop-in for tyc build && python, and deepening compile-time type-checking of third-party code. v0.13.0 folds in a post-release code review that fixed ten correctness issues (two VM/CPython divergences — seeded random.sample, and @staticmethod/@classmethod binding self when read through an instance — and an incompatible_override false positive on valid LSP-widening overrides); v0.13.1 is a six-fix patch from a playground stress round (async-? missing_await, `
Content truncated.
When not to use it
- →When working with Python code that is not intended for Typhon migration
- →When the project does not involve .ty, .dty, or typhon.toml files
- →When not invoking any `tyc` subcommand
Limitations
- →Requires CPython 3.13+ for compilation targets
- →Not all .py is valid Typhon
- →Focuses on the Typhon language, compiler, runtime, and VM
How it compares
This skill provides a complete toolchain for a statically-typed Python superset, offering stricter type checking and compilation to CPython, which differs from standard Python development.
Compared to similar skills
typhon side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| typhon (this skill) | 0 | 18d | Review | Advanced |
| python-patterns | 6 | 1mo | Review | Beginner |
| mcp-chaining | 1 | 6mo | Review | Advanced |
| python-testing-patterns | 77 | 2mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
python-patterns
affaan-m
Pythonic 惯用法、PEP 8 标准、类型提示以及构建健壮、高效、可维护的 Python 应用程序的最佳实践。
mcp-chaining
parcadei
Research-to-implement pipeline chaining 5 MCP tools with graceful degradation
python-testing-patterns
wshobson
Implement comprehensive testing strategies with pytest, fixtures, mocking, and test-driven development. Use when writing Python tests, setting up test suites, or implementing testing best practices.
deepwiki-rs
sopaco
AI-powered Rust documentation generation engine for comprehensive codebase analysis, C4 architecture diagrams, and automated technical documentation. Use when Claude needs to analyze source code, understand software architecture, generate technical specs, or create professional documentation from any programming language.
jupyter-notebook
davila7
Use when the user asks to create, scaffold, or edit Jupyter notebooks (`.ipynb`) for experiments, explorations, or tutorials; prefer the bundled templates and run the helper script `new_notebook.py` to generate a clean starting notebook.
unsloth
zechenzhangAGI
Expert guidance for fast fine-tuning with Unsloth - 2-5x faster training, 50-80% less memory, LoRA/QLoRA optimization