[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D967929FP708ABD0RH5V8T":3,"skill-same:01M6D967929FP708ABD0RH5V8T":83},{"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":28,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":6,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M6D967929FP708ABD0RH5V8T","article-writing",null,"Write articles, guides, blog posts, tutorials, newsletter issues, and other long-form content in a distinctive voice derived from supplied examples or brand guidance. Use when the user wants polished written content longer than a paragraph, especially when voice consistency, structure, and credibility matter.","oabdelmaksoud\u002FAgention","oabdelmaksoud","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F50699149?v=4","01M6D5CVVN778ZCDP1WHS816SP","Omar Abdelmaksoud","01M6D8A4TE76V3DCSH3D94VG1V",2,"MIT","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-archive\u002Fharness\u002F.cursor\u002Fskills\u002Farticle-writing\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"writing","article writing","article","issues","content","examples","voice","blog","brand","write","user","use","guidance","newsletter","structure","2026-11-10 10:12:30",false,"---\nname: article-writing\ndescription: Write articles, guides, blog posts, tutorials, newsletter issues, and other long-form content in a distinctive voice derived from supplied examples or brand guidance. Use when the user wants polished written content longer than a paragraph, especially when voice consistency, structure, and credibility matter.\norigin: ECC\n---\n\n# Article Writing\n\nWrite long-form content that sounds like a real person or brand, not generic AI output.\n\n## When to Activate\n\n- drafting blog posts, essays, launch posts, guides, tutorials, or newsletter issues\n- turning notes, transcripts, or research into polished articles\n- matching an existing founder, operator, or brand voice from examples\n- tightening structure, pacing, and evidence in already-written long-form copy\n\n## Core Rules\n\n1. Lead with the concrete thing: example, output, anecdote, number, screenshot description, or code block.\n2. Explain after the example, not before.\n3. Prefer short, direct sentences over padded ones.\n4. Use specific numbers when available and sourced.\n5. Never invent biographical facts, company metrics, or customer evidence.\n\n## Voice Capture Workflow\n\nIf the user wants a specific voice, collect one or more of:\n- published articles\n- newsletters\n- X \u002F LinkedIn posts\n- docs or memos\n- a short style guide\n\nThen extract:\n- sentence length and rhythm\n- whether the voice is formal, conversational, or sharp\n- favored rhetorical devices such as parentheses, lists, fragments, or questions\n- tolerance for humor, opinion, and contrarian framing\n- formatting habits such as headers, bullets, code blocks, and pull quotes\n\nIf no voice references are given, default to a direct, operator-style voice: concrete, practical, and low on hype.\n\n## Banned Patterns\n\nDelete and rewrite any of these:\n- generic openings like \"In today's rapidly evolving landscape\"\n- filler transitions such as \"Moreover\" and \"Furthermore\"\n- hype phrases like \"game-changer\", \"cutting-edge\", or \"revolutionary\"\n- vague claims without evidence\n- biography or credibility claims not backed by provided context\n\n## Writing Process\n\n1. Clarify the audience and purpose.\n2. Build a skeletal outline with one purpose per section.\n3. Start each section with evidence, example, or scene.\n4. Expand only where the next sentence earns its place.\n5. Remove anything that sounds templated or self-congratulatory.\n\n## Structure Guidance\n\n### Technical Guides\n- open with what the reader gets\n- use code or terminal examples in every major section\n- end with concrete takeaways, not a soft summary\n\n### Essays \u002F Opinion Pieces\n- start with tension, contradiction, or a sharp observation\n- keep one argument thread per section\n- use examples that earn the opinion\n\n### Newsletters\n- keep the first screen strong\n- mix insight with updates, not diary filler\n- use clear section labels and easy skim structure\n\n## Quality Gate\n\nBefore delivering:\n- verify factual claims against provided sources\n- remove filler and corporate language\n- confirm the voice matches the supplied examples\n- ensure every section adds new information\n- check formatting for the intended platform\n","# Article Writing\n\nWrite long-form content that sounds like a real person or brand, not generic AI output.\n\n## When to Activate\n\n- drafting blog posts, essays, launch posts, guides, tutorials, or newsletter issues\n- turning notes, transcripts, or research into polished articles\n- matching an existing founder, operator, or brand voice from examples\n- tightening structure, pacing, and evidence in already-written long-form copy\n\n## Core Rules\n\n1. Lead with the concrete thing: example, output, anecdote, number, screenshot description, or code block.\n2. Explain after the example, not before.\n3. Prefer short, direct sentences over padded ones.\n4. Use specific numbers when available and sourced.\n5. Never invent biographical facts, company metrics, or customer evidence.\n\n## Voice Capture Workflow\n\nIf the user wants a specific voice, collect one or more of:\n- published articles\n- newsletters\n- X \u002F LinkedIn posts\n- docs or memos\n- a short style guide\n\nThen extract:\n- sentence length and rhythm\n- whether the voice is formal, conversational, or sharp\n- favored rhetorical devices such as parentheses, lists, fragments, or questions\n- tolerance for humor, opinion, and contrarian framing\n- formatting habits such as headers, bullets, code blocks, and pull quotes\n\nIf no voice references are given, default to a direct, operator-style voice: concrete, practical, and low on hype.\n\n## Banned Patterns\n\nDelete and rewrite any of these:\n- generic openings like \"In today's rapidly evolving landscape\"\n- filler transitions such as \"Moreover\" and \"Furthermore\"\n- hype phrases like \"game-changer\", \"cutting-edge\", or \"revolutionary\"\n- vague claims without evidence\n- biography or credibility claims not backed by provided context\n\n## Writing Process\n\n1. Clarify the audience and purpose.\n2. Build a skeletal outline with one purpose per section.\n3. Start each section with evidence, example, or scene.\n4. Expand only where the next sentence earns its place.\n5. Remove anything that sounds templated or self-congratulatory.\n\n## Structure Guidance\n\n### Technical Guides\n- open with what the reader gets\n- use code or terminal examples in every major section\n- end with concrete takeaways, not a soft summary\n\n### Essays \u002F Opinion Pieces\n- start with tension, contradiction, or a sharp observation\n- keep one argument thread per section\n- use examples that earn the opinion\n\n### Newsletters\n- keep the first screen strong\n- mix insight with updates, not diary filler\n- use clear section labels and easy skim structure\n\n## Quality Gate\n\nBefore delivering:\n- verify factual claims against provided sources\n- remove filler and corporate language\n- confirm the voice matches the supplied examples\n- ensure every section adds new information\n- check formatting for the intended platform\n",{"name":5,"origin":49,"description":7},"ECC","main","a318f48de3c5718e8ea2e9f6fae7790e8a759e85","upstream-archive\u002Fharness\u002F.cursor\u002Fskills\u002Farticle-writing",0,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fo-abdelmaksoud\u002F","Full-Stack Engineer | AI Systems Architect | Building autonomous multi-agent systems","2026-03-08 21:23:03",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add oabdelmaksoud\u002FAgention --skill article-writing",{"tool":65,"command":66},"bunx","bunx skills add oabdelmaksoud\u002FAgention --skill article-writing",{"tool":68,"command":69},"pnpm","pnpm dlx skills add oabdelmaksoud\u002FAgention --skill article-writing","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-archive\u002Fharness\u002F.cursor\u002Fskills\u002Farticle-writing\u002FSKILL.md",true,[73,79],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fnarrative-frameworks.md","REFERENCE","参考文档",10442,"https:\u002F\u002Fgithub.com\u002Fdahaliztupe-sketch\u002FKalmeron-Two\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fc-level-advisor\u002Finternal-narrative\u002Freferences\u002Fnarrative-frameworks.md",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"templates\u002Fall-hands-template.md",3778,"https:\u002F\u002Fgithub.com\u002Fdahaliztupe-sketch\u002FKalmeron-Two\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fc-level-advisor\u002Finternal-narrative\u002Ftemplates\u002Fall-hands-template.md",[84,106,120,149,175,195],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":93,"publishedAt":44},"01M6G2QFCBNBYAJF2KTK85G9A6","visa-doc-translate","Translate visa application documents (images) to English and create a bilingual PDF with original and translation","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fvisa-doc-translate\u002FSKILL.md",[90],{"categoryNo":91,"categoryName":92,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",[94,95,96,97,98,99,100,101,102,103,104,105],"translate","doc","visa doc translate","bilingual","with","english","application","PDF","translation","documents","create","images",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":44},"01M6G2QB09TSK6BY4ME5X20EVQ","verification-loop","A comprehensive verification system for Claude Code sessions.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fverification-loop\u002FSKILL.md",[],[113,114,115,116,117,118,119],"verification","loop","verification loop","sessions","code","claude code sessions","system",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":135,"publishedAt":44},"01M6G2Q6V2F7G03VAAF27FXPJR","tdd-workflow","Use this skill when writing new features, fixing bugs, or refactoring code. Enforces test-driven development with 80%+ coverage including unit, integration, and E2E tests.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Ftdd-workflow\u002FSKILL.md",[126,129,132],{"categoryNo":127,"categoryName":128,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":130,"categoryName":131,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":133,"categoryName":134,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师",[136,137,138,40,139,140,141,142,143,117,144,145,146,147,98,148,29],"workflow","tdd","tdd workflow","unit","coverage","refactoring","e2e","integration","development","e2e tests","tests","driven","test",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":155,"publishedAt":44},"01M6G2Q359YJRWAR2PFCEQAXF3","swiftui-patterns","SwiftUI architecture patterns, state management with @Observable, view composition, navigation, performance optimization, and modern iOS\u002FmacOS UI best practices.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswiftui-patterns\u002FSKILL.md",[],[156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,98],"patterns","swiftui","swiftui patterns","architecture","macos","performance","state management","best practices","state","ui","Optimization","ios","architecture patterns","Composition","performance optimization","view","management","swiftui architecture","navigation",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":182,"publishedAt":44},"01M6G2PY8B2FWZTWPZ84H83Y7C","swift-protocol-di-testing","Protocol-based dependency injection for testable Swift code — mock file system, network, and external APIs using focused protocols and Swift Testing.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-protocol-di-testing\u002FSKILL.md",[181],{"categoryNo":127,"categoryName":128,"taxonomyType":21,"taxonomyTypeDesc":22},[183,184,185,186,117,187,188,189,190,119,191,192,193,194],"swift protocol di testing","protocol","swift","testing","protocols","file","network","injection","dependency","swift testing","dependency injection","mock",{"skillNo":196,"name":197,"nameZh":6,"description":198,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":199,"categories":200,"keywords":201,"publishedAt":44},"01M6G2PSCN2GXV9FFZDRRRWVB6","swift-concurrency-6-2","Swift 6.2 Approachable Concurrency — single-threaded by default, @concurrent for explicit background offloading, isolated conformances for main actor types.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-concurrency-6-2\u002FSKILL.md",[],[202,203,204,185,205,50,206],"concurrency","swift concurrency","swift concurrency 6 2","default","types"]