context-handoff-bundle 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. context_handoff_bundle-0.3.0/LICENSE +21 -0
  2. context_handoff_bundle-0.3.0/PKG-INFO +466 -0
  3. context_handoff_bundle-0.3.0/README.md +440 -0
  4. context_handoff_bundle-0.3.0/pyproject.toml +51 -0
  5. context_handoff_bundle-0.3.0/setup.cfg +4 -0
  6. context_handoff_bundle-0.3.0/src/context_handoff_bundle/__init__.py +2 -0
  7. context_handoff_bundle-0.3.0/src/context_handoff_bundle/__main__.py +4 -0
  8. context_handoff_bundle-0.3.0/src/context_handoff_bundle/anchors.py +205 -0
  9. context_handoff_bundle-0.3.0/src/context_handoff_bundle/autocontext.py +463 -0
  10. context_handoff_bundle-0.3.0/src/context_handoff_bundle/cli.py +1250 -0
  11. context_handoff_bundle-0.3.0/src/context_handoff_bundle/compare.py +194 -0
  12. context_handoff_bundle-0.3.0/src/context_handoff_bundle/drift.py +403 -0
  13. context_handoff_bundle-0.3.0/src/context_handoff_bundle/freshness.py +156 -0
  14. context_handoff_bundle-0.3.0/src/context_handoff_bundle/quality.py +221 -0
  15. context_handoff_bundle-0.3.0/src/context_handoff_bundle/resume.py +257 -0
  16. context_handoff_bundle-0.3.0/src/context_handoff_bundle/schemas/bundle_metadata.schema.json +20 -0
  17. context_handoff_bundle-0.3.0/src/context_handoff_bundle/schemas/entities.schema.json +20 -0
  18. context_handoff_bundle-0.3.0/src/context_handoff_bundle/schemas/evidence_index.schema.json +22 -0
  19. context_handoff_bundle-0.3.0/src/context_handoff_bundle/schemas/open_questions.schema.json +16 -0
  20. context_handoff_bundle-0.3.0/src/context_handoff_bundle/schemas/relations.schema.json +17 -0
  21. context_handoff_bundle-0.3.0/src/context_handoff_bundle/schemas/summary.schema.json +42 -0
  22. context_handoff_bundle-0.3.0/src/context_handoff_bundle/storage.py +296 -0
  23. context_handoff_bundle-0.3.0/src/context_handoff_bundle/templates/CONTEXT_HANDOFF.template.md +61 -0
  24. context_handoff_bundle-0.3.0/src/context_handoff_bundle/templates/bundle_metadata.template.json +10 -0
  25. context_handoff_bundle-0.3.0/src/context_handoff_bundle/templates/entities.template.json +13 -0
  26. context_handoff_bundle-0.3.0/src/context_handoff_bundle/templates/evidence_index.template.json +9 -0
  27. context_handoff_bundle-0.3.0/src/context_handoff_bundle/templates/open_questions.template.json +9 -0
  28. context_handoff_bundle-0.3.0/src/context_handoff_bundle/templates/relations.template.json +10 -0
  29. context_handoff_bundle-0.3.0/src/context_handoff_bundle/templates/resume_prompt.template.txt +12 -0
  30. context_handoff_bundle-0.3.0/src/context_handoff_bundle/templates/summary.template.json +24 -0
  31. context_handoff_bundle-0.3.0/src/context_handoff_bundle/tokens.py +104 -0
  32. context_handoff_bundle-0.3.0/src/context_handoff_bundle.egg-info/PKG-INFO +466 -0
  33. context_handoff_bundle-0.3.0/src/context_handoff_bundle.egg-info/SOURCES.txt +38 -0
  34. context_handoff_bundle-0.3.0/src/context_handoff_bundle.egg-info/dependency_links.txt +1 -0
  35. context_handoff_bundle-0.3.0/src/context_handoff_bundle.egg-info/entry_points.txt +2 -0
  36. context_handoff_bundle-0.3.0/src/context_handoff_bundle.egg-info/top_level.txt +1 -0
  37. context_handoff_bundle-0.3.0/tests/test_anchors.py +145 -0
  38. context_handoff_bundle-0.3.0/tests/test_drift.py +248 -0
  39. context_handoff_bundle-0.3.0/tests/test_save_load.py +214 -0
  40. context_handoff_bundle-0.3.0/tests/test_tokens.py +84 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Wes Sander and contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,466 @@
1
+ Metadata-Version: 2.4
2
+ Name: context-handoff-bundle
3
+ Version: 0.3.0
4
+ Summary: Durable context handoffs for AI coding agents -- resume any session for a fraction of the tokens
5
+ Author: Wes Sander + MoltFire
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/ucsandman/context-handoff-bundle
8
+ Project-URL: Repository, https://github.com/ucsandman/context-handoff-bundle
9
+ Project-URL: Issues, https://github.com/ucsandman/context-handoff-bundle/issues
10
+ Keywords: ai-agents,claude-code,context-management,token-efficiency,llm,developer-tools
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Topic :: Software Development
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Dynamic: license-file
26
+
27
+ # Context Handoff Bundle
28
+
29
+ [![CI](https://github.com/ucsandman/context-handoff-bundle/actions/workflows/ci.yml/badge.svg)](https://github.com/ucsandman/context-handoff-bundle/actions/workflows/ci.yml)
30
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue)](https://github.com/ucsandman/context-handoff-bundle)
31
+ [![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE)
32
+
33
+ **Resume yesterday's AI coding session for ~3% of the tokens.**
34
+
35
+ Every new session, your AI coding agent re-orients from zero: re-reads the README, re-walks the source tree, re-derives everything it already knew yesterday. With frontier models like Anthropic's Fable 5 and Opus, that cold start burns tens of thousands of input tokens -- every single session -- before any real work happens.
36
+
37
+ Context Handoff Bundle captures what the agent learned during a session into a structured, evidence-backed bundle. The next session loads it as a compact resume -- typically a few hundred tokens instead of a multi-thousand-token re-read -- with honest drift detection that tells you what's still safe to trust. Plain files on disk. No cloud, no API keys, zero dependencies.
38
+
39
+ ```
40
+ Terminal 1 (end of day):
41
+ $ context-handoff-bundle save --title "Auth refactor progress"
42
+ saved: strong (0.84) -- 6 findings, 4 evidence anchors, 3 open questions
43
+
44
+ Terminal 2 (next morning):
45
+ $ context-handoff-bundle load
46
+
47
+ # Resume: Auth refactor progress
48
+
49
+ ## State
50
+ - Active areas: middleware, token-validation, session-handling
51
+ - Work in progress (2 modified, 1 staged): src/middleware/auth.ts, src/routes/api.ts
52
+ - Technology stack: TypeScript, Node.js, Docker
53
+
54
+ ## Drift
55
+ Severity: LOW -- 2 commits, 3 files touched since save.
56
+ - src/middleware/auth.ts CHANGED
57
+ - Findings: **medium** | Evidence: partial (1/4 affected) | Recommendations: **medium**
58
+
59
+ ## Open First
60
+ - src/middleware/auth.ts (changed since save)
61
+ - src/routes/api.ts (active WIP)
62
+
63
+ ## Next Moves
64
+ 1. Complete token rotation implementation
65
+ 2. Add integration tests for session handling
66
+ 3. Update API docs for new auth flow
67
+
68
+ [tokens] resume: ~640 | re-deriving from source (6 files): ~23.0k | saved: ~97% (chars/4 estimate)
69
+ ```
70
+
71
+ No archaeology. No re-reading. No "let me look at the codebase..."
72
+
73
+ ---
74
+
75
+ ## Why This Exists
76
+
77
+ AI coding agents build deep understanding during a session: which files matter, how components connect, what was tried, what decisions were made, what's still uncertain.
78
+
79
+ **All of that disappears when the session ends.**
80
+
81
+ The next session starts from zero. You re-explain. The agent re-reads. You repeat research. Every time.
82
+
83
+ Context Handoff Bundle fixes this with three ideas:
84
+
85
+ 1. **Structured save** -- not a chat export, but findings + evidence + open questions
86
+ 2. **Drift detection** -- on load, tells you exactly what changed and which findings are still safe
87
+ 3. **No fake certainty** -- quality scores, per-section confidence, honest "I don't know" signals
88
+
89
+ ---
90
+
91
+ ## The Token Math
92
+
93
+ Cold-starting an agent session means re-reading source files at full input price. A handoff resume replaces that with a few hundred tokens of distilled context.
94
+
95
+ Measured on this repo (every `load` prints your own numbers):
96
+
97
+ ```
98
+ [tokens] resume: ~640 | re-deriving from source (6 files): ~23.0k | saved: ~97% (chars/4 estimate)
99
+ ```
100
+
101
+ | | Cold start | Handoff resume |
102
+ |---|---|---|
103
+ | What the agent reads | Evidence files + README + docs, rediscovered by trial and error | One distilled, drift-checked resume |
104
+ | Input tokens (this repo) | ~23,000 | ~640 |
105
+ | Multiplied by | every session, every terminal, every teammate | once per save |
106
+
107
+ Two sessions a day on a mid-size repo easily means 50k-400k tokens/day spent on pure re-orientation. With current frontier-model pricing, that's real money for zero new understanding -- the agent is paying to relearn what it already knew.
108
+
109
+ **How the estimate works, honestly:** tokens are estimated as `chars / 4` (the standard heuristic), the re-read cost counts the bundle's evidence-anchored files plus standard orientation files (README, CLAUDE.md, etc.) at their current size. It's an order-of-magnitude measurement, not a billing statement -- and it's printed on every load so you can judge it against your own repo.
110
+
111
+ ---
112
+
113
+ ## Install
114
+
115
+ ```bash
116
+ pip install git+https://github.com/ucsandman/context-handoff-bundle.git
117
+ ```
118
+
119
+ or with [pipx](https://pipx.pypa.io/) for an isolated CLI install:
120
+
121
+ ```bash
122
+ pipx install git+https://github.com/ucsandman/context-handoff-bundle.git
123
+ ```
124
+
125
+ Development:
126
+
127
+ ```bash
128
+ git clone https://github.com/ucsandman/context-handoff-bundle.git
129
+ cd context-handoff-bundle
130
+ pip install -e .
131
+ pytest
132
+ ```
133
+
134
+ Requires Python 3.10+. Zero runtime dependencies (`jsonschema` is optional, for schema validation in `validate`).
135
+
136
+ ---
137
+
138
+ ## Core Workflow
139
+
140
+ ### Save
141
+
142
+ ```bash
143
+ context-handoff-bundle save --title "API migration analysis"
144
+ ```
145
+
146
+ Automatically gathers from your repo:
147
+ - Project purpose (README, CLAUDE.md)
148
+ - Active code areas from file-path analysis
149
+ - Recent git history and diff stats
150
+ - Work in progress (staged, modified, untracked)
151
+ - Test failure indicators
152
+ - Evidence file paths
153
+ - TODO/FIXME counts
154
+
155
+ ```json
156
+ {
157
+ "saved": true,
158
+ "bundle_id": "20260406-143022-api-migration",
159
+ "quality": "strong",
160
+ "score": 0.84,
161
+ "warnings": [],
162
+ "token_estimates": {
163
+ "bundle_tokens": 3696,
164
+ "source_reread_tokens": 23043,
165
+ "source_files_counted": 6,
166
+ "heuristic": "chars/4"
167
+ }
168
+ }
169
+ ```
170
+
171
+ ### Load
172
+
173
+ ```bash
174
+ context-handoff-bundle load # latest for current repo
175
+ context-handoff-bundle load api-migration # by slug
176
+ context-handoff-bundle load --deep # full context mode
177
+ ```
178
+
179
+ The resume output is operational, not archival:
180
+
181
+ | Section | What it tells you |
182
+ |---------|-------------------|
183
+ | **State** | What's true, what was established, active code areas |
184
+ | **Drift** | What changed since save, severity, which files moved |
185
+ | **Section confidence** | Findings: strong, Evidence: partial, Recommendations: STALE |
186
+ | **Open First** | Which files to look at, guided by drift and evidence |
187
+ | **Must Reverify** | What not to trust blindly |
188
+ | **Next Moves** | Specific actions, not generic "review the codebase" |
189
+
190
+ ### Diff
191
+
192
+ ```bash
193
+ context-handoff-bundle diff <older-bundle> <newer-bundle>
194
+ ```
195
+
196
+ Compare two bundles to see what evolved:
197
+ - New and gone findings
198
+ - Resolved questions
199
+ - Dropped recommendations
200
+ - Evidence changes
201
+
202
+ ### Manage
203
+
204
+ ```bash
205
+ context-handoff-bundle list # see all bundles
206
+ context-handoff-bundle show latest # inspect one bundle
207
+ context-handoff-bundle save --update # refresh latest bundle
208
+ context-handoff-bundle prune --keep 1 # clean old duplicates
209
+ context-handoff-bundle delete <bundle-id> # remove specific bundle
210
+ ```
211
+
212
+ ---
213
+
214
+ ## Drift Intelligence
215
+
216
+ This is the core differentiator. When you load a bundle, the tool doesn't just give you a summary -- it tells you how much of that summary is still safe.
217
+
218
+ At save time, every file anchor (`src/auth/middleware.ts:40-62 — JWT verify`) is resolved and its referenced line range content-hashed. At load time the hash is re-checked, commit anchors are verified against git, and each anchor gets an honest status: **verified** (content identical -- trust it, don't re-read it), **ok** (file untouched since save), **changed** (re-read before relying on it), **gone** (file or commit no longer exists), or **n/a** (URLs/commands -- not file-checkable). Line-range hashing means unrelated edits elsewhere in the file don't invalidate the anchor. All pure Python + git, zero LLM calls.
219
+
220
+ When something actually drifted:
221
+
222
+ ```
223
+ ## Drift
224
+ Severity: MEDIUM -- 8 commits, 12 files touched, 2 finding(s) at risk.
225
+ Evidence anchors: 5 verified, 1 changed, 1 gone (2 not file-checkable)
226
+
227
+ Anchors needing attention:
228
+ - src/auth/middleware.ts:40-62 — JWT verify CHANGED
229
+ - docs/auth-spec.md GONE
230
+
231
+ Findings that may be stale:
232
+ - F2 Auth middleware uses JWT with 24h expiry -- Evidence anchor changed
233
+ - F4 Session tokens stored in httpOnly cookies -- Evidence anchor gone
234
+ ```
235
+
236
+ And when the repo moved but nothing the bundle relies on was touched, the whole section collapses to two lines instead of crying wolf:
237
+
238
+ ```
239
+ ## Drift
240
+ 8 commit(s) and 12 file(s) touched since save; no evidence anchors affected. Evidence anchors: 7 verified
241
+ ```
242
+
243
+ Findings are flagged only when their own anchors changed or disappeared; recommendations only when the majority of checkable anchors drifted. Raw commit volume is context, never a staleness verdict.
244
+
245
+ **Severity levels:**
246
+ - **NONE** -- Bundle matches current repo state
247
+ - **LOW** -- Repo activity, but all evidence anchors intact
248
+ - **MEDIUM** -- Some anchored content changed; re-check the flagged findings
249
+ - **HIGH** -- Multiple anchors gone or most findings at risk
250
+
251
+ ---
252
+
253
+ ## Per-Section Confidence
254
+
255
+ Instead of one overall score, the resume shows confidence where it matters:
256
+
257
+ ```
258
+ Section confidence:
259
+ - Findings: mixed (2/6 at risk)
260
+ - Evidence: partial (2/8 affected)
261
+ - Recommendations: STALE
262
+ - Overall: MEDIUM - some drift
263
+ ```
264
+
265
+ This tells you: trust the findings that aren't flagged, re-check the two that are, and don't act on the recommendations without verifying first.
266
+
267
+ ---
268
+
269
+ ## Quality Scoring
270
+
271
+ Every bundle is scored on trustworthiness, not prettiness.
272
+
273
+ | Dimension | Weight | What it measures |
274
+ |-----------|--------|-----------------|
275
+ | Evidence coverage | 3x | Do findings point to real source files? |
276
+ | Open question honesty | 2.5x | Does the bundle admit what it doesn't know? |
277
+ | Repo specificity | 2.5x | Is this about a real project, not filler? |
278
+ | Findings substance | 2x | Are findings specific and actionable? |
279
+ | Resume usability | 2x | Does the resume actually help? |
280
+ | Completeness | 1x | Are files present with real content? |
281
+ | Markdown clarity | 1x | Is the narrative readable? |
282
+ | Entity richness | 0.5x | Structural extras (nice to have) |
283
+ | Relation richness | 0.3x | Structural extras (nice to have) |
284
+
285
+ Evidence, honesty, and specificity are weighted 3-5x more than structural completeness. A bundle with strong evidence and honest uncertainties scores higher than a pretty bundle with vague findings.
286
+
287
+ **Ratings:**
288
+ - **strong** (>= 0.6) -- Trust it for continuation
289
+ - **acceptable** (>= 0.35) -- Usable, may have gaps
290
+ - **weak** (< 0.35) -- Saved but flagged
291
+
292
+ ---
293
+
294
+ ## Claude Code Integration
295
+
296
+ Slash commands for [Claude Code](https://docs.anthropic.com/en/docs/claude-code):
297
+
298
+ ```
299
+ /handoff-save Author a notes file from the session, then save a handoff bundle
300
+ /handoff-load Load and resume from a saved handoff
301
+ /handoff-list List available bundles
302
+ /handoff-show Inspect a specific bundle
303
+ ```
304
+
305
+ **Setup (global — available in any project):**
306
+
307
+ ```bash
308
+ cp commands/handoff-*.md ~/.claude/commands/
309
+ ```
310
+
311
+ **Setup (project-local — available only in this repo):**
312
+
313
+ ```bash
314
+ cp commands/handoff-*.md .claude/commands/
315
+ ```
316
+
317
+ All logic lives in the Python CLI, not in the prompt text. The command files are thin wrappers.
318
+
319
+ **Important — `/handoff-save` requires `--notes`:** The CLI cannot see your conversation. When you run `/handoff-save`, Claude Code will author a structured notes file from the live session (findings, evidence, open questions) and pass it to the CLI via `--notes`. Saving without notes falls back to a blind directory scan and produces a low-quality stub. See the notes format in [Richer Bundles from Notes](#richer-bundles-from-notes) below.
320
+
321
+ ---
322
+
323
+ ## Storage
324
+
325
+ ```
326
+ Repo-local: .context-handoffs/index.json (per-repo, gitignored)
327
+ Global: ~/.context-handoff-bundles/index.json (cross-repo)
328
+ ```
329
+
330
+ Bundles are stored in registry-backed directories with `index.json` for fast lookup by ID, slug, title, repo, or tags. `save` defaults to the global store for cross-terminal portability. `load` searches both stores. Use `--repo-local` to force project-scoped storage.
331
+
332
+ Set `CONTEXT_HANDOFF_HOME` to relocate the global store (the test suite uses this so it never touches your real bundles).
333
+
334
+ Ambiguous queries surface options instead of guessing.
335
+
336
+ ---
337
+
338
+ ## Bundle Format
339
+
340
+ Each bundle is a directory of structured files:
341
+
342
+ | File | Purpose |
343
+ |------|---------|
344
+ | `CONTEXT_HANDOFF.md` | Human-readable narrative |
345
+ | `summary.json` | Findings, recommendations, resume instructions |
346
+ | `entities.json` | Normalized entities (projects, modules, concepts) |
347
+ | `relations.json` | Typed relationships between entities |
348
+ | `evidence_index.json` | Source file anchors backing findings |
349
+ | `open_questions.json` | Uncertainties with verification paths |
350
+ | `resume_prompt.txt` | Bootstrap prompt for fresh sessions |
351
+ | `bundle_metadata.json` | Git state, tags, quality score |
352
+
353
+ Plain JSON and Markdown. No proprietary formats. No cloud. No API keys.
354
+
355
+ ---
356
+
357
+ ## Richer Bundles from Notes
358
+
359
+ For maximum quality, save from structured session notes:
360
+
361
+ ```bash
362
+ context-handoff-bundle save --title "Architecture review" --notes notes.md
363
+ ```
364
+
365
+ ```markdown
366
+ ## Scope
367
+ Cross-service auth consolidation review.
368
+
369
+ ## Projects mentioned
370
+ - API Gateway
371
+ - Auth Service
372
+ - User Service
373
+
374
+ ## Findings
375
+ - Auth middleware duplicated across 3 services with subtle differences
376
+ - Session tokens use inconsistent expiry across services
377
+ - Gateway handles rate limiting but auth service doesn't
378
+
379
+ ## Open questions
380
+ - Should we consolidate to a shared auth library or API gateway middleware?
381
+ - What's the migration path for existing session tokens?
382
+
383
+ ## Evidence anchors
384
+ - api-gateway/src/middleware/auth.ts
385
+ - auth-service/src/handlers/session.ts
386
+ - user-service/src/middleware/verify.ts
387
+ ```
388
+
389
+ ---
390
+
391
+ ## All Commands
392
+
393
+ | Command | Purpose |
394
+ |---------|---------|
395
+ | `save` | Generate, score, and store a handoff bundle |
396
+ | `save --update` | Refresh the latest bundle with current context |
397
+ | `save --notes <file>` | Generate from structured session notes |
398
+ | `load [query]` | Resolve and emit operational resume context |
399
+ | `load --deep` | Full context mode with all evidence |
400
+ | `diff <a> <b>` | Compare two bundles, show evolution |
401
+ | `list` | List stored bundles with quality ratings |
402
+ | `show <query>` | Inspect a single bundle in detail |
403
+ | `score <path>` | Recompute quality score |
404
+ | `prune` | Remove old duplicates per slug |
405
+ | `delete <query>` | Remove a specific bundle |
406
+ | `validate <path>` | Check bundle files and JSON schemas |
407
+ | `init` | Create bundle directory from templates |
408
+
409
+ ---
410
+
411
+ ## Architecture
412
+
413
+ ```
414
+ src/context_handoff_bundle/
415
+ cli.py CLI commands and argument parsing
416
+ autocontext.py Task-aware repo context gathering
417
+ storage.py Registry-backed bundle store
418
+ quality.py Weighted trustworthiness scoring
419
+ drift.py File-level drift analysis
420
+ freshness.py Age and branch checks
421
+ resume.py Operational resume composition
422
+ compare.py Bundle-to-bundle comparison
423
+ tokens.py Token estimation (resume cost vs source re-read)
424
+ templates/ Bundle file templates
425
+ schemas/ JSON schemas for validation
426
+ ```
427
+
428
+ ---
429
+
430
+ ## Design Principles
431
+
432
+ 1. **No fake certainty.** If evidence is weak, say so. If nothing is uncertain, warn "suspiciously certain."
433
+ 2. **No silent guessing.** Ambiguous queries surface options. Stale bundles surface drift.
434
+ 3. **Code over prompts.** Core logic in Python, not trapped in prompt text.
435
+ 4. **Orient, don't flood.** Load gives you re-entry guidance, not a document dump.
436
+ 5. **Disk-backed.** Everything on disk. No hidden session state. Works across terminals.
437
+ 6. **Trustworthiness over prettiness.** Quality scores weight evidence and honesty, not formatting.
438
+
439
+ ---
440
+
441
+ ## Works With Any AI Coding Agent
442
+
443
+ The CLI and bundle format are agent-agnostic. Any tool that can run a shell command and read JSON/Markdown can use this. The slash commands target Claude Code, but the core is portable.
444
+
445
+ ---
446
+
447
+ ## Contributing
448
+
449
+ PRs welcome. See [docs/ROADMAP.md](docs/ROADMAP.md) for current status and planned work.
450
+
451
+ Priority areas:
452
+ - Sharper auto-context from deeper repo analysis
453
+ - Richer drift intelligence (test result comparison, config changes)
454
+ - Multi-session bundle merging
455
+ - Integrations for Cursor, Copilot, Aider, Windsurf
456
+
457
+ ## License
458
+
459
+ MIT
460
+
461
+ ## Support
462
+
463
+ If my tools save you time, you can support my work here:
464
+
465
+ [![Sponsor on GitHub](https://img.shields.io/badge/GitHub%20Sponsors-%E2%9D%A4-db61a2?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/ucsandman)
466
+ [![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-%E2%98%95-ffdd00?logo=buymeacoffee&logoColor=black)](https://buymeacoffee.com/wes_sander)