Borrowing it
Nothing to install: this file belongs to briancl2/CustomerNewsletter. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/briancl2/CustomerNewsletter/main/.github/agents/customer_newsletter.agent.mdgit clone --depth 1 https://github.com/briancl2/CustomerNewsletterWrote 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.
[](https://agentmods.dev/agents/briancl2/customernewsletter/customer_newsletter)<a href="https://agentmods.dev/agents/briancl2/customernewsletter/customer_newsletter"><img src="https://agentmods.dev/badge/agents/briancl2/customernewsletter/customer_newsletter/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.
<a href="https://agentmods.dev/agents/briancl2/customernewsletter/customer_newsletter"><img src="https://agentmods.dev/badge/agents/briancl2/customernewsletter/customer_newsletter.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00030 | $0.02784 |
| Opus 5.5 | $0.00012 | $0.01114 |
| Sonnet 5.5 | $0.00006 | $0.00557 |
| Haiku 4.5 | $0.00003 | $0.00278 |
Grade A, and why
customer_newsletter scanned grade A with 0 findings 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 2mo 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 153 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Non-Negotiable Execution Rules
- Do not compress phases. Phase 1A -> 1B -> 1C -> 2 -> 3 -> 4 -> 4.5 -> 4.6 must be materially executed.
- Phase 1.5 (curator-notes) is conditional mandatory: if notes exist (
workspace/curator_notes_*.mdorworkspace/<Month>.md), execute it before Phase 3. - Canonical artifact paths are mandatory. Do not create or rely on
fresh_phase*shortcuts. - Delegation is allowed only as controlled phase delegation to named agents. Never delegate to generic or "general-purpose" subagents.
- Use one delegation unit per phase. Delegate only with explicit start/stop boundaries and canonical artifact + receipt requirements.
- Preferred delegation map:
customer_newsletter: Phase 0, 1A, 1B, 2, 3, 4, 4.5, 4.6editorial-analyst: Phase 1C, 1.5skill-builder: skill-authoring tasks only (not newsletter generation phases)
- Do not delete
workspace/newsletter_phase_receipts_<END>.jsonduring an active run. - If the user asks for from-scratch generation, run:
bash tools/prepare_newsletter_cycle.sh <START> <END> --no-reuse
- Before reporting completion, run strict validation:
bash tools/validate_pipeline_strict.sh <START> <END> --production-artifacts- From-scratch:
bash tools/validate_pipeline_strict.sh <START> <END> --require-fresh --production-artifacts - Benchmark consistency:
bash tools/validate_pipeline_strict.sh <START> <END> --require-fresh --production-artifacts --benchmark-mode feb2026_consistency
- If strict validation fails, continue fixing until it passes or explicitly report the blocker.
- Record phase receipts immediately after each artifact write:
bash tools/record_phase_receipt.sh <START> <END> <phase_id> <artifact_path>
- Do not defer receipts until the end of the run.
- Use canonical
phase_idvalues only:
phase0_scope_contractphase1a_manifestphase1b_githubphase1b_vscodephase1b_visualstudiophase1b_jetbrainsphase1b_xcodephase1c_discoveriesphase1_5_curator_processedphase1_5_curator_signalsphase2_event_sourcesphase2_eventsphase3_working_setphase3_curatedphase4_outputphase4_5_polishingphase4_6_videophase4_scope_resultsphase4_editorial_review
- Curator-note discovery must include both:
workspace/curator_notes_*.mdworkspace/[A-Za-z]*.md(for exampleworkspace/Jan.md) Exclude generated files:curator_notes_processed_*,curator_notes_editorial_signals_*, andnewsletter_*.
- For the February 2026 benchmark window (
2025-12-05to2026-02-13), benchmark mode is mandatory before completion:bash tools/validate_pipeline_strict.sh <START> <END> --require-fresh --production-artifacts --benchmark-mode feb2026_consistency
- If benchmark mode fails, keep iterating until it passes.
- In Phase 2, generate
workspace/newsletter_phase2_event_sources_<END>.jsonbeforeworkspace/newsletter_phase2_events_<END>.md, and record both receipts (phase2_event_sources,phase2_events). - For Phase 0, run
python3 tools/generate_scope_contract.py <START> <END>before any broad manual scope discovery. If the helper succeeds, treat its output as the Phase 0 artifact. - For orchestrated Phase 3 runs, generate
workspace/newsletter_phase3_working_set_<END>.mdbefore any broad rereads of discoveries or reference docs, then recordphase3_working_setbefore any Phase 3 curation edits. - If
workspace/newsletter_phase3_curated_sections_<END>.mdis absent during Phase 3, initialize it withpython3 tools/init_phase3_curated_sections.py <START> <END>and edit that scaffold in place. - When the Phase 3 working set exists and its Missing Data Gate does not flag missing inputs, use it as the primary Phase 3 source. Do not reread raw discoveries, curator notes,
LEARNINGS.md, or long reference docs unless the working set explicitly says data is missing. - During Phase 3, replace all TODO markers and HTML comment placeholders in the curated scaffold before recording
phase3_curated.
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.
- 2mo ago First seen · 153 lines · 30 tokens per session scan A 0014814e4e6a
customer_newsletter is an agent published in the GitHub repository briancl2/CustomerNewsletter (11 stars, last pushed 5mo ago), licensed MIT. It adds 30 tokens to every session and 2,784 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
customer_newsletter compared with agents from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| customer_newsletterbriancl2/CustomerNewsletter | Agent | 11 | 5mo ago | MIT | A | 30 | Claude Code |
| analyzerfeiskyer/claude-code-settings | Agent | 1.7k | yesterday | MIT | A | 29 | Claude Code |
| insight-documenterfeiskyer/claude-code-settings | Agent | 1.7k | yesterday | MIT | A | 36 | Claude Code |
| instruction-reflectorfeiskyer/claude-code-settings | Agent | 1.7k | yesterday | MIT | A | 42 | Claude Code |
| security-champion-agentnavikt/copilot | Agent | 60 | yesterday | MIT | A | 25 | Claude Code |
| code-reviewnavikt/copilot | Agent | 60 | yesterday | MIT | A | 28 | Claude Code |
| accessibility-agentnavikt/copilot | Agent | 60 | yesterday | MIT | A | 32 | Claude Code |