视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
voice-profile【文档与办公】Extract a written voice profile from your own prior papers, then use it to keep new drafts sounding like you. Reads a corpus one document at a time via subagents, produces a reusable profile on disk (lexicon, sentence rhythm, how you open and close, hedging habits, deliberate quirks), and audits a draft against it. Use when the user says "make this s…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
/humanize is the negative direction: it finds AI tells and says
what to remove. That leaves a draft that is merely less bad.
This is the positive direction: a written description of how you actually write, extracted from your own published work, so a draft can be measured against a target instead of a taboo list.
What this does not do. A voice profile makes prose sound like your prose. It does not make model-generated text stop reading as model-generated to a neural detector — nothing an LLM applies to its own output does. See
writing-with-ai.md. Use this to write well in your own register; write the load-bearing sentences yourself.
Three to twelve of your own pieces where you were the primary writer. Published papers are best — they survived editing. Mix genres if you write in several (paper, referee report, grant, teaching notes); the profile should note where your register changes.
find <corpus-dir> -maxdepth 1 \( -name '*.pdf' -o -name '*.tex' \) | wc -l
(find, not a glob — in zsh an unmatched glob aborts the whole command, which
reports 0 and defeats the count this step exists for.)
Count before starting. A corpus of eleven is a different task from four, and discovering that halfway through is how a session gets reset.
Per pdf-processing.md: spawn one subagent per document
in a fresh context. Each reads only its own file, writes a ~300-word note to
notes/voice/<name>.md against the fixed schema below, and returns only the filename.
The main session then reads only the notes. Loading a whole corpus at once has repeatedly forced a session reset after partial work was already lost.
Per-document note schema — the same six headings every time, so the synthesis can compare:
## Lexicon words and phrases used repeatedly; words conspicuously avoided
## Rhythm typical sentence length; variance; where long sentences appear
## Openings how sections and paragraphs begin; how the paper opens
## Transitions the actual connectives used, verbatim, with rough frequency
## Hedging how uncertainty is expressed; how strong claims are made
## Quirks anything distinctive — punctuation habits, first person, humour, footnotes
Read only the notes. A trait belongs in the profile if it appears across most of the corpus, not because one paper did it once. Record frequencies where you can: "'note that' appears in 7 of 9 papers; 'delve' appears in none."
Write to voice-profile.md at the repo root (allowlisted in the repo-hygiene gate). Include:
/humanize from flagging a habit as an AI tell./humanize reads voice-profile.md when present and respects documented preferences — a
quirk you have declared deliberate is no longer a finding. Point drafting work at the profile
before it writes, not after.
Pass --audit followed by a filename to compare an existing draft against the profile instead of building one:
/voice-profile --audit main.tex
Report, per section: distance from the profile, with concrete evidence — vocabulary outside your range, hedging denser than your baseline, transitions you do not use, sentence rhythm that has flattened. Every finding cites the profile line it violates, so it is a deduction rather than taste.
Read-only. Auto-rewriting prose degrades it and introduces new tells, and it cannot change what a detector sees. The report says where and why; the author edits.
/submission-disclosures).writing-with-ai.md — readability vs provenance, and the human-readable standard/humanize — the negative direction; reads this profile when it exists/proofread — grammar and consistency, a separate lenspdf-processing.md — the one-subagent-per-document pattern