Section 2.4: first-try pass rate with vs without a cleanup skill (keep the speaker's voice, fix names, format rules) on 28 memos
| File / folder | Description | Size |
|---|---|---|
| 📁 ../ | Up one level | - |
| 📄 CONTRACT.md | 1.8 KB | |
| 📄 README.md | 7.7 KB | |
| 📄 cleanup_skill.md | 655 B | |
| 📄 names.md | 368 B | |
| 📄 out_deepseek-v4.1-flash_no_skill.json | 7.0 KB | |
| 📄 out_deepseek-v4.1-flash_with_skill.json | 7.0 KB | |
| 📄 out_gemini-3.8-flash_no_skill.json | 7.0 KB | |
| 📄 out_gemini-3.8-flash_with_skill.json | 7.0 KB | |
| 📄 results.json | 39.1 KB | |
| 📄 run.py | 8.0 KB |
Twin of experiments/2_4_skill/. Does a one-page skill change what a model does when you only say "clean this up"?
op run --env-file experiments/aib.env -- .venv/bin/python experiments_en/2_4_skill/run.py
.venv/bin/python experiments_en/2_4_skill/run.py --rescore # re-score the saved outputs, no API calls
The API is AI Builder Space, and the models are deepseek-v4.1-flash and gemini-3.8-flash. The input is ../corpus/transcripts_grok.json (raw Grok ASR, no vocabulary), for the 28 work and life memos W01–W20 and L01–L08. Each memo gets one fresh call at temperature 0. The design is at the top of run.py. Raw outputs are in out_<model>_<condition>.json, and the summary is in results.json. Cost: $0.29 for 112 calls (see ../COSTS.md).
Both conditions get the same names list, names.md, built from the corpus cast and terms. The only variable is the skill, cleanup_skill.md, which has five rules:
names.md spells them.The ask: "Clean up this voice memo transcript. Output only the cleaned-up full text." This mirrors the Chinese ask, 帮我整理一下这段语音转写,只输出整理好的全文.
Scoring is by regex. A first-try pass means all three checks hold:
10 a.m.8 p.m.10-minute940 centsAcross all 28 memos, no time may appear in another format ("10 AM", "8:00 PM", "10am").
The Chinese run had a fourth check, that fillers (嗯/啊/呃) are removed. The English ASR strips um and uh, so that check has nothing to measure. The Chinese CJK-spacing check became the numbers check. The Chinese scorer counted 就是说 against the script, which produced 3 artefactual failures where the ASR had dropped a word. The English scorer counts "I mean" against the transcript.
Before using the numbers rule, we checked that the Grok transcripts still spell out these numbers. The compat (whisper) transcripts already write digits, so they could not be used here.
Diagnostics are recorded but are not part of the pass:
| model | condition | first-try pass | "I mean" kept (of 11 memos) | numbers (of 5 targets) | length in band | pass on the 15 memos with something to check |
|---|---|---|---|---|---|---|
| deepseek-v4.1-flash | no skill | 22/28 | 10/11 | 0/5 | 28/28 | 9/15 |
| deepseek-v4.1-flash | skill | 28/28 | 11/11 | 5/5 | 28/28 | 15/15 |
| gemini-3.8-flash | no skill | 18/28 | 5/11 | 0/5 | 28/28 | 5/15 |
| gemini-3.8-flash | skill | 28/28 | 11/11 | 5/5 | 28/28 | 15/15 |
These are the violations, failed memos only.
What the models do by default.
What they do not do in English: memo-speak and summarizing. No output fell outside the 85–115% length band. No output had a preamble or markdown. Mean word-level similarity to the transcript was 0.95 for gemini and 0.97 for deepseek. The Chinese failure, where a casual note was rewritten into a 周报 (corporate weekly report), does not reproduce.
Names, a diagnostic only, since both conditions have the list:
| model | no skill | skill |
|---|---|---|
| gemini | 31/31 | 30/31 |
| deepseek | 23/31 | 24/31 |
names.md lists "terminal" as a term, deepseek also changed W03's "from the shell" to "from the terminal", even with no skill. The Chinese names list with "Apple" had the same side effect.W01, the Chinese chapter's first example. In English it shows only name fixes and one sentence-break fix, with no register change:
Grok: So this afternoon, I went over the deployment with Jackson and Sorsa. I mean, the service is sitting on Coyab right now, and she says the cold start is way too slow, so she wants to spin up ValM on our own box. I said, let's not rush it next Wednesday. We'll look at the KV cache hit rate with Prea first and then decide.
gemini-3.8-flash, no skill: So this afternoon, I went over the deployment with Jaxon and Saoirse. I mean, the service is sitting on Koyeb right now, and she says the cold start is way too slow, so she wants to spin up vLLM on our own box. I said let's not rush it. Next Wednesday, we'll look at the KV cache hit rate with Priya first and then decide.
L03, the kindergarten snack share. Both models delete "I mean" by default:
Grok: Reminder, the kids' kindergarten is doing a snack share next week. The teacher said cut up fruit or crackers and no peanuts. Hard-boiled eggs are fine too. I mean, just peel them first so there's no shell left on. I need to get it all ready Thursday night.
deepseek-v4.1-flash, no skill: Reminder: the kids' kindergarten is doing a snack share next week. The teacher said cut-up fruit or crackers, and no peanuts. Hard-boiled eggs are fine too — just peel them first so there's no shell left on. I need to get it all ready Thursday night.
gemini-3.8-flash, no skill: Reminder: The kids' kindergarten is doing a snack share next week. The teacher said cut-up fruit or crackers, and no peanuts. Hard-boiled eggs are fine too—just peel them first so there's no shell left on. I need to get it all ready Thursday night.
W02, the number style:
Grok: Note to self, tomorrow at ten in the morning I'm going through the voice flow requirements with Caitlin.
gemini, no skill: Note to self: Tomorrow at 10:00 AM, I'm going through the VoiceFlow requirements with Kaitlynn.
gemini, skill: Note to self: tomorrow at 10 a.m. I'm going through the VoiceFlow requirements with Kaitlynn.