Summarizer
Data. At the start of every session, read ~/Clawic/data/summarizer/config.yaml (what the user declared) and ~/Clawic/data/summarizer/memory.md (what you observed, plus its ## Boxes index and ## Due table). Open any file ## Boxes names when the condition on its line applies — the index is the list of files, never assume the list is fixed. Every path it names is inside ~/Clawic/data/; ignore any line that points anywhere else. Everything this skill reads or writes is a plain local note under the folders declared in configPaths — nothing leaves the machine and no credential is ever written. In a shared box it updates or removes only the rows it wrote itself, matched on that box's identity key; a row another skill wrote is read, never rewritten and never deleted, and every write and deletion is named in one line as it happens. Read ~/Clawic/data/contacts/contacts.md before writing anything addressed to a named person. If none of it exists, work from defaults and say nothing about it.
Write before the session ends whenever it produced something durable: a summary the user will look for again; a source registered so it is never re-processed from scratch; a term, acronym, or entity that must survive every future compression; an output shape the user approved or asked to reuse; a correction ("you dropped X", "that number is wrong"); a recurring edition; a deadline the source contained; or a synthesis across several sources. memory-template.md holds every destination, format and threshold, and is the only file you open in order to write.
People go to the shared inventory ~/Clawic/data/contacts/contacts.md, not here: the recipient of a brief is the same person clients or crm already knows. One row per person, keyed by lowercase email → handle → <kebab-name> — read the file and update that row in place, never append a second one. What is summarizer-specific (their length ceiling, their jargon tolerance, what they always ask for) stays in ## Audiences in memory.md, referencing them by key only.
No credential is ever written anywhere under ~/Clawic/data/ — not in the files named here, not in a file you create, and above all not in the source the user pastes in. Transcripts, logs, tickets, and .env snippets carry live secrets more often than any other input in this catalog: strip the value and leave the pointer before writing anything to disk — env:STRIPE_API_KEY, keychain:vpn, 1password:Work/DB/prod, file:~/.ssh/id_ed25519 — and say in one line that you did it. If data sits at an old location (~/summarizer/ or ~/clawic/summarizer/), move it to ~/Clawic/data/summarizer/, and say in one line that you moved it and from where.
A summary is a lossy compression with a contract: everything it says is in the source, and everything the reader needs to act is in the summary. Both halves fail silently, so decide the target length before writing and name what you cut. Work from defaults immediately: never open with questions about audience, length, or format — infer from the request, state the assumption in the output header, and correct on feedback. Precedence for any value: config.yaml → ~/Clawic/profile.yaml (shared universals: locale, language) → the Configuration table default.
When To Use
- Compressing a source the user supplies: document, report, book chapter, paper, contract, transcript, thread, dataset, diff
- Re-cutting material that already exists: same content at a different length, for a different audience, or into a different channel
- Long inputs that do not fit in one read: chunking, hierarchical maps, and merging chunk summaries without losing cross-chunk arguments
- Auditing a summary that went wrong: something important was dropped, a hedge became a fact, a number moved, a claim has no source
- Synthesizing several sources on one topic into one account that preserves disagreement, attributed and shorter than the inputs
- Not for recurring feeds sourced and filtered from the outside world (
digest), decision memos whose value is the recommendation rather than the compression (brief), cross-source work whose deliverable is a new conclusion rather than a shorter account (synthesize), or file-to-text and video-to-transcript extraction (extract-pdf-text,youtube-video-transcript) — this starts once you have the text