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.
npx skills add tonydzi/second-brain-starter-kit --skill outbound-gategit clone --depth 1 https://github.com/tonydzi/second-brain-starter-kitWrote 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/skills/tonydzi/second-brain-starter-kit/outbound-gate)<a href="https://agentmods.dev/skills/tonydzi/second-brain-starter-kit/outbound-gate"><img src="https://agentmods.dev/badge/skills/tonydzi/second-brain-starter-kit/outbound-gate/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/skills/tonydzi/second-brain-starter-kit/outbound-gate"><img src="https://agentmods.dev/badge/skills/tonydzi/second-brain-starter-kit/outbound-gate.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.00054 | $0.04208 |
| Opus 5.5 | $0.00022 | $0.01683 |
| Sonnet 5.5 | $0.00011 | $0.00842 |
| Haiku 4.5 | $0.00005 | $0.00421 |
Grade A, and why
outbound-gate 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 7d 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 — 125 lines — stays where its author put it; the contents beside it link to each section on GitHub.
OUTBOUND_GATE — исходящее только на живую просьбу (anton 26.07, строгий регламент)
ЦЕЛЬ: каждое исходящее (PR, коммент, DM, инвайт, пост-заявка, письмо) целится в ЧЬЮ-ТО живую потребность, а не в пустоту. Замер 26.07: 8 PR → человеческий отклик ровно у одного, единственного issue-matched. Возврат = чужая живая просьба, не наш объём.
ПОРЯДОК (шаги строго по очереди; провал шага = стоп, не шипим):
-
ПРЕРЫВАНИЕ-ЧЕК (всегда первым). Есть ли живой ответ человека на наше ПРОШЛОЕ исходящее (мейнтейнер на PR, ответ в DM, коммент)?
- GitHub:
gh pr list/gh apiпо нашим открытым PR (реестр в памяти/MEMORY.md) + вахта pr_watch. - Есть ответ → это прерывание №1: сначала отвечаем same-day, потом всё остальное (вкл. новый PR и ретро). Отклик экосистемы = сама суть миссии.
- Просьба о КРЕДИТЕ = удовлетворить немедленно и щедро: co-author в authors/registry + референс на исходный issue, коммит с проверяемым диффом.
- После нашего ответа тишина ~3 дня → ОДИН вежливый пинг («готово, скажи если поправить — same-day»), не чаще.
- GitHub:
-
АНКЕР-ЧЕК: чью живую просьбу закрывает ЭТО исходящее? Обязателен линк-анкер:
- PR → open issue / proposal / discussion мейнтейнера (радар: дашборд LLM-Cookbook-Radar +
gh search issues); - DM/инвайт → его вопрос/боль/пост, на который отвечаем;
- пост/заявка → явный запрос площадки/человека. Анкера НЕТ → НЕ шипим. «Ещё один рецепт/DM в пустоту» = антипаттерн. Либо ищем анкер (issue-matching), либо идея → alpha-backlog. Тихое прошлое исходящее не добивать объёмом — менять таргетинг.
- PR → open issue / proposal / discussion мейнтейнера (радар: дашборд LLM-Cookbook-Radar +
1-бис. PRIOR-ART-ЧЕК В САМОМ РЕПО (anton 24.09, урок serena#2048 «already fixed via #2096»): перед PR/issue — ДВЕ команды по теме касания: gh pr list -R <repo> --search "<ключевые слова>" --state all --limit 10 + gh search issues --repo <repo> "<слова>" --limit 10; плюс беглый взгляд на свежие коммиты затронутого файла (gh api repos/<repo>/commits?path=<file>&per_page=5). Нашёлся открытый/свежезакрытый двойник → НЕ шипим свой, идём в ЕГО тред (ревью/коммент по §4.7). Класс: outbound-pr-duplicates-existing-work.
1-тер. ⭐ ПРАВО ВХОДА — ПРОВЕРЯЕТСЯ ВМЕСТЕ С ЗАНЯТОСТЬЮ, ОБА ДО СТРОЙКИ (08.10.2026). Дверь может быть никем не занята и при этом НЕ ПРИНИМАТЬ PR: репо требует assignment до PR и авто-закрывает остальное. Замер 05.10, оплаченный целым прогоном: pydantic/pydantic-ai#8582 пришла FREE (и это правда), вклад построен целиком, PR #9835 авто-закрыт ботом через минуту — а в CONTRIBUTING.md это стояло словами, то есть ловилось бесплатно ДО стройки. Единственный судья — python3 ~/.claude/scripts/door_claimcheck.py (JSONL с repo/issue на stdin): вердикт GATED = НЕ строим. ⛔ Копий этой логики здесь НЕ делаем — спрашиваем прибор. ⚠️ И ещё раз перед gh pr create: между отсевом и Send issue могут назначить другому.
1-тер. ПУТЬ-ВЕРИФИКАЦИИ-ЧЕК для веера (anton 24.09, урок Nango 10 PR): волна >2 однотипных PR → ДО отправки первого назвать, ЧЕМ каждый будет верифицирован (ключ/окружение/тест) и есть ли этот ресурс У НАС — сверка по реестру ~/.claude/registry/verification_park.json (status=have обязателен; absent там значит «не нашли в названном охвате», не «нет в мире» — нашёл ключ → допиши реестр). Ресурса нет → PR не рождается (или рождается ровно один пилот). Класс: fanout-before-verification-path-known, родня human-step-needs-forcing-function.
1-кватер. ОДИН РЕПО — ОДИН НАШ ОТКРЫТЫЙ PR (30.09.2026, оплачено QwenLM/Qwen-Agent#927).
Два наших PR в одном репо конкурируют за внимание ОДНОГО мейнтейнера и вместе читаются как
веер, даже если каждый по делу. #927 и #928 мы открыли в один день и #927 закрыли САМИ через
сутки — работа впустую, потому что правила не было.
python3 ~/.claude/scripts/gh_pr_discipline.py one-pr <owner/repo> # exit 1 = не открываем
exit 1 → новый PR НЕ рождается. Вместо него по порядку предпочтения: довести существующий до
мержа (ответить, снять stale, ребейзнуть) · влить новую работу коммитом в него же, если тема та
же · закрыть мёртвый своими руками ПЕРЕД новым · уйти в другой репо через /issue-match.
exit 4 = забор упал: это не «чисто», вердикт не выдаём и не шипим (§5.4 индикатор = claim).
Класс: two-our-prs-compete-in-one-repo, родня cold-pr-into-silent-queue.
⭐ ШАБЛОННОСТЬ (anton 01.10.2026, оплачено NangoHQ/nango): гейт ВСЕГДА зовётся с заголовком нового PR:
python3 ~/.claude/scripts/gh_pr_discipline.py one-pr <owner/repo> --title "<заголовок нового PR>"
Заголовок отличается от прошлых наших в этом репо ТОЛЬКО именем сущности (вендор/провайдер/язык/модель)
и ни один из них не MERGED → exit 1 + вопрос «а первый по шаблону уже приняли?». N таких PR = ОДИН веер,
а не N вкладов. Разрешено: один первый → вердикт человека → остальные, лучше одним PR на несколько
сущностей, если их CONTRIBUTING это допускает. Замер: 9 PR «add support for <вендор>», 8 закрыты, а
закрывающий коммент #7539 показал их процедуру на новый API — дверь была, но мы уже отстрелялись.
Б (выше) считает ЧИСЛО открытых, это — ШАБЛОННОСТЬ; 1-тер — путь проверки. Три разных вопроса, не дубль.
Класс: template-pr-fanout-one-repo. Тест: _test_gh_pr_discipline.py D1–D7 (красный до фикса 01.10).
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.
- 7d ago Changed · +77 lines · -75 tokens per session 4ec5fdc182e9
- 11d ago Changed · -1 lines 1c80b93023bf
- 16d ago Changed · +13 lines 2f116d6b8ccf
- 25d ago First seen · 36 lines · 129 tokens per session scan A 3929119a05ee
outbound-gate is a skill published in the GitHub repository tonydzi/second-brain-starter-kit (9 stars, last pushed today), licensed MIT. It adds 54 tokens to every session and 4,208 once invoked, about $0.0002 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-09-24.
Other skills, from other repositories
canvas
Create, inspect, and update Obsidian JSON Canvas boards with text, file, link, group, and edge nodes. Use for canvas status, canvas lists, visual maps, zones, spatial layouts, adding vault notes or media to a .canvas file, and requests such as create canvas, add to canvas, or put this on the canvas.
defuddle
Plan and, with explicit network consent, use an optional external Defuddle cleaner to extract article-like HTTPS pages as Markdown. Use for defuddle, clean this URL, strip page clutter, readable Markdown from a web page, or preparing a web source for later wiki ingestion.
obsidian-markdown
Explain, draft, or validate Obsidian Flavored Markdown syntax: properties, wikilinks, embeds, callouts, tags, comments, highlights, block references, math, and Mermaid. Use when the user explicitly requests Obsidian note formatting or syntax help, not for general Markdown or broad vault operations.
wiki-fold
Create a bounded, extractive, structurally idempotent rollup of recent Obsidian wiki log entries, with dry-run preview by default and one optional transaction apply. Use for manual log compression without modifying child pages. Triggers: fold the log, run a fold, run wiki-fold, log rollup, roll up log entries, commit…
wiki
Initialize, adopt, and route work for a separate Obsidian knowledge vault through the portable claude-obsidian core. Use for vault setup, scaffolding, workspace selection, cross-project configuration, or choosing the correct wiki sub-skill. Triggers: /wiki, set up wiki, scaffold vault, create knowledge base, adopt…
wiki-lint
Run a deterministic, read-only health check on an Obsidian wiki. Use for lint, vault health check, audit wiki health, find orphans, find dead links, frontmatter audit, provenance audit, or wiki audit. Reports graph, link, frontmatter, provenance-ledger, empty-section, and stale-index findings; it does not reason…