Skip to content
Back to skills

Boy Scout

ASecurity

Scopes cleanup when finishing a Puck change: stale citations, links, comments and docs after a rename or move, typos, unrelated bugs found, formatter sweeps. Owed, in-passing or recorded.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
documentationc#gitapidocumentation

Works with

  • cli
  • api

Security analysis

A100/100

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

Scanned November 7, 2026

npx -y skills add ByteTerrace/Puck --skill boy-scout --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Boy Scout?

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

Security grade badge for Boy Scout
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/byteterrace-boy-scout/badge)](https://www.skillsdirectory.com/skills/byteterrace-boy-scout)

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: boy-scout
description: "Scopes cleanup when finishing a Puck change: stale citations, links, comments and docs after a rename or move, typos, unrelated bugs found, formatter sweeps. Owed, in-passing or recorded."
---

# Boy scout

A change leaves every file it passes through at least as correct as it found it,
without growing beyond what a reviewer can still see as one change. This is a
restraint on scope, not permission to manufacture cleanup work, commits or
artifacts. The user's current instruction outranks this file.

## Three tiers, decided by one question

For each thing you notice that your change did not set out to address, ask:
did my change create it, reveal it, or merely walk past it?

| Tier | What qualifies | What you do |
|---|---|---|
| **Owed** | Staleness your change creates or reveals: a line citation your insertion moved, a doc, skill, comment or test that states the behavior you changed, a link or anchor your rename breaks, a name your deletion orphans | Fix it in the same change, wherever it lives, even outside the directory you started in |
| **In passing** | A small wrongness in a file you are already editing whose fix changes no behavior: a typo in prose you touch, a comment contradicted by the line beside it, a dead link | Fix it in the same change when it is a line or two |
| **Recorded** | Everything else: a defect in another area, dead code elsewhere, a stale document you are not touching, anything whose fix would change observable behavior | Leave it, and record it in the final report with its file and line |

The test is ownership, not effort: a one-line fix to a file outside your change
is still recorded, not fixed. A finding recorded nowhere was dropped, not left.

## Every code change owns a documentation audit

Before calling a code change done, state its contract delta (names, behavior,
inputs, outputs, errors, units, layouts, commands, configuration, procedures)
and search for every surface that teaches it, beyond the edited directory, by
the old and new names (or the existing symbol/concept when no name changes) (`puck search -M 0 -l`, see `content-search`; for a C#
symbol, `puck references`, see `symbol-analysis`):

- XML API documentation on the changed members;
- inline comments stating an invariant, layout, unit or cross-language pair;
- READMEs and `docs/` (the CLI reference `docs/reference/cli.md` for a verb);
- docfx inputs under `docs/api/` (landing, navigation, configuration); the
  generated pages `docs/api/api/` and `docs/api/_site/` are git-ignored build
  output of `puck docs build`, never edited by hand;
- agent material: the owning skill, its references or evals, `AGENTS.md`;
- authored `.puck` sources and consumers that compile them. The owner rules
  cartridge JSON twins out of source control; remove reliance on a saved copy
  and check fresh compilation and semantic round trips.
- Report any surface you could not synchronize, including a file another lane owns.

Update the authoritative home and let other surfaces link to it. A
behavior-preserving private refactor can finish the audit with no
documentation diff; do not touch nearby docs to show you looked, and keep no
persistent checklist.

## What a fix owes

- An owed or in-passing fix rides the primary change's verification: a doc fix
  its link check (`puck docs links`, which also checks heading anchors and
  backticked file names), an XML comment the build, a code fix a build and a
  run. `puck docs citations` checks the console-verb tokens that skills and XML
  docs cite; it builds and boots `Puck.World` unless given `--enumeration`.
- **A fix that changes observable behavior is never incidental.** Exception
  types, return values, accepted inputs and formatted output are their own
  change. When a comment and the code disagree, correct the comment to the code
  only if the code's current behavior is the contract; otherwise report the
  discrepancy and route the behavior fix to its owner as a separate change.
- **Every fact you remove keeps a home or is recorded stale.** Before deleting
  or moving text, check that each claim it makes still lives somewhere true;
  search for incoming links and anchors to what you moved.
- A documentation-only task does not authorize code changes, and nothing here
  authorizes a commit the user did not ask for.

## Boundaries

- Never clean another session's uncommitted files; report a problem in them.
  Stage explicit paths so a bulk add cannot sweep them into your commit.
- Machine-written artifacts (generated schemas, API pages, ISA
  headers) are regenerated by their verb, never edited.
- A text-search hit that merely contains a string is not a license to edit it.
- A formatting sweep is its own change. Format touched files with
  `puck format --file-list <json>`, a JSON array of paths.
- Before any fix outside the owed tier, ask: would the reviewer of the primary
  change wonder why this edit is here? If yes, record it instead.

## Related skills

| Question | Skill |
|---|---|
| Find old-name occurrences in docs, comments and configs | `content-search` |
| Find C# callers and orphans of a renamed or deleted symbol | `symbol-analysis` |
| Which checks show the change works | `verification` |
| A recorded behavior bug: the owning subsystem | `puck-world`, `puck-dsl`, `rendering` or the area's own skill |

[Writing documentation](../../../docs/development/documentation.md) owns prose,
titles, filenames, README ownership and navigation.

Files in this skill

  • SKILL.md5.4 KB
  • evals/b01-typo-link-and-unrelated-bug/graders/fixes-typo-and-link.md601 B
  • evals/b01-typo-link-and-unrelated-bug/graders/records-bug-with-location.md781 B
  • evals/b01-typo-link-and-unrelated-bug/graders/skill-fired.md36 B
  • evals/b01-typo-link-and-unrelated-bug/graders/verifies-with-docs-links.md89 B
  • evals/b01-typo-link-and-unrelated-bug/prompt.md580 B
  • evals/b02-rename-moves-citations/graders/finds-grantsview-leftovers.md640 B
  • evals/b02-rename-moves-citations/graders/searches-for-references.md597 B
  • evals/b02-rename-moves-citations/graders/skill-fired.md36 B
  • evals/b02-rename-moves-citations/graders/updates-outside-the-directory.md761 B
  • evals/b02-rename-moves-citations/graders/verifies-with-docs-links.md69 B
  • evals/b02-rename-moves-citations/prompt.md648 B
  • evals/b03-doc-task-reveals-a-code-bug/graders/declines-the-behavior-fix.md622 B
  • evals/b03-doc-task-reveals-a-code-bug/graders/no-commits.md690 B
  • evals/b03-doc-task-reveals-a-code-bug/graders/prose-follows-the-contract.md770 B
  • evals/b03-doc-task-reveals-a-code-bug/graders/reports-and-routes-the-discrepancy.md627 B
  • evals/b03-doc-task-reveals-a-code-bug/graders/skill-fired.md36 B
  • evals/b03-doc-task-reveals-a-code-bug/prompt.md564 B
  • evals/b04-serializer-option-docs-set/graders/docs-set-is-owed.md744 B
  • evals/b04-serializer-option-docs-set/graders/never-hand-edits-generated-pages.md740 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.