>- Use when capturing ONE new idea the user voices and wants recorded — "save this idea", (one folder per idea) in your ideas repo, dedups against an index, optionally mirrors to a (use a dedicated extraction skill) and NOT for dated work tasks (use an issue tracker / the
npx skills add https://github.com/serejaris/personal-corp-skills --skill idea
Part of the Personal Corp framework — running a one-person business through AI agents.
One pipeline: your voice → a provenance-tracked folder in your ideas repo → (optional) an issue mirror on a GitHub Project view. The folder is the source of truth; everything else is a pointer to it.
This skill is self-contained — it inlines the folder structure, status enum, and provenance formats below. You don't need any external canon file.
manager skill. Ideas have no deadline; they're seeds.Before first use, define this in your project's CLAUDE.md:
## Idea Config
### Ideas repo path
Where idea folders live (one folder per idea):
- ideas_repo: ~/Projects/ideas
### Default author
Name written into `first_voiced_by` when the user doesn't say otherwise:
- default_author: Me
### GitHub mirror (optional)
Mirror each idea as an issue (added to a Project view filtered by `label:idea`):
- mirror_enabled: false
- owner: your-github-handle # only if mirror_enabled: true
- ideas_repo_name: ideas # GitHub repo name for the issue, only if mirror_enabled: true
- project_number: <your Project number> # only if mirror_enabled: true
(if mirror_enabled is false, the skill only writes to the ideas repo — no issue, no Project)
No separate init skill needed — this section is the setup. If mirror_enabled is false, the GitHub Project step is skipped entirely; the idea still lives as a folder.
Ask at most one short question, and only if the idea's essence can't be extracted from the wording (what is it / for whom). Do NOT ask about mechanics, pricing, risks, or tech stack — capture the raw material as-is and write the gaps into next-steps.md as open questions. The question "how should I record it — issue / file / both?" is forbidden: the form is fixed by this skill. Never block on form.
idea.md frontmatter)seedling — just voiced, not yet worked onexploring — first research gathered, market.md filledbuilding — landing / pilot / prototype in progresslive — a public artifact existsparked — set aside, reason in next-steps.mddropped — closed, reason in next-steps.mdA freshly captured idea is always seedling.
sources.md)Every idea needs at least one source. Each sighting is one row. Genericize the source kind — no real internal paths:
| Source kind | Format in sources.md |
|---|---|
| Meeting note | meeting note — {who/where}, {date} |
| CRM card | CRM card — {contact}, {date} |
| DM | DM — {channel}, {date} |
| Voice draft (solo) | voice draft, {date} |
| Reading / web | {url}, {date} |
| Direct capture | direct /idea invocation, session, {date} |
date — resolve the real date. Between 00:00–04:00, "today" means the previous calendar day.INDEX.md at the root of your ideas repo. Match is semantic, not string ("a board of advisors run on agents" ≈ advisory-agent-grounded-data). If unsure, open the candidate's idea.md to compare.sources.md,idea.md bump last_touch and increment sources_count (do NOT touch first_voiced),INDEX.md, commit, report. STOP. Do not create a new folder.ideas/YYYY-MM-DD-{slug}/ with the template files below.live-sales-coach-b2b, not b2b-product-1). The date prefix is the date of first capture — it never changes on later sightings.idea.md: title, status: seedling, first_voiced_by: {default_author from config unless user said otherwise}, an "Essence" of 1–2 sentences, and the raw verbatim wording preserved exactly as voiced. Interpretation, if any, goes in a separate section — never overwrite the raw wording.sources.md: one row for this sighting (see provenance formats).market.md is optional (leave the stub; fill only when researched).next-steps.md holds open questions and the "what next?" — this is where pricing/mechanics/stack gaps land.INDEX.md (format below). It's auto-generated — don't hand-edit individual rows; rewrite the whole file from the folders.mirror_enabled: true in config). The folder is the source of truth; the issue is just a pointer for board view. See "Project mirror" below.feat: idea {slug} (invoking this skill is consent to record; the ideas repo is private).#N (if mirrored), and the Project view link (if mirrored).Create these four files in ideas/YYYY-MM-DD-{slug}/. Keep them minimal — the folder is a seed, not a spec.
idea.md
---
title: {short human title}
status: seedling
first_voiced_by: {default_author}
first_voiced: {YYYY-MM-DD}
last_touch: {YYYY-MM-DD}
sources_count: 1
---
# {title}
## Essence
{1–2 sentences — what it is and for whom.}
## Raw wording
> {the idea exactly as voiced — verbatim, do not paraphrase}
## Interpretation (optional)
{any reading/expansion goes here — never inside Raw wording}
sources.md
# Sources
| Date | Who | Context | Reference |
|---|---|---|---|
| {YYYY-MM-DD} | {default_author} | first voiced | direct /idea invocation, session, {YYYY-MM-DD} |
market.md (optional stub)
# Market
_Not researched yet. Fill when status moves to `exploring`: analogues, demand signals, where it could fit._
next-steps.md
# Next steps
## Open questions
- {gaps you didn't ask about — mechanics, pricing, audience, stack}
## What next
- {landing? brainstorm? park? close? — leave blank if undecided}
INDEX.md is auto-generated — never hand-edit. Rewrite it whole from the current folders. Structure:
# Ideas index
Updated: {YYYY-MM-DD}
## Active ideas
| Slug | Status | First voiced | Sources count | Last touch |
|---|---|---|---|---|
| live-sales-coach-b2b | seedling | 2026-05-01 | 1 | 2026-05-01 |
## Parked / dropped
| Slug | Status | First voiced | Last touch |
|---|---|---|---|
## By status
- seedling: N
- exploring: N
- building: N
- live: N
- parked: N
- dropped: N
mirror_enabled: true)Each idea folder gets one issue mirror in the ideas repo, added to a GitHub Project view filtered by label:idea. The folder is the source of truth; the issue is a pointer for quick board scanning. Don't copy folder contents into the issue body.
Mirror format:
idea: {title}idea (the only label — don't invent others)ideas/{folder}/idea.md + one "Essence" paragraph + status + one provenance line. Nothing more.Commands (after creating a new idea folder):
url=$(gh issue create -R {owner}/{ideas_repo_name} \
--title "idea: {title}" \
--body "{body — link + essence + status + provenance}" \
--label idea)
# Add to the Project board (number from config), so it appears in the label:idea view
gh project item-add {project_number} --owner {owner} --url "$url"
On rename → update the issue title. On dropped → close the issue with a comment stating the reason. On a repeat sighting (step 2) → just add a one-line comment, no new issue.
If mirror_enabled is false, skip this whole section — the idea still lives correctly as a folder.
| Failure | Rule |
|---|---|
| Only an issue created, no folder | The folder owns the truth (provenance, sources); the issue is a pointer |
| Fat issue body with full architecture | Body = link + essence + status + provenance, never a copy of the folder |
| INDEX.md not read → duplicate of an existing idea | Dedup is mandatory; a repeat = a new source row, not a new folder |
| Issue not added to the Project (when mirror enabled) | Without item-add the label:idea view won't show it |
| Invented labels (monetization, etc.) | Only idea |
| Blocking question "issue / file / both?" | Form is fixed; max one question — and only about the essence |
| Raw idea rewritten into "architecture" | seedling = raw material verbatim; interpretation is a separate section |
item-add (when mirror enabled) or without commit → steps 5–6 not done.manager skill / your issue tracker, not an idea folder.Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.
Brainstorm and write high-retention short-form video and carousel content for TikTok, Reels, and YouTube Shorts. Use whenever someone wants viral hook ideas, a video script or outline, content concepts for a product or topic, or wants to critique and improve a draft hook or script. Works for any storytime, listicle, carousel, or meme. Produces several diverse hook options from proven patterns, structures scripts for retention (hook, escalation, payoff, CTA), and adapts to each platform. Pattern-based guidance grounded in how short-form tends to perform; it improves the odds, it does not guarantee virality."
Generate short-form video ideas at volume and stop the blank-page problem for good. Use whenever someone says they're stuck for ideas, asks for 20 TikTok ideas or Reels ideas or YouTube Shorts ideas for their niche, wants a content brainstorm, needs help building a content pillar system or content matrix, wants to turn one idea into 5 angles, asks what to post this week, or wants a real idea generator workflow instead of staring at a notes app. Runs the systems prolific creators actually use: pillars, mining (comments, Reddit, search autocomplete, competitor outliers), repurposing, evergreen vs trend balance. Pattern-based guidance grounded in how short-form ideation tends to work; never run out of ideas is the goal, virality is not promised.
| This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.
Create and publish concise Rivet launch or changelog posts through an approval-gated workflow, including release research, a required user-selected hero variation, local HTML-rendered social and technical images, an R2 hero upload, MDX authoring, a reviewed draft GitHub PR for manual merge, and a scheduled and verified Buffer thread for @rivet_dev. Use when asked to launch, announce, ship, or prepare and schedule a Rivet feature or release announcement.
This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.
Generate a daily digest of today's policy-authorized meetings and voice memos — key decisions, action items, and themes across available recordings. Use when the user asks "recap my day", "what happened in my meetings today", "daily summary", "what did I discuss today", "any action items from today", or wants a consolidated view of the day's conversations.
Generate a daily digest of today's policy-authorized meetings and voice memos — key decisions, action items, and themes across available recordings. Use when the user asks "recap my day", "what happened in my meetings today", "daily summary", "what did I discuss today", "any action items from today", or wants a consolidated view of the day's conversations.
Take serejaris/idea from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.