{"slug": "i-built-a-claude-code-skill-that-discovers-which-automations-to-build-by-mining", "title": "I built a Claude Code skill that discovers which automations to build — by mining my own work", "summary": "A developer built a self-improving skill for Claude Code that mines recent work history to discover which automations to build. The system scans git history, terminal sessions, and memory to identify repeated multi-step sequences, then packages high-confidence patterns into reusable tools. In testing, it surfaced a pattern repeated 50+ times that had not been abstracted, and correctly declined to package an already-existing workflow.", "body_md": "Most automation projects build *an* automation. This one builds a system that **discovers which automations to build** — by mining your own recent work — and then packages the high-confidence ones into reusable tools. It's a self-improving skill for [Claude Code](https://claude.com/claude-code).\n\nYou feel it but rarely measure it: the same multi-step sequence done by hand for the third time. A focused bug-fix → branch → conventional commit → PR cycle. A QA-sweep dispatch. A release deploy. Each repetition is a signal that an abstraction is missing — but nobody systematically *finds* those signals. They're scattered across git history, terminal sessions, and memory.\n\n`distill-workflows`\n\ndoes\n`distill-workflows`\n\nis a Claude Code skill that turns that scattered signal into reusable tooling, in one pass:\n\n`*.jsonl`\n\n) — repeated bash command patterns The diagram above maps the flow left-to-right: **Signal Sources → Scanner ( scan.sh) → Distill Engine → Packaging → Outputs**, with a\n\nA few design choices worth calling out:\n\nRun against its own repo, the scanner surfaced a pattern repeated **50+ times** that nobody had abstracted: a single-concern Android/Kotlin fix shipped as a small PR with the same conventions every time (branch naming, conventional commit scope, base branch, size limit, no AI attribution). The engine packaged it into an `android-fix-pr`\n\nskill — exactly the kind of convention layer the generic `commit`\n\n/`create-pr`\n\ntools don't encode.\n\nThe higher-frequency QA-sweep pattern was *also* detected, but the engine correctly declined to package it: it already existed as a parameterized workflow. Knowing when **not** to build is half the value.\n\n`SKILL.md`\n\nprocedure the agent follows.`scan.sh`\n\nsignal miner — `jq`\n\nover transcripts, `git log`\n\nshape analysis, `gps recall`\n\n, artifact inventory — emitting one structured report.`watchlist.md`\n\nledger for cross-session frequency.*Built with Claude Code. The core idea generalizes well beyond one repo: point a discovery loop at your own work history, score what repeats, and let the high-confidence patterns become tools.*", "url": "https://wpnews.pro/news/i-built-a-claude-code-skill-that-discovers-which-automations-to-build-by-mining", "canonical_source": "https://dev.to/pponali/i-built-a-claude-code-skill-that-discovers-which-automations-to-build-by-mining-my-own-work-8lp", "published_at": "2026-06-18 05:34:53+00:00", "updated_at": "2026-06-18 05:51:36.727531+00:00", "lang": "en", "topics": ["developer-tools", "artificial-intelligence", "ai-agents", "machine-learning", "ai-products"], "entities": ["Claude Code", "Anthropic", "Claude"], "alternates": {"html": "https://wpnews.pro/news/i-built-a-claude-code-skill-that-discovers-which-automations-to-build-by-mining", "markdown": "https://wpnews.pro/news/i-built-a-claude-code-skill-that-discovers-which-automations-to-build-by-mining.md", "text": "https://wpnews.pro/news/i-built-a-claude-code-skill-that-discovers-which-automations-to-build-by-mining.txt", "jsonld": "https://wpnews.pro/news/i-built-a-claude-code-skill-that-discovers-which-automations-to-build-by-mining.jsonld"}}