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.9 (2026-08-21) — a maintenance release on top of alpha.8, with no language change. The warn-level tyc::contains_secret_literal keyword table grows from 16 entries to 55: seven overlapping proposals consolidated into one longest-first-ordered table (AUTHORIZATION, CREDENTIALS / CREDENTIAL, WEBHOOK, SIGNING, COOKIE, DSN, the DB_-prefixed password / pass / pwd / secret variants plus a secret-only APP_ / CLIENT_ / JWT_, the ACCESS_ / AUTH_ / BEARER_ / CSRF_ / JWT_-prefixed token variants, and PRIVATE_KEY / PUBLIC_KEY / SSH_KEY / SECRET_KEY, each with its squashed-acronym form), so DB_PASSWORD now reports DB_PASSWORD rather than the bare PASSWORD. One more name-word boundary lands with it — an uppercase keyword directly followed by a lowercase letter (TOKENs, dbPASSWORDstring); MONKEY still does not match KEY. Alongside: three more allocation reductions on compiler AST walks (auto_gather's candidate scan, module_all_names, and tyc build's import scan), the mid-August dependency wave (with the compact_str 0.10 bump reverted — get-size2 0.8 pins 0.9.1, and the duplicate broke the vendored Ruff build), and docs-site keyboard-accessibility / reduced-motion polish. No new syntax and no new error-level diagnostic. v1.0.0-alpha.8 (2026-08-08) was a maintenance release on top of alpha.7. One VM ↔ CPython parity fix: the VM's CPython-compatible MT19937 was seeded from a fixed constant when a program never called random.seed(), so an unseeded program drew the same sequence on every tyc run while tyc build && python drew a different one each time (CPython seeds from OS entropy at import). The default now seeds from entropy to match; explicit random.seed(n) is unaffected and still yields byte-identical sequences under both surfaces. Alongside it: the warn-level tyc::contains_secret_literal name lint now treats digits and UPPERCASE→TitleCase junctions as word boundaries (myPASSWORD123, dbPASSWORDString are flagged; MONKEY still does not match KEY), two allocation reductions on AST walks (parallel_lints, the desugarer's class-marker collection), the early-August dependency wave (five crates, two GitHub Actions majors), and docs-site card / link-card transition polish. No new syntax and no new error-level diagnostic. v1.0.0-alpha.7 (2026-07-29) was the 2026-07-28 full-codebase-review remediation release (docs/codebase-review-2026-07-28.md). It closes all ten of the review's 1.0 blockers plus the Tier-0 gates that make them verifiable: type-checker soundness fixes (instance-attribute assignment is now type-checked, constructor field order follows reverse MRO, model constructors are keyword-only, recursive type aliases terminate, parametric sealed-union match exhaustiveness is checked, and a new nullable-field-dereference check lands at warn level), resolver fixes (let immutability is now enforced inside loop bodies and through global/nonlocal), a shared-lexical-mask rewrite of the preprocessor fixing several literal-corrupting bugs (gather: dependency scanning, with-chain parsing, enum body rewriting), five emitter/preprocessor miscompilation fixes, and VM ExceptionGroup/except* support (PEP 654) plus five other VM↔CPython divergence fixes. Two new CI gates ship alongside: a VM↔CPython differential gate over the full 1342-file example+stress corpus (first run found 126 divergences, now pinned as a baseline), and an opt-in-knob codegen matrix. No new syntax; most changes are narrowings on code that was already crashing or relying on unsound typing, plus one warn-level diagnostic-surface addition. v1.0.0-alpha.6 (2026-07-21) was 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 fi
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 | 2mo | Review | Advanced |
| python-patterns | 6 | 3mo | Review | Beginner |
| mcp-chaining | 1 | 8mo | Review | Advanced |
| python-testing-patterns | 77 | 3mo | 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