{"id":"f7fbbd6c-e26f-4a88-abf5-7df4c83d3e4d","shortId":"DUtJqZ","kind":"skill","title":"vigilante-issue-implementation-on-go","tagline":"Implement a GitHub issue end-to-end when Vigilante dispatches work for a Go repository with idiomatic tooling and security guidance.","description":"# Vigilante Go Issue Implementation\n\n## Focus\n- Read the prompt for detected tech stacks, process hints, and Go security guidance before changing code.\n- Follow idiomatic Go conventions from Effective Go for naming, formatting, error handling, and package structure.\n- Keep changes scoped to the issue and do not broaden into unrelated style or lint fixes.\n\n## Go Tooling Workflow\n- **Formatting**: run `gofmt` or `go fmt` on all touched Go files. If the repository uses `goimports`, use that instead. Do not hand-format Go code.\n- **Testing**: run targeted `go test ./path/to/package/...` for changed packages first, then broader `go test ./...` when changes cross package boundaries. Use `-race` when practical.\n- **Vetting**: run `go vet ./...` on touched packages to catch common mistakes.\n- **Vulnerability checking**: run `govulncheck ./...` when it is installed and the change touches dependencies or security-sensitive code. If `govulncheck` is not available, note its absence and continue with other validation — do not fabricate output.\n- **Linting**: use the repository's established lint tooling. Prefer `golangci-lint` when configured (`.golangci.yml` or `.golangci.yaml`), or `staticcheck` when that is the project standard. If no project linter is configured, `go vet` is sufficient. Do not introduce a different linter unless the issue specifically requires it.\n- **Dependencies**: run `go mod tidy` after any dependency changes. Prefer standard library packages when they cover the need.\n\n## Effective Go Style\n- Use MixedCaps for multi-word names, not underscores.\n- Keep exported identifiers descriptive and unexported identifiers short.\n- Return errors rather than panicking.\n- Write doc comments on exported identifiers starting with the identifier name.\n- Keep packages focused and APIs minimal.\n\n## Security\n- Use `crypto/rand` for security-sensitive random values, not `math/rand`.\n- Prefer standard library crypto packages over third-party alternatives.\n- Use `crypto/subtle.ConstantTimeCompare` for comparing secret values.\n- Consider fuzz tests for parsers and input-handling logic (Go 1.18+ `func FuzzXxx`).\n- Do not store secrets, tokens, or credentials in source files.\n\n## Mixed-Language Repositories\n- A Go repository may include a frontend layer such as HTMX templates served from Go, a React or Next.js app in a subdirectory, or another frontend framework colocated with the Go backend.\n- Scope Go tooling (`gofmt`, `go test`, `go vet`, `govulncheck`, Go linters) to Go source files and packages only. Do not run Go tools against frontend code.\n- When the repository also has a Node.js or TypeScript frontend, respect its own toolchain (package manager, bundler, linter, test runner) for frontend-scoped changes. Check the prompt for detected tech stacks and process hints.\n- When an issue touches both Go backend and frontend code, validate each side with its own toolchain rather than validating only one side.\n- Do not assume a Go repository is Go-only. Read process hints and workspace signals in the prompt to understand the full repository structure.\n\n## Workflow\n- Follow the base `vigilante-issue-implementation` workflow for issue comments, validation, push, and PR creation.\n- Use `vigilante commit` for all commit-producing operations. Do not use `git commit` or GitHub CLI commit flows directly.\n- Any commit or amend must preserve the user's existing git author, committer, and signing configuration. Commit on behalf of the user and do not overwrite `git config` with a coding-agent identity.\n- Do not add `Co-authored by:` trailers or any other agent attribution for Codex, Claude, Gemini, or similar coding-agent identities.\n- Repository-specific instructions (`AGENTS.md`, `README.md`, CI config) remain authoritative when they are more specific than the generic Go guidance in this skill.","tags":["vigilante","issue","implementation","aliengiraffe","agent","agent-skills","agentic-ai","agentic-workflow","agents","ai-orchestration","ai-orchestrator","orchestration"],"capabilities":["skill","source-aliengiraffe","skill-vigilante-issue-implementation-on-go","topic-agent","topic-agent-skills","topic-agentic-ai","topic-agentic-workflow","topic-agents","topic-ai-orchestration","topic-ai-orchestrator","topic-orchestration"],"categories":["vigilante"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/aliengiraffe/vigilante/vigilante-issue-implementation-on-go","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add aliengiraffe/vigilante","source_repo":"https://github.com/aliengiraffe/vigilante","install_from":"skills.sh"}},"qualityScore":"0.464","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 28 github stars · SKILL.md body (3,840 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-01T07:01:24.242Z","embedding":null,"createdAt":"2026-04-18T22:23:13.299Z","updatedAt":"2026-05-01T07:01:24.242Z","lastSeenAt":"2026-05-01T07:01:24.242Z","tsv":"'/path/to/package':115 '1.18':324 'absenc':169 'add':555 'agent':551,564,574 'agents.md':580 'also':402 'altern':306 'amend':522 'anoth':365 'api':284 'app':360 'assum':459 'attribut':565 'author':530,558 'authorit':585 'avail':166 'backend':372,440 'base':485 'behalf':537 'boundari':128 'broaden':74 'broader':121 'bundler':415 'catch':141 'chang':48,66,117,125,154,234,423 'check':145,424 'ci':582 'claud':568 'cli':515 'co':557 'co-author':556 'code':49,109,161,398,443,550,573 'codex':567 'coding-ag':549,572 'coloc':368 'comment':271,493 'commit':501,505,512,516,520,535 'commit-produc':504 'committ':531 'common':142 'compar':310 'config':546,583 'configur':192,209,534 'consid':313 'continu':171 'convent':53 'cover':241 'creation':498 'credenti':333 'cross':126 'crypto':300 'crypto/rand':288 'crypto/subtle.constanttimecompare':308 'depend':156,226,233 'descript':259 'detect':38,428 'differ':218 'direct':518 'dispatch':17 'doc':270 'effect':55,244 'end':12,14 'end-to-end':11 'error':60,265 'establish':184 'exist':528 'export':257,273 'fabric':177 'file':94,336,387 'first':119 'fix':80 'flow':517 'fmt':89 'focus':33,282 'follow':50,483 'format':59,84,107 'framework':367 'frontend':347,366,397,408,421,442 'frontend-scop':420 'full':479 'func':325 'fuzz':314 'fuzzxxx':326 'gemini':569 'generic':593 'git':511,529,545 'github':9,514 'go':6,21,30,44,52,56,81,88,93,108,113,122,135,210,228,245,323,342,355,371,374,377,379,382,385,394,439,461,465,594 'go-on':464 'gofmt':86,376 'goimport':99 'golangci':189 'golangci-lint':188 'golangci.yaml':195 'golangci.yml':193 'govulncheck':147,163,381 'guidanc':28,46,595 'hand':106 'hand-format':105 'handl':61,321 'hint':42,433,469 'htmx':351 'ident':552,575 'identifi':258,262,274,278 'idiomat':24,51 'implement':4,7,32,489 'includ':345 'input':320 'input-handl':319 'instal':151 'instead':102 'instruct':579 'introduc':216 'issu':3,10,31,70,222,436,488,492 'keep':65,256,280 'languag':339 'layer':348 'librari':237,299 'lint':79,179,185,190 'linter':207,219,383,416 'logic':322 'manag':414 'math/rand':296 'may':344 'minim':285 'mistak':143 'mix':338 'mixed-languag':337 'mixedcap':248 'mod':229 'multi':251 'multi-word':250 'must':523 'name':58,253,279 'need':243 'next.js':359 'node.js':405 'note':167 'one':455 'oper':507 'output':178 'overwrit':544 'packag':63,118,127,139,238,281,301,389,413 'panick':268 'parser':317 'parti':305 'pr':497 'practic':132 'prefer':187,235,297 'preserv':524 'process':41,432,468 'produc':506 'project':202,206 'prompt':36,426,475 'push':495 'race':130 'random':293 'rather':266,451 'react':357 'read':34,467 'readme.md':581 'remain':584 'repositori':22,97,182,340,343,401,462,480,577 'repository-specif':576 'requir':224 'respect':409 'return':264 'run':85,111,134,146,227,393 'runner':418 'scope':67,373,422 'secret':311,330 'secur':27,45,159,286,291 'security-sensit':158,290 'sensit':160,292 'serv':353 'short':263 'side':446,456 'sign':533 'signal':472 'similar':571 'skill':598 'skill-vigilante-issue-implementation-on-go' 'sourc':335,386 'source-aliengiraffe' 'specif':223,578,590 'stack':40,430 'standard':203,236,298 'start':275 'staticcheck':197 'store':329 'structur':64,481 'style':77,246 'subdirectori':363 'suffici':213 'target':112 'tech':39,429 'templat':352 'test':110,114,123,315,378,417 'third':304 'third-parti':303 'tidi':230 'token':331 'tool':25,82,186,375,395 'toolchain':412,450 'topic-agent' 'topic-agent-skills' 'topic-agentic-ai' 'topic-agentic-workflow' 'topic-agents' 'topic-ai-orchestration' 'topic-ai-orchestrator' 'topic-orchestration' 'touch':92,138,155,437 'trailer':560 'typescript':407 'underscor':255 'understand':477 'unexport':261 'unless':220 'unrel':76 'use':98,100,129,180,247,287,307,499,510 'user':526,540 'valid':174,444,453,494 'valu':294,312 'vet':133,136,211,380 'vigilant':2,16,29,487,500 'vigilante-issue-implement':486 'vigilante-issue-implementation-on-go':1 'vulner':144 'word':252 'work':18 'workflow':83,482,490 'workspac':471 'write':269","prices":[{"id":"2b64cddb-328e-433d-8a10-374c40e6d8fb","listingId":"f7fbbd6c-e26f-4a88-abf5-7df4c83d3e4d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"aliengiraffe","category":"vigilante","install_from":"skills.sh"},"createdAt":"2026-04-18T22:23:13.299Z"}],"sources":[{"listingId":"f7fbbd6c-e26f-4a88-abf5-7df4c83d3e4d","source":"github","sourceId":"aliengiraffe/vigilante/vigilante-issue-implementation-on-go","sourceUrl":"https://github.com/aliengiraffe/vigilante/tree/main/skills/vigilante-issue-implementation-on-go","isPrimary":false,"firstSeenAt":"2026-04-18T22:23:13.299Z","lastSeenAt":"2026-05-01T07:01:24.242Z"}],"details":{"listingId":"f7fbbd6c-e26f-4a88-abf5-7df4c83d3e4d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"aliengiraffe","slug":"vigilante-issue-implementation-on-go","github":{"repo":"aliengiraffe/vigilante","stars":28,"topics":["agent","agent-skills","agentic-ai","agentic-workflow","agents","ai","ai-orchestration","ai-orchestrator","orchestration"],"license":"apache-2.0","html_url":"https://github.com/aliengiraffe/vigilante","pushed_at":"2026-04-23T16:58:46Z","description":"Vigilante is a sandbox-first orchestration layer for coding agents. It isolates every task in a git worktree, enforces strict credential scoping, and gives you full audit logs — so your agents can't burn down production.","skill_md_sha":"16391b65cb0d132350e06569142e8893ec11b76a","skill_md_path":"skills/vigilante-issue-implementation-on-go/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/aliengiraffe/vigilante/tree/main/skills/vigilante-issue-implementation-on-go"},"layout":"multi","source":"github","category":"vigilante","frontmatter":{"name":"vigilante-issue-implementation-on-go","description":"Implement a GitHub issue end-to-end when Vigilante dispatches work for a Go repository with idiomatic tooling and security guidance."},"skills_sh_url":"https://skills.sh/aliengiraffe/vigilante/vigilante-issue-implementation-on-go"},"updatedAt":"2026-05-01T07:01:24.242Z"}}