Agent skill · Backend & API

programming

MUST USE for ANY work on .py .pyi .rs .ts .tsx .mts .cts .go files. One philosophy: strict types, modern stacks (Pydantic v2 / serde+thiserror / Zod / gin+sqlc+pgx+slog), modern toolchains (uv+basedpyright+ruff / cargo+clippy+miri / Bun+Biome+tsc / gofumpt+golangci-lint v2+nilaway+go-race), parse-don't-validate, exhaustive match, typed errors, no any/unwrap/panic, 250 LOC ceiling, TDD, consumer-routed logging. Routes to references/{python,rust,typescript,rust-ub,go}/ + references/logging.md. Triggers: write/edit Python/Rust/TypeScript/Go code, new project, gin server, bubbletea TUI, CJK IME, c

YeonGyu-Kim69,732★ · +488/wk · 2 repos on radarProfile →
claude-codecodexcursorships scriptsNOASSERTION
Install
npx skills add code-yeongyu/oh-my-openagent --skill programming --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 75
SKILL.md size: 38 KB
Bundled scripts: yes
Path: packages/shared-skills/skills/programming/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 67,209 · +483 this week
Language: TypeScript
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

The skill prescribes language-specific workflows for writing or editing code in Python, Rust, TypeScript, or Go, anchored to strong typing, explicit boundaries, and exhaustive variant handling. It enforces a TDD-driven approach with red/green/refactor cycles and requires loading the language reference set before coding.

How it works

  • It begins with selecting the target language by file extension or user request, then loads the corresponding reference (Python, Rust, TypeScript, or Go, and related ub/Go references if applicable).
  • It applies a shared philosophy: emphasize minimal, type-safe implementations; parse-don't-validate at boundaries; exhaustively match and clearly separate semantic primitives; avoid nulls and unsafe patterns; and adhere to a test-driven workflow.
  • The workflow follows red → green → refactor: write a failing test for the desired behavior, implement the minimum code to pass, then refactor while keeping tests green.
  • Tests should be unit, integration, and E2E as appropriate, with clear Given/When/Then structure and no prose assertions in prompt tests.
  • It uses per-language iron rules from references and respects immutable defaults, branded primitives, and exhaustive matching as dictated by the specific language reference.

When to use it

Use this skill whenever writing or editing code in the supported languages (Python, Rust, TypeScript, Go), creating a new project, or performing tasks like adding servers, TUI interfaces, or complex integrations that require strict typing and observable, testable behavior.

What it can touch

The skill expects to operate within the codebase files for Python, Rust, TypeScript, and Go as guided by the loaded references. It mentions interacting with toolchains and linters in the philosophy but does not enumerate external touchpoints beyond the language references.

Caveats

All guidance and constraints are sourced from the language reference sets loaded for the target language and the shared philosophy. It emphasizes not introducing unsafe patterns or runtime unwraps and requires tests to prove behavior.

From the SKILL.md

# Programming You are a lazy senior engineer — lazy meaning efficient, never careless. **The best code is the code never written; the code you do write is type-strict, stack-first, async-correct, and architecturally honest about size.** This skill is an index. The hard per-language rules live under `references/`. Load the language-specific reference **before** writing a single line of code. --- ## PHASE 0 — LANGUAGE GATE (RUN THIS FIRST, EVERY TIME) **DO NOT WRITE OR EDIT A SINGLE LINE OF CODE BEFORE COMPLETING THIS GATE.** 1. **Identify the language** from the file extension or the user's request. 2. **STOP** and read the matching reference set: | File / Language | MANDATORY reading (load `Read` tool on every file below) | |---|---| | `.py`, `.pyi`, "Python" | `references/python/README.md` + every file under `references/python/` that the README tells you to load on demand | | `.rs`, `Cargo.toml`, "Rust" | `references/rust/README.md` + every file under `references/rust/` that the README tells you to load on demand. **IF the change touches `unsafe`, `*mut`, `*const`, `MaybeUninit`, FFI, `unsafe impl Send/Sync`, or a custom lock-free primitive: ALSO load `references/rust-ub/README.md

What's inside
Steps it walks through
  1. PHASE 0 — LANGUAGE GATE (RUN THIS FIRST, EVERY TIME)
  2. Shared philosophy (all three languages)
  3. TDD DISCIPLINE — NON-NEGOTIABLE
  4. The order
  5. The shape of the test pyramid
  6. Given / When / Then is mandatory
  7. Less mock, the better
  8. Efficient AND accurate — both, not either
  9. Prompt tests: NEVER assert prose
  10. Anti-patterns the skill rejects
  11. Cross-language iron list
  12. Modern ecosystem - canonical libraries (2026)
  13. Modern toolchain - the only acceptable setup
  14. CODE SMELLS — AUTOMATIC REVIEW TRIGGERS
Ships with 24 files
  • references/code-smells.md
  • references/go/README.md
  • references/go/backend-stack.md
  • references/go/bootstrap.md
  • references/go/bubbletea-v2.md
  • references/go/cobra-stack.md
  • references/go/concurrency.md
  • references/go/data-modeling.md
  • references/go/error-handling.md
  • references/go/golangci-strict.md
  • references/go/grpc-connect.md
  • references/go/libraries.md
  • references/go/one-liners.md
  • references/go/sqlc-pgx.md
  • references/go/testing.md
  • references/go/type-patterns.md
  • references/logging.md
  • references/python/README.md
  • references/python/async-anyio.md
  • references/python/data-modeling.md
  • references/python/data-processing.md
  • references/python/error-handling.md
  • references/python/fastapi-stack.md
  • references/python/httpx2-optimization.md
first 24 of 75
Commands it runs
awk '!/^[[:space:]]*$/ && !/^[[:space:]]*(\/\/|#|--)/' <file> | wc -l
Python
uv run scripts/python/check-no-excuse-rules.py <changed paths>
Rust
bash scripts/rust/check-no-excuse-rules.sh <changed paths>
TypeScript
bun run scripts/typescript/check-no-excuse-rules.ts <changed paths>
More from oh-my-openagent
All skills →
About this skill
What does the programming skill do?

MUST USE for ANY work on .py .pyi .rs .ts .tsx .mts .cts .go files. One philosophy: strict types, modern stacks (Pydantic v2 / serde+thiserror / Zod / gin+sqlc+pgx+slog), modern toolchains (uv+basedpyright+ruff / cargo+clippy+miri / Bun+Biome+tsc / gofumpt+golangci-lint v2+nilaway+go-race), parse-don't-validate, exhaustive match, typed errors, no any/unwrap/panic, 250 LOC ceiling, TDD, consumer-routed logging. Routes to references/{python,rust,typescript,rust-ub,go}/ + references/logging.md. Triggers: write/edit Python/Rust/TypeScript/Go code, new project, gin server, bubbletea TUI, CJK IME, c

How do I install it?

Run `npx skills add code-yeongyu/oh-my-openagent --skill programming --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From code-yeongyu/oh-my-openagent, a repository with 67,209 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going