Typed Dependencies with fp-go Effect
IBM/fp-go
Teaches an agent to write fp-go v2 services with the Effect type, carrying dependencies in its type parameter instead of in context.Context or parameters.
Add, refactor, debug, review, explain, or migrate type-safe validation in consumer Go applications using github.com/cohesivestack/valgo.
$ npx skills add cohesivestack/valgo --skill valgo -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cohesivestack/valgo valgo --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/cohesivestack/valgo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/valgo .claude/skills/valgo && 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 "valgo" agent skill from https://github.com/cohesivestack/valgo/tree/master/skills/valgo into .claude/skills/valgo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "valgo", 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/cohesivestack/valgo/tree/master/skills/valgoType 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 cohesivestack/valgo --skill valgo -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cohesivestack/valgo valgo --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cohesivestack/valgo.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/valgo .agents/skills/valgo && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "valgo" agent skill from https://github.com/cohesivestack/valgo/tree/master/skills/valgo into .agents/skills/valgo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "valgo", 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 cohesivestack/valgo --skill valgo -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cohesivestack/valgo valgo --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cohesivestack/valgo.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/valgo .cursor/skills/valgo && 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 "valgo" agent skill from https://github.com/cohesivestack/valgo/tree/master/skills/valgo into .cursor/skills/valgo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "valgo", 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/cohesivestack/valgo.git --path skills/valgo--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 cohesivestack/valgo --skill valgo -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cohesivestack/valgo valgo --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cohesivestack/valgo.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/valgo .gemini/skills/valgo && 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 "valgo" agent skill from https://github.com/cohesivestack/valgo/tree/master/skills/valgo into .gemini/skills/valgo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "valgo", 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 cohesivestack/valgo valgoInstalls 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 cohesivestack/valgo --skill valgo -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cohesivestack/valgo.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/valgo .github/skills/valgo && 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 "valgo" agent skill from https://github.com/cohesivestack/valgo/tree/master/skills/valgo into .github/skills/valgo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "valgo", 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 cohesivestack/valgo --skill valgo -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cohesivestack/valgo valgo --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cohesivestack/valgo.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/valgo .opencode/skills/valgo && 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 "valgo" agent skill from https://github.com/cohesivestack/valgo/tree/master/skills/valgo into .opencode/skills/valgo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "valgo", 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.
valgoAdd, refactor, debug, review, explain, or migrate type-safe validation in consumer Go applications using github.com/cohesivestack/valgo.
Valgo is an agent skill from cohesivestack/valgo. Add, refactor, debug, review, explain, or migrate type-safe validation in consumer Go applications using github.com/cohesivestack/valgo. Use for new or existing Valgo integrations, validator and rule selection, nested or conditional validation, errors and localization, reusable or custom validators, migrations from tag-based validation libraries, and version-compatible Valgo code generation and verification.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `agents/openai.yaml`, `references/patterns.md` and `references/rule-index.md`).
It sits in Development, covering Internationalization, Type safety and Refactoring. It works with GitHub and Go. The repository describes itself as: Valgo is a type-safe, expressive, and extensible validation library for Go with built-in i18n support. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit dbaf591. 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.
Shell commands in SKILL.md call:
goFrom 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.
Valgo loads about 2.4k tokens when it runs, and up to ~6.5k if it reads all its reference files. Until then it costs about 104 tokens; SKILL.md has 1,188 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); files beside SKILL.md are not scanned.
The full file from cohesivestack/valgo at commit dbaf591, republished under its MIT licence (© cohesivestack). 1,188 words, ~2,387 tokens.
.claude/skills/valgo/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Use Valgo in an application that consumes the library. Do not use this skill to develop, maintain, or contribute to Valgo itself. For upstream Valgo work, follow that repository's contributor instructions and treat its source and tests as the implementation under change.
Start from the project root and inspect before editing:
Read repository instructions and locate go.mod, go.work, vendor/,
relevant packages, tests, and generated-code policies.
Inspect package organization, request or domain types, JSON/form field naming, error handling, HTTP framework conventions, localization needs, and existing validation helpers.
Determine whether Valgo is installed and resolve the code actually built:
go list -m -json github.com/cohesivestack/valgoRecord Version, Dir, GoMod, and any Replace value. Inspect vendored
code or a local replacement when the build uses it; a tag alone is then not
the effective API.
Preserve the installed version. Do not run an upgrade, change a replacement, or add a second validation library unless the user explicitly requests it.
For a new integration, identify the latest stable Valgo release whose
go.mod is compatible with the project's Go version:
go list -m -versions github.com/cohesivestack/valgo
go list -m -json github.com/cohesivestack/valgo@vX.Y.ZAdd the selected explicit version. Do not hard-code the version listed in this skill.
If go list reports that Valgo is absent, add it only when the requested work
requires a new integration or migration.
Use this priority:
Dir, replacement, or vendor tree).Never silently use master APIs in a project pinned to an older release. If
documentation and source disagree, investigate the version boundary and follow
the effective source. Use go doc, source declarations, and package tests to
settle ambiguity. Never invent a constructor, rule, session method, option, or
error helper. If matching docs are not shipped with the effective source,
retrieve them from the exact release tag rather than the latest branch.
Read only the matching documentation needed for the task:
getting-started.md and
using-valgo/validation-sessions.mdvalidators/overview.md,
validators/rule-index.md, and the relevant validator pagevalidators/predicates.md when that page and the
github.com/cohesivestack/valgo/is package exist in the effective versionusing-valgo/namespaces.mdusing-valgo/querying-results.md and
using-valgo/conditional-flows.mdusing-valgo/errors.md and
using-valgo/localization.mdvalidators/or-operators.md (or the matching older page)extending/custom-validators.md and the
relevant cookbook/ pagemigration.mdWhen versioned docs exist, select the directory matching the installed minor release. Use unversioned latest docs only under priority 4 above.
Or(), or OrElse().Preserve the project's existing field paths, titles, message language, response schema, and boundary between validation and transport handling.
Prefer the conventional alias for a new import:
import v "github.com/cohesivestack/valgo"Preserve a different established alias.
Keep Valgo's function-based model. Do not introduce validation struct tags.
Select the narrowest validator compatible with the Go value's exact type.
On versions with generalized numeric constructors, use Int/IntP for
signed integers, Uint/UintP for unsigned integers, and Float/FloatP
for floating-point values regardless of width. On older versions, use the
width-specific constructor. Do not replace pointer absence with a sentinel
zero value.
For strings, use EqualTo for exact equality. Use EqualFold only when the
effective version provides it and Unicode simple case-insensitive comparison
is intended; it does not normalize text or perform full case folding.
Give validators stable machine-readable names. Use titles only when display text must differ from the field name.
Use In for nested objects, InRow for slices of objects, and InCell for
slices of scalar values. Match the project's dot/index path convention.
Keep session operations separate from validator rules:
Is, Check, New, In, InRow,
InCell, If, When, Do, and Merge only when supported.Not, Blank, Between, or Passing on a
type-compatible validator.Use Is for the usual first-failure-per-validator behavior. Use Check
only when the consumer needs every failing message in a chain. Use New
for sessions assembled over multiple statements.
Treat Or() grouping and OrElse() cut semantics as version-sensitive.
Verify both behavior and error shape in matching docs/tests before changing
a chain.
Keep a one-off validation local. Extract a helper returning
*v.Validation when the pattern genuinely repeats. Create a custom
validator only for a reusable domain rule that benefits from its own typed
API and message key.
When the effective Valgo version includes the is subpackage, use its
stateless predicates for reusable boolean checks that do not need field
paths, messages, localization, or validation-session results. A predicate
may be passed to a validator's Passing method when an error is needed.
Translate requirements into exact Go value types, field paths, rules, and expected errors. Implement the smallest change that fits existing package and handler conventions. Do not replace project error handling merely because Valgo offers another output form.
Trace each input value through its constructor, rule chain, namespace, session
operation, and error conversion. Check pointer nil behavior, rune-versus-byte
length, OR precedence, conditional evaluation timing, unknown-path queries,
and Is versus Check. Preserve observable behavior during refactors unless
the user requests a behavior change.
required according to the Go type and desired whitespace
semantics; convert omitempty using pointers or explicit Go conditions;
convert slice traversal with InRow or InCell; express cross-field rules
with typed Go values and conditional session flow.gofmt.go test ./... when
practical.go.mod and go.sum; run
go mod tidy only when appropriate, and verify it did not upgrade Valgo or
unrelated dependencies unexpectedly.© cohesivestack, 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 4 other files (references) in skills/valgo of cohesivestack/valgo.
Open the folder on GitHubat commit dbaf591
Valgo 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 |
|---|---|---|---|---|---|---|
| Valgo this skillcohesivestack/valgo | 508 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Typed Dependencies with fp-go EffectIBM/fp-go | 2k | — | ~4.3k | Automated safety check: Pass | Apache-2.0 | |
| Golang Samber Mosamber/cc-skills-golang | 3.4k | — | ~2.9k | Automated safety check: Pass | MIT | |
| Golang Samber Locontext-labs/whip | 1.1k | 2 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Golang Samber Docontext-labs/whip | 1.1k | 1 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Golang Samber Mocontext-labs/whip | 1.1k | — | ~2.8k | Automated safety check: Pass | MIT |
IBM/fp-go
Teaches an agent to write fp-go v2 services with the Effect type, carrying dependencies in its type parameter instead of in context.Context or parameters.
samber/cc-skills-golang
Monadic types for Golang using samber/mo — Option, Result, Either, Future, IO, Task, and State types for type-safe nullable values, error handling, and functional composition with pipeline…
context-labs/whip
Functional helpers for Go using samber/lo — 500+ type-safe generics for slices, maps, strings, concurrency (Map, Filter, Reduce); concurrent (lo/parallel), in-place (lo/mutable), lazy iterators…
context-labs/whip
Dependency injection in Go using samber/do — service containers, lifecycle, scopes, health checks, graceful shutdown, module organization.
context-labs/whip
Monadic types in Golang via samber/mo — Option, Result, Either, Future, IO, Task, State for type-safe nullable values, error handling, functional composition.
yamadashy/repomix
Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content…
Categories
Add, refactor, debug, review, explain, or migrate type-safe validation in consumer Go applications using github.com/cohesivestack/valgo. Valgo is an agent skill from cohesivestack/valgo.com/cohesivestack/valgo.
Valgo fits situations like: existing Valgo integrations; validator and rule selection; conditional validation; errors and localization.
Run `npx skills add cohesivestack/valgo --skill valgo -a claude-code`. Or copy the skill folder (skills/valgo in cohesivestack/valgo) into .claude/skills/valgo in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cohesivestack/valgo --skill valgo -a codex`. Or copy the skill folder (skills/valgo in cohesivestack/valgo) into .agents/skills/valgo 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 cohesivestack/valgo --skill valgo -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/valgo, .gemini/skills/valgo, .github/skills/valgo and .opencode/skills/valgo in your project.
Going by SKILL.md and its folder, Valgo needs the command-line tools its instructions call (go).
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. Review the folder before installing.
Valgo is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Valgo: Typed Dependencies with fp-go Effect (IBM/fp-go, 2k stars), Golang Samber Mo (samber/cc-skills-golang, 3.4k stars), Golang Samber Lo (context-labs/whip, 1.1k stars) and Golang Samber Do (context-labs/whip, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cohesivestack (a GitHub organization) maintains it in cohesivestack/valgo, which has 508 GitHub stars. The repository was last updated on August 20, 2026.
Source: cohesivestack/valgo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.