aboutsummaryrefslogtreecommitdiff
path: root/claude-rules/knowledge-base.md
Commit message (Collapse)AuthorAgeFilesLines
* feat(sentry): exclude mail and messengers, add a bug-finding passCraig Jennings46 hours1-1/+1
| | | | | | | | | | Sentry no longer checks email or messengers. Pass 3 loads only the calendar and PR/ticketing triage plugins. The mail and messenger ones stay out: cmail, Gmail, Telegram, Signal, chat DMs. A manual triage intake still scans everything. The probe follows, so a project whose only declared sources are mail or messengers now skips the pass instead of running it empty. New pass 11 hunts bugs. It runs linters and static analysis, checks config sanity, and reads one rotating code area per fire so coverage builds over a night. Verified findings get filed as graded bug tasks. It never fixes unattended. I dropped the suite run the order called for. Running the suite every fire is the per-pass anti-pattern this same file forbids, and the entry baseline already has the result. The KB personal-project roots now cover ~/.dotfiles, which was classifying Unknown and blocking writes from there.
* fix(roam): scope the work-denylist to durable KB-node writes, not roam tidyingCraig Jennings5 days1-0/+2
| | | | | | | | The sentry live trial surfaced this. A sentry inbox-zero pass running from the work project parked the whole 19-item roam inbox as a cross-project boundary crossing and refused to tidy it unattended, reading knowledge-base.md's work-denylist as "don't touch roam from work." That over-reads the rule. The denylist is a confidentiality guard on one thing: promoting a durable fact into a new agents/ node, so work-confidential material stays out of the personal cross-machine store. Roam is a shared resource, not another project's product scope. Reading it and tidying the shared roam inbox are housekeeping any project may do, work included. knowledge-base.md gains a "Scope of the denylist" paragraph stating that and naming the mis-park as the error it closes. sentry.org's inbox-zero pass and inbox.org's roam mode each get a one-line note pointing at the rule, so a future agent doesn't re-derive the refusal. Only durable-node promotion stays work-denylisted.
* feat(sentry): wire the roam writers and wrap-up guard for sentryCraig Jennings6 days1-1/+20
| | | | | | | | | | Phase 3 of the sentry supervisor: reconcile the existing roam writers and wrap-up so sentry's locks actually guard something, and its shutdown has one enforced entry point. The roam-write lock only helps if every roam writer takes it, so both writers now do. knowledge-base.md's write recipe and inbox.org core §5 acquire the roam-write lock around their edit and trigger roam-sync instead of committing themselves. That closes a gap the one-git-owner rule already implied but the KB recipe still violated: the recipe told agents to run git add -A && commit && push against a tree that's chronically dirty from live captures, which could sweep an in-flight capture into a stray commit. roam-sync stays the roam repo's only committer. Agents edit-plus-trigger under the lock, and roam-sync.sh's header now states that contract instead of the old "agents commit inline" note. Both writers degrade as the spec settled: an absent agent-lock proceeds unlocked (today's behavior), and only a present helper reporting the lock busy after its bounded wait defers or surfaces. wrap-it-up.org gains a Step 0 that refuses while sentry is live. It checks the single-runner lock and points at "stop sentry" rather than archiving the anchor and tearing down the buffer under a still-firing loop. Both files derive the lock name the same way (sentry-<repo-basename>), so the guard and the engine agree. triage-intake.org notes that it also runs as sentry's triage pass under the no-approvals contract, with its trigger phrases unchanged.
* docs(knowledge-base): update roam origin URL after the repo movedCraig Jennings6 days1-1/+1
| | | | The roam KB bare repo moved off the publicly-browsable path to a private one. The origin is now cjennings@cjennings.net:git/roam.git, and the old URL in this file was stale.
* feat(runtime): complete the hook, MCP, and memory portability inventoriesCraig Jennings11 days1-1/+1
| | | | The new inventories doc maps what's actually Claude-bound. Hooks: only PreCompact and Stop-teardown carry porting decisions, both now decided (prose downgrade, Codex notify or manual). MCP: everything ports mechanically except paging, since signal-mcp exists only claude.ai-side, so the Signal-pager task gains runtime portability as a second motivation. Memory: the KB is already the cross-agent store, and knowledge-base.md now tells agents without harness memory to capture into the session log. Three inventory child tasks closed as dated entries under the generic-agent-runtime parent.
* feat(rules): knowledge-base.md — the agent KB pointer ruleCraig Jennings2026-06-101-0/+60
Phase 1 of the agent KB spec. The rule carries the KB path and git discipline (pull before query, commit and push after write), the canonical rg commands, the one-node-per-fact write schema under agents/, the work-root denylist with the refusal contract, the inclusion criteria, and the capture-then-promote cadence. The existing Makefile RULES glob links it machine-wide; verified the link, a known-note query, and the conflict-file exclusion.