Recompute Description/SKILL.md/Directory token counts for every skill
with tiktoken-cli (several skills grew since the last measurement, e.g.
golang-continuous-integration's assets/, golang-how-to's references/).
Also add missing golang-pkg-go-dev to the skills tree diagram.
Require test/benchmark files to mirror the source file name (foo.go ->
foo_test.go, foo_bench_test.go), not the individual function/method
under test, and to order test/benchmark functions in the same order
as the source file. Keeps file-to-file navigation and go test/-bench
output predictable.
* docs(golang-testing): warn against testify assert scope leaking into subtests
Reusing an assert/require instance built from the parent *testing.T
inside t.Run closures misattributes subtest failures to the parent
test, silently hiding which subtest actually broke.
* chore(golang-testing): bump skill version to 1.2.4
* feat(skills): add golang-refactoring skill
Adds a new skill covering the safe, at-scale process of refactoring
existing Go code: a coverage-adaptive safety net, tool-driven
behavior-preserving transforms (gopls Rename/Inline/Extract, gofmt -r,
eg, gopatch, go/analysis fixers), the Fowler refactoring catalog mapped
to Go, breaking import cycles and moving types across packages via
type-alias gradual code repair, and a human-in-the-loop workflow of
small staged PRs landed on a refactoring branch.
The workflow persists its plan in the code itself via `// REFACTOR(step
N): ...` markers (seeded when the refactoring branch is created, for
large refactors only) since a multi-step refactor outlasts any single
session's context, delegates each staged change to a sub-agent so the
orchestrating session only keeps short results, and keeps intermediate
PRs out of draft while the final merge-to-main PR is opened as one.
The skill owns the process; it cross-references golang-naming,
golang-project-layout, golang-code-style, golang-design-patterns,
golang-modernize, golang-security/golang-safety, golang-lint,
golang-testing, golang-benchmark, and golang-gopls for target-state
rules and mechanics owned elsewhere, and those first five skills
gained a reciprocal cross-reference back. golang-how-to's skill
loading table, categories, and competing-clusters disambiguation are
updated accordingly.
* docs(golang-refactoring): reformat skill body into concise bullet lists
Convert dense prose paragraphs across SKILL.md and all references/*.md
into nested bullet points for scannability, without changing any rule,
rationale, table, code block, or cross-reference.
* chore(skills): bump version of skills cross-referencing golang-refactoring
code-style, design-patterns, how-to, modernize, naming, and project-layout
each gained a cross-reference to the new golang-refactoring skill; bump
their patch version per the repo version-discipline convention.
* fix(golang-refactoring): correct grammar in persona line (land change -> land changes)
Add a targeted golang-gopls pointer at the rename/find-callers moment in
golang-naming, golang-structs-interfaces, golang-modernize,
golang-troubleshooting, and golang-code-style — gopls safe rename updates
every call site and refuses renames that break interface satisfaction,
which grep/sed/Edit-based renames silently miss.
Also fix golang-gopls's own docs: the capability matrix listed
goToTypeDefinition as a native LSP tool operation, but the native tool's
operation enum does not include it, so type-definition navigation has no
agent-invocable path today.
* feat(skills): add golang-gopls skill
Documents gopls (the official Go language server) as its own atomic
skill: the three ways to reach it (its MCP server, Claude Code's
native LSP tool, and its CLI), a capability-to-tool matrix, the full
feature catalog (navigation, diagnostics, refactors, web features),
and the efficient read/edit workflows from gopls's own MCP
instructions.
golang-how-to previously carried this content inline; it's now
reduced to a pointer, and the ~18 library skills that referenced
gopls navigation through golang-how-to are repointed to golang-gopls
directly, keeping each concept owned by exactly one skill.
* revert: do not bump plugin version for this PR
* refactor(skills): tighten golang-gopls, drop LSP-server-hosting CLI flags
Moves the capability-to-tool matrix out of SKILL.md into its own
references/matrix.md, cutting SKILL.md from ~3.5k to ~2.3k tokens
while keeping every row. Drops mentions of gopls's attached MCP mode
and the mcp -instructions flag, since neither applies to this skill's
agent-only usage. Trims the CLI global flags table down to the ones
that matter outside of running gopls as a long-lived LSP server
(-listen, -remote*, -debug, -otel, -mode removed), and documents the
remaining flags' full value sets exhaustively.
Also fixes the README's [!IMPORTANT] alert blockquote, which a prior
prettier run had collapsed onto one line, and adds golang-gopls to
the ASCII skill map.
* feat(skills): add ultracode orchestration directive to fan-out skills
The `ultracode` keyword (multi-agent workflow orchestration) didn't exist
when these skills were originally written. Add a Thinking-mode-style
Orchestration mode directive to the 12 skills that already describe a
parallel sub-agent fan-out mode for full-codebase audits/scans/cleanups,
so the agent knows to escalate to orchestration for broad sweeps.
Documents the new directive and its README flag (🤖) in CLAUDE.md, and
bumps each touched skill's patch version.
* fix(skills): bump patch version for security, performance, modernize
main already bumped these three skills to the same patch value for an
unrelated change (isolated-worktree workflow), so the rebase merge
landed on an identical version string and hid this branch own change.
Bump one more patch to reflect this branch additions.
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Adds a step to the new-skill checklist: dispatch parallel sub-agents to
read existing skills and add a "-> See" cross-reference where their
topic overlaps with the new skill, keeping the atomic-skill ownership
convention from drifting out of sync.
* feat(skills): add isolated-worktree workflow to 5 skills
Document when to use the native EnterWorktree/ExitWorktree tools for
workflows with genuine collision risk: parallel mutating sub-agents
(golang-documentation, golang-modernize), variant comparison with a
serial-measurement caveat (golang-benchmark, golang-performance), and
per-fix remediation branches during large audits (golang-security).
Read-only parallel audits (security scan, testing, troubleshooting,
etc.) were deliberately excluded — concurrent reads need no isolation.
* revert: keep plugin version at 1.7.0
The isolated-worktree workflow changes do not warrant a plugin-wide
version bump on their own.
* revert: drop worktree workflow from golang-documentation
Its parallel sub-agents write independent files/sections rather than
racing on shared state, so isolation is not warranted here.
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* docs(skills): clarify difference between godig/pkg.go.dev and gopls LSP server
golang-how-to now documents wiring gopls for Go code navigation, both as an
MCP server (agent-first: go_search, go_file_context, go_package_api,
go_symbol_references, go_diagnostics, go_vulncheck) and via Claude Code's
native LSP tool (ENABLE_LSP_TOOL=1 plus the official gopls-lsp plugin).
golang-pkg-go-dev now spells out when to reach for godig (published
ecosystem: versions, docs, importers, CVEs for packages not yet added) vs
gopls (your resolved local build) vs Context7 (fallback for libraries not
indexed on pkg.go.dev), with a task-to-tool matrix.
* fix(skills): route library skills to godig/gopls instead of Context7
17 library skills recommended Context7 as the discoverability fallback
for Go package facts, when godig (pkg.go.dev) and gopls (local code
navigation) are the better-suited tools for those tasks. Each skill's
disclaimer now points to golang-pkg-go-dev (godig) for package docs,
versions, symbols and vulnerabilities, and to golang-how-to (gopls)
for navigating the library's usage in local code, keeping Context7 as
a fallback for docs not indexed on pkg.go.dev. allowed-tools grants
Bash(godig:*), Bash(gopls:*), LSP, and mcp__gopls__* accordingly.
* fix(skills): route golang-popular-libraries to godig/gopls for exploration
The library-selection skill only referred developers to generic library
docs. Add godig for vetting candidate package facts (docs, symbols,
versions, importers, vulnerabilities) and gopls for browsing a
candidate library resolved source once added to the build, keeping
Context7 as a fallback for docs not indexed on pkg.go.dev.
* chore(skills): bump golang-graphql to v0.1.0
* fix(skills): grant gopls CLI and MCP tools in golang-how-to allowed-tools
The skill documents both the gopls MCP server and the native LSP tool
but only granted LSP, not the gopls MCP tools or the gopls CLI itself.
* docs(skills): move godig vs gopls vs Context7 boundary into golang-how-to
The comparison lived in golang-pkg-go-dev, but golang-how-to already owns
gopls wiring and is the orchestrator every Go task loads first, so the
tool-choice guidance belongs there instead. Also added govulncheck as a
fourth compared tool, distinguishing the whole-tree CI audit from gopls
go_vulncheck single-build check. golang-pkg-go-dev now carries a short
pointer instead of duplicating the table.
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* fix(skills): refresh golang-pkg-go-dev for godig v0.2.0
Sync the skill with the godig v0.2.0 CLI surface (was written against v0.1.0):
- vulns now reads the Go vulnerability database (vuln.go.dev, OSV) instead of
pkg.go.dev, so summary and per-range fix versions are populated. It dropped
--filter and --module (only --version and --limit remain).
- Document the new global --vuln-base-url flag.
- Drop vulns from the --filter command list, its filterable-fields row, and the
now-obsolete "vulns uses Go-style ID/Details" casing caveat.
- Update the sample vulns output (fixedVersion removed; ranges/aliases added).
Bump skill 1.0.0 -> 1.1.0, skill-library-version 0.1.0 -> 0.2.0, plugin 1.6.0 -> 1.7.0.
* docs(golang-pkg-go-dev): clarify vulns data source in sample-output intro
Addresses PR review: the intro claimed all field sets mirror the pkg.go.dev
API, but since v0.2.0 vulns is sourced from the Go vuln DB (vuln.go.dev).
* feat(skills): add golang-pkg-go-dev skill
Add a skill covering godig, a pkg.go.dev API client (CLI + MCP server)
for exploring Go packages and modules: docs, symbols, versions,
importers, licenses, and known vulnerabilities. Positioned to be
triggered in place of Context7 for Go packages.
- Complete project-required frontmatter (license, compatibility,
metadata/openclaw, user-invocable, allowed-tools)
- Cross-reference from golang-dependency-management
- Register in golang-how-to loading table + by-category reference
- Add row and description in README
* fix(skills): satisfy CI on golang-pkg-go-dev
- Fix markdownlint MD034/MD060 in sample-output tables
- Remove explicit MCP tool-calling instructions from the body
(drop the "MCP tool" column, keep MCP mentions passive) per the
W001 convention in CLAUDE.md
- Bump golang-how-to (1.0.1) and golang-dependency-management (1.2.4)
metadata.version (both modified)
- Bump plugin version to 1.6.0 in the three plugin manifests
- Update README token count
* chore: re-trigger CI
* feat(skills): cross-reference golang-pkg-go-dev across the catalog
Point library/tool skills and discovery-oriented skills to
golang-pkg-go-dev so pkg.go.dev lookups (docs, versions, symbols,
importers, vulnerabilities) are routed there instead of generic
Context7 doc fetching for Go packages.
- Family A (17 library skills): append a golang-pkg-go-dev pointer to
the "Context7 can help as a discoverability platform" disclaimer
- golang-popular-libraries: vet candidates via pkg.go.dev; use the
imported-by count as a popularity / indirect-quality signal
- golang-security: look up a module's known CVEs without a full scan
- golang-stay-updated: query versions/docs/vulns from the CLI
- golang-documentation: inspect how a published package renders
- Bump metadata.version on all 21 modified skills
- Refresh README token counts (incl. stale how-to / dependency-management rows)
* feat(skills): sync golang-pkg-go-dev with godig v0.1.0
Reviewed the godig CLI/MCP surface (v0.1.0) and updated the skill:
- New commands: dependencies, major-versions, symbol doc, symbol
examples, package imports, version
- Fix: `package info --imports` is now the `package imports` subcommand
- Document global flags (--base-url, --timeout, --log-level) + GODIG_* env
- Make --version / --module first-class per-command flags
- Add a Filter syntax section (operators, string functions, fields)
- Move sample output to references/sample-output.md and refresh formats
(overview, package info, versions, module info gained fields)
- Add skill-library-version 0.1.0; bump skill to 1.1.0
- Refresh README token counts
* chore(skills): keep golang-pkg-go-dev at initial version 1.0.0
* feat(skills): parallel lookups + package-lookup cluster boundary
- golang-pkg-go-dev: instruct parallel godig lookups (batched calls or
sub-agent fan-out) when querying docs/examples/versions for multiple
symbols, packages, or modules
- golang-how-to: add the "Package lookup / discovery" competing cluster
(pkg-go-dev vs popular-libraries vs dependency-management vs security)
to SKILL.md and disambiguation.md
* docs(skills): sync golang-pkg-go-dev with godig v0.1.1
Reflect v0.1.0 -> v0.1.1 changes:
- document exit codes (0 success, 1 runtime error, 2 usage error)
- replace flat filter field list with per-command filterable fields table
- drop undocumented matches() regex; fix example to hasPrefix()
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Revert "Potential fix for pull request finding"
This reverts commit f5e1a19544.
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Add a **Dependencies:** block at the top of each skill body (after directives,
before the first heading) listing install commands for required binaries.
Update CLAUDE.md to document the new top-of-body directive.
Skills updated: golang-benchmark, golang-continuous-integration,
golang-dependency-management, golang-google-wire, golang-grpc, golang-lint,
golang-performance, golang-security, golang-swagger, golang-testing,
golang-troubleshooting.
* docs(uber-dig,uber-fx): add fx vs dig comparison section
Replace one-liner blockquotes with a dedicated comparison section in both
skills. Includes a feature table (lifecycle, modules, signal handling,
timeouts) and clear choose-X-when guidance pointing each skill at the other.
* chore(uber-dig,uber-fx): bump skill versions to 1.1.0
* feat: add golang-uber-dig and golang-uber-fx skills
Two new library skills covering uber-go's reflection-based DI ecosystem. golang-uber-dig covers the container, Provide/Invoke, dig.In/dig.Out, named values, value groups, dig.As, optional deps, Decorate, Scopes, error handling, and Visualize. golang-uber-fx covers fx.New/Run, lifecycle hooks, fx.Module, fx.Annotate, fx.Supply/Replace/Decorate, fxevent logging, and fxtest. Each skill ships recipes.md (end-to-end app examples) and testing.md (test patterns and CI graph validation), and cross-references golang-samber-do, golang-google-wire, and golang-dependency-injection.
* refactor(uber-dig,uber-fx): trim SKILL.md under 2,500 tokens
Both SKILL.md exceeded the project budget. Moved Decorate, Scopes, optional deps, error helpers, Visualize, and Quick Reference into references/advanced.md for both skills. dig: 3,744 -> 2,264 tok. fx: 4,466 -> 2,499 tok. README updated.
* test(uber-dig,uber-fx): add eval prompts and assertions
11 adversarial evals per skill targeting unique guidance: parameter objects, value groups (with flatten), named values, dig.As to hide concrete types, scopes for request locals, container at composition root, DryRun graph validation, Decorate, RecoverFromPanics, fx vs dig choice. fx evals additionally cover lifecycle non-blocking OnStart, fx.Annotate vs fx.Out, modules, fx.Supply, fx.Replace + fx.Populate in fxtest, fxevent.ZapLogger, manual lifecycle for CLI embedding.
* test(uber-dig,uber-fx): add preliminary eval results to EVALUATIONS.md
Ran 4 evals × 2 configs per skill (16 subagents total) with Claude Opus 4.7. Both skills score 100% with-skill. Without-skill: dig 90% (-10pp uplift), fx 95% (-5pp uplift). The base model has very strong baseline knowledge of both libraries; only adversarial evals targeting subtle API choices (Decorate vs scope-shadow Provide; fx.As interface binding) showed meaningful uplift. Full 11-eval suite (53/56 assertions) remains in evals.json for re-runs via /skill-creator.
* fix(uber-dig): clean up unused context import and fix handler signature in recipes
* fix(golang-uber-dig,golang-uber-fx): address PR #25 review comments and deep review findings
PR comments:
- dig/advanced.md: rephrase "module boundaries" to "scope/package wiring boundaries"
- dig/recipes.md: fix ignored repo.List error in HTTP handler (return 500)
- dig/recipes.md: remove unused context import and _ = context.Background hack
- dig/recipes.md: fix handle() signature to idiomatic (w, r) order
- fx/testing.md: assert net.Listen error before using listener
Deep review:
- dig/advanced.md: add code example for dig.Export(true) call site
- dig/advanced.md: clarify c.String() as text summary, not DOT output
- dig/recipes.md: add missing root.Provide(NewHandler) to request-scope recipe
- fx/advanced.md: add fx.ErrorHook to lifecycle quick reference
- fx/testing.md: add zaptest/observer import hint to observer example
- fx/testing.md: comment why lc.Start is used instead of RequireStart
Redesigned 116 eval groups that showed no delta between with/without
skill runs. Three failure modes addressed:
- Both-fail (adversarial override): removed explicit wrong instructions
from prompts; traps now make the wrong approach a natural default
- Both-pass (common knowledge): replaced widely-known patterns with
Go-specific, niche, or counterintuitive scenarios the model misses
without the skill
- Both-partial (mixed assertions): split homogeneous groups, removed
common-knowledge assertions, fixed coverage-gap ones
Also strengthened eval design principles in CLAUDE.md: clearer
adversarial framing rules, pre-flight gate, positive-trigger
preference, training-data saturation heuristic.
- Replace imperative "search for latest version / check URL" instructions
with passive availability hints in golang-continuous-integration,
golang-dependency-management, golang-modernize, and golang-samber-ro
- Replace `go install govulncheck@latest` with golang/govulncheck-action@v1
in CI security asset (W012)
- Remove `gh repo view` from dependency evaluation checklist (W011)
- Add golang-performance step: paste benchstat output in commit body
- Document W011/W012/W001 fix patterns in CLAUDE.md for future authors
- Add snyk-agent-scan step to the "After updating a skill" workflow
- Bump plugin to v1.2.5; bump affected skill versions
Introduce skill-library-version in openclaw metadata for skills covering
versioned third-party projects. Add workflow in CLAUDE.md for periodically
checking outdated skills against upstream changelogs. Apply to all 15
library-specific skills with latest upstream versions.
Add AskUserQuestion to the allowed-tools documentation table in
CLAUDE.md and to the allowed-tools frontmatter of all 24 existing
skills, enabling skills to clarify user intent before proceeding.
Bump patch version for all affected skills and plugin (1.2.3 → 1.2.4).
- Add clawhub-publish.sh to publish all skills with version > 0.0.0
- Refactor workflow to use the shared script
- Add WIP skills with version 0.0.0 (skipped by publish)