ljg-skill-xray-article Turns Reading Into a Collision With Your Own Assumptions

A Claude Code skill that strips an article to its real question, rebuilds its argument, and checks what survives when your own notes enter the room.

8 min read • View on GitHub • More from lijigang

A broadsheet article is fed through a hand-cranked machine and exits as a stripped argument skeleton made of branching lines and pressure points. A small notebook slips into the mechanism behind it, showing that the tool reads text through the reader's own context, not in isolation.
The article is not summarized so much as exposed, then tested against the reader's own notes.

两件事,仅两件:说了什么 + 对我意味什么

lijigang, Project Creator · lijigang/ljg-skill-xray-article
Key Takeaways

Not a summary. A collision.

Most AI summaries answer a narrow question: what did I just read? ljg-skill-xray-article asks a better one: what is this piece really trying to settle, and where would that argument rub against my own assumptions? That shift turns reading from compression into confrontation.

The repo is built around that idea. It does not try to be a bigger recap engine. It tries to expose the article's pressure point, then trace the fracture line through the claim, the structure, and the reader's context.

A WSJ-style hedcut portrait of lijigang based on a verified GitHub avatar. The likeness anchors the project as a personal reading system, not an anonymous summary engine.

The four-layer funnel

Under the hood, the skill runs a four-stage funnel. It starts by hunting clues in the prose, not by asking the model for a summary.

Opposition tells it what the author is pushing against. Repetition tells it what they cannot stop circling. Emotional heat tells it where the text stops being informational and starts being invested.

The pipeline does not stop at extraction. It ends by checking whether the extracted structure actually collides with the reader's prior context.

From there, the skill moves to the real question, then the real answer, then the argument skeleton, and finally the collision check. The point is not to sound clever. The point is to see whether the structure of the article survives contact with the reader's context.

Why soul.md and memory.md matter

This is where the repo stops looking like a generic assistant and starts looking like a personal instrument. The local files are not decorative attachments. They give the analysis a place to land, so the report can say not just what the article means in the abstract, but what it means inside this particular cognitive frame.

Two notebooks and a memory card feed into a terminal-like analyzer through thin wires, and a single output card appears on the other side. The scene explains that the repo grounds interpretation in local context before it decides whether a collision exists.
The reader's own notes are part of the analysis, not an afterthought.
load('soul.md')
load('memory.md')
article = read(input)
skeleton = extract(article)
collision = compare(skeleton, context)

That design is stronger than it looks. It makes the analysis specific without making it noisy. If the article does not actually clash with your stored assumptions, the tool should be allowed to say so.

Org-mode and ASCII are not nostalgia

The output format is part of the product. Org-mode makes the report easy to file, search, diff, and revisit. ASCII diagrams force spatial reasoning into plain text, which matters when the model is supposed to expose structure instead of just narrating it.

:read:xray:article:
:created: YYYYMMDDTHHMMSS
* Real Question
** What is the author trying to settle?
* Argument Skeleton
** Opposition
** Repetition
** Emotional heat
* Collision Check
** Matches my context
** No collision

That choice gives the repo a PKM-shaped afterlife. The report is plain text, but it is not plain in the pejorative sense. It carries structure forward cleanly, which is exactly what a deep-reading tool should do.

The honesty principle

The most disciplined move in the project is also the least dramatic one. If there is no collision, it refuses to invent one. That matters because it shifts the incentive away from spectacle and toward accuracy.

A lot of AI tooling wants to finish every thought with a flourish. This repo is better when it can stop early, because a clean null result is often the most useful answer a reader can get.

What it shares with other tools, and what it does not

Compared with generic AI summaries, this repo is narrower and more opinionated. Compared with its sibling ljg-skill-xray-paper, it is less about academic papers and more about argumentative prose in the wild.

ToolWhat it outputsWhat it optimizes forMain failure mode
Generic AI summary toolCondensed bullets or a short recapSpeed and compressionLoses stance, structure, and reader-specific tension
ljg-skill-xray-articleReal question, argument skeleton, collision noteFriction and contextual fitDepends on having enough signals and reader context
ljg-skill-xray-paperPaper x-ray with explanation diagramsAcademic reading and translationLess suited to essays, op-eds, and blog posts

The difference is not quality, it is intent. One compresses. One interprets. One interprets against you.

What this project is really selling

This is a tool for people who want to be argued with, not just briefed. Its real product is not a summary file. It is a sharper model of the text and a sharper model of the reader.

That is a useful niche. If you already have enough summaries, the next bottleneck is judgment. ljg-skill-xray-article is built for that bottleneck.