goago
Skill1 starsChanged 2 months agoMITView on GitHub
Run and remediate the goago restriction-only Go linter. Use when a Go repository declares the goago module tool, invokes goago in repository checks, contains a goago policy file, reports goago findings, or needs goago adoption or setup.
In this repository9 other files it gives its agents.
- AGENTS.mdAGENTS.md
- autoreview/AGENTS.mdAGENTS.md
- autoreviewSkill
- codex-delegationSkill
- model-selectionSkill
- plansSkill
- starportSkill
- technical-writingSkill
- use-modern-goSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
23 rules. About 0 are common, 11 are distinctive, and 12 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈11
Distinctive · estimate
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Read the nearest AGENTS.md.
- Very specific: line 24
Read the nearest .goago.yml or .goago.yaml when one exists.
- Very specific: line 25
Use go tool goago when the directive exists.
- Very specific: line 26
Use goago only when the repository documents a global installation.
- Distinctive: line 27
Do not install or add goago unless the user requests adoption or setup.
- Very specific: line 40
Use each rules[].enabled value as the active restriction set.
- Very specific: line 43
Do not infer that the repository has no policy when .goago.yml is absent.
- Distinctive: line 46
Run the complete coding-agent check:
- Very specific: line 58
Do not treat an empty findings array as clean when errors is not empty.
- Very specific: line 63
Read each catalogue rationale or run go tool goago -explain <rule>.
- Distinctive: line 66
Delete each stale ignore after confirming that it suppresses no finding.
- Distinctive: line 67
Run the same JSON command again.
- Very specific: line 70
Do not add or change .goago.yml only to remove a finding.
- Distinctive: line 73
Do not add a suppression only to make the run pass.
- Distinctive: line 85
Use this procedure only when the user requests adoption or setup.
- Distinctive: line 87
Add the pinned module tool.
- Distinctive: line 100
Add the goago command to the repository's existing check target and CI.
- Distinctive: line 101
Add the required command to AGENTS.md.
- Very specific: line 102
Commit go.mod, go.sum, and the authorized integration files.
- Very specific: line 104
If the user requests a custom policy, run go tool goago -init.
- Very specific: line 110
Before v0.3.0, the tool used the name ago.
- Very specific: line 115
Read legacy .ago.yml and .ago.yaml policies too.
- Distinctive: line 119
When the user requests migration, follow the migration guide.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
goago
Pronounce goago as go ago. Use the repository's pinned command and
resolved rule policy.
Find the contract
- Read the nearest
AGENTS.md. Inspect
go.modfor this tool directive:tool github.com/agentstation/goago/cmd/goago- Read the nearest
.goago.ymlor.goago.yamlwhen one exists. - Use
go tool goagowhen the directive exists. - Use
goagoonly when the repository documents a global installation. - Do not install or add goago unless the user requests adoption or setup.
A goago policy file is optional. The pinned version's built-in defaults are the resolved policy when no policy file exists.
Run the check
Discover the active rule policy before the first repair pass:
go tool goago -list -format jsonUse each rules[].enabled value as the active restriction set. Also read
policy.ruleSource, policy.configPath, policy.tests, and policy.exclude.
Do not infer that the repository has no policy when .goago.yml is absent. The
pinned goago version supplies the built-in defaults.
Run the complete coding-agent check:
go tool goago -stale-ignores -format json ./...Interpret the exit status with the JSON document:
- Status 0 means the run completed with no findings or stale ignores.
- Status 1 means the run found a violation or stale ignore.
- Status 2 means the run was incomplete. Read
errorsbefore changing source.
Do not treat an empty findings array as clean when errors is not empty.
Repair findings
- Group findings by
ruleand file. - Read each catalogue
rationaleor rungo tool goago -explain <rule>. - Change the smallest source region that violates the selected policy.
- Preserve behavior unless the user requested a behavior change.
- Delete each stale ignore after confirming that it suppresses no finding.
- Run the same JSON command again.
- Report the exit status, finding count, stale-ignore count, and incomplete errors.
Do not add or change .goago.yml only to remove a finding. A policy change
needs an explicit project decision.
Do not add a suppression only to make the run pass. Use a suppression for a local exception with a concrete reason:
//goago:ignore no-goto -- hand-written state machine, see docs/parser.md
goto retrygoago never rewrites source. Fixes belong to the coding agent or developer.
Adopt goago
Use this procedure only when the user requests adoption or setup.
Add the pinned module tool.
go get -tool github.com/agentstation/goago/cmd/goago@latestInspect the built-in policy.
go tool goago -list -format json- Run
go tool goago -stale-ignores -format json ./.... - Add the goago command to the repository's existing check target and CI.
- Add the required command to
AGENTS.md. - Commit
go.mod,go.sum, and the authorized integration files.
If the user requests a custom policy, run go tool goago -init. Review the new
.goago.yml, then commit it. The command writes at the go.mod or go.work
root and refuses to create a competing child policy.
Projects that still use ago
Before v0.3.0, the tool used the name ago. If go.mod still pins
github.com/agentstation/ago/cmd/ago, use go tool ago for the commands above
until the user requests migration. Versions before v0.2.0 do not include the
policy JSON metadata. Report that limitation.
Read legacy .ago.yml and .ago.yaml policies too. goago accepts these files
and //ago:ignore directives so migration does not remove restrictions or
exceptions. Do not create a second policy file.
When the user requests migration, follow the migration guide. Replace the old module tool, commands, policy filenames, and suppression prefixes. Preserve the policy and each suppression reason.
Boundaries
- goago always skips
vendor/andtestdata/. - Exclude patterns are project policy, not a repair shortcut.
- Exit status 2 blocks a clean result.
- The versioned JSON fields and rule catalogue are the machine contracts.
- CI enforces the policy. This skill guides the local workflow.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

