# opus[1m]
## Retrieval Notes
- Session id: `7479a750-b25a-4284-9959-ce55d1b8cc36`
- Last activity: `2026-03-19T19:01:01.716Z`
## My Notes
<!-- Add your notes here. This section is preserved across syncs. -->
## Conversation
### User
opus[1m]
### User
/draft-audit
### Assistant
Let me first read the draft-audit skill to understand what I'm contemplating.
### Assistant
Now let me read the two constituent skills to understand them deeply.
### Assistant
Hmm, let me really think about what `/draft-audit` is doing and whether it's doing it well...
Starting with the basic architecture. Draft-audit is a composite skill — it sequences two independent post-hoc audit skills (voice-fix and source-check) on the same manuscript note. The idea is: after prose exists, run two different lenses across it. One lens asks "does this sound like Nick?" and the other asks "are the authors correctly represented?" Simple composition. But is it actually the right composition?
Let me think about what happens in practice. You have a manuscript note. It's been written — maybe by Claude in a quickfire session, maybe partly by Nick, maybe a mix. The draft-audit runs voice-fix first (because it's lighter, paragraph-by-paragraph work), then source-check second (because it requires extracting PDFs, which is heavier). That ordering makes pragmatic sense — you get the fast results first.
But wait. There's something interesting here. What if voice problems and source problems are correlated? That is — what if the same passage has a voice problem BECAUSE it mischaracterises an author? Think about it: if Claude is vaguely paraphrasing an author ("Floridi argues that LLMs have limitations"), that vagueness might also manifest as a voice problem — it's the kind of hand-wavy sentence Nick would never write. The voice-fix might diagnose it as "vague phrasing" or "missing development" (failure mode 13), while source-check would flag it as "vague characterisation" (failure mode 2). Two diagnoses of the same underlying issue.
Does the current design handle this overlap? Not explicitly. The skill says "present a combined summary: voice issues found + source accuracy issues found." But it doesn't say to cross-reference them. It could be more useful to note when the same passage triggers both detectors — that's a stronger signal that something is fundamentally wrong, not just stylistically off.
Let me back up and think about what each skill actually requires...
Voice-fix has a really specific workflow: locate flagged text → classify the argumentative move → diagnose the failure mode (from a 17-item vocabulary) → read 3 published paragraphs doing similar work → rewrite → show diff. The key thing is it's anchored to %%comments%% — voice flags that Nick has manually placed in the text. If there are no %%comments%%, it skips entirely. This means voice-fix is reactive to Nick's annotations, not proactive.
Is that a problem? Well... the draft-audit description says "catches voice problems." But voice-fix only catches voice problems that Nick has already flagged. It doesn't scan for unflagged voice issues. So draft-audit's claim is slightly misleading — it doesn't independently discover voice problems, it processes ones Nick has already identified. The value is in the diagnosis and repair, not the detection.
Should there be a proactive voice-scanning step? That's interesting. You could imagine a step that reads the note, compares it against the published papers, and flags passages that seem un-Nick-like before Nick has annotated them. But that's harder — it requires Claude to have a reliable model of what Nick's voice IS, which is exactly what the skill acknowledges is unreliable ("pre-writing voice protocols fail — Claude skips them or ignores them"). So maybe the reactive-only approach is honest. You can't trust Claude to detect voice problems proactively if you can't trust it to write in the right voice in the first place.
Hmm, but there's a middle path. What if the proactive scan was specifically anchored in the 17 failure modes? Not "does this sound like Nick?" (too fuzzy) but "does this paragraph contain meta-commentary? announcement phrases? triplet examples?" Those are concrete, pattern-matchable things. A scan for those specific tells would be more reliable than a general voice-vibe check.
Actually, wait — let me re-read the draft-audit rules... "If the note has no voice flags, skip voice-fix and say so." So it explicitly skips if there are no %%comments%%. This confirms that draft-audit is only as thorough as Nick's annotations for the voice half. The source-check half, by contrast, IS proactive — it scans for every author reference regardless of whether Nick flagged anything.
There's an asymmetry here that's worth noting. Source-check covers the whole note exhaustively. Voice-fix only covers what Nick already flagged. The "audit" metaphor suggests both should be exhaustive.
Let me think about the source-check side now...
Source-check has 10 failure modes, compared to voice-fix's 17. The workflow is: scan all author references → extract source texts (from Learning/ PDFs, Readwise, Attachments) → verify each characterisation with a verdict (ACCURATE / INACCURATE / VAGUE / UNVERIFIED) → do a second pass for blurred ownership → report.
That second pass for blurred ownership is clever. It's a separate concern from accuracy — you can accurately represent what Lipton says but still blur where Lipton stops and Nick starts. Making it a separate pass forces attention to it.
But I'm wondering about the practical bottleneck. Extracting PDFs is slow and context-expensive. If a manuscript references 8 authors, you're extracting 8 PDFs, each potentially hundreds of pages. The skill says to use pdftotext, which is right for large PDFs, but even so — reading through extracted text to find the relevant passages for each characterisation is a lot of work. In a real session, this could eat most of the context window.
Is there a prioritisation strategy? The skill says "verify every single one" — no shortcuts. That's the right epistemic stance (you can't know which ones are wrong without checking), but pragmatically it might mean the audit either takes forever or runs out of context. Should draft-audit have a triage step? "Here are 12 author references; which ones do you want me to check first?" That would let Nick direct the most expensive part of the audit.
But then again — the whole point is to catch things Nick didn't notice. If he knew which references were wrong, he wouldn't need the audit. So triage undermines the purpose. The skill should check everything, even if it's expensive.
Let me think about failure modes of the composite skill itself...
One risk: the two skills interfere with each other. Voice-fix might propose a rewrite that introduces a new author characterisation (to make the prose sound more like Nick), and that new characterisation hasn't been source-checked. But since voice-fix runs first and doesn't edit the file (just presents rewrites in chat), this isn't actually a problem for the audit pass itself. It would become a problem if Nick applies the rewrites and then doesn't re-run source-check. But that's outside the skill's scope.
Another risk: context exhaustion. Running both skills on a long manuscript note could easily consume a huge portion of the context window. Voice-fix reads 3 published paragraphs per flagged passage. Source-check extracts potentially many PDFs. If a note has 5 voice flags and 8 author references, that's 15 published paragraphs + 8 PDF extractions + the note itself + the analysis. That's a lot.
Should draft-audit have a "note size check" at the beginning? Like — read the note, count the voice flags and author references, and warn Nick if the audit is going to be very heavy? "This note has 7 voice flags and 12 author references. A full audit will require substantial PDF extraction. Proceed, or would you like to focus on one section?"
That seems like a useful addition that doesn't compromise the skill's thoroughness — it just sets expectations.
Now let me think about the "combined summary" at the end. The skill says to present "voice issues found + source accuracy issues found." But what's the most useful format? A simple list of issues? Or something more structured?
I think the most useful output would be organized by location in the note — going top to bottom, showing all issues (voice and source) for each section. This lets Nick work through the note linearly rather than jumping between two separate reports. The current spec says to present voice-fix results first, then source-check results, which means two separate reports ordered by type rather than by location. That's... fine for the individual skills, but the combined summary should probably interleave them.
Actually, the current spec doesn't say much about the combined summary format at all — just "present a combined summary." That's underspecified. A good combined summary might be:
1. Quick stats: X voice issues, Y source issues, Z blurred ownership passages
2. By-section walkthrough: for each portion of the note, list all issues (voice + source) found there
3. Severity ranking: which issues are most urgent (outright mischaracterisation > vague characterisation > voice style issues)
Let me think about what's missing entirely...
There's no check for internal consistency. If the same author is characterized differently in two places in the note, neither voice-fix nor source-check would necessarily catch that. Voice-fix cares about style, not content. Source-check checks each reference against the source but doesn't check references against each other. A dedicated "consistency check" step could catch contradictions within the manuscript.
There's also no check for missing citations. If Nick makes a claim that sounds like it should be attributed to someone but isn't, neither skill would flag it. That's a different kind of problem — an omission rather than an error. But it matters for academic writing.
And there's no check for structural problems — paragraph ordering, section flow, whether the argument actually progresses. But that might be scope creep. The skill is called "draft audit," not "draft review." An audit implies checking specific things against specific standards, which is what it does.
Let me think about the relationship between draft-audit and the other writing skills...
The ecosystem seems to be:
- nick-analytic-voice: pre-writing voice rules (apply BEFORE writing)
- quickfire: interactive co-writing (during writing)
- voice-fix: post-hoc voice repair (after writing, for flagged issues)
- source-check: post-hoc source accuracy (after writing)
- source-work: extraction-first source use (during writing)
- draft-audit: combines voice-fix + source-check (after writing)
- twork: deep philosophical engagement with %%comments%% (exploration)
Draft-audit sits at the end of the pipeline: write → flag problems → audit → fix. It's the quality gate before Nick commits to the prose. That's a clear, useful position.
But there's a gap between quickfire (interactive writing) and draft-audit (post-hoc checking). What about the intermediate state where prose exists but hasn't been flagged? Nick might want to say "I just finished a section, check it" without having placed any %%comments%%. In that case, draft-audit would skip voice-fix (no flags) and only run source-check. The voice dimension goes unchecked.
This connects back to my earlier thought about proactive voice scanning. A "voice scan" step — even a lightweight one that just flags the 17 failure modes without doing the full published-paragraph comparison — would fill this gap. It could be a separate skill or a mode of draft-audit.
Let me also consider the "do NOT edit the file" constraint. Both skills present findings in chat, and Nick decides what to apply. This is the right default — it preserves Nick's agency. But it means the audit results are ephemeral — they live in the conversation, not in the note. If Nick comes back to the draft a week later, there's no record of what was flagged (unless he applied all fixes).
Should draft-audit optionally write its findings as %%audit comments%% in the note? Like: %%source: vague characterisation of Floridi here%% or %%voice: meta-commentary — "This establishes" pattern%%? That way the findings persist in the document even if the conversation expires. But that might clutter the draft... and Nick might not want audit comments mixed in with his own %%comments%%.
Actually, this might be handled by the daily note / session logging system. If the audit findings are in the conversation, they'll be in the session export, searchable via QMD. So there IS a persistence mechanism, just not in the note itself.
One more thing worth contemplating: the relationship between the feedback memories and draft-audit. The memory file `feedback_voice_audit_strictness.md` says "zero tolerance in voice audits: never excuse triplets or literary vocabulary." And `feedback_section_boundary_repetition.md` says "never repeat/recap material at section boundaries." These are feedback memories that should inform how voice-fix operates during a draft-audit. Does voice-fix incorporate these? Not explicitly in its SKILL.md — the failure modes list includes triplets (failure mode 16) but doesn't mention section boundary repetition. That feedback memory is hanging in space, applicable but not formally wired in.
This suggests that draft-audit (or at least voice-fix) should CHECK the feedback memories before running, to see if there are voice-related feedback memories that should inform the audit. Otherwise those hard-won corrections from past sessions don't get applied.
OK, let me also think about what "zero tolerance" means in practice. The feedback says never excuse triplets or literary vocabulary. That means if voice-fix finds a triplet example, it should not say "this triplet is acceptable because it's doing structural work" — it should always flag it. That's a strong constraint. It makes the audit stricter, which is probably what Nick wants after being burned by Claude excusing its own patterns.
Let me think about whether there are any contradictions or tensions within the draft-audit design...
One tension: voice-fix says "if the note has no voice flags, skip voice-fix and say so." But the skill description says draft-audit "catches voice problems." If it only catches flagged ones, it doesn't really catch them — Nick catches them and voice-fix diagnoses them. The description slightly oversells what the skill does.
Another tension: source-check says "do NOT work from memory" and "if you cannot extract a source, the verdict is UNVERIFIED." But what about authors whose work is well-known and not in the vault? If Nick cites Wittgenstein's Philosophical Investigations and that PDF isn't in Learning/, should the verdict be UNVERIFIED? Technically yes, by the skill's rules. But that seems like wasted strictness for canonical texts that Claude knows well. Then again, the whole point is that Claude's memory of what authors say is unreliable — that's WHY the skill exists. So UNVERIFIED is the honest answer. You could always suggest Nick add the PDF to Learning/ for future audits.
Let me step back and think about the overall question: is draft-audit well-designed?
Strengths:
1. Clear composition of two independent, well-specified skills
2. Pragmatic ordering (light skill first, heavy skill second)
3. Read-only by default — presents findings, doesn't edit
4. Specific, named failure modes in both skills (17 for voice, 10 for source)
5. Published papers as ground truth for voice (not Claude's model of the voice)
6. Source extraction required for every verdict (no memory-based shortcuts)
7. Skip logic for notes that don't need one or both checks
Weaknesses / gaps:
1. Voice-fix is reactive only — requires pre-existing %%comments%%. No proactive voice scanning.
2. No cross-referencing between voice issues and source issues on the same passage
3. No internal consistency check (same author characterized differently in different places)
4. No formal incorporation of feedback memories into the audit
5. Combined summary format is underspecified
6. No upfront complexity estimate (how many flags, how many authors, how heavy will this be)
7. Context window pressure from running both skills sequentially on the same note
8. Section boundary repetition (from feedback memory) isn't formally in voice-fix's failure modes
Potential improvements (in rough priority):
1. Add a lightweight proactive voice scan that checks for the 17 failure modes without requiring %%comments%% — perhaps as an optional mode ("full audit" vs "flagged audit")
2. Cross-reference findings: note when a passage triggers both voice and source issues
3. Read feedback memories at audit start, incorporate as additional failure modes
4. Add a complexity estimate step at the beginning
5. Structure the combined summary by location rather than by type
6. Add internal consistency check as a third, lightweight pass
7. Consider section-boundary repetition as an 18th voice failure mode (based on feedback memory)
That said — the skill is already quite well-designed for its stated purpose. Most of these "improvements" are expansions of scope rather than fixes to what exists. The core design — two independent checks, specific failure modes, source-grounded verification, read-only output — is sound. The question is really whether "draft audit" should do more than what it currently does.
And there's a design philosophy question here: should skills be narrow and composable, or broad and comprehensive? Draft-audit already composes two skills. Adding more steps makes it heavier and harder to run. Maybe the proactive voice scan should be a separate skill that can be composed with draft-audit when needed, rather than built in. Keep the composition lightweight and let Nick choose which combination to run.
Actually, one more thought. The skill says "Also use after completing a major rewrite of any manuscript section." This is a trigger for Claude to proactively suggest running draft-audit. But how would Claude know when a rewrite is "major"? That's a judgment call. And it conflicts slightly with the CLAUDE.md instruction to not be proactive about capturing unless it has lasting value. Running an audit is different from capturing a note, though — it's a quality check, not a persistence action. So proactively suggesting it seems appropriate.
I think I've covered the major dimensions. Let me also briefly consider: does draft-audit serve Nick's actual workflow well?
Nick writes manuscripts. He flags voice problems with %%comments%%. He needs sources checked. He wants to catch problems before the prose solidifies. Draft-audit does exactly this — it's the quality gate at the end of a writing session or at the start of a revision session. The constraint that it doesn't edit means Nick remains in control of the final text. The specificity of the failure mode vocabularies means the diagnoses are actionable, not vague.
The one workflow gap is the "I just wrote a bunch of prose and haven't flagged anything yet" case. In that workflow, draft-audit's voice half is inert. Nick either has to go through and flag things manually first, or accept that voice issues won't be checked until he does. A proactive voice scan would fill this gap — but it's a feature request, not a design flaw.
## Draft-Audit: Contemplation
Draft-audit is a well-architected composite skill. Two independent, clearly-specified lenses — voice repair (17 failure modes) and source verification (10 failure modes) — run sequentially on one note. The ordering (voice-fix first, source-check second) reflects their asymmetric cost. The read-only constraint preserves your agency. The failure mode vocabularies are specific enough to be actionable.
### Where it's strong
- Source-check is genuinely exhaustive: every author reference, extraction-required, no memory-based shortcuts. The UNVERIFIED verdict is epistemically honest.
- Voice-fix's grounding in published papers (not in Claude's model of your voice) is the right design choice — it anchors diagnosis in something real.
- The blurred-ownership second pass in source-check catches a different dimension from accuracy. Smart separation.
### The asymmetry worth noticing
Source-check is proactive — it scans the whole note for author references regardless of annotation. Voice-fix is reactive — it only processes passages you've already flagged with `%%comments%%`. This means "draft audit" is comprehensive on the source side but depends on your pre-annotation on the voice side.
If you invoke `/draft-audit` on a freshly-written section with no `%%comments%%`, the voice half skips entirely. You get a source audit but no voice audit. The skill description says it "catches voice problems," which slightly oversells what it does in this case.
### Gaps worth considering
1. No proactive voice scanning. A lightweight pass checking for the 17 concrete failure modes (triplets, meta-commentary, announcement phrases, etc.) without requiring `%%comments%%` would fill the gap between "freshly written" and "manually flagged." These are pattern-matchable tells, not fuzzy vibes — a scan could be reliable.
2. No cross-referencing. When the same passage triggers both a voice issue and a source issue, that's a stronger signal than either alone (vague characterisation often manifests as vague prose). The combined summary doesn't currently note these overlaps.
3. Feedback memories aren't formally wired in. Your feedback on zero tolerance for triplets and section-boundary repetition exists in memory files, but voice-fix's failure mode list doesn't include section-boundary repetition (mode 16 covers triplets, nothing covers the repetition point). These feedback memories should be checked at audit start.
4. The combined summary format is underspecified. A by-location walkthrough (top-to-bottom through the note, showing all issues at each point) would be more useful for revision than two separate type-ordered reports.
5. No upfront complexity estimate. If a note has 7 voice flags and 12 author references, knowing that before the audit starts lets you decide whether to run the full thing or focus on a section.
### Design philosophy question
Should draft-audit grow to include these additions, or should they be separate composable skills? The current design is clean because it composes two orthogonal checks. Adding a proactive voice scan, a consistency check, or a cross-referencing step makes it heavier. The alternative: keep draft-audit lean, create a `voice-scan` skill for proactive detection, and let you compose them as needed. That preserves the narrow-skill-composable-architecture pattern.
### Remaining uncertainties
- Whether proactive voice scanning would actually be reliable (Claude detecting its own failure modes is a bootstrapping problem — but the 17 modes are concrete enough that pattern-matching might work better than vibes)
- Whether context pressure from running both skills on a long note is a practical problem (it hasn't been tested on a note with, say, 15 author references)
- Whether the "section-boundary repetition" feedback should be formally added as failure mode 18, or whether feedback memories should just be consulted dynamically at runtime
Overall: a solid, honest design that does what it says, with one notable asymmetry (proactive source / reactive voice) that represents the clearest improvement opportunity.
*L'asimmetria fra controllo proattivo delle fonti e controllo reattivo della voce rivela una scelta progettuale onesta — meglio non fingere competenze che non si hanno.*