Skill ninja logger
Agent-skill suite for AI-assisted coding: anti-drift architecture checks, friction logging, and evidence-driven skill evolution. Tool-agnostic — Claude Code, Cursor, Codex, Gemini CLI.
npx -y skills add made-on-weekends/vibe-code-ninja --skill skill-ninja-loggerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Capture friction observations from coding sessions into a structured gap log at ~/.agents/skill-gaps.md. Use when the user says "log a skill gap", "this should be a skill", "I keep doing this manually", "log this gap", "add to gap log", "this is repetitive", or any phrase that signals they noticed a recurring manual task that could be automated by a skill. Also passively detects specific patterns during sessions: when Claude reads ≥3 source files to locate one symbol, when the user manually formats the same data shape multiple times, when the user repeats a multi-step manual workflow. Writes one structured entry per invocation. Do not duplicate entries — check the log for similar gaps before adding new ones.
SKILL.md
7.0 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
skill-ninja-logger
Captures friction observations into a structured log at ~/.agents/skill-gaps.md. Each entry is a short, structured record of a moment where the user (or Claude itself) noticed a manual workflow that could become a skill.
This skill is half of a pair. skill-ninja-review reads the log weekly and graduates recurring patterns into actual skills.
When to invoke
Explicit triggers (user-initiated)
- "log a skill gap"
- "this should be a skill"
- "I keep doing this manually"
- "log this gap"
- "add to gap log"
- "this is repetitive"
Passive triggers (Claude-initiated)
Claude self-invokes the logger when any of these patterns occur in a session:
- Multi-file symbol lookup: Claude reads ≥3 source files to locate one symbol whose location wasn't in the user's prompt. (This is the specific pattern that determines whether
code-graph-ninjashould be built.) - Repeated data-shape transformation: the user has Claude format the same data shape (CSV columns, API response, config file) ≥2 times in one session.
- Multi-step manual workflow: the user walks through the same N-step process across ≥2 sessions in the past 7 days (use
recent_chatsto detect). - Tool gap: Claude attempts a task and finds no relevant skill or MCP available, and the task is something that could plausibly be skill-ified.
For passive triggers, Claude should ask once: "This looks like a recurring pattern — should I log it as a skill gap?" Don't log silently; the user's confirmation is part of the signal.
What gets logged
Each entry has a fixed structure. Append to ~/.agents/skill-gaps.md (create the file if it doesn't exist).
## YYYY-MM-DD HH:MM — <one-line description>
**Project:** <project name from cwd or "global">
**Trigger:** <explicit | passive-symbol-lookup | passive-data-shape | passive-workflow | passive-tool-gap>
**Pattern:**
<2–4 sentences describing what the user was trying to do, what was missing, and what they did instead>
**Frequency signal:** <first-time | seen-before-in-this-session | seen-in-prior-sessions>
**Sensitivity flag:** <none | contains-project-noun | contains-pii-or-secret>
**Cross-project applicability:** <single-project | likely-multi-project | unknown>
How to determine each field
Project
Use the current working directory's basename. Example: working from ~/projects/troopersdesk → project is troopersdesk. If the session is not inside a project directory, use global.
Trigger
explicit— user said one of the trigger phrasespassive-symbol-lookup— Claude detected the multi-file lookup patternpassive-data-shape— user repeated a transformationpassive-workflow— user walked through same multi-step processpassive-tool-gap— no available skill/MCP fit the task
Pattern
2–4 sentences. Concrete and specific. Bad example: "User wants help with data." Good example: "User pasted a Mercury bank CSV export and asked to format it into the chart-of-accounts schema. Claude wrote a one-off transformation. The user mentioned this is the third Mercury export this month."
Frequency signal
first-time— no similar entry exists in the logseen-before-in-this-session— same pattern happened earlier in this conversationseen-in-prior-sessions— search the log first; if a similar entry exists, mark this. (This is the signal that matters most for graduation thresholds.)
Sensitivity flag
Critical for filtering during review:
none— generic pattern, no project-specific or sensitive contentcontains-project-noun— refers to specific project artifacts (table names, component names, internal terminology). May still graduate as project-specific skill.contains-pii-or-secret— pattern involves real user data, credentials, financial details, or other sensitive content. NEVER auto-graduate to a skill. Manual review only.
Cross-project applicability
single-project— the pattern is specific to one codebaselikely-multi-project— the pattern would plausibly apply to other projectsunknown— not sure yet; review will decide
Workflow
Step 1 — Check for duplicates
Before adding a new entry, read the existing log (or use grep for keyword overlap). If a substantively similar entry exists from the last 30 days:
- If the new occurrence is from a different project than the existing one → add a new entry; cross-project recurrence is a strong signal
- If the new occurrence is the same project, same pattern → don't duplicate; instead, append a one-line note to the existing entry:
Reoccurred YYYY-MM-DD
Step 2 — Write the entry
Append to ~/.agents/skill-gaps.md using the exact template above. Don't reformat or get creative.
Step 3 — Confirm to the user
Output a one-line confirmation:
Logged skill gap: <one-line description>. (See ~/.agents/skill-gaps.md)
No more than that. The skill should add minimal flow tax — capturing should be cheap.
Log file format
The log file lives at ~/.agents/skill-gaps.md. If it doesn't exist, create it with this header:
# Skill Gap Log
Captured friction observations from coding sessions. Reviewed weekly by `skill-ninja-review`.
## How to read this log
- Each entry is a structured observation, not a task.
- Entries with `Frequency signal: seen-in-prior-sessions` are graduation candidates.
- Entries with `Sensitivity flag: contains-pii-or-secret` go through manual review only.
- Entries are appended in time order; do not edit past entries except to add `Reoccurred YYYY-MM-DD` notes.
---
Then append entries below the ---.
Token-waste prevention
This skill should be cheap to invoke. Rules:
- Don't summarize the entire conversation when logging — capture only the pattern, not the context.
- Don't add suggestions for the skill to be created. That's
skill-ninja-review's job. - Don't read the entire log file every invocation. Use
grepor read only the last 50 entries when checking for duplicates. - Don't ask follow-up questions beyond the one duplicate-check confirmation when relevant.
What this skill does NOT do
- Does not create skills (that's
skill-ninja-review) - Does not analyze patterns (that's review's job)
- Does not interrupt flow with long prompts
- Does not log generic complaints — only structured patterns