Agent skill

Profile Shuck Script

by ewhauser in ewhauser/shuck

Profile shuck scripts and large-corpus fixtures, especially requests to profile a corpus script/fixture, reprofile after a shuck performance change, or produce a hotspot table from a samply profile.

MITAuto-check passedDevelopment

Install Profile Shuck Script

skills CLI
$ npx skills add ewhauser/shuck --skill profile-shuck-script -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ewhauser/shuck profile-shuck-script --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ewhauser/shuck.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/profile-shuck-script .claude/skills/profile-shuck-script && rm -rf skills-src

Use ~/.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/

Facts

Skill name
profile-shuck-script
GitHub stars
137
Token cost
~1.3k tokens
SKILL.md length
457 words
Files
4 (incl. scripts)
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

Profile shuck scripts and large-corpus fixtures, especially requests to profile a corpus script/fixture, reprofile after a shuck performance change, or produce a hotspot table from a samply profile.

  • Works in 6 steps: Work from the current shuck checkout. If… → Ensure the profiling harness profiles… → Run the profile at least once after a… → …
  • Codex needs to run the shuck large-corpus profiling harness
  • SKILL.md covers Workflow, Commands, Table Style and Interpretation Rules, plus 1 more section
  • Runs Python scripts from its folder; calls python3, cargo and git

What it does

Profile Shuck Script is an agent skill from ewhauser/shuck. Profile shuck scripts and large-corpus fixtures, especially requests to profile a corpus script/fixture, reprofile after a shuck performance change, or produce a hotspot table from a samply profile. Use when Codex needs to run the shuck large-corpus profiling harness, avoid corpus setup artifacts, interpret sampled profiles, and return an attributed-exclusive hotspot table.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts (for example `agents/openai.yaml`, `scripts/drilldown_subframes.py` and `scripts/summarize_samply_hotspots.py`).

It sits in Development. The repository describes itself as: A lightning fast shell linter/formatter/LSP server with zsh support. The licence is MIT.

When your agent uses it

  • Codex needs to run the shuck large-corpus profiling harness
  • Avoid corpus setup artifacts
  • Interpret sampled profiles
  • Return an attributed-exclusive hotspot table

Example prompts

  • “/profile-shuck-script”

Requirements

  • Python 3

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Work from the current shuck checkout. If the user asks for a fresh branch, create it from main before editing.
  2. Ensure the profiling harness profiles the lint loop, not corpus setup
  3. Run the profile at least once after a rebuild and again warm if the first run includes rebuild/cold-start noise.
  4. Summarize the newest saved profile with scripts/summarize_samply_hotspots.py.
  5. Return an attributed-exclusive table, not a raw inclusive table.
  6. If a single fat frame (e.g. LinterFactsBuilder::build) dominates the summary, drill into its sub-frames with…

What it can do on your machine

Read from SKILL.md and the folder at commit 904974e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 2 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • cargo
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Profile Shuck Script loads about 1.3k tokens when it runs. Until then it costs about 99 tokens; SKILL.md has 457 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~99
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

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.

Safety

Auto-check passed

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); the scripts in this folder are not scanned.

SKILL.md

The full file from ewhauser/shuck at commit 904974e, republished under its MIT licence (© ewhauser). 457 words, ~1,324 tokens.

Download SKILL.mdSave it as .claude/skills/profile-shuck-script/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
profile-shuck-script
description
Profile shuck scripts and large-corpus fixtures, especially requests to profile a corpus script/fixture, reprofile after a shuck performance change, or produce a hotspot table from a samply profile. Use when Codex needs to run the shuck large-corpus profiling harness, avoid corpus setup artifacts, interpret sampled profiles, and return an attributed-exclusive hotspot table.

Profile Shuck Script

Workflow

  1. Work from the current shuck checkout. If the user asks for a fresh branch, create it from main before editing.
  2. Ensure the profiling harness profiles the lint loop, not corpus setup:
    • Prefer scripts/profiling/profile_large_corpus.sh <fixture> .cache/profiles 2000 1 12.
    • The script should build the profiling binary, prepare any large-corpus fixture manifest before samply record, then run the sampled process using that manifest.
    • If the sampled profile includes corpus discovery, fixture-table construction, or resolver canonicalization, call that out as a setup artifact and fix the harness or exclude it before presenting hotspots.
  3. Run the profile at least once after a rebuild and again warm if the first run includes rebuild/cold-start noise.
  4. Summarize the newest saved profile with scripts/summarize_samply_hotspots.py.
  5. Return an attributed-exclusive table, not a raw inclusive table.
  6. If a single fat frame (e.g. LinterFactsBuilder::build) dominates the summary, drill into its sub-frames with scripts/drilldown_subframes.py before recommending optimizations.

Commands

Build/profile a large-corpus fixture:

bash
scripts/profiling/profile_large_corpus.sh xwmx__nb__nb .cache/profiles 2000 1 12

Summarize the latest samply profile:

bash
python3 ~/.codex/skills/profile-shuck-script/scripts/summarize_samply_hotspots.py \
  .cache/profiles/large-corpus/xwmx__nb__nb.json.gz \
  target/profiling/examples/large_corpus_profile \
  --limit 12

Use the profile output's reported average from the harness stderr, not a profile-wide estimate, when stating wall-clock time.

Drill into a fat parent frame (default targets LinterFactsBuilder::build and the shuck_linter::facts:: namespace):

bash
python3 .claude/skills/profile-shuck-script/scripts/drilldown_subframes.py \
  .cache/profiles/large-corpus/xwmx__nb__nb.json.gz \
  target/profiling/examples/large_corpus_profile \
  --limit 30

Override --parent and --namespace when drilling into a different layer (for example --parent shuck_semantic::SemanticModel::build --namespace shuck_semantic::). Output is a percent-of-total / percent-of-parent breakdown of the deepest namespace-matching frame above the parent on each stack; samples whose only matching frame is generic library code (allocator, hashing, memchr, etc.) are bucketed under <non-... leaf>.

Sample output:

markdown
total_samples=12345
parent_samples=4321 (35.0% of total)

| Rank | Sub-frame | % of total | % of parent | Top leaf |
|---:|---|---:|---:|---|
| 1 | `shuck_linter::facts::case_patterns::StaticCasePatternMatcher::advance` | 3.3% | 9.4% | `core::str::...` |
| 2 | `shuck_linter::facts::semantic_declaration_for_command` | 2.1% | 6.0% | `hashbrown::...` |
Show full SKILL.md (209 more words)Show less

Table Style

Use "attributed exclusive" samples:

  • Count each sample once.
  • Attribute generic frames such as iterator adapters, OnceLock, memchr, allocation, and syscalls to the nearest meaningful shuck/semantic/parser caller when possible.
  • Keep separate rows for setup artifacts only when they are truly inside the sampled workload.
  • Do not lead with parent orchestration frames such as main, Checker::check, or lint_file_at_path...; those are usually inclusive wrappers.

Return a concise table like:

markdown
Latest profile: `<fixture>`, 12 iterations, avg `<N> ms`.

| Rank | Hotspot | Attributed Exclusive | Representative Frame | Read |
|---:|---|---:|---|---|
| 1 | Linter facts builder | 55.8% | `facts::LinterFactsBuilder::build` | Clear next big target |
| 2 | Possible-variable-misspelling rule | 5.2% | `possible_variable_misspelling` | Rule-local matching |

If the user is debugging whether a row is real, add a short note after the table explaining the evidence from stack context.

Interpretation Rules

  • Treat unexpectedly large file open/read/canonicalization rows with suspicion. In this workflow they often mean the profiler captured corpus discovery or resolver setup, not linting.
  • If I/O remains after loop-only profiling, split it into target fixture source read, source-closure sibling reads, manifest load, and path canonicalization.
  • If C063 appears, mention whether it is still material after the activation-window index. Around 1-2% is no longer the main target.
  • If LinterFactsBuilder::build dominates, identify it as the next broad optimization area rather than a single rule hotspot, then run drilldown_subframes.py to surface the specific facts sub-frames worth attacking.

Validation

For harness edits, run:

bash
cargo fmt --check
cargo build --profile profiling -p shuck-benchmark --features large-corpus-hotspots --example large_corpus_profile
git diff --check

For rule-performance edits, also run the targeted rule tests and corpus gate relevant to the changed rule.

© ewhauser, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (scripts) in .claude/skills/profile-shuck-script of ewhauser/shuck.

  • SKILL.md
  • agents/openai.yaml
  • scripts/drilldown_subframes.py
  • scripts/summarize_samply_hotspots.py

Open the folder on GitHubat commit 904974e

Compare with similar skills

Profile Shuck Script 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.

Profile Shuck Script compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Profile Shuck Script this skillewhauser/shuck137—~1.3kAutomated safety check: PassMIT
Vercel Composition Patternssupabase/supabase111k59 repos~726Automated safety check: PassMIT
Finishing a Development Branchobra/superpowers296k5 repos~1.9kAutomated safety check: PassMIT
Typescript Advanced Typesrolling-scopes/rsschool-app10k25 repos~4.2kAutomated safety check: PassMPL-2.0
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Code Review ChecklistshareAI-lab/learn-claude-code78k5 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • Official

    React composition patterns that scale. An agent skill from supabase/supabase.

    111k GitHub starsUsed in 59 repos~726 tokens
    DevelopmentAuto-check passed
  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    296k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Typescript Advanced Types

    rolling-scopes/rsschool-app

    Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.

    10k GitHub starsUsed in 25 repos~4.2k tokens
    DevelopmentAuto-check passed
  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 5 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Greploop

    onyx-dot-app/onyx

    Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.

    32k GitHub starsUsed in 4 repos~3.3k tokens
    DevelopmentAuto-check passed

More from ewhauser/shuck

All 8 skills in this repo
  • Bench Compare

    ewhauser/shuck

    Compare benchmark performance between two git worktrees (or the current worktree vs main).

    137 GitHub stars~2.4k tokensUpdated 3 days ago
    Auto-check passed
  • Conformance Check

    ewhauser/shuck

    Verify ShellCheck conformance for a shuck rule by running the large corpus test, analyzing deltas, and producing a structured bug document in docs/bugs/.

    137 GitHub stars~3.1k tokensUpdated 3 days ago
    Auto-check passed
  • Fix Rule

    ewhauser/shuck

    Fix a shuck lint rule that has conformance deltas against ShellCheck.

    137 GitHub stars~3.2k tokensUpdated 3 days ago
    Auto-check passed
  • Implement Fix

    ewhauser/shuck

    Implement an autofix for an existing shuck-rs lint rule. An agent skill from ewhauser/shuck.

    137 GitHub stars~3.1k tokensUpdated 3 days ago
    Auto-check passed
  • Implement Rule

    ewhauser/shuck

    Implement a shuck-rs lint rule from its YAML definition in docs/rules/.

    137 GitHub stars~4.8k tokensUpdated 3 days ago
    Auto-check passed
  • Spec Writer

    ewhauser/shuck

    Write and update technical design specifications. An agent skill from ewhauser/shuck.

    137 GitHub stars~1.7k tokensUpdated 3 days ago
    Auto-check passed

Categories

Questions about Profile Shuck Script

What does Profile Shuck Script do?

Profile shuck scripts and large-corpus fixtures, especially requests to profile a corpus script/fixture, reprofile after a shuck performance change, or produce a hotspot table from a samply profile. Profile Shuck Script is an agent skill from ewhauser/shuck. Profile shuck scripts and large-corpus fixtures, especially requests to profile a corpus script/fixture, reprofile after a shuck performance change, or produce a hotspot table from a samply profile.

When should I use Profile Shuck Script?

Profile Shuck Script fits situations like: Codex needs to run the shuck large-corpus profiling harness; avoid corpus setup artifacts; interpret sampled profiles; return an attributed-exclusive hotspot table.

How do I install Profile Shuck Script in Claude Code?

Run `npx skills add ewhauser/shuck --skill profile-shuck-script -a claude-code`. Or copy the skill folder (.claude/skills/profile-shuck-script in ewhauser/shuck) into .claude/skills/profile-shuck-script in your project. Claude Code loads it when a task matches its description.

How do I install Profile Shuck Script in Codex?

Run `npx skills add ewhauser/shuck --skill profile-shuck-script -a codex`. Or copy the skill folder (.claude/skills/profile-shuck-script in ewhauser/shuck) into .agents/skills/profile-shuck-script in your project. Codex loads it when a task matches its description.

Can I use Profile Shuck Script in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ewhauser/shuck --skill profile-shuck-script -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/profile-shuck-script, .gemini/skills/profile-shuck-script, .github/skills/profile-shuck-script and .opencode/skills/profile-shuck-script in your project.

What does Profile Shuck Script need to run?

Going by SKILL.md and its folder, Profile Shuck Script needs Python for the scripts in its folder and the command-line tools its instructions call (python3, cargo and git). Our summary lists: Python 3.

Does Profile Shuck Script access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Profile Shuck Script safe to install?

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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Profile Shuck Script use?

Profile Shuck Script is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Profile Shuck Script use?

About 1.3k tokens (SKILL.md is roughly 5.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Profile Shuck Script?

Skills that share tags, products or a category with Profile Shuck Script: Vercel Composition Patterns (supabase/supabase, 111k stars), Finishing a Development Branch (obra/superpowers, 296k stars), Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Profile Shuck Script?

ewhauser (a GitHub user) maintains it in ewhauser/shuck, which has 137 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 5, 2026.

Source: ewhauser/shuck on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.