Generalize
My agent skills.
npx -y skills add Arcadi4/skills --skill generalizeAssembled 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.
- 2 stars2 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
Use when a user provides examples prefixed by "for example", "such as", "e.g.", "like", or ends a list with "etc." / "and so on". For architecture/design tasks, abstract first to identify the concept, then enumerate. For research/clarification tasks, enumerate first — the concept organizes the output but the list is the deliverable.
The file declares its own license as CC-BY-SA-4.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
7.3 KB, as published. Nobody here has run it
Generalizing From Examples
Overview
Users describe by listing instances. "Like X" or "for example Y" means they trust you to find the larger concept.
Two imperatives; which leads depends on context:
| Context | Lead With | Why |
|---|---|---|
| Architecture / design | Abstract first | Concept determines what to build. "Add monitoring, for example track response times" → Observability, not latency tracking. |
| Research / clarification | Enumerate first | The list IS the deliverable. Concept organizes it. |
Enumeration is always produced. The context determines which imperative drives.
When to Use
Triggers:
- Example markers: "for example", "e.g.", "like", "such as", "including", "things like", "something like"
- Softening qualifiers: "or something", "and so on", "etc.", "and things like that"
- Tool-as-category: "use something like Redis" → caching, not Redis
- One concrete case where the domain obviously contains many parallel cases
Do NOT use when:
- Closure language: "exactly", "specifically", "only", "precisely"
- Closed-set signals: numbered lists, cardinal words ("the three things"), final "and" without "etc."
- Inherently singular scope (one bug, one file, one function)
- You're guessing categories the user wouldn't recognize as related
Core Pattern
The Inference Ladder
- Detect marker — "for example" = illustrative, not exhaustive
- Isolate example — what concept is this an instance of?
- Identify concept — what ONE thing do all potential instances share?
- Infer scope — architecture: all items across system; research: all items in category
- Enumerate cases — always produced, never skipped
- Confirm boundary — "Does this cover what you meant?"
The ladder is recursive. Re-climb on your own output. The most common failure is rename-as-generalize: your "concept" is just the example in disguise. Test: can you name instances the example didn't give? If not, re-climb.
Closure vs. Openness Signals
The user signals either a closed set (complete) or an open set (samples). Look for the signal, not the format.
Closure (exhaustive — do NOT add):
| Signal | Examples |
|---|---|
| Numbered lists / cardinal words | "1. auth, 2. rate limit", "the three things are" |
| Definite quantifiers / finality | "the complete list", "nothing else", "that's it" |
| Closing conjunctions | "X, Y, and Z" (final "and" with NO "etc.") |
| Closure words | "specifically", "only", "exactly", "just" |
Openness (illustrative — generalize freely):
| Signal | Examples |
|---|---|
| Example markers | "for example", "e.g.", "like", "such as" |
| Softening qualifiers | "or something", "and so on", "etc." |
| Indefinite / hedging | "some", "a few", "maybe", "could include" |
| Tool-as-category | "use Redis" when context is caching strategy |
When both present: primary requester's directive wins. Another stakeholder's dimension is a competing scope definition, not another example — document the conflict, don't resolve by inclusion. Legal requirements (GDPR, SOC2) get flagged separately. Drift test: remove the primary requester's message — would your output still make sense? If yes, you've drifted.
Abstraction Mechanics
The concept is the invariant across all instances — the underlying capability, not a category label.
Abstraction depth:
| Example (shadow) | Widening (still shadows) | Concept (the form) |
|---|---|---|
| "track response times" | "monitor all endpoints" | Observability: golden signals across all services |
| "use something like Redis" | "pick a cache" | Caching layer strategy: session store, query cache, rate limiter |
| "validate email format" | "validate other fields" | Input integrity: format, type, range, sanitization, business rules |
Acid test: present the concept without the example — would the user recognize it?
Confidence: 1 example = confirm before enumerating widely. 2–3 = enumerate as educated inference. 4+ = the abstraction IS the request.
Enumeration Rules
- Name the abstract category
- List candidates with user's examples nested within
- Frame additions as inference: "Based on [category], also consider [cases]."
- If abstraction might overreach: "Do you mean [deeper concept]? If so, I'd cover [cases]."
- Let the user trim; don't self-censor. Never replace the user's examples — build outward.
Structure by category, not by example. Example-anchored output means you've appended, not generalized.
❌ Caching Research → Priority 1: Redis (user mentioned), Priority 2: Memcached
✅ Caching Layer Strategy → Session store: Redis, Memcached; Query cache: Redis (read-replica); Object cache: Hazelcast
Test: can a reader identify which items the user mentioned? If yes, restructure.
Stop and Re-climb
| What You're Doing | Why It's Wrong |
|---|---|
| Treating "for example X" as "only X" | The marker signals non-exhaustiveness. X is a starting point. |
| Asking the user to enumerate | The marker means the user expects YOU to enumerate. |
| Ignoring "etc." / "and so on" | Explicit signal the list is incomplete. MUST find more. |
| Rename-as-generalize | Abstraction only produces variations of the example. Re-climb. |
| Over-abstracting on research tasks | User wants the list. Name concept briefly, then enumerate. |
| Pattern-matching syntax not signal | "User used commas" is format-matching, not interpretation. |
| Folding competing scopes | One says "X, Y etc.", another says "scope to X." Enumerate primary requester's concept; flag the rest. |
| "The user specifically said X" | They said "for example X" — the marker IS the instruction. |
| "I don't want to over-engineer" | Under-scoping creates rework. Do it once. |
| "Better to be precise than wrong" | Precision on the example while missing the pattern is precisely wrong. |
| "I'll start with X, they can ask for more" | Delegation upward. The user expects you to do the thinking. |
| "I'll start broad and narrow down" | You'll narrow to the examples (concept drift). |
Validation Checklist
After generalizing, verify:
- Concept or rename? Can you generate instances the example didn't give?
- All cases same concept? No mixed categories.
- Reader can't identify user's items. If they can pick them out, restructure.
- Concept stable through enumeration. Every item traces to primary requester's concept.
Example Dialogues
User: "Add input validation to the form fields, for example the email field."
❌ Adds validation only to email. ✅ "I'll add validation to all form fields — email (format), password (strength), username (length/characters), phone (format). Both client and server. Sound right?"
User: "We should handle API errors better, e.g., the 401 on the login page."
❌ Only handles 401 on login page. ✅ "Structured error handling across the app. Login: 401, 429, 500, network failures. Same pattern on signup, password reset, settings — they share the API error surface."