Install
$ agentstack add skill-tonydzi-second-brain-starter-kit-content-mine ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
CONTENT_MINE — sessions → funnel drafts (draft-first, taste delegated to me)
GOAL: mine our Claude Code sessions for content-worthy MOMENTS and drop them as DRAFTS into the content-factory funnel. Publishing happens only on the operator's explicit "+" through /episode. Nothing goes out.
The operator delegated the taste call — "what deserves to be content" — to me (2026-07-08). I don't ask what to add; I decide.
PATHS:
- Engine:
$IMPORTS_ROOT/content-factory\content_miner.py(same family as alpha-extraction / intention_mine; reads the livevault_sessionspool). - Funnel (intake):
content-factory\triage\posts.jsonl(+posts.md),source_kind: session. Writes throughvoice_triage.py append(dedup/upsert). - Digest:
content-factory\miner\candidates\cand-latest.md. Ledger:miner\captured.jsonl.
STEPS:
- SCAN (deterministic, 0 tokens). Recent by default:
python content_miner.py mine --days 7. Backlog / the whole archive:mine --all --operator Anton --cap 150. Flags:--day YYYY-MM-DD,--operator all,--cap N. NoteOVER_THRESHOLDandOUT. - Empty (SESSIONS=0 / OVER_THRESHOLD=0) → say "no fresh moments worth capturing" and stop.
- READ the digest
cand-latest.md(orOUT). Each ### = a sessionsrc | date | machine | operator [PRIV] {score · tags}+ a headline + snippets ([U]=the operator, [A]=Claude). Look at the top ones (HOT→WARM); on large volumes, fan out Sonnet judges over slices (seeminer\slices\), they return JSON verdicts, you dedup and capture. - JUDGE BY TASTE: keep the genuinely worthy and DIFFERENT stories (built/shipped it · a war with a bug / a root cause · a human+AI, multi-machine or consensus technique · a sharp insight · a "wow"). Drop routine, thin, forked duplicates (similar headline → one story), purely private material. Positioning: non-coder + AI is the trump card; the goal is an offer from an LLM company plus an audience of builders.
- CAPTURE the worthy ones:
python content_miner.py capture --src --title "" --note "" --tier teaser|medium|longread|dev-log --angle "" --visibility public|personal|private. Tier: teaser=a hook; medium=the public diary post; longread=a narrative; dev-log=dry and technical. [PRIV] / anything that can't be scrubbed →--visibility personal. The engine blocks secret-looking tokens and dedups by src. - BRIDGE INTO THE CANON (the law "an event → first a beat → then a post", [[show-canon-single-source]]): for the 1-2 strongest public moments create a draft BEAT in
04-Projects\show-canon\beats-inbox\using the templatebeats\_TEMPLATE-beat.md(+authored_by: content-miner); never write intobeats\directly — the canon writer moves them. Older (pre-canon, before 2026-07-08) events get a backfill beat only when an episode is actually being assembled from them. - REPORT to the operator (ELI5): how many sessions were scanned → how many drafts went into the funnel (with tiers) → how many beat candidates landed in the canon inbox; what's next = /episode on a "+", the outbound queue =
registry\pub_registry.py(queue → next → posted, limits in limits.json). Showpython content_miner.py captured --limit N.
BOUNDARIES (keep it simple and repairable):
- Draft-first, HARD: drafts only; no auto-publish; nothing goes out.
- Secrets/private material/CRM/leads never become content (engine gate + [[credential-store]]).
- Don't build a parallel monolith — reuse contentminer + voicetriage + /episode.
- Grunt work (detection/classification) = Sonnet; the authored post text = Opus (and that happens in /episode, not here).
- This is the manual twin of the nightly
content-miner-nightly; the archive backlog was closed in one pass on 2026-07-09 (miner\debt-log.md).
About & contact
Built and battle-tested at Palo Alto AI Research Lab — a fleet of Claude Code machines running 24/7 as a second brain and synthetic cofounder. Every skill here survived real production use before publication.
- 📦 All 101 skills: https://github.com/tonydzi/second-brain-starter-kit
- 👤 Author: Anton Dziatkovskii — Telegram @tonydzi · WhatsApp +1 341 222 9178 · X @TonyStef_
- 🧪 Engineers: want to test-drive this setup? Message me — I hand out free starter seeds to engineers who test and report back. Custom skill requests welcome.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: tonydzi
- Source: tonydzi/second-brain-starter-kit
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.