Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/peteski22/agent-pragma/setup-projectnpx skills add peteski22/agent-pragma --skill setup-projectgit clone --depth 1 https://github.com/peteski22/agent-pragmaWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/peteski22/agent-pragma/setup-project)<a href="https://agentmods.dev/skills/peteski22/agent-pragma/setup-project"><img src="https://agentmods.dev/badge/skills/peteski22/agent-pragma/setup-project.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00021 | $0.04201 |
| Opus 5 | $0.00010 | $0.02100 |
| Sonnet 5 | $0.00004 | $0.00840 |
| Haiku 4.5 | $0.00002 | $0.00420 |
Grade D, and why
setup-project scanned grade D with 3 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Downloads and executes remote codehighSupply chain
curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.
curl -LsSf https://astral.sh/uv/install.sh | sh Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
[[ -d .claude/rules ]] && find .claude/rules -maxdepth 1 -name "*.md" 2>/dev/null | while IFS= read -r f; do echo "rules:$f"; done Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -LsSf https://astral.sh/uv/install.sh | sh How it starts
The opening of the file, as written. The whole thing — 440 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Project Setup
Automatically configure Claude Code for the current project. Supports monorepos with multiple languages in subdirectories.
Step 0: Resolve plugin root
The skill loader provides the base directory in the header: Base directory for this skill: <path>. Derive the plugin root from that:
PLUGIN_ROOT = <base directory>/../../
For example, if the skill base directory is ~/.claude/plugins/cache/pragma/skills/setup-project, then PLUGIN_ROOT is ~/.claude/plugins/cache/pragma.
Verify the plugin root is valid by checking for the plugin manifest:
PLUGIN_ROOT="<base directory>/../.."
[[ -f "$PLUGIN_ROOT/.claude-plugin/plugin.json" ]] && echo "OK" || echo "ERROR: Plugin root invalid - .claude-plugin/plugin.json not found at $PLUGIN_ROOT"
true
Note: Replace <base directory> with the actual path from the skill loader header above. For example, if the header says Base directory for this skill: /home/user/.claude/plugins/cache/pragma/skills/setup-project, then PLUGIN_ROOT="/home/user/.claude/plugins/cache/pragma/skills/setup-project/../..".
If the check fails, stop and show:
Plugin root could not be resolved. The pragma plugin may not be installed correctly.
Reinstall:
/plugin marketplace add peteski22/agent-pragma
/plugin install pragma@agent-pragma
STOP if check fails. Do not proceed.
Step 1: Detect project metadata
Get org and repo name from git remote:
git remote get-url origin 2>/dev/null | sed -E 's|.*[:/]([^/]+)/([^/]+)(\.git)?$|\1 \2|'
Store {org} and {repo} for templating.
Step 2: Scan for languages (root and subdirectories)
Check root directory and subdirectories (up to two levels deep) for language markers. Two-level scanning catches nested layouts like sdk/go/ or services/auth/.
# Root level
[[ -f go.mod ]] && echo "root:go"
( [[ -f pyproject.toml ]] || [[ -f setup.py ]] ) && echo "root:python"
[[ -f package.json ]] && echo "root:javascript"
[[ -f tsconfig.json ]] && echo "root:typescript"
[[ -f Cargo.toml ]] && echo "root:rust"
# Subdirectories (up to two levels deep, e.g. backend/ or sdk/python/).
# Prune heavy dirs so find never descends into them; skip the root marker
# (depth 1) since it's already covered by the root-level checks above.
find . -maxdepth 3 -type d \( -name node_modules -o -name .git -o -name vendor \) -prune -o \
-type f \( -name go.mod -o -name pyproject.toml -o -name setup.py \
-o -name package.json -o -name tsconfig.json -o -name Cargo.toml \) -print 2>/dev/null \
| while IFS= read -r marker; do
dir=$(dirname "$marker" | sed 's|^\./||')
[ "$dir" = "." ] && continue
case "$(basename "$marker")" in
go.mod) echo "${dir}:go" ;;
pyproject.toml) echo "${dir}:python" ;;
setup.py) echo "${dir}:python" ;;
package.json) echo "${dir}:javascript" ;;
tsconfig.json) echo "${dir}:typescript" ;;
Cargo.toml) echo "${dir}:rust" ;;
esac
done | sort -u
true
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 440 lines · 21 tokens per session scan D 176a7af91fa7
setup-project is a skill published in the GitHub repository peteski22/agent-pragma (22 stars, last pushed 29d ago), licensed Apache-2.0. It adds 21 tokens to every session and 4,201 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it D with 3 findings (downloads and executes remote code, reads agent configuration directories, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
research-tool-updates
Research recent upstream releases of every rulesync target tool, detect capabilities rulesync has not yet followed, file one GitHub issue per tool for the gaps, and scout popular or promising coding agents rulesync does not target yet.
batch-all-issues
Resolve every open issue one at a time: fact-check each with web research, close the ones that need no action, and run the goal-pr skill to fix, review, and merge the ones that do — repeating until no actionable issues remain.
goal-release
Cut a release end to end: use the draft-release skill to open the release PR and draft GitHub release, wait for CI to turn green, run the merge-pr skill to merge the release PR, then update the Homebrew formula from the published release assets. Use when the user wants to draft and merge a release in one go, or…
prs-awaiting-author
List open pull requests where the ball is in the author's court: CI is failing, review comments are unaddressed, or a maintainer question is awaiting the author's reply. Use when the user wants to see PRs awaiting author action.
prs-awaiting-maintainer
List open pull requests where the ball is in the maintainer's court: CI is green and the PR is ready for a maintainer to review, re-review, or merge. Use when the user wants to see PRs awaiting maintainer action.
rulesync
Generates and syncs AI rule configuration files (.cursorrules, CLAUDE.md, copilot-instructions.md) across 20+ coding tools from a single source. Use when syncing AI rules, running rulesync commands, importing or generating rule files, or managing shared AI coding configurations.