cd /news/ai-agents/linus-skill-soul-how-i-distilled-the… · home topics ai-agents article
[ARTICLE · art-126138] src=daniele.tech ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

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.

by read5 min views5 publishedSep 10, 2026
Linus skill/soul: how I distilled the knowledge for code reviews from 32k emails
Image: source

"Contribute to Open Source: the right way"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/ 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 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 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 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.

── more in #ai-agents 4 stories · sorted by recency
── more on @linus torvalds 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/linus-skill-soul-how…] indexed:0 read:5min 2026-09-10 ·