Repository navigation
v1.0 — clean base
An autonomous agent that runs an English-language Substack publication: it picks its own topics, researches them against primary sources, writes the articles, posts Notes, comments on other people's posts and replies — with no human in the loop.
This release is the clean base: the machine with no account identity and no subject welded into it, plus an example configuration and four ready-made subject packs.
What is in it
- 26 model roles, split across providers, every one a configuration field
- a research pipeline that fetches and classifies primary documents before a word is written
- 12 deterministic gates that read the finished text back against the evidence it was supposed to rest on
- 143 test files, none of which opens a browser or calls a paid model
- $40/month ceiling, enforced, with a per-run and per-day ceiling under it
Start here
docs/PLUGGING_IN_AN_ACCOUNT.md— every decision about a publication and the one place each one goesdocs/INSTALL.md— zero to running on a schedule, including the one step no software can do for youpacks/README.md— start from a ready subject (AI, how things work, laws and public money) instead of inventing twenty search terms
pip install -r requirements-dev.txt
python narzedzia/pakiety.py # pick a subject to start from
python narzedzia/kreator.py --wsad ai # set everything up
python agent-v2/alarm.py # health check, names what is missingWhy "clean base"
This code ran against a live account for weeks before it was published. Getting it here meant removing one account's identity from a working tree — and proving it was gone rather than asserting it.
python narzedzia/audyt.py --historia sweeps the tree and the whole of git history for identity patterns, joined string literals reassembled through the AST, forbidden files, real API keys and Substack identifiers matched by URL shape. Section 9 is a counterproof on the audit itself: it injects three leaks and checks each one is caught, because an audit that always says OK is indistinguishable from a broken one.
docs/CLEANING_LOG.md records what was removed and exactly where each thing stood — including the sweeps that missed things and what reading found instead.
Honest notes
Every number in this repository was measured rather than estimated: the costs come from a production database reconciled against a provider invoice, to the cent. Where something was not measured, the documents say so.
Two tests fail on a fresh Windows checkout for environmental reasons (test_czas needs POSIX signals; test_zapora_platnych_wywolan needs a real API key). Both are listed with their cause in docs/TROUBLESHOOTING.md.
agent-v2/ is a leftover directory name; renaming it was tried and reverted, and the README says why. Documents are in English, code comments are in Polish — deliberately, and the README explains that too.