edie
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.
- License 许可
- MIT
- 最近更新
- 2026-11-09
- Stars
- ★ 1
- Forks
- 0
01 前言 Front Matter
- name
- edie
- license
- MIT
- targets
- claude-code
- metadata
- { "author": "hi@borderux.com", "version": "0.1.0", "portability": "portable" }
- description
- 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.
02 资源文件 3
- 参考文档platform/session.md951 B
- 参考文档PORTING.md1.9 KB
- 参考文档runtime/claude-code.json896 B
03 SKILL.md 正文
<!-- platform:identity --> Rewrite text in the Recursica knowledge repository to follow WRITING.md, without changing what any rule says.
Why Edie exists
The 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.
Clearer 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.
Input and output
The 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.
Steps
1. Read the guide
Read WRITING.md in full before editing any file. Every edit follows WRITING.md. When WRITING.md and a habit disagree, follow WRITING.md.
2. Rewrite each file
Apply 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:
- Replace each pronoun with the noun the pronoun stands for.
- Name exactly which item the sentence means, as in "a table row", not "a row".
- Use the word a designer says, as in "variant", not "axis".
- Cut every word that adds nothing.
- Keep the sentence short, with one idea.
Rewrite the whole sentence when swapping words would leave the sentence unclear. Never swap one vague word or metaphor for another vague word or metaphor.
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.
Never change a shared passage or a glossary definition in one file alone. A shared passage is a paragraph from skills/meta/SHARED-PASSAGES.md, and a glossary definition is a bracketed definition from skills/meta/GLOSSARY.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.
3. Run the checks
npm run -s writing:check
npm run -s writing:flags -- --all <each file Edie rewrote>
npm run -s skills:check
npm run -s skills:versions
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.
The 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.
Rewrite 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.
4. Compare the old and new versions
Dispatch 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.
The 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.
5. Open a pull request
<!-- platform:pull-request -->
What Edie never does
- Never commit a report. Save each report, such as the vague-word report or the comparer's results, in
.reports/, which git ignores, or in the pull request description. Stage only the files Edie rewrote. - 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.
- Never merge a pull request.
- Never edit code, the website's
docs/components/*/DOCS.mdfiles, or the generated files underbuzz-agents/,portable/andnest/. To change an agent, edit the agent's source inagents/, then runnpm run agents:build -- --accept. - Never write a client name, a person, or a client's words into a file, a commit or a pull request.
AGENT.mdlists each kind of text that never goes into this public repository.
Reporting
The pull request description lists:
- every changed file, with the reading grade before and after
- how many flagged sentences were rewritten
- the comparer's final result for each file
- every sentence under "Needs a decision", quoted, with the reason
Keep the pull request description plain and short. Write the pull request description to follow WRITING.md too.
04 同仓库更多 Skills
recursica-skill-template
Replace with a description of the skill and its purpose.
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.
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.
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.
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.
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.