Skip to content
Back to skills

Summary

ASecurity

Synthesizes code docs into user-facing HTML summary. Creates semantic narrative explaining what changed and why it matters. Use when creating PR summaries, release notes, or change overviews.

  • 15 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
developmentbashnodegitapiperformance

Works with

  • api

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add brsbl/ottonomous --skill summary --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Summary?

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

Security grade badge for Summary
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/brsbl-summary/badge)](https://www.skillsdirectory.com/skills/brsbl-summary)

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: summary
description: Synthesizes code docs into user-facing HTML summary. Creates semantic narrative explaining what changed and why it matters. Use when creating PR summaries, release notes, or change overviews.
argument-hint: [staged | branch]
model: opus
---

**Scope:** $ARGUMENTS

| Argument | Files to summarize |
|----------|-------------------|
| (none) or `branch` | Branch diff: `git diff main...HEAD --name-only` |
| `staged` | Staged changes: `git diff --cached --name-only` |

---

## Workflow

| Phase | Purpose |
|-------|---------|
| 1. Analyze | Get changed files and diffs |
| 2. Read | Read changed files and their diffs |
| 3. Synthesize | Create semantic narrative from code and diffs |
| 4. Generate | Convert to HTML, open in browser |

### 1. Analyze Changes

Get changed files using scope command. If no changes found, report: "No changes to summarize."

```bash
git diff main...HEAD --name-only
```

### 2. Read Changes

For each changed file, read the file content and diff:

```bash
git diff main...HEAD -- <file>
```

Read the full file for context when the diff alone isn't sufficient to understand the change.

### 3. Synthesize Summary

**Get repo info for links:**
```bash
git remote get-url origin
```

Parse to get `{org}/{repo}` for GitHub links.

**Generate semantic summary** following this format:

```markdown
# {Branch Name}

## Overview

{2-3 sentences: what this branch accomplishes from a business/feature perspective}

### Technical Implementation
{Integration points, architecture decisions, key patterns used}

### Key Review Areas
{What reviewers should focus on, potential risks, areas needing careful attention}

### What Changed
{High-level summary of functionality changes and why they matter}

## Semantic Changes by Component

### [src/auth/users.ts](https://github.com/{org}/{repo}/blob/{branch}/src/auth/users.ts)

- **Purpose of changes:** What problem does this solve or what feature does it add?
- **Behavioral changes:** How does the behavior differ from before?
- **Data flow impact:** How do these changes affect data flow through the system?
- **Performance considerations:** Changes to scan frequency, read/write patterns, potential bottlenecks
- **Subtle bug risks:** Race conditions, stale data, cache invalidation, timing issues introduced
- **Dependencies affected:** What other parts of the codebase might be impacted?

### [src/api/routes.ts](https://github.com/{org}/{repo}/blob/{branch}/src/api/routes.ts)

- **Purpose of changes:** ...
- **Behavioral changes:** ...
- **Data flow impact:** ...
- **Performance considerations:** ...
- **Subtle bug risks:** ...
- **Dependencies affected:** ...

## Breaking Changes

{If any exist - before/after comparison, migration path. Omit section entirely if none.}

## Files Changed

<details>
<summary>{count} files</summary>

| File | Summary |
|------|---------|
| [src/auth/users.ts](https://github.com/{org}/{repo}/blob/{branch}/src/auth/users.ts) | Added profile CRUD |
| [src/api/routes.ts](https://github.com/{org}/{repo}/blob/{branch}/src/api/routes.ts) | New profile endpoints |

**List every file individually — no wildcards.** Count must match table rows.

</details>
```

**Key principles:**
- Focus on **"why" and "what it means"** not just "what changed"
- Explain **semantic meaning and implications**
- Link to code in branch for easy navigation
- Per-component sections with consistent 6-field structure
- **Highlight performance impacts**: scan frequency changes, read/write pattern modifications
- **Flag subtle bug sources**: race conditions, stale data, cache issues, timing problems
- Breaking changes prominent if they exist
- Omit Breaking Changes section entirely if none exist

### 4. Generate HTML

**Create directories:**
```bash
mkdir -p .otto/summaries
```

**Save markdown** to `.otto/summaries/{branch}-{date}.md`

**Convert to HTML** using the md-to-html script:
```bash
node skills/summary/scripts/md-to-html.js .otto/summaries/{branch}-{date}.md .otto/summaries/{branch}-{date}.html
```

**Open in browser:**
```bash
open .otto/summaries/{branch}-{date}.html
```

**Report:**
```
Summary generated: .otto/summaries/{branch}-{date}.html
```

Files in this skill

  • SKILL.md4.1 KB
  • __tests__/md-to-html.test.js5.3 KB
  • package-lock.json51 KB
  • package.json418 B
  • scripts/md-to-html.js5.5 KB
  • scripts/md-to-html.utils.js2.7 KB
  • vitest.config.js162 B

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.