Samuel Berthe
fd500573b0
💄
2026-05-28 16:13:38 +02:00
Samuel Berthe and GitHub
33fbf8261b
feat(golang-how-to): add skill navigator for routing and disambiguation ( #56 )
...
* feat(golang-how-to): add skill navigator for routing and disambiguation
New meta-skill that classifies, routes, and disambiguates all 42 Go skills.
Three modes:
- Route: decision tree mapping task intent → best skill
- Disambiguate: boundary tables for 11 competing clusters (performance,
DI, samber/*, error handling, style/naming/lint/docs, CLI, testing,
and 4 undocumented gap clusters)
- Configure: appends a Required Go skills block to CLAUDE.md/AGENTS.md
so specific skills always load regardless of trigger heuristics
Files:
- SKILL.md (2,519 tok) — decision tree + 11 cluster boundary tables
- references/by-category.md — exhaustive catalog of all 42 skills
- references/disambiguation.md — deep boundary analysis with routing examples
- references/project-config.md — configure-mode workflow with idempotency
Tokens: description 156 / SKILL.md 2,519 / directory 10,583
* feat(golang-how-to): orchestrate multiple skills + broaden trigger
- Description: always-active on any Go task (was: only "which skill" queries)
- Persona: orchestrator mindset instead of single-best-skill routing
- Decision tree → multi-skill loading table: primary + "also load" column
(e.g. grpc → testing + error-handling; audit → security + lint + safety)
- Cluster boundary tables → compact bullet list (saves ~400 tok, details
remain in references/disambiguation.md)
- Tokens: description 165 / SKILL.md 2,191 / directory 10,255
* fix(golang-how-to): add golang-lint to project structure setup
* fix(golang-how-to): add golang-performance to samber/lo row
* fix(golang-how-to): rename slog row to log/slog
* fix(golang-how-to): add golang-error-handling to log/slog row
* fix(golang-how-to): add golang-uber-dig to dependency injection row
* feat(golang-project-layout): replace config ref with project analysis workflow
Replaces Cobra+Viper config snippet with a full project onboarding workflow:
- Step 1: scan go.mod deps → skill mapping table (cobra, grpc, testify, samber/*, DBs, OTel...)
- Step 2: scan directory structure → infer project type/architecture
- Step 3: grep top-level imports → detect concurrency, security, slog usage
- Step 4: infer project stage (early/growing/production/library/monorepo)
- Step 5: always-on baseline (code-style, naming, error-handling, safety, testing)
- Step 6: confirm with user via AskUserQuestion
- Step 7: write Required Go skills block to CLAUDE.md via golang-how-to configure-mode
* docs(CLAUDE.md): require golang-how-to update on skill scope/add/remove
* revert(golang-project-layout): restore original config.md content
* fix(golang-how-to): remove golang-temporal mention
2026-05-28 16:13:16 +02:00
Samuel Berthe and GitHub
fa03b41b93
Update security-scan.yml
2026-05-20 21:15:03 +02:00
Samuel Berthe and GitHub
11716625e3
feat(golang-documentation): add writing principles and doc anti-patterns ( #50 )
...
- Add Writing Principles section: concision, intent over paraphrase,
no invented context, preserve meaning when editing
- Add anti-patterns table to code-comments.md (pure paraphrase,
signature restatement, marketing vocab, invented rationale,
groundless future claims, hollow filler)
- Clarify godoc name-prefix requirement vs. pure-paraphrase anti-pattern
- Enrich changelog guidance: each entry answers "what changed for the reader"
- Bump version 1.1.3 → 1.1.4
2026-05-20 21:13:31 +02:00
Samuel Berthe and GitHub
26e1d996a7
fix(skills): correctness fixes from REVIEW.md audit (28 files) ( #47 )
...
* fix(skills): correctness fixes from REVIEW.md audit
Compile errors:
- golang-samber-do: do.Eager→ProvideValue, do.Scope(root,x)→root.Scope(x), do.ListProvidedServices→injector.ListProvidedServices, do.Clone→injector.Clone
- golang-samber-oops: fix void handler returning error value, replace undefined var r with data in Recover example
- golang-samber-mo: assign fetchUser result before calling Match
- golang-observability: fix Exemplar API (use ExemplarObserver type assertion + ObserveWithExemplar)
- golang-data-structures: RemoveFront/RemoveBack→l.Remove(l.Front())/l.Remove(l.Back())
- golang-database: stats.LatencyCount→stats.WaitDuration.Seconds()
Security / reliability:
- golang-security: scrypt.Key error now handled; remove len() guard from checkToken (ConstantTimeCompare handles it); MaxInt64→MaxInt in safeMultiply; io.EOF→sentinel error in limitedReader; fix malformed 4-sep table header
- golang-concurrency: fix goroutine leak in fanOut (select on <-in and <-ctx.Done together)
Quality:
- golang-dependency-management: fix gsa module path (nicholasgasior→Zxilly/go-size-analyzer)
- golang-samber-slog: Pool() description corrected (load-balance to ONE handler, not broadcast)
- golang-benchmark: b.Elapsed() annotated as b.Loop()-only; b.Loop() contradiction resolved; -seconds=30 moved to URL query param; inline cost budget updated
- golang-performance: simd/archsimd marked as speculative experimental API; cgroup v1 caveat added
- golang-modernize: new(30) clarified (initializes to value, not zero)
- golang-google-wire: type PrimaryDB *sql.DB→struct wrapper (pointer aliases not distinguished by Wire)
- golang-safety: nil slice table column renamed from "Read from nil" to "Index into nil"
- golang-dependency-injection: Wire comment corrected (has cleanup func(), no lifecycle hooks); do.Override→do.OverrideValue
- golang-lint: 33→48 linters; gosec added to NEVER suppress; linter-reference updated with 14 missing linters + Logging category
- golang-spf13-viper: fix reason for "never bind in RunE" (PersistentPreRunE ran first)
* bump patch versions for skills changed in recent PRs
2026-05-19 22:48:45 +02:00
Samuel Berthe
27543eeb0b
fix(benchmark): correct prometheus metric names and BenchmarkAlloc sink
...
- prometheus-go-metrics.md: fix ~15 wrong/nonexistent metric names
verified against a real prometheus.NewRegistry(); remove invented
go_runtime_mheap_* section; move go_gc_gogc_percent and
go_gc_gomemlimit_bytes to Default; fix CPU classes (_cpu_ infix +
_total suffix); fix scheduler suffixes; add missing default and
opt-in metrics
- SKILL.md: BenchmarkAlloc — use sink variable instead of _ = make(...)
to prevent compiler from eliminating the allocation (reported 0 B/op)
- tools.md: remove non-performance GODEBUG flags (madvdontneed,
gccheckmark, GOTRACEBACK) in favor of troubleshooting cross-ref
golang-benchmark v1.2.1 → v1.2.2
2026-05-19 11:33:30 +02:00
Samuel Berthe
e3d59da7dd
bump patch versions for skills changed in recent PRs
2026-05-19 07:58:48 +02:00
Samuel Berthe and GitHub
43bafa8686
fix: description optimization loop — 16 skills (plugin v1.5.0) ( #46 )
...
* fix: description optimization loop — 16 skills (plugin v1.5.0)
Audit of all 42 active skill descriptions against CLAUDE.md quality rules.
16 skills updated across 4 fix categories:
- Critical (4): code-style, context, modernize, testing — removed broad
anti-patterns (whenever writing Go code, Essential for ANY, proactively,
in any Go code)
- Borderline (2): stretchr-testify, project-layout — softened Essential/any
- FQN cross-refs (6): benchmark, performance, troubleshooting, observability,
samber-lo, samber-ro — replaced bare skill names with samber/cc-skills-golang@…
- Boundary disclaimers (3+1): cli, dependency-injection, error-handling, safety
— added missing → See cross-refs and narrowed over-broad triggers
CLAUDE.md: added ≤1000 char description limit + After creating a new skill
workflow with optimization loop checklist.
* fix: description optimization loop — 5 missed skills + minor version bumps
Fix 5 skills missed in first pass (whenever anti-pattern + missing import
trigger): continuous-integration, database, dependency-management, lint,
samber-do.
Bump all 21 skill versions to minor (X.Y.0) instead of patch — description
changes affect triggering behavior, warranting a minor increment.
* fix(golang-code-style): broaden trigger — load when writing/reviewing Go code
* fix(golang-project-layout): add package/module split triggers
* fix(golang-modernize): add deprecation warning as trigger
Extend the description to also fire when encountering a deprecation
warning, complementing the existing proactive old-style detection trigger.
2026-05-19 07:07:36 +02:00
Samuel Berthe
6ccf725ff4
docs: add skill architecture diagram to README
2026-05-07 22:36:16 +02:00
Samuel Berthe
15d71cdabf
docs: add skill architecture diagram to README
2026-05-07 22:16:14 +02:00
Samuel Berthe
e9761db859
chore: bump plugin version to 1.4.0
2026-05-01 13:59:45 +02:00
Samuel Berthe
446c026c31
docs: add AI-driven code review CI guide
2026-05-01 13:43:27 +02:00
Samuel Berthe
b29281ddc7
chore(golang-graphql): format markdown and remove AI review file
2026-05-01 13:38:40 +02:00
236020f059
feat(golang-google-wire): add compile-time DI skill ( #34 )
...
* feat(golang-google-wire): add compile-time DI skill with full reference suite
New skill for google/wire (v0.7.0, archived 2025-08). Covers wire.NewSet,
wire.Build, wire.Bind, wire.Struct, wire.Value, wire.InterfaceValue,
wire.FieldsOf, //go:build wireinject, cleanup chains, and wire_gen.go
workflow.
Files:
- skills/golang-google-wire/SKILL.md (2,511 tok)
- skills/golang-google-wire/references/advanced.md (cleanup chains, error
catalogue, codegen flags, panic syntax, external value injection)
- skills/golang-google-wire/references/recipes.md (HTTP server, multi-build,
cleanup-heavy graph, CLI embedding)
- skills/golang-google-wire/references/testing.md (test injectors, CI stale
check, fake bindings)
- skills/golang-google-wire/evals/evals.json (10 evals, 50 assertions)
Eval results (LLM-as-Judge, claude-sonnet-4-6):
With skill: 49/50 (98%)
Without skill: 41/50 (82%)
Delta: +16pp
Key differentiators: wire.FieldsOf (eval 8, 5/5 vs 1/5 — model actively
discouraged FieldsOf without skill), //go:build wireinject tag (eval 1,
5/5 vs 3/5 — suggested //go:build ignore instead).
README: updated Tools table row and Skill evaluations total (38 skills,
3232 assertions).
* fix(golang-google-wire): apply prettier formatting
* fix(golang-google-wire): address PR review comments
- advanced.md: correct cleanup order description (dependants torn down
before dependencies, not the reverse)
- recipes.md: fix multi-build variant section — show -output_file_prefix
commands first to avoid both wire runs overwriting wire_gen.go
- recipes.md: handle http.ErrServerClosed in ListenAndServe goroutine
so graceful shutdown is not logged as a fatal error
- testing.md: fix map literals (use &User{} composite literal)
- testing.md: rephrase //go:build !wireinject comment — it IS a build
tag, not the absence of one
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: samber <2951285+samber@users.noreply.github.com >
2026-05-01 13:35:17 +02:00
16d6eec290
feat(cobra,viper): add golang-spf13-cobra and golang-spf13-viper skills ( #33 )
...
* feat(cobra,viper): add golang-spf13-cobra and golang-spf13-viper skills
- golang-spf13-cobra v1.0.0 (2,455 tok SKILL.md, 7,218 tok directory)
- Command tree, RunE vs Run, Args validators, PersistentPreRunE chain
- Flags, completions (ValidArgsFunction, RegisterFlagCompletionFunc)
- Testing with SetArgs/SetOut/SetErr, 5 reference files
- 12 adversarial evals (50 assertions)
- golang-spf13-viper v1.0.0 (2,412 tok SKILL.md, 6,936 tok directory)
- Precedence pipeline, env binding trio (prefix+replacer+AutomaticEnv)
- Unmarshal + mapstructure tags, Sub nil-safety, ConfigFileNotFoundError
- WatchConfig fsnotify caveats, viper.New() test isolation
- 5 reference files, 12 adversarial evals (53 assertions)
Both skills cross-reference each other and golang-cli.
README and EVALUATIONS updated.
* fix(cobra,viper): apply PR review fixes and expand adversarial evals
Fixes from copilot review:
- viper/SKILL.md: "first non-zero wins" → "first set value wins" (empty
string with AllowEmptyEnv is valid)
- cobra/references/commands-and-args.md: "six run hooks" → "five run hooks"
- viper/references/watch-and-reload.md: fix inconsistent Config/AppConfig
types in race-safe reload example
- viper/references/binding-and-env.md: add missing SetEnvPrefix to the
"without replacer" snippet for consistency
New adversarial evals:
- cobra: +7 evals (StringArray vs StringSlice, MarkFlagsMutuallyExclusive,
MarkFlagsRequiredTogether, MarkFlagsOneRequired, Flags().Changed(),
PostRunE success-only + defer pattern, ErrOrStderr) → 19 evals / 77 assertions
- viper: +6 evals (MergeInConfig layering, BindEnv non-prefixed vars,
race-safe OnConfigChange, go:embed default config, validate-before-apply,
WeaklyTypedInput for env bools) → 18 evals / 77 assertions
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: samber <2951285+samber@users.noreply.github.com >
2026-05-01 13:25:57 +02:00
Samuel Berthe and GitHub
969bd825d7
feat(golang-graphql): write full skill body with references and evals ( #32 )
...
* feat(golang-graphql): write full skill body with references and evals
Replaces the stub with a complete skill covering gqlgen (schema-first
codegen) and graph-gophers/graphql-go (schema-first reflection).
Key topics: Library choice table, N+1 DataLoader (per-request), schema
design with nullability rules, mutation envelope pattern, subscription
goroutine discipline, production safety (introspection gating, complexity
caps), error sanitization via ErrorPresenter, file uploads, Federation v2.
Reference files added:
- references/gqlgen.md — codegen workflow, gqlgen.yml, DataLoaders,
directives, subscriptions, file uploads, Federation v2
- references/graphql-go.md — reflection model, type mapping (int32!),
nullable pointers, DataLoaders, OTel tracing
- references/testing.md — gqlgen client harness, gqltesting patterns
Evals: 8 adversarial scenarios, 37 assertions.
Results: with=100%, without=84%, delta=+16pp (uplift driven by eval 1
N+1 DataLoader pattern: 6/6 with skill vs 1/6 without).
Most evals (2–4, 6–8) are common knowledge — future iterations should
target DataLoader wait timing, fields.resolver:true in gqlgen.yml,
Federation @key wiring, and WS subprotocol selection.
* fix(golang-graphql): address PR review comments and add adversarial evals
- SKILL.md: move pubsub.Subscribe() before goroutine in subscription example
- gqlgen.md: remove IntID override (legacy-only), fix DataLoader batch return
type to [][]*domain.Post, add CheckOrigin allow-list example, gate
Introspection behind ENV check
- graphql-go.md: fix OTel import to trace/otel + otel.DefaultTracer(), add
db field to RootResolver struct, fix UnmarshalGraphQL signature to any
- evals: add 5 new adversarial evals (9-13); eval 12 (OTel tracer import)
shows 4/4 → 0/4 uplift (model hallucinates trace/oteltracer without skill)
- README: mark golang-graphql ✅ with token counts (76/2935/7766)
- EVALUATIONS.md: update to 59 total assertions, 100% with / 83% without
2026-05-01 03:47:31 +02:00
Samuel Berthe and GitHub
556f2414fa
feat: add golang-swagger skill (swaggo/swag v2) ( #31 )
...
* feat: add golang-swagger skill
Covers swaggo/swag v2.0.0-rc5 — general API info annotations, operation
annotations (@Summary, @Param, @Success, @Router, @Security), security
definitions (Bearer/JWT, OAuth2, API key, Basic), struct tags (swaggertype,
enums, example, swaggerignore), and framework integrations (gin, echo,
fiber, chi, net/http).
Includes references/swag-cli.md with full CLI flag reference, dynamic
config, generics, nested composition, response headers, and MIME aliases.
* chore(golang-swagger): format, lint, token counts, README, evals
- Fix bare URL lint error (MD034)
- Update README: ❌ → ✅ , token counts (desc=144, SKILL.md=2125, dir=3123)
- Add 12 adversarial evals (60 assertions) covering: blank import trap,
body param struct requirement, swaggertype for time.Time/[]byte, Chi
integration via http-swagger, AND security condition, -g flag for
general info file, godoc comment for swag fmt, collectionFormat(multi),
runtime docs.SwaggerInfo override, nested composition, enums/min/max
struct tags, swaggerignore
* chore: bump plugin version to 1.4.0
* Revert "chore: bump plugin version to 1.4.0"
This reverts commit 72f3669199 .
* eval(golang-swagger): add evaluation results — 58/60 with skill, 43/60 without (+25pp)
12 adversarial evals (60 assertions). Key discriminating evals:
- swaggertype-overrides: 5/5 vs 1/5 (time.Time + []byte traps)
- map-response-type: 5/5 vs 3/5 (raw map in @Success)
- nested-composition: 5/5 vs 3/5 (Envelope{data=model.User} syntax)
- csv-vs-multi: 4/5 vs 2/5 (collectionFormat discrimination)
- blank-import + swaggerignore: each 5/5 vs 4/5
Evals 4 (Chi+env) and 9 (conditional toggle) score 5/5 in both
conditions — common knowledge. Eval 11 (example tag) misses in both
— coverage gap noted for future iteration.
* fix(golang-swagger): use named docs import when overriding SwaggerInfo
2026-05-01 03:32:21 +02:00
Samuel Berthe and GitHub
2e80a545f5
docs(uber-dig,uber-fx): add fx vs dig comparison section ( #30 )
...
* 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
2026-04-30 15:23:32 +02:00
Samuel Berthe
bee9d0486d
fix(lint): apply prettier formatting across skill files
2026-04-29 00:24:59 +02:00
Samuel Berthe
6ae8ff82da
fix(lint): wrap bare URLs in uber-dig and uber-fx skills
2026-04-29 00:21:23 +02:00
Samuel Berthe
f8564ffeb7
chore: bump plugin version to 1.3.0
2026-04-29 00:20:59 +02:00
Samuel Berthe and GitHub
5ab41df4d9
feat: add AI-driven code review workflow with skill plugin ( #23 )
...
* docs: add CI/AI-driven code review section to README
* chore: add .worktrees/ to .gitignore
* feat: add AI-driven code review workflow with skill plugin
- New GOLANG-AI-DRIVEN-REVIEW.md doc with 6-job Claude Code Action workflow (quality, correctness, security, quality-depth, ci-diagnosis, discuss)
- New assets: claude-code-review.yml workflow + copilot-review-instructions.md
- Workflow features: per-event concurrency lanes, 15min timeout, sticky comments, skill loading via npx skills add -a claude-code, Skill() invocation syntax in prompts
- Cross-references to golang-continuous-integration in 7 skills (security, testing, linter, concurrency, error-handling, code-style, safety)
- Tighten CI security: add permissions blocks to lint/security-scan, remove unused id-token from update workflows, add SARIF upload + exit-code to Trivy/Bearer
2026-04-29 00:08:27 +02:00
Samuel Berthe and GitHub
85156e78dd
feat: add golang-uber-dig and golang-uber-fx skills ( #25 )
...
* 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
2026-04-29 00:03:43 +02:00
Samuel Berthe
6a55473e25
fix(evals): replace zero-delta eval groups across 23 skills
...
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.
2026-04-28 14:33:19 +02:00
Samuel Berthe and GitHub
56c59cc082
fix: improve skill descriptions for better auto-triggering ( #24 )
...
* fix: improve skill descriptions for better auto-triggering
- golang-design-patterns: narrow trigger from "designing Go APIs / making design decisions" (too broad) to specific patterns (functional options, graceful shutdown, etc.)
- golang-popular-libraries: remove unreliable "agent is about to add a dependency" trigger; add "new dependency being added" phrasing; drop noisy task-list examples
- golang-graphql: add import path triggers (github.com/99designs/gqlgen, github.com/graph-gophers/graphql-go)
- golang-uber-fx: add import path trigger (go.uber.org/fx), expand API surface (fx.Module, fx.Hook, fx.Option)
- golang-code-style: minor wording fix ("writing Go code" was missing "Go")
* chore: bump skill versions after description updates
2026-04-28 13:04:01 +02:00
Samuel Berthe and GitHub
26524a3381
Update README.md
2026-04-13 17:19:26 +02:00
Samuel Berthe and GitHub
49eb968ccb
fix: resolve snyk W011/W012/W001 alerts in skill bodies ( #14 )
...
- 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
2026-04-08 01:04:04 +02:00
Samuel Berthe
b29499a6f6
feat: add skill-library-version field for staleness detection
...
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.
2026-04-06 18:36:48 +02:00
Samuel Berthe and GitHub
b88f91d8ea
Update project title in README.md
2026-03-31 14:22:13 +02:00
Samuel Berthe and GitHub
785750e31f
Update installation command for skills CLI
2026-03-31 14:21:58 +02:00
Samuel Berthe and GitHub
48214a1c93
feat: add AskUserQuestion to allowed-tools across all skills ( #9 )
...
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).
2026-03-30 20:46:37 +02:00
Samuel Berthe
017e747bd3
oops
2026-03-30 18:46:12 +02:00
Samuel Berthe and GitHub
bd8e97e59d
sorry, im french so i dont speak english veri ouel ( #8 )
2026-03-30 15:10:14 +02:00
Samuel Berthe
91421f5305
shit, chuck norris is dead
2026-03-27 11:10:03 +01:00
Samuel Berthe
a10cda000e
bump version
2026-03-24 14:33:19 +01:00
Samuel Berthe and GitHub
3a428b6358
fix(frontmatter): enclose frontmatters descriptions into double quotes to prevent issue when import ( #5 )
2026-03-24 12:45:51 +01:00
Samuel Berthe
ef3a47a352
chore(ci): disable clawhub submission
2026-03-24 08:14:47 +01:00
Samuel Berthe
a3fbd3f82c
chore: bump golang-stay-updated
2026-03-23 17:26:46 +01:00
Samuel Berthe and GitHub
9cecc579a2
Update AI-related statement in README
...
Rephrase the statement about AI in README.
2026-03-23 14:07:12 +01:00
Samuel Berthe and GitHub
b494fb7fbb
Update README with important project note
...
Added important note about the project being bootstrapped with Claude Code and edited by a human.
2026-03-23 14:05:29 +01:00
Samuel Berthe and GitHub
b79302da2e
Clarify company skill override in README
...
Updated the README to clarify the company skill override mechanism and removed HTML entities.
2026-03-23 12:45:55 +01:00
Samuel Berthe and GitHub
86bb74ff36
Update README to remove token count instructions
...
Removed token count measurement instructions from README.
2026-03-23 04:15:04 +01:00
Samuel Berthe
6e8c861f7f
oops
2026-03-23 01:37:31 +01:00
Samuel Berthe
4d3d3d5960
doc
2026-03-23 01:01:51 +01:00
Samuel Berthe
88e58ee4d3
chore: increase version number to 1.2.0
2026-03-23 00:56:49 +01:00
Samuel Berthe and GitHub
617dab4eaa
feat(skills): adding samber/lo, samber/ro, samber/mo, samber/hot, samber/slog-xxx ( #3 )
...
* feat(skills): adding samber/lo, samber/ro, samber/mo, samber/hot, samber/slog-xxx
* fix after review
2026-03-23 00:53:23 +01:00
Samuel Berthe and GitHub
b05a007624
chore(ci): claude code job for skills maintenance (skills covering libraries only) ( #2 )
2026-03-22 22:21:02 +01:00
Samuel Berthe and GitHub
d0f69ca0f6
Refactor skills section in README
...
Removed redundant skill descriptions and adjusted formatting.
2026-03-22 19:29:40 +01:00
Samuel Berthe and GitHub
3a0db0c864
Refactor skills section in README.md
...
Removed redundant description of skills and adjusted formatting for clarity.
2026-03-22 19:28:55 +01:00
Samuel Berthe and GitHub
45fb6bb8a7
Replace image in README with new asset
...
Updated image in README and adjusted dimensions.
2026-03-22 19:26:48 +01:00
Samuel Berthe
07038776cb
Merge Skill/Name and Cmd/Ultrathink/Overridable columns in README tables
2026-03-22 19:25:54 +01:00
Samuel Berthe and GitHub
39f443f1a8
Update skills section in README.md
...
Added new skill indicators and updated the skills table.
2026-03-22 19:18:41 +01:00
Samuel Berthe and GitHub
a1e755980c
Update README with installation instructions
...
Added usage instructions for installing with skills CLI.
2026-03-22 18:33:04 +01:00
Samuel Berthe
8689fc90a4
chore(ci): add ClawHub publish workflow and script
...
- 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)
2026-03-22 16:24:10 +01:00
Samuel Berthe
fe55d9e692
chore(ci): use different clouder to bypass rate limits
2026-03-22 16:05:55 +01:00
Samuel Berthe and GitHub
24674f41da
chore/publish clawhub ( #1 )
...
* chore: add clawhub config
* chore(ci): publish to clawhub
2026-03-22 15:43:48 +01:00
Samuel Berthe and GitHub
2622557971
Simplify usage instructions in README
...
Removed unnecessary instructions for forking and copy-pasting skills.
2026-03-22 04:17:14 +01:00
Samuel Berthe
aa976ab424
fix(ci): inject secret into snyk-agent-scan
2026-03-22 01:48:09 +01:00
Samuel Berthe
2a7a39aa36
chore:remove skillsafe scan
2026-03-22 01:39:47 +01:00
Samuel Berthe
20a750a4c3
fix(dependabot): fix dependabot config
2026-03-22 00:31:33 +01:00
Samuel Berthe and GitHub
845c7c7990
Change Dependabot update interval from weekly to monthly
2026-03-22 00:25:43 +01:00
Samuel Berthe
a927023572
initial commit
2026-03-22 00:11:10 +01:00