filip-podstavec/claude-leverage/log-structured
Claude Code and agent skill by filip-podstavec/claude-leverage
- community
Checking that the SKILL.md file is still in the repository.
USE WHEN auditing logging in a legacy codebase, after adopting the JSON-lines spec, or when user asks to clean up logging. Finds print/console.log/interpolated logger calls and suggests spec- compliant replacements per AGENTS.md. Read-only — never auto-rewrites. Templates per language in `templates/logging/`.
Install
npx vskill@latest install filip-podstavec/claude-leverage/log-structuredSKILL.md
/log-structured
What it does
Helps retrofit a codebase to the structured-logging spec from AGENTS.md:
Walks a target path, finds anti-patterns, and emits a structured report with file:line citations and concrete suggested replacements. Never modifies code — the user decides per-finding.
Anti-patterns flagged
| Pattern | Why it's a problem | Suggested fix | |
|---|---|---|---|
print(...) in production code | No level, no context, no structure | Replace with logger call | |
console.log(...) in production code | Same; not structured | Replace with structured logger | |
logger.X(f"user {id} did {action}") (Python) | Values baked into message → agent can't grep event=did_action | Move values to attrs={"user_id": id, "action": action} | |
` logger.x(user ${id} did ${action}) ` (TS/JS) | Same | logger.info("user_action", { user_id: id, action }) | |
fmt.Printf("user %d ...", id) followed by log.Print | Same | slog.Info("user_action", "user_id", id) | |
Missing trace_id propagation | Can't reconstruct request flow | Wire context-aware logger (template per lang) | |
Logging to stdout in a service that should log structured (e.g., print in Flask handler) | Operator tooling can't parse | Wire JSON formatter |
Workflow
- Resolve target. Default
.(whole repo). If$ARGUMENTShas a
path, use that. If --lang <name> is given, restrict scan to that language; else auto-detect from file extensions.
- Detect language(s) by file extension. Walk only files matching:
- Python:
*.py(skiptests/,*_test.py,__pycache__) - TypeScript/JavaScript:
*.ts,*.tsx,*.js,*.jsx(skip
node_modules/, dist/, build/, *.test.*, *.spec.*)
- Go:
*.go(skip*_test.go,vendor/) - Rust:
*.rs(skiptarget/,tests/)
- Grep for anti-patterns in the scoped files. Use
Greptool with
the patterns documented per-language in `../../templates/logging/`.
- For each finding, emit:
file:line — current line — suggested replacement- Reference the language template by path:
see templates/logging/<lang>.md for the logger init
- Summary at the end:
- Count by language
- Count by anti-pattern type
- Path to the language template for setup
- Reminder: this skill does NOT modify code
Output format
Hard rules
- Read-only. No Edit/Write in the tool list. If asked to "just fix
the prints" — refuse. The user picks which findings matter; some scripts have print legitimately (CLI output).
- Never assume the logger import. Each finding references the
language template, which documents the logger initialization. Don't hallucinate from app.logger import logger if the project doesn't have one.
- Skip tests by default. Test files often print intentionally for
debugging. If user passes --include-tests, then scan them too.
- One finding per line. Don't bundle multiple patterns on the same
line into one finding — file:line citation must be precise.
Tunables
--lang <name>— restrict scan to one language.--include-tests— scan test files too.--max-findings <N>— cap output (default 100; large repos can
produce thousands of findings, most are noise after the first 50).
When to run
- Onboarding into a legacy codebase that pre-dates the convention.
- After AGENTS.md adoption — run once to see baseline.
- Before a structured-logging migration to size the work.
- After major refactoring of logging code, to catch regressions.
Pairs naturally with /init-repo (which can drop the language template into a new project) and with the AIDEV-NOTE convention (anchor the non-obvious logging decisions in code).
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/log-structured/SKILL.md
Popularity
- Repository stars
- 64
- Repository forks
- 2
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/filip-podstavec/claude-leverage/log-structured)