Agent skill

Stdlib Readme Format

by ballerina-nutcracker in ballerina-nutcracker/ballerina

Authoritative format contract for lib/stdlibs/ballerina/<name/0.0.1/go1.27/README.md files.

Apache-2.0Auto-check passedDevelopment

Install Stdlib Readme Format

skills CLI
$ npx skills add ballerina-nutcracker/ballerina --skill stdlib-readme-format -a claude-code

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

GitHub CLI
$ gh skill install ballerina-nutcracker/ballerina stdlib-readme-format --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/ballerina-nutcracker/ballerina.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/stdlib-readme-format .claude/skills/stdlib-readme-format && 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
stdlib-readme-format
GitHub stars
120
Token cost
~2.2k tokens
SKILL.md length
912 words
Files
2 (incl. scripts)
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

Authoritative format contract for lib/stdlibs/ballerina/<name/0.0.1/go1.27/README.md files.

  • Updating any stdlib README
  • SKILL.md covers Template, Column rules, Notable Behavioural Changes… and Validation, plus 2 more sections
  • Runs Python scripts from its folder; calls python3
  • Auditing an existing one for consistency

What it does

Stdlib Readme Format is an agent skill from ballerina-nutcracker/ballerina. Authoritative format contract for lib/stdlibs/ballerina/<name/0.0.1/go1.27/README.md files. Use when creating or updating any stdlib README, or when auditing an existing one for consistency.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/check_readmes.py`).

It sits in Development, covering Technical documentation. The repository describes itself as: Native Ballerina Interpreter. The licence is Apache-2.0.

When your agent uses it

  • Updating any stdlib README
  • Auditing an existing one for consistency

Example prompts

  • “/stdlib-readme-format”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit 0cefa3f. 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

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    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

Stdlib Readme Format loads about 2.2k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 912 words of instructions outside code blocks.

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

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); the scripts in this folder are not scanned.

SKILL.md

The full file from ballerina-nutcracker/ballerina at commit 0cefa3f, republished under its Apache-2.0 licence (© ballerina-nutcracker). 912 words, ~2,208 tokens.

Download SKILL.mdSave it as .claude/skills/stdlib-readme-format/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
stdlib-readme-format
description
Authoritative format contract for `lib/stdlibs/ballerina/<name>/0.0.1/go1.27/README.md` files. Use when creating or updating any stdlib README, or when auditing an existing one for consistency.

stdlib README Format

This skill defines the exact structure and rules for every lib/stdlibs/ballerina/<name>/0.0.1/go1.27/README.md. It can be invoked standalone to audit or fix an existing README, or embedded in another workflow (e.g. add-stdlib-support, fill-stdlib-gap) when writing a new one.

Template

Use this skeleton exactly. Do not add, remove, or reorder sections. One permitted extension: a large module may group its support tables under ### subsections inside Go Native Interpreter Support Status (e.g. http's ### Client / ### Request / ### Response), each subsection holding its own three-column table.

markdown
# Ballerina <Name> Library

## Overview

<Brief description of the full jBallerina module scope, ending with one sentence stating which subset the Go Native Interpreter currently supports.>

## Key Functionalities

<Bullet list of what the Go-native version currently supports — not the full jBallerina feature set.>

## Examples

```ballerina
<Short working example using only currently supported APIs.>
```

## Go Native Interpreter Support Status

This library is currently being migrated to Go to support the Ballerina Native Interpreter. The table below outlines the current support level for various features of this library in the Go implementation.

Support Levels:

- **Supported**: Fully implemented and tested in the Go version.
- **Partially Supported**: Implemented but lacking some edge cases, options, or sub-features. (See comments).
- **Not Yet Supported**: Planned for migration, but not yet implemented.
- **Cannot Support**: Cannot be implemented in the Go version due to technical limitations or architectural differences. (See comments).

| Feature/API | Support Status | Comments / Limitations |
|---|---|---|
| ... | ... | ... |

### Notable Behavioural Changes

<Use bullet points with bold headers, one bullet per divergence. Format each as:
- **<Short title>.** <jBallerina behaviour>; the Go-native version <Go-native behaviour> — <reason if helpful>.

If there are no notable behavioural changes, write:
There are **no** notable behavioural changes in the Go-native version compared to the original jBallerina implementation for the currently supported features.>

Column rules

Feature/API column
  • Prose only. No backtick function names, type names, or object names anywhere in this column — not even in parentheses. Wrong: "File read — string (\fileReadString`)". Right: "File read — string"`.
  • Function and type names belong in the Comments / Limitations column only.
Support Status column

Exactly one of: Supported, Partially Supported, Not Yet Supported, Cannot Support.

Comments / Limitations column
  • Supported rows with no caveat — leave this cell empty. Do not write "Fully implemented and tested in the Go version." — that is implied by the status.
  • Supported rows with a caveat — write only the caveat. Function names, type names, and signatures are allowed here.
  • Partially Supported / Not Yet Supported / Cannot Support — explain the gap. Include relevant function or type names here.
Table separator

Always |---|---|---|. Never wide-padded column separators.

Notable Behavioural Changes rules

  • Format: bullet list with a bold header followed by a period, then a sentence. Example: - **Title.** jBallerina does X; the Go-native version does Y — reason.
  • Content: only permanent, architectural Go-level constraints that cannot be resolved in the native/ layer.
  • Do not include:
    • Temporary language gaps that will be fixed when the interpreter gains the feature (e.g. distinct error subtypes, readonly & intersections, stream type, XML, full typedesc parameter handling). These belong in the support table as Not Yet Supported or Partially Supported.
    • Entries that say "identical" or "matching" — if the behaviour is identical, it is not a change.
    • Future potential divergences for features that are Not Yet Supported — document those in the Comments column of the relevant table row instead.
  • If there are no permanent changes, write the "no changes" sentence from the template rather than omitting the section.

Validation

Mechanical checks — run the script

From the repo root:

shell
python3 .agents/skills/stdlib-readme-format/scripts/check_readmes.py

It validates every per-package README and the aggregator in one pass: required sections and their order, status values, |---|---|---| separators, no backticks in Feature/API cells, no "Fully implemented and tested" filler in Supported rows, non-empty Comments on every gap row, bullet format, bullets-vs-"no changes"-sentence consistency, aggregator counts/percentages/Total footer recomputed from the per-package tables, verbatim bullet mirroring, and the closing "no changes" sentence membership. It must exit 0 before you save — fix every FAIL line it prints.

Judgment checks — verify by hand

The script cannot check these; confirm each is YES:

  • Every Supported row's Comments cell is either empty or a meaningful caveat
  • If the module declares a module-level error type (e.g. io:Error), the table has a row tracking it with an accurate status — Partially Supported with a distinct comment when the type ships as a plain alias, Not Yet Supported when it isn't declared at all
  • No bullet describes behaviour identical to jBallerina
  • No bullet describes a temporary language gap (distinct, readonly &, stream, etc.) — those belong in the support table
  • No bullet describes a future feature's potential divergence
  • Key Functionalities reflects only currently supported features
  • Examples use only currently supported APIs
  • No Not Yet Supported row that was just implemented in this session
Show full SKILL.md (348 more words)Show less

Canonical exemplars

These existing READMEs already conform — useful for cross-reference when in doubt:

  • lib/stdlibs/ballerina/io/0.0.1/go1.27/README.md — multi-section coverage (print, file I/O, channels), one Notable Behavioural Change (fileWriteJson key ordering).
  • lib/stdlibs/ballerina/time/0.0.1/go1.27/README.md — parity-heavy library with multiple documented divergences.
  • lib/stdlibs/ballerina/url/0.0.1/go1.27/README.md — minimal stdlib README (good template for small surface).

Top-level summary aggregator

The repo ships a top-level aggregator at lib/stdlibs/ballerina/README.md — a summary table of support percentages across stdlibs plus a consolidated Notable Behavioural Changes section grouped by package. This skill is responsible for keeping it in sync. After every per-package README change, update the aggregator as part of the same task; do not leave it stale.

Maintenance rules — after every per-package README change:

  • Recount Supported, Partially Supported, and Not Yet Supported rows from the updated per-package README.md, and update that package's row in the aggregator table.
  • Recompute support %: round(Supported / Total * 100) where Total = Supported + Partially Supported + Not Yet Supported + Cannot Support. Note the asymmetry: the aggregator table has no Cannot Support column, but Cannot Support rows still count in the % denominator — that's why a package with zero visible gaps can show less than 100% (e.g. file at 95%). Don't "fix" such a percentage without recounting the per-package table.
  • Keep rows sorted alphabetically (no explicit dependency-level system exists in this repo); row format is | [<name>](<name>/0.0.1/go1.27/README.md) | S | P | N | X% |.
  • Recompute the Total footer row (sum of each column; the % cell is round(TotalSupported / TotalTotal * 100), where TotalTotal again includes the invisible Cannot Support rows).
  • Mirror the package's Notable Behavioural Changes bullets verbatim into the matching ### <package> subsection of the aggregator — copy the exact bullet text, don't paraphrase; the checker compares them word for word. Add a ### <package> subsection when a package gains its first behavioural change; remove it (and add the package to the closing "no notable behavioural changes" sentence) when it has none.

When adding a brand-new package, add a new table row (alphabetical), recompute the Total footer, and add a ### <package> subsection only if that package has notable behavioural changes.

The check_readmes.py script (see Validation above) verifies all of this arithmetic and mirroring — run it after every aggregator edit instead of trusting manual recounts.

© ballerina-nutcracker, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (scripts) in .agents/skills/stdlib-readme-format of ballerina-nutcracker/ballerina.

  • SKILL.md
  • scripts/check_readmes.py

Open the folder on GitHubat commit 0cefa3f

Compare with similar skills

Stdlib Readme Format 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.

Stdlib Readme Format compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Stdlib Readme Format this skillballerina-nutcracker/ballerina120—~2.2kAutomated safety check: PassApache-2.0
Diagram Designcathrynlavery/diagram-design45k1 repos~7.5kAutomated safety check: PassMIT
Simple Englishmoeru-ai/airi50k2 repos~4.6kAutomated safety check: PassMIT
Get API Docs with chubandrewyng/context-hub14k2 repos~775Automated safety check: PassMIT
Doc SyncJetBrains/ideavim10k2 repos~2.6kAutomated safety check: PassMIT
Mailspring App ScreenshotsFoundry376/Mailspring18k—~1.5kAutomated safety check: PassGPL-3.0

Similar skills

  • Diagram Design

    cathrynlavery/diagram-design

    Creates branded diagrams, from architecture, flowchart and sequence to charts and maps, as self-contained HTML with inline SVG, with import from draw.io, Mermaid and Excalidraw.

    45k GitHub starsUsed in 1 repo~7.5k tokens
    DevelopmentAuto-check passed
  • Simple English

    moeru-ai/airi

    Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.

    50k GitHub starsUsed in 2 repos~4.6k tokens
    DevelopmentAuto-check passed
  • Get API Docs with chub

    andrewyng/context-hub

    Fetches current documentation for third-party APIs and SDKs with the chub CLI before the agent writes code against them, instead of relying on remembered API shapes.

    14k GitHub starsUsed in 2 repos~775 tokens
    DevelopmentAuto-check passed
  • Doc Sync

    JetBrains/ideavim

    Official

    Keeps IdeaVim documentation in sync with code changes. An agent skill from JetBrains/ideavim.

    10k GitHub starsUsed in 2 repos~2.6k tokens
    DevelopmentAuto-check passed
  • Mailspring App Screenshots

    Foundry376/Mailspring

    Captures screenshots of the running Mailspring dev app for docs, PRs or visual checks by launching it with a debugging port, driving the UI and clipping to an element.

    18k GitHub stars~1.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Draw.io Diagram Studio

    Agents365-ai/drawio-skill

    Creates and edits editable draw.io diagrams from descriptions, code, infrastructure files, SQL and API schemas, with sync, review, test and export tools.

    10k GitHub stars~2.4k tokensUpdated 6 days ago
    DevelopmentAuto-check: notes

More from ballerina-nutcracker/ballerina

  • Add Stdlib Support

    ballerina-nutcracker/ballerina

    Port a new ballerina/<name stdlib package from jBallerina to this Go-native interpreter.

    120 GitHub stars~6.3k tokensUpdated today
    Auto-check passed
  • Fill Stdlib Gap

    ballerina-nutcracker/ballerina

    Fill a gap in an existing ballerina/<name stdlib — implement a function marked Not Yet Supported, promote a Partially Supported row, or fix a behavioural divergence.

    120 GitHub stars~4.1k tokensUpdated today
    Auto-check passed
  • Validate Stdlib Contract

    ballerina-nutcracker/ballerina

    Validate that a ballerina/<name stdlib's Go public contract does not break the jBallerina public interface.

    120 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Run Jballerina

    ballerina-nutcracker/ballerina

    Run a given Ballerina source file with jBallerina to compare behaviour against this interpreter

    120 GitHub stars~241 tokensUpdated today
    Auto-check passed
  • Filling Subset Doc

    ballerina-nutcracker/ballerina

    A skill your agent uses when you are asked to fill in a subset doc (./doc/lang/subset.md)

    120 GitHub stars~119 tokensUpdated today
    Auto-check passed
  • Manage Corpus Tests

    ballerina-nutcracker/ballerina

    Creating/updating corpus tests

    120 GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Categories

Questions about Stdlib Readme Format

What does Stdlib Readme Format do?

Authoritative format contract for lib/stdlibs/ballerina/<name/0.0.1/go1.27/README.md files. Stdlib Readme Format is an agent skill from ballerina-nutcracker/ballerina.md files.

When should I use Stdlib Readme Format?

Stdlib Readme Format fits situations like: updating any stdlib README; auditing an existing one for consistency.

How do I install Stdlib Readme Format in Claude Code?

Run `npx skills add ballerina-nutcracker/ballerina --skill stdlib-readme-format -a claude-code`. Or copy the skill folder (.agents/skills/stdlib-readme-format in ballerina-nutcracker/ballerina) into .claude/skills/stdlib-readme-format in your project. Claude Code loads it when a task matches its description.

How do I install Stdlib Readme Format in Codex?

Run `npx skills add ballerina-nutcracker/ballerina --skill stdlib-readme-format -a codex`. Or copy the skill folder (.agents/skills/stdlib-readme-format in ballerina-nutcracker/ballerina) into .agents/skills/stdlib-readme-format in your project. Codex loads it when a task matches its description.

Can I use Stdlib Readme Format 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 ballerina-nutcracker/ballerina --skill stdlib-readme-format -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/stdlib-readme-format, .gemini/skills/stdlib-readme-format, .github/skills/stdlib-readme-format and .opencode/skills/stdlib-readme-format in your project.

What does Stdlib Readme Format need to run?

Going by SKILL.md and its folder, Stdlib Readme Format needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Stdlib Readme Format access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Stdlib Readme Format 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Stdlib Readme Format use?

Stdlib Readme Format is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Stdlib Readme Format use?

About 2.2k tokens (SKILL.md is roughly 8.8k 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 Stdlib Readme Format?

Skills that share tags, products or a category with Stdlib Readme Format: Diagram Design (cathrynlavery/diagram-design, 45k stars), Simple English (moeru-ai/airi, 50k stars), Get API Docs with chub (andrewyng/context-hub, 14k stars) and Doc Sync (JetBrains/ideavim, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Stdlib Readme Format?

ballerina-nutcracker (a GitHub organization) maintains it in ballerina-nutcracker/ballerina, which has 120 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 8, 2026.

Source: ballerina-nutcracker/ballerina on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.