47d40bffd8
docs: architecture, configuration, development and features describe Scribe as it is today
bvandeusenandClaude Opus 5.52026-10-21 19:23:56 -04:00
cba2c24612
feat(544): shipped compose files run on the orchestrator's defaults; the app waits for its database itself
bvandeusenandClaude Opus 5.52026-10-21 19:15:20 -04:00
9bb3b68cc4
docs: compose files, Dockerfile, CI workflow, README and ci-requirements describe the build, briefly
bvandeusenandClaude Opus 5.52026-10-21 18:38:42 -04:00
b69bc47e65
Merge pull request 'Backups carry the Profile page (user_profiles)' (#211) from dev into main
bvandeusen2026-10-15 20:00:32 -04:00
cef173c0a6
Scheduled backups to a folder or S3 bucket, and forge tokens sealed at rest (milestone 523)
bvandeusen2026-10-15 18:19:26 -04:00
07bc51b890
feat(523): forge-connection tokens are stored sealed under SECRET_KEY, like the backup S3 secret
bvandeusenandClaude Opus 5.52026-10-15 18:08:11 -04:00
3008d29f89
fix(523): restore CLI imports the engine from scribe.models, where it lives
bvandeusenandClaude Opus 5.52026-10-15 17:42:54 -04:00
b45fc9efba
feat(523): restore reads the backup tar; python -m scribe.restore brings a fresh instance back
bvandeusenandClaude Opus 5.52026-10-15 17:40:24 -04:00
be59829dde
feat(523): Settings -> Data -> Scheduled backups - the verdict first, then destination, schedule, Test, Back up now and recent runs
bvandeusenandClaude Opus 5.52026-10-15 17:40:24 -04:00
4248b450ea
feat(523): the backup job - an hourly tick that runs at the chosen hour, Back up now, and the last 30 runs
bvandeusenandClaude Opus 5.52026-10-15 17:34:01 -04:00
ff4f2ee5c2
feat(523): backup destinations - a folder or an S3 bucket, with the S3 secret sealed and kept out of backups
bvandeusenandClaude Opus 5.52026-10-15 17:31:08 -04:00
1942a7a336
feat(523): the backup as an uncompressed tar of per-table JSON Lines, ordered so restic dedupes it
bvandeusenandClaude Opus 5.52026-10-15 16:30:16 -04:00
a9bfe13631
Merge pull request 'Reply shapes ride the moments (milestone 500, steps 1–5)' (#209) from dev into main
bvandeusen2026-10-09 16:40:04 -04:00
69dddb7551
feat(500): Settings shows the shipped reply shapes, what adjusts each, and how often each arrives
bvandeusenandClaude Opus 5.52026-10-09 16:19:45 -04:00
b00dc7c4c2
feat(500): reporting-back becomes the long-form reference behind the delivered shapes
bvandeusenandClaude Opus 5.52026-10-09 15:55:02 -04:00
f68b73f922
feat(500): retire the fixed-question preference arm - completion-report preferences ride the moments
bvandeusenandClaude Opus 5.52026-10-09 15:51:04 -04:00
cee1eb1328
fix(500): the section-hold marker is a ledger by name, so a compaction sweeps it
bvandeusenandClaude Opus 5.52026-10-09 15:42:25 -04:00
6071007fe2
feat(500): one end-of-turn request - the completion-section check folds into the reply check
bvandeusenandClaude Opus 5.52026-10-09 15:38:17 -04:00
eadb08c347
feat(500): reply shapes are delivered - the core every turn through the ledger, each slice at its moment, reply mounts before the reply (#5495)
bvandeusenandClaude Opus 5.52026-10-09 14:45:25 -04:00
9fedcbea3d
feat(500): who decides what - the agent settles what only it can see, the operator decides direction (#5494)
bvandeusenandClaude Opus 5.52026-10-09 14:35:55 -04:00
3648c78286
fix(500): the completion slice says "two questions", not "two tests" - the domain guard reads the word as software (#5493)
bvandeusenandClaude Opus 5.52026-10-09 14:32:05 -04:00
a0390d9da7
feat(500): the reply shapes become server product content - a compact core and per-kind slices, each tied to its moment (#5493)
bvandeusenandClaude Opus 5.52026-10-09 14:29:44 -04:00
37ca2ee958
fix(lessons): convergence is measured against each lesson's own register, and its members must resemble each other - a flat band of no-rule lessons names nothing (#5193)
bvandeusenandClaude Opus 5.52026-10-06 22:58:39 -04:00
890c93e126
feat(scripts): measure_duplication - the DRY close-out measure: before/after duplicate share, and the copies that exist only after (#4745)
bvandeusenandClaude Opus 5.52026-10-06 21:24:05 -04:00
f15542d6cb
Merge pull request 'Merge dev → main: family precedents say their reason once; the repeat trigger compares like with like' (#208) from dev into main
bvandeusen2026-10-06 19:00:18 -04:00
5323a1fbc2
fix(family): the repeat trigger compares a record only with its own kind - a snippet with snippets, a note with notes (#5130)
bvandeusenandClaude Opus 5.52026-10-06 18:32:55 -04:00
f006f15058
fix(family): a decision read as precedent says its reason once - to_brief for precedents and idea history; the decision log keeps the full row (#5131)
bvandeusenandClaude Opus 5.52026-10-06 18:30:48 -04:00
b3c0cc5548
Merge pull request 'Merge dev → main: a family idea links to the rule topic holding its norms' (#207) from dev into main
bvandeusen2026-10-06 18:00:52 -04:00
07169e1274
feat(family): an idea links to the rule topic holding its norms - set_family_topic, the readouts name the rules, the idea row shows the link (milestone 463 step 1 gap, found in step 7, #4993)
bvandeusenandClaude Opus 5.52026-10-06 14:27:33 -04:00
ecbadf51ce
Merge pull request 'Merge dev: family canon, milestone 463 steps 1-6' (#206) from dev into main
bvandeusen2026-10-06 14:11:28 -04:00
b8efff43b4
fix(family): the reach tests assert on their own corpus; the shared integration database holds other tests' canon on the same platform (#4992)
bvandeusenandClaude Opus 5.52026-10-06 13:35:42 -04:00
07e21c7ff9
feat(family): family canon reaches the session - entry readout, retrieval reach, skill, report cue (milestone 463 step 6, #4992)
bvandeusenandClaude Opus 5.52026-10-06 13:27:39 -04:00
5f41dbd283
feat(family): the shape ledger judges against family ideas, across languages (milestone 463 step 5, #4991)
bvandeusenandClaude Opus 5.52026-10-06 13:06:45 -04:00
233fa3eea9
fix(family): the owed task is tagged by the matching System only, and the ground fixtures build without duplicate keys (#4990)
bvandeusenandClaude Opus 5.52026-10-06 11:11:41 -04:00
201e09901b
feat(family): the adoption ledger - assessment, the conflict order, owed->task, recheck, the adoption matrix (milestone 463 step 4, #4990)
bvandeusenandClaude Opus 5.52026-10-06 11:05:00 -04:00
faa1b72307
fix(family): undoing the decision that created an idea leaves no applicability or scope behind (#4989)
bvandeusenandClaude Opus 5.52026-10-06 10:37:37 -04:00
8aacc1824c
feat(family): the promotion engine - triggers, the three criteria, the decision log and undo (milestone 463 step 3, #4989)
bvandeusenandClaude Opus 5.52026-10-06 10:33:30 -04:00
1774ee3696
fix(frontend): each shared <style src> sheet sits at one block index everywhere, so vite build cannot depend on transform order (#4988)
bvandeusenandClaude Opus 5.52026-10-06 09:58:41 -04:00
07d2542479
feat(family): platforms declared at inception and detected from bound repos (milestone 463 step 2, #4988)
bvandeusenandClaude Opus 5.52026-10-06 09:51:28 -04:00
e68ccc5884
feat(family): platforms, family ideas, the adoption ledger and its decision log (milestone 463 step 1, #4987)
bvandeusenandClaude Opus 5.52026-10-06 09:33:27 -04:00
d4de0b9b54
Merge pull request 'Merge dev: scope-then-rank searches (#4958, #4961), CI gate on integration, milestone 456 steps 4-6' (#205) from dev into main
bvandeusen2026-10-05 22:23:48 -04:00
ccbccb025c
fix(retrieval): every semantic search scopes first, then ranks - the note, milestone and system searches join the rule search on one shared shape, _rank_scoped (#4961)
bvandeusenandClaude Opus 5.52026-10-05 21:08:45 -04:00
d2fa723373
refactor(retrieval): the rule builders compose one moment - _rule_moment runs the arm and its via-lesson step for all three (milestone 456 step 6, #4908)
bvandeusenandClaude Opus 5.52026-10-05 20:25:47 -04:00
869046dda2
refactor(retrieval): the specs are the registry - SURFACES, the ranked POINTS rows and RANKED_SOURCES are read off the pipeline specs (milestone 456 step 5, #4907)
bvandeusenandClaude Opus 5.52026-10-05 20:11:20 -04:00
2b8f41229d
refactor(retrieval): the notes arms run on the one pipeline - auto_inject, its reuse and lesson slots, the write path by meaning, and rule_via_lesson are specs (milestone 456 step 4, #4906)
bvandeusenandClaude Opus 5.52026-10-05 20:02:37 -04:00
4b1060ae8b
Revert the deliberate integration failure - the gate was watched rejecting run 8218 (rule 177, #4958)
bvandeusenandClaude Opus 5.52026-10-05 19:42:04 -04:00
9a76eb0a34
test(ci): TEMPORARY deliberate integration failure, to watch the publish gate reject a red run (rule 177, #4958)
bvandeusenandClaude Opus 5.52026-10-05 19:38:13 -04:00
983fd2c4d1
fix(retrieval): scope the rule search before ranking it - an in-scope rule is no longer lost behind other owners' nearer rules (#4958)
bvandeusenandClaude Opus 5.52026-10-05 19:30:05 -04:00
79cd2341a6
test(rules): the scope test says why a rule search returned nothing - an error or an empty scan (#4958)
bvandeusenandClaude Opus 5.52026-10-05 18:34:16 -04:00
25c1c778f1
Merge pull request 'Moments: skills teach moments, and a mount that misfires proposes its own removal (milestone 458 steps 8, 7b)' (#204) from dev into main
bvandeusen2026-10-05 18:29:53 -04:00
4e1320120d
feat(moments): a mount that keeps arriving where it does not apply proposes its own removal (milestone 458 step 7b, #4955)
bvandeusenandClaude Opus 5.52026-10-05 18:19:59 -04:00
8afd6da8af
docs(plugin): reference files point at each other in words, not links - one level deep (milestone 458 step 8, #4926)
bvandeusenandClaude Opus 5.52026-10-05 16:44:22 -04:00
a72a422534
docs(plugin): the instruction surfaces teach moments - reading a line that arrived at one, correcting a misfire, and giving a new rule its moments (milestone 458 step 8, #4926)
bvandeusenandClaude Opus 5.52026-10-05 16:39:47 -04:00
2b52afcd72
Merge pull request 'Mount the corpus by proposal: a pass and an open-after-moment signal (milestone 458 step 7)' (#203) from dev into main
bvandeusen2026-10-05 16:31:42 -04:00
570d1b6d5a
test(backup): register the rule_moment_judgments builder in the import column guard (milestone 458 step 7, #4925)
bvandeusenandClaude Opus 5.52026-10-05 16:12:30 -04:00
dfcf4df2e9
feat(moments): mount the corpus by proposal - a pass and an open-after-moment signal, both stopping at the operator (milestone 458 step 7, #4925)
bvandeusenandClaude Opus 5.52026-10-05 16:03:53 -04:00
2db9e0c0c1
Merge pull request 'Skills and processes declare their moments, and the UI for moments (milestone 458 steps 5–6)' (#202) from dev into main
bvandeusen2026-10-05 15:41:56 -04:00
5bcc603310
fix(moments): the store loads rather than fetches, so the deadline guard does not read it as a bare fetch (milestone 458 step 6, #4924)
bvandeusenandClaude Opus 5.52026-10-05 14:47:12 -04:00
b73a689849
feat(moments): the human door onto mounts, mappings and per-moment telemetry (milestone 458 step 6, #4924)
bvandeusenandClaude Opus 5.52026-10-05 14:42:30 -04:00
c489452a2d
test(moments): an install removal still drops its tool while the skill loader stays listed (milestone 458 step 5, #4923)
bvandeusenandClaude Opus 5.52026-10-05 14:28:50 -04:00
f1fdc4a951
feat(moments): skills and stored processes declare the moments they are for (milestone 458 step 5, #4923)
bvandeusenandClaude Opus 5.52026-10-05 14:23:24 -04:00
9fc2df080d
Merge pull request 'Rules mount on moments, and one retrieval pipeline (milestones 458 steps 1–4, 456 steps 1–3)' (#201) from dev into main
bvandeusen2026-10-05 12:41:56 -04:00
b29689d4de
fix(retrieval): declare the reply moment's surfacing site in FAN_OUT_SITES (milestone 458 step 4b, #4922)
bvandeusenandClaude Opus 5.52026-10-05 12:32:07 -04:00
c6cdfc2172
feat(moments): the reply moment holds a finished reply for one read (milestone 458 step 4b, #4922)
bvandeusenandClaude Opus 5.52026-10-05 12:30:07 -04:00
b3b616b20a
fix(moments): the tools import the delivery module, and the tool-list cache leaves the swept directory (milestone 458 step 4a, #4922)
bvandeusenandClaude Opus 5.52026-10-05 12:24:30 -04:00
78653130d6
feat(moments): mounted rules arrive when their moment happens, through every door (milestone 458 step 4a, #4922)
bvandeusenandClaude Opus 5.52026-10-05 12:21:45 -04:00
cf3de5bae1
feat(moments): actions map onto moments, with in-session corrections (milestone 458 step 2, #4920)
bvandeusenandClaude Opus 5.52026-10-05 10:58:00 -04:00
2ff7f2f34f
feat(moments): the moment catalog rules will mount on, readable in-session (milestone 458 step 1, #4919)
bvandeusenandClaude Opus 5.52026-10-05 10:50:45 -04:00
0720ab6dcf
refactor(retrieval): the completion-report preferences run through the pipeline (milestone 456 step 3, #4905)
bvandeusenandClaude Opus 5.52026-10-05 08:38:05 -04:00
b72c9a92e2
test(retrieval): two source guards read the pipeline where the rule arms now live (milestone 456 step 2, #4904)
bvandeusenandClaude Opus 5.52026-10-05 08:07:26 -04:00
f6b824b214
refactor(retrieval): the three rule arms run through one pipeline (milestone 456 step 2, #4904)
bvandeusenandClaude Opus 5.52026-10-05 08:01:23 -04:00
802ead748b
Merge pull request 'Rules never-opened advice per corpus (#4798); a lesson's name is one line (#4797)' (#200) from dev into main
bvandeusen2026-10-03 23:11:18 -04:00
9909cd2450
fix(retrieval): the rules never-opened warning stops sending the reader to a review tool that refuses rules (#4798)
bvandeusenandClaude Opus 5.52026-10-03 23:02:32 -04:00
8b9ff0c5c1
Merge pull request 'Auto-inject looks up records named by number (#4796)' (#199) from dev into main
bvandeusen2026-10-03 22:16:01 -04:00
a19c344770
Merge pull request 'No heading-only chunks, agent-message skip, refusals reach the agent (#4784, #4785, #4794)' (#198) from dev into main
bvandeusen2026-10-03 21:47:03 -04:00
c389ed61d2
Merge pull request 'The review drops records written after the call it re-runs (#4773)' (#197) from dev into main
bvandeusen2026-10-03 20:37:08 -04:00
c50c1beb83
Merge pull request 'A review pass judges whether injected lines related (#4772)' (#196) from dev into main
bvandeusen2026-10-03 18:17:49 -04:00
6598c7fa85
feat(retrieval): a review pass judges whether injected lines related — menus_to_review, judge_menu and a judged readout (#4772)
bvandeusenandClaude Opus 5.52026-10-03 15:34:14 -04:00
b4c637a7df
Merge pull request 'Rulings readout and the prior-art 500 fix' (#195) from dev into main
bvandeusen2026-10-03 08:57:36 -04:00
0a1bb68808
feat(rulings): system_usage_events is read back — per-System counts and a telemetry block (#4769)
bvandeusenandClaude Opus 5.52026-10-03 08:49:20 -04:00
1b973ebd13
fix(write-path): a search hit's excerpt under snippet no longer 500s the prior-art route (#4768)
bvandeusenandClaude Opus 5.52026-10-03 08:39:11 -04:00
a24f6b6b41
Merge pull request 'Rulings reach the work they govern — milestone 444 steps 3-4' (#194) from dev into main
bvandeusen2026-10-03 08:29:25 -04:00
556872c039
feat(rulings): a command or edit touching an area's files shows its rulings, once per session (milestone 444 step 4, #4757)
bvandeusenandClaude Opus 5.52026-10-02 23:08:32 -04:00
a113c72b4f
feat(systems): a System names its files — path patterns stored, validated and matched (milestone 444 step 3, #4756)
bvandeusenandClaude Opus 5.52026-10-02 22:55:26 -04:00
6477c20664
Merge pull request 'Milestone 444 steps 1-2: an operator's ruling lives on the System it governs, and code is read as behaviour, not intent' (#193) from dev into main
bvandeusen2026-10-02 19:46:50 -04:00