[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6H4BWCVR2YJVP8RW878NYDP":3,"skill-same:01M6H4BWCVR2YJVP8RW878NYDP":70},{"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":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":42,"ownerHtmlUrl":43,"ownerBlogUrl":44,"ownerDescription":6,"updatedAt":45,"install":46,"resources":59},"01M6H4BWCVR2YJVP8RW878NYDP","voice",null,"How voices work - what a voice skill contains, how to write a new one, and how several voices compose into one reply. Use whenever drafting a reply in a named voice, or when asked to create or change a voice.","eyelock\u002Fassistants","eyelock","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1277325?v=4","01M6H423MGYJ0P316VZ2MMH75N","David Collie","01M6H423RR18QA9N8S2F3J8S8X",1,"MIT","https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Fvoice\u002Fskills\u002Fvoice\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31],"change","create","how","work","write","use","compose","reply","how to","voice skill","when","drafting","new","2026-11-10 10:12:30",false,"---\nname: voice\ndescription: How voices work - what a voice skill contains, how to write a new one, and how several voices compose into one reply. Use whenever drafting a reply in a named voice, or when asked to create or change a voice.\n---\n\n# Voice\n\nA **voice** is how the user sounds. A **style** is the shape a platform expects (see\n`reply-styles`). A reply has one style and one or more voices.\n\n## A voice skill\n\nEach voice is its own skill, named `voice-\u003Cname>`, with these sections and nothing else:\n\n```markdown\n---\nname: voice-\u003Cname>\ndescription: \u003Cone line: when this voice fits>\n---\n\n# Voice: \u003Cname>\n\nOne voice among several: combine it with others as the `voice` skill says, and draft by the\nrules and format in `reply-styles`.\n\n## Tone\n\u003Ctwo or three lines: how it should feel to the reader>\n\n## Length\n\u003Ca target, e.g. \"two sentences\", \"as short as it can be\">\n\n## Do\n- \u003Chabits: open with the answer, name the next step, use first names...>\n\n## Don't\n- \u003Chabits to avoid: apologizing, hedging, exclamation marks...>\n\n## Words\n- Use: \u003Cwords and phrases the user really says>\n- Avoid: \u003Cwords the user never says>\n\n## Example\n\u003Cone short reply in this voice>\n```\n\nTo create a voice, ask the user for two or three replies they were happy with, and draw the\nsections from those, not from adjectives. Show the draft skill before saving it.\n\n## Composing voices\n\nWhen a request names several voices, such as `direct + warm`:\n\n1. Apply them in the order given. Where two voices disagree, the later one wins, for that\n   point only.\n2. **Length** comes from the shortest voice named, unless a later voice says otherwise.\n3. **Don't** lists add up: a habit any named voice avoids is avoided.\n4. **Words** add up the same way. If one voice uses a word that another avoids, avoid it.\n5. The style's format always wins over every voice: a voice never turns a Slack reply into a\n   letter.\n\nWhen no voice is named, use the caller's default voice if they gave one, otherwise\n`voice-direct`.\n\n## Rules\n\nThe drafting rules in `reply-styles` apply to every reply, in any voice.\n","# Voice\n\nA **voice** is how the user sounds. A **style** is the shape a platform expects (see\n`reply-styles`). A reply has one style and one or more voices.\n\n## A voice skill\n\nEach voice is its own skill, named `voice-\u003Cname>`, with these sections and nothing else:\n\n```markdown\n---\nname: voice-\u003Cname>\ndescription: \u003Cone line: when this voice fits>\n---\n\n# Voice: \u003Cname>\n\nOne voice among several: combine it with others as the `voice` skill says, and draft by the\nrules and format in `reply-styles`.\n\n## Tone\n\u003Ctwo or three lines: how it should feel to the reader>\n\n## Length\n\u003Ca target, e.g. \"two sentences\", \"as short as it can be\">\n\n## Do\n- \u003Chabits: open with the answer, name the next step, use first names...>\n\n## Don't\n- \u003Chabits to avoid: apologizing, hedging, exclamation marks...>\n\n## Words\n- Use: \u003Cwords and phrases the user really says>\n- Avoid: \u003Cwords the user never says>\n\n## Example\n\u003Cone short reply in this voice>\n```\n\nTo create a voice, ask the user for two or three replies they were happy with, and draw the\nsections from those, not from adjectives. Show the draft skill before saving it.\n\n## Composing voices\n\nWhen a request names several voices, such as `direct + warm`:\n\n1. Apply them in the order given. Where two voices disagree, the later one wins, for that\n   point only.\n2. **Length** comes from the shortest voice named, unless a later voice says otherwise.\n3. **Don't** lists add up: a habit any named voice avoids is avoided.\n4. **Words** add up the same way. If one voice uses a word that another avoids, avoid it.\n5. The style's format always wins over every voice: a voice never turns a Slack reply into a\n   letter.\n\nWhen no voice is named, use the caller's default voice if they gave one, otherwise\n`voice-direct`.\n\n## Rules\n\nThe drafting rules in `reply-styles` apply to every reply, in any voice.\n",{"name":5,"description":7},"develop","5f79513fe27520bf03af784e8df568a04931c48d","skills\u002Fvoice\u002Fskills\u002Fvoice",0,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants","https:\u002F\u002Feyelock.github.io\u002Fassistants\u002F","https:\u002F\u002Fgithub.com\u002Feyelock","http:\u002F\u002Fwww.eyelock.net\u002Fblog","2026-11-15 02:19:21",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add eyelock\u002Fassistants --skill voice",{"tool":52,"command":53},"bunx","bunx skills add eyelock\u002Fassistants --skill voice",{"tool":55,"command":56},"pnpm","pnpm dlx skills add eyelock\u002Fassistants --skill voice","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Fvoice\u002Fskills\u002Fvoice\u002FSKILL.md",true,[60,66],{"path":61,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":65},"evals\u002Feval_queries.json","REFERENCE","参考文档",846,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Fvoice\u002Fskills\u002Fvoice\u002Fevals\u002Feval_queries.json",{"path":67,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":68,"sourceHtmlUrl":69},"evals\u002Fevals.json",4522,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Fvoice\u002Fskills\u002Fvoice\u002Fevals\u002Fevals.json",[71,77,101,114,127,139],{"skillNo":72,"name":73,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":32},"01M6H46CHAJFE20J3Q118P9PW9","doctor","https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fplugins\u002Fwheelhouse\u002Fskills\u002Fdoctor\u002FSKILL.md",[],[73],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":32},"01M6H45X8QJZTQAPN56WZ8V111","add-seat","Add a named seat to a Wheelhouse - a crew member, a standing role (such as a dispatcher) or a worker - as a ynh harness with its charter, standing orders and only the tools its job needs, named from the Wheelhouse's roster. Use when asked to add, create or set up a seat, role, worker or agent in a Wheelhouse (a release manager, a PR watcher, a dispatcher, a designer, more workers), or to give a role a name, or to start on a Wheelhouse's team (its starter team), one role at a time. Also use to trial, make official or drop a seat.","https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fplugins\u002Fwheelhouse\u002Fskills\u002Fadd-seat\u002FSKILL.md",[],[84,85,86,87,88,89,90,91,92,93,94,95,24,96,97,98,99,20,100,29],"add","add seat","watcher","SET","harness","as","pr","roster","up","worker","more","only","release manager","workers","team","with","starter",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":32},"01M6H4BRVA87C6T495HCFNDQ7Z","voice-warm","A friendly voice that acknowledges the person and their effort. Compose with direct for friendly but brief.","https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Fvoice\u002Fskills\u002Fvoice-warm\u002FSKILL.md",[],[108,5,109,110,111,25,112,99,113],"voice warm","direct","but","for","brief","person",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":32},"01M6H4BNFQ64X65YZDM9QMD61B","voice-formal","A careful, complete voice for people outside the team - customers, partners, senior stakeholders.","https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Fvoice\u002Fskills\u002Fvoice-formal\u002FSKILL.md",[],[5,121,122,123,111,124,98,125,126],"voice formal","partners","people","careful","complete","senior",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":32},"01M6H4BHXE6KSNBY92TBFZY7QD","voice-direct","A plain, brief voice that leads with the answer. The default when no voice is named.","https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Fvoice\u002Fskills\u002Fvoice-direct\u002FSKILL.md",[],[5,109,134,99,112,135,136,137,29,138],"voice direct","leads","answer","default","plain",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":150,"publishedAt":32},"01M6H4BE360DSFYTFAP5T7KH72","reply-styles","The shape a reply takes on each platform - Slack, a GitHub review or PR comment, email, a calendar response, a document comment. Use with the voice skill when drafting any reply.","https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Fvoice\u002Fskills\u002Freply-styles\u002FSKILL.md",[145],{"categoryNo":146,"categoryName":147,"taxonomyType":148,"taxonomyTypeDesc":149},"01JBSEEDCAT000000000000005","邮件与沟通","SCENARIO","使用场景",[26,151,152,29,30,153,99,90,154,155,156,157,158,159,5,28,24,160],"reply styles","styles","review","github","slack","platform","email","calendar","shape","document"]