Skip to content
Back to skills

Docs Reflect

ASecurity

Collect DOC: notes from session, generalize, and propose repo documentation (.claude/rules/, docs/).

  • 13 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentsgobashnodetestingapidocumentation

Works with

  • claude code
  • api

Security analysis

A100/100

Scanned November 7, 2026

npx -y skills add IlyaGorsky/memory-toolkit --skill docs-reflect --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Docs Reflect?

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

Security grade badge for Docs Reflect
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ilyagorsky-docs-reflect/badge)](https://www.skillsdirectory.com/skills/ilyagorsky-docs-reflect)

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: docs-reflect
description: "Collect DOC: notes from session, generalize, and propose repo documentation (.claude/rules/, docs/)."
user-invocable: true
argument-hint: "[optional focus area]"
allowed-tools:
  - Bash(node "${CLAUDE_PLUGIN_ROOT}/scripts/memory.js" *)
---

# /docs-reflect — Session knowledge → repo documentation

Collect DOC: notes accumulated since the last review, generalize them into rules, and propose documentation for the repository.

---

## Step 1: Collect findings

Two sources: DOC: notes since the last review, and recurring feedback from memory.

### 1a: DOC: notes

```bash
node "${CLAUDE_PLUGIN_ROOT}/scripts/memory.js" docs
```

Lists DOC: notes after the last `DOCS_REVIEWED` marker (Step 6 writes it). `docs --all` lists every note, reviewed or not.

### 1b: Recurring feedback patterns

```bash
node "${CLAUDE_PLUGIN_ROOT}/scripts/memory.js" recurring
```

This scans `feedback/` files for clusters — similar corrections that appeared 2+ times across sessions. Recurring patterns are strong candidates for promotion to `.claude/rules/`.

### Combine

If both sources are empty — tell user "No documentation findings." and stop.

If recurring patterns found (3+ occurrences) — these are project conventions, not personal preferences. Treat them as DOC automatically:
- Save as DOC note: `node "${CLAUDE_PLUGIN_ROOT}/scripts/memory.js" note "DOC: <domain> — <generalized rule from recurring feedback>"`
- Highlight to user: "This feedback appeared N times — promoting to project rule."

Patterns with 2 occurrences — mention as candidates but don't auto-promote.

---

## Step 2: Generalize

For each DOC: note, extract a generalized rule.

Bad (too specific):
> "The PaymentService bug was on line 42 in processRefund()"

Good (pattern):
> "Refund operations must check transaction state before mutating — stale state causes double-refunds"

Bad (class-level):
> "UserService.getProfile() returns null when user is not found"

Good (convention):
> "Services return null for missing entities instead of throwing — callers must handle null"

If a note can't be generalized — skip it.

---

## Step 3: Detect documentation structure and route

### 3a: Detect existing structure

```bash
ls .claude/rules/ 2>/dev/null
cat CLAUDE.md 2>/dev/null | head -50
ls docs/ 2>/dev/null
```

Check memory for saved preference:
```bash
node "${CLAUDE_PLUGIN_ROOT}/scripts/memory.js" search "docs_target"
```

### 3b: Choose target

If no saved preference and no `.claude/rules/` directory — ask:

```
Where should project rules go?
  1. .claude/rules/ (Claude Code loads these per-directory)
  2. docs/
  3. CLAUDE.md (single file, always loaded — use sparingly)
  4. Other — specify path

Choice? (default: 1)
```

Save preference:
```bash
node "${CLAUDE_PLUGIN_ROOT}/scripts/memory.js" note "CONFIG: docs_target=<chosen path>"
```

### 3c: Route by domain

Route using the chosen target directory (default: `.claude/rules/`):

| Domain | Target |
|--------|--------|
| testing | `<target>/testing.md` |
| api | `<target>/api.md` |
| architecture | `<target>/architecture.md` |
| state | `<target>/state.md` |
| workflow | `<target>/workflow.md` |
| Other domain | `<target>/<domain>.md` |
| Truly universal (rare) | `CLAUDE.md` |

If a matching file exists — add to it. If not — create one.

---

## Step 4: Propose changes

```
## Docs-reflect: <date>

Found N DOC: notes, grouped into M domains:

### <target>/testing.md
- <rule 1>
- <rule 2>

### <target>/api.md
- <rule 3>

### Skipped
- <notes too specific to generalize>

Apply? (all / pick numbers / skip)
```

Wait for user confirmation.

---

## Step 5: Apply

For each approved rule:

1. Read target file (or create with header)
2. Add rule to appropriate section
3. Format:

For rule files (`.claude/rules/`, `docs/`, or custom target):
```markdown
## <Section>

- <Rule>
```

---

## Step 6: Close the review

**MANDATORY** once the user has answered Step 4 — applied, picked or skipped. Skipped notes count as reviewed:

```bash
node "${CLAUDE_PLUGIN_ROOT}/scripts/memory.js" docs --mark-reviewed
```

Don't mark if the run was limited to a focus area or the user stopped before answering — those notes stay for the next run.

---

## Rules

- **Generalize or skip.** Can't state it as a reusable rule → don't add it.
- **No class/method API docs.** Those belong in code comments.
- **No ticket/branch references.** Docs should not mention specific tasks.
- **Right file matters.** The main value is routing to the correct `.claude/rules/` file.
- **Deduplicate.** Read existing docs before adding.
- **User confirms first.** Never write without showing what will be added.
- **Respect existing structure.** Add to existing files/sections. Don't reorganize.
- **Less is more.** 2 good rules is a great outcome. 0 is fine too.

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.