Agent skill

Coding Standards

by iurysza in iurysza/module-graph

Applies language-neutral engineering standards when writing or reviewing code, especially around boundaries, failures, domain models, dependencies, tests, and type safety.

MITAuto-check passedDevelopment

Install Coding Standards

skills CLI
$ npx skills add iurysza/module-graph --skill coding-standards -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install iurysza/module-graph coding-standards --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
coding-standards
GitHub stars
419
Token cost
~2.1k tokens
SKILL.md length
869 words
Files
1
Skills in repo
16
Repo updated
First seen
Licence
MIT

At a glance

Applies language-neutral engineering standards when writing or reviewing code, especially around boundaries, failures, domain models, dependencies, tests, and type safety.

  • Works in 5 steps: Correctness, safety, and debuggability. → Explicit domain meaning and dependencies. → Compatibility with sound project… → …
  • Tasks that involve Code quality
  • SKILL.md covers Priorities, Parse at boundaries, Expected failures are values and Model meaningful states, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

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.

When your agent uses it

  • Tasks that involve Code quality
  • Tasks that involve Type safety

Example prompts

  • “Use the coding-standards skill to apply language-neutral engineering standards when writing or reviewing code, especially around boundaries…”
  • “/coding-standards”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Correctness, safety, and debuggability.
  2. Explicit domain meaning and dependencies.
  3. Compatibility with sound project conventions.
  4. The narrowest change that fully solves the requested behavior.
  5. Documentation for surprising, durable trade-offs.

What it can do on your machine

Read from SKILL.md and the folder at commit 15b0135. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    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.

  • Network

    Links to these hosts (documentation or services it may open):

    • testing.googleblog.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~47
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from iurysza/module-graph at commit 15b0135, republished under its MIT licence (© iurysza). 869 words, ~2,060 tokens.

Download SKILL.mdSave it as .claude/skills/coding-standards/SKILL.md (or your agent's skills folder).
name
coding-standards
description
Applies language-neutral engineering standards when writing or reviewing code, especially around boundaries, failures, domain models, dependencies, tests, and type safety.
metadata.category
development

Coding Standards

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.

Priorities

  1. Correctness, safety, and debuggability.
  2. Explicit domain meaning and dependencies.
  3. Compatibility with sound project conventions.
  4. The narrowest change that fully solves the requested behavior.
  5. Documentation for surprising, durable trade-offs.

Parse at boundaries

Turn unknown or loosely shaped input into application and domain types as early as possible.

text
unknown -> protocol input -> parser -> domain/application input

A 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.

Expected failures are values

Known failures belong in explicit return types or equivalent language constructs. This includes parsing, authorization, configuration, persistence, I/O, integration, and workflow failures.

ts
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.

Model meaningful states

Make illegal states hard to construct. Prefer explicit variants over boolean combinations and nullable bags.

ts
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.

Functional core, imperative shell

Separate business decisions from side effects when they are tangled together.

  • Functional core: pure logic that operates only on its inputs and returns data. It does not read clocks, databases, environment variables, random generators, networks, or mutable global state.
  • Imperative shell: acquires inputs, invokes the core, and performs effects such as persistence, network calls, logging, and message delivery.

Do not mix policy and I/O in the same loop:

ts
// 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:

ts
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:

ts
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.

Module responsibilities

Use these roles when the behavior needs them; do not create layers to satisfy a diagram.

  • Domain module: pure meanings, invariants, calculations, and legal transitions.
  • Application service: authorization, policy, and sequencing across explicit ports.
  • Adapter: framework, protocol, storage, runtime, or vendor translation.
  • Composition root: configuration, resource acquisition, concrete wiring, and lifecycle.

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:

  1. reuse an existing cohesive implementation through a narrow port;
  2. extend it when the new behavior changes for the same reason;
  3. create a new boundary only when reuse would create bad coupling.
Show full SKILL.md (283 more words)Show less

Effects and workflows

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.

Testing

Test behavior through public seams.

Prefer, in order:

  1. end-to-end tests through real entrypoints;
  2. integration tests through real boundaries;
  3. focused or property tests for pure domain modules;
  4. unit tests when they verify behavior rather than implementation.

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.

Type safety

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.

Completion checklist

  • inputs are parsed at the edge
  • domain states and identifiers are explicit
  • expected failures are represented explicitly
  • external types remain inside adapters
  • business decisions are separated from side effects where useful
  • dependencies are passed through explicit boundaries
  • existing modules were checked before adding new ones
  • tests observe behavior through agreed public seams
  • logs and errors contain no secrets
  • unsafe escapes and abstractions have a concrete justification

© iurysza, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/coding-standards of iurysza/module-graph.

Open the folder on GitHubat commit 15b0135

Compare with similar skills

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.

Coding Standards compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Coding Standards this skilliurysza/module-graph419—~2.1kAutomated safety check: PassMIT
Dignified Python Standardsdocling-project/docling69k—~1.5kAutomated safety check: PassApache-2.0
Obsidian Plugin Development Guidelinesgapmiss/obsidian-plugin-skill190—~4.5kAutomated safety check: PassMIT
Strict Programming Practicescode-yeongyu/oh-my-openagent70k—~9.5kAutomated safety check: PassCustom licence
Cb Code QualityBlkLeg/CircuitBreaker201—~1.9kAutomated safety check: PassMIT
Fallow Setupfallow-rs/fallow-skills129—~1.1kAutomated safety check: PassMIT

Similar skills

  • 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.

    69k GitHub stars~1.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Obsidian Plugin Development Guidelines

    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.

    190 GitHub stars~4.5k tokensUpdated 14 days ago
    DevelopmentAuto-check passed
  • Strict Programming Practices

    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.

    70k GitHub stars~9.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Cb Code Quality

    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.

    201 GitHub stars~1.9k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Fallow Setup

    fallow-rs/fallow-skills

    Set up or modernize code-quality tooling for JavaScript and TypeScript projects.

    129 GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Cao Contributing

    awslabs/cli-agent-orchestrator

    Official

    Contribute changes to the CAO (CLI Agent Orchestrator) codebase — the local dev loop, the CI gate map, and the pre-PR checklist.

    1.4k GitHub stars~4.1k tokensUpdated today
    DevelopmentAuto-check passed

More from iurysza/module-graph

All 16 skills in this repo
  • Audio Transcribe

    iurysza/module-graph

    Transcribes local audio into Markdown with Gemini 3.5 Transcribe, including speaker labels and provider timestamps.

    419 GitHub starsUsed in 1 repo~1k tokens
    Auto-check passed
  • Chatgpt Imagegen

    iurysza/module-graph

    Generates or edits raster images through OpenAI's Image API.

    419 GitHub starsUsed in 1 repo~726 tokens
    Auto-check passed
  • Gemini Tts

    iurysza/module-graph

    Generates spoken MP3 audio from text or Markdown with Gemini TTS.

    419 GitHub starsUsed in 1 repo~968 tokens
    Auto-check passed
  • Skill Cleaner

    iurysza/module-graph

    Audits installed Agent Skills for duplicates, unused candidates, loaded roots, oversized descriptions, and prompt cost.

    419 GitHub stars~1k tokensUpdated yesterday
    Auto-check passed
  • Brainstorming

    iurysza/module-graph

    Explores and validates a feature, component, workflow, or behavior change before implementation.

    419 GitHub stars~723 tokensUpdated yesterday
    Auto-check passed
  • Domain Modeling

    iurysza/module-graph

    Maintains project domain language, context maps, diagrams, and architectural decisions under ai-artifacts.

    419 GitHub stars~1.2k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Coding Standards

What does Coding Standards do?

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.

When should I use Coding Standards?

Coding Standards fits situations like: tasks that involve Code quality; tasks that involve Type safety.

How do I install Coding Standards in Claude Code?

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.

How do I install Coding Standards in Codex?

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.

Can I use Coding Standards in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Coding Standards need to run?

SKILL.md names no scripts, command-line tools or credentials: Coding Standards is instructions for the agent only.

Does Coding Standards access the network?

SKILL.md names 1 domain. As links in the text: testing.googleblog.com. This is read from the text; nothing was executed.

Is Coding Standards safe to install?

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.

What licence does Coding Standards use?

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.

How many tokens does Coding Standards use?

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.

What are the alternatives to Coding Standards?

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.

Who maintains Coding Standards?

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.