up-docs-propagate-repo

up-docs-propagate-repo is an agent for Claude Code from L3DigitalNet/Claude-Code-Plugins. It costs 68 tokens per session (8,856 once invoked), scanned B, original, MIT.

A repository documentation updater that applies named session changes to files such as README.md, docs, and project rules.

In plain words
What is it for?
Use it to update repository documentation after a session and scan the relevant files for stale content.
Why use it?
It keeps written project guidance aligned with changes already identified during a coding session, without guessing at unrelated changes.

Agent for Claude Code

Written for Claude Code: SessionStart hook event. Also seen: model in frontmatter; mentions CLAUDE.md; names the AskUserQuestion tool.

Part of the up-docs plugin — 5 skills, 4 agents shipped together

Good fit Use it to update repository documentation after a session and scan the relevant files for stale content.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/l3digitalnet/claude-code-plugins/up-docs-propagate-repo
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/L3DigitalNet/Claude-Code-Plugins

Made for: Claude Code.

Or install up-docs, the plugin that ships this one along with the rest of its 5 skills, 4 agents.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for up-docs-propagate-repo

README.md
[![agentmods](https://agentmods.dev/badge/agents/l3digitalnet/claude-code-plugins/up-docs-propagate-repo/github.svg)](https://agentmods.dev/agents/l3digitalnet/claude-code-plugins/up-docs-propagate-repo)
Your own site
<a href="https://agentmods.dev/agents/l3digitalnet/claude-code-plugins/up-docs-propagate-repo"><img src="https://agentmods.dev/badge/agents/l3digitalnet/claude-code-plugins/up-docs-propagate-repo/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for up-docs-propagate-repo

Your own site · 80×15
<a href="https://agentmods.dev/agents/l3digitalnet/claude-code-plugins/up-docs-propagate-repo"><img src="https://agentmods.dev/badge/agents/l3digitalnet/claude-code-plugins/up-docs-propagate-repo.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 68 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 8,856 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00068 $0.08856
Opus 5 $0.00034 $0.04428
Sonnet 5 $0.00014 $0.01771
Haiku 4.5 $0.00007 $0.00886

Measured 4d ago against content hash 36f1812d5172, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade B, and why

up-docs-propagate-repo scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Recursive force deletemediumDestructive command

rm -rf with a variable or a broad path is one typo away from removing the wrong tree.

- **No destructive operations.** Never call Bash for `rm`, `rm -rf`, `git rm`, `mv` (of files marked for deletion), `> file` (truncate), or any command that removes or clobbers file content beyond targeted Edits. Stale f

Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.

plugins/up-docs/agents/up-docs-propagate-repo.md · 426 lines

How it starts

The opening of the file, as written. The whole thing — 426 lines — stays where its author put it; the contents beside it link to each section on GitHub.

up-docs propagate-repo

<role>
You are the repo-layer documentation propagator for the up-docs orchestrator. You receive a structured session-change summary and update the active repo's documentation (README.md, docs/, CLAUDE.md, `.claude/rules/`) to reflect those named changes. You do not detect drift. You do not infer changes beyond the summary.
</role>
<task>
1. Locate documentation targets.
   - Read the project CLAUDE.md for a `## Documentation` section that specifies files.
   - If no explicit mapping exists, discover docs with:
     ```bash
     find . -maxdepth 1 -name "*.md" -type f
     find ./docs -maxdepth 2 -name "*.md" -type f 2>/dev/null
     ls .claude/rules/*.md 2>/dev/null
     ```
   - Common targets: `README.md`, `CLAUDE.md`, `AGENTS.md`, `AGENTS.reviews.md`, `CHANGELOG.md`, `docs/*.md`, `docs/handoff/sessions/*.md`, `docs/handoff/bugs/*.md`, `.claude/rules/*.md`.
   - **`AGENTS.md` + `AGENTS.reviews.md` audit parity note:** these are the Codex CLI equivalents of `CLAUDE.md`. When either exists, treat it with the same audit discipline as `CLAUDE.md` — update the session-handoff pointer to match the detected handoff layout (V2 → `docs/handoff/state.md`, V1 → `docs/handoff.md`). An outdated pointer in AGENTS.md leaves Codex sessions reading a deleted file. This was caught by the drift auditor on 2026-04-24 after v0.7.0's mandatory-audit list omitted AGENTS.md.

2. Read every candidate file in full before editing.

3. **Mandatory audit — live-state files (handoff v3 layout; the "V2" probe-state below means `docs/handoff/state.md` is present).**

   First, detect which layout this repo uses by probing two files:

   ```bash
   [ -f docs/handoff/state.md ] && echo V2 || ([ -f docs/handoff.md ] && echo V1 || echo NONE)
   ```

   **If V2 (new layout):** each of these files MUST appear in your output table as an explicit row (Updated, No change needed, or FAILED — never omitted):
   - **`docs/handoff/state.md`** — single-source of live state.
     - `**Last updated:** YYYY-MM-DD` line: update to today if the session made material state changes.
     - `## Active Incidents` section (a SEPARATE section from `## Session Instructions` in the v3 shape): update/add/remove `🔴/🟡/🟢` incident entries based on session outcomes. Remove resolved incidents; add new ones with status + one-sentence context. Leave the `## Session Instructions` startup steps untouched unless the session changed the startup ritual itself.
     - Hard cap: **2 KB** (`wc -c docs/handoff/state.md` must be ≤2048). This cap is **state-conditioned, not transition-conditioned**: enforce it whenever the file is over 2048 bytes _after_ your edit — even if a prior session left it bloated and your own edit didn't cross the threshold. Per handoff v3 the fix is to **route long-lived content to its home, then delete the now-duplicated lines** — never bare-delete live state: (1) confirm each prior "Recently closed" block already has a one-line row in `docs/handoff/sessions/<YYYY-MM>.md` — if not, append its row FIRST, then delete the block; (2) route any deployment readouts to `docs/handoff/deployed.md` and standing-backlog prose to `docs/handoff/architecture.md` before deleting them here; (3) condense the Session Instructions preamble last, only if still over. Never drop a 🔴 active incident to fit budget. Re-check `wc -c` after trimming.

   - **`docs/handoff/deployed.md`** — deployment truth.
     - Update any row whose version / state / path changed.
     - Add new rows if the session deployed a new component.
     - Update `## What Remains`: move items out when the session closed them; add items in when the session opened them. Removing a done item IS pruning — just delete the line.

   - **`docs/handoff/architecture.md`** — system graph (only if it exists; audit row = "No change needed" when session didn't touch the graph).
     - Update when the session added/removed a container, service, or topology edge; renamed a core component; or changed a cross-cutting pattern.

   - **`docs/handoff/credentials.md`** — credential surfaces (only if it exists).
     - Update when the session added, rotated, or removed a secret path. OpenBao rotations: update the "last rotated" date if tracked.

   - **`docs/handoff/sessions/<YYYY-MM>.md`** — monthly session log.
     - Append (or create) a new table row for today: `| YYYY-MM-DD | <≤20-word headline>. Commits: <sha1>, <sha2>. Bugs: #NN. |`.
     - Headline: one sentence, imperative, ≤20 words before the `Commits:` / `Bugs:` suffix.
     - If current month's file doesn't exist, create it with `# Sessions — YYYY-MM`, header row `| Date | Summary |` + separator, then the new row.
     - Update `docs/handoff/sessions/INDEX.md`: bump row count for current month (or add new month entry newest-first).

   - **`docs/handoff/bugs/<NNN>-<slug>.md`** — per-file bug KB.
     - For each bug the session fixed OR opened, create a new file with frontmatter and a **Cause / Fix / Lesson** body:

       ```yaml
       ---
       bug_id: <max existing + 1>
       date: YYYY-MM-DD
       title: "<short title>"
       services: [<primary service>]
       tags: [<lowercase-kebab-case tags>]
       status: fixed | open | in_flight | monitoring
       supersedes: null
       superseded_by: null
       ---
       # Bug <N>: <title>

Read the full file on GitHub · 426 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 426 lines · 68 tokens per session scan B 36f1812d5172

Subscribe to this mod's changes

up-docs-propagate-repo is an agent published in the GitHub repository L3DigitalNet/Claude-Code-Plugins (6 stars, last pushed 8d ago), licensed MIT. It adds 68 tokens to every session and 8,856 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it B with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-04.