[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6WRF3KP0K8BGE1XT5XB8EX6":3,"skill-same:01M6WRF3KP0K8BGE1XT5XB8EX6":88},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":64,"commitSha":65,"skillDirectory":66,"forksCount":67,"repositoryHtmlUrl":68,"repositoryHomepageUrl":69,"ownerHtmlUrl":70,"ownerBlogUrl":71,"ownerDescription":72,"updatedAt":73,"install":74,"resources":87},"01M6WRF3KP0K8BGE1XT5XB8EX6","writing-variety",null,"Keep batches of posts, replies, emails, ad angles or scripts from sounding alike, with AI-tell checks. Use for recurring writing jobs and batches.","Muvon\u002Foctomind-tap","Muvon","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F25336907?v=4","01M6DWA4KTRX4J73CW5CECKAD0","01M6DWA4QSWFGYE6WDMAMFF1WE",6,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Fwriting-variety\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"writing variety","writing","hooks","content marketing","variants","updates","posts","scripts","local","either","community","only","ads","access","Video","SET","server","batch","notes","support","2026-11-10 10:12:30",false,"---\nname: writing-variety\ntitle: \"Avoid Repeated AI Writing Patterns\"\ndescription: \"Keep batches of posts, replies, emails, ad angles or scripts from sounding alike, with AI-tell checks. Use for recurring writing jobs and batches.\"\nlicense: Apache-2.0\ncompatibility: \"Needs the variety capability: either the local variety server or the hosted unsame server. Network access only for unsame.\"\ndomains: content marketing sales video developer support community launch\nrules:\n  - content(variety)\n  - match(\\b(sound|read)s?\\s+(all\\s+)?the\\s+same\\b)\n  - match(\\bdifferent\\s+(angle|approach|opening)\\s+(for|on)\\s+(each|every)\\b)\n  - match(\\b(batch|series|week|month|set)\\s+of\\s+(posts|replies|emails|newsletters|articles|blog\\s+posts|scripts|ads|hooks|updates|release\\s+notes)\\b)\n  - match(\\bwrite\\s+(\\d+|ten|twenty|five|a\\s+few|several)\\s+(posts|replies|emails|articles|scripts|ads|hooks|variants)\\b)\n  - semantic(my posts all sound the same and I need each one to take a different approach)\n  - semantic(write a batch of replies without repeating the same opening)\n---\n\n## Overview\n\nUse this when one job produces many pieces for the same account or channel: a week of posts, a queue of replies, a blog series, a run of newsletters or outreach emails, a set of ad angles, a series of video scripts, release notes for every version. Written one at a time, such pieces drift into the same opening, the same length, and the same closing line. Before each piece, ask a variety tool which approach and form to use, write to it, and check the result. A single one-off piece gains little; skip the tool for it unless the user asks.\n\n## Mental model\n\nAn approach is the angle of the piece, such as a question, a small story, or a plain claim with one example. A form is its shape: how it opens, how long it runs, and how it ends. A variety tool remembers the combinations used recently for a scope and hands out one that was not. The scope is a label for the account or channel, for example \"brand-x-posts\": letters, digits, `_`, `:`, `.` and `-` only, no spaces. Reuse the exact same label on every call for that job, or the tool cannot see the history.\n\nThe local server needs a kind. Match it to the piece, not to the agent:\n\n| Piece | Kind |\n|---|---|\n| Social post, thread, ad copy angle | `post` |\n| Reply to a comment, mention, review, community or support message | `reply` |\n| Blog post or long article | `article` |\n| Newsletter, campaign or cold outreach email | `email` |\n| Short video, UGC or ad script | `script` |\n| Release notes, product update, changelog summary for users | `update` |\n\nOne call covers one finished piece: one call per article, not per section; one call per ad angle when a campaign needs several.\n\nTwo providers exist. The unsame server matches each input to a fitting approach with an AI judge, uses the user's own playbook for the goal, and learns from the results the user reports. The local variety server needs no account and picks from a built-in list by kind. Use whichever server is connected. If both are, use unsame.\n\n## Rules\n\n1. Pick a scope label once, tell the user what it is, and reuse it for every piece in the job. Ask the user for it if the account or channel is unclear.\n2. Get the protocol before drafting each piece, not once per batch. Skipping a call is how repeats come back.\n3. Follow the protocol as given. Do not soften the opening, add a closing line it did not ask for, or merge two forms.\n4. Keep the user's voice and facts. The approach decides the shape, not the content. Never invent a story, number, quote, or result to fit an approach.\n5. If the approach does not fit the input, ask again with the rejected id in `avoid`, or tell the user no fitting approach exists. Do not bend the facts.\n6. With the local server, show the draft only after `variety_check` passes.\n\n## With the unsame server\n\n1. Call `advise` with `goal` (the playbook the user set up for this job, found with `goal_list` if needed), `input` as an object `{\"text\": \"...\"}` holding the thing to write about or reply to, and `scope`.\n2. Write the piece exactly as the returned protocol says. Keep the `draw_id` from the response.\n3. If the user says how the piece did, call `report` with that `draw_id` and an `outcome`: `{\"chosen\": true}` when they picked it, `{\"rejected\": true}` when they threw it away, `{\"edited\": 0..1}` for how much they changed it, or `{\"reward\": 0..1}` for how well it performed. Do not report guesses.\n\n## With the local variety server\n\n1. Call `variety_kinds` once if unsure which kind applies. The kinds are post, reply, article, email, script, and update.\n2. Call `variety_pick` with `kind` and `scope`. Follow the approach and form it returns.\n3. If the approach does not suit the input, call `variety_pick` again with `avoid` set to a list holding that approach id.\n4. After drafting, call `variety_check` with the `text` and the same `scope`. Fix every issue it lists, then check again until it is clean.\n\n## Examples\n\nReplies to five comments on one account. Scope \"acme-support-replies\". For each comment, call `variety_pick` with kind \"reply\". The first returns a short answer that opens with the fix. The second returns a question back to the commenter. Write each as returned, with the facts from the comment and the product docs only. The third pick asks for a personal anecdote the user never gave. Call again with `avoid` set to that id rather than inventing a story.\n\nWeekly update emails. Scope \"founder-update\". With unsame, call `advise` with the goal \"weekly_update\", `{\"text\": \u003Cthis week's notes>}` as `input`, and the scope. Follow the protocol. The user says the email went out unchanged, so call `report` with its `draw_id` and `{\"chosen\": true}`.\n\n## Checklist\n\n- [ ] One scope label, reused on every call in the job.\n- [ ] A protocol or pick was fetched before each piece, not once for the batch.\n- [ ] The draft follows the approach and form as given.\n- [ ] No fact, story, number, or quote was added to fit the approach.\n- [ ] Local server: `variety_check` ran on the final text and every issue is fixed.\n- [ ] Unsame: `report` was called only for results the user actually gave.\n- [ ] Rejected approaches were retried with `avoid`, not forced.\n\n## Composition\n\nPair with a voice or humanizing skill when the user wants a stricter match to their own style. This skill decides the shape of each piece; those decide the wording inside it.\n","## Overview\n\nUse this when one job produces many pieces for the same account or channel: a week of posts, a queue of replies, a blog series, a run of newsletters or outreach emails, a set of ad angles, a series of video scripts, release notes for every version. Written one at a time, such pieces drift into the same opening, the same length, and the same closing line. Before each piece, ask a variety tool which approach and form to use, write to it, and check the result. A single one-off piece gains little; skip the tool for it unless the user asks.\n\n## Mental model\n\nAn approach is the angle of the piece, such as a question, a small story, or a plain claim with one example. A form is its shape: how it opens, how long it runs, and how it ends. A variety tool remembers the combinations used recently for a scope and hands out one that was not. The scope is a label for the account or channel, for example \"brand-x-posts\": letters, digits, `_`, `:`, `.` and `-` only, no spaces. Reuse the exact same label on every call for that job, or the tool cannot see the history.\n\nThe local server needs a kind. Match it to the piece, not to the agent:\n\n| Piece | Kind |\n|---|---|\n| Social post, thread, ad copy angle | `post` |\n| Reply to a comment, mention, review, community or support message | `reply` |\n| Blog post or long article | `article` |\n| Newsletter, campaign or cold outreach email | `email` |\n| Short video, UGC or ad script | `script` |\n| Release notes, product update, changelog summary for users | `update` |\n\nOne call covers one finished piece: one call per article, not per section; one call per ad angle when a campaign needs several.\n\nTwo providers exist. The unsame server matches each input to a fitting approach with an AI judge, uses the user's own playbook for the goal, and learns from the results the user reports. The local variety server needs no account and picks from a built-in list by kind. Use whichever server is connected. If both are, use unsame.\n\n## Rules\n\n1. Pick a scope label once, tell the user what it is, and reuse it for every piece in the job. Ask the user for it if the account or channel is unclear.\n2. Get the protocol before drafting each piece, not once per batch. Skipping a call is how repeats come back.\n3. Follow the protocol as given. Do not soften the opening, add a closing line it did not ask for, or merge two forms.\n4. Keep the user's voice and facts. The approach decides the shape, not the content. Never invent a story, number, quote, or result to fit an approach.\n5. If the approach does not fit the input, ask again with the rejected id in `avoid`, or tell the user no fitting approach exists. Do not bend the facts.\n6. With the local server, show the draft only after `variety_check` passes.\n\n## With the unsame server\n\n1. Call `advise` with `goal` (the playbook the user set up for this job, found with `goal_list` if needed), `input` as an object `{\"text\": \"...\"}` holding the thing to write about or reply to, and `scope`.\n2. Write the piece exactly as the returned protocol says. Keep the `draw_id` from the response.\n3. If the user says how the piece did, call `report` with that `draw_id` and an `outcome`: `{\"chosen\": true}` when they picked it, `{\"rejected\": true}` when they threw it away, `{\"edited\": 0..1}` for how much they changed it, or `{\"reward\": 0..1}` for how well it performed. Do not report guesses.\n\n## With the local variety server\n\n1. Call `variety_kinds` once if unsure which kind applies. The kinds are post, reply, article, email, script, and update.\n2. Call `variety_pick` with `kind` and `scope`. Follow the approach and form it returns.\n3. If the approach does not suit the input, call `variety_pick` again with `avoid` set to a list holding that approach id.\n4. After drafting, call `variety_check` with the `text` and the same `scope`. Fix every issue it lists, then check again until it is clean.\n\n## Examples\n\nReplies to five comments on one account. Scope \"acme-support-replies\". For each comment, call `variety_pick` with kind \"reply\". The first returns a short answer that opens with the fix. The second returns a question back to the commenter. Write each as returned, with the facts from the comment and the product docs only. The third pick asks for a personal anecdote the user never gave. Call again with `avoid` set to that id rather than inventing a story.\n\nWeekly update emails. Scope \"founder-update\". With unsame, call `advise` with the goal \"weekly_update\", `{\"text\": \u003Cthis week's notes>}` as `input`, and the scope. Follow the protocol. The user says the email went out unchanged, so call `report` with its `draw_id` and `{\"chosen\": true}`.\n\n## Checklist\n\n- [ ] One scope label, reused on every call in the job.\n- [ ] A protocol or pick was fetched before each piece, not once for the batch.\n- [ ] The draft follows the approach and form as given.\n- [ ] No fact, story, number, or quote was added to fit the approach.\n- [ ] Local server: `variety_check` ran on the final text and every issue is fixed.\n- [ ] Unsame: `report` was called only for results the user actually gave.\n- [ ] Rejected approaches were retried with `avoid`, not forced.\n\n## Composition\n\nPair with a voice or humanizing skill when the user wants a stricter match to their own style. This skill decides the shape of each piece; those decide the wording inside it.\n",{"name":5,"rules":53,"title":61,"domains":62,"license":14,"description":7,"compatibility":63},[54,55,56,57,58,59,60],"content(variety)","match(\\b(sound|read)s?\\s+(all\\s+)?the\\s+same\\b)","match(\\bdifferent\\s+(angle|approach|opening)\\s+(for|on)\\s+(each|every)\\b)","match(\\b(batch|series|week|month|set)\\s+of\\s+(posts|replies|emails|newsletters|articles|blog\\s+posts|scripts|ads|hooks|updates|release\\s+notes)\\b)","match(\\bwrite\\s+(\\d+|ten|twenty|five|a\\s+few|several)\\s+(posts|replies|emails|articles|scripts|ads|hooks|variants)\\b)","semantic(my posts all sound the same and I need each one to take a different approach)","semantic(write a batch of replies without repeating the same opening)","Avoid Repeated AI Writing Patterns","content marketing sales video developer support community launch","Needs the variety capability: either the local variety server or the hosted unsame server. Network access only for unsame.","master","e9e4a19559669b1627b1ac5ed3f77b8e36cfad95","skills\u002Fwriting-variety",0,"https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap","https:\u002F\u002Foctomind.run\u002Ftap\u002F","https:\u002F\u002Fgithub.com\u002FMuvon","https:\u002F\u002Fmuvon.io","We bring ideas to life","2026-11-13 13:19:02",{"source":8,"skillName":5,"commands":75,"prompt":85,"zipAvailable":86},[76,79,82],{"tool":77,"command":78},"npx","npx skills add Muvon\u002Foctomind-tap --skill writing-variety",{"tool":80,"command":81},"bunx","bunx skills add Muvon\u002Foctomind-tap --skill writing-variety",{"tool":83,"command":84},"pnpm","pnpm dlx skills add Muvon\u002Foctomind-tap --skill writing-variety","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Fwriting-variety\u002FSKILL.md",true,[],[89,121,147,167,191,218],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":102,"publishedAt":48},"01M70SFC5CTHRKA9B97N1ARVZ2","seo-content-refresh","Finds decaying pages, picks update, merge, redirect or remove, and briefs each refresh. Use to prioritize existing content and judge whether it helped.","https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Fseo-content-refresh\u002FSKILL.md",[95,98,101],{"categoryNo":96,"categoryName":97,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":99,"categoryName":100,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000035","市场营销",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},[103,104,105,106,107,108,34,109,110,111,112,113,41,114,115,116,117,118,119,120],"seo content refresh","seo","seo content","content refresh","refresh","content","remove","web search","performance","search","traffic","drop","websearch","revamp","merge","diagnosis","update","decay",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":129,"publishedAt":48},"01M70SBWQCHGH7HGS51Y0GTKKW","marketing-review-program","Plans how to ask real customers for honest public reviews: site choice, invitation copy, incentive and disclosure rules. Use to start a review program.","https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Fmarketing-review-program\u002FSKILL.md",[127,128],{"categoryNo":96,"categoryName":97,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":99,"categoryName":100,"taxonomyType":25,"taxonomyTypeDesc":26},[130,131,132,133,134,135,110,112,136,137,138,39,139,140,141,142,143,144,145,146],"program","review","marketing review program","marketing","reviews","get","campaign","choice","how to","generated","ask","plan","product","generate","customer","how","request",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":48},"01M70SBB65Z2FC71Q7DEAXGJBG","geo-source-actions","Turns AI citation findings into ranked per-source actions for Reddit threads, listicles, review sites and videos. Records only. Use after a GEO audit.","https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Fgeo-source-actions\u002FSKILL.md",[],[154,155,156,157,158,135,110,112,159,160,39,115,131,161,162,163,142,164,165,166],"actions","geo source actions","source","geo","sources","copilot","domains","llms","threads","youtube","audit","action","data",{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":176,"publishedAt":48},"01M70S99D3Y6GF097GTXWBXHPW","commerce-ai-readiness","Audits product feeds, markup and live pages for AI shopping assistants, then lists exact fixes. Use to make a store catalog readable to AI shoppers.","https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Fcommerce-ai-readiness\u002FSKILL.md",[173],{"categoryNo":174,"categoryName":175,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000031","产品经理",[177,178,179,180,181,182,183,184,185,186,112,187,159,39,41,188,189,142,164,190],"ai readiness","commerce ai readiness","commerce","readiness","feeds","ready","show","shopping","discover","checkout","up","ecommerce","documentation","recommend",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":200,"publishedAt":48},"01M6DWSX45J42KTK6XASKJRGPA","tap-model-training","Train, evaluate and publish the octomind-embed model behind capability auto-activation. Use when capability triggers or skill semantic() phrases change.","https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Ftap-model-training\u002FSKILL.md",[197],{"categoryNo":198,"categoryName":199,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[201,202,203,204,205,187,206,207,208,209,210,211,212,213,214,145,215,216,217,119],"model","training","tap","tap model training","scope","eval","uv","auto","dataset","activate","api","capabilities","publish","change","embedding","re","when",{"skillNo":219,"name":220,"nameZh":6,"description":221,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":222,"categories":223,"keywords":225,"publishedAt":48},"01M6DWSQB7NSW53Z86XM81R1W1","tap-deps-authoring","Write dep scripts for the octomind-tap registry: header comments, platform.sh, mcp vs dep types, npx\u002Fuvx pattern. Use when editing deps\u002F\u003Corg>\u002F\u003Ctool>.sh.","https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Ftap-deps-authoring\u002FSKILL.md",[224],{"categoryNo":198,"categoryName":199,"taxonomyType":20,"taxonomyTypeDesc":21},[226,203,227,228,229,230,231,35,232,233,234,235,236,237,238,239,217,240,241,242],"deps","tap deps authoring","authoring","DEP","MCP","run","pattern","install","registry","platform","repo","editing","tool","types","write","org","for"]