feed-badger
Skill3 starsChanged 33 days agoMITView on GitHub
Use when something learned in this repo belongs in the ai-badger framework itself — a new skill, persona, invariant, instruction or fix that is project-agnostic — and the user wants to contribute it back. Opens a draft PR against the framework; refuses anything project-specific.
- Reads credentials
- Commits and pushes
In this repository52 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .ai-badger/AGENTS.mdAGENTS.md
- .ai-badger/CLAUDE.mdCLAUDE.md
- CLAUDE.mdCLAUDE.md
- .ai-badger/copilot-instructions.mdCopilot instructions
- .github/copilot-instructions.mdCopilot instructions
- ai-raccoon-memorySkill
- archifySkill
- artifact-verificationSkill
- auto-wmSkill
- browser-usageSkill
- call-behavioristSkill
- code-review-checklistSkill
- code-review-evidenceSkill
- commit-reminderSkill
- complete-project-scope-code-reviewSkill
- create-task-specSkill
- debug-issueSkill
- den-refreshSkill
- design-gate-auditSkill
- design-testsSkill
- differential-feature-refactorSkill
- documentation-drift-auditSkill
- documentationSkill
- evidence-first-researchSkill
- explore-codebaseSkill
- git-workSkill
- humanizerSkill
- maintain-agent-instructionsSkill
- mcp-indexSkill
- multi-agent-communicationSkill
- multi-lane-report-assemblySkill
- owner-gate-reviewSkill
- pre-push-gate-debuggingSkill
- prompt-markersSkill
- qaSkill
- quick-taskSkill
- refactor-safelySkill
- research-record-auditSkill
- review-changesSkill
- review-gate-diff-verificationSkill
- review-testsSkill
- scripts-tooling-refactorSkill
- semantica-knowledge-graphSkill
- send-messageSkill
- spec-driven-refactoringSkill
- status-reportSkill
- task-decompositionSkill
- taskSkill
- test-economySkill
- welcome-ai-badgerSkill
- worktree-agent-isolationSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 5 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
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
- Distinctive: line 54
Open a draft PR: Write a PR body summarizing each contribution and why it is agnostic, then:
- Distinctive: line 66
Every declared path is scanned for credential-shaped literals before anything is staged.
- Very specific: line 70
Use --dry-run to preview the git/gh commands without executing (useful for testing).
- Distinctive: line 76
Agnostic bar is high: When unsure whether something is reusable, keep it in the project, not the framework.
- Very specific: line 84
--pathis required and repeatable: Only declared paths are staged, so an unrelated dirty file cannot ride along in the PR. - Distinctive: line 89
The agnostic bar is high: When unsure, keep it in the project, not the framework.
- Very specific: line 93
When any script in the feed flow (detect_additions.py, open_pr.py) exits non-zero or emits an error, attempt recovery before surfacing the …
- Distinctive: line 111
After applying a fix, re-run the failed step and continue the flow.
- Very specific: line 114
Recovery failed — offer to create a GitHub issue: Follow .ai-badger/skills/welcome-ai-badger/references/reporting-a-framework-bug.md when a …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
feed-badger
The reverse of welcome-ai-badger: it finds framework-managed content you have added or
changed in a project, keeps only what is genuinely reusable, generalizes it, and contributes it
back to ai-badger as a draft PR for human review.
Responsibility split
- Scripts (mechanical):
detect_additions.pydiffs.ai-badger/againstmanifest.jsonand lists candidates;open_pr.pydoes the git branch/commit/push +gh pr create --draft. - You (creative): classify each candidate (agnostic / generalizable / project-specific),
drop project-specific ones with a reason, generalize the keepers (strip project paths,
domain terms, repo names), and place each into the correct
{stack}/{feature}/path in an ai-badger checkout.
Flow
- Detect candidates (from the target repo root):
Emitspython3 "$AI_BADGER/features/common/skills/feed-badger/scripts/detect_additions.py" --target . --root "$AI_BADGER"new(files not from the framework) andchanged(files edited beyond the scaffold) candidates, by feature. - Classify & generalize. For each candidate decide agnostic / generalizable /
project-specific. Drop project-specific ones (state why). For the keepers, rewrite to remove
anything project-coupled — no repo names, no domain nouns, no absolute paths. Decide the
target stack (or
common) and feature. A brand-new stack or feature is allowed. - Place into an ai-badger checkout. Clone or reuse a checkout of
Arasz/ai-badger, write each generalized file to its{stack}/{feature}/path, then regenerate the index:python3 "<checkout>/tooling/index_build.py" python3 "<checkout>/tooling/validate.py" --all Open a draft PR. Write a PR body summarizing each contribution and why it is agnostic, then:
python3 "$AI_BADGER/features/common/skills/feed-badger/scripts/open_pr.py" \ --checkout <checkout> --branch feed/<slug> \ --title "feed: <summary>" --body-file <body.md> --repo Arasz/ai-badger \ --path features/<stack>/<feature>/<name> --path index.json--pathis required and repeatable: name every path you placed, plusindex.jsonif you regenerated it. Only declared paths are staged, so an unrelated dirty file in the checkout cannot ride along in the PR.Every declared path is scanned for credential-shaped literals before anything is staged. A finding refuses the PR and names the file and the shape — never the matched text. It is a guard, not proof: it checks known literal shapes, so a clean run is not a certificate.
Use
--dry-runto preview the git/gh commands without executing (useful for testing).
Rules
- Draft, always. Contributions land as draft PRs; a human reviews and merges. Never auto-merge.
- Agnostic bar is high. When unsure whether something is reusable, keep it in the project, not the framework. Better to under-contribute than to pollute the catalog.
- Provenance drives detection.
feed-badgeronly works on repos scaffolded by ai-badger (those with.ai-badger/manifest.json).
Gotchas
- Draft PR, always. A human reviews and merges; never auto-merge.
--pathis required and repeatable. Only declared paths are staged, so an unrelated dirty file cannot ride along in the PR. Paths are literal (no globs), the index must be clean before the run, and a file over the scan's 1 MB cap is refused.- The credential scan is a guard, not proof. It checks known literal shapes; a clean run is not a certificate.
- The agnostic bar is high. When unsure, keep it in the project, not the framework.
Error Recovery
When any script in the feed flow (detect_additions.py, open_pr.py) exits
non-zero or emits an error, attempt recovery before surfacing the failure.
- Parse the error. Scripts emit structured JSON — read the
errorfield to classify the failure. Attempt automatic recovery. Try the applicable fix, then re-run the failed step.
Error Fix manifest.jsonmissing or corruptProject not scaffolded — run welcome-ai-badgerfirstdetect_additions.pyfound no candidatesConfirm .ai-badger/has changes beyond manifest; check git statusopen_pr.py—ghnot authenticatedgh auth loginor setGITHUB_TOKENopen_pr.py— branch already existsDelete the remote branch ( git push origin --delete <branch>) or use a new slugopen_pr.py— push rejectedPull latest, rebase, force-push (draft branch only) index_build.py/validate.pyerror after placing filesFix the placed files, re-run index build + validate After applying a fix, re-run the failed step and continue the flow. If it succeeds, report what was fixed.
- Recovery failed — offer to create a GitHub issue. Follow
.ai-badger/skills/welcome-ai-badger/references/reporting-a-framework-bug.mdwhen a fix does not recover the failure: ask permission first, gate onghbeing installed and authenticated, sanitize the config before including it. Never create the issue without explicit user approval — that rule holds even if the reference file is not present.
Verification Checklist
detect_additions.pyran and every candidate was classified — dropped project-specific ones have stated reasons- Every keeper generalized — no repo names, domain nouns, or absolute paths
- Placed files pass
index_build.py+validate.py --allin the checkout - Draft PR opened with
--pathnaming every placed path (andindex.jsonif regenerated) - Credential scan clean
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.

