Context Intelligence — Automated Memory Across Sessions
The biggest pain point in AI-assisted development: Claude forgets everything between sessions. You correct a mistake Monday. It repeats it Thursday. Your architecture decisions vanish.
This release fixes that with an automatic context flywheel — hooks capture what happens, signals get processed into permanent knowledge, and every session starts smarter than the last.
The Flywheel
DURING SESSION (automatic, zero intervention):
hooks capture signals → .shipworthy/.session-signals
NEXT SESSION START (automatic):
1. regression fence loads (hard constraints)
2. learnings load (patterns)
3. unprocessed signals → auto-retro table
4. user approves with "yes" → work begins
Regression Fence
New first-class concept. Anti-patterns loaded every session as hard constraints:
## NEVER use SQLite in this project — PostgreSQL only
Concurrent write failures in the API layer. (2026-03-15)
## NEVER add route handlers outside src/routes/
Route in src/utils/helper.ts broke middleware chain. (2026-03-20)- Prohibitive format that survives context decay
- Anchored to file paths (verifiable, not abstract)
- Max 20 entries, auto-populated from
/retro - Violations detected in real-time during writes
Signal Capture
Every hook now captures session events automatically:
⚓ shipworthy 14:32:05 signal › captured: security — secret detected in config.ts
⚓ shipworthy 14:32:06 signal › captured: pattern — console.log in payments.ts
⚓ shipworthy 14:33:01 signal › captured: git — commit: fix auth bug
⚓ shipworthy 14:33:15 signal › captured: dependency — added: lodash
12 capture points across security, pattern, git, dependency, and migration categories. Sub-millisecond overhead.
7 Principles of Context Engineering
The new context-manager skill teaches principles that make context survive across sessions:
- Prohibitions beat descriptions — "NEVER use Prisma" sticks. "We use Supabase" drifts.
- Anchor rules to file paths — "All validation in src/schemas/" is verifiable.
- Negative examples anchor harder — document past mistakes, not just aspirations.
- Constitution vs working memory — CLAUDE.md (stable) + session-state (dynamic).
- Only write what Claude can't infer — if the code shows it, the rule wastes context.
- Ordering is load-bearing — hardest constraints at top, conventions at bottom.
- Zero global bleed — no tone/philosophy in project scope.
/context Command
New health dashboard:
Context Health Dashboard
========================
CLAUDE.md 82 lines ✓
.shipworthy/ 6/8 standard files ✓
Regression fence 5 rules ✓
Session signals 0 unprocessed ✓
Context budget ~5,200/8,000 chars (65%) ✓
95% Automatic
| What | User Action |
|---|---|
| Signal capture during work | None |
| Fence violation warnings | None |
| Fence/learnings loaded at start | None |
| Signals → fence/learnings | Say "yes" |
| Session summary at end | None |
What's New
sw_signal()function — session event capture in shared hook library- 12 signal capture points across 3 hooks
- Regression fence loading in session-start (budget-aware)
- Fence violation detection in post-tool-use-write
- Auto-retro at session start (no manual
/retroneeded) context-managerskill with 7 principles and context triage/contextcommand for context health dashboard- Enhanced retrospective with signal reading and fence proposals
- 23 new tests (12 suites, all passing)
Install / Upgrade
npx shipworthy initFull release notes: RELEASE-NOTES.md
Full changelog: CHANGELOG.md