---
name: technical-skill-finder
description: Mine coding agent logs (Codex/Cursor/session histories and similar telemetry) to discover high-value candidate skills, then draft structured skill creation/reuse recommendations.
license: MIT
metadata:
  source: "https://github.com/vincentkoc/dotskills"
---

# Technical Skill Finder

## Purpose

Find recurring pain points from local agent logs and convert them into actionable skill candidates, reuse opportunities, or existing skill updates.

## When to use

- You want to discover missing technical skills from historical agent activity.
- You want reproducible criteria before creating a new skill.
- You want to validate whether an existing skill already covers the pattern.
- You want to include optional personal-signal sources (when authorized).

## Inputs

- `SCOPE` (required): repository paths, workspace, or tool domains to inspect.
- `SOURCES` (required): ordered source list to mine.
- `TIMEFRAME` (optional): default `all` unless constrained by user.
- `PRIVACY_POLICY` (required): explicit user direction for personal logs.
- `TOP_N` (optional): number of highest-priority candidates to return.

## Workflow

1. Initialize source set
   - `~/.codex/history.jsonl`
   - `~/.codex/archived_sessions/*.jsonl`
   - `~/.codex/sessions/*.jsonl` and `~/.codex/log/*` if present
   - Repository-specific telemetry in `AGENTS.md`/local docs when available
   - `Cursor` / `Codex` agent logs detected under known dotfiles directories
2. Normalize extraction signals
   - Parse stack traces and classify failure type (`auth`, `type-check`, `llm-error`, `git/ci`, `runtime`, `refactor-merge`, `test`)
   - Parse recurring command phrases (`rg`, `mypy`, `pytest`, `gh`, `git`, package-manager failures)
   - Record frequency, recency, and affected project context
3. Cluster signals
   - Group by: domain (python/js/rust/docs/tooling), command lineage, and error signature.
   - Deprioritize one-off sessions with low recurrence.
4. Map to existing skills
   - Compare candidate clusters with available skills by `name` and `description`.
   - If overlap is high, propose **skill update** path.
   - If no overlap, propose **new skill**.
5. Emit ranking output
   - Provide `impact`, `frequency`, `confidence`, `skill-fit`, and first-apply command set.
6. Produce minimal first-iteration artifacts for high-priority candidates
   - Candidate title + scope
   - Trigger phrase examples
   - Required inputs
   - Suggested workflow summary
   - Evidence snippets (line/file-level)
   - Suggested dependencies/tools (e.g., `jq`, `rg`, shell utilities, MCP resources)
7. Optional extension to personal-signal sources
   - Only after explicit approval to read personal channels.
   - If MCP is available and user has granted access, run MCP resource discovery and include message-signal-derived patterns.
   - Keep this opt-in and isolated from coding-signal output unless user requests a merged plan.

## Guardrails

- Never infer or emit private content from message logs unless explicitly permitted.
- Skip binary/corrupt files and summarize only parseable text sources.
- Prefer deterministic commands and small scripts over ad-hoc manual parsing.
- Always avoid proposing skills with unresolved operational context (credentials, environment, private URLs).
- If evidence is ambiguous, return `confidence: low` and request one more session sample.

## Outputs

- `skill_candidates.md`-style report in chat:
  - `reuse` candidates (existing skill can be extended)
  - `new` skill candidates (not yet covered)
  - top source anchors with references
  - recommended next action (create/update)

Read `references/sources.md` for source precedence.
Read `references/scorecard.md` for prioritization rules.
