skills/srgn-cli/SKILL.md
Build safe, syntax-aware srgn CLI commands for source-code search and transformation. Use for srgn commands, scoped refactors (comments/docstrings/imports/functions), multi-file rewrites with --glob, tree-sitter queries, or CI checks with --fail-any/--fail-none.
npx skillsauth add outlinedriven/odin-codex-plugin srgn-cliInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to convert user intent into precise srgn commands with safe defaults.
Focus on CLI workflows for search, transformation, scoped migrations, and lint-like checks.
--).--upper, --lower, --titlecase, --normalize, --symbols, --german).-d, -s).--dry-run for file operations.--fail-no-files when missing files should fail CI.--stdout-detection force-pipe).--dry-run first.--dry-run only after confirmation.--glob '**/*.py'.-- before replacement values.--glob accepts exactly one pattern (cannot repeat).
*, ?, [...], ** only. No {a,b} brace expansion.--dry-run, or per-file via fd (CWD only—no [path] arg):
fd -e <ext> --strip-cwd-prefix -x srgn --glob '{}' --stdin-detection force-unreadable [OPTIONS] [PATTERN]-d and -s as high-risk operations.
Use this template when building commands:
srgn [LANGUAGE_SCOPE_FLAGS...] [GLOBAL_FLAGS...] [ACTION_FLAGS...] [SCOPE_REGEX] -- [REPLACEMENT]
Build incrementally:
--python 'imports''^old_pkg'-- 'new_pkg'--upper--glob '**/*.py' --dry-run--fail-any or --fail-nonesrgn --python 'imports' '^old_pkg' --glob '**/*.py' --dry-run -- 'new_pkg'
print calls to logging in Python call-sites only:srgn --python 'function-calls' '^print$' --glob '**/*.py' --dry-run -- 'logging.info'
use prefixes without touching strings/comments:srgn --rust 'uses' '^good_company' --glob '**/*.rs' --dry-run -- 'better_company'
srgn --csharp 'comments' -d '.*'
unsafe language keyword usage only:srgn --rust 'unsafe'
srgn --python 'doc-strings' --fail-any 'param.+type'
srgn --python 'strings' --stdout-detection force-pipe '(foo|bar)'
srgn --typescript 'imports' '^legacy-lib' --glob 'src/**/*.ts' --sorted --dry-run -- 'modern-lib'
For broader, categorized examples, load references/cli-cookbook.md.
--stdout-detection force-pipe to inspect exact matched columns.^...$) where possible.--glob pattern and shell quoting.--fail-no-files in CI to catch empty globs.--glob used multiple times.
--glob is a single-value argument; cannot repeat.--dry-run, or per-file (CWD only—no [path] arg): fd -e <ext> --strip-cwd-prefix -x srgn --glob '{}' --stdin-detection force-unreadable [OPTIONS] [PATTERN]-j for OR behavior.--literal-string when literal matching is intended.Load reference files based on request type:
references/cli-cookbook.md
references/language-scopes.md
references/advanced-patterns.md
references/deepwiki-recursive-notes.md
Use this map to respond quickly:
--glob ... --dry-run.--python 'function-calls') + exact name regex.-j only when OR semantics are required.--fail-any.--fail-none.--stdout-detection force-pipe.--literal-string and explicit replacement via --.Before returning a final command, verify:
-- (if replacement is used).--dry-run is present for file edits unless user requested direct apply.-j vs default intersect).--fail-any, --fail-none, --fail-no-files).testing
ODIN's compress-operations dispatcher under the Compressor/Extender role. Invoke on "tidy", "clean up", "tidy this file/memory/workspace/git/docs", or when active context (current file, diff, stack, memory directory) has structural rot to resolve before touching behavior. Detects target domain from context and routes to the sibling skill. Requires explicit target or clear active-context signal — do not invoke speculatively.
development
Cross-domain taste skill — apply distinctive judgment to any artifact (prose, code, design, decisions) instead of converging to AI defaults. Two modes — `audit` (judge work against the two-sided charter and portable anchors) and `anchor` (load register before producing). Auto-detects by phrasing; override via `/taste audit | anchor`. Trigger on "is this slop?", "overkill?", "elegant?", "taste-test this".
tools
One-shot bootstrap of strict-mode tooling per ecosystem plus per-task GOALS.md scaffolding so an agentic loop can self-verify. Writes typechecker/linter/schema-validator config for TS (strict + noUncheckedIndexedAccess + exactOptionalPropertyTypes), Python (Pyright strict, Ruff strict), Rust (Clippy deny-correctness), Go (golangci-lint with staticcheck), OCaml (dune --release); establishes `.agent-tasks/<id>/GOALS.md` per-task convention distinct from project-stable AGENTS.md. C++/Java/Kotlin and framework specifics (Spring Boot, Nest, React-strict) are out of scope. Trigger on new project bootstrap, agentic-task setup, "make this self-verifying", "set the loop's goal", "scaffold goals for this issue". Pairs with `llm-self-loop` runtime.
tools
Install git pre-commit hooks via the project's hook tool — Husky+lint-staged (JS), pre-commit (Python/OCaml), lefthook (Go), cargo-husky (Rust). Use when the user wants commit-time formatting, linting, type-checking, or test gates. Detects ecosystem first.