Skip to content
Back to skills

Readme Restructure

ASecurity

Restructure a README for human skimmers and LLM ingestion — fixes frontloaded internals, moves the value prop into the first 200 tokens, generates a diff for review. Preserves content, reorders disclosure. Sub-skill of repo-seo-curator.

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 19, 2026
ai-agentsgoshellbashgit

Works with

  • mcp

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add jamestexas/agents --skill readme-restructure --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Readme Restructure?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Readme Restructure
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jamestexas-readme-restructure/badge)](https://www.skillsdirectory.com/skills/jamestexas-readme-restructure)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: readme-restructure
description: Restructure a README for human skimmers and LLM ingestion — fixes frontloaded internals, moves the value prop into the first 200 tokens, generates a diff for review. Preserves content, reorders disclosure. Sub-skill of repo-seo-curator.
allowed-tools: Read Edit Write Glob Grep Bash(git *) Bash(wc *) Bash(head *)
argument-hint: <path-to-README.md> [--dry-run] [--apply] [--target=human|llm|both]
---

<!-- Author: jamestexas — drafted by claude-opus-4-7 (2026-05-16) -->

# /readme-restructure — README Information Architecture

Restructure a README so the value prop and audience signal land before any internals. This skill **does not rewrite content** — it re-orders sections and pushes dense detail behind `<details>` or into separate docs.

## Arguments

`$ARGUMENTS`

- **`<path-to-README.md>`** — the file to restructure. Defaults to `README.md` in the current working directory.
- **`--dry-run`** *(default)* — produce a structure diff and a written restructure plan; do not write.
- **`--apply`** — after approval, rewrite the file in place. The original is preserved as `README.md.bak`.
- **`--target`** *(default: `both`)* — optimize for `human`, `llm`, or `both`. Affects ordering heuristics: humans skim, LLMs read top-down.

## What this solves

A README's job is to land three signals in the first 200 tokens:

1. **What is this?** (category noun + defining trait)
2. **Who is it for?** (audience)
3. **How do I try it in 30 seconds?** (quick-start or one-line install)

The user's `mache/README.md` is the motivating example. Its first 1000 chars are good — until paragraph 4:

> *"Seventeen MCP tools wrap the projected graph (sixteen read-surface plus `write_file`). Fourteen work standalone; three (`semantic_search`, `get_type_info`, `get_diagnostics`) require ley-line-open enrichment. `find_smells` covers nine structural code-smell rules (`dead_code`, `cyclomatic_complexity`, `god_file`, `fan_out_skew`, `untested_function`, …); four of those require a `.db` built by ley-line-open."*

That paragraph is **accurate and useful** — but it requires the reader to already know what an MCP tool is, what `ley-line-open` enrichment is, and what "structural code-smell rules" means. A first-time reader bounces. This skill moves that paragraph behind a `<details>` or into a `## Tools` section further down, **without deleting it**.

## Hard rules

- **Never delete content.** Every paragraph from the original must appear in the output. Re-order, fold into `<details>`, or move to a sub-page — but don't drop.
- **Never invent claims.** If the README says "stable on macOS" and you can't verify, leave that claim alone. Don't add caveats it didn't have, don't drop caveats it did.
- **Preserve all links.** A restructure that breaks an internal anchor link is worse than the original.
- **Preserve all code blocks verbatim.** No editing example commands, paths, or shell snippets.
- **Don't reorder ADRs, CHANGELOG, or LICENSE references** — those have conventional positions.

## Target structure

A well-shaped README converges to:

```
# <Project>

<One-sentence pitch. Category noun + defining trait. 120–200 chars.>

<Optional: tagline / pull-quote. 1 line.>

<Optional: screenshot or demo gif.>

## Quick start

<3–6 lines that get the reader from clone to first useful output.>

> For the full first-run flow, see [GETTING-STARTED.md](GETTING-STARTED.md).

## What it does

<2–4 short paragraphs. Plain language. No jargon-density.>

## How it works

<One diagram or 4–6 numbered steps. Conceptual, not exhaustive.>

## Status

<Table: capability → state (stable/beta/experimental/optional).>

<details>
<summary>Why this exists</summary>
<motivation, philosophy, design rationale>
</details>

<details>
<summary>Deeper internals</summary>
<the dense paragraphs that were frontloaded before>
</details>

## Install / deploy

<full install matrix>

## License
```

The principle: **everything dense or jargon-rich goes below the fold or into `<details>`**. The above-fold content is meant for a reader who knows nothing about the project.

## Workflow

### Phase 1: Read and section-map

Read the README and produce a section map:

```
Section: "# Mache" + tagline
  Lines: 1–8
  Density: low ✓
  Audience: any
  Verdict: keep front

Section: "## Quick start"
  Lines: 10–22
  Density: low ✓
  Audience: any
  Verdict: keep front

Section: "## What it gives an agent"
  Lines: 24–28
  Density: HIGH (paragraph names 17 tools, internal subsystem, optional deps)
  Audience: returning user / MCP-literate
  Verdict: MOVE BEHIND <details> or to "## Tools" section
...
```

For each section, score density by:
- Count of proper nouns / project-specific terms per 100 chars
- Count of inline code spans per 100 chars
- Whether it references concepts not yet introduced

### Phase 2: Diagnose

Print a one-page diagnosis:

```
## Diagnosis: mache/README.md (144 lines)

Score: 6/10
  ✓ Title + tagline lands fast (lines 1–4)
  ✓ Quick start present and short (lines 10–22)
  ✗ Paragraph at line 24 frontloads 17-tool inventory + ley-line-open coupling
    → first-time reader bounces here
  ✓ Mermaid diagram is well-placed
  ✗ "Status" table is good but appears after dense paragraph
  ✓ <details> for "Why this exists" — good pattern
  ✗ Missing: clear "audience" signal — who is this for?

Recommended moves:
  1. Move lines 24–28 ("What it gives an agent") to a new "## Tools" section after "How it works"
  2. Insert a one-line audience signal after the tagline: "Built for agents that need to navigate code, not grep it."
  3. Promote the "Status" table to right after "How it works" — readers want stability info early
```

### Phase 3: Restructure plan

Produce the explicit re-ordering plan as a list of moves:

```
Move:
  - lines 24–28 → after line 92 (new ## Tools heading)
  - lines 53–67 (Status table) → after line 33 (right after Quick start)

Wrap in <details>:
  - lines 130–140 (deployment matrix continued — too dense for above-fold)

Insert:
  - line 4 (after tagline): "Built for agents that need to navigate code, not grep it."
```

### Phase 4: Generate proposed README

In dry-run mode, produce the proposed README content in a separate file (`README.md.proposed`) without touching the original. Show a unified diff for review.

### Phase 5: Approval

- `--dry-run` (default): keep `README.md.proposed` and `README.md.diff` on disk; do not modify `README.md`.
- `--apply`: prompt "Apply this restructure? (yes/no)". On yes: copy `README.md` → `README.md.bak`, then replace with `README.md.proposed`.

### Phase 6: Verify

After apply, run:

```bash
# Sanity check: every line from original must appear somewhere in restructured
diff <(sort README.md.bak | uniq) <(sort README.md | uniq) | grep '^<'
```

Report any lines that were dropped (should be zero — they're a bug).

### Phase 7: Report

```
Applied: README.md restructured
  Before: 144 lines, value prop diluted by line 24
  After:  148 lines (3 inserts), value prop holds through line 50
  Original backed up to README.md.bak

Manual follow-ups suggested:
  - "Tools" section is now 18 lines — consider moving the full inventory to docs/TOOLS.md
  - The Status table could be a separate STATUS.md if it grows
```

## Important rules

- **Default to `--dry-run`.** A README is the first thing every visitor reads. Don't write live.
- **Preserve `README.md.bak` after `--apply`.** Easy rollback.
- **Show the diff, not the full file** in the dry-run output. The diff is the artifact; the proposed file is on disk for inspection.
- **One README per pass.** Don't batch multiple repos through this skill — each README needs its own diagnosis.
- **If the README scores 8+ in diagnosis, recommend skipping.** Marginal restructure on a working README is churn.

## Examples

```
/readme-restructure
→ dry-run on ./README.md

/readme-restructure <path-to-repo>/README.md
→ dry-run on that repo's README

/readme-restructure ./README.md --apply
→ dry-run, prompt, write

/readme-restructure ./README.md --target=llm
→ optimize ordering for an LLM ingesting top-down rather than a human skimming
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.