Dignified Python Standards
docling-project/docling
Applies opinionated production Python conventions chosen by the project's Python version: modern type syntax, pathlib, explicit checks and interface guidance.
Applies language-neutral engineering standards when writing or reviewing code, especially around boundaries, failures, domain models, dependencies, tests, and type safety.
$ npx skills add iurysza/module-graph --skill coding-standards -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install iurysza/module-graph coding-standards --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/iurysza/module-graph.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/coding-standards .claude/skills/coding-standards && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "coding-standards" agent skill from https://github.com/iurysza/module-graph/tree/main/.agents/skills/coding-standards into .claude/skills/coding-standards/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-standards", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/iurysza/module-graph/tree/main/.agents/skills/coding-standardsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add iurysza/module-graph --skill coding-standards -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install iurysza/module-graph coding-standards --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/iurysza/module-graph.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/coding-standards .agents/skills/coding-standards && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "coding-standards" agent skill from https://github.com/iurysza/module-graph/tree/main/.agents/skills/coding-standards into .agents/skills/coding-standards/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-standards", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add iurysza/module-graph --skill coding-standards -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install iurysza/module-graph coding-standards --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/iurysza/module-graph.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/coding-standards .cursor/skills/coding-standards && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "coding-standards" agent skill from https://github.com/iurysza/module-graph/tree/main/.agents/skills/coding-standards into .cursor/skills/coding-standards/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-standards", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/iurysza/module-graph.git --path .agents/skills/coding-standards--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add iurysza/module-graph --skill coding-standards -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install iurysza/module-graph coding-standards --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/iurysza/module-graph.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/coding-standards .gemini/skills/coding-standards && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "coding-standards" agent skill from https://github.com/iurysza/module-graph/tree/main/.agents/skills/coding-standards into .gemini/skills/coding-standards/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-standards", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install iurysza/module-graph coding-standardsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add iurysza/module-graph --skill coding-standards -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/iurysza/module-graph.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/coding-standards .github/skills/coding-standards && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "coding-standards" agent skill from https://github.com/iurysza/module-graph/tree/main/.agents/skills/coding-standards into .github/skills/coding-standards/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-standards", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add iurysza/module-graph --skill coding-standards -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install iurysza/module-graph coding-standards --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/iurysza/module-graph.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/coding-standards .opencode/skills/coding-standards && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "coding-standards" agent skill from https://github.com/iurysza/module-graph/tree/main/.agents/skills/coding-standards into .opencode/skills/coding-standards/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-standards", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
coding-standardsApplies language-neutral engineering standards when writing or reviewing code, especially around boundaries, failures, domain models, dependencies, tests, and type safety.
Coding Standards is an agent skill from iurysza/module-graph. Applies language-neutral engineering standards when writing or reviewing code, especially around boundaries, failures, domain models, dependencies, tests, and type safety.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Code quality and Type safety. The repository describes itself as: A Gradle Plugin for visualizing your project's structure, powered by mermaidjs. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 15b0135. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
testing.googleblog.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Coding Standards loads about 2.1k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 869 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from iurysza/module-graph at commit 15b0135, republished under its MIT licence (© iurysza). 869 words, ~2,060 tokens.
.claude/skills/coding-standards/SKILL.md (or your agent's skills folder).Inspect the repository before introducing patterns, libraries, or abstractions. Follow compatible local conventions; contain incompatible legacy patterns at the nearest boundary instead of spreading them into new code.
The examples use TypeScript syntax, but the principles apply across languages. Adapt them to the language and ecosystem already in use.
Turn unknown or loosely shaped input into application and domain types as early as possible.
unknown -> protocol input -> parser -> domain/application inputA parser returns the refined value or an explicit parsing failure. Do not validate input and then continue carrying the original primitive or transport shape.
Use constrained domain types where they prevent realistic mistakes: identifiers, URLs, email addresses, money, units, constrained numbers, and non-empty values. Construct them through parsers or smart constructors.
Known failures belong in explicit return types or equivalent language constructs. This includes parsing, authorization, configuration, persistence, I/O, integration, and workflow failures.
type Result<T, E extends Error> =
| { readonly _tag: "ok"; readonly value: T }
| { readonly _tag: "err"; readonly error: E };Translate dependency-specific exceptions inside the adapter that owns that dependency. Reserve throws, panics, or equivalent mechanisms for defects and impossible internal states. At entrypoints, turn expected failures into valid protocol outcomes: responses, exit codes, retry decisions, dead letters, or startup messages.
Errors should have a stable category, useful safe context, and preserve the original cause where the language supports it. Never put secrets or raw credentials in errors, traces, snapshots, or logs.
Make illegal states hard to construct. Prefer explicit variants over boolean combinations and nullable bags.
type Invoice =
| { readonly _tag: "draft"; readonly id: InvoiceId }
| { readonly _tag: "sent"; readonly id: InvoiceId; readonly sentAt: Instant }
| { readonly _tag: "paid"; readonly id: InvoiceId; readonly paidAt: Instant };Avoid boolean parameters that control behavior. Use named options, enums, variants, or domain values.
Separate business decisions from side effects when they are tangled together.
Do not mix policy and I/O in the same loop:
// Logic, time, storage, and email delivery are coupled.
function sendUserExpiryEmail(): void {
for (const user of db.getUsers()) {
if (user.subscriptionEndDate > Date.now()) continue;
if (user.isFreeTrial) continue;
email.send(user.email, `Your account has expired ${user.name}.`);
}
}Move decisions and output construction into the functional core:
type ExpiryEmail = { readonly to: string; readonly body: string };
function getExpiredUsers(
users: readonly User[],
cutoff: number,
): readonly User[] {
return users.filter(
(user) => user.subscriptionEndDate <= cutoff && !user.isFreeTrial,
);
}
function generateExpiryEmails(users: readonly User[]): readonly ExpiryEmail[] {
return users.map((user) => ({
to: user.email,
body: `Your account has expired ${user.name}.`,
}));
}Keep the imperative shell thin and explicit:
const users = db.getUsers();
const cutoff = Date.now();
const expiredUsers = getExpiredUsers(users, cutoff);
const messages = generateExpiryEmails(expiredUsers);
email.bulkSend(messages);Pass changing context such as time into the core as data. Prefer returning decisions, commands, or messages for the shell to execute. This keeps policy reusable and lets most behavior be tested without mocks. Do not force trivial orchestration into artificial abstractions; separate effects where doing so clarifies meaningful logic.
Further reading: Simplify Your Code: Functional Core, Imperative Shell by Arham Jain.
Use these roles when the behavior needs them; do not create layers to satisfy a diagram.
Dependencies point inward. Domain code knows no framework or adapter. Application services depend on narrow application-owned ports, not SDK or database types. Adapters translate external types and failures at the edge.
Prefer deep cohesive modules: substantial behavior behind a small, meaningful interface. Avoid pass-through wrappers, repository-per-table defaults, vague managers or helpers, and abstractions created for one call site.
Before creating a service or adapter:
Make effects and dependencies visible. Pass clocks, randomness, storage, and external clients through explicit parameters, interfaces, capabilities, or the ecosystem's established dependency mechanism.
Use ordinary calls and transactions for short single-boundary work. Use durable workflows only when progress must survive crashes, redelivery, long delays, compensation, human approval, or multiple transaction boundaries.
Any externally visible mutation that may be retried needs an explicit idempotency strategy. Do not hold database transactions open across network calls.
Test behavior through public seams.
Prefer, in order:
Avoid module mocks, private-method tests, call-count assertions, and tautological expected values. Mock external boundaries only. Use test databases or local implementations when persistence semantics matter.
Use the language's type system and static analysis to prevent realistic mistakes. Enable strong checking where practical and follow the repository's established safety settings.
Prefer immutable inputs and outputs. Avoid unchecked casts, forced null access, dynamic escape hatches, and suppressed diagnostics. When the type system cannot express a proven invariant, isolate the escape hatch and document why it is sound.
Document contracts, invariants, and failure behavior—not syntax already visible in the code.
© iurysza, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/coding-standards of iurysza/module-graph.
Open the folder on GitHubat commit 15b0135
Coding Standards next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Coding Standards this skilliurysza/module-graph | 419 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Dignified Python Standardsdocling-project/docling | 69k | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Obsidian Plugin Development Guidelinesgapmiss/obsidian-plugin-skill | 190 | — | ~4.5k | Automated safety check: Pass | MIT | |
| Strict Programming Practicescode-yeongyu/oh-my-openagent | 70k | — | ~9.5k | Automated safety check: Pass | Custom licence | |
| Cb Code QualityBlkLeg/CircuitBreaker | 201 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Fallow Setupfallow-rs/fallow-skills | 129 | — | ~1.1k | Automated safety check: Pass | MIT |
docling-project/docling
Applies opinionated production Python conventions chosen by the project's Python version: modern type syntax, pathlib, explicit checks and interface guidance.
gapmiss/obsidian-plugin-skill
Rules and references for building Obsidian plugins: ESLint rules, TypeScript practices, memory cleanup, API choices, UI standards and the community submission process.
code-yeongyu/oh-my-openagent
Applies strict, type-first coding rules for Python, Rust, TypeScript and Go, loading the matching language reference before the agent writes or edits any code.
BlkLeg/CircuitBreaker
Circuit Breaker code conventions and the quality gates that actually block a push — ruff, mypy, eslint, the pytest coverage ratchet, and the make verify tiers.
fallow-rs/fallow-skills
Set up or modernize code-quality tooling for JavaScript and TypeScript projects.
awslabs/cli-agent-orchestrator
Contribute changes to the CAO (CLI Agent Orchestrator) codebase — the local dev loop, the CI gate map, and the pre-PR checklist.
iurysza/module-graph
Transcribes local audio into Markdown with Gemini 3.5 Transcribe, including speaker labels and provider timestamps.
iurysza/module-graph
Generates or edits raster images through OpenAI's Image API.
iurysza/module-graph
Generates spoken MP3 audio from text or Markdown with Gemini TTS.
iurysza/module-graph
Audits installed Agent Skills for duplicates, unused candidates, loaded roots, oversized descriptions, and prompt cost.
iurysza/module-graph
Explores and validates a feature, component, workflow, or behavior change before implementation.
iurysza/module-graph
Maintains project domain language, context maps, diagrams, and architectural decisions under ai-artifacts.
Categories
Applies language-neutral engineering standards when writing or reviewing code, especially around boundaries, failures, domain models, dependencies, tests, and type safety. Coding Standards is an agent skill from iurysza/module-graph. Applies language-neutral engineering standards when writing or reviewing code, especially around boundaries, failures, domain models, dependencies, tests, and type safety.
Coding Standards fits situations like: tasks that involve Code quality; tasks that involve Type safety.
Run `npx skills add iurysza/module-graph --skill coding-standards -a claude-code`. Or copy the skill folder (.agents/skills/coding-standards in iurysza/module-graph) into .claude/skills/coding-standards in your project. Claude Code loads it when a task matches its description.
Run `npx skills add iurysza/module-graph --skill coding-standards -a codex`. Or copy the skill folder (.agents/skills/coding-standards in iurysza/module-graph) into .agents/skills/coding-standards in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add iurysza/module-graph --skill coding-standards -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/coding-standards, .gemini/skills/coding-standards, .github/skills/coding-standards and .opencode/skills/coding-standards in your project.
SKILL.md names no scripts, command-line tools or credentials: Coding Standards is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: testing.googleblog.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Coding Standards is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Coding Standards: Dignified Python Standards (docling-project/docling, 69k stars), Obsidian Plugin Development Guidelines (gapmiss/obsidian-plugin-skill, 190 stars), Strict Programming Practices (code-yeongyu/oh-my-openagent, 70k stars) and Cb Code Quality (BlkLeg/CircuitBreaker, 201 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
iurysza (a GitHub user) maintains it in iurysza/module-graph, which has 419 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 7, 2026.
Source: iurysza/module-graph on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.