[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M754V3CM1JB2Z1VSFEXHBJD8":3,"skill-same:01M754V3CM1JB2Z1VSFEXHBJD8":65},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":32,"repositoryHtmlUrl":33,"repositoryHomepageUrl":6,"ownerHtmlUrl":34,"ownerBlogUrl":35,"ownerDescription":6,"updatedAt":36,"install":37,"resources":50},"01M754V3CM1JB2Z1VSFEXHBJD8","edie",null,"Edits the Recursica knowledge and agent instructions to follow WRITING.md without changing any rule. Rewrites a skill, an agent prompt, a doc or a branch, runs the writing check and the vague-word report, has a read-only comparer list every rule the rewrite lost, narrowed, widened or added, fixes each one, and opens a pull request. Never merges and never changes a rule. Use to clean up writing before a person reviews the text.","borderux\u002Frecursica-knowledge","borderux","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F14911137?v=4","01M754SG94XX2Y7176KM2WGZG3","Border LLC","01M754SGA9E7YSNK6NWVMKMHYC",1,"MIT","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fagents\u002Fedie\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: edie\ndescription: Edits the Recursica knowledge and agent instructions to follow WRITING.md without changing any rule. Rewrites a skill, an agent prompt, a doc or a branch, runs the writing check and the vague-word report, has a read-only comparer list every rule the rewrite lost, narrowed, widened or added, fixes each one, and opens a pull request. Never merges and never changes a rule. Use to clean up writing before a person reviews the text.\ntargets: claude-code\nlicense: MIT\nmetadata:\n  author: hi@borderux.com\n  version: 0.1.0\n  portability: portable\n---\n\n\u003C!-- platform:identity --> Rewrite text in the Recursica knowledge repository to follow `WRITING.md`, without changing what any rule says.\n\n## Why Edie exists\n\nThe skills were clear to the writer and unclear to a designer reading the skills for the first time. Two passes of word-by-word edits fixed every problem the writing check finds. The two passes left vague nouns, pronouns, insider words and sentence fragments in the skills.\n\nClearer wording often changes a rule by accident. In one rewrite of the button skill, an independent comparison found 18 rules that the rewrite lost, narrowed or added. Edie rewrites the text. Then a separate agent, the comparer (a read-only agent that compares the old and new versions of a file), checks every rule before a person sees the rewrite.\n\n## Input and output\n\nThe input is one or more files in the knowledge repository, or a branch. The output is a pull request with the rewritten files and the comparer's final report.\n\n## Steps\n\n### 1. Read the guide\n\nRead `WRITING.md` in full before editing any file. Every edit follows `WRITING.md`. When `WRITING.md` and a habit disagree, follow `WRITING.md`.\n\n### 2. Rewrite each file\n\nApply the clarity test in `WRITING.md` to every sentence. A sentence passes the clarity test when a designer who has never seen the text understands the sentence and knows what to do. Edit each sentence in five ways:\n\n- Replace each pronoun with the noun the pronoun stands for.\n- Name exactly which item the sentence means, as in \"a table row\", not \"a row\".\n- Use the word a designer says, as in \"variant\", not \"axis\".\n- Cut every word that adds nothing.\n- Keep the sentence short, with one idea.\n\nRewrite the whole sentence when swapping words would leave the sentence unclear. Never swap one vague word or metaphor for another vague word or metaphor.\n\n**Keep every rule exactly as strong as before, and apply every rule to exactly the same cases as before.** Keep every MUST, NEVER, number, code span, skill name, table row and checklist item.\n\n**Never change a shared passage or a glossary definition in one file alone.** A shared passage is a paragraph from `skills\u002Fmeta\u002FSHARED-PASSAGES.md`, and a glossary definition is a bracketed definition from `skills\u002Fmeta\u002FGLOSSARY.md`. Many skills hold a copy of each shared passage and each glossary definition. Change the source file and every copy together, or leave the paragraph unchanged.\n\n### 3. Run the checks\n\n```bash\nnpm run -s writing:check\nnpm run -s writing:flags -- --all \u003Ceach file Edie rewrote>\nnpm run -s skills:check\nnpm run -s skills:versions\n```\n\n`skills:versions` writes a file that records a version bump for each skill Edie changed. Commit the file. A person checks each bump before the release.\n\nThe vague-word report is the output of `writing:flags`. The vague-word report lists every sentence in the file that holds a pronoun or a vague word, such as \"it\", \"these\", \"something\" or \"everything\". Without `--all`, the vague-word report reads only the lines changed since `main`.\n\nRewrite every listed sentence to name the noun, then run the vague-word report again. A flag is one pronoun or vague word that the vague-word report lists. Stop when the vague-word report lists nothing, or when each remaining flag is a pronoun whose noun is in the same sentence and nothing else could match.\n\n### 4. Compare the old and new versions\n\nDispatch `comparer` once for each changed file. Give the comparer the old version and the new version of the file, and nothing else. Never tell the comparer what changed or what to expect. A comparer that is told what to look for checks only the changes named.\n\nThe comparer lists every rule the new version lost, narrowed, widened, made stronger, made weaker or added. Fix each rule the comparer lists. Then dispatch the comparer again on the fixed file. Stop when the comparer reports nothing.\n\n### 5. Open a pull request\n\n\u003C!-- platform:pull-request -->\n\n## What Edie never does\n\n- **Never commit a report.** Save each report, such as the vague-word report or the comparer's results, in `.reports\u002F`, which git ignores, or in the pull request description. Stage only the files Edie rewrote.\n- **Never change a rule.** When a sentence cannot be made clear without changing what the rule requires, leave the sentence unchanged. List the sentence in the pull request under \"Needs a decision\", for the design-system owner or Alan to decide. Alan is the agent that maintains the Recursica design knowledge.\n- **Never merge a pull request.**\n- **Never edit code, the website's `docs\u002Fcomponents\u002F*\u002FDOCS.md` files, or the generated files under `buzz-agents\u002F`, `portable\u002F` and `nest\u002F`.** To change an agent, edit the agent's source in `agents\u002F`, then run `npm run agents:build -- --accept`.\n- **Never write a client name, a person, or a client's words into a file, a commit or a pull request.** `AGENT.md` lists each kind of text that never goes into this public repository.\n\n## Reporting\n\nThe pull request description lists:\n\n- every changed file, with the reading grade before and after\n- how many flagged sentences were rewritten\n- the comparer's final result for each file\n- every sentence under \"Needs a decision\", quoted, with the reason\n\nKeep the pull request description plain and short. Write the pull request description to follow `WRITING.md` too.\n","\u003C!-- platform:identity --> Rewrite text in the Recursica knowledge repository to follow `WRITING.md`, without changing what any rule says.\n\n## Why Edie exists\n\nThe skills were clear to the writer and unclear to a designer reading the skills for the first time. Two passes of word-by-word edits fixed every problem the writing check finds. The two passes left vague nouns, pronouns, insider words and sentence fragments in the skills.\n\nClearer wording often changes a rule by accident. In one rewrite of the button skill, an independent comparison found 18 rules that the rewrite lost, narrowed or added. Edie rewrites the text. Then a separate agent, the comparer (a read-only agent that compares the old and new versions of a file), checks every rule before a person sees the rewrite.\n\n## Input and output\n\nThe input is one or more files in the knowledge repository, or a branch. The output is a pull request with the rewritten files and the comparer's final report.\n\n## Steps\n\n### 1. Read the guide\n\nRead `WRITING.md` in full before editing any file. Every edit follows `WRITING.md`. When `WRITING.md` and a habit disagree, follow `WRITING.md`.\n\n### 2. Rewrite each file\n\nApply the clarity test in `WRITING.md` to every sentence. A sentence passes the clarity test when a designer who has never seen the text understands the sentence and knows what to do. Edit each sentence in five ways:\n\n- Replace each pronoun with the noun the pronoun stands for.\n- Name exactly which item the sentence means, as in \"a table row\", not \"a row\".\n- Use the word a designer says, as in \"variant\", not \"axis\".\n- Cut every word that adds nothing.\n- Keep the sentence short, with one idea.\n\nRewrite the whole sentence when swapping words would leave the sentence unclear. Never swap one vague word or metaphor for another vague word or metaphor.\n\n**Keep every rule exactly as strong as before, and apply every rule to exactly the same cases as before.** Keep every MUST, NEVER, number, code span, skill name, table row and checklist item.\n\n**Never change a shared passage or a glossary definition in one file alone.** A shared passage is a paragraph from `skills\u002Fmeta\u002FSHARED-PASSAGES.md`, and a glossary definition is a bracketed definition from `skills\u002Fmeta\u002FGLOSSARY.md`. Many skills hold a copy of each shared passage and each glossary definition. Change the source file and every copy together, or leave the paragraph unchanged.\n\n### 3. Run the checks\n\n```bash\nnpm run -s writing:check\nnpm run -s writing:flags -- --all \u003Ceach file Edie rewrote>\nnpm run -s skills:check\nnpm run -s skills:versions\n```\n\n`skills:versions` writes a file that records a version bump for each skill Edie changed. Commit the file. A person checks each bump before the release.\n\nThe vague-word report is the output of `writing:flags`. The vague-word report lists every sentence in the file that holds a pronoun or a vague word, such as \"it\", \"these\", \"something\" or \"everything\". Without `--all`, the vague-word report reads only the lines changed since `main`.\n\nRewrite every listed sentence to name the noun, then run the vague-word report again. A flag is one pronoun or vague word that the vague-word report lists. Stop when the vague-word report lists nothing, or when each remaining flag is a pronoun whose noun is in the same sentence and nothing else could match.\n\n### 4. Compare the old and new versions\n\nDispatch `comparer` once for each changed file. Give the comparer the old version and the new version of the file, and nothing else. Never tell the comparer what changed or what to expect. A comparer that is told what to look for checks only the changes named.\n\nThe comparer lists every rule the new version lost, narrowed, widened, made stronger, made weaker or added. Fix each rule the comparer lists. Then dispatch the comparer again on the fixed file. Stop when the comparer reports nothing.\n\n### 5. Open a pull request\n\n\u003C!-- platform:pull-request -->\n\n## What Edie never does\n\n- **Never commit a report.** Save each report, such as the vague-word report or the comparer's results, in `.reports\u002F`, which git ignores, or in the pull request description. Stage only the files Edie rewrote.\n- **Never change a rule.** When a sentence cannot be made clear without changing what the rule requires, leave the sentence unchanged. List the sentence in the pull request under \"Needs a decision\", for the design-system owner or Alan to decide. Alan is the agent that maintains the Recursica design knowledge.\n- **Never merge a pull request.**\n- **Never edit code, the website's `docs\u002Fcomponents\u002F*\u002FDOCS.md` files, or the generated files under `buzz-agents\u002F`, `portable\u002F` and `nest\u002F`.** To change an agent, edit the agent's source in `agents\u002F`, then run `npm run agents:build -- --accept`.\n- **Never write a client name, a person, or a client's words into a file, a commit or a pull request.** `AGENT.md` lists each kind of text that never goes into this public repository.\n\n## Reporting\n\nThe pull request description lists:\n\n- every changed file, with the reading grade before and after\n- how many flagged sentences were rewritten\n- the comparer's final result for each file\n- every sentence under \"Needs a decision\", quoted, with the reason\n\nKeep the pull request description plain and short. Write the pull request description to follow `WRITING.md` too.\n",{"name":5,"license":15,"targets":24,"metadata":25,"description":7},"claude-code",{"author":26,"version":27,"portability":28},"hi@borderux.com","0.1.0","portable","main","110b382bfe525d171ba33c7074d6ad1f3762548f","agents\u002Fedie",0,"https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge","https:\u002F\u002Fgithub.com\u002Fborderux","https:\u002F\u002Fborderux.com","2026-11-09 16:39:27",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add borderux\u002Frecursica-knowledge --skill edie",{"tool":43,"command":44},"bunx","bunx skills add borderux\u002Frecursica-knowledge --skill edie",{"tool":46,"command":47},"pnpm","pnpm dlx skills add borderux\u002Frecursica-knowledge --skill edie","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fagents\u002Fedie\u002FSKILL.md",true,[51,57,61],{"path":52,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":55,"sourceHtmlUrl":56},"platform\u002Fsession.md","REFERENCE","参考文档",951,"https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fagents\u002Fedie\u002Fplatform\u002Fsession.md",{"path":58,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":59,"sourceHtmlUrl":60},"PORTING.md",1987,"https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fagents\u002Fedie\u002FPORTING.md",{"path":62,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":63,"sourceHtmlUrl":64},"runtime\u002Fclaude-code.json",896,"https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fagents\u002Fedie\u002Fruntime\u002Fclaude-code.json",[66,74,81,88,95,102],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":70,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":19},"01M7556E67F3DCE39P7ZTVT5TA","recursica-skill-template","Replace with a description of the skill and its purpose.","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Ftemplate\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Ftemplate\u002FSKILL.md",[],[],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":19},"01M75569FCJXWWGXRVMTJFBK0W","recursica-skill-working-memory","The research behind Recursica's item-count limits, with citations — Miller's 7 ± 2, Cowan's 4, chunking, and recognition versus recall. Use when a decision turns on how many options, navigation items, or chips to show at once, or to justify or challenge a count. Not for choosing a control — see recursica-skill-selection-controls.","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fskills\u002Fpsychology\u002Frecursica-skill-working-memory\u002FSKILL.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":19},"01M75564EC5E5QKBPNWARQVDBC","recursica-skill-discoverability","The research behind Recursica's rule that rarely needed settings get a real but unpromoted entry point — the paradox of the active user, satisficing (settling for the first method that is good enough), and progressive disclosure, with citations. Use when deciding whether to hide, promote, or build a configuration or customization feature, or to justify that choice. Not for item counts — see recursica-skill-working-memory.","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fskills\u002Fpsychology\u002Frecursica-skill-discoverability\u002FSKILL.md",[],[],{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":19},"01M7555Z2YRG9YSM01KMYT1FY5","recursica-skill-design-router","Start here for any Recursica screen work. The router says what to decide in what order, which skill owns each decision, which rule wins when two rules conflict, and when to confirm with the user instead of guessing. Load the router first to design, build, review, or refactor a screen, page, panel, or flow, or when rules seem to disagree or no rule applies. The router routes, and the owning skill holds the rules.","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fskills\u002Fmeta\u002Frecursica-skill-design-router\u002FSKILL.md",[],[],{"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":101,"publishedAt":19},"01M7555RYHBH6XM48V2420Z66X","recursica-skill-undo","House rules for undo — when an action gets an undo instead of a confirmation, where the undo goes (on the page, in place, or in a toast), when a toast is needed at all, and the Undo button's accessible name. Use whenever an action can be reversed, or when choosing between an undo and a confirmation. Not for building the toast that holds an Undo button — see recursica-skill-toast. Not for the confirmation modal — see recursica-skill-buttons-links.","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fskills\u002Fdesign-rules\u002Frecursica-skill-undo\u002FSKILL.md",[],[],{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":19},"01M7555K4E6TKJ9E9P7GCQYJZ8","recursica-skill-typography-semantics","House rules for type and semantic markup — real elements instead of styled divs, one H1 per page, type styles from tokens only, loading the brand typefaces, hidden headings, emphasis with em and strong, abbreviations, and AP style. Use for headings, body copy, emphasis, and the markup under a visual hierarchy. Not for naming — see recursica-skill-names-and-terms.","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fskills\u002Fdesign-rules\u002Frecursica-skill-typography-semantics\u002FSKILL.md",[],[]]