agent-sort
affaan-m/everything-claude-code
Trim ECC installs to project-specific needs by sorting skills into DAILY vs LIBRARY buckets using repo evidence.
What is agent-sort?
Agent-sort classifies Everything Claude Code (ECC) components based on actual repository stack evidence rather than guessing. Use it when you want a lean, project-specific ECC install that loads only what the repo actually needs, keeping the rest accessible through search or a library router.
- Analyzes repo stack (languages, frameworks, package managers, configs) to establish ground truth
- Builds evidence table for each ECC component with file counts, config presence, and justification
- Classifies skills, commands, rules, hooks, and extras into DAILY (always-load) or LIBRARY (searchable-only) buckets
- Generates install plan with concrete actions: keep, remove, or route through library
- Creates optional skill-library router for organized access to non-daily surfaces
- Produces verification report confirming DAILY/LIBRARY split matches repo reality
How to install agent-sort
npx skills add https://github.com/affaan-m/everything-claude-code --skill agent-sort- An existing ECC installation or repo with `.claude/` directory structure
- Access to the target repository to scan for stack evidence (file extensions, configs, lockfiles)
How to use agent-sort
- 1.Run agent-sort on your target repository to analyze its stack
- 2.Review the generated evidence table to confirm language, framework, and tool detection
- 3.Approve the DAILY vs LIBRARY classification or adjust based on team workflow
- 4.Apply the install plan: keep DAILY items in `.claude/skills/`, move LIBRARY items to a router or separate location
- 5.Run verification to confirm the split matches your repo reality
- 6.Optionally create a `.claude/skills/skill-library/SKILL.md` router for searchable library access
Use cases
- Reduce noise in a polyglot monorepo by loading only the language stacks actually in use
- Separate core workflow surfaces (DAILY) from reference/backup tools (LIBRARY) for a focused session
- Audit an ECC install that has drifted from the repo's current tech stack and clean it up
- Build a repeatable, evidence-backed install decision for onboarding new team members
- Keep specialized skills accessible without cluttering the default command palette
- Teams using Everything Claude Code (ECC) who want lean, project-specific installs
- Developers managing multi-language or multi-framework repos
- Engineering leads standardizing Claude Code setup across projects
- Anyone tired of hand-curating skills one by one
agent-sort FAQ
DAILY items load every session because they match your repo's active stack. LIBRARY items stay accessible through search or a router skill but don't load by default, reducing noise and context overhead.
It scans your repo for concrete evidence: file extensions, package.json, framework configs, CI setup, imports, and docs. A component moves to DAILY only if the repo clearly uses that stack and the component helps every session.
Yes. The evidence table is a starting point. If your team workflow differs from the repo stack, adjust DAILY/LIBRARY manually and document why in your install plan.
Agent-sort handles polyglot repos by classifying each component per language/framework. A TypeScript skill goes DAILY, a Python skill goes LIBRARY, etc. The install plan reflects the full split.
No. LIBRARY means 'keep accessible but don't load by default.' Use a skill-library router or search to find them when needed. Deletion is optional if you're certain they'll never be useful.
Full instructions (SKILL.md)
Source of truth, from affaan-m/everything-claude-code.
name: agent-sort description: Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle. metadata: origin: ECC
Agent Sort
Use this skill when a repo needs a project-specific ECC surface instead of the default full install.
The goal is not to guess what "feels useful." The goal is to classify ECC components with evidence from the actual codebase.
When to Use
- A project only needs a subset of ECC and full installs are too noisy
- The repo stack is clear, but nobody wants to hand-curate skills one by one
- A team wants a repeatable install decision backed by grep evidence instead of opinion
- You need to separate always-loaded daily workflow surfaces from searchable library/reference surfaces
- A repo has drifted into the wrong language, rule, or hook set and needs cleanup
Non-Negotiable Rules
- Use the current repository as the source of truth, not generic preferences
- Every DAILY decision must cite concrete repo evidence
- LIBRARY does not mean "delete"; it means "keep accessible without loading by default"
- Do not install hooks, rules, or scripts that the current repo cannot use
- Prefer ECC-native surfaces; do not introduce a second install system
Outputs
Produce these artifacts in order:
- DAILY inventory
- LIBRARY inventory
- install plan
- verification report
- optional
skill-libraryrouter if the project wants one
Classification Model
Use two buckets only:
DAILY- should load every session for this repo
- strongly matched to the repo's language, framework, workflow, or operator surface
LIBRARY- useful to retain, but not worth loading by default
- should remain reachable through search, router skill, or selective manual use
Evidence Sources
Use repo-local evidence before making any classification:
- file extensions
- package managers and lockfiles
- framework configs
- CI and hook configs
- build/test scripts
- imports and dependency manifests
- repo docs that explicitly describe the stack
Useful commands include:
rg --files
rg -n "typescript|react|next|supabase|django|spring|flutter|swift"
cat package.json
cat pyproject.toml
cat Cargo.toml
cat pubspec.yaml
cat go.mod
Parallel Review Passes
If parallel subagents are available, split the review into these passes:
- Agents
- classify
agents/*
- classify
- Skills
- classify
skills/*
- classify
- Commands
- classify
commands/*
- classify
- Rules
- classify
rules/*
- classify
- Hooks and scripts
- classify hook surfaces, MCP health checks, helper scripts, and OS compatibility
- Extras
- classify contexts, examples, MCP configs, templates, and guidance docs
If subagents are not available, run the same passes sequentially.
Core Workflow
1. Read the repo
Establish the real stack before classifying anything:
- languages in use
- frameworks in use
- primary package manager
- test stack
- lint/format stack
- deployment/runtime surface
- operator integrations already present
2. Build the evidence table
For every candidate surface, record:
- component path
- component type
- proposed bucket
- repo evidence
- short justification
Use this format:
skills/frontend-patterns | skill | DAILY | 84 .tsx files, next.config.ts present | core frontend stack
skills/django-patterns | skill | LIBRARY | no .py files, no pyproject.toml | not active in this repo
rules/typescript/* | rules | DAILY | package.json + tsconfig.json | active TS repo
rules/python/* | rules | LIBRARY | zero Python source files | keep accessible only
3. Decide DAILY vs LIBRARY
Promote to DAILY when:
- the repo clearly uses the matching stack
- the component is general enough to help every session
- the repo already depends on the corresponding runtime or workflow
Demote to LIBRARY when:
- the component is off-stack
- the repo might need it later, but not every day
- it adds context overhead without immediate relevance
4. Build the install plan
Translate the classification into action:
- DAILY skills -> install or keep in
.claude/skills/ - DAILY commands -> keep as explicit shims only if still useful
- DAILY rules -> install only matching language sets
- DAILY hooks/scripts -> keep only compatible ones
- LIBRARY surfaces -> keep accessible through search or
skill-library
If the repo already uses selective installs, update that plan instead of creating another system.
5. Create the optional library router
If the project wants a searchable library surface, create:
.claude/skills/skill-library/SKILL.md
That router should contain:
- a short explanation of DAILY vs LIBRARY
- grouped trigger keywords
- where the library references live
Do not duplicate every skill body inside the router.
6. Verify the result
After the plan is applied, verify:
- every DAILY file exists where expected
- stale language rules were not left active
- incompatible hooks were not installed
- the resulting install actually matches the repo stack
Return a compact report with:
- DAILY count
- LIBRARY count
- removed stale surfaces
- open questions
Handoffs
If the next step is interactive installation or repair, hand off to:
configure-ecc
If the next step is overlap cleanup or catalog review, hand off to:
skill-stocktake
If the next step is broader context trimming, hand off to:
strategic-compact
Output Format
Return the result in this order:
STACK
- language/framework/runtime summary
DAILY
- always-loaded items with evidence
LIBRARY
- searchable/reference items with evidence
INSTALL PLAN
- what should be installed, removed, or routed
VERIFICATION
- checks run and remaining gaps
Related skills
More from affaan-m/everything-claude-code and the wider catalog.

security-review
Security checklist and patterns for authentication, input validation, secrets, and sensitive features.

golang-patterns
Idiomatic Go patterns, best practices, and conventions for building robust, efficient, and maintainable applications.

coding-standards
Baseline coding conventions for naming, readability, immutability, and quality across projects.

frontend-patterns
React and Next.js patterns for components, state management, performance, and modern frontend practices.

backend-patterns
REST/GraphQL API design, database optimization, and server-side patterns for Node.js, Express, and Next.js.

golang-testing
Go testing patterns: table-driven tests, subtests, benchmarks, fuzzing, and TDD methodology.