plugin/skills/feedback/SKILL.md
Use this skill when reviewing how the plugin behaved across recent runs, after a release to confirm reliability, before filing a plugin bug report, or when planning the next plugin improvement cycle — to collect and analyze past Claude Code session logs for the ai-skills plugin and surface agent, subagent, skill, command, and hook errors, timeouts, unexpected exits, and other anomalies that point at plugin defects. Defaults to the last 7 days of sessions for the current project. Produces an extended Markdown report on disk plus a brief on-screen summary.
npx skillsauth add avav25/ai-assets feedbackInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Mine Claude Code session JSONL transcripts for evidence of how the ai-skills plugin behaved across recent sessions. Produces:
Both reports share section headings (Executive Summary → Findings → Evidence → Recommendations). The brief truncates each section; the file holds the full evidence with timestamps, session IDs, and verbatim excerpts.
subagent-depth-guard exit-2 fired this week")Not for:
/bugfix)/qa / /eval)/feedback # last 7 days, current project, plugin = ai-skills
/feedback --days 14 # last 14 days
/feedback --project /path/to/other/repo # analyze a different project's sessions
/feedback --plugin ai-skills # restrict findings to one plugin (default: ai-skills)
/feedback --severity error # only blocking/error-level findings
/feedback --out reports/feedback-2026-05.md # custom output path
| Flag | Default | Effect |
|---|---|---|
| --days N | 7 | Window of recent sessions to scan (mtime-based). 0 means "all sessions". |
| --project PATH | current $PWD | Project whose session logs to read. Resolved to ~/.claude/projects/<sanitized-path>/. |
| --plugin NAME | ai-skills | Filter findings to events that mention this plugin name in hook paths, skill paths, or system events. all disables the filter. |
| --severity LEVEL | warn | One of all, warn, error. warn is the default — includes errors plus non-blocking warnings. |
| --out PATH | .ai-skills-memory/feedback/feedback-<YYYY-MM-DD>-<HHMM>.md | Override the on-disk report path. Parent dir is created if missing. |
| --max-sessions N | 100 | Cap on number of session files parsed (oldest first; newest always included). |
Translate --project (or $PWD) to the Claude Code log path:
~/.claude/projects/<sanitized-cwd>/<session-id>.jsonl
<sanitized-cwd> is the absolute project path with / replaced by - and a leading -. Example: /home/u/repo/ai-skills → -home-u-repo-ai-skills. If the directory does not exist, fail with a clear message and suggest --project.
List *.jsonl files; keep those with mtime >= now - days (or all if --days 0). Sort newest first; truncate to --max-sessions. Record the resolved window and file count in the report header.
Steps 3 (stream-parse + event classifier), 4 (per-finding attribution
fields), 5 (3-level grouping + signature collapse), 6 (render extended +
brief), and 6a (paired canonical JSON parity contract) carry the precise
classification rules, attribution schema, and the MD↔JSON parity invariant.
Read report-pipeline.md and apply steps 3–6a verbatim before parsing —
those rules are mandatory. In short: stream-parse each .jsonl line and
classify into hook/tool/assistant/subagent/permission/plugin events; attribute
each with session/source/severity/excerpt; group by source-kind → identity →
normalized failure signature; render the extended (file) + brief (stdout)
reports from templates/extended-template.md; and write a schema-conformant
paired .json (full parity, atomic write) next to every .md per
output-schema.json — the JSON is the canonical contract for /plugin-author fix-feedback.
Classifier v2 (see report-pipeline.md §3a–3c) additionally: matches
task-notifications across queue-operation/attachment events (not just
user) and adds the killed status; scans team-envelopes/ for silent-idle
subagents and interrupted G7 writes — the dominant /develop failure that the
transcripts cannot show; and softens the verdict so a single transient
upstream-API error (e.g. HTTP 529 overloaded) does not force RED on its own.
Sections in both:
--days, project path, plugin filter, file count, classifier versionAppend one JSON-line summary to .ai-skills-memory/feedback/feedback.log:
{"ts": "<iso>", "days": 7, "project": "<path>", "plugin": "ai-skills", "sessions_scanned": 14, "findings": 23, "verdict": "YELLOW", "report": ".ai-skills-memory/feedback/feedback-2026-05-13-0910.md"}
Last line of stdout is always Extended report: <absolute-path-to-on-disk-report>. This is the contract the caller relies on.
scripts/collect_session_data.py is the deterministic parser; the skill body
always passes --out-json and --report-md-path so the paired .json lands
next to the .md. Its full invocation contract and the worker MUST-rules
(stream-parse, malformed-line counter, secret-redaction regex, exact CLI form,
--stdout canonical vs default aggregation shape) are in
report-pipeline.md ("Worker script") — read and follow it verbatim when
invoking the worker.
templates/extended-template.md — extended on-disk skeleton (used for the saved Markdown document)templates/brief-template.md — brief on-screen skeleton (≤ 60 lines)Both files include placeholders the skill substitutes at render time.
--out is not given, use .ai-skills-memory/feedback/feedback-<YYYY-MM-DD>-<HHMM>.md so re-runs do not overwrite each other/plugin-author fix-feedback would fall back to degraded MD parsing)--plugin ai-skills, exclude events whose source is clearly user-code (e.g., bash commands, project test runs that are not invoked by plugin hooks)--projectINSUFFICIENT_DATA; brief is one line + path.ai-skills-memory/feedback/: fall back to /tmp/feedback-<ts>.md and warn the user that the canonical path was unreachable| Layer | When | Shape |
|---|---|---|
| L4 | End of every run | Append one JSON line to .ai-skills-memory/feedback/feedback.log — timestamp, window, sessions scanned, finding count, verdict, report path |
~/.claude/projects/<sanitized-cwd>/*.jsonl; <project>/.ai-skills-memory/sessions/*/team-envelopes/*.json (classifier v2 — the team-gate-reconciliation envelopes that surface silent-idle subagents the transcripts cannot show); report-pipeline.md (steps 3–6a + worker contract)feedback-2026-05-13-0910.{md,json}), plus a one-line summary append to .ai-skills-memory/feedback/feedback.log/plugin-author fix-feedback --from <report>.json ingests the canonical JSON and produces a fix-cycle (one WP per finding, DEV → REVIEW → QA pipeline) — see plugin/skills/plugin-author/feedback-parser.md for the consumed shape. Markdown reparse via --md is degraded fallback only./plugin-doctor (live plugin diagnostic), /eval (rubric-based skill quality), /bugfix (file a fix once a finding is confirmed)plugin/skills/feedback/output-schema.json (JSON Schema 2020-12, schema_version: "1"). The worker validates against it implicitly by construction; downstream consumers SHOULD validate via jsonschema when available./feedback is read-only and runs in the main threaddevelopment
Use this skill when running the recurring (daily) knowledge-base rescan for a repo that already has knowledge/.knowledge-sync.yml — the main-thread dispatcher that reads the config, computes the git delta since last_scanned_sha, maps changed paths to affected doc areas, early-exits cheaply when nothing changed, then fans out one Agent(content-writer) per affected area, applies the propose/direct update policy, advances the baseline only on success, and writes an L4 run log — all with the G1 untrusted-content choke-point, secret-scan, deny-list, and budget controls woven in. For first-time setup use /knowledge-sync-init.
development
Use this skill when bootstrapping scheduled knowledge-base sync for a repo that has no knowledge/.knowledge-sync.yml yet — to run one-time setup that detects the knowledge_root from CLAUDE.md/AGENTS.md, maps doc areas to source globs, records opt-in external sources (Linear/Notion/WebFetch, all disabled by default), captures a baseline last_scanned_sha, sets the per-area update policy, generates or seeds knowledge/CONVENTIONS.md, provisions the L4 memory dir, and offers to register the daily routine. Routes ongoing recurring sync operations to /knowledge-sync.
tools
Use this skill when bootstrapping a target repository to be ai-skills-aware — on the first run of any ai-skills workflow in a fresh repo, when adopting the ai-skills plugin in an existing repo, or after upgrading to a plugin version that adds new memory paths or templates, including when the user does not say "init" but asks to "set up" or "onboard" the repo — to detect codebase type, create CLAUDE.md + AGENTS.md scaffolding, initialize the .ai-skills-memory/ directory tree from L1 templates, and configure .gitignore. Idempotent — safe to re-run. Accepts `--codebase-type <type>` and `--overwrite`. Not for re-initializing only memory — use `/memory-init` instead.
tools
Use this skill when extending, repairing, or improving plugin assets, when ingesting a `/feedback` report as a fix-cycle backlog, or when you do not remember which lower-level command is right for the job — the umbrella workflow for ai-skills plugin-asset authoring and maintenance: creating, auditing, fixing, improving, refactoring, and migrating skills, agents, rules, hooks, prompts, schemas, and rubrics inside the plugin. Auto-classifies the request, loads the right knowledge skills (`@prompt-engineering`, `@context-engineering`, `@team-protocols`), and spawns the right subagents (`prompt-engineer`, `system-architect`, `python-engineer`, `software-engineer`, `qa-engineer`, `eval-judge`) via the `Agent` tool.