patterns
Skill304 starsChanged 2 months agoMITView on GitHub
Browse, search, and leverage recurring analytical patterns discovered across past analyses. Use this skill when users want to see what patterns have emerged from previous work, check if a current finding matches a known pattern, search for patterns by keyword or metric, view pattern details, understand established behavioral patterns in their data, or get reminded of recurring observations at session start. This skill is especially valuable when users say things like "what patterns have we seen?", "have we seen this behavior before?", "show me recurring patterns", "what's consistent in our data?", "any known patterns about [metric/segment]?", "search patterns for [keyword]", or during exploratory analysis when you want to contextualize new findings against historical observations. The skill manages pattern extraction automatically after each analysis archive, incrementing occurrence counts when findings match existing patterns and creating new pattern entries when the same behavior appears across multiple analyses. Always trigger this when users mention patterns, recurring behaviors, historical observations, or when a new finding might match something previously documented. Also consider triggering proactively at session start to remind users of established patterns in their dataset.
15 other projects use a version of this.
Adopted by
Most recently taken up by
- anthropics/claude-plugins-officialtheir own version, first seen Nov 8, 2026
- e-reitbauer/habitstheir own version, first seen Nov 8, 2026
- nklisch/skilltaptheir own version, first seen Nov 8, 2026
- tizonai/hyperuitheir own version, first seen Oct 9, 2026
- nklisch/krometrailtheir own version, first seen Sep 30, 2026
- eklavyagoyal/wingmantheir own version, first seen Sep 10, 2026
Other versions15 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 15
- anthropics/claude-plugins-official★ 46ksame name
- nklisch/claude-code-modes★ 116same name
- mycelium-hq/ai-brain-starter★ 50same name
- jmylchreest/aide★ 19same name
- zllovesuki/cloudflare-agent-skills★ 9same name
- nklisch/skills★ 8same name
- nklisch/skilltap★ 7same name
- Lukasbrujula/claude-code-framework★ 4same name
- nklisch/krometrail★ 3same name
- ffsshhttiikk/opencode-agents-skills★ 2same name
5 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 repository65 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- always-compareSkill
- analysis-designSkill
- analyst-coreSkill
- archaeologySkill
- archive-analysisSkill
- auth-preflightSkill
- businessSkill
- causalSkill
- chart-to-driveSkill
- close-the-loopSkill
- codex-reviewSkill
- compare-datasetsSkill
- connect-dataSkill
- connect-snowflakeSkill
- context-compareSkill
- context-traceSkill
- data-inspectSkill
- data-mapSkill
- data-profilingSkill
- data-quality-checkSkill
- datasetsSkill
- distribution-profilerSkill
- evalSkill
- evaluate-graderSkill
- experiment-briefSkill
- experimentSkill
- exploreSkill
- exportSkill
- forecastSkill
- google-doc-exportSkill
- google-slides-exportSkill
- guardrailsSkill
- historySkill
- improve-contextSkill
- knowledge-bootstrapSkill
- log-correctionSkill
- maintain-contextSkill
- metric-specSkill
- metricsSkill
- monitor-evalsSkill
- notion-exportSkill
- paceSkill
- question-framingSkill
- question-routerSkill
- reliabilitySkill
- resume-pipelineSkill
- run-pipelineSkill
- runsSkill
- score-analysisSkill
- session-handoffSkill
- setup-dev-contextSkill
- setup-notionSkill
- setupSkill
- setup-slackSkill
- setup-snowflakeSkill
- srm-checkSkill
- stakeholder-communicationSkill
- stress-testSkill
- switch-datasetSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
19 rules. 0 are common, 15 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 11 edited versions we read keep these.
15
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
- Distinctive: line 27
Before loading patterns, identify the active dataset:
- Very specific: line 29
Read .knowledge/active.yaml to get the active dataset name
- Distinctive: line 30
If the file doesn't exist or is empty, default to checking all datasets
- Distinctive: line 31
Use this dataset name when filtering patterns and referencing dataset-specific files
- Very specific: line 36
Check if .knowledge/analyses/_patterns.yaml exists:
- Distinctive: line 37
If it doesn't exist: "No patterns recorded yet.
- Distinctive: line 38
If it exists but is empty: "No patterns recorded yet.
- Very specific: line 39
If --global flag: also check and read .knowledge/global/cross_dataset_observations.yaml (same existence checks apply).
- Distinctive: line 56
Search across description, dimensions, metrics, tags
- Distinctive: line 57
Use flexible matching: include synonyms and related terms (e.g., "mobile" matches "device", "platform")
- Distinctive: line 59
If no matches: suggest related terms or broader searches
- Distinctive: line 60
Always explain why you found/didn't find matches
- Distinctive: line 73
Keep the empty-state response short and practical.
- Distinctive: line 79
Avoid lengthy explanations of how the pattern system works — users want quick answers when nothing exists yet.
- Distinctive: line 83
After each analysis archive (triggered by archive-analysis skill), scan the new analysis for potential patterns:
- Distinctive: line 87
If a finding matches an existing pattern → increment occurrences, update last_seen
- Distinctive: line 88
If a finding is new but could extend a pattern → add as evidence
- Distinctive: line 89
Look for NEW patterns:
- Very specific: line 93
Write updated patterns back to _patterns.yaml
“Common” is measured: kept by at least 6 in 10 of the 11 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
Skill: Patterns
Purpose
Browse and search recurring patterns discovered across analyses. Patterns are auto-extracted after each analysis archive and represent behaviors that appear consistently in the data.
When to Use
- User says
/patternsor "what patterns have we seen?" - During analysis, to check if a finding matches a known pattern
- At session start, to remind the user of established behaviors
Invocation
/patterns — list patterns for the active dataset
/patterns --global — list patterns across all datasets
/patterns search={term} — search patterns by keyword
/patterns {id} — show full details for a specific pattern
Instructions
Step 0: Determine Active Dataset
Before loading patterns, identify the active dataset:
- Read
.knowledge/active.yamlto get the active dataset name - If the file doesn't exist or is empty, default to checking all datasets
- Use this dataset name when filtering patterns and referencing dataset-specific files
This ensures you're searching patterns for the correct dataset and providing accurate context.
Step 1: Load Patterns
- Check if
.knowledge/analyses/_patterns.yamlexists:- If it doesn't exist: "No patterns recorded yet. The pattern system initializes after your first analysis is archived."
- If it exists but is empty: "No patterns recorded yet. Complete 2-3 analyses and recurring patterns will emerge."
- If
--globalflag: also check and read.knowledge/global/cross_dataset_observations.yaml(same existence checks apply). - Load pattern data from existing files.
Step 2: Execute Command
List patterns (/patterns):
- Filter to active dataset (unless
--global) - Sort by occurrences descending (most established first)
- Display as a table: type, description, occurrences, confidence, last seen
- Show total count
Show specific (/patterns {id}):
- Display: description, type, all evidence (with analysis IDs), dimensions, metrics, suggested investigation
- Offer: "Want to investigate this pattern further?"
Search (/patterns search={term}):
- Search across description, dimensions, metrics, tags
- Use flexible matching: include synonyms and related terms (e.g., "mobile" matches "device", "platform")
- Display matching patterns as a table
- If no matches: suggest related terms or broader searches
- Always explain why you found/didn't find matches
Global (/patterns --global):
- Include cross-dataset observations alongside per-dataset patterns
- Note which dataset each pattern was observed in
Step 3: Contextual Suggestions
After displaying patterns:
- "Want to check if {pattern} still holds in the current data?"
- "Want to use {pattern} as context for a new analysis?"
- "This pattern was last seen {N} days ago — may need revalidation."
For empty state (0 patterns): Keep the empty-state response short and practical. Cover:
- Why no patterns exist (need 2+ analyses with consistent findings)
- How many analyses are currently archived
- What happens after completing more analyses
- 1-2 suggested next actions
Avoid lengthy explanations of how the pattern system works — users want quick answers when nothing exists yet.
Pattern Extraction (Auto)
After each analysis archive (triggered by archive-analysis skill), scan the new analysis for potential patterns:
- Compare new findings to existing patterns:
- If a finding matches an existing pattern → increment occurrences, update last_seen
- If a finding is new but could extend a pattern → add as evidence
- Look for NEW patterns:
- Same metric behavior across 2+ analyses → candidate pattern
- Same segment consistently outperforming → candidate pattern
- Recurring anomaly at similar times → candidate pattern
- Write updated patterns back to
_patterns.yaml
Minimum 2 occurrences to create a pattern. Single-occurrence findings are just findings, not patterns.
Edge Cases
- No patterns: Suggest running more analyses
- Stale patterns (last_seen >60 days): Flag as potentially outdated
- Contradictory patterns: Flag and suggest investigation
- Too many patterns (>50): Show top 20 by occurrences, offer pagination
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.

