From release
Session title generation, evaluation, and optimization. Auto-generates context-aware titles via Stop hook. Includes quality evaluation (pattern checks, LLM judge), GEPA-inspired prompt evolution, golden dataset tooling, and interactive title rating for training data collection.
npx claudepluginhub fairchild/dotclaude --plugin skill-creatorThis skill uses the workspace's default tool permissions.
This skill owns the entire session title lifecycle:
data/README.mdpackage.jsonreferences/adaptive-title-plan.mdreferences/scoring-rubric.mdscripts/eval-quality.tsscripts/evolve-prompt.tsscripts/extract-candidates.tsscripts/generate-core.test.tsscripts/generate-core.tsscripts/generate.tsscripts/report.tsscripts/run-eval.tsscripts/schema.tsscripts/store.tsGenerates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
This skill owns the entire session title lifecycle:
(N) prefix.Session ends
--> Stop hook (hooks/stop.sh)
--> scripts/generate.ts (stdin: session_id, cwd, transcript_path)
--> generate-core.ts
1. extractSessionContext() -- parse transcript JSONL
2. evolveTitleWithContext() -- initial title or shift detection via Haiku
3. sanitizeTitle() -- strip preambles, enforce length
4. savePendingFeedback() -- append to title-feedback/pending.jsonl
All scripts support --help style flags. Run with bun.
| Script | Purpose |
|---|---|
generate.ts | Hook entry point. Reads JSON from stdin. |
generate-core.ts | Core module: context extraction, title generation, shift detection. |
generate-core.test.ts | Unit + integration tests. bun test scripts/generate-core.test.ts |
schema.ts | TitleFeedback types, prompt version constants. |
store.ts | JSONL persistence for pending/scored feedback. |
eval-quality.ts | Pattern checks + optional --judge LLM scoring. |
evolve-prompt.ts | GEPA evolution. --iterations N, --pareto-size N. |
extract-candidates.ts | Pull test cases from session transcripts. --limit N, --project NAME. |
run-eval.ts | Run golden dataset eval. --judge-model MODEL. |
report.ts | Generate report from latest eval results. --file PATH. |
Interactive rating workflow (invoke as /rate-title or manually):
~/.claude/title-feedback/scored.jsonl.The dual-perspective data enables DSPy optimization of both the judge prompt (learn to rate like the human) and the journalist prompt (generate titles humans rate highly).
| Score | Meaning |
|---|---|
| 5 | Perfect -- specific, actionable, concise |
| 4 | Good -- minor phrasing improvements possible |
| 3 | Acceptable -- gets the gist but generic |
| 2 | Poor -- too vague or wrong focus |
| 1 | Bad -- completely off-base or misleading |
See references/scoring-rubric.md for detailed criteria.
Runtime data (gitignored, at ~/.claude/title-feedback/):
pending.jsonl -- written by Stop hookscored.jsonl -- written by /rate-titleEvaluation data (gitignored, at skills/session-titles/data/):
candidates.jsonl -- extracted test casesgolden.jsonl -- curated with ideal titlesresults/ -- timestamped eval outputsbaseline-*.md, evolution-*.md -- quality reportsreferences/scoring-rubric.md -- 5-point rating criteriareferences/adaptive-title-plan.md -- Roadmap: phases, LanceDB vectors, DSPy optimization