Skip to content
Back to skills

Reader Context Hygiene

ASecurity

Use when authoring or reviewing a fan-out reader/scout agent that ingests an external source (a design board, a live site, a large document) on behalf of a consumer.

  • 5 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 1, 2026
ai-agentstestinggit

Security analysis

A100/100

Scanned September 1, 2026

npx -y skills add AppVerk/av-marketplace --skill reader-context-hygiene --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reader Context Hygiene?

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

Security grade badge for Reader Context Hygiene
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/appverk-reader-context-hygiene/badge)](https://www.skillsdirectory.com/skills/appverk-reader-context-hygiene)

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: reader-context-hygiene
description: Use when authoring or reviewing a fan-out reader/scout agent that ingests an external source (a design board, a live site, a large document) on behalf of a consumer.
---

# Reader Context Hygiene

## What a reader is, and when to invoke this skill

A reader (scout) agent ingests an external source — a design board, a live site, a large document — on behalf of a consumer that will make decisions from the result. The reader's return message IS its interface; everything the orchestrator will act on must be *in* that message, and everything it won't act on must stay *out* of it. Invoke this skill when authoring or reviewing any fan-out reader agent, before it ships. This is authoring-time doctrine (like `loop-engineering`): current qa testers follow their own per-scenario contract and are exempt — see the caveat below.

## The minimum bar (MUST)

1. **Bulk to disk, signals inline.** The full artifact is written to disk (a gitignored workspace, or a *subdirectory* of a report directory — never at a path a consumer globs for reports, e.g. `docs/testing/reports/*.md`); the return message carries the path + a 3–5 sentence summary + top-N takeaways **plus every decision-relevant status as a named inline field** (e.g. `items_extracted=214`, `MISSING_DESIGN=<screen>`, `needs_escalation=yes|no`, coverage gaps). A gate flag buried in the artifact file is a gate the orchestrator never sees — the exact failure this contract exists to prevent.
2. **Never inline bulk.** No base64, no full dumps; verbose evidence (screenshots, response bodies, board dumps) is referenced by path.
3. **Fail-closed access.** No access / auth failure → STOP with a diagnostic; never guess or synthesize the missing content. A fabricated board is worse than no board.
4. **Idempotent output.** Re-running overwrites the artifact as a fresh snapshot — no accumulating duplicates.
5. **Declared truncation.** When the source exceeds a size limit, stop at the limit and declare what was skipped. Silent truncation reads as full coverage.

## Anti-patterns

- **Signal buried in the artifact** — the consumer reads a 3-line summary, misses the `MISSING_DESIGN` flag on line 400 of the dump, and green-lights an unreviewable screen.
- **Inlined bulk** — a base64 screenshot in the return message costs the whole pipeline's context for one reader's convenience.
- **Guessing on auth failure** — synthesizing "what the board probably says" launders a fetch error into confident fiction.
- **Append-mode artifacts** — re-runs that accumulate stale snapshots make the newest state unfindable.
- **Silent truncation** — "42 items extracted" from a 400-item board, undeclared.

## Recorded caveat — current qa testers

qa's fe/be-testers cannot fully adopt bar item 1: `/qa:run` assembles the report from per-scenario detail returned inline, an aggregation constraint that is out of scope to restructure. They follow the spirit where applicable (fe-testing: screenshots to disk, referenced by path; be-testing: long response bodies to disk). Primary consumers are **future** reader agents.

## Worked example *(Prospective)*

*(Prospective: no conforming in-repo reader exists today; genericized from the source pattern.)* A design-board reader returns:

```
Artifact: docs/testing/reports/snapshots/board-snapshot.md (214 items, fresh overwrite)
Summary: <3–5 sentences>
Signals: items_extracted=214 | frames_skipped=2 (size limit — listed in artifact) | MISSING_DESIGN=checkout-v2 | needs_escalation=no
```

On auth failure it returns instead: `STOP: board unreachable (401). No content synthesized. Fix access and re-run.`

## Review checklist

Paste into any reader-agent review:

- [ ] 1. Bulk artifact on disk; return message carries path + summary + takeaways
- [ ] 2. Every decision-relevant status is a named inline field in the return message
- [ ] 3. No base64 / full dumps inline; evidence referenced by path
- [ ] 4. Access failure → STOP with diagnostic; nothing synthesized
- [ ] 5. Re-runs overwrite the artifact (idempotent)
- [ ] 6. Truncation declared with what was skipped

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.