{
  "shipped": "1",
  "source": "repo/flashy-tools",
  "org": "org/flashy-tools",
  "generated": "2026-10-04T18:41:04.481Z",
  "entries": [
    {
      "id": "ship/flashy-tools/4720058f4496",
      "repo": "repo/flashy-tools",
      "at": "2026-10-04T18:40:51Z",
      "kind": "other",
      "title": "The shelf gate runs where the shelf moves, and a new package has a scaffold",
      "by": [
        "person/michael",
        "agent/claude"
      ],
      "asserted": "2026-10-04",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "shelf.yml re-reads flashyos.com's shelf and register every morning, runs\nthe whole suite against the new lock and commits it only on green, without\na skip marker because the accepted date renders on every page. A published\npackage the catalog lacks turns that run red by name.\n\n`npm run catalog:new -- @flashyos/<name>` writes the stub from the shelf\nrow and the package README, with an empty edgeCases the completeness test\nnow refuses: every entry carries an edge case or is named as owing one\nwith a reason. Four of the five that shipped without one have theirs,\neach from an incident the estate's records carry; playbook is the named\ndebt. The open lock is re-accepted from the corrected register.\n\nCo-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BEaXzktRU5ZPe3R2NY7CKD",
      "refs": {
        "commit": "4720058f449673f5448667ee7c3c3d4304749074"
      },
      "digest": "0b582d1d375063405da2d9a4dba8b74d8c3a9ccdc57000a152c293e0eeb53f5f"
    },
    {
      "id": "ship/flashy-tools/11c94315b7a8",
      "repo": "repo/flashy-tools",
      "at": "2026-10-04T18:15:40Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/flashy-tools-ci"
      ],
      "asserted": "2026-10-04",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "11c94315b7a8e0d03dd0e199dee74e1ddbfd0f68"
      },
      "digest": "be7df7cf56ced6a15106ebf36c9a49e7a78b9bf0e13746ff183f8ba551a03654"
    },
    {
      "id": "ship/flashy-tools/1df35ba098b5",
      "repo": "repo/flashy-tools",
      "at": "2026-10-04T18:15:28Z",
      "kind": "other",
      "title": "delivery.yml: tell the estate graph when the record pushes",
      "by": [
        "person/michael",
        "agent/claude"
      ],
      "asserted": "2026-10-04",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "Rewritten by tools/estate-fanout.mjs --write in flashyos: the canonical\ncommit step with its pushed output, and the repository_dispatch that fires\nonly when a push actually happened. fanout-coverage.test.mjs named this\nworkflow as the one record-committing workflow in the estate that never\ntold the graph.\n\nCo-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BEaXzktRU5ZPe3R2NY7CKD",
      "refs": {
        "commit": "1df35ba098b55e1fc7ca3a8d0d67369cd77df790"
      },
      "digest": "988c1fbd48bb22f8fefd5ba3b3d0dd683b6cc765471d64c255faf6f042d81634"
    },
    {
      "id": "ship/flashy-tools/64ec4fce9d33",
      "repo": "repo/flashy-tools",
      "at": "2026-10-04T17:50:00Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/flashy-tools-ci"
      ],
      "asserted": "2026-10-04",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "64ec4fce9d333f92d6105066e687a43698f700ba"
      },
      "digest": "cc4d2b2724b2602481d9c54175b900b9b7161baa09cf5907cb33f0836e222e88"
    },
    {
      "id": "ship/flashy-tools/d0c129d585d8",
      "repo": "repo/flashy-tools",
      "at": "2026-10-04T17:49:50Z",
      "kind": "feature",
      "title": "Launch chrome, open-source depth and the missing protocols for flashy.tools",
      "by": [
        "person/michael",
        "agent/claude"
      ],
      "asserted": "2026-10-04",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "The header, dropdowns, footer and llms-full.txt render from one registry\n(src/lib/nav.ts): five sections, a twelve-row cap, one featured card each,\ncatalog columns derived from the catalog's kind. tests/nav.test.ts holds\nevery static route reachable and every machine door present in the tree.\n\nThree new pages, each with a generated OG card: /start (four moves, each\nending in something a stranger can fetch, with HowTo structured data),\n/open (the open/1 register from flashyos.com rendered in depth: published,\nheld with reasons, public and planned repositories, licence, contribute)\nand /changelog (audit versions beside shelf versions; drift is a row).\n\nThree locks from one authority: shelf.lock.json, open.lock.json and\ncanon.lock.json, accepted from flashyos.com and never written here.\nAUDIT_DATE is the shelf lock's accepted date. tests/catalog-coverage.test.ts\nfails a published package the catalog lacks or a version that moved;\ntests/canon.test.ts forbids a canonical URL typed under src/.\n\nCatalog: ten versions brought to the shelf and nine packages that were\npublished and undocumented added with their edge cases (wallet-wdk, signer,\nwdk, mail, dialects, mesh, page, artifact, assetmesh).\n\nProtocols: devlog/1 (DEVLOG.md and the served fragment) and delivery/1\n(.delivery/, the record, the projection, the six-hourly observer) adopted;\nthe three record emitters re-vendored from canon; the Actions bot author\nmapped in .shiplog/config.json. llms.txt rewritten and /llms-full.txt added\nfor answer engines. The page kit re-vendored and the brass accent taken.\n\nCo-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BEaXzktRU5ZPe3R2NY7CKD",
      "refs": {
        "commit": "d0c129d585d84d44829fcd5f9817cbfc5fc64654"
      },
      "digest": "d45aa54351fcecb0785d046abdac164f72494bdd7464be6990c693e2c2e81437"
    },
    {
      "id": "ship/flashy-tools/d4dce9d08b5e",
      "repo": "repo/flashy-tools",
      "at": "2026-09-22T19:23:23+00:00",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-10-04",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "d4dce9d08b5e3aaf8b58255fed5be63804bcd6e5"
      },
      "digest": "6984b755b8a129e77e6f5946a9c4786fe283c57c12ffcf90d7f7e821c2ea07f7"
    },
    {
      "id": "ship/flashy-tools/ec9566621784",
      "repo": "repo/flashy-tools",
      "at": "2026-09-22T17:36:01Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-22",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "ec95666217841a2c29815523a12acd4b6d7b6b7e"
      },
      "digest": "5b449b313464853a3511a6511252294ef0c21b5c74f19b6d51610daf24e3084b"
    },
    {
      "id": "ship/flashy-tools/2461c1a911f7",
      "repo": "repo/flashy-tools",
      "at": "2026-09-22T17:35:43Z",
      "kind": "fix",
      "title": "Fix OSS package scope: @flashylabs, not @flashy",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-22",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "@flashy was never a claimed npm scope; both packages are now\n@flashylabs/wdk-policy-guard and @flashylabs/wdk-staking-kit.",
      "refs": {
        "commit": "2461c1a911f7eed399074e43ad598fb2cea50d93"
      },
      "digest": "f735bd872cf341d7546397532d7cac86e62dc4591b8559fb0e23ea20d3bd5a2c"
    },
    {
      "id": "ship/flashy-tools/7445a4d8d038",
      "repo": "repo/flashy-tools",
      "at": "2026-09-22T17:00:56Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-22",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "7445a4d8d0388b7957dae0af0c46dfc792b737f0"
      },
      "digest": "3bd5f986efd47922c56f67bad53a9a20daaf5a1f57e7bf3ddeedaf9c20671ad1"
    },
    {
      "id": "ship/flashy-tools/71b98d31dd17",
      "repo": "repo/flashy-tools",
      "at": "2026-09-22T17:00:35Z",
      "kind": "other",
      "title": "Doctrine: cite wdk-policy-guard and wdk-staking-kit as the rule's latest instance",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-22",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "Per the \"Where This Lives\" information-architecture brief: the doctrine\npage's existing rules are each backed by a named incident. Adds one more\n(\"measure the gap before building the fix\") and links it to the two\ncatalog entries that are its concrete example.",
      "refs": {
        "commit": "71b98d31dd17961fcac8250c0059d87620034bd4"
      },
      "digest": "afcb7e928b059994e92f15b125324960fc437bc565d34af744eceb7e62e1a098"
    },
    {
      "id": "ship/flashy-tools/9d0caf4f0ed6",
      "repo": "repo/flashy-tools",
      "at": "2026-09-22T16:27:13Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-22",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "9d0caf4f0ed66d27a59d710b20c067ece4649d3e"
      },
      "digest": "4380b1a82fbd3b35de07b9b04d1926dcaab8ee064233d592e0ae21b2c688042a"
    },
    {
      "id": "ship/flashy-tools/2581b8f8812d",
      "repo": "repo/flashy-tools",
      "at": "2026-09-22T16:27:02Z",
      "kind": "other",
      "title": "Catalog two new open-source packages: wdk-policy-guard and wdk-staking-kit",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-22",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "Both shipped this week as standalone, source-available repositories under\nFlashyLabs — a spending-policy layer and a reference staking primitive for\nteams building on Tether's WDK. Neither is on the npm registry yet, so\nnpm is '—' and install points at the GitHub repo, matching how\nmagician-core is catalogued while unpublished.",
      "refs": {
        "commit": "2581b8f8812dbd3285eef47e5071a24a9d55b8e0"
      },
      "digest": "170e7506a649d462fea8383c4f7de90e2ddd89be920c58f5acef4600a32fc2ca"
    },
    {
      "id": "ship/flashy-tools/88a908292279",
      "repo": "repo/flashy-tools",
      "at": "2026-09-22T15:23:12-04:00",
      "kind": "feature",
      "title": "Merge pull request #3 from FlashyLabs/claude/laughing-pasteur-lvg40h",
      "by": [
        "person/michael"
      ],
      "asserted": "2026-09-22",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "Cross-link two new academy tracks from the catalog",
      "refs": {
        "commit": "88a908292279462e342910b428485c56d3413763",
        "pr": "https://github.com/FlashyLabs/flashy-tools/pull/3"
      },
      "digest": "2058a6454e813769681dd146316ad633ebc3359fa44dab8584fc068053d09d8b"
    },
    {
      "id": "ship/flashy-tools/8edecf0d51e9",
      "repo": "repo/flashy-tools",
      "at": "2026-09-15T17:43:46-04:00",
      "kind": "other",
      "title": "Concierge: modal redesign re-vendor (#2)",
      "by": [
        "person/michael"
      ],
      "asserted": "2026-09-22",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "Concierge: modal redesign re-vendor",
      "refs": {
        "commit": "8edecf0d51e9b54a26878c35f46785811335bb94",
        "pr": "https://github.com/FlashyLabs/flashy-tools/pull/2"
      },
      "digest": "4f0b67e052b6c6a245e508218753ac02f1c410d6c9b72d4b37cd0261357b1410"
    },
    {
      "id": "ship/flashy-tools/a71f03e5bf36",
      "repo": "repo/flashy-tools",
      "at": "2026-09-14T18:09:55Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-22",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "a71f03e5bf36f88f6e7442826dd5d1408f610b90"
      },
      "digest": "036e9148ece123d763569e43c450d52569b1c303effcc8b865cb170a5babb869"
    },
    {
      "id": "ship/flashy-tools/cb0cf8dc3bb7",
      "repo": "repo/flashy-tools",
      "at": "2026-09-14T18:09:31Z",
      "kind": "other",
      "title": "tools: cross-link the llm-gateway entry to the Academy Inference Economy track",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-14",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "The @flashyos/llm-gateway catalog entry now points developers to Flashy\nAcademy's Inference Economy track (what inference and compute are, choosing\ninference, inference as yield, getting set up and building with Gatewayz —\nthe gateway this seam routes to via its gatewayz provider), and adds an edge\ncase on the real trap the README documents: tool use and prompt caching are\nnot yet verified through a gateway, and a silently dropped cache directive\ndoes not error — it multiplies the bill.\n\nCatalog drift tests (tests/surfaces.test.ts) stay green; typecheck, 30 tests,\nlint and build all pass.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01QMaC5cQnbfAZZCUsYN659M",
      "refs": {
        "commit": "cb0cf8dc3bb707d8e4509d0e339fbebb6fccc270"
      },
      "digest": "9a4a85efc7312fa4352f79ba13a70dc718ac7e1aa4989eb5586ce7e019838716"
    },
    {
      "id": "ship/flashy-tools/c48228bef13d",
      "repo": "repo/flashy-tools",
      "at": "2026-09-08T11:59:45Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-14",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "c48228bef13df3a1cf6237acadfac620ab51cf67"
      },
      "digest": "89659f02c648e827d4a12634d9e2dcfab9e37ce1f2901590da9c3298e5deaacb"
    },
    {
      "id": "ship/flashy-tools/b4a84503f2fb",
      "repo": "repo/flashy-tools",
      "at": "2026-09-08T11:59:32Z",
      "kind": "other",
      "title": "An index of every document and every runnable, generated from the tree",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-08",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "This repository held documents that nothing pointed at and scripts that\nnothing named. `tools/estate-findable.mjs` in flashyos measured the\nestate at 9 of 25 repositories with reachable documents and 0 of 16 with\nany index at all — nobody had built a door, so nobody had one to add a\ndocument to.\n\nGenerated, never maintained. Every title is read from the document's own\nfirst heading, every date from its last commit, and every runnable's line\nfrom that file's own first comment. A document added here is in the index\non the next run whether anybody remembered it or not, which is the one\nproperty a hand-written index does not have.\n\nBeing listed is not being used. `estate-findable` excludes a generated\nindex from vouching for anything, so writing this moves `docsIndexed` and\nleaves `docsReachable` exactly where it was. Three states, not two:\nunlisted, listed-and-unused, and reached by work.\n\nRegenerate with `node tools/estate-doc-index.mjs --write` from a flashyos\ncheckout beside this one; `--check` runs in `npm run estate` there.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BjzD1kWqueq1ArT1m4mZsy",
      "refs": {
        "commit": "b4a84503f2fb85f5c405dcf668e84875293380d1"
      },
      "digest": "d9a31e36dab1864f32338046acabe6ed46c6638b47b5b49f7fc3306e3734d678"
    },
    {
      "id": "ship/flashy-tools/693ba0b6c00e",
      "repo": "repo/flashy-tools",
      "at": "2026-09-07T16:29:55Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-08",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "693ba0b6c00e8da8327824e6b1563e65561ba5b6"
      },
      "digest": "0ffaf51f9556962f7e26d480959d3819a8c5431a5a288233d6bd7346bf040cbc"
    },
    {
      "id": "ship/flashy-tools/b8b1b181114f",
      "repo": "repo/flashy-tools",
      "at": "2026-09-07T16:11:20Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-07",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "b8b1b181114fef784bd710fe9845e4f457f83c5f"
      },
      "digest": "1d0729701e332162967c942cf7655ed9c428d508851553cd75449404396815da"
    },
    {
      "id": "ship/flashy-tools/5d7a60c3b837",
      "repo": "repo/flashy-tools",
      "at": "2026-09-07T16:11:04Z",
      "kind": "docs",
      "title": "Say why the scan is inlined HERE, rather than borrowing magician's reason",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-07",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "The file was copied wholesale and its header came with it — a note about the\nspinout boundary in `docs/MIGRATION.md`, which is magician's reason and true\nthere and not a fact about this repository at all.\n\nA comment that states somebody else's reason is worse than none: the next\nreader takes it as this repository's constraint and works around a boundary\nthat does not exist. The reason here is the measurement — the reusable call has\nnever produced a job — and it says what would let this file go back to being\none line.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BjzD1kWqueq1ArT1m4mZsy",
      "refs": {
        "commit": "5d7a60c3b837df80aa97604f9f3b63c749dd6868"
      },
      "digest": "7498cb7bd299364775b33f3b314d9448168bc487c0ffaeb4d80e11679aefd292"
    },
    {
      "id": "ship/flashy-tools/2777d3b35645",
      "repo": "repo/flashy-tools",
      "at": "2026-09-07T16:10:42Z",
      "kind": "infra",
      "title": "Replace the reusable secret-scan call with the scan that actually runs",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-07",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "Measured on magician an hour apart: the self-contained gitleaks workflow\nsucceeded in 9 seconds; the reusable call to flashy-infra failed instantly with\nZERO jobs, `created_at` equal to `updated_at`. 4ventures has run that same call\n71 times with the identical result.\n\nSo the file I committed here earlier today satisfied a check and added no\ncontrol. A private repository's workflows are callable from elsewhere only when\nits Actions Access allows it, and that is a setting only the owner can reach —\nuntil then a self-contained scan is a control and a reusable call is a\nfilename.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BjzD1kWqueq1ArT1m4mZsy",
      "refs": {
        "commit": "2777d3b35645361cc62ec255b1eaad9a41faa138"
      },
      "digest": "e750088fdb953ca004dafab46432192b598251a3d132157dc9525df32a0177f4"
    },
    {
      "id": "ship/flashy-tools/4bc1e2eba46b",
      "repo": "repo/flashy-tools",
      "at": "2026-09-07T16:09:45Z",
      "kind": "other",
      "title": "Re-vendor the card kit from canon, which the merge's own drift test caught",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-07",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "`src/lib/page/card.tsx` was 15 lines behind `@flashyos/page` — missing the\nhex-accent form the shared card route needs, and the docblock explaining why\nthat second form exists at all. It had been sitting uncommitted in this\ncheckout, which is how a vendored copy drifts: not by breaking, but by\ndisagreeing silently about the field somebody just changed.\n\nRegenerated with `node tools/estate-cards.mjs flashy-tools --write` in flashyos\nrather than copied by hand — the header says re-generate, never edit, and the\ngenerator is what strips the `.js` from relative imports for a bundler that\ndoes not want them. 26 tests pass.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BjzD1kWqueq1ArT1m4mZsy",
      "refs": {
        "commit": "4bc1e2eba46bdbd87e224ab2955badedbf9e042d"
      },
      "digest": "adebae676d34a4ad07b60818ee8e9ca31bfa663b6d086a8cfd5086f8b2147a69"
    },
    {
      "id": "ship/flashy-tools/133475c0b9a0",
      "repo": "repo/flashy-tools",
      "at": "2026-09-07T16:08:37Z",
      "kind": "feature",
      "title": "Merge claude/ceo-estate-dashboard-gmtgl8",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-07",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "This session's branch, landed on the trunk. Merged rather than squashed — this\nestate's promotions are merges, so the branch's own history stays readable from\nmain.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BjzD1kWqueq1ArT1m4mZsy",
      "refs": {
        "commit": "133475c0b9a040916a633c7dd04cb13a4e3873e9"
      },
      "digest": "247dc4d836e18f4f33725fbaa4487ec200dbe2d3cae1944b250a33cf6aff0f91"
    },
    {
      "id": "ship/flashy-tools/eb3036ca0495",
      "repo": "repo/flashy-tools",
      "at": "2026-09-07T15:11:33Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-07",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "eb3036ca049572d2c37efd096d57539ddc0bc6c2"
      },
      "digest": "b07a7cb13fd39bc591f5b49a91cf76673792241dea7ad3f47a4f3de42c3b8ba6"
    },
    {
      "id": "ship/flashy-tools/39dbbe4b1d11",
      "repo": "repo/flashy-tools",
      "at": "2026-09-07T15:11:21Z",
      "kind": "feature",
      "title": "Adopt the shared secret scan — the last repository of 39 without one",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-07",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "Calls the reusable workflow flashy-infra publishes, the same three lines\ntwenty-three other repositories carry. One file calling one shared definition,\nso a change to the scan reaches every repository on its next run rather than\nneeding thirty pull requests.\n\nIt scans the working tree rather than history, which is what makes it useful\non a push: a committed credential is burned the moment it lands and stays\nburned after the file is deleted, so the entire value is in refusing the push\nrather than noticing afterwards. Removal is not rotation.\n\nThis was the one item on the owner queue that read as needing a repository\nSETTING and did not. The check derives from a workflow file, and\nagentClearable strips the fields a commit cannot reach and asks the check\nagain — one that still passes was only ever asking for a file.\n\nKind: feat\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01DryqvxX93nEakD77pNANCt",
      "refs": {
        "commit": "39dbbe4b1d118c9795c97b64a4cc5456accde6a1"
      },
      "digest": "b5d6f1ae323e690a56a4df60f6b5f7bc70eb26f94206bec0d14af6ce7cf67a56"
    },
    {
      "id": "ship/flashy-tools/63ea7ed16542",
      "repo": "repo/flashy-tools",
      "at": "2026-09-07T12:28:52-04:00",
      "kind": "feature",
      "title": "Merge pull request #1 from FlashyLabs/claude/trust-routing-network-77xwmg",
      "by": [
        "person/michael"
      ],
      "asserted": "2026-09-07",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "Merge main, and carry the session's estate work to the shipping ref",
      "refs": {
        "commit": "63ea7ed165425234db4a315e279a0ce66a12d1aa",
        "pr": "https://github.com/FlashyLabs/flashy-tools/pull/1"
      },
      "digest": "be3cc497d76d4ab221d28a330fa648751262d9defbb75b7d5d690bf79da22334"
    },
    {
      "id": "ship/flashy-tools/8a7798cd6fed",
      "repo": "repo/flashy-tools",
      "at": "2026-09-06T12:57:42Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-07",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "8a7798cd6fed850f05a464cfe0a9aedd4f161bd3"
      },
      "digest": "db239eca5d5e4467825657061ca246df285639447ec5fa55b156fda14e680aec"
    },
    {
      "id": "ship/flashy-tools/40c81aceceb5",
      "repo": "repo/flashy-tools",
      "at": "2026-09-04T20:21:20Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-06",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "40c81aceceb520dda66228a18b0ffcf69eda478c"
      },
      "digest": "0c0aea2cd59f4b3236810321dbbafbea1a8ceec2ead49bb151f0f49a1e3bf9af"
    },
    {
      "id": "ship/flashy-tools/76758b954033",
      "repo": "repo/flashy-tools",
      "at": "2026-09-04T20:20:22Z",
      "kind": "fix",
      "title": "card/1 — a link preview, where there was a grey rectangle",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-04",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "Kind: fix\n\nThis property declared no og:image and, in some cases, no twitter:card. Every\nlink to it — pasted into Slack, LinkedIn, iMessage, a model's tool output —\nrendered as a grey box with a hostname in it, in the exact moment somebody is\ndeciding whether to click.\n\nNothing had ever measured it. `estate-seo` in flashyos graded properties from\na hand-written list of six repositories and read committed HTML, so a Next app\nwas invisible to it twice over: not on the list, and with no HTML to walk. The\ntool now takes its denominator from every target in every `.deploy/config.json`\nand reads a Next property's metadata from source.\n\nThe card is a committed PNG in `public/`, generated by `tools/estate-cards.mjs`\nin flashyos from this property's OWN accent, read out of its own globals.css by\nits own variable name. Nothing about what this looks like was decided in a\ntool, and re-running that generator after a rebrand is what keeps it true.\n\nNot an `app/opengraph-image.tsx`. Four properties in the estate render a card\nfrom live page state, which is better and is why they are untouched; the same\napproach here means committed woff files per repository, and Satori fetches a\nfont over the network for any codepoint it lacks — which fails in a sandboxed\nbuild and draws an empty box where the mark should be. A committed PNG has no\nbuild step to fail.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BEaXzktRU5ZPe3R2NY7CKD",
      "refs": {
        "commit": "76758b954033bb2de14bbb1209b376feb2d7d900"
      },
      "digest": "cb28e3a018d04c884edbe6bf65b5dbffb5da5cc26b8f9f8fe0dad5224bb8768a"
    },
    {
      "id": "ship/flashy-tools/163eb8193829",
      "repo": "repo/flashy-tools",
      "at": "2026-09-03T03:04:47Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-04",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "163eb8193829a1263d5f94a11889ba26cad7f441"
      },
      "digest": "1fd5be2fbd18e4ce9a8362894f318edf24826f44b91d3446e1ade92357cde5b8"
    },
    {
      "id": "ship/flashy-tools/8b1bbeb4a2f7",
      "repo": "repo/flashy-tools",
      "at": "2026-09-03T03:04:20Z",
      "kind": "other",
      "title": "The machine-age doors: /engage names the three ways in",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-03",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "One page, three doors, each cited rather than restated: an AAO charter\nour agents can read (conformance init, documented in the catalog, and\nthe handshake this property derives from its repo-root charter), the\nhuman graph (magician.network/join and this property's Concierge), and\nthe machine surfaces an agent reads here. IntentMesh is named without a\nlink because no URL for it exists yet; the estate ladder is one line,\ncited to gord.holdings/engage. Registered in NAV, STATIC_ROUTES — which\nis what puts it in the sitemap — and llms.txt; tests/engage.test.ts pins\nthe page, the three doors, both join links and the property's own\nno-latest, no-audience-claim rules.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01EXAA7bi94PPtBupN1jGt9N",
      "refs": {
        "commit": "8b1bbeb4a2f7172cafbb2fc36692400a4191b95e"
      },
      "digest": "773d368a6a50938ad2201b4aca5eb6c4a167e795c7d897ad1a1dde07bf30ca75"
    },
    {
      "id": "ship/flashy-tools/4fddf8ce98d8",
      "repo": "repo/flashy-tools",
      "at": "2026-09-02T19:44:55Z",
      "kind": "feature",
      "title": "Vercel Analytics on the app-router layout",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-02",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "`<Analytics />` from `@vercel/analytics/next`, mounted last in <body> —\nthe same form the four properties that already had it use, pinned to the\nsame ^2.0.1 so the estate runs one version of it.\n\nSame-origin by construction: the script is served from\n/_vercel/insights/script.js and the events go to /_vercel/insights/event,\nso it satisfies a `script-src 'self'` / `connect-src 'self'` CSP without\nan allowance being widened for it. It is cookieless and sets no storage,\nwhich is what lets it sit under a property that advertises exactly that.\n\nKind: feature\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BEaXzktRU5ZPe3R2NY7CKD",
      "refs": {
        "commit": "4fddf8ce98d82b55c99a1e96545689aa5943afab"
      },
      "digest": "b72b6961168e874a12688a502d2f361f61d4fe9e73554f0ce84a36c59a751089"
    },
    {
      "id": "ship/flashy-tools/9819d92625fc",
      "repo": "repo/flashy-tools",
      "at": "2026-09-02T17:43:28Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-02",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "9819d92625fc597a36afce3327fae227c1f0f1c1"
      },
      "digest": "df4bde6755335a51999fc1db7dc4eab491d973fc3b4a0a8d56d150b22a10c208"
    },
    {
      "id": "ship/flashy-tools/a8d4978e5db8",
      "repo": "repo/flashy-tools",
      "at": "2026-09-02T17:43:05Z",
      "kind": "feature",
      "title": "deploy/1: declare where this repository is hosted",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-02",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "Root directory, production branch, framework and registrar, in a file a\nmachine can check instead of in two settings panels nobody can read from a\ncheckout.\n\n`host` is `none` because nobody has decided one — which is the honest\nstate, and `x-currently` records what actually answers the domain today so\nthat decision is made with the facts rather than about them. The checker\nverifies the root and the framework against the tree regardless of host: a\nproperty that has not chosen a host is exactly the one whose declaration\nnobody has ever read back.\n\nKind: feature\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BEaXzktRU5ZPe3R2NY7CKD",
      "refs": {
        "commit": "a8d4978e5db86ce01575f81a72f44f912c94da26"
      },
      "digest": "7ace197913050bfb9db8d129ef42299bb7e71f8edd497427c9cb6e3269a53c08"
    },
    {
      "id": "ship/flashy-tools/d32ce7f5bfe9",
      "repo": "repo/flashy-tools",
      "at": "2026-09-02T17:40:39Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-02",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "d32ce7f5bfe9fa2a81440d04b276de6354f5ec53"
      },
      "digest": "2f17d77191dbad41e67e88548add11d341d13b1e17cb3427055be41927196d51"
    },
    {
      "id": "ship/flashy-tools/0b12e37a7f83",
      "repo": "repo/flashy-tools",
      "at": "2026-09-02T17:40:27Z",
      "kind": "docs",
      "title": "A README, so the workshop is legible from its front page",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-02",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "This repository documents every package and format the estate publishes\nand had no README of its own — a property that explains everything except\nitself. The estate hygiene survey reads one, and it was the last dimension\nkeeping the floor red.\n\nIt says what the four load-bearing rules are and why each exists, rather\nthan restating the commands: the catalog is data, versions are dated, the\nsurfaces are derived, and the vendored scripts are canon copies.\n\nKind: docs\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BEaXzktRU5ZPe3R2NY7CKD",
      "refs": {
        "commit": "0b12e37a7f8320cf4590304f127a46d4aa5a10b3"
      },
      "digest": "618ddbce973eaddfdaa72011fe6f0f1739e4fe4013fcfab0104a741005ea9ea4"
    },
    {
      "id": "ship/flashy-tools/6faf8547572e",
      "repo": "repo/flashy-tools",
      "at": "2026-09-02T15:16:16Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-02",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "6faf8547572e6ac226acc341421b5b71e940d154"
      },
      "digest": "53bcc8fe03e1d3c4961cc4152a3459fda12cff37fb16edbd947c24cca3e5472d"
    },
    {
      "id": "ship/flashy-tools/03e469fe277f",
      "repo": "repo/flashy-tools",
      "at": "2026-09-02T12:43:50Z",
      "kind": "other",
      "title": "Re-vendor the concierge from canon — the drifted bundle served stale refusals",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-02",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "estate-activation read this property's bundle as drifted: an older copy\ndoes not fail, it disagrees silently about whichever refusal canon\ngained since. Byte-identical to magician packages/concierge dist again.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01EXAA7bi94PPtBupN1jGt9N",
      "refs": {
        "commit": "03e469fe277fe8eb805ea878b7b30119b2c13286"
      },
      "digest": "ccd4ad9987e9c598aa30d5c821657e6fa081465db14057c58e98ba73a9f22e1c"
    },
    {
      "id": "ship/flashy-tools/bb5bd499ccb4",
      "repo": "repo/flashy-tools",
      "at": "2026-09-01T15:56:06Z",
      "kind": "infra",
      "title": "shipped/1: refresh the record [skip ci]",
      "by": [
        "agent/unattributed"
      ],
      "asserted": "2026-09-02",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "refs": {
        "commit": "bb5bd499ccb4ad0b34489ca62faae79427598076"
      },
      "digest": "7e078ea5a89ff745b3b98c1ac67c6f687a666e27694479b7798ca45abc6aff18"
    },
    {
      "id": "ship/flashy-tools/384aecf6f1df",
      "repo": "repo/flashy-tools",
      "at": "2026-09-01T15:55:51Z",
      "kind": "feature",
      "title": "Operator lane: close create-flashy-tools-repo — verified, the repository exists and holds the history",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-01",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "Kind: chore\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
      "refs": {
        "commit": "384aecf6f1df98c913d00c64d7104bdfd9129ced"
      },
      "digest": "42096cd5013feb883ac563bdc1066c246450e1b7b34c590c212653e5492f779e"
    },
    {
      "id": "ship/flashy-tools/ab5b6a5f9d22",
      "repo": "repo/flashy-tools",
      "at": "2026-09-01T15:39:17Z",
      "kind": "other",
      "title": "Reword one edge case so the staged tree carries no copyleft token in code",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-01",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "The spinout gate greps staged code for the copyleft licence's name; the\ncatalog told the commit-log story with the literal token in a .ts file.\nThe lesson survives the rewording; the gate stays strict.\n\nKind: chore\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
      "refs": {
        "commit": "ab5b6a5f9d22174df192b73f2dfc0ec2044f352d"
      },
      "digest": "ede2b6be6c9df30dc97e2520629d456c82ab45352746383f85dc6825989c70f1"
    },
    {
      "id": "ship/flashy-tools/50d0b6aa0922",
      "repo": "repo/flashy-tools",
      "at": "2026-09-01T15:38:30Z",
      "kind": "docs",
      "title": "The four briefs and the house rules: vision, brand kit, SEO/GEO, spiderweb strategy",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-01",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "Kind: docs\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
      "refs": {
        "commit": "50d0b6aa09225b4c0552618ec0aa3fb587dd093c"
      },
      "digest": "7eefdcc040fefb0e25261285786929dbe3732169b397b05f406f616502b790e7"
    },
    {
      "id": "ship/flashy-tools/a0e6647852a8",
      "repo": "repo/flashy-tools",
      "at": "2026-09-01T15:37:08Z",
      "kind": "docs",
      "title": "The record: first fragments, and the mesh wants filed as backlog items [skip ci]",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-01",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "Two items with capabilitiesWanted matching the charter's network.wants,\nso the property is matchable on the mesh from day one — filed private,\nas file() always writes; promotion is a named human's, later.\n\nKind: docs\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
      "refs": {
        "commit": "a0e6647852a8d5345d264374c6b2bf4e1cbbda7b"
      },
      "digest": "790f6d49d237ec8b63fad6efb9fb492c644524153910b65ae836c8e680d34c27"
    },
    {
      "id": "ship/flashy-tools/026c43ee119f",
      "repo": "repo/flashy-tools",
      "at": "2026-09-01T15:36:41+00:00",
      "kind": "feature",
      "title": "flashy.tools v1: the estate's workshop, documented",
      "by": [
        "agent/claude"
      ],
      "asserted": "2026-09-01",
      "assertedBy": "agent/flashy-tools-ci",
      "visibility": "public",
      "detail": "The developer-tools property: 32 tools catalogued as data — record\nformats, packages, scaffolds, vendored checks and estate instruments —\neach with its commands and the edge cases the estate paid to learn,\nrendered to a page per tool with SoftwareSourceCode and breadcrumb\nstructured data. Versions carry the audit date, never 'latest'.\n\nThe demo runs the published @flashyos/aao validator in the browser —\nthe spec's own verdict, zero restatement, nothing leaves the page.\n\nAAO from day one: charter (3 roles, vendored checker: 0 problems),\nderived handshake and both charter copies byte-identical, frontdoor,\nllms.txt, the Mesh Concierge with the four-artifact Activation passing\nin this repository's own gates, an operator lane naming the accountable\nhuman, distinct record identities, and an AAO launch gate that reads\n@flashyos/conformance the way any stranger would install it.\n\nKind: feature\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
      "refs": {
        "commit": "026c43ee119f102f65ae99b8a9440288bacb181a"
      },
      "digest": "c082a036e9d99d3d0315b8e2743801c44c68649874b29c138633d12db971c9f2"
    }
  ]
}
