Linus skill/soul: how I distilled the knowledge for code reviews from 32k emails Developer Daniele Scasciafratte, known as Mte90, released linus-torvalds-skill, a reproducible pipeline that distills Linus Torvalds' code-review style from 31,397 kernel mailing-list emails into an AGENTS.md-style skill file. The pipeline runs roughly 2,000 LLM calls, filters the corpus to about 19,000 review-relevant emails, and was validated on antirez/smallchat with 8 reviews across 4 models plus a 43-bug ground-truth benchmark; the generated SKILL.md scores 95/100 on the project's verify_skill.py quality gate. The release adds 4 soul variants, 67 fused interview transcripts, and a published data.tar.gz release asset, with GLM 5.2, Mistral-small-4-119b, GPT-OSS-120b, and Qwen3.8-27b used via Regolo.AI. "Contribute to Open Source: the right way" https://daniele.tech/2022/09/contribute-to-open-source-the-right-way-3rd-edition/ is my free and open source book, about... Open Source It will help you improve your skills and understand how to start this journey I was wondering if we have https://github.com/multica-ai/andrej-karpathy-skills/ https://github.com/multica-ai/andrej-karpathy-skills/ that is a condensed way to create a AGENTS.md file from an opinion of a specific person what we can do with more content from a person? I used the karpathy skill to create my AGENTS.md but it will be a topic for another blog post So I was thinking, where I can find content from a person, that can be helpful for an AI that is public domain? Why don’t distill the Code Review skills from Linus Torvalds in over 2 decades in the Kernel mailing list? So after some working I got https://github.com/Mte90/linus-torvalds-skill https://github.com/Mte90/linus-torvalds-skill that I decide to be always reproducible. Every generated file carries traceability metadata in its frontmatter prompt hash, input hash, model, pipeline version . Generated artifacts are never hand-edited — any change goes through the generator script. The data folder is a release asset, the full pipeline ~2,000 LLM calls, and python3 scripts/run pipeline.py --dry-run shows every stage before spending a cent. This means that there are scripts to download and parse the various emails, exclude the one that are commits and stuff not useful so from 32~k emails they are 19~k . Before public announcement The first version was a single SKILL.md generated from the email corpus — no soul, no calibration, no interviews, no validation. The first step it was to ask to the agents to build a pipeline to download and evaluate the various emails, and a script that generates the skill based on the email content. The next step it was to generate the same skill with different models to see the difference, as I am part of Regolo.AI https://regolo.ai/ that part it was easy. The first generation attempts included C-specific terms like BUG ON and READ ONCE, making the skill useless for non-C projects. Fixing this required a forbidden-terms list and a post-processor. With this first version I was thinking that was ready for the world… After public announcement After sharing to the world apart the usual sarcastic people I got some useful suggestions: What the community asked — and what changed | Feedback | What I shipped | |---|---| | “Did you even use the skill?” | Validated on antirez/smallchat: 8 reviews 4 models × with-skill/baseline , consensus matrix + a 43-bug ground-truth benchmark | | “Why not a SOUL.md?” | 4 soul variants identity/values/voice, separate from the rules | | “The skill quality is bad” | Quality gates: verify skill.py scores 0–100 SKILL.md: 95/100 , 1,026 tests, forbidden-C-terms enforcement | | “The report isn’t useful” | Consensus matrix, severity disagreement table, trigger effectiveness metrics | | “Why not interviews?” | 67 interview transcripts fused into the corpus | | “Upload the data folder” | Published as release assets data.tar.gz — regenerate with your own models | | Where are the profanities? | In soul.md are present | Right now I want to present to you the first official release of the project with this all these improvements and many others I used a lot GLM 5.3 that it was released in the meantime to review it and improve it GLM 5.2 and Qwen3.5-122b are used for the development . The actual LLMs used from Regolo.AI : - GLM 5.2 - Mistral-small-4-119b - GPT-OSS-120b - Qwen3.8-27b The pipeline, the prompt generation and everything else is the same for the various models but the output is completely different. Actual pipeline is: - 31,397 emails fetched 192MB mbox from gmane NNTP - After classify.py filters out git-pull/patch/RFC/announcements → review-only subset - 38,293 moves extracted not emails — each email can yield multiple moves - 325 representative patterns 25 per category × 13 categories - 1 skill/soul file per model In the report folder there is a comparison https://github.com/Mte90/linus-torvalds-skill/blob/main/report/comparison.md from all the models with and without the skill with the antirez/smallchat project. Some excerpts from the comparison auto-generated as 10/09/2026: | Model | Total Findings | Critical Findings | Skill-Only Critical | Verdict | |---|---|---|---|---| | gpt-oss-120b | 15 | 4 | 4 | Skill adds value | | glm5.2 | 7 | 2 | 0 | Skill reduces coverage | | mistral | 22 | 9 | 9 | Skill adds value | | qwen3.8-27b | 18 | 6 | 4 | Skill adds value | The skill adds the most value for mistral, which gained 9 critical finding s exclusive to the with-skill review. For each model, comparing findings with the skill vs without baseline : | Model | Baseline Total | With-Skill Total | Baseline CRITICAL | With-Skill CRITICAL | Critical Overlap | Skill-Only CRITICAL | Baseline-Only CRITICAL | Skill Added Value | |---|---|---|---|---|---|---|---|---| | gpt-oss-120b | 7 | 15 | 0 | 4 | 0 | 4 | 0 | yes +4 net critical: 4 found, 0 lost | | glm5.2 | 12 | 7 | 4 | 2 | 2 | 0 | 2 | no -2 net critical: 0 found, 2 lost | | mistral | 15 | 22 | 0 | 9 | 0 | 9 | 0 | yes +9 net critical: 9 found, 0 lost | | qwen3.8-27b | 11 | 18 | 2 | 6 | 2 | 4 | 0 | yes +4 net critical: 4 found, 0 lost | Findings confirmed by 2+ models are treated as real bugs. Findings reported by only one model are unverified could be real or false positive . | Model | Total Findings | Confirmed 2+ models | Unverified 1 model only | Consensus Rate | |---|---|---|---|---| | gpt-oss-120b | 15 | 12 | 3 | 80% | | glm5.2 | 9 | 9 | 0 | 100% | | mistral | 22 | 14 | 8 | 64% | | qwen3.8-27b | 19 | 14 | 5 | 74% | Looking a the comparison is clear that GLM and Mistral are the most interesting to find bugs. I suggest to read the comparison that is generated automatically so has margin for improvements . Conclusion This project was fully generated by AI – and my only real job was reviewing its work. Which is exactly what the skill teaches. I just never expected to be on the receiving end of a Linus-style review of my own pipeline. But I think that is my actual most used duty in my job as developer, review what an agent does. The repository is online and open to everyone for feedback and suggestions.