kernel-lore-search
Search kernel mailing lists via lore git mirrors. Use when checking prior art before a report, verifying a quote, or finding a sent message.
- License 许可
- MIT
- 最近更新
- 2026-11-13
- Stars
- ★ 59
- Forks
- 6
01 前言 Front Matter
- name
- kernel-lore-search
- created
- 1793577600000
- modified
- 1793577600000
- reviewed
- 1793577600000
- description
- Search kernel mailing lists via lore git mirrors. Use when checking prior art before a report, verifying a quote, or finding a sent message.
- allowed-tools
- Bash, Read, Grep, Glob
03 SKILL.md 正文
Kernel Lore Search
lore.kernel.org archives every kernel mailing list. Its web pages and search sit behind a bot challenge, so an agent reads lore through the public-inbox git mirrors instead: each list is a git repository in which every commit is one message.
When to Use This Skill
| Use this skill when... | Use something else when... |
|---|---|
| Checking whether a problem was reported or patched before | Reading the code itself at a tag: /kernel:source-history |
| Verifying a quote before citing a maintainer | Searching GitHub issues of a userspace project: github-actions-plugin:github-issue-search |
| Confirming your own message reached the archive | Writing or sending the report: /kernel:list-report |
1. Use the Mirror, Not the Web Interface
WebFetch on lore gets a 403 or a challenge page. Sending a fake user agent to
get past the challenge is bot-check circumvention: Claude Code's auto-mode
classifier blocks it, and it should not be worked around. Cloning the mirror
with plain git is the documented way in.
2. Find the Epochs and Clone
Large lists are split into numbered epochs, newest highest. Probe until one is missing:
for e in 0 1 2 3; do printf 'epoch %s: ' "$e"; git ls-remote "https://lore.kernel.org/linux-btrfs/$e" HEAD 2>&1 | head -1 | cut -c1-12; done
git clone -q --mirror https://lore.kernel.org/linux-xfs/git/0.git linux-xfs-0.git
- Both
https://lore.kernel.org/<list>/<N>andhttps://lore.kernel.org/<list>/git/<N>.gitworked as clone URLs. - Partial clone does not help:
--filter=blob:noneprintedfiltering not recognized by server, ignoringand fetched everything. The full linux-xfs epoch 0 holds about 174,000 messages (2006–2026). - Update an existing clone with
git fetch origin; it is fast.
3. Search
Each commit's subject is the message subject, its author the sender, and the
raw RFC 822 message is the blob m in its tree.
cd linux-xfs-0.git
git log --all --format='%H %ad %s' --date=short --since=2021-01-23 --until=2021-01-26 | grep -i 'reflink/subvol'
git show <commit>:m | grep -i -m3 '^From:\|^Date:\|^Message-ID:'
git show <commit>:m | grep -i -B1 -A1 'diagnostic we use'
- Subject and date filters run on
git logand are fast. - Body search means reading
mblobs: loopgit show <c>:mover the candidates from a subject or date filter, or script a full pass for prior-art sweeps (the 2026-11 sweep regex-searched all 174k linux-xfs messages with a Python script; that script is not part of this skill). - Cross-list search on lore's
/all/index is web-only. Clone the other lists that matter (linux-fsdevel, linux-btrfs, linux-mm) instead.
4. Control-Test Every Negative
"Nobody reported this" gates a report, so prove the search can find things:
- Run a query you know must hit (
reflinkreturned 12,518 linux-xfs messages) and report the count beside the empty ones. - Before concluding a recent message is absent, look at the newest commits:
git log --all -3 --format='%ad %s' --date=iso. In 2026-11 a--since/--grepfilter returned nothing for a message sent minutes earlier whilegit log --all -3showed it at the top; the filter, not the archive, was wrong.
5. Verify Quotes Before Citing Them
A research agent's summary of a thread is a claim. Before a quote goes into a
report: find the message in the mirror, check the From: line, and grep the
exact words in its body, excluding lines that start with > (quoted text from
someone else). Cite the lore URL, which is the Message-ID without angle
brackets: https://lore.kernel.org/<list>/<message-id>/.
6. Confirm a Sent Message Was Archived
After git send-email returns Result: 250, the archive is the proof that the
list received it:
git -C linux-xfs-0.git fetch -q origin
c=$(git -C linux-xfs-0.git log --all -1 --format=%H)
git -C linux-xfs-0.git show "$c:m" | grep -m4 -i '^Message-ID:\|^From:\|^To:\|^Cc:'
In 2026-11 it was in the mirror within six minutes of sending. Record the Message-ID and the lore URL where the investigation is tracked.
7. Kernel Bugzilla
bugzilla.kernel.org has a REST API, for example
https://bugzilla.kernel.org/rest/bug?product=File%20System&component=XFS&summary=fiemap.
Many subsystems, XFS among them, work on the mailing list rather than in
bugzilla, so an empty result there is weak evidence. (A research agent used the
API in 2026-11; the URL shape here is from its report, not re-run.)
Agentic Optimizations
| Context | Command |
|---|---|
| Which epochs exist | git ls-remote https://lore.kernel.org/<list>/<N> HEAD |
| Messages by subject in a window | git log --all --format='%H %ad %s' --date=short --since=<d> --until=<d> | grep -i '<words>' |
| Headers of one message | git show <c>:m | grep -m4 -i '^From:|^Date:|^Message-ID:|^Subject:' |
| Newest messages (control) | git log --all -3 --format='%ad %s' --date=iso |
| Permanent link | https://lore.kernel.org/<list>/<message-id-without-brackets>/ |
04 同仓库更多 Skills
kitty-show-image
Show the user an image with a note on what to judge, via a file send or a labelled kitty tab. Use when the user must see an image, or icat fails with no /dev/tty.
kitty-session-persistence
Snapshot and restore kitty terminal sessions on macOS. Use when surviving WindowServer hangs without losing tabs, configuring snapshots, or restoring after a force-reboot.
kitty-remote-control
Safe kitty remote control from an agent — read panes with kitty @ ls/get-text, notify, and never mutate the live terminal unasked. Use when running inside kitty.
docs-reference-check
Dangling doc-reference gate: flag markdown naming repo paths or relative links that no longer exist. Use when docs cite moved/deleted files, or wiring a doc-drift lint.
youtube-upload
Upload a video to YouTube via the Data API v3 and edit its title, description, tags or thumbnail afterwards. Use when publishing or retitling a YouTube video.
youtube-studio-share
Share a private YouTube video with a whole Google Workspace organization by scripting YouTube Studio in the browser. Use when a video must be org-only.