Golang Documentation
unxed/f4
Comprehensive documentation guide for Golang projects, covering godoc comments, README, CONTRIBUTING, CHANGELOG, Go Playground, Example tests, API docs, and llms.txt.
A skill your agent uses when writing or editing any prose in this repository - the book's preface, its chapters and epilogue, the brand kit notes, the agent skill documents, the changelog, and the…
$ npx skills add kataras/jwt --skill human-writing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install kataras/jwt human-writing --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/kataras/jwt.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skill/human-writing .claude/skills/human-writing && 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 "human-writing" agent skill from https://github.com/kataras/jwt/tree/main/skill/human-writing into .claude/skills/human-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "human-writing", 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/kataras/jwt/tree/main/skill/human-writingType 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 kataras/jwt --skill human-writing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install kataras/jwt human-writing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kataras/jwt.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skill/human-writing .agents/skills/human-writing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "human-writing" agent skill from https://github.com/kataras/jwt/tree/main/skill/human-writing into .agents/skills/human-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "human-writing", 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 kataras/jwt --skill human-writing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install kataras/jwt human-writing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kataras/jwt.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skill/human-writing .cursor/skills/human-writing && 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 "human-writing" agent skill from https://github.com/kataras/jwt/tree/main/skill/human-writing into .cursor/skills/human-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "human-writing", 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/kataras/jwt.git --path skill/human-writing--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 kataras/jwt --skill human-writing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install kataras/jwt human-writing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kataras/jwt.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skill/human-writing .gemini/skills/human-writing && 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 "human-writing" agent skill from https://github.com/kataras/jwt/tree/main/skill/human-writing into .gemini/skills/human-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "human-writing", 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 kataras/jwt human-writingInstalls 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 kataras/jwt --skill human-writing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/kataras/jwt.git skills-src && mkdir -p .github/skills && cp -r skills-src/skill/human-writing .github/skills/human-writing && 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 "human-writing" agent skill from https://github.com/kataras/jwt/tree/main/skill/human-writing into .github/skills/human-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "human-writing", 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 kataras/jwt --skill human-writing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install kataras/jwt human-writing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kataras/jwt.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skill/human-writing .opencode/skills/human-writing && 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 "human-writing" agent skill from https://github.com/kataras/jwt/tree/main/skill/human-writing into .opencode/skills/human-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "human-writing", 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.
human-writingA skill your agent uses when writing or editing any prose in this repository - the book's preface, its chapters and epilogue, the brand kit notes, the agent skill documents, the changelog, and the…
Human Writing is an agent skill from kataras/jwt. Use when writing or editing any prose in this repository - the book's preface, its chapters and epilogue, the brand kit notes, the agent skill documents, the changelog, and the root README. Also use when editing a doc comment in a .go file here. Strips the tells of AI-drafted prose (em dashes as clause separators, "comprehensive", "robust", "leverage", "provides a flexible way to", contractions, templated Introduction and Conclusion sections) and rewrites in plain, direct, technical English. Triggers on…
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including scripts (for example `scripts/scan-tells.sh`).
It sits in Development, covering Authentication, Humanizing AI text and Brand strategy and identity. It works with Go. The repository describes itself as: A fast and simple JWT implementation with Generics support for Go 1.27+. The licence is MIT.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 87a77ff. 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.
Ships 2 files in scripts/ (PowerShell and Shell), which the agent can run.
Shell commands in SKILL.md call:
pwshFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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.
Human Writing loads about 1.9k tokens when it runs. Until then it costs about 164 tokens; SKILL.md has 1,073 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); the scripts in this folder are not scanned.
The full file from kataras/jwt at commit 87a77ff, republished under its MIT licence (© kataras). 1,073 words, ~1,938 tokens.
.claude/skills/human-writing/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.This repository is read by people deciding whether to trust a security library with their authentication. It has to sound like an engineer wrote it, because one did. Prose that reads as generated invites the question of whether the code was too.
This skill is the standard, and scripts/scan-tells.ps1 is the check.
Every tracked markdown file: book/**.md, brand/BRAND.md, skill/**/*.md including this
one, and the root README.md and CHANGELOG.md. That is exactly the set the scanner's
-Md mode walks, so if the two disagree, one of them has a bug.
Untracked files are out of scope whatever they contain. Local agent configuration is not published, so holding it to a standard no reader will ever see is wasted effort.
Doc comments in .go files are in scope for the standard but not for the scanner. The
scanner skips Go entirely, because separating a doc comment from a string literal from a
code sample inside a comment is more machinery than it is worth. Those are edited by hand,
and the rules below still apply to them.
book/output/ is generated. Never edit it.
book/README.md, the preface, is the reference voice. When you are unsure how a sentence
should sound, read it.
pwsh skill/human-writing/scripts/scan-tells.ps1 book/03-claims.md
pwsh skill/human-writing/scripts/scan-tells.ps1 -Md # the whole corpus
pwsh skill/human-writing/scripts/scan-tells.ps1 -Md -Summary # counts per rule
pwsh skill/human-writing/scripts/scan-tells.ps1 -Wrap book/ # long linesskill/human-writing/scripts/scan-tells.sh --md --summary # no pwsh neededThe scanner is fence aware. It never reports anything inside a fenced code block, and it blanks inline code spans, link targets and bare URLs before matching, so an identifier or a URL containing a double dash is not a finding. Exit code is 1 while findings remain.
Zero findings is the bar for every file here. There are no correct-in-context em dashes in this repository.
The scanner is the only gate. No CI job runs it and no hook runs it: the hooks in this repository sync artefacts, they do not lint prose. So finish every writing session with a repository-wide pass, whatever single file you came to edit, and treat findings you did not write as yours to fix.
An em dash between clauses is the strongest single tell in this corpus. There is always a better mark. Pick by the job the dash was doing. The examples below are in code spans so that this document passes its own scanner, which is the point of the escape hatch at the bottom of this page:
| Job the dash was doing | Replacement | Example |
|---|---|---|
| Interrupting appositive, a pair of dashes mid-sentence | A colon, or two sentences | three failures — a nil key, a short nonce, a bad kid — each panicked becomes three failures panicked: a nil key, a short nonce and a bad kid |
| Trailing explanation | A period and a new sentence | Verify the token — the signature proves the key. becomes Verify the token. The signature proves the key. |
| Definition or expansion | A colon | `exp` — the expiry claim becomes `exp` is the expiry claim |
| Subordinate aside | Parentheses | the header (which is signed) cannot be edited |
| A simple pause | A comma |
Never substitute mechanically. Choose per sentence.
The en dash is fine in a numeric range (16–48 px). It is not a clause separator either.
Second person, and no contractions. Write you, not we and not the developer.
Write do not, never don't. Full sentences with a subject and a verb.
No emoji, anywhere.
No admonition syntax. Not > [!NOTE], not :::warning. Where you want a callout, write
a paragraph whose first phrase is bold, the way this list does.
Banned shapes. These are the ones an assistant produces by default:
## Conclusion that restates what was just said. End on the last real point, or on a
## Summary that adds the shape of the argument rather than repeating it.provides a robust and flexible way toThis guide will walk you throughBy leveragingallows developers to, enables you to, makes it easy tonot only X but also Y, X is not just Y, it is Z, ensuring the token is valid, , allowing you to rotate keysLet's dive in, deep diveIt is worth noting that. If it is, note it and skip the preamble.Word swaps.
| Instead of | Write |
|---|---|
comprehensive | full, or drop it |
robust | reliable, or drop it |
seamless, seamlessly | drop it |
leverage | use |
utilize | use |
crucial, vital | important, or say what breaks without it |
powerful | say what it actually does |
performant | fast, or give the number |
Technical adjectives that carry information stay. Constant-time comparison is a fact
about how the code runs, and zero-dependency is a fact about go.mod.
One concrete specific per claim. A number, a default, a flag name, an error name, a
line of output. Verification is fast is worth nothing. Verification costs 18 allocations and about 2.5 microseconds on this machine can be checked, and argued with.
Concede a trade-off now and then. Every design choice here cost something. Saying so is
what makes the rest of the page believable. Enrich verifying its input costs eight
allocations; the small-size brand cut drops a whole tooth; Merge splices raw JSON and can
therefore emit a duplicate key. Say it.
Vary the rhythm. Three sentences of the same length in a row is the sound of generated text. Follow a long one with a short one.
Edit surgically. Text that already complies is left alone, and no edit changes the meaning of a sentence to make it easier to phrase.
In a .go file you are editing comments only. Never touch code to fix prose. A doc comment
must still begin with the name of the thing it documents, which is a Go convention the
standard here does not override:
// Verify checks a token's signature and its standard claims.not
// This function checks a token's signature.Godoc has no emphasis syntax. **bold** in a doc comment renders as literal asterisks, and
## Heading renders as literal text, because a heading needs a space after a single #.
This package once carried over a thousand ** markers that all rendered as punctuation.
It will be, occasionally. A quoted error string containing a banned word, a rule name, a literal example of the thing being warned against. Two ways out, in order of preference:
Do not add an exemption to the scanner for one line. A rule with holes in it stops being a rule people trust.
© kataras, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in skill/human-writing of kataras/jwt.
Open the folder on GitHubat commit 87a77ff
Human Writing 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 |
|---|---|---|---|---|---|---|
| Human Writing this skillkataras/jwt | 212 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Golang Documentationunxed/f4 | 241 | 3 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Releasejrswab/axe | 896 | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Simple Englishmoeru-ai/airi | 50k | 2 repos | ~4.6k | Automated safety check: Pass | MIT | |
| Beautify GitHub Readmeoil-oil/beautify-github-readme | 1.8k | — | ~4.1k | Automated safety check: Pass | MIT | |
| Go-Redis Release Preparationredis/go-redis | 22k | — | ~1.1k | Automated safety check: Pass | BSD-2-Clause |
unxed/f4
Comprehensive documentation guide for Golang projects, covering godoc comments, README, CONTRIBUTING, CHANGELOG, Go Playground, Example tests, API docs, and llms.txt.
jrswab/axe
Prepare code for release (version bumps, changelog, README updates) and create an annotated tag to trigger the GoReleaser workflow.
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.
oil-oil/beautify-github-readme
Redesign GitHub README homepages or create project-native pure SVG, hybrid SVG-composed PNG/WebP, and opt-in animated GIF assets.
redis/go-redis
Prepares a go-redis release locally: picks the next semver, gathers merged PRs, writes the RELEASE-NOTES entry and bumps versions, without publishing.
Zergie/YAMMU
Redesign GitHub README homepages or create standalone GitHub-safe SVG and animated GIF assets around a repository's real theme.
kataras/jwt
Development guide for the jwt JSON Web Token library for Go (github.com/kataras/jwt).
Works with
Categories
A skill your agent uses when writing or editing any prose in this repository - the book's preface, its chapters and epilogue, the brand kit notes, the agent skill documents, the changelog, and the…. Human Writing is an agent skill from kataras/jwt. Use when writing or editing any prose in this repository - the book's preface, its chapters and epilogue, the brand kit notes, the agent skill documents, the changelog, and the root README.
Human Writing fits situations like: editing any prose in this repository - the books preface; its chapters and epilogue; the brand kit notes; the agent skill documents.
Run `npx skills add kataras/jwt --skill human-writing -a claude-code`. Or copy the skill folder (skill/human-writing in kataras/jwt) into .claude/skills/human-writing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add kataras/jwt --skill human-writing -a codex`. Or copy the skill folder (skill/human-writing in kataras/jwt) into .agents/skills/human-writing 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 kataras/jwt --skill human-writing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/human-writing, .gemini/skills/human-writing, .github/skills/human-writing and .opencode/skills/human-writing in your project.
Going by SKILL.md and its folder, Human Writing needs PowerShell and a shell for the scripts in its folder and the command-line tools its instructions call (pwsh). Our summary lists: A Bash shell; PowerShell.
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.
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.
Human Writing is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.8k 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 Human Writing: Golang Documentation (unxed/f4, 241 stars), Release (jrswab/axe, 896 stars), Simple English (moeru-ai/airi, 50k stars) and Beautify GitHub Readme (oil-oil/beautify-github-readme, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
kataras (a GitHub user) maintains it in kataras/jwt, which has 212 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on September 13, 2026.
Source: kataras/jwt on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.