feedback
Skill18 starsChanged 43 days agoMITView on GitHub
Review the current n8n-autopilot session for learnings (operational friction + workflow design anti-patterns), strip all PII, and push the redacted insights centrally via the plugin's ingest webhook (they land as batch comments on the public rollup issue). Side-effecting on `sync`/`review`-push — shows the redacted result and requires explicit confirmation.
26 other projects use a version of this.
Adopted by
Most recently taken up by
- grainulation/grainulatortheir own version, first seen Nov 3, 2026
- menot-you/n-soultheir own version, first seen Nov 1, 2026
- LightconeResearch/agent-skillstheir own version, first seen Nov 1, 2026
- tydev-new/10xjobs-careercoachtheir own version, first seen Nov 1, 2026
- ratomirjovanovic/pandawardtheir own version, first seen Nov 1, 2026
- grace-method/grace-plugintheir own version, first seen Oct 25, 2026
Used with
Projects with it also use setup, status and 6 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
VercelSkillsetup
Set up Vercel CLI and project configuration. Use when the user says "set up Vercel", "configure Vercel", "link to Vercel", or "vercel init".
Also in 5 projects that use this
AnthropicSkillstatus
Case status summary by audience — client-facing (plain language), internal (for the professor), or court-ready (formal caption format per local rules). Same facts, different framing and depth. Use when a student needs to update the client, brief the professor, or prepare a court status report.
Also in 3 projects that use this
GitHubSkillrefactor
Surgical code refactoring to improve maintainability without changing behavior. Covers extracting functions, renaming variables, breaking down god functions, improving type safety, eliminating code smells, and applying design patterns. Less drastic than repo-rebuilder; use for gradual improvements.
Also in 3 projects that use this
AnthropicSkilldebug
Structured debugging session — reproduce, isolate, diagnose, and fix. Trigger with an error message or stack trace, "this works in staging but not prod", "something broke after the deploy", or when behavior diverges from expected and the cause isn't obvious.
Also in 3 projects that use this
BlockSkillplan
Draft a TDD, PRD, or lightweight plan in the conversation without committing it.
Also in 3 projects that use this
SentrySkillreview
Fixture review skill.
Also in 4 projects that use this
Other versions26 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 26
- spotify/portal-ai-plugins★ 2.8ksame name
- suboss87/FDEOps★ 940same name
- davekilleen/Dex★ 509same name
- austintgriffith/ethskills★ 303same name
- manager-dot-dev/manager-skills★ 114same name
- grainulation/grainulator★ 86same name
- BaseInfinity/claude-sdlc-harness★ 53same name
- ratomirjovanovic/pandaward★ 50same name
- graphed-inc/marketing-skills★ 30same name
- kennethleungty/claude-music★ 23same name
16 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository25 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- build-stack-v2Skill
- build-workflowSkill
- build-workflow-v2Skill
- check-mcpsSkill
- data-tablesSkill
- deploySkill
- find-credentialSkill
- find-projectSkill
- init-repoSkill
- inventorySkill
- mirror-syncSkill
- n8nac-cheatsheetSkill
- n8nac-referenceSkill
- n8n-code-javascriptSkill
- n8n-code-pythonSkill
- n8n-modeSkill
- n8n-orchestration-patternsSkill
- n8n-structured-extractionSkill
- plugin-testingSkill
- pull-schemasSkill
- session-envSkill
- stack-intakeSkill
- sync-credentialsSkill
- test-manualSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 2 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 24 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 45
Use "$PR" in every command below.
- Very specific: line 53
Use the printed path. (If it errors — no transcript — fall back to reviewing events.ndjson only.)
- Very specific: line 57
Read .n8n-autopilot/feedback/events.ndjson — these are the SessionEnd hook's NON-PII friction counts (the 11 operational classes + …
- Very specific: line 63
Use Grep/Read over workflows//*.workflow.ts:
- Distinctive: line 113
Do not dump the records verbatim.
- Distinctive: line 156
Ask the user (accept "skip" per item):
“Common” is measured: kept by at least 6 in 10 of the 24 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Autopilot Feedback — Review, Redact, Push
The plugin learns from real usage. This skill reviews a session, removes anything
data-protected, and pushes the distilled learnings centrally so the same friction does not recur
across customers. Local stores live in the consumer repo under .n8n-autopilot/feedback/
(gitignored): events.ndjson (auto-captured signal counts from the SessionEnd hook) +
process.ndjson (review/interview output). The deterministic PII gate lives in
scripts/redact-check.js.
Parse $ARGUMENTS:
- empty /
review→ Review & push (default, the one-shot) interview→ short manual Q&A onlyshow→ list pending recordssync→ push existing pending records (re-runs the PII gate)
PII is non-negotiable. Consumer repos contain customer data. Everything that leaves the machine is (1) LLM-redacted to neutral insights and (2) passed through a deterministic allowlist gate (
redact-check.js) that BLOCKS emails, paths, URLs, long digit runs, tokens, and configured customer names. Counts + repo basename only; never transcript text or workflow content.
Review & push (default)
0. Resolve the plugin root once
$CLAUDE_PLUGIN_ROOT is expanded inside hooks.json commands only — in the Bash tool it is EMPTY,
and every node "$CLAUDE_PLUGIN_ROOT/…" call below then fails with MODULE_NOT_FOUND on a path
under the shell root (#74, #100). Set it from the skill's base directory (the "Base directory for
this skill" line Claude Code printed when this skill loaded — its plugin root is two levels up):
PR="${CLAUDE_PLUGIN_ROOT:-<plugin root, e.g. ~/.claude/plugins/marketplaces/n8n-autopilot>}"
test -f "$PR/skills/feedback/scripts/record.js" || echo "wrong plugin root: $PR"Use "$PR" in every command below.
1. Resolve the session transcript
node "$PR/skills/feedback/scripts/latest-transcript.js" --workspace .Use the printed path. (If it errors — no transcript — fall back to reviewing events.ndjson only.)
2. Gather auto-captured signals
Read .n8n-autopilot/feedback/events.ndjson — these are the SessionEnd hook's NON-PII friction
counts (the 11 operational classes + memory_oom + continue_on_fail). Summarize the totals.
3. Measure file-level design quality (accurate — read the actual workflows)
These design anti-patterns are NOT in the transcript counts; measure them from the real files.
Use Grep/Read over workflows/**/*.workflow.ts:
- Code-overuse (D1) — count
n8n-nodes-base.codevs nativeif/switch/filter. Flag Code nodes that only branch or remap (a native node would do it). Report the ratio. - Missing descriptions (D4) —
@workflow({...})without adescription; key nodes without notes. - Overlapping nodes (D5) — node
positionpairs within ~80px on both axes (unreadable canvas). - (Memory/OOM + continueOnFail already come from step 2's signals.)
4. Qualitative pass (targeted, not a full dump)
Skim the transcript for process pain the counts miss (repeated dead-ends, manual detours, unclear errors). Keep it to a few concrete, generalizable observations — NOT a play-by-play.
5. Compose REDACTED, TYPED finding records — one per concrete problem
A finding is the actionable unit: one finding = one GitHub issue. Do NOT write one blob record —
write one finding per distinct problem, each answering: what went wrong, where, what was expected,
what would fix it. Neutral phrasing, no customer names, no file paths, no workflow content, no
values, no URLs. Node types (n8n-nodes-base.github) and n8nac commands (n8nac push) are safe
and REQUIRED context — put them in area.
node "$PR/skills/feedback/scripts/record.js" '{
"kind": "finding",
"type": "schema-gap|cli-friction|validation-loop|mcp-detour|credential-gap|doc-gap|design-antipattern|bug|other",
"severity": "low|medium|high",
"area": "<node type or n8nac command>",
"title": "<one line — becomes the issue title>",
"observed": "<what actually happened, incl. exact error phrase if non-PII>",
"expected": "<what should have happened>",
"suggestion": "<concrete fix idea>",
"signals": { "<signal-class>": N }
}'type, title, observed are required (record.js enforces). Attach the session's relevant signal
counts as signals evidence. Repeat per problem — 3 problems = 3 findings = 3 issues.
6. Run the deterministic PII gate (show the user)
node "$PR/skills/feedback/scripts/redact-check.js" .n8n-autopilot/feedback/process.ndjson- OK → proceed.
- BLOCKED → the gate lists the offending field. Re-redact that field (neutralize it) and rewrite the record, then re-run. NEVER bypass the gate.
7. Confirm — one line per finding, then a multiple-choice prompt
Do not dump the records verbatim. With three or more findings that is a wall of text nobody reads, and an unread confirmation is not consent. Render a compact table:
| # | sev | type | title |
|---|-----|------|-------|
| 1 | high | bug | push rejects a validated file … |
| 2 | medium | cli-friction | extend mode re-builds unchanged … |Then state the target in one line — "pushes N finding(s) as N public GitHub issues on
neurawork-git/n8n-autopilot; customer/repo name stripped, reporter = your OS username included by
design" — and ask via AskUserQuestion, not free text:
- Alle pushen (N findings)
- Auswählen — then list the numbers to push
- Abbrechen — nothing is sent
Verbatim JSON stays available on request (show); offer it, do not print it unprompted. Anything other
than an explicit confirmation means no push.
8. Push
bash "$PR/skills/feedback/scripts/sync.sh" # "Alle pushen"
bash "$PR/skills/feedback/scripts/sync.sh" --only 1,3 # "Auswählen"--only takes the numbers from the step-7 table. Unselected findings stay pending — they are not
marked synced, so a later run can still push them.
sync.sh pushes finding records only (raw event counts are local telemetry — the review flow
distills them into findings first; sync refuses with a hint if only counts are pending). It re-runs
redact-check.js as a hard gate on the exact payload (defense-in-depth), adds pluginVersion +
reporter (OS username), then POSTs ONE batch to the ingest webhook (N8N_AUTOPILOT_FEEDBACK_URL
overrides the default). The ingest workflow creates one issue per finding. On HTTP 200 sync moves all
pending records to synced.ndjson and lists the created issue URLs. If it exits non-zero, surface
the error verbatim and stop — nothing was pushed, nothing was marked.
Interview (manual Q&A only)
Ask the user (accept "skip" per item):
- Non-HTTP-Trigger-Test umständlich? 2. Konflikt-Auflösung häufig? 3. Validate→Fix-Schleifen / Fehler klar?
- MCP-Publish genervt? 5. Node-Schemas gefehlt? 6. Rating 1–5. 7. Freitext (optional).
Store the raw Q&A as a process record, then distill each concrete pain point into a typed
finding record (step 5 schema) — only findings become issues:
node "$PR/skills/feedback/scripts/record.js" '{"answers":{...},"freeText":"..."}'
node "$PR/skills/feedback/scripts/record.js" '{"kind":"finding","type":"...","title":"...","observed":"...", ...}'Then run the PII gate (step 6) before any sync.
Show pending
node -e '
const fs=require("fs"),p=require("path");
const store=p.join(process.cwd(),".n8n-autopilot","feedback");
for(const f of ["events.ndjson","process.ndjson"]){const fp=p.join(store,f);if(!fs.existsSync(fp))continue;
for(const l of fs.readFileSync(fp,"utf8").split("\n")){const t=l.trim();if(!t)continue;
try{const r=JSON.parse(t);if(r.synced!==true)console.log(r.kind,r.ts,r.repoLabel,JSON.stringify(r.signals||r.insights||r.answers||{}));}catch(e){}}}
'Sync only
Runs the PII gate then pushes (see step 8). Always shows records + requires confirmation first.
The
sync.shscript is the ONLY place a push happens (onecurlPOST to the ingest webhook — nogh/GitHub account needed on the consumer side). No hook ever pushes — capture is local-only; the push is always this user-triggered, PII-gated, confirmed flow. Maintainer-side refinement of the rollup issue = thefeedback-triageagent (that one DOES needgh).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

