vibestack CLAUDE.md

vibestack CLAUDE.md is an instructions file for coding agents from timurgaleev/vibestack. It costs 3,433 tokens per session, scanned C, original, MIT.

Development instructions for vibestack’s Claude.md file and its skill system. They describe how skills are organized, documented, invoked, and connected to optional hook scripts.

In plain words
What is it for?
Use them when editing vibestack skills or tooling, especially when creating SKILL.md files, setting frontmatter, defining triggers, or adding checks that run before tools.
Why use it?
They give contributors a shared structure for adding or changing vibestack skills without violating its expected format.

Instructions file

Install

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.

agentmods
npx agentmods add instructions/timurgaleev/vibestack/claude-md
Clone the repo
git clone --depth 1 https://github.com/timurgaleev/vibestack

Wrote 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.

agentmods badge for vibestack CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/timurgaleev/vibestack/claude-md.svg)](https://agentmods.dev/instructions/timurgaleev/vibestack/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/timurgaleev/vibestack/claude-md"><img src="https://agentmods.dev/badge/instructions/timurgaleev/vibestack/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 3,433 This file is loaded in full into every session.
When invoked 3,433 The same file — it is already loaded in full.
Security scan C 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.03433 $0.03433
Opus 5 $0.01716 $0.01716
Sonnet 5 $0.00687 $0.00687
Haiku 4.5 $0.00343 $0.00343

Measured yesterday against content hash 570bb416cbf1, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade C, and why

vibestack CLAUDE.md scanned grade C with 1 finding 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 yesterday.

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.

Recursive force deletehighDestructive command

rm -rf with a variable or a broad path is one typo away from removing the wrong tree.

the first escaped quote, so `git commit -m "wip" && rm -rf /` reaches the
CLAUDE.md · 303 lines

How it starts

The opening of the file, as written. The whole thing — 303 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md — vibestack Development Guide

This file guides development of vibestack itself. Read it before editing skills or tooling.

Skill structure

Every skill is a directory in skills/ with a SKILL.md and an optional bin/ directory:

skills/my-skill/
├── SKILL.md        # required — frontmatter + instruction body
└── bin/            # optional — hook scripts
    └── check-*.sh

SKILL.md frontmatter

---
name: my-skill               # slash command name — no spaces, matches directory name
description: |               # one clear sentence; drives auto-invoke matching
  What this skill does and when to use it.
allowed-tools:               # list only what the skill actually uses
  - Bash
  - Read
  - Edit
  - Write
  - Grep
  - Glob
triggers:                    # phrases that auto-invoke the skill
  - phrase that triggers it
hooks:                       # optional: PreToolUse interceptors
  PreToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "bash ${CLAUDE_SKILL_DIR}/bin/check.sh"
          statusMessage: "Checking..."
---

Body style

  • Write in natural language, not bash. The model follows prose instructions.
  • Use ## sections for phases or major steps.
  • Embed an output template so Claude knows exactly how to format results.
  • Keep it tight — remove anything the model doesn't need to act on.

Hook scripts

Hook scripts live in skills/<name>/bin/. Rules:

  • Read JSON from stdin (the tool call payload from Claude Code)
  • Return {} to allow the tool call through silently
  • To pause or block, return the decision nested under hookSpecificOutput:
    {"hookSpecificOutput":{"hookEventName":"PreToolUse","permissionDecision":"ask","permissionDecisionReason":"..."}}
    
    permissionDecision is "ask" or "deny"; the human-readable text goes in permissionDecisionReason. Claude Code ignores a top-level permissionDecision — a hook that emits one runs, matches, prints, and changes nothing. The failure is silent, so it survives casual testing.
  • Never hand-build that JSON with printf/sed interpolation. A path or message containing a quote or newline produces malformed JSON, and the whole decision is discarded. Source skills/careful/bin/hook-extract.sh and call vibe_hook_decision <ask|deny> "<reason>".
  • Parse the payload with vibe_hook_extract_field "$INPUT" <field> from the same file, never with grep -o '"field"..."[^"]*"' — that pattern truncates at the first escaped quote, so git commit -m "wip" && rm -rf / reaches the checks as git commit -m \.
  • Decide the polarity for an unreadable payload deliberately, and say which you chose in a comment. Ask-tier hooks (/careful) ask; deny-tier boundary hooks (/freeze) deny. A boundary that fails open is not a boundary.
  • Use #!/usr/bin/env bash with set -euo pipefail
  • Use POSIX ERE patterns — [[:space:]] not \s, (^|[^[:alnum:]_])x not \bx\b (BSD grep and sed on macOS do not support the GNU escapes)
  • Use ^ anchors in sed, not .*pattern greedy matches
  • Be executable (chmod +x)

Read the full file on GitHub · 303 lines

Changes

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.

  1. yesterday Changed · +70 lines · +963 tokens per session 570bb416cbf1
  2. 5d ago First seen · 233 lines · 2,470 tokens per session scan C fe12eb37189f

Subscribe to this mod's changes

vibestack CLAUDE.md is an instructions file published in the GitHub repository timurgaleev/vibestack (6 stars, last pushed 2d ago), licensed MIT. It adds 3,433 tokens to every session, about $0.0172 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.