[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GNHTFEKCG6X5Q0VCH0T2C1":3,"skill-same:01M6GNHTFEKCG6X5Q0VCH0T2C1":94},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":25,"linkOnly":26,"markdownContent":27,"markdownBody":28,"frontMatter":29,"refName":31,"commitSha":32,"skillDirectory":33,"forksCount":34,"repositoryHtmlUrl":35,"repositoryHomepageUrl":6,"ownerHtmlUrl":36,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":37,"install":38,"resources":51},"01M6GNHTFEKCG6X5Q0VCH0T2C1","write",null,"Use when producing newsletters, articles, reports, shorts, or social content","unclejobs-ai\u002Fsecond-claude-code","unclejobs-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F150198827?v=4","01M6GNFYGQ7354R1N04YF1B269","Unclejobs","01M6GNFYNCQEKYTVX572HB0F26",41,"MIT","https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fwrite\u002FSKILL.md",[],[5,19,20,21,22,23,24],"content","social content","use","reports","social","false","2026-11-10 10:12:30",false,"---\nname: write\ndescription: \"Use when producing newsletters, articles, reports, shorts, or social content\"\neffort: high\nuser-invocable: false\n---\n\n## Iron Law\n\n> **Never publish content without research and review.**\n\n## Red Flags\n\n- \"I'll skip the research step, I know enough about this topic\" → STOP, because writing without sources falls back to training knowledge silently — warn the user or provide `--input`.\n- \"The review found issues but they're minor, ship it\" → STOP, because Critical and Major findings must be addressed before output — review is mandatory, not advisory.\n- \"I'll figure out the format as I go\" → STOP, because the format spec file must be loaded before drafting — writing without it produces structure drift.\n- \"This is only 800 words but it covers everything\" → STOP, because format minimums (newsletter 10000, article 4000, report 5000 chars of body) are hard rules — negotiate length with the user, never silently truncate.\n- \"The voice doesn't matter for this piece\" → STOP, because tone inconsistency is the top reader-trust killer — load the voice guide and verify the voice checklist before finalizing.\n\n# Write\n\nProduce content with automatic research and review unless the caller explicitly skips those steps.\n\n## When to Use\n\n- The user asks for a draft, article, newsletter, report, short-form script, or social post\n- Another skill needs polished written output\n\n## Workflow\n\n1. Run `\u002Fscc:research` UNLESS `--skip-research` flag is set OR source material is already provided via `--input`. **Guard**: If `--skip-research` is set but no `--input` is provided and no source material exists in the conversation, warn the user: \"No source material provided. Output will rely on training knowledge only. Continue?\" Do NOT silently fall back to training knowledge.\n2. Load format spec AND voice guide: read `references\u002Fformats\u002F{format}.md` (required — abort if missing) and `references\u002Fvoice-guides\u002F{voice}.md` (recommended). If the voice guide file doesn't exist, proceed using the default voice characteristics from the Voices table mapping below.\n3. Draft content following loaded format spec and voice constraints.\n4. Run `\u002Fscc:review --preset quick` UNLESS `--skip-review` flag is set. This step is MANDATORY by default.\n5. Address all Critical and Major review findings. Re-read the review output and apply fixes.\n\n## Options\n\n| Flag | Values | Default |\n|------|--------|---------|\n| `--format` | `newsletter\\|article\\|shorts\\|report\\|social\\|card-news` | `article` |\n| `--voice` | `peer-mentor\\|expert\\|casual` | format-specific |\n| `--publish` | `notion\\|file` | `file` |\n| `--skip-research` | flag | off |\n| `--skip-review` | flag | off |\n| `--lang` | `ko\\|en` | `ko` |\n| `--input` | file path | none |\n| `--constraints` | comma-separated strings | none |\n\n`--constraints`: Review findings injected as hard requirements for this draft. Each entry is enforced as a non-negotiable rule during drafting and is not open to negotiation with the user. Passed automatically by the PDCA Act→Do route; can also be supplied manually.\n\nWhen `--input` is provided (or when called from a pipeline with `input_from`), the file content is injected as source context and `--skip-research` is implied.\n\n## Soul-Aware Voice Resolution\n\nVoice is resolved in this priority order:\n1. `--voice` flag (explicit override — always wins)\n2. `## Tone Rules` in `.data\u002Fsoul\u002FSOUL.md` (personal preferences — merge with voice guide)\n3. `.data\u002Fsoul\u002Ftemplates\u002FSTYLE.md` defaults (bilingual baseline)\n4. Format voice guide from the Voices table below\n\nIf `.data\u002Fsoul\u002FSOUL.md` exists, read its `## Tone Rules` section and treat those rules as non-negotiable constraints on top of the selected voice guide. Soul tone rules override format defaults but never override an explicit `--voice` flag.\n\n## Voices\n\n| Voice | Default For |\n|-------|-------------|\n| `peer-mentor` | newsletter |\n| `expert` | report, article |\n| `casual` | shorts, social, card-news |\n\n## Voice Checklist\n\nBefore finalizing, verify:\n- [ ] At least one first-person example (peer-mentor) OR authoritative citation (expert) OR conversational aside (casual)\n- [ ] Tone is consistent throughout — no voice mixing\n- [ ] CTA present for shorts\u002Fsocial formats\n\n## Format Rules\n\n- `newsletter`: 6-stage arc, minimum 10000 chars of body, at least 2 research data points\n- `article`: minimum 4000 chars of body\n- `report`: minimum 5000 chars of body with numbered recommendations\n- `shorts`: around 1800 chars with a mandatory CTA\n- `social`: platform-optimized short post\n- `card-news`: slide-by-slide narrative with visual direction\n\n## Length Negotiation\n\nWhen user-specified length conflicts with format minimums:\n1. Inform the user: \"Article format minimum is 4000 chars, you requested ~800.\"\n2. Offer alternatives: switch to `shorts` or `social` format, OR keep `article` at full length.\n3. If user insists on short article, respect user intent but note the override in output metadata.\n\nNever silently truncate or silently exceed the user's request.\n\n## Auto-Save\n\nAfter the review step (or after drafting if `--skip-review`), save the final content:\n\n- Path: `.captures\u002Fwrite-{format}-{slug}-{YYYY-MM-DD}.md`\n- `{slug}` = topic lowercased, spaces to hyphens, max 40 chars\n- Write the full content using the Write tool. Do NOT skip this step.\n- Tell the user the saved path.\n\nWhen `--publish notion` is set: requires a configured Notion MCP connection (`mcp__claude_ai_Notion__notion-create-pages`). Create a Notion page with the content, then save the local .md file. If Notion MCP is not available, warn the user and save to file only.\n\n## Gotchas\n\n- Do not skip research unless real sources are already supplied.\n- Do not start writing before loading the format spec file.\n- Do not output content without running the review step (unless `--skip-review` is explicitly set).\n- Do not miss the CTA in shorts or conclusions.\n- Do not ship the reviewed version without addressing Critical and Major issues. Minor issues may be deferred.\n- Severity levels follow the shared taxonomy: **Critical** (ship-blocking), **Major** (significant gap), **Minor** (polish). Same as `\u002Fscc:review`.\n\n## Subagents\n\n```yaml\nwriter: { model: opus, constraint: \"follow format rules, voice, and length minimums\" }\neditor: { model: opus, constraint: \"address all Critical and Major review items\" }\n```\n","## Iron Law\n\n> **Never publish content without research and review.**\n\n## Red Flags\n\n- \"I'll skip the research step, I know enough about this topic\" → STOP, because writing without sources falls back to training knowledge silently — warn the user or provide `--input`.\n- \"The review found issues but they're minor, ship it\" → STOP, because Critical and Major findings must be addressed before output — review is mandatory, not advisory.\n- \"I'll figure out the format as I go\" → STOP, because the format spec file must be loaded before drafting — writing without it produces structure drift.\n- \"This is only 800 words but it covers everything\" → STOP, because format minimums (newsletter 10000, article 4000, report 5000 chars of body) are hard rules — negotiate length with the user, never silently truncate.\n- \"The voice doesn't matter for this piece\" → STOP, because tone inconsistency is the top reader-trust killer — load the voice guide and verify the voice checklist before finalizing.\n\n# Write\n\nProduce content with automatic research and review unless the caller explicitly skips those steps.\n\n## When to Use\n\n- The user asks for a draft, article, newsletter, report, short-form script, or social post\n- Another skill needs polished written output\n\n## Workflow\n\n1. Run `\u002Fscc:research` UNLESS `--skip-research` flag is set OR source material is already provided via `--input`. **Guard**: If `--skip-research` is set but no `--input` is provided and no source material exists in the conversation, warn the user: \"No source material provided. Output will rely on training knowledge only. Continue?\" Do NOT silently fall back to training knowledge.\n2. Load format spec AND voice guide: read `references\u002Fformats\u002F{format}.md` (required — abort if missing) and `references\u002Fvoice-guides\u002F{voice}.md` (recommended). If the voice guide file doesn't exist, proceed using the default voice characteristics from the Voices table mapping below.\n3. Draft content following loaded format spec and voice constraints.\n4. Run `\u002Fscc:review --preset quick` UNLESS `--skip-review` flag is set. This step is MANDATORY by default.\n5. Address all Critical and Major review findings. Re-read the review output and apply fixes.\n\n## Options\n\n| Flag | Values | Default |\n|------|--------|---------|\n| `--format` | `newsletter\\|article\\|shorts\\|report\\|social\\|card-news` | `article` |\n| `--voice` | `peer-mentor\\|expert\\|casual` | format-specific |\n| `--publish` | `notion\\|file` | `file` |\n| `--skip-research` | flag | off |\n| `--skip-review` | flag | off |\n| `--lang` | `ko\\|en` | `ko` |\n| `--input` | file path | none |\n| `--constraints` | comma-separated strings | none |\n\n`--constraints`: Review findings injected as hard requirements for this draft. Each entry is enforced as a non-negotiable rule during drafting and is not open to negotiation with the user. Passed automatically by the PDCA Act→Do route; can also be supplied manually.\n\nWhen `--input` is provided (or when called from a pipeline with `input_from`), the file content is injected as source context and `--skip-research` is implied.\n\n## Soul-Aware Voice Resolution\n\nVoice is resolved in this priority order:\n1. `--voice` flag (explicit override — always wins)\n2. `## Tone Rules` in `.data\u002Fsoul\u002FSOUL.md` (personal preferences — merge with voice guide)\n3. `.data\u002Fsoul\u002Ftemplates\u002FSTYLE.md` defaults (bilingual baseline)\n4. Format voice guide from the Voices table below\n\nIf `.data\u002Fsoul\u002FSOUL.md` exists, read its `## Tone Rules` section and treat those rules as non-negotiable constraints on top of the selected voice guide. Soul tone rules override format defaults but never override an explicit `--voice` flag.\n\n## Voices\n\n| Voice | Default For |\n|-------|-------------|\n| `peer-mentor` | newsletter |\n| `expert` | report, article |\n| `casual` | shorts, social, card-news |\n\n## Voice Checklist\n\nBefore finalizing, verify:\n- [ ] At least one first-person example (peer-mentor) OR authoritative citation (expert) OR conversational aside (casual)\n- [ ] Tone is consistent throughout — no voice mixing\n- [ ] CTA present for shorts\u002Fsocial formats\n\n## Format Rules\n\n- `newsletter`: 6-stage arc, minimum 10000 chars of body, at least 2 research data points\n- `article`: minimum 4000 chars of body\n- `report`: minimum 5000 chars of body with numbered recommendations\n- `shorts`: around 1800 chars with a mandatory CTA\n- `social`: platform-optimized short post\n- `card-news`: slide-by-slide narrative with visual direction\n\n## Length Negotiation\n\nWhen user-specified length conflicts with format minimums:\n1. Inform the user: \"Article format minimum is 4000 chars, you requested ~800.\"\n2. Offer alternatives: switch to `shorts` or `social` format, OR keep `article` at full length.\n3. If user insists on short article, respect user intent but note the override in output metadata.\n\nNever silently truncate or silently exceed the user's request.\n\n## Auto-Save\n\nAfter the review step (or after drafting if `--skip-review`), save the final content:\n\n- Path: `.captures\u002Fwrite-{format}-{slug}-{YYYY-MM-DD}.md`\n- `{slug}` = topic lowercased, spaces to hyphens, max 40 chars\n- Write the full content using the Write tool. Do NOT skip this step.\n- Tell the user the saved path.\n\nWhen `--publish notion` is set: requires a configured Notion MCP connection (`mcp__claude_ai_Notion__notion-create-pages`). Create a Notion page with the content, then save the local .md file. If Notion MCP is not available, warn the user and save to file only.\n\n## Gotchas\n\n- Do not skip research unless real sources are already supplied.\n- Do not start writing before loading the format spec file.\n- Do not output content without running the review step (unless `--skip-review` is explicitly set).\n- Do not miss the CTA in shorts or conclusions.\n- Do not ship the reviewed version without addressing Critical and Major issues. Minor issues may be deferred.\n- Severity levels follow the shared taxonomy: **Critical** (ship-blocking), **Major** (significant gap), **Minor** (polish). Same as `\u002Fscc:review`.\n\n## Subagents\n\n```yaml\nwriter: { model: opus, constraint: \"follow format rules, voice, and length minimums\" }\neditor: { model: opus, constraint: \"address all Critical and Major review items\" }\n```\n",{"name":5,"effort":30,"description":7,"user-invocable":26},"high","main","3e2938e2698dc6fc652571205aad03aa1205ec3d","skills\u002Fwrite",9,"https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code","https:\u002F\u002Fgithub.com\u002Funclejobs-ai","2026-11-10 10:15:09",{"source":8,"skillName":5,"commands":39,"prompt":49,"zipAvailable":50},[40,43,46],{"tool":41,"command":42},"npx","npx skills add unclejobs-ai\u002Fsecond-claude-code --skill write",{"tool":44,"command":45},"bunx","bunx skills add unclejobs-ai\u002Fsecond-claude-code --skill write",{"tool":47,"command":48},"pnpm","pnpm dlx skills add unclejobs-ai\u002Fsecond-claude-code --skill write","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fwrite\u002FSKILL.md",true,[52,58,62,66,70,74,78,82,86,90],{"path":53,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":57},"gotchas.md","REFERENCE","参考文档",938,"https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fwrite\u002Fgotchas.md",{"path":59,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":60,"sourceHtmlUrl":61},"references\u002Fformats\u002Farticle.md",758,"https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fwrite\u002Freferences\u002Fformats\u002Farticle.md",{"path":63,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":64,"sourceHtmlUrl":65},"references\u002Fformats\u002Fcard-news.md",590,"https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fwrite\u002Freferences\u002Fformats\u002Fcard-news.md",{"path":67,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":68,"sourceHtmlUrl":69},"references\u002Fformats\u002Fnewsletter.md",854,"https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fwrite\u002Freferences\u002Fformats\u002Fnewsletter.md",{"path":71,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":72,"sourceHtmlUrl":73},"references\u002Fformats\u002Freport.md",773,"https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fwrite\u002Freferences\u002Fformats\u002Freport.md",{"path":75,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":76,"sourceHtmlUrl":77},"references\u002Fformats\u002Fshorts.md",747,"https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fwrite\u002Freferences\u002Fformats\u002Fshorts.md",{"path":79,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002Fformats\u002Fsocial.md",560,"https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fwrite\u002Freferences\u002Fformats\u002Fsocial.md",{"path":83,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fvoice-guides\u002Fcasual.md",536,"https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fwrite\u002Freferences\u002Fvoice-guides\u002Fcasual.md",{"path":87,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Fvoice-guides\u002Fexpert.md",537,"https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fwrite\u002Freferences\u002Fvoice-guides\u002Fexpert.md",{"path":91,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fvoice-guides\u002Fpeer-mentor.md",596,"https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fwrite\u002Freferences\u002Fvoice-guides\u002Fpeer-mentor.md",[95,112,124,135,148,162],{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":106,"publishedAt":25},"01M6GNHP58KN60BQ8T7QXCC43D","workflow","Use when chaining multiple \u002Fscc commands into a reusable workflow","https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow\u002FSKILL.md",[101],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[97,107,21,108,109,24,110,111],"chaining","reusable","commands","scc","true",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":25},"01M6GNHHQZJG8AVTCYPYPFYTNE","translate","Use when translating content between English and Korean with formatting preservation","https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Ftranslate\u002FSKILL.md",[],[114,119,19,21,120,121,24,122,123,111],"preservation","korean","formatting","english","with",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":25},"01M6GNHD52AQE5YCZKRK6D71ZX","soul","Use when observing user patterns and synthesizing a persistent identity profile","https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fsoul\u002FSKILL.md",[],[126,131,21,132,24,111,133,134],"profile","patterns","identity","user",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":25},"01M6GNH8AX5EGA8BWF2JTK5HR0","review","Use when benchmarking content, strategy, or code against a quality bar with parallel specialized reviewers","https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Freview\u002FSKILL.md",[],[137,142,143,19,144,145,146,147,21,24,123],"benchmarking","code","parallel","quality","specialized","strategy",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":157,"publishedAt":25},"01M6GNH4QFZP7H5KA12DR5PCNJ","research","Use when finding sources through iterative web exploration and synthesis","https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002FSKILL.md",[154],{"categoryNo":155,"categoryName":156,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000021","资料检索与研究",[150,158,159,21,160,161,24],"sources","web","Synthesis","exploration",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":168,"publishedAt":25},"01M6GNH1MYFXC7BP9MW004W6HG","refine","Use when improving a draft until it meets a review target — the improve step after Check","https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Frefine\u002FSKILL.md",[],[164,169,170,21,171,24,172,137],"improve","check","draft","it"]