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 agentmods add skills/tonydzi/second-brain-starter-kit/faaa-syncnpx skills add tonydzi/second-brain-starter-kit --skill faaa-syncgit 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/faaa-sync)<a href="https://agentmods.dev/skills/tonydzi/second-brain-starter-kit/faaa-sync"><img src="https://agentmods.dev/badge/skills/tonydzi/second-brain-starter-kit/faaa-sync.svg" alt="Measured on agentmods" 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 | $0.00084 | $0.01633 |
| Opus 5 | $0.00042 | $0.00816 |
| Sonnet 5 | $0.00017 | $0.00327 |
| Haiku 4.5 | $0.00008 | $0.00163 |
Grade A, and why
faaa-sync 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 3d 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 — 61 lines — stays where its author put it; the contents beside it link to each section on GitHub.
OBJECTIVE: Pull fresh FAAA follow-up call notes from the operator's Telegram group and incrementally ingest them into the Obsidian Platinum-CRM, on demand. Fully idempotent (dedup by Telegram message id) — safe to re-run, never creates duplicates. Identical pipeline to the weekly task faaa-weekly-sync; the only difference is that this fires when the operator asks.
CONTEXT:
- Source: Telegram supergroup "CALLS — FOLLOW-UPS MAIN (call summaries ONLY and NOTHING ELSE)", chat_id = <YOUR_CHAT_ID> (read via the Telegram MCP; logged-in account @work_acct_a).
- Each substantive message is a call follow-up summary (in any language): starts with "Follow-up of our call 👣" / "Follow-Up 👣", has a "Participants:" / "Meeting participants:" line with the lead's @handle, bullets, and "Agreements 🤝". Spam/promos + voice-note ops messages also appear — the scripts' triage filters them out (only real follow-ups become lead cards).
- CRM vault: $OBSIDIAN_VAULT/04-Projects/crypto/Platinum-CRM/leads/. Scripts + checkpoints: $IMPORTS_ROOT/.
- Watermark (last imported msg id) = max integer id in $IMPORTS_ROOT/faaa-archive.jsonl.
STEPS:
- BACKUP FIRST (vault-backup-rule): run the vault backup (python $IMPORTS_ROOT/vault_backup.py, or the obsidian-backup skill) BEFORE any write. This step renders cards into the live vault — never skip the backup.
- Health-check the Telegram MCP: call get_me. If it errors, STOP and report "Telegram MCP is down — skipped" (do not proceed).
- Watermark: read the max integer message id in $IMPORTS_ROOT/faaa-archive.jsonl (python -c that loads the jsonl, prints max int id, ASCII only). Call it WM.
- Pull history: call the Telegram MCP get_new_messages_since for chat_id <YOUR_CHAT_ID> with min_id = WM, limit 200 (or get_history limit 200 then filter id > WM). If the oldest returned id is still > WM, fetch again with a larger window to cover the whole gap.
- If NO message has id > WM: STOP and report "No new FAAA follow-ups." Do nothing else.
- Write the new messages (id > WM) to $IMPORTS_ROOT/faaa/faaa-new-msgs.json as: {"chat_id":<YOUR_CHAT_ID>,"watermark":WM,"results":[{"id":,"sender":,"date":,"text":,"media":}]} Include the COMPLETE verbatim text of each message — never truncate or paraphrase (faithful raw import).
- Run: python $IMPORTS_ROOT/ingest_faaa_live.py (classifies follow-ups, regex-extracts the lead @handle from the Participants line, team-filters, dedups vs existing leads by handle → writes faaa\live_bundles.json [NEW leads] and faaa\live_appends.json [calls for EXISTING leads]; prints a summary).
- Read $IMPORTS_ROOT/faaa/live_bundles.json. For EACH new lead, synthesize a CRM record GROUNDED ONLY in that lead's call text (never invent), an object with EXACTLY these keys: lead_key (echo unchanged), name, company, role, country, category (one of investor/fund/vc/advisor/project/founder/exchange/service/media/kol/dev/other), status (one of new/negotiating/interested/partner/advisor/stale/declined), what_they_do, what_they_want, what_we_offered, agreements, outcome, summary (2-4 sentences), tags (3-7 kebab-case), lang (ru/en). Use "" for unknown fields. Write the array to $IMPORTS_ROOT/faaa/live_synth.json via the Write tool (UTF-8, real Cyrillic, NO byte-order-mark). If live_bundles.json is an empty array, write [] there.
- Run: python $IMPORTS_ROOT/render_live.py (creates lead cards in leads<year>\ + person overlays in 07-People\ + day-ledger entries for NEW leads; APPENDS fresh calls to existing leads' cards; appends rows to faaa-archive.jsonl to advance the watermark; tags everything #top-lead).
- Run: python $IMPORTS_ROOT/build_combined_moc.py (refresh _Platinum-CRM-MOC counts).
- Validate: python broken-link check (basename resolution vs all vault .md basenames) over the newly created/changed cards — expect 0 broken. If any broken, report them.
CONSTRAINTS:
- WINDOWS cp1252: never print Cyrillic to stdout in python (it crashes) — write results to UTF-8 files and Read them; keep all python stdout ASCII (counts/slugs only).
- INCREMENTAL ONLY — do NOT trigger any full FAAA/CRM rebuild or re-render of the whole leads\ folder (that could change slugs and break the 07-People links).
- Provenance on everything: origin: mixed, authored_by: hybrid — NEVER tag #anton-original (these are records of other people's pitches).
- Team handles (@work_acct_a, @personal_acct, @corp_acct*, @owner_alt*, @Madina*) are NOT leads — the scripts already exclude them.
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.
- 3d ago First seen · 61 lines · 84 tokens per session scan A 3f2fcc2b5181
faaa-sync is a skill published in the GitHub repository tonydzi/second-brain-starter-kit (5 stars, last pushed 4d ago), licensed MIT. It adds 84 tokens to every session and 1,633 once invoked, about $0.0004 per session on Opus 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-31.
Other skills, from other repositories
superbrain-distill
Internal SuperBrain skill — run by the detached capture child to distill a session-event delta into routed Obsidian notes. Not for direct user invocation.
enzyme-sqlite-source
Connect an unfamiliar SQLite database to Enzyme without changing the source data. Inspect the database, decide which query columns represent identity, people, time, content, and folders, show real examples for approval, save the mapping in TOML, and verify init and refresh. Use for email, message, CRM, archive, or…
inbox
Scan the LLM Wiki 00. Inbox, preview pending files, choose scope/purpose mode, and route selected material through ingest; also responds to /inbox and 인박스 점검.
obsidian-bases
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.
obsidian-bases
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.
wiki-ingest
Ingest supplied source material into an Obsidian vault with provenance and claim tracking: pasted text, files staged in the selected vault's inbox or .raw archive, or explicitly approved URLs. Use for a single source or bounded batch, not for saving an assistant answer. Triggers: ingest, ingest this file, ingest this…