From thinking-frameworks-skills
Converts thematic post clusters into named section proposals with one-sentence promises, fit confidence ratings, borderline flags, and rejection reasons. Use for clusters with ≥3 posts.
npx claudepluginhub lyndonkl/claude --plugin thinking-frameworks-skillsThis skill uses the workspace's default tool permissions.
```
Generates 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.
Per qualifying cluster:
- [ ] Step 1: Name the cluster (working name from centroid codes)
- [ ] Step 2: Call write-section-promise for the one-sentence promise
- [ ] Step 3: Score each member post: tight | fair | borderline
- [ ] Step 4: Check non-overlap against existing section-map.md and other proposals this run
- [ ] Step 5: Assign fit_confidence:
- high: ≥5 tight-fit posts + strong cohesion + unambiguous non-overlap
- medium: 3-4 posts with mixed fit + narrowing promise
- low: borderline throughout; defer
- provisional: confident enough to name, uncertain enough to need probation
- [ ] Step 6: Write proposal block with reasons_to_reject (steelman the case against)
proposal:
name: "{Human name}"
slug: {kebab-case}
promise: "{one sentence}"
fit_confidence: high | medium | low | provisional
supporting_posts: [{slug, fit}]
borderline_posts: [{slug, reason}]
non_overlap_check: "Distinct from {other section} because..."
reasons_to_reject: "Two of these posts also fit {other section}. If those migrate, cluster drops to 3 posts and becomes marginal."