JSON-Rohbericht maschinenlesbar
{
"data": {
"repo": {
"topics": [
"ai-agents",
"developer-tools",
"graph-visualization",
"knowledge-graph",
"mcp",
"memory",
"typescript",
"webgl"
],
"is_fork": false,
"size_kb": 2661,
"has_wiki": true,
"homepage": "https://booboo-black.vercel.app",
"languages": {
"CSS": 81956,
"HTML": 12963,
"Shell": 6502,
"Dockerfile": 731,
"JavaScript": 111073,
"TypeScript": 370577
},
"pushed_at": "2026-07-20T19:20:44Z",
"created_at": "2026-07-02T07:52:59Z",
"owner_type": "User",
"updated_at": "2026-07-25T16:55:15Z",
"description": "Booboo — the unified operational brain. Wiring + knowledge + memory + agents + crons fused into one rooted, queryable 3D graph. REST + MCP + million-node 60fps viewer.",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "TypeScript",
"significant_languages": [
"TypeScript",
"JavaScript",
"CSS"
]
},
"owner": {
"blog": "https://fractionalhq.uk",
"name": "Jessy Mariau",
"type": "User",
"login": "jessymariau",
"company": null,
"location": "London, UK",
"followers": 0,
"avatar_url": "https://avatars.githubusercontent.com/u/268124037?v=4",
"created_at": "2026-03-14T07:52:41Z",
"is_verified": null,
"public_repos": 5,
"account_age_days": 134
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [],
"recent_commits": [
{
"oid": "c38b4c793c585ba94203406cc35d9bcc76d7c50e",
"body": "PR #6 is the first pull request this repo has ever run CI on, and the\nguard died on it: `fatal: origin/main...HEAD: no merge base`, exit\n128. actions/checkout clones shallow, the step then fetched --depth=1,\nand two one-commit histories have no common ancestor for base...HEAD\nto resolve against.\n\nSo\n[…]\nh-depth: 0 on the checkout, and no --depth on the fetch.\n\nIt had been \"tested against six real cases\". They were invented\ncases, run by hand, and they tested the logic. Only a real PR tests\nthe guard.",
"is_bot": false,
"headline": "fix: the changeset guard failed closed on every PR (no merge base)",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T19:20:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7a94bba671ebb982730519603e3017b16d1ceb23",
"body": "The blocker was one account-level flag,\ncan_approve_pull_request_reviews, which overrides even a workflow's\nown declared pull-requests: write — release.yml grants itself that\nand still could not open a PR.\n\nLeft default_workflow_permissions at \"read\" on purpose: the release\njob declares the write sc\n[…]\none is\nthe dependent bump updateInternalDependencies exists to force — the\nstructural fix for C35, now demonstrated rather than asserted.\n\nThe gate is now what G4 claimed it already was: one approval.",
"is_bot": false,
"headline": "ci: the release pipeline is armed — Version PR #6 exists",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T19:12:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b109810c55d070db718d084d9eff7a776b0799f7",
"body": "… tick\n\nCI caught what I did not: boardHeight golden=4776 got=4662 on ubuntu,\na 2.4% difference because the runner wraps a card's text one line\ndifferently. This file's own header calls text width \"a rasteriser's\nopinion, not a fact\" — board height is that opinion one step removed,\nso I had applied \n[…]\ne on a repo where no changeset had ever\nbeen merged, so that step had never run — a tick with no observed\nartefact, which is exactly what GAPS forbids. Corrected, with the\nsetting that fixes it named.",
"is_bot": false,
"headline": "fix: tolerance on boardHeight, and A7's release row was another false…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T16:53:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "aed20ba9921acf2524381c3dc0e37e994e1a3890",
"body": ".gitignore carries *.png, so design/golden/pemberton-overview.png had\nnever left one machine. GAPS claimed 'one, of five'; the true number\nwas zero. Found by committing the C10 work and reading what git\nactually took, not by reading the row.\n\nA second argument for the JSON gate, arrived at by accident: a golden\nthat cannot be committed cannot be a baseline.",
"is_bot": false,
"headline": "docs: correct A7 — 'one golden frame committed' was never committed",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T16:48:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "04a90c5244dd1c949dc18288d432fedeb18259f5",
"body": "Built on check-vendored-index.mjs's shape: probe, compare, fail\nloudly, prove it by breaking it.\n\nA \"frame\" here is measurements, and refusing the obvious pixel diff\nwas the actual decision. An image diff does not survive this project:\nCI is ubuntu and dev is Windows so every text pixel differs on\nr\n[…]\nferent measurement.\n\nAlso extracts scripts/lib/cdp.mjs and moves shot.mjs onto it, rather\nthan leaving two copies of the driver in a repo whose most repeated\ndefect is two implementations of one fact.",
"is_bot": false,
"headline": "ci: golden frames — measurements, not pixels (C10)",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T16:48:18Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "db7fce73c94b440befc0c8c6db5b47f8d3dde6b8",
"body": "Reading computed style beats reading pixels for colour, size and\noverflow (GAPS C23, C32), and the script could run a probe but threw\nthe answer away.",
"is_bot": false,
"headline": "tools: --eval prints its result — a probe, not just a screenshot",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T15:17:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6701e3b334aae4dd941267981145efca9a60ef94",
"body": "The funnel had never been looked at below desktop. What the first\ncaptures showed:\n\n * the landing hero was EMPTY. GAPS called the fallback \"a CSS\n starfield\"; it is two radials at .14/.10 alpha with no stars in\n it. So a phone visitor read \"It's turning behind these words,\n live\" over not\n[…]\no revolution to cut a seamless loop on.\n\nDesktop verified unregressed at 1440x900 and 1600x1000. C9 goes amber,\nnot green: the board's toolbar still overflows at 390, and none of\nthis is a real phone.",
"is_bot": false,
"headline": "feat: make all three surfaces work on a phone (C9), and the hero honest",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T15:13:20Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "15f0f6a08e5fa36b39675815c6ba4542032f8c55",
"body": "booboo.fractionalhq.uk and fractionalhq.uk/booboo had no og:image and\nunfurled blank. fractionalhq.uk did NOT — the backlog was wrong about\nthat one; it carried a valid card that was simply two weeks stale and\nshowed the pre-craft-pass page, ticker and all.\n\nEach page's card is now a live capture of\n[…]\nps the top.\n\nAdds scripts/shot.mjs — zero-dependency CDP capture, so this is\nre-runnable instead of an ad-hoc command line. Same shape C10 needs.\n\nGAPS C8 closed with the live curl of all three pages.",
"is_bot": false,
"headline": "feat: OG cards on all three pages — the real hero, not a logo plate (C8)",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T14:45:21Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7e64c232a44d29cbde542b82e2a0c107ba72fc94",
"body": "The old one was stale in a way that would have actively misled: it still\ndescribed PR #5 as open and do-not-merge, and named the light-colour fix as\ntask 0. Both are long done.\n\nThe new one leads with a swept state (not a remembered one), then a section on\nwhy a screenshot from a hidden Chrome tab i\n[…]\nreading before catching it. Then\nthe backlog in priority order, the gates, and the three constraints that keep\nthe landing page's run log safe.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: NEXT_SESSION — rewritten handoff for the next pickup",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T14:16:53Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b80ce7ed04f790fe51898ed16512aa8d3ca81943",
"body": "Both were stale entries rather than real work, and a backlog that lies about\nwhat is open is worse than a longer one.\n\nC2 (\"panel counters read 0\") sat at half-fixed. It is genuinely closed now: C33\nresolved the memory->observation alias in the index and guarded it in CI, and\nC35 published serve 0.4\n[…]\ncanonical\nsource, and warns against rotating on its say-so. That file is gitignored, so\nthe correction lives there and the evidence lives here.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: close C2 and D3 — two rows the backlog was carrying falsely",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T14:09:30Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4178eb7450f93471f65fa546f867a573eb8c9fa7",
"body": "The skip-guard stays deliberately: when the token expires (~October) releases\ndegrade to a warning rather than reddening main, and the message says exactly\nwhat to do.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci: release pipeline is armed — NPM_TOKEN secret set",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T12:33:47Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "0f28080d22a9639029825b8894c6b9d57380656e",
"body": "G4's capability was proven; its discipline never existed. Nothing forced a bump\non merge, so main and npm drifted: the OS ran a two-week-old panel (C30) and\n`npx booboo` shipped panel 0.5.2 from before the entire craft pass (C35),\nbecause a workspace dependency is frozen at publish time.\n\n- @changes\n[…]\n a warning when NPM_TOKEN is absent rather than failing —\na permanently-red main trains everyone to ignore CI. Jesse adds the secret to\narm it.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci: changesets + release workflow — close G4's remainder (GAPS A7, C35)",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T10:32:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f1c291f3fa71bb4cf2624f4c4b50ae43d1d302ca",
"body": "… (C35)\n\n@booboo-brain/cli@0.5.0 pinned panel 0.5.2 — from before the entire craft pass —\nplus serve 0.4.0, spec 0.3.0, viewer 0.1.1, vault 0.1.0. A workspace dependency\nis frozen to whatever was latest when the package was published, so every OSS\nuser running `npx booboo panel` got a board with no \n[…]\n and a bundle\ncontaining the solo-pack grid. Checking the repo, the demo, or our own OS would\neach have passed while the product stayed broken.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(cli): republish so npx booboo stops shipping a two-week-old panel…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T10:28:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ba78b3d112250bd93b480e50ec27e77c0f5c3f78",
"body": "…S C34)\n\nJesse, on the OS board: \"it's a single line, all agents are in a single line,\nit just doesn't make sense at all.\"\n\nA LANE is a shelf for a department AND ITS PEOPLE — head left, staff flowing\nright — and it earns a full-width row by having them. A childless rank-III unit\nfills none of it. T\n[…]\n9 lanes, no pack,\n62 cards, 61 rails — the exact count A5 recorded when the cascade shipped.\n\n0.5.5 -> 0.5.6 staged; publish stays Jesse-gated.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(panel): childless units pack instead of each claiming a lane (GAP…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T09:56:42Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "557b32faff204b235d344a042735c738b1ce8c03",
"body": "There was a THIRD copy. web/api/_index.mjs is a hand-vendored BoobooIndex —\ndeliberately so (the demo's serverless functions must not drag in express +\nfs/journal, nor wait on an npm publish), and its header says \"if graph.ts\nchanges, re-copy them here\".\n\nThat rule had nothing enforcing it, and it i\n[…]\ne\n\"list type=memory: vendored=1 packaged=2\" and exit 1; restored, it passes.\n\nWhen a comment says two files must agree, make CI say it instead.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(web): sync the vendored index + guard the drift in CI (GAPS C33)",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T09:01:05Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "69b02d1c97e0a5d9662c99cfb722839010e86120",
"body": "The Pemberton demo: three faces on one URL — SEE, GOVERN, ASK",
"is_bot": false,
"headline": "Merge pull request #5 from jessedu29260-netizen/feat/public-demo-site",
"author_name": "jessedu29260-netizen",
"author_login": "jessymariau",
"committed_at": "2026-07-20T08:57:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4b611ae06633c68a9fafc19abd6473418c20c696",
"body": "CI caught a real bug in the previous commit, not a bad test. I had written the\nalias as a rename (memory -> observation), which broke graph.test.ts:31 —\ncorrectly, because JournalWriter writes every remembered note with\n`type: \"memory\"` literally (journal.ts:114). A rename would have made the whole\n\n[…]\n\n\n16/16 serve tests pass. Re-verified over the CLI: type=memory -> total 2100,\nclusters?type=memory -> house 70, executive 30, engineering 252.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(serve): make the memory alias a widening, not a rename (GAPS C33)",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T08:56:36Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fdfd4e7814891264782c8e641fd5fba910dadf06",
"body": "…C33)\n\n`booboo panel` reported \"0 memories\" over a snapshot holding 2,100 of them,\nand every dossier read \"0 memories in reach\".\n\nThe panel asks /nodes?type=memory; the Pemberton's ledger entries are\ntype=observation. The alias existed — in web/api/panelapi.mjs, the DEMO SITE's\nserverless adapter, a\n[…]\n re-read: window hidden, rAF throttled, every\nuseCountUp frozen at 0 (C17's landmine).\n\nserve 0.4.0 -> 0.4.1 staged; publish stays Jesse-gated.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(serve): resolve the memory->observation alias in the index (GAPS …",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-20T08:53:49Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "dc09da75020f713153afaf0d7576bf029ac9b907",
"body": "…PS C32)\n\nThe Dionisos OS board rendered split-brain: data-theme=light on the document,\nwarm-white body, cards at #0d121a. Not a theme-plumbing bug — a custom-property\ncollision. dionisos-graph's globals.css declares 11 of the panel's token names\non .os-root, which is an ANCESTOR of the panel, and c\n[…]\nhtml>\nstayed light throughout. tsc clean, panel build clean, web/dist rebuild clean.\n\nVersion staged 0.5.4 -> 0.5.5; publish stays Jesse-gated.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(panel): scope tokens to the panel's own root, add a theme pin (GA…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T23:09:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6ad837d0092ef74d79f40d27af36f98f12a136b0",
"body": "…fix, for a fresh pickup",
"is_bot": false,
"headline": "docs: NEXT_SESSION.md — consolidated pending work + the light-colour …",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T22:21:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "73a0582d863d9ae0478aed96ceaf6110ac26b36d",
"body": "Both gates cleared with Jesse's authorisation:\n- Published spec 0.3.1 · panel 0.5.4 · viewer 0.1.2 · create-booboo 0.5.0\n (workspace:* resolved to spec@0.3.1 in panel/viewer, verified on npm).\n- Merged booboo-panel-cadence, npm update'd the OS to panel 0.5.4, deployed\n dionisos-graph.vercel.app.\n\n\n[…]\nirmed there too — lane lit,\n two drops pending, undo-one left the other (2 -> 1).\n\nG4's mechanism proven end-to-end: main -> publish -> npm -> OS -> deploy ->\nrender. GAPS C30/C31 shipped, D5 closed.",
"is_bot": false,
"headline": "docs: G4 shipped — the OS renders the proper booboo, verified live",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T20:32:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ae68e1815299edd8281e4b954a16d736ebc7b998",
"body": "Dozens of commits landed on these four with no version bump, so npm still\nserves pre-craft-pass code. Bumped so the gated publish is one command:\n\n @booboo-brain/spec 0.3.0 → 0.3.1 (additive: relTime, deprecation)\n @booboo-brain/viewer 0.1.1 → 0.1.2 (relTime import, light-shaft s\n[…]\n update @booboo-brain/panel` + a redeploy - no\ndependency edit. spec/panel/viewer must publish TOGETHER: panel and viewer now\nimport relTime from spec.\n\nStaged only. `npm publish` remains Jesse-gated.",
"is_bot": false,
"headline": "release: stage version bumps for the packages changed this session",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T20:15:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6cb63abe0fe43cd1c7d09547d6cd6fa4513b14f9",
"body": "Investigating \"Dionisos OS should display the proper booboo\" corrected a\nfactual error in GOALS: the OS does NOT render a lookalike. It mounts the real\n@booboo-brain/panel (OrganigramPage.tsx, never a fork) and adapts the live\nDionisos brain to the panel's routes. The architecture is already the rig\n[…]\niewer+create-booboo together, then npm update + redeploy the OS),\ngated on npm-publish and Dionisos production deploy.\n\nGAPS C30 (the drift) + C31 (the OS cadence fix, on branch booboo-panel-cadence).",
"is_bot": false,
"headline": "docs: G4 status — the OS mounts the real panel; the gap is version drift",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T20:14:08Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "892de325666dcc6e6c407732c4d39671bb00632b",
"body": "Two findings, both from checking what already exists before building.\n\n1. CADENCE ALREADY EXISTED - and was documented into uselessness.\n\n`cadence` (expected hours between reports) was in the spec and `lightFor`\nalready honoured it for ANY agent, no automation gate. But the spec comment\nread \"automa\n[…]\n.\n\nVerified live: rendered tally {Healthy: 7, Needs a look: 2} across the nine\ndepartment cards, and the board's dossier now reads \"2mo ago\"/\"3mo ago\"\nwhere it read \"67d ago\"/\"96d ago\". GAPS C28, C29.",
"is_bot": false,
"headline": "G3 depth: declare the reporting rhythm, and stop saying it twice",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T19:06:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "63330905e126710abcc7d255dd8cca59ffd483a4",
"body": "G3's core gap: every install got the same three agents - core -> writer,\nresearcher - whether you're a hotel, a law firm or one person with a side\nproject. Nothing was ever asked and nothing was ever inferred.\n\nThe architectural call is that the intake is a DOCUMENT THE AGENT EXECUTES,\nnot a CLI wiz\n[…]\nngs are flat by\nconstruction, so \"the divisions ARE the folder names\" would have produced a\nroot with fifteen children and called it an organigram. The grouping lives in\nthe prose. Step 1 now says so.",
"is_bot": false,
"headline": "create-booboo: the scaffold stops pretending it knows your system",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T18:30:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c0c6930a8669886d7be012d9a8fa43e5d5423244",
"body": "…re visible\n\nFour defects found by looking at a crop of the card the previous commit had\njust fixed.\n\n- The role sat inside the header flex row, so the action buttons claimed\n width first and The Executive's four seats wrapped into a 7-line ribbon\n down one side. It now breaks out to full panel wi\n[…]\nd --dot.\n\nThe last two are the C23 lesson again - a rule that resolves to nothing\nlooks exactly like one that works - so this was verified in BOTH themes on\nthe deploy, not just the default. GAPS C27.",
"is_bot": false,
"headline": "panel: dossier - free the role, kill the side-stripes, make the textu…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T18:15:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e9a142ef607aeadb4d5f2f906abbe7a1ab0e4d87",
"body": "Spotted on the Executive's own dossier: \"0 memories in reach\" on the root\nof a three-year-old hotel, while Engineering alone held 252. Same class as\nC22 - the most important card in the house reading zero.\n\nThe 100 observations were being generated and parented to the right bucket,\nbut stamped `clus\n[…]\n is checked in both directions.\n\nVerified on the deploy: house 70, executive 30, guest-registry 0 (still\nsealed), engineering 252. The Executive's dossier reads 100 memories in\nreach, was 0. GAPS C26.",
"is_bot": false,
"headline": "pemberton: the house and the executive held no memory at all",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T18:10:35Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bc772f2a2bff2d687f433c9229a9c4b455ae5804",
"body": "Jesse: \"if i move a link, i cannot unlink it, it seems stuck to where i\nlinked it.\" Re-parenting was never broken; the affordance was.\n\n- Only .ag cards accepted a drop, so releasing over the empty space in a\n lane did nothing at all. The whole lane is now a drop target and lights\n up on hover, wh\n[…]\n dropped on Front\nOffice's empty lane space (parent engineering -> front-office), CCTV moved\nto F&B, then undid ONLY HVAC - it went back to engineering, CCTV stayed\nput, pending went 2 -> 1. GAPS C25.",
"is_bot": false,
"headline": "panel: make the board workable - lane-wide drop targets + per-item undo",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T18:04:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "940d8bdb3f2d75ff795324672437e7d968a8a7b2",
"body": "Two faults my own pass had already named and I had only reported.\n\nThe page was Restrained throughout: warm white plus one brass accent. That\nis the PRODUCT colour strategy, and the brand register says a landing which\ndoes that ignores the register. It now alternates and commits. Act I dark on\nthe l\n[…]\ndth\non any page tall enough to scroll. Percentages resolve against the gutter,\nwhich is already scrollbar-aware, so widening by the padding is exact.\nVerified scrollWidth <= clientWidth after the fix.",
"is_bot": false,
"headline": "feat(web): commit the palette, add the imagery, break the gutter",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T17:52:41Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bb108b8ffc939ac62a60bca5f3a6f3c3d93484cd",
"body": "I had loaded the skill, applied two shared laws and called it done. Running\nit properly, against the brand register reference, found two banned modules\non the landing.\n\nIdentical card grids: .board-notes was three same-sized cards, heading plus\ntext, repeated. Now a run of claims with no chrome, a b\n[…]\n card is technically a side-stripe hit, but Jesse explicitly chose\nthat variant and the stripe is semantic (health state) rather than a\ndecorative accent. His call to make, not mine to quietly revert.",
"is_bot": false,
"headline": "fix(web): clear two absolute bans the impeccable pass caught",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T17:44:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "481b8d46970c7d2174c02bfd41222be0707c4799",
"body": "Every verification in this project ran headless with a clean user-data-dir.\nThat proves the build works. It cannot prove the product works, because a\nfresh profile has no localStorage, no cache, no session — so the entire class\nof stale-persisted-state defects was invisible by construction. The them\n[…]\nfix that way rather than by assertion: his profile still\nholds the legacy booboo-theme \"dark\", booboo-theme-v2 is null so he never\nchose it, and the embedded board reports data-theme light regardless.",
"is_bot": false,
"headline": "docs(gaps): D5 — headless with a fresh profile is not the user's browser",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T17:39:45Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9d5803debbf23c6d1e9c9e296273309fe6ce9a59",
"body": "…pened\n\nJesse's board rendered dark while every screenshot I sent was light, and the\nlanding page's centrepiece rendered dark inside a white page. Same cause, and\nit is a bug I named two turns ago and did not fix.\n\nThe theme effect wrote localStorage on MOUNT, not only on toggle. So every\nvisit whil\n[…]\n: this repo has no PRODUCT.md or DESIGN.md, so the\nimpeccable context gate does not pass. design/CRAFT.md and design/GOALS.md\nalready carry that role; the shared design laws were applied without them.",
"is_bot": false,
"headline": "fix(panel,web): the default stopped persisting itself, and edges shar…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T17:30:53Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0d4608a3598b2bdc80959dc205a08ce83e948b24",
"body": "The page used to hand you cosmos, then more cosmos, then the board as a card\nwith a link — it led with the hook and buried the thing that actually sells.\nNow it is three acts: a dark cinematic hero whose only job is to stop the\nscroll, then the page turns LIGHT for a live embedded staff board, then \n[…]\n does not shrink the viewport: Chrome lays out at 500 and crops the\nimage, which looks exactly like a text-overflow bug. Both cost me a wrong\ndiagnosis; device emulation is the only honest phone test.",
"is_bot": false,
"headline": "feat(web): rebuild the landing around hook, convince, prove",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T17:22:39Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5a254e7e0471165b9cd14430a5b4036ebe5ecf21",
"body": "Inline python inside a bash -c had its backticks interpreted as command\nsubstitution, so the cross-link rendered as an empty pair of parens. Written\nfrom a file this time instead of fighting two levels of quoting.",
"is_bot": false,
"headline": "docs(gaps): restore the GOALS.md filename the shell ate",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T16:58:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b9c7d124e56fa4c697e028b64dec1f999bd275f2",
"body": "Jesse set the spine: a landing that stops people, a workable organigram that\nis the rule of law, install-and-an-orchestrator-builds-your-structure, and a\nforkable UI where a merge on main reaches every host. I added two: trust\n(nothing is \"done\" without evidence) and a path from impressive to paid.\n\n[…]\n board, and mobile-as-video\nbecomes legitimate rather than a fallback.\n\nGOALS aims, GAPS reports, and when they disagree GAPS wins — cross-linked\nboth ways so neither can quietly drift from the other.",
"is_bot": false,
"headline": "docs(design): GOALS.md — the six goals, and how far each actually is",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T16:57:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4cb712cdcbd99ed4189181bc12c944b8250932bc",
"body": "design/tokens.json gained the wine + brass family, but the two files\ngen-tokens.mjs produces from it — packages/viewer/src/tokens.ts and\nweb/tokens.css — were never committed alongside it.\n\nFunctionally the deploy was fine: build-web.mjs runs gen-tokens before\nassembling, so the artifact I shipped w\n[…]\n compiled against it.\n\nThe demo has been deployed from a local web/dist this whole time. That is\nthe gap worth naming: \"it works on the deployed URL\" is not the same claim\nas \"the repo produces this\".",
"is_bot": false,
"headline": "chore(tokens): commit the generated outputs the PR was missing",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T16:36:16Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "33d174b9a38af635ea13da85db93aca5e9afb83b",
"body": "Every staff role now carries one honest sentence saying what it actually\ndoes at the Pemberton. The Night Porter \"walks every corridor at 02:00 and\nagain at 05:00\"; the Night Engineer is \"the only pair of hands in the\nbuilding between midnight and six\"; Payables \"matches invoice to order to\nreceipt \n[…]\nver varies across a\ncolumn is texture pretending to be data. It stays on nodes with children,\nwhere it genuinely differs and genuinely matters.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(pemberton): 52 duty lines — the leaf card finally has a \"what\"",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T16:25:13Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9fb76f9d0fb89b0eecb9d33098788d03db5f4c01",
"body": "Jesse's correction, and it reframes the component: the organigram is not a\npicture of the org, it IS the org file booboo_boot reads. Rules inherit down\nit, bucket reach derives from it, every agent's boot slice is generated out\nof it. Drag a plate to a new parent and you have not rearranged a diagra\n[…]\nhe lane's head column at its old 232px, so department cards overflowed and\ntheir role line and timestamp were clipped. Column widened to match.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(panel): the card becomes a SOURCE card, not a display card",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T16:17:53Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4ed22e069329c5a4055b7491d6aa86fa7f9fa93d",
"body": "Both found by going back and actually checking, after I reported the light\nboard as done having only looked at one tab, at one size, with animations off.\n\nThe Executive filed 36 monthly closes and the board said zero. House-level\nagents carry cluster: null, and reports resolved their filer by cluste\n[…]\ncolours, no\nuncaught exceptions anywhere, the landing and viewer are unaffected by the\ntokens.json additions, and the theme toggle round-trips.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(panel): report attribution, and the dark theme the light pivot broke",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T16:01:53Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5340c233b4ff4d6539fe7046a41944b9ca32e58c",
"body": "…cutive\n\n\"Design for everyone\" — a white background, very light bubbles, a refined\ndisplay. Light is now what a stranger lands on; dark survives behind the\ntoggle. A whole hotel uses this board, not a room of developers, and nobody\nshould open their own org chart into a terminal.\n\nThe ground is a wa\n[…]\nbecause its 36 closes are house-level (cluster: null) and the panel fetches\nreports by cluster. Same hollow-dossier class as C12 — GAPS.md C22.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(panel,pemberton): light by default, a real health light, The Exe…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T13:27:09Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "92a29fa922045d8b310613a50be49306b37a0d32",
"body": "The structure the reference organigrams actually carry, now built rather\nthan described. Rank runs left to right, one column each:\n\n I THE STANDARD · II GENERAL · III DEPARTMENTS · IV STAFF & MACHINES\n\nRank I is the House Standard, rendered from the root agent's own declared\nrules — honest t\n[…]\nchart; at nine\n departments it buried the Standard and the GM below the fold. Top-aligned,\n which is also the ministry chart's reading order.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(panel): the cascade — four rank columns, measured brass elbows",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T13:05:43Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "eca94f1d91f644bc7f24373d72c521481b42545a",
"body": "…inbow\n\nDirection set by Jesse from two reference organigrams — a master-key\nhierarchy (passe général → passe partiel → cylinder, which is literally how\na hotel is keyed and exactly how authority cascades here) and a ministry\nchart where rank is NAMED rather than inferred — combined with the approve\n[…]\nce and my own approved mockup show, which means the rank\nheaders currently label columns that do not exist. That is the next move,\nnot a claim.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(panel): the staff board becomes a key rack — brass plates, no ra…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T12:47:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3f3476616db4df99d819b8b86962fd2575887297",
"body": "…o history\n\nThree defects Jesse found by clicking one node, all real:\n\n1. The dossier read the wrong field names. It was ported from the Dionisos\n OS and looked for status_pill / p0_count / phase / last_move / next_plan.\n The Pemberton emits desc / health / note / lastBoot / role. Zero overlap,\n\n[…]\n inverts\nour own luminance ladder. persistKey bumped v3→v4 so returning visitors get\nthe new defaults rather than a stale copy of the old ones.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(viewer,pemberton): the dossier had no dictionary, and the house n…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T12:13:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d7e8b08f5140ec93d7bc1acbe920a19ca7531c06",
"body": "CRAFT §2's protected-in-writing signature finally exists: a spotlight cone\nfalls from every structural parent onto its child (GM to heads, heads to\nSOPs and staff), narrow at the source and widening as it lands, fresnel-lit\nat the silhouette, gradient alpha, grain drifting downward, igniting\ntop-dow\n[…]\nefault + all three non-default presets) and the landing page's embedded\nhero, confirming no white-out and each preset's distinct configuration.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(viewer): light-shaft spines — the signature element, built",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T11:20:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3122880da6c56b770702c1c9a9d23ed22a0ee1cc",
"body": "…isible\n\nCRAFT §5, closed. Every connector in the org chart now renders as a real\nbrass rail (gradient + glow) instead of a plain grey line, with an explicit\nelbow from each department head into its staff — the connector HANDOFF.md\nfound hidden inside lanes.\n\nStaff cards stop repeating themselves (\"\n[…]\nthe live deployment, three via a CDP-driven\nclick/hover + screenshot (not just a static render) — see design/GAPS.md A5\nfor the evidence trail.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(panel): the staff-board craft pass — brass rails, the law made v…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T10:55:01Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0e9171373483a227b2b59c55924584c6512a8501",
"body": "Jesse's verdict: readable now, but \"it doesn't get its place out of the\nmould\" — competent dark-SaaS-with-brass, no point of view. This hands the\ncraft pass to a fresh session with the state, the specific open work, the\nlandmines that each cost real time (background-tab animation freeze, the\ngenerat\n[…]\nrass plaques,\nengraved plates, the key-rack behind reception. The current design's failure\nis not execution, it's that it has no point of view.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(design): HANDOFF.md — the bridge to the craft pass",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T10:31:09Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "03659039f620a8663a92476e6471a9264b0d8f02",
"body": "…real marks\n\nA five-star hotel is a mesh of third-party systems, and a brain that can't\nsee them is only half the operation. The Pemberton gains 15 service\nautomations hung off the departments that depend on them: SAP Hospitality,\nBooking.com and WhatsApp Business at Front Office; Stripe, Xero and n\n[…]\nes, which shunted the staff row into a one-card\ncolumn. Explicit grid-areas now — head, its service stack beneath it, people\nfilling the right.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(pemberton,panel): the services the house actually runs on, with …",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T10:03:14Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "91def02b240b1f95b93af5a5f09c5cfaa2be4297",
"body": "Two defects, both created by making the board a downward document.\n\nSEALED BELOW THE FOLD. .chart-fit was overflow:hidden unless the user\nmanually zoomed — safe only while auto-fit guaranteed the whole org fit one\nscreen. With width-fit the board grows past the viewport, so every lane\nbelow the firs\n[…]\nmation clock doesn't advance when the tab isn't focused. Finish or\ncancel animations before trusting a computed style read in an unfocused tab.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(panel): the staff board scrolls, and stops at the last lane",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T09:53:31Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5c883e723647ed4c531aed1b012ee8c8f74ead5a",
"body": "The board fanned nine departments sideways and auto-fit crushed it to 17%,\nwhich is not a chart, it's a diagram of one. Three fixes:\n\nLANES. Departments now stack downward, each a self-contained row: the head's\ncard on a brass rail at the left, its people flowing right and wrapping\ninside the lane. \n[…]\nd card\ntilts toward the viewer under the same key light the brass landmarks use in\nthe cosmos — motion suppressed under prefers-reduced-motion.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(panel): the staff board reads — departments as lanes, downward",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T09:38:08Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4f35981c4492a110c2b81193f223b976e431e68e",
"body": "The hero brain is deliberately pointer-events:none — a painting, not a tool\n— which left a visitor reading the page with no way to touch the thing. New\nsection 02 \"The house, live\" embeds the real viewer, interactive: drag,\nclick any node for its dossier, press / to search, and the five flag beacons\n[…]\npping a\ncontrol panel into someone's reading flow. Verified at embed dimensions —\norientation card, flags and dossier all present, drawer gone.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(web,viewer): a playable graph on the page, not just behind it",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T09:30:48Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "cd0a8b2fa5ac9bfbfaba4728aab130918dafaea2",
"body": "The ASK section described a live endpoint the reader could not call. Four\nchips now fire real JSON-RPC at /mcp — the same endpoint a claude.ai\nconnector talks to — and render what comes back: major failures this week,\nthe absence ranking, incidents by department, and Housekeeping's boot slice\nwith i\n[…]\nthe brand domain. Verified in-browser on\nbooboo.fractionalhq.uk: all four return correct live answers.\n\nCloses A7 and Tier 2 of design/GAPS.md.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(web): ask the house from the page — the proof stops being prose",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T09:17:03Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5afc0e14cb6975818231d69e8a221f3b08a15ebb",
"body": "The viewer used to drop a first-time visitor into a 3D scene with a\nfourteen-slider drawer, a layer-count HUD and \"drag to rotate\" — none of\nwhich says what the thing IS. The card now names the house and its bands\ntop-to-bottom (marking the top band and the floor), then hands over the\nactual problem\n[…]\nen so the two never\ncompete. Verified live.\n\nCloses A3 in design/GAPS.md; A4 moves to partial — view presets and the\nd-pad walk are still open.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(viewer): orientation — a stranger now knows what they're looking at",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T09:13:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c63f9278078c172305336c80f85208498f217bc8",
"body": "Two Tier-2 gaps closed. The site had been showing the product and never\nexplaining it.\n\nSection 02 \"Three faces, one brain\" promotes SEE / GOVERN / ASK to\nfirst-class cards with their own pitch and CTA. The staff board stops being\na 10px topbar link beside GitHub and npm, and a visitor finally learn\n[…]\nal unedited boot slice\nshowing rules in inheritance order, because that slice IS the product.\n\nSections renumbered to 01-06. Verified rendered.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(web): the label — three faces named, and the model finally taught",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T09:10:20Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2bbaf3af0df5ce496d47ac98aecbcc40eadb9a0b",
"body": "…d to be\n\nscripts/gen-tokens.mjs generates the three consumers from design/tokens.json:\npackages/viewer/src/tokens.ts (scene constants, verb + flag palettes),\nweb/tokens.css and packages/panel/app/tokens.css (CSS custom properties).\nIt runs inside build-web.mjs, so a stale build cannot ship a drifte\n[…]\n.\n\nCloses Tier 1 of design/GAPS.md: flags, verb colours, tokens — three things\nspecified in CRAFT.md, assumed done, never built. Verified live.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(design): tokens become the single source they were always claime…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T09:06:12Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "56129f03d11f79ee220f6dc4e2d31ff0d0ff297b",
"body": "…ce ladder\n\nTwo Tier-1 gaps from design/GAPS.md, both specified in CRAFT.md and both\nnever built:\n\nFLAGS (luminance rank 1). The dataset carried 4 flags and 10 health values\nand the viewer drew none of them — so the half of the two-second test that\nasks \"where is the problem\" had no implementation a\n[…]\n\nVerified live on booboo.fractionalhq.uk: five beacons with the red critical\nleading, and reports_to/owns/escalates_to/audits visibly distinct.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(viewer): flags and verb colours — the missing top of the luminan…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T08:59:20Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "005d40aff1362896b1ac00f8aa2e63b22c21551f",
"body": "…opened with\n\nThe first cut audited the visitor journey and not the spec — which is how a\nwhole slice went missing unnoticed. Checked in code, not memory: flags are\nnot rendered anywhere (4 flags + 10 health values in the data, nothing on\nscreen), tokens.json is consumed by nobody, 0 of 397 edges ca\n[…]\nography. The top three ranks of my own luminance ladder are missing —\nincluding the half of the two-second test that asks where the problem is.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(design): GAPS.md gains the spec-vs-shipped audit it should have …",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T08:54:11Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e7dff3527020cfe8de1224ffda715c3a940a5f36",
"body": "…sted\n\nThe specs say what we intend; nothing said what is actually true. So\nfollow-ups scattered across 22 commit messages, a PR body and memory, and\nthe visitor journey grew holes nobody was tracking. This is the only doc\nallowed to claim \"done\", and only with the evidence that proved it.\n\nAudit of\n[…]\n-link, mobile, OG image, golden CI, the\nmillion-node claim I have asserted but never rendered), and the process\nrules that stop this recurring.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(design): GAPS.md — the done-vs-intended map that should have exi…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T08:48:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e9da104362e634ca98cd1450ec934dc4bd97ea08",
"body": "Caught in the pre-merge UI review: band rim labels rendered over the open\ndossier, overlapping the cluster/parent cards. Cause — drei's <Html>\ndefaults to zIndexRange [16777271, 0], so no sane z-index on the chrome\ncould ever win. Capped both Html usages (band rims, node labels) to\n[9, 0] and gave the chrome its token z-layers: hud 10, dossier 20,\npalette 30. Verified live at the same URL that showed the defect.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(viewer): 3D labels no longer bleed through the dossier",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T08:39:38Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "cbd4d6468eef2065d0830dd5a693aac2f496051a",
"body": "Testing the live connector exposed the gap: the read tools answer \"which\nnode\" well and \"how many, grouped by what\" not at all, so the flagship\nquestion (\"who has the most absences over five years\") was only answerable\nby inference from search ranking — the answer was in the data but the\nbrain could\n[…]\nRegistered in the package and mirrored in the\nvendored hosted set so local CLI and hosted endpoint stay identical; live\ntools/list now shows 8.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(serve,web): booboo_count — the brain can finally answer \"how many\"",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-19T08:34:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9576279dca0111e438889f1c59b87cedef1f7ed1",
"body": "The root rank now always fans horizontally: the GM's children are the\ndepartments and they read as columns, one per sector, in id order — the\nsame enumeration the cosmos viewer sorts its sectors by (the one-ordering\nlaw: sectors in SEE = columns in GOVERN, always). Deeper generations keep\nthe old ru\n[…]\n large staff\npools still stack inside their column. Verified live at /chart/: nine\ndepartment columns under the GM instead of a vertical strip.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(panel): the staff board ranks — departments as columns on one rail",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T22:31:11Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8a645c60144c10de50f044f47e0152bc5be6cc21",
"body": "…lights up\n\nPanel rethemed from verdigris-slate to the design/tokens.json system —\nmidnight glass, parchment ink, brass accents, Fraunces brand header,\nDM Sans/JetBrains Mono stacks (webfonts load on the hosted demo, the local\nCLI degrades to system stacks). The one-product law: /chart/, /viewer/ an\n[…]\n to the dataset's\ntype=observation, so buckets/memory counters read the real ledger (2,061\nmemories) instead of zero. Verified live at /chart/.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(panel,web): the staff board wears the house tokens + the ledger …",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T22:25:13Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ea0d62552116934c746d0744be1166ca4c139666",
"body": "The panel app mounts statically at /chart/ against the same brain: its\nsame-origin /api/* calls are funnelled through one read-only function\n(panelapi) that vendors the CLI panel server's routes over the already-\ndeployed BoobooIndex + orgBootSlice (meta/clusters/list added to the\nvendored index). A\n[…]\n/reports counters read 0 — the panel queries\ntype=memory/report while the dataset emits type=observation; needs a\ntype translation in panelapi.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(web): the GOVERN face — the Pemberton staff board live at /chart/",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T22:15:20Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "dc25c3dd47b209d4e1c8b4485fc8508cdec00b88",
"body": "Hero: \"A grand hotel, run by AI. This is its brain.\" — the copy now\ndescribes the thing actually floating behind it. Readout re-semanticised\n(nodes / departments / agent roles / licence). New ASK section with the\ntwo baked questions answered from the real ledger and the live connector\nURL for claude\n[…]\narget preserved); the close CTA\nwalks into the Pemberton. Display size tightened so the H1 holds its\nlines. OG copy updated to the house story.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(web): the site tells the Pemberton story — copy and scene converge",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T22:04:18Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "70ef4eec285386e1dc4d1c5b19987bdb0f2e16ed",
"body": "Relations stop being a flat edge list: a semantic adjacency (structural\nspines excluded) grouped BY VERB, count-sorted — Housekeeping reads as\n\"reports_to 7 · escalates_to 2 · reads 2 · declares 1 · inherits 1 ·\nsupplies 1 · owns 1\", each group capped at 10 with expand, every row a\njump. The Atlas d\n[…]\nloses palette, then dossier. Verified\nlive in-browser: verb groups render on agent:housekeeping, \"night\" finds\nthe four Night roles. Tests 3/3.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(viewer): dossier relations grouped by verb + the concierge palette",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T21:57:59Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "132e9f76244f7f40d337ac9c3908d02c5b230974",
"body": "…oint\n\n/api/mcp (alias /mcp) serves the Pemberton brain over Streamable HTTP from\nthe same Vercel Hobby project as the site — zero new infra, zero spend.\nSDK-direct with WebStandardStreamableHTTPServerTransport in stateless mode\n(per-request server, JSON responses, no lingering SSE): the mcp-handler\n[…]\nact, _data/_index hidden,\n/mcp rewrite honoured. Remaining external check: the claude.ai\nadd-connector flow end-to-end (needs a human account).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(web): the hosted ASK face — a free, authless, read-only MCP endp…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T21:51:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "071d159de1cedd086da2b9f2201b89a3b5c7beaf",
"body": "…golden frame\n\nThe hero and default viewer load switch from the synthetic benchmark to the\nPemberton Grand snapshot (2,414 nodes — comprehension is the front door;\nscale stays behind the CTA). build-web ships the snapshot with the site.\nFloor engravings now carry only the short rank word (GOLD, SILV\n[…]\nng — nine department columns,\nbrass heads on the silver ring, the House Standard at apex. The even-ring\nlayout branch is now visually verified.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(web,viewer): the Pemberton Grand becomes the front door + first …",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T21:35:27Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "91fc815e6703ba639a34858e797e1946a27a9c49",
"body": "Deterministic seeded generator implementing examples/pemberton/DESIGN.md:\n2,414 nodes / 397 links / 4 bands / exactly 9 department clusters. 62\ndurable roles in the org (rosters are snapshot-only — roles are durable,\nagents are disposable), 12 buckets incl. the sealed guest-registry (wall\nat emit, z\n[…]\n org validate 0/0,\nreal MCP handshake with boot slice, journal replay of 5 seeds.\nDeviations from DESIGN.md documented in the generator header.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(pemberton): the demo brain — dataset, org, journal seed, generator",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T21:32:09Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "88a3f4b75383870680ebd59570c58ab9cb7c881c",
"body": "Structural nodes (root + tier-1) leave the point cloud and render as\nfaceted brass studs: one InstancedMesh (icosahedron, flat-shaded standard\nmaterial, per-instance colour lerped toward gold), a soft contact-shadow\ndisc on their band's floor, instance-picked so the important nodes get\nprecise click\n[…]\nn the floors and the field (1.0-1.8s), and\nfollow torch focus. layout.ts now exposes nodeTier for the split.\nTests 3/3, verified at 50k on GPU.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(viewer): brass landmarks — tier<=1 nodes become objects, not dots",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T21:22:41Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0dc3418d36df4551bd92ed940212170098b64a05",
"body": "… the field wakes\n\nBands iris into place bottom-up (rise + settle ease, 0.18s stagger), spine\nedges ignite in a top-down wave from 0.9s (authority flowing down the\nstack), the field wakes top-down from 1.8s, everything settled by ~3.5s.\nDriven by one shared clock uniform written once per frame; the \n[…]\nt to the final frame. Verified: mid-intro\nframe shows the wave in flight, settled frame matches the approved look\npixel-for-purpose. Tests 3/3.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(viewer): entrance choreography — discs rise, the law flows down,…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T19:45:49Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "10bb5a77819a440f4e26584a04509777c5960b0e",
"body": "…est recedes\n\nSelect a node and the scene becomes a museum spotlight: the node and every\nedge touching it light to full; its direct neighbours lift to 0.95; the\nremaining field drops to 0.12 (nodes) / 0.06 (links) in both colour and\nalpha, and dimmed points shrink ~20% so the recession reads as dept\n[…]\nssier flow gains the\nvisual half. Verified at 50k with ?node=agent:5: one lit column through the\nstack, dossier open, field receded. Tests 3/3.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(viewer): torch focus — selection lights its neighbourhood, the r…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T19:39:04Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "034a4d2fbb35dfd66b89a615e882e90006e0ff32",
"body": "…t platforms\n\nEach band disc becomes a substrate object: procedural glass radial gradient,\nhairline rules at quarter radii, 60 whisper-level minute ticks inside the\nrim, the band name ENGRAVED along an arc on the floor (CanvasTexture,\nclock-face style, with an engrave shadow), a thinner rim ring, an\n[…]\nuned to substrate level: disc 0.055, rules 0.3, ticks 0.4, engraving 0.48.\nVerified at 50k on GPU: floors whisper, the field leads, names read.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(viewer): the observatory floor — engraved band discs replace fla…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T19:33:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "bc7a99b1e13b5c32cc9f61f9c4ed1e41fdb75e1a",
"body": "design/tokens.json: the CRAFT rule-zero source — palette in hex+OKLCH, band\nand verb colour maps, the assigned luminance ladder, type scale, easing set,\nz-layers. Consumers wire up progressively (site vars, viewer constants,\npanel theme).\n\nSprite shader: soft luminous core (exp falloff) + thin rim r\n[…]\n.62\nso only assigned emissives catch it when enabled. Verified at 50k on GPU:\ncolonies crisp, root calmer, field recedes with depth. Tests 3/3.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(design,viewer): tokens single-source + sprite/luminance pass",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T19:28:52Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0d01341d0c74bd0d055a89d9bd741f925296e5df",
"body": "…p becomes structure\n\nThe old scheme hashed cluster identity into an angle and mapped tier to\nradius, so every cluster occupied every ring: interleave was guaranteed by\nconstruction. Ported the axis law from the production Atlas cosmos:\n\n Z = layer (categorical band)\n angle = cluster identit\n[…]\nlinks on GPU: ~200 discrete colonies, each with its\nown spine cone to the root — the light-shaft look emerged from the layout\nalone. Tests 3/3.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(viewer): decouple the layout axes — clusters become columns, sou…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T19:22:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "14d7758cc6d285fe41889fb9eb6c5d55f64e4c67",
"body": "…surface\n\nThe distance between a dev graph and a converting surface is not effects,\nit is assignment: every brightness, easing, size and colour given a job.\nCodifies: the luminance hierarchy (flags > badges > pulses > ... > bg,\nselective bloom only), tokens as the single source (OKLCH, one easing se\n[…]\nl proof,\nscrollytelling site with mobile-as-cinema, hosted ASK scoping, golden-frame\nCI, and the build slices. Rule zero: nothing ships random.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(design): CRAFT.md — the visual & technical design law for every …",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T19:11:45Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b0cb3b6656d3c933eabebc036f3cb28e93b0e865",
"body": "… ASK (MCP), answers baked into the dataset\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(pemberton): three-faces ruling — SEE (cosmos) + GOVERN (panel) +…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T19:01:41Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f63cac67006fd5a84b4f38d8c8d66d5d8c405ef5",
"body": "…sible\n\nThe demo dataset stops being a visualization exercise. The Pemberton Grand\nruns on agents: every role has a personalised agent that boots from the\ngraph (identity, authority chain, rules in boot order, bucket reach), works\nscoped, and closes back into it. The graph is simultaneously the stru\n[…]\non,\nhow is it structured, where is the problem. Scale is a property, not the\npitch. Org schema + journal format marked verify-before-authoring.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(pemberton): design spec for the demo brain — an agent OS made vi…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T18:53:58Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "76fe9f86c73d7d558c57916493075b3cc377579c",
"body": "Two defects, both only visible once the graph and the page were composed\ntogether rather than reviewed separately.\n\n1. The vignette was symmetric and doubled up, which crushed the scene to a\n ghost — the whole point of running the real engine behind the copy was\n lost. Replaced with a directiona\n[…]\nnot a\n background. Dropped orbit for the ?chrome=0 path and kept drift, a slow\n in-plane roll that stays face-on while still feeling alive.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(web,viewer): make the hero read as structure instead of soup",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T16:45:37Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9101cbd6b1bb4691caff6916bf07c4964bd7b91c",
"body": "The repo had no homepage and no hosted demo, so every directory listing,\nevery npm page and the GitHub README all led to a README. For a product\nwhose whole pitch is visual, that is the funnel's biggest hole: you had to\ninstall a package to find out whether you wanted to install a package.\n\nAdds web\n[…]\nects a factual claim: the renderer is a\nsingle point cloud with a custom shader, not an instanced field.\n\nLive: https://booboo-black.vercel.app\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(web): a public demo you can look at without installing anything",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T10:17:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c84c0411772bec01d1a26f65404c12635a6e1407",
"body": "R3F measures its container on mount. Inside an iframe that measurement can\nland before R3F is listening, so the canvas stayed at its 300x150 intrinsic\ndefault while the wrappers were correctly sized — a postage-stamp scene in\nthe corner of a full-size frame.\n\nVerified it is a pure startup race: a re\n[…]\nhe bare scene with labels off — for\nembedding the brain as a live background. Both paths get the fix, so the\npanel's iframe embed benefits too.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(viewer): size the canvas correctly when embedded in an iframe",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-18T10:17:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2423ad13a00f6cf60b4cc1952de7cdba0568a8b8",
"body": "…te-booboo 0.4.1 + hygiene\n\n- create-booboo: add engines node>=18 (only package missing it)\n- panel: PANEL_VERSION now derived from package.json (was hardcoded 0.4.0,\n two minors stale — a drift that can't recur)\n- LAUNCH_CHECKLIST: check off MCP client setup (README carries the block\n since 4b327\n[…]\n>install->build->serve->mcp(remember/journal)->view->panel->vault,\n zero failures)\n\nVersions bumped locally only — npm publish is Jesse's call.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release-prep): patch bumps for panel 0.5.3 / vault 0.1.1 / crea…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-16T20:08:52Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c8fb319f6f64ebb2aaaef0212b7402645af22837",
"body": "…were blank\n\nEvery other published package had one (P2.3); panel and vault were added\nafter that pass and shipped without. Written against the shipping code:\npanel's five tabs + <Panel api> library use, vault's CLI + emitVault API.\nLands on npm with the next publish.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(panel,vault): add the missing package READMEs — their npm pages …",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-16T20:08:52Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7172149a6c22de3f13986e73539d7fa7b7a5c00a",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore: bump server.json to 0.5.0 (registry listing synced to npm latest)",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-16T02:09:12Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c647ceb3b726325982030346b964670e3e725c71",
"body": "…l projects\n\nPressure-testing the config against the live Supabase surfaced the fix: the\nedges in dionisos_edges reference canonicals by their `id` column, but the\ncortex source keyed nodes by `key` — so all 960 edges dropped as dangling.\nSwitch the cortex source to `id: id` (no primary/contract fil\n[…]\nm/content/\ncron tail still dangle — no node source yet). Remaining ~7.9k orphans are the\nengram/argus tiers, which connect by cluster not edges — a data question, not\nconfig; documented in the header.",
"is_bot": false,
"headline": "example(dionisos): wire the Cortex graph — canonicals keyed by id, al…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-13T15:56:25Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1a1cacb717f67703a749b6f39b4c8b3fe02bff4e",
"body": "…emory system)\n\nBooboo could render memory but not WRITE it: remember/report were roadmap,\nso a \"memory system\" that only displayed a graph. This ships the live half.\n\n- @booboo-brain/serve 0.4.0: an append-only JSONL journal (brain.journal.jsonl)\n beside the snapshot but OUTSIDE it — `booboo build\n[…]\nes references entities at finer grain than the\nconfig ingests as nodes, so 960 edges currently drop as dangling. examples/\ndionisos.config.yaml documents the measured finding + the target links shape.",
"is_bot": false,
"headline": "feat: live memory write-back — booboo_remember / booboo_report (the m…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-13T15:41:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "64afccf0dc88ee89fad60e4c3867daba1e6313e8",
"body": "PANEL_SPEC.md described an unbuilt Home/Memory/Prompts/Sessions/MCP\npanel that doesn't match what shipped (the Organigram: org/buckets/\nreports/rules/graph). Banner it as superseded roadmap, point to the\nreal thing.\n\nCONFIG.md had no worked example of the type:report / type:memory node\nconvention th\n[…]\n()/\nreport() are roadmap-only (populate via rebuild, not a live MCP call).\n\nFound auditing repo-readiness for an external Claude session (Silvy)\nto self-serve a fleet install from the repo link alone.",
"is_bot": false,
"headline": "docs: fix panel-spec drift + document reports/memory wiring",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-13T15:04:01Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4b3277ba65977e54ab7e8eb97e9848029795df8b",
"body": "The inline comment on the create-booboo command was being parsed as\nliteral CLI args by mcp.so's config extractor. Also add a ## Tools\nheading so mcp.so's auto-extractor picks up the 7 MCP tools instead of\nshowing \"No tools detected\".",
"is_bot": false,
"headline": "docs: fix mcp.so listing parse (Quickstart comment) + add Tools section",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-12T17:24:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6ecf25781fec87ea68572dd64d18d74d79579a6c",
"body": "…(1b/1c/2a/2b/2c/3)",
"is_bot": false,
"headline": "Merge audit-hardening-2026-07-04: Booboo Tier-3 audit follow-through …",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-12T08:45:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "913c224879352fa996afe8c90883c5462260c6c9",
"body": "…T package table\n\nAudit item 3 (2026-07-04 deep audit) — docs cleanup:\n\n- README.md status line + CONTRIBUTING.md said \"seven packages\" —\n @booboo-brain/vault (published, npm confirms 0.1.0) was missing from\n both. Now lists all eight (spec, build, serve, viewer, panel, vault,\n cli, create-booboo\n[…]\npo to be stale.\n- No stray nested .git under Projects\\ — Fractional HQ isn't even a git\n repo (confirmed via the session's own environment banner + `ls`), so\n there's nothing to remove there either.",
"is_bot": false,
"headline": "docs: reconcile package count to eight (vault was missing) + BLUEPRIN…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-12T08:39:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "44a8f6edc639d7450f894b7df2a19c5f9ab1ab67",
"body": "Audit item 2c (2026-07-04 deep audit): the Dockerfile already pins the\nCLI version and already has a .dockerignore (both done in an earlier\npass) — the only real gap was drift: commit 352c4c0 bumped server.json\nto 0.4.0 but missed the Dockerfile, so it was still installing the\nstale 0.3.0.\n\nVerified\n[…]\nbuild` succeeds, and the built image answers\na real MCP `initialize` handshake correctly (serverInfo.version 1.0.0,\nthe MCP protocol version — the npm package pin is separate and now\ncorrectly 0.4.0).",
"is_bot": false,
"headline": "chore(docker): bump pinned CLI version 0.3.0 → 0.4.0",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-12T08:37:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "db02e93b4cd7f1f93fb2ba9ef7e8f0a1ee7b7256",
"body": "Audit item 2b (2026-07-04 deep audit): the smoke test only proved the\nbuild pipeline works (scaffold → build → assert brain.json has nodes).\nIt never started the four things users actually run — a passing CI run\ngave no signal that `booboo serve`/`view`/`panel`/`mcp` still boot.\n\nAdded, after the ex\n[…]\npt (not inlined in the YAML) so\n it's runnable locally too.\n\nAll four verified locally end-to-end before writing the CI step (boot\neach, curl/handshake, confirm a real response) — not just eyeballed.",
"is_bot": false,
"headline": "ci: boot serve/view/panel/mcp and hit a real endpoint, not just build",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-12T08:36:08Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c222d582a59ff72c5ef8b696af58f91287d7e6cf",
"body": "Audit item 2a (2026-07-04 deep audit): the viewer already has a real\nerror boundary (RenderBoundary in BoobooView.tsx, wired around the\nrender tree) and validate()-at-load-boundary (app/main.tsx load()) —\nboth verified present and working, contrary to the audit's \"no\nvalidate()/error boundary\" frami\n[…]\no the\nviewer package (previously had none) with a dedicated vitest.config.ts\n— vite.config.ts sets root: \"playground\" for the dev server, which\nmakes vitest look for tests there too unless overridden.",
"is_bot": false,
"headline": "fix(viewer): cap per-label character length",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-12T08:33:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0dd0803b6b41c51c656107a0673a59a011c26f80",
"body": "…S behind explicit opt-in\n\nAudit item 1c (2026-07-04 deep audit): postgres.ts unconditionally set\nssl.rejectUnauthorized: false for every non-local connection, silently\nskipping certificate verification (still encrypted, but no protection\nagainst a MITM presenting any cert). Fixed:\n\n- Non-local conn\n[…]\n.\n\nNo existing test harness mocks pg.Client (would need a live Postgres or\ntestcontainers) — not adding one here; the change is a 2-line config\nvalue with no branching logic to unit-test in isolation.",
"is_bot": false,
"headline": "fix(build): verify Postgres server certs by default, gate insecure TL…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-12T08:30:41Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "65931960566518cd9910df080f000a483efcd584",
"body": "…oobooIndex\n\nAudit item 1b (2026-07-04 deep audit): REST auth, hop-caps, and\nduplicate-ID validation were already substantially implemented in the\na80033c hardening pass (BOOBOO_TOKEN bearer auth, server-side hop caps\nin graph.ts neighbors()/path()). Closes the two residual gaps:\n\n- rest.ts: bearer-\n[…]\nosing that direct-construction\n gap for real \"reject duplicate IDs on ingest.\"\n\nAdded test coverage for both: rest.test.ts (no REST auth test existed\nbefore) and a duplicate-id case in graph.test.ts.",
"is_bot": false,
"headline": "fix(serve): timing-safe auth compare + reject duplicate node ids in B…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-12T08:29:04Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "366d596db946cee507bb6dfa08e02393fc7ebe5e",
"body": "…(#4)\n\nserver.json now points at @booboo-brain/cli@0.4.0, matching the entry\npublished to the Official MCP Registry (io.github.jessedu29260-netizen/booboo).\n\ndocs/SUBMISSIONS.md updated to live coverage — Glama, mcp.so, PulseMCP and\nthe Official Registry are listed; Smithery ruled out (remote-only gateway).\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore: bump server.json to 0.4.0 + refresh MCP directory submissions …",
"author_name": "jessedu29260-netizen",
"author_login": "jessymariau",
"committed_at": "2026-07-11T19:17:38Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "352c4c0a44046dbf2354161dfe04bfab9cf884dd",
"body": "server.json now points at @booboo-brain/cli@0.4.0, matching the entry\npublished to the Official MCP Registry (io.github.jessedu29260-netizen/booboo).\n\ndocs/SUBMISSIONS.md updated to live coverage — Glama, mcp.so, PulseMCP and\nthe Official Registry are listed; Smithery ruled out (remote-only gateway).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore: bump server.json to 0.4.0 + refresh MCP directory submissions",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-11T19:14:45Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "22686095b1365057a2a3af705ee50d1948c89a43",
"body": "- @booboo-brain/vault 0.1.0 (NEW): emit the brain as a wiki-linked markdown\n vault (Obsidian-compatible) — node pages w/ frontmatter+links, layer/cluster\n MOCs, agent dossiers from the org. booboo vault CLI verb. Plain files:\n readable by humans, portable to any agent, nightly insurance.\n- build \n[…]\n+ vault script, wikilinks on,\n sample [[refs]] in the seed data.\n- cli 0.4.0: vault verb + quality line in build output. Docs: README + CONFIG.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "the vault + authored links + the agent contract",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-05T08:11:58Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "20e469db408e42e8d74ce4981825709104290d27",
"body": "…absolute, never overlaps host chrome) with ✕ close + slide-up; compact bar/tabs; zoomer clears the sheet\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "panel 0.5.2: mobile pass — dossier becomes a contained bottom sheet (…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-04T22:04:18Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "052df945c6ad6d0deeca9967e541653534898e5b",
"body": "…copy for the guided pass\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: submissions audit (Glama not indexed = the gate) + paste-ready …",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-04T19:50:06Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "3de6a36f6ae182bf6bb8060dad8ff8c1e32c13c5",
"body": "…other agent/department by drag-drop\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "panel 0.5.1: tray machines are draggable — reallocate a machine to an…",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-04T18:53:48Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ea8e5fa9ad774366f10c373351382ad499cb13a9",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Merge panel 0.5.0 (zoom/pan + host-controlled embed height)",
"author_name": "Jesse",
"author_login": "jessymariau",
"committed_at": "2026-07-04T18:35:56Z",
"body_truncated": false,
"is_coding_agent": true
}
],
"releases_count": 0,
"commits_last_year": 158,
"latest_release_at": null,
"latest_release_tag": null,
"releases_from_tags": false,
"days_since_last_push": 5,
"active_weeks_last_year": 5,
"days_since_latest_release": null,
"mean_days_between_releases": null
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 85,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "@booboo-brain/cli",
"exists": true,
"license": "MIT",
"keywords": [
"booboo",
"cli",
"knowledge-graph",
"mcp"
],
"ecosystem": "npm",
"matches_repo": false,
"registry_url": "https://www.npmjs.com/package/@booboo-brain/cli",
"is_deprecated": false,
"latest_version": "0.5.1",
"repository_url": "https://github.com/jessedu29260-netizen/booboo",
"versions_count": 7,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 1241,
"first_published_at": "2026-07-02T09:15:39.147000Z",
"latest_published_at": "2026-07-20T10:26:41.317000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 6
},
{
"name": "@booboo-brain/spec",
"exists": true,
"license": "MIT",
"keywords": [],
"ecosystem": "npm",
"matches_repo": false,
"registry_url": "https://www.npmjs.com/package/@booboo-brain/spec",
"is_deprecated": false,
"latest_version": "0.3.1",
"repository_url": "https://github.com/jessedu29260-netizen/booboo",
"versions_count": 7,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 1651,
"first_published_at": "2026-07-02T09:15:18.038000Z",
"latest_published_at": "2026-07-19T20:21:36.176000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 6
},
{
"name": "@booboo-brain/build",
"exists": true,
"license": "MIT",
"keywords": [],
"ecosystem": "npm",
"matches_repo": false,
"registry_url": "https://www.npmjs.com/package/@booboo-brain/build",
"is_deprecated": false,
"latest_version": "0.2.0",
"repository_url": "https://github.com/jessedu29260-netizen/booboo",
"versions_count": 3,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 563,
"first_published_at": "2026-07-02T09:15:23.428000Z",
"latest_published_at": "2026-07-05T08:11:11.705000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 21
},
{
"name": "@booboo-brain/panel",
"exists": true,
"license": "MIT",
"keywords": [],
"ecosystem": "npm",
"matches_repo": false,
"registry_url": "https://www.npmjs.com/package/@booboo-brain/panel",
"is_deprecated": false,
"latest_version": "0.5.6",
"repository_url": "https://github.com/jessedu29260-netizen/booboo",
"versions_count": 14,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 2284,
"first_published_at": "2026-07-03T02:38:28.640000Z",
"latest_published_at": "2026-07-20T10:15:02.330000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 6
},
{
"name": "@booboo-brain/serve",
"exists": true,
"license": "MIT",
"keywords": [],
"ecosystem": "npm",
"matches_repo": false,
"registry_url": "https://www.npmjs.com/package/@booboo-brain/serve",
"is_deprecated": false,
"latest_version": "0.4.1",
"repository_url": "https://github.com/jessedu29260-netizen/booboo",
"versions_count": 5,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 843,
"first_published_at": "2026-07-02T09:15:27.737000Z",
"latest_published_at": "2026-07-20T10:26:23.073000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 6
},
{
"name": "@booboo-brain/vault",
"exists": true,
"license": "MIT",
"keywords": [],
"ecosystem": "npm",
"matches_repo": false,
"registry_url": "https://www.npmjs.com/package/@booboo-brain/vault",
"is_deprecated": false,
"latest_version": "0.1.1",
"repository_url": "https://github.com/jessedu29260-netizen/booboo",
"versions_count": 2,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 297,
"first_published_at": "2026-07-05T08:11:20.819000Z",
"latest_published_at": "2026-07-17T17:45:58.326000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 8
},
{
"name": "@booboo-brain/viewer",
"exists": true,
"license": "MIT",
"keywords": [],
"ecosystem": "npm",
"matches_repo": false,
"registry_url": "https://www.npmjs.com/package/@booboo-brain/viewer",
"is_deprecated": false,
"latest_version": "0.1.2",
"repository_url": "https://github.com/jessedu29260-netizen/booboo",
"versions_count": 3,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 496,
"first_published_at": "2026-07-02T09:15:33.826000Z",
"latest_published_at": "2026-07-19T20:21:45.025000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 6
},
{
"name": "create-booboo",
"exists": true,
"license": "MIT",
"keywords": [
"booboo",
"scaffold",
"create",
"knowledge-graph",
"mcp"
],
"ecosystem": "npm",
"matches_repo": false,
"registry_url": "https://www.npmjs.com/package/create-booboo",
"is_deprecated": false,
"latest_version": "0.5.0",
"repository_url": "https://github.com/jessedu29260-netizen/booboo",
"versions_count": 7,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 1151,
"first_published_at": "2026-07-02T09:05:18.999000Z",
"latest_published_at": "2026-07-19T20:21:31.901000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 6
}
]
},
"popularity": {
"forks": 0,
"stars": 1,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": null,
"open_issues_and_prs": 1
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples"
],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": true,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"packages/build/tsconfig.json",
"packages/cli/tsconfig.json",
"packages/create-booboo/tsconfig.json",
"packages/panel/tsconfig.json",
"packages/serve/tsconfig.json",
"packages/spec/tsconfig.json",
"packages/vault/tsconfig.json",
"packages/viewer/tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 87788,
"source_files_sampled": 50,
"oversized_source_files": 3,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"package.json"
],
"advisories": {
"error": null,
"scope": "published_package",
"source": "osv",
"findings": [
{
"name": "@hono/node-server",
"direct": false,
"version": "1.19.15",
"severity": "moderate",
"ecosystem": "npm",
"cvss_score": 5.9,
"advisory_ids": [
"GHSA-frvp-7c67-39w9"
],
"fixed_version": "2.0.5",
"advisory_count": 1,
"oldest_advisory_days": 4
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"moderate": 1
},
"advisory_count": 1,
"affected_count": 1,
"assessed_count": 176,
"malicious_count": 0,
"assessed_package": "npm:@booboo-brain/cli@0.5.1",
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "@booboo-brain/spec",
"manifest": "packages/build/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "pg",
"manifest": "packages/build/package.json",
"ecosystem": "npm",
"version_constraint": "^8.13.0"
},
{
"name": "yaml",
"manifest": "packages/build/package.json",
"ecosystem": "npm",
"version_constraint": "^2.6.0"
},
{
"name": "@booboo-brain/build",
"manifest": "packages/cli/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@booboo-brain/serve",
"manifest": "packages/cli/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@booboo-brain/spec",
"manifest": "packages/cli/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@booboo-brain/viewer",
"manifest": "packages/cli/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@booboo-brain/panel",
"manifest": "packages/cli/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@booboo-brain/vault",
"manifest": "packages/cli/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@booboo-brain/spec",
"manifest": "packages/panel/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@booboo-brain/spec",
"manifest": "packages/serve/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@modelcontextprotocol/sdk",
"manifest": "packages/serve/package.json",
"ecosystem": "npm",
"version_constraint": "^1.12.0"
},
{
"name": "zod",
"manifest": "packages/serve/package.json",
"ecosystem": "npm",
"version_constraint": "^3.23.0"
},
{
"name": "@booboo-brain/spec",
"manifest": "packages/vault/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@booboo-brain/spec",
"manifest": "packages/viewer/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "three",
"manifest": "packages/viewer/package.json",
"ecosystem": "npm",
"version_constraint": "^0.184.0"
},
{
"name": "@react-three/fiber",
"manifest": "packages/viewer/package.json",
"ecosystem": "npm",
"version_constraint": "^9.0.0"
},
{
"name": "@react-three/drei",
"manifest": "packages/viewer/package.json",
"ecosystem": "npm",
"version_constraint": "^10.0.0"
},
{
"name": "@react-three/postprocessing",
"manifest": "packages/viewer/package.json",
"ecosystem": "npm",
"version_constraint": "^3.0.4"
},
{
"name": "postprocessing",
"manifest": "packages/viewer/package.json",
"ecosystem": "npm",
"version_constraint": "^6.39.1"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 1,
"merged_prs": 5,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "jessymariau",
"commits": 158,
"avatar_url": "https://avatars.githubusercontent.com/u/268124037?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.yml",
"release.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"pnpm-lock.yaml"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "1 out of 1 merged PRs checked by a CI test -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/16 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 0,
"reason": "project has 0 contributing companies or organizations -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "project was created within the last 90 days. Please review its contents carefully",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 4,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "10 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "c38b4c793c585ba94203406cc35d9bcc76d7c50e",
"ran_at": "2026-07-26T14:16:16Z",
"aggregate_score": 3,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": true,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-20T19:21:39Z",
"oldest_open_prs": [
{
"number": 6,
"created_at": "2026-07-20T19:10:57Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-20T08:57:46Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/jessymariau/booboo",
"host": "github.com",
"name": "booboo",
"owner": "jessymariau"
},
"metrics": {
"overall": {
"key": "overall",
"band": "at_risk",
"name": "Overall health",
"note": null,
"notes": [],
"value": 44,
"inputs": {
"security": 42,
"vitality": 35,
"community": 33,
"governance": 32,
"engineering": 81
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "at_risk",
"name": "Vitality",
"value": 35,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 58,
"inputs": {
"commits_last_year": 158,
"human_commit_share": 1,
"days_since_last_push": 5,
"active_weeks_last_year": 5
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 5 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 5
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "5/52 weeks with commits",
"points": 3.5,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 5
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "158 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 158
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "critical",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 1,
"inputs": {
"releases_count": 0
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "no releases published",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_releases_published",
"params": {}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "no releases",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_releases",
"params": {}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "no releases",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_releases",
"params": {}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "at_risk",
"name": "Community & Adoption",
"value": 33,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 1,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "1 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 1
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 70,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "at_risk",
"name": "Sustainability & Governance",
"value": 32,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 10,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 1,
"top_contributor_share": 1
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 100% of commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 100
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "1 contributors",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 1
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 72,
"inputs": {
"merged_prs": 5,
"open_issues": 0,
"closed_issues": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "no issues or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_issues_or_data",
"params": {}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "5/5 decided PRs merged",
"points": 38.2,
"status": "met",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 5,
"decided": 5
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/16 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "critical",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 20,
"inputs": {
"followers": 0,
"owner_type": "User",
"is_verified": null,
"owner_login": "jessymariau",
"public_repos": 5,
"account_age_days": 134
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "0 followers of jessymariau",
"points": 0,
"status": "missed",
"details": [
{
"code": "owner_followers",
"params": {
"count": 0,
"login": "jessymariau"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "5 public repos, account ~0 yr old",
"points": 6.4,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 5
}
},
{
"code": "account_age_years",
"params": {
"years": 0
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 81,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 68,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "2 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 2
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "1 out of 1 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"topics": [
"ai-agents",
"developer-tools",
"graph-visualization",
"knowledge-graph",
"mcp",
"memory",
"typescript",
"webgl"
],
"has_wiki": true,
"homepage": "https://booboo-black.vercel.app",
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://booboo-black.vercel.app",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "8 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 8
}
}
],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 42,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 30,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 3
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "1 out of 1 merged PRs checked by a CI test -- score normalized to 10",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/16 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 2,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "10 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "excellent",
"name": "Dependency advisories",
"note": "Matched the npm:@booboo-brain/cli@0.5.1 runtime dependency closure — what installing the published package pulls in — 176 packages. Reachability is not analyzed.",
"notes": [
{
"code": "advisories_scope_published",
"params": {
"package": "npm:@booboo-brain/cli@0.5.1",
"assessed": 176
}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 88,
"inputs": {
"source": "osv",
"advisories": 1,
"affected_packages": 1,
"assessed_packages": 176,
"unassessed_packages": 0,
"affected_by_severity": "moderate 1",
"direct_affected_packages": 0
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "no direct dependency carries a known advisory",
"points": 35,
"status": "met",
"details": [
{
"code": "no_direct_advisories",
"params": {}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "1 affected: @hono/node-server 1.19.15 (moderate 5.9)",
"points": 13.2,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 1,
"packages": "@hono/node-server 1.19.15 (moderate 5.9)"
}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "no advisory has been public longer than 90 days",
"points": 40,
"status": "met",
"details": [
{
"code": "advisories_none_stale",
"params": {
"days": 90
}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 176,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 2
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 57,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.98,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "98 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 98,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 53,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"pnpm-lock.yaml"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [
"packages/build/tsconfig.json",
"packages/cli/tsconfig.json",
"packages/create-booboo/tsconfig.json",
"packages/panel/tsconfig.json",
"packages/serve/tsconfig.json",
"packages/spec/tsconfig.json",
"packages/vault/tsconfig.json",
"packages/viewer/tsconfig.json"
],
"agent_commit_share": 0.63,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "packages/build/tsconfig.json, packages/cli/tsconfig.json, packages/create-booboo/tsconfig.json, packages/panel/tsconfig.json, packages/serve/tsconfig.json, packages/spec/tsconfig.json, packages/vault/tsconfig.json, packages/viewer/tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "packages/build/tsconfig.json, packages/cli/tsconfig.json, packages/create-booboo/tsconfig.json, packages/panel/tsconfig.json, packages/serve/tsconfig.json, packages/spec/tsconfig.json, packages/vault/tsconfig.json, packages/viewer/tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Dockerfile, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "63 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 63,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 97,
"inputs": {
"primary_language": "TypeScript",
"largest_source_bytes": 87788,
"source_files_sampled": 50,
"oversized_source_files": 3
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "TypeScript (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "TypeScript"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "3/50 source files over 60KB",
"points": 51.7,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 50,
"oversized": 3
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "moderate",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": true,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 20,
"status": "met",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"npm package '@booboo-brain/cli' points at a different repository (https://github.com/jessedu29260-netizen/booboo); excluded from ecosystem scoring",
"npm package '@booboo-brain/spec' points at a different repository (https://github.com/jessedu29260-netizen/booboo); excluded from ecosystem scoring",
"npm package '@booboo-brain/build' points at a different repository (https://github.com/jessedu29260-netizen/booboo); excluded from ecosystem scoring",
"npm package '@booboo-brain/panel' points at a different repository (https://github.com/jessedu29260-netizen/booboo); excluded from ecosystem scoring",
"npm package '@booboo-brain/serve' points at a different repository (https://github.com/jessedu29260-netizen/booboo); excluded from ecosystem scoring",
"npm package '@booboo-brain/vault' points at a different repository (https://github.com/jessedu29260-netizen/booboo); excluded from ecosystem scoring",
"npm package '@booboo-brain/viewer' points at a different repository (https://github.com/jessedu29260-netizen/booboo); excluded from ecosystem scoring",
"npm package 'create-booboo' points at a different repository (https://github.com/jessedu29260-netizen/booboo); excluded from ecosystem scoring",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-26T14:16:26.223714Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/j/jessymariau/booboo.svg",
"full_name": "jessymariau/booboo",
"license_state": "standard",
"license_spdx": "MIT"
}