Commit Graph

  • 446d6da0d7 fix(snippets): an annotated record is not a diverged one — a standing verdict vouches at its commit (#2782) bvandeusenandClaude Fable 5 2026-08-23 22:36:04 -04:00
  • 136dbc16a6 Merge pull request 'Dead CSS deleted, and the instrument that found it sharpened (#2962, #2970)' (#129) from dev into main bvandeusen 2026-08-23 21:34:17 -04:00
  • 6871c25445 docs(frontend): the task-body comment no longer points at a class that was deleted (#2962) bvandeusenandClaude Fable 5 2026-08-23 21:32:11 -04:00
  • 57f6982f56 test(ledger): the transition/prefix references clear the flag end to end; plugin 0.1.45 (#2970) bvandeusenandClaude Fable 5 2026-08-23 21:30:21 -04:00
  • df18e897af feat(ledger): the consumer map reads transition names and concatenated prefixes (#2970) bvandeusenandClaude Fable 5 2026-08-23 21:27:27 -04:00
  • 4179f3e560 refactor(frontend): the second sweep — scoped rules that no longer match their own template (#2962) bvandeusenandClaude Fable 5 2026-08-23 21:21:43 -04:00
  • c5faaf38fb refactor(frontend): delete the dead CSS the consumer map surfaced — 102 classes, 588 lines (#2962) bvandeusenandClaude Fable 5 2026-08-23 21:16:06 -04:00
  • 649fdff2ea Merge pull request 'The CSS pay-down: 72 name families derived or dismissed with the consumer map in hand (milestone 302 step 4)' (#128) from dev into main bvandeusen 2026-08-23 21:03:33 -04:00
  • 9190fa0f10 refactor(frontend): the pay-down edits the first script dropped after its assertion stop — SharedWithMe/ProjectView page-header+empty-msg remainders, DesignSystems/Settings field-hint+.input trims, pane form-buttons deletions (milestone 302 step 4) bvandeusenandClaude Fable 5 2026-08-23 17:34:07 -04:00
  • 6fb0cb38a5 refactor(frontend): CSS pay-down, derive batch (milestone 302 step 4) — page-header, error-msg/state-msg/empty-msg, empty-title/empty-sub, required, field-hint recipes into components.css; form-buttons into rules-shared.css; scoped copies trimmed to remainders/overrides; the three views' .input becomes fs-input + width/box-sizing remainder (canon #2336) bvandeusenandClaude Fable 5 2026-08-23 17:30:43 -04:00
  • cba542a3ec Merge pull request 'Hooks say when Scribe didn't answer; the CSS consumer map (milestone 302 steps 1–3)' (#127) from dev into main bvandeusen 2026-08-23 14:18:32 -04:00
  • c28c87c39e test(ledger): the consumer-map integration test owns its unreferenced rule — the seeded button.css row vanishes under the test's own tree (#2936) bvandeusenandClaude Fable 5 2026-08-23 14:09:04 -04:00
  • 8664d8ad14 feat(ledger): the consumer map surfaces — every css row carries used_by on list_shapes, flag="unused-css" (the map's negative space, surfaced never deleted), derive groups and the write-path family carry consumers, the derive line says "used by N template(s)", coverage payload unused_css + the standing block; docs, SKILL, plugin 0.1.44; the two step-2 tests expected 5 edges where fan-out makes 6 (milestone 302 step 3, #2936) bvandeusenandClaude Fable 5 2026-08-23 14:03:35 -04:00
  • ffbdf19116 feat(ledger): the CSS consumer map — code_shape_consumers edges (shape → file whose markup names the class, count), migration 0086, resolve_consumers (own-file row when the template defines the class, else every other definition), sync_repo_consumers rebuilt from the archive on every refresh, consumers_of; derived, so not backed up (milestone 302 step 2, #2935) bvandeusenandClaude Fable 5 2026-08-23 13:59:55 -04:00
  • dffbf43d84 feat(coverage): class_references + scan_archive — each template-bearing file's class tokens (static class=/className=, Vue :class object/array/ternary, React className={…}, Svelte class:x) read in the same tar walk as definitions; the CSS consumer map's extractor (milestone 302 step 1, #2934) bvandeusenandClaude Fable 5 2026-08-23 13:57:13 -04:00
  • 31383bcebe test(hooks): the two tests that read a refused connection as "nothing recorded" now answer through a sink, and the silence case removes the shape it had left behind (#2932) bvandeusenandClaude Fable 5 2026-08-23 11:05:42 -04:00
  • 0ab94b2a00 fix(plugin): write-path hooks say when Scribe did not answer — once per outage, shared marker, record nudge withheld on an unanswered call; check_plugin allows exactly that line when unreachable; plugin 0.1.43 (#2932) bvandeusenandClaude Fable 5 2026-08-23 10:59:54 -04:00
  • 9c00a4b6e1 fix(plugin): after-write hook waits 8s on the prior-art call — a cold-start round-trip (~4.6s after a redeploy) failed open at 4s and dropped the ledger line on the first write; plugin 0.1.42 bvandeusenandClaude Fable 5 2026-08-23 01:06:08 -04:00
  • 144192754c Merge pull request 'Derive pay-down + CSS families by name (milestone 299 steps 5–6, note #2917)' (#126) from dev into main bvandeusen 2026-08-23 00:32:07 -04:00
  • 85111442a6 feat(ledger): CSS derive families are names, never bodies — name floor 2 for css, dup: grouping sym-only; derive line says "repeated name" and dismisses scoped-css; plugin 0.1.41 (note #2917) bvandeusenandClaude Fable 5 2026-08-23 00:21:17 -04:00
  • a2b377b74d chore(plugin): 0.1.40 — the extractor rule change in scribe_defs.sh ships to the executing cache (#2904) bvandeusenandClaude Fable 5 2026-08-22 15:12:54 -04:00
  • 590203a293 refactor(tests+frontend): one http_sink helper for the hook tests; apiErrorMessage replaces ten hand-rolled error-body parses; type X, import specifiers are not definitions (#2904, milestone 299 step 6) bvandeusenandClaude Fable 5 2026-08-22 15:07:23 -04:00
  • 449f437048 refactor(frontend): the near-duplicate report rules shared via dup-report.css — KnowledgeView and SnippetListView carried identical scoped copies (#2903, milestone 299 step 5, part 2) bvandeusenandClaude Fable 5 2026-08-22 15:03:12 -04:00
  • 48f0630dab test(coverage): the two-declaration floor check compares two multi-line rules — formatting is part of the fingerprint, as before (#2903) bvandeusenandClaude Fable 5 2026-08-22 14:59:38 -04:00
  • a72605de8f refactor(frontend): the last pay-down, part 1 — three dead views deleted, editor rules shared, .page-container + .fs-input canon, rules-shared.css; a one-declaration CSS body is not a shape (#2903, milestone 299 step 5) bvandeusenandClaude Fable 5 2026-08-22 14:55:28 -04:00
  • 4fa8158329 Merge pull request 'Self-surfacing DRY — duplicate families named at the write and on arrival, tool-agnostic (milestone 299 steps 1–4)' (#125) from dev into main bvandeusen 2026-08-22 13:41:24 -04:00
  • 10687120a5 docs(self-surfacing): derive groups are drift not audit material — shape-accounting + reusing-code skills, static floor, plugin README (after-write hook), api-reference rows (#2902, milestone 299 step 4) bvandeusenandClaude Fable 5 2026-08-22 13:38:06 -04:00
  • b88225eeb3 fix(hooks): after-write dedups its channel files; prior-art tests follow the extractor and skip list into scribe_defs.sh (#2901) bvandeusenandClaude Fable 5 2026-08-22 13:38:06 -04:00
  • 5925335ca0 feat(plugin): after-write hook — PostToolUse on Bash diffs the working tree and runs the prior-art + ledger arms on what was just written; shared scribe_defs.sh; plugin 0.1.39 (#2901, milestone 299 step 3) bvandeusenandClaude Fable 5 2026-08-22 13:35:45 -04:00
  • 2324c15418 feat(write-path): the derive arm — the hint names a duplicate family (no canon) or a canon elsewhere for the shapes being written; exclude_derive channel (#2900, milestone 299 step 2) bvandeusenandClaude Fable 5 2026-08-22 13:30:33 -04:00
  • bb242ca566 feat(coverage): the line names standing work with 0 unclassified + derive_new, copies that joined a family since the previous refresh (#2899, milestone 299 step 1) bvandeusenandClaude Fable 5 2026-08-22 13:27:29 -04:00
  • c0caf7d23a Merge pull request 'Project inception — decide what a new project inherits (milestone 297)' (#124) from dev into main v26.08.22.1 bvandeusen 2026-08-21 22:16:32 -04:00
  • dc2f32cc6f docs(inception): using-scribe skill teaches the inception questions; plugin 0.1.38; api-reference + README (#2884, milestone 297 step 6) bvandeusenandClaude Fable 5 2026-08-21 22:11:08 -04:00
  • 10c63f49d8 fix(mcp): _INSTRUCTIONS back under the 2k fold — the inception line is one clause, detail lives in the tool docstrings (#2882) bvandeusenandClaude Fable 5 2026-08-21 22:10:28 -04:00
  • 00c7badc3f feat(inception): UI — New-project modal step 2, InceptionCard on the project page, Rules tab shows excluded always-on rulebooks; REST exclusion routes (#2883, milestone 297 step 5) bvandeusenandClaude Fable 5 2026-08-21 22:09:18 -04:00
  • c7a58bb610 feat(inception): the doors — create_project/decide_project_inception take the decision, enter_project asks until decided, REST inception endpoints, _INSTRUCTIONS (#2882, milestone 297 step 4) bvandeusenandClaude Fable 5 2026-08-21 22:06:19 -04:00
  • 227aef3dbf test: mocked-session rule tests stub the always-on exclusions lookup; tool count 24 (#2880) bvandeusenandClaude Fable 5 2026-08-21 22:04:04 -04:00
  • 34734bf84a feat(inception): services/inception.decide() + current_defaults(); the standard Systems vocabulary moves to the service and seeds at inception (#2881, milestone 297 step 3) bvandeusenandClaude Fable 5 2026-08-21 22:03:02 -04:00
  • ff5f6438c4 feat(inception): always-on exclusions reach every rule surface — list_always_on_rules(project_id), get_applicable_rules, rules_payload.excluded_always_on, session context, exclude/include tools (#2880, milestone 297 step 2) bvandeusenandClaude Fable 5 2026-08-21 22:00:50 -04:00
  • e9b8f525c8 feat(inception): projects.inception record + project_rulebook_exclusions — migration 0085 with legacy backfill; backup v10 (#2879, milestone 297 step 1) bvandeusenandClaude Fable 5 2026-08-21 21:57:02 -04:00
  • 5415bff85c Merge pull request 'fix(ledger): one-line CSS fingerprints; proposer writes uses edges for judged rows (#2877)' (#123) from dev into main v26.08.21.2 bvandeusen 2026-08-21 17:39:48 -04:00
  • aba16583ab fix(ledger): one-line CSS rules fingerprint their own declarations; the proposer writes uses edges for judged rows too (#2872, #2870) bvandeusenandClaude Fable 5 2026-08-21 17:34:12 -04:00
  • f0c915a6bc Merge pull request 'Ledger follow-ups from the shape audit (milestone 294: #2868–#2874)' (#122) from dev into main v26.08.21.1 bvandeusen 2026-08-21 15:24:03 -04:00
  • 6a0f8ad328 feat(backup): code_shape_uses travels (v9); consumer-map test expects uses (#2870) bvandeusenandClaude Fable 5 2026-08-21 15:21:13 -04:00
  • d4c7b0e48d feat(ledger): uses edges — consumption is its own relation, conformance keeps one snippet_id (#2870, milestone 294) bvandeusenandClaude Fable 5 2026-08-21 15:18:25 -04:00
  • bfe5a461b4 test(ledger): derive group sizes follow the #2872 order bvandeusenandClaude Fable 5 2026-08-21 15:15:32 -04:00
  • 3849c6fff3 test(ledger): derive label order follows #2872; binding-ref test imports compute_coverage bvandeusenandClaude Fable 5 2026-08-21 15:15:09 -04:00
  • 1a8e5787e8 feat(ledger): reason codes, case-insensitive repo filter, next action on the coverage line (#2874, milestone 294) bvandeusenandClaude Fable 5 2026-08-21 15:14:34 -04:00
  • d01201539b test(ledger): derive summary expectation follows #2872 — dup group before name group bvandeusenandClaude Fable 5 2026-08-21 15:11:25 -04:00
  • 1209e1c2d9 feat(ledger): a repo binding names the branch its ledger follows — bind_repo(ref=) (#2873, milestone 294) bvandeusenandClaude Fable 5 2026-08-21 15:10:54 -04:00
  • 57d68c9355 feat(ledger): derive readout ranks body-identical groups first; CSS fingerprints are declarations, not selectors (#2872, milestone 294) bvandeusenandClaude Fable 5 2026-08-21 15:08:57 -04:00
  • 1126bbe84f test(ledger): the divergence acceptance case uses TS canon — proposer v3 gates sym bases by language family (#2871) bvandeusenandClaude Fable 5 2026-08-21 15:07:48 -04:00
  • 1ab614bfbe feat(ledger): the scoped bucket — by-construction one-offs are stamped by the sync, not judged by a person (#2869, milestone 294) bvandeusenandClaude Fable 5 2026-08-21 15:06:52 -04:00
  • 9abc4443fb feat(ledger): audit surfaces — list_shapes(compact=True) and classify_shapes_by_rule, the sweep form of a judgment (#2868, milestone 294) bvandeusenandClaude Fable 5 2026-08-21 15:02:55 -04:00
  • 3a4031d7f8 fix(ledger): proposer v3 — sym bases gated by language family, reference skips generic verbs, semantic held to the shape's own project (#2871, milestone 294) bvandeusenandClaude Fable 5 2026-08-21 15:00:48 -04:00
  • 141246ac2c Merge pull request 'fix(frontend): drop the three .modal-overlay copies left after the modal canon move' (#121) from dev into main bvandeusen 2026-08-21 12:58:25 -04:00
  • 520381e22b fix(frontend): drop the three .modal-overlay copies the comment-preceded rule regex skipped — components.css owns it (#2831) bvandeusenandClaude Fable 5 2026-08-21 12:52:29 -04:00
  • 58c074a324 Merge pull request 'Shape audit (milestone 296): tests helpers, alembic, models, MCP, routes, services, frontend consolidation' (#120) from dev into main bvandeusen 2026-08-21 12:48:08 -04:00
  • 2a6c55dacb refactor(frontend): auth-shared.css, apiErrorMessage, one date helper per shape, modal canon in components.css — the frontend pass of the shape audit (#2831 #2832, milestone 296) bvandeusenandClaude Fable 5 2026-08-21 12:41:18 -04:00
  • 7d48eb0b1b refactor(services): one periodic-task shape, one APScheduler job shape, one token hash, one summary rule — the services pass of the shape audit (#2830, milestone 296) bvandeusenandClaude Fable 5 2026-08-21 12:34:28 -04:00
  • 92e38ff17b test(routes): the prior-art contract guards read the handler plus its _project_scope helper (area 5 follow-up) bvandeusenandClaude Fable 5 2026-08-21 11:26:01 -04:00
  • 64c641ce80 refactor(routes): one supersession seam for REST and MCP; PUT/PATCH notes share a handler; shared mask/not-found/caller helpers (#2829, milestone 296 area 5) bvandeusenandClaude Fable 5 2026-08-21 11:23:47 -04:00
  • c211e12b61 refactor(mcp): one rules_payload() for every surface that hands rules to an agent; drop the dead bearer resolver (#2828, milestone 296 area 4) bvandeusenandClaude Fable 5 2026-08-21 11:20:36 -04:00
  • b0eda32575 refactor(models): one iso() for every to_dict timestamp; mixins replace hand-rolled created_at/updated_at (#2827, milestone 296 area 3) bvandeusenandClaude Fable 5 2026-08-21 11:17:42 -04:00
  • 848ce1592e fix(tests): import make_mock_session in test_version_pinning_prune (batch-2 follow-up) bvandeusenandClaude Fable 5 2026-08-21 11:14:44 -04:00
  • 77bb3729a3 refactor(tests): per-model fakes, FakeMCP and session mocks come from tests/helpers (#2825, milestone 296 area 1, batch 2) bvandeusenandClaude Fable 5 2026-08-21 11:13:17 -04:00
  • ac6f248bf9 Merge pull request 'Shape audit area 1 — tests/: one definition each for the copied fixtures and fakes (#2825)' (#119) from dev into main bvandeusen 2026-08-21 11:07:11 -04:00
  • bbee0d0db1 refactor(tests): one definition each for the copied fixtures and fakes (#2825, milestone 296 area 1) bvandeusenandClaude Fable 5 2026-08-21 11:03:48 -04:00
  • ac1c2625af Merge pull request 'fix(ledger): proposer precision — own-definition signatures, semantic floor 0.8, ruleset version' (#118) from dev into main bvandeusen 2026-08-21 08:27:27 -04:00
  • dad56a51bd fix(ledger): the proposer matches signatures against a canon's own definition only and floors semantic at 0.8; ruleset version re-examines standing proposals bvandeusenandClaude Fable 5 2026-08-21 07:42:12 -04:00
  • 79f0283608 Merge pull request 'Shape ledger steps 5–7: write-path stamping, mechanical proposer, divergence readout (#2791, #2792, #2793)' (#117) from dev into main bvandeusen 2026-08-21 07:32:23 -04:00
  • efc650390e fix(plugin-context): the empty write-path payload carries the divergence key too bvandeusenandClaude Fable 5 2026-08-20 23:19:00 -04:00
  • d74a244b3a feat(ledger): divergence readout — button B where button A is canon, shape history, and judged-shape recheck (#2793, milestone 294 step 7) bvandeusenandClaude Fable 5 2026-08-20 23:13:39 -04:00
  • 386b27e422 fix(ledger): the proposer prefers a same-project canon on a tie — family canon elsewhere is the fallback, not the first hit bvandeusenandClaude Fable 5 2026-08-20 21:36:10 -04:00
  • ba0030e51d feat(ledger): mechanical proposer — every refresh proposes instances against canon and groups derive-first candidates; agents confirm in batches (#2792, milestone 294 step 6) bvandeusenandClaude Fable 5 2026-08-20 21:30:35 -04:00
  • a9e1cddba7 fix(tests): provisional ledger rows carry the empty seen-marker default, not NULL bvandeusenandClaude Fable 5 2026-08-20 20:23:12 -04:00
  • 475f0857c9 feat(ledger): write-path stamping — a pulled canon the session then instantiates lands as a hook instance row (#2791, milestone 294 step 5) bvandeusenandClaude Fable 5 2026-08-20 20:19:45 -04:00
  • 9d5b89d785 Merge pull request 'Coverage self-seeds + refresh_pattern_coverage tool + shape-accounting skill (#2802)' (#116) from dev into main bvandeusen 2026-08-20 19:05:48 -04:00
  • 3e21978a9c fix(tests): restore the assert my seed-test insertion orphaned from its neighbor bvandeusenandClaude Fable 5 2026-08-20 08:24:05 -04:00
  • e2a084f1fb feat(ledger): coverage self-seeds — enter_project background refresh + refresh_pattern_coverage tool + shape-accounting skill (#2802, milestone 294) bvandeusenandClaude Fable 5 2026-08-20 08:18:36 -04:00
  • fd101d24ae Merge pull request 'Shape ledger steps 1-4 + direct-minting Systems bootstrap (milestone 294, #2798)' (#115) from dev into main bvandeusen 2026-08-19 21:24:40 -04:00
  • 9f1a52a035 feat(ledger): audits write rows, not prose — instruction surfaces carry the classification duty (#2790, milestone 294 step 4) bvandeusenandClaude Fable 5 2026-08-19 21:16:04 -04:00
  • 5265d11a6a feat(systems): bootstrap mints directly — the standard vocabulary replaces operator approval (#2798) bvandeusenandClaude Fable 5 2026-08-19 20:05:02 -04:00
  • d50ebbad66 fix(mcp): classify list_shapes as read-only for read-scoped API keys bvandeusenandClaude Fable 5 2026-08-19 20:02:12 -04:00
  • 942edd1eb5 feat(ledger): classify_shapes + list_shapes MCP tools; get_snippet carries the consumer map (#2789, milestone 294 step 3) bvandeusenandClaude Fable 5 2026-08-19 19:55:47 -04:00
  • 9d92df2825 fix(tests): drop the pre-ledger line-ending assertion the step-2 edit missed bvandeusenandClaude Fable 5 2026-08-19 19:43:11 -04:00
  • 9b1597a3c9 feat(ledger): coverage refresh feeds the shape ledger; the readout inverts to accounting (#2788, milestone 294 step 2) bvandeusenandClaude Fable 5 2026-08-19 19:37:18 -04:00
  • 19fdc9aa89 feat(ledger): code_shapes — the shape ledger schema (#2787, milestone 294 step 1) bvandeusenandClaude Fable 5 2026-08-19 19:25:25 -04:00
  • c1cb8fb183 Merge pull request 'Per-user forge connections — keyring, host-keyed resolution, project pin (#2778)' (#114) from dev into main bvandeusen 2026-08-19 15:24:47 -04:00
  • 1faf8f3ece feat(forge): per-user forge connections — keyring, host-keyed resolution, project pin (#2778) bvandeusenandClaude Fable 5 2026-08-19 11:23:22 -04:00
  • 5c14c2621c Merge pull request 'Strict MCP arguments (#2709) + zero-Systems bootstrap ask (#2683)' (#113) from dev into main bvandeusen 2026-08-17 16:26:32 -04:00
  • 7a5e2b18d9 feat(systems): evidence-carrying bootstrap ask for mature zero-Systems projects (#2683) bvandeusenandClaude Fable 5 2026-08-17 14:53:46 -04:00
  • d6c9f08a59 fix(mcp): reject undeclared tool arguments instead of silently dropping them (#2709) bvandeusenandClaude Fable 5 2026-08-17 12:54:58 -04:00
  • 25411cf223 Merge pull request 'Edit-time record-sync nudge — the sync class (#2708)' (#112) from dev into main bvandeusen 2026-08-16 20:09:38 -04:00
  • 3162332a13 feat(prior-art): edit-time record-sync nudge — the sync class (#2708) bvandeusenandClaude Fable 5 2026-08-16 20:05:01 -04:00
  • 9f57cfad71 Merge pull request 'Milestone 288 — pattern library + forge integration' (#111) from dev into main bvandeusen 2026-08-16 16:37:12 -04:00
  • 765635bbf2 feat(forge): GitHub adapter — second implementation keeps the seam a contract (#2693, milestone 288 step 8) bvandeusenandClaude Fable 5 2026-08-16 16:18:16 -04:00
  • cbccb6bd5d feat(coverage): pattern-library coverage measurement (#2692, milestone 288 step 7) bvandeusenandClaude Fable 5 2026-08-16 16:05:43 -04:00
  • 89b07f7857 feat(forge): push webhook flags drift at the moment the repo moves (#2691) bvandeusenandClaude Fable 5 2026-08-16 13:05:00 -04:00
  • eb760eb440 fix(snippets): read the stored provenance before writing the fresh stamp into the response bvandeusenandClaude Fable 5 2026-08-16 12:53:34 -04:00