# SuggestSkills

Proposes which new skills to build from work history and frustration signals...

- Repository: https://github.com/danielmiessler/LifeOS (19669 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-28
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add danielmiessler/LifeOS --skill SuggestSkills -g -a claude-code -y`
Codex: `npx skills add danielmiessler/LifeOS --skill SuggestSkills -g -a codex -y`
Cursor: `npx skills add danielmiessler/LifeOS --skill SuggestSkills -g -a cursor -y`
Gemini CLI: `npx skills add danielmiessler/LifeOS --skill SuggestSkills -g -a gemini-cli -y`

## Description

Proposes which new skills to build from work history and frustration signals; read-only, it hands a ranked shortlist to CreateSkill. USE WHEN should I create a skill, what skills do I need, suggest skills, skill gap, based on my recent work, am I missing a skill, what should I build. NOT FOR creating, validating, or optimizing an individual skill (CreateSkill).

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# SuggestSkills, what should I build next?

A read-only analytics pass over your own work. It answers one question: given what you have actually been doing and where you have been frustrated, is there a recurring problem that deserves its own skill and does not have one yet? It proposes; you decide; `CreateSkill` builds. It has no capability to create or edit a skill, by design.

## Ideal State

- Every proposal on the shortlist traces to recorded evidence (sessions, Errata frustration rows, skill-gap detections) from one tool-built corpus, so a second run over the same window judges the same evidence.
- Gaps hiding under nominally covered topics surface: frustration outweighs topic frequency, and coverage means the discipline is handled, not that a topic shares a keyword.
- The pass stays read-only: no skill is created or edited, and an accepted proposal reaches CreateSkill only as a separate, human-approved step.

## Intent Routing

| Intent | Trigger | File |
|--------|---------|------|
| **Scan** | "what skills should I build", "skill gap", "suggest skills", "am I missing a skill" | `Intents/Scan.md` |

## Data & Config

The skill reads no config file. `Tools/CollectSignals.ts` takes everything from flags and env vars, and each store resolves flag > env > the first conventional default that exists under the root:

- Root: `--root <dir>`, else `SKILLSCAN_MEMORY_ROOT`, else `$HOME/.claude`.
- Window and cut: `--days <n>` (default 45, 1-3650) and `--max-rating <n>` (default 4, 1-10).
- Stores: `--ratings <dir>` / `SKILLSCAN_RATINGS_FILE` (the Errata ledger directory), `--work <dir>` / `SKILLSCAN_WORK_DIR`, `--skill-gaps <file>` / `SKILLSCAN_SKILL_GAPS_FILE`, `--skills <dir>` / `SKILLSCAN_SKILLS_DIR`, and `--loops <dir>` / `SKILLSCAN_LOOPS_DIR` (opt-in, no default).

The full flag table is in `Intents/Scan.md` § Tool contract.

## Gotchas

- None span intents yet. The collector's gotchas live in `Intents/Scan.md` § Gotchas.

## Examples

The rest: https://github.com/danielmiessler/LifeOS/blob/HEAD/LifeOS/install/skills/SuggestSkills/SKILL.md
