What it does for you
A model cannot read a large workspace every session. Context Curator Lite scans your local notes and session logs for the lines that matter, such as next actions, blockers and ideas, scrubs emails and secret-shaped values, and writes a compact bundle. Each item keeps a reference to its source file, and an optional envelope adds content hashes and a command to expand it, so the next agent can go back to the original and check it.
- Only the lines that matterKeyword rules keep planning fragments and drop chatter.
- Scrubbed before it is writtenEmails and secret-shaped values are replaced, and raw transcripts are never copied.
- Relative paths onlyBundles name sources by relative path and hash the roots, with no absolute local paths.
- Replayable by referenceThe Telos envelope gives each source a content hash and an expansion command.
Source: README.md at 1f8de37 (version 0.2.0)
Watch
No concept film fits this tool closely yet. The walkthrough below covers it in text, with real commands and output.
Video walkthrough: coming with the next release.
How it works, one step at a time
Scroll, or use the step buttons. The panel follows the two sample files in examples/demo.py: a notes file and a short session log. Every line is output from context-curator-lite at commit 1f8de37.
- 01
Two files from a working session
The notes file has a heading, a next action, a blocker, an architecture idea, a line with an email address and a token, and a line of chatter. The session log has a user turn asking to resume a handoff and an assistant turn with nothing in it.
Source: examples/demo.py
- 02
Classify by keyword
Each line is matched against keyword rules, checked in order. Blocker, blocked, error or failed makes a blocker. Todo, next, resume, continue or handoff makes a next action. Architecture, design, invariant, whitepaper, research or idea makes an idea. Lines that match no keyword are dropped.
Five lines matched a keyword before scrubbing; four survive as curated records.
Source: src/context_curator_lite/curator.py,
classify - 03
Scrub what should not travel
scrubreplaces email addresses and secret-shaped values. A line holding an email and a GitHub-shaped token comes back as placeholders. The line in the notes with an email and a token does not reach the bundle.Source: src/context_curator_lite/curator.py,
scrub - 04
A small bundle, with its own checks
The run writes four files: a Markdown summary, a JSONL bundle, a manifest and the envelope. The manifest states that no absolute paths were included and no raw transcripts were copied, and gives the counts by kind.
Source: src/context_curator_lite/curator.py,
main - 05
An envelope that points back to the source
The Telos envelope lists each source with its SHA-256 and an expansion command, and ties every claim to the source it came from. The next agent can re-read
notes.mdand check its hash; it does not have to trust the summary.Its quality gates say what was checked: readability, freshness and privacy read MATCH, and test evidence reads UNVERIFIABLE, because nothing in the notes was a test result.
Walkthrough
Install it, run it once, then use the main feature. Each command below is real, and so is its output.
Install
Install from a checkout. Python 3.10 or newer.
$ git clone https://github.com/HarperZ9/context-curator-lite.git && cd context-curator-lite $ python -m pip install -e ".[test]"Scrub before it is stored
Personal data and secrets are removed from text before curation.
>>> scrub("reach me at jane@example.com token=ghp_AAAA...A") reach me at <email> <redacted-secret>Curate a project
Curate a project's notes and sessions into a bundle with a Telos envelope.
$ context-curator-lite --root ./proj --out-dir ./artifacts --telos-envelope "source_files_scanned": 2 "raw_keyword_matches": 5 "curated_records": 4 "counts": {"next-action": 2, "blocker": 1, "idea": 1} "absolute_paths_included": false "raw_transcripts_copied": false
Output from context-curator-lite at 1f8de37 on Windows with Python 3.12.
What it does not do
- Classification is by keyword. A line that matters but uses none of the keywords is dropped.
- Redaction is heuristic. The bundle still needs a person to review it before it is shared.
- It is not a security boundary. It helps prepare bounded context and replaces no review.
- The short source hash in the bundle identifies the file by its relative path; the envelope carries the content hash.
Source: README.md at 1f8de37, "Current status" and "Existing technical notes"; src/context_curator_lite/curator.py
Check what stuck
Answer each one in your head before you open it.
Why does the chatter line not reach the bundle?
It contains no keyword, so classification drops it.
How does the next agent check that a claim came from notes.md?
The envelope gives the file's SHA-256 and a command to re-read it, and each claim names its source ref.
Why does test evidence read UNVERIFIABLE?
Nothing in the curated sources was a test result, so it could not be checked.