diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 2825ca3..f590ba1 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -4,6 +4,18 @@ on: workflow_dispatch: jobs: + acceptance: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: verify generated Claude surface + run: | + test -s claude/index.html + python3 -m json.tool claude.json >/dev/null + grep -q 'claude.json' claude/index.html + grep -q 'COPY claude ' Dockerfile + - name: build published image + run: docker build --tag notplanned-acceptance . note: runs-on: ubuntu-latest steps: diff --git a/Dockerfile b/Dockerfile index 9ef0b29..47d7595 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,5 @@ FROM nginx:1.27-alpine COPY index.html /usr/share/nginx/html/index.html +COPY claude /usr/share/nginx/html/claude +COPY claude.json /usr/share/nginx/html/claude.json EXPOSE 80 diff --git a/README.md b/README.md index 33814fd..d06a323 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ # notplanned -notplanned — we build the features maintainers won't \ No newline at end of file +notplanned — we build the features maintainers won't + +## deterministic surfaces + +- `/claude/` is a bounded public GitHub commit scout. Refresh it with `python3 claude.py`; it writes `claude/index.html` and `claude.json`. +- The scan uses five fixed commit-search queries over a 30-day window, dedupes by repository + commit SHA, applies fixed keyword categories, and separates `anthropics/*` from independent repositories. +- GitHub Search is unauthenticated and rate-limited; each JSON snapshot records query results, rate-limit headers, and errors instead of hiding partial scans. diff --git a/claude-template.html b/claude-template.html new file mode 100644 index 0000000..fc6dcbc --- /dev/null +++ b/claude-template.html @@ -0,0 +1,24 @@ +
+ +A bounded, deterministic mirror of public GitHub commits attributed to Claude, Claude Code, or Claude co-authorship. The independent ecosystem stays visible beside official Anthropic work.
Updated __UPDATED__ UTC. Search window: last 30 days. Results are deduped by repository + commit SHA, sorted newest first, and categorized with fixed keyword rules. GitHub search can be incomplete when its public rate limit is low.
+Public repositories outside the Anthropic organization: the clearest demand/discovery signal for what people are asking Claude to build.
Anthropic-owned repositories are separated so first-party implementation work does not obscure independent activity.
-ozt` or\n`-g`, such as `XAU-ozt`. A metal stored without a weight moves to\nRetired and cannot be restored. Holdings already measured in it keep\ntheir unit and their prices.\n\n\nTechnical
\n\n- `solvent/rates.py`: `POST /api/admin/symbols` holds a metal to\n`METAL_PATTERN`, `^(?=.{1,16}$)[A-Z0-9][A-Z0-9._]*-(ozt|g)$`. Both\npatterns now use `fullmatch`, because `re.match` with `$` admits a\ntrailing newline. `PATCH` with `retired: false` on a weightless metal is\na Bad Request.\n- `solvent/db.py`: every start retires the metal rows that fail\n`METAL_PATTERN`.\n- `solvent/static/js/page-admin.js`: refusal copy for a metal names the\nshape. A retired weightless metal has Restore disabled, with its reason\nbeside it.\n- Spec: `rate-lookup.md` (Maintaining the table, Seeded symbols, SSRF\nand egress hardening, criteria 81 and 82) and `admin-invites.md` (Units,\nits error states, criteria 54 and 55).\n- Tests: `tests/test_rates.py`, `tests/browser/parts/admin.mjs`, and the\nreviewer's `tests/test_review_rate_lookup.py` and\n`tests/browser/parts/admin-review-units.mjs`.\n- Filed outside this change: #414, #415.\n\n\n---------\n\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>",
+ "subject": "Adding a metal is refused unless its code names a weight (#416)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T22:31:41.000Z",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ }
+ ],
+ "category": "browser",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "electron/windows-installer",
+ "repo_url": "https://github.com/electron/windows-installer",
+ "commit_sha": "f65241d28d0e139ca6404e4c4936fcb2536d4499",
+ "commit_url": "https://github.com/electron/windows-installer/commit/f65241d28d0e139ca6404e4c4936fcb2536d4499",
+ "commit_message": "ci: set cache-mode on release workflows (#616)\n\nAdd top-level `cache-mode: none` to release.yml so the release run (and\nthe test.yml jobs it calls) never reads from or writes to the Actions\ncache, regardless of per-step cache settings.\n\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ",
+ "subject": "ci: set cache-mode on release workflows (#616)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T22:25:44.000Z",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "Claude",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "workflow",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "electron/mksnapshot",
+ "repo_url": "https://github.com/electron/mksnapshot",
+ "commit_sha": "dfc0551f369257505e99db5974d64ae8e25852ca",
+ "commit_url": "https://github.com/electron/mksnapshot/commit/dfc0551f369257505e99db5974d64ae8e25852ca",
+ "commit_message": "ci: set cache-mode on release workflows (#179)\n\nAdd top-level `cache-mode: none` to release.yml so release runs never\nread from or write to the Actions cache, regardless of per-step\nsettings.\n\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ",
+ "subject": "ci: set cache-mode on release workflows (#179)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T22:25:33.000Z",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "Claude",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "workflow",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "electron/typescript-definitions",
+ "repo_url": "https://github.com/electron/typescript-definitions",
+ "commit_sha": "caba32f6f031cf48b346c79a3def8e4c46dd748f",
+ "commit_url": "https://github.com/electron/typescript-definitions/commit/caba32f6f031cf48b346c79a3def8e4c46dd748f",
+ "commit_message": "ci: set cache-mode on release workflows (#357)\n\nAdd top-level `cache-mode: none` to release.yml so the release run (and\nthe test.yml jobs it calls) never reads from or writes to the Actions\ncache, regardless of per-step cache settings.\n\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ",
+ "subject": "ci: set cache-mode on release workflows (#357)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T22:25:32.000Z",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "Claude",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "workflow",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "electron/windows-sign",
+ "repo_url": "https://github.com/electron/windows-sign",
+ "commit_sha": "4b28ebf82d8096c06a57faa50e1ce02b9201fb35",
+ "commit_url": "https://github.com/electron/windows-sign/commit/4b28ebf82d8096c06a57faa50e1ce02b9201fb35",
+ "commit_message": "ci: set cache-mode on release workflows (#124)\n\n\n_Requested by **David Sanders** \u00b7 [Slack\nthread](https://electronhq.slack.com/archives/C0BERTA8EKW/p1789070712587299)_\n\n**Before:** The `Release` workflow (push to `main`) and the `Publish\ndocumentation` workflow (tag push) had no workflow-level cache policy.\nEvery job in them, including the `test` job that `Release` calls via\n`uses: ./.github/workflows/test.yml`, could read from and write to the\nGitHub Actions cache if any step asked for it; the only thing keeping\nthem cache-free was the per-step `package-manager-cache: false` setting\non `actions/setup-node`.\n\n**After:** Both workflows declare `cache-mode: none` at the top level,\nso no job in a release or docs-publish run can restore or save a cache\nentry regardless of per-step settings. Because `cache-mode` on the\ncaller also caps any reusable workflow it calls, the `test.yml` jobs run\ncache-free when invoked from `Release` (they keep their normal caching\nwhen `test.yml` runs on its own for pull requests). The existing\n`package-manager-cache: false` lines are left in place.\n\nThis uses GitHub's new workflow-level `cache-mode` key, which lets\nrelease paths be made cache-free by policy rather than by convention:\nhttps://github.blog/changelog/2026-09-10-control-github-actions-cache-access-with-cache-mode/\nand\nhttps://docs.github.com/actions/reference/workflows-and-actions/workflow-syntax#cache-mode.\n\n**How:** Adds a commented `cache-mode: none` line after the top-level\n`permissions:` block in `.github/workflows/release.yml` and\n`.github/workflows/docs.yml`, preserving the files' existing CRLF line\nendings. No other lines change; `test.yml` is untouched so PR CI keeps\nits cache.\n\nNote that PR CI does not exercise the release or docs workflows, so the\nfirst release (and first tag push) after merge is the real test. If a\nstep is denied cache access, `actions/cache` and the `@actions/cache`\ntoolkit log a message and continue (a skipped restore behaves as a cache\nmiss, a skipped save is a no-op) rather than failing the job. Local\nvalidation: the files parse as YAML and zizmor 1.30.1 reports no new\nfindings; actionlint 1.7.12 flags `cache-mode` as an unexpected workflow\nkey because its schema predates the feature (this repo does not run\nactionlint in CI).\n\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\n\nhttps://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\n---\n_Generated by [Claude\nCode](https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd)_\n\nCo-authored-by: Claude ",
+ "subject": "ci: set cache-mode on release workflows (#124)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T22:25:24.000Z",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "Claude",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "workflow",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "electron/osx-sign",
+ "repo_url": "https://github.com/electron/osx-sign",
+ "commit_sha": "222d7906ea13e02c6cfb80893ebd7ef0cff19a8c",
+ "commit_url": "https://github.com/electron/osx-sign/commit/222d7906ea13e02c6cfb80893ebd7ef0cff19a8c",
+ "commit_message": "ci: set cache-mode on release workflows (#449)\n\nCo-authored-by: Claude ",
+ "subject": "ci: set cache-mode on release workflows (#449)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T22:25:19.000Z",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "Claude",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "workflow",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "electron/fuses",
+ "repo_url": "https://github.com/electron/fuses",
+ "commit_sha": "e20ea68f6bd06c7c3783a753327829fc58afc344",
+ "commit_url": "https://github.com/electron/fuses/commit/e20ea68f6bd06c7c3783a753327829fc58afc344",
+ "commit_message": "ci: set cache-mode on release workflows (#136)\n\nAdd the workflow-level `cache-mode: none` key so release and docs-publish\nruns never read from or write to the Actions cache.\n\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ",
+ "subject": "ci: set cache-mode on release workflows (#136)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T22:25:16.000Z",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "Claude",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "workflow",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "electron/build-tools",
+ "repo_url": "https://github.com/electron/build-tools",
+ "commit_sha": "32e2253f7c5696d85a77fe19d54d284cf9a62322",
+ "commit_url": "https://github.com/electron/build-tools/commit/32e2253f7c5696d85a77fe19d54d284cf9a62322",
+ "commit_message": "fix: include clang-tidy in siso clang toolchain subtree (#910)\n\nsiso uploads the third_party/llvm-build/Release+Asserts:headers filegroup\nas a precomputed subtree and skips any other input under that directory.\nThe electron/clang-tidy rule lists\nthird_party/llvm-build/Release+Asserts/bin/clang-tidy as an explicit\ninput, which only reached the RBE workers because Chromium's glob\nincluded bin/clang-*.\n\nhttps://crrev.com/c/8471431 narrowed that glob to bin/clang-cl,\nbin/clang-cl.exe and bin/clang-[0-9]*, so clang-tidy is now dropped and\nthe remote tidy steps fail with exit 127 (\"clang-tidy: No such file or\ndirectory\"). Add bin/clang-tidy back to the filegroup's includes. This\nis a no-op on older Chromium, where bin/clang-* already matches it.\n\n\nClaude-Session: https://claude.ai/code/session_01V38FjDEdZgMvFpf5Fmp65m\n\nCo-authored-by: Claude ",
+ "subject": "fix: include clang-tidy in siso clang toolchain subtree (#910)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T22:23:28.000Z",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "Claude",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "context",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io",
+ "repo_url": "https://github.com/Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io",
+ "commit_sha": "92cf0df58065abcc158355c824b3311b386bd012",
+ "commit_url": "https://github.com/Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io/commit/92cf0df58065abcc158355c824b3311b386bd012",
+ "commit_message": "Link previews: put the menu item last so existing menu positions do not move (#619)\n\nCo-Authored-By: Claude Sonnet 5.5 ",
+ "subject": "Link previews: put the menu item last so existing menu positions do not move (#619)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T22:05:47.000Z",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Sonnet 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "interface",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "leandersabel/solvent",
+ "repo_url": "https://github.com/leandersabel/solvent",
+ "commit_sha": "5b93540355433455cb66ca9c574c2a0187c32dc4",
+ "commit_url": "https://github.com/leandersabel/solvent/commit/5b93540355433455cb66ca9c574c2a0187c32dc4",
+ "commit_message": "Typing a price where none is stored saves without a confirmation, and the confirmation names only prices that move a holding (#413)\n\nCloses #184\n\nTyping a price where none is stored for that date no longer asks first.\nThis covers a price typed on the value form over an empty line, a\nproposal or an estimate. When you change a stored price on a recording\nyou reopened, the confirmation leaves out any unit whose change moves no\nholding on that date. When nothing is left to name, it does not open. It\nno longer says \"moves 0 holdings\" or that your net worth changes when it\ndoes not.\n\n\nTechnical
\n\n- `view-forms.js`: the form's price confirmation is gone. Its lines\nnever hold a stored entry, so every save there fills in a missing price,\nas the sweep at a new date does.\n- `view-sweep.js`: `rateChangeCopy` drops an update whose `holdingsIn`\ncount is 0. `saveRates` saves without a dialog when the copy is empty. A\nclear always confirms, because it moves the neighbors' stretch and can\nleave a unit unpriced.\n- Spec: `record-snapshot.md` (The prices line, Changing or clearing a\nrate says what it moves, criterion 30, new criterion 102) and\n`record-rate.md` (The rate-lines save, Editing a captured rate).\n- Tests: `snapshot-entry.mjs` (a proposal and an estimate changed on the\nform ask nothing), a `tests/client/run.mjs` check, and the reviewer's\n`snapshot-entry-review-first-price.mjs` and\n`update-values-review-first-price.mjs`.\n- The sweep's half of the report (filling an empty line on a reopened\nrecording) was already fixed by #325.\n\n\n\n---------\n\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>",
+ "subject": "Typing a price where none is stored saves without a confirmation, and the confirmation names only prices that move a holding (#413)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T21:49:38.000Z",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ }
+ ],
+ "category": "testing",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "bamr87/lifehacker.dev",
+ "repo_url": "https://github.com/bamr87/lifehacker.dev",
+ "commit_sha": "b0adedd29cfb6b5bd46166708d045f815ba9a40e",
+ "commit_url": "https://github.com/bamr87/lifehacker.dev/commit/b0adedd29cfb6b5bd46166708d045f815ba9a40e",
+ "commit_message": "content(doc): trim over-length SEO description in two-locks-and-one-is-a-decoy (#688)\n\nThe `description:` frontmatter was 227 chars; lint_frontmatter.rb's SEO soft\ncap is 160 (warn-only rule `description-too-long`). Rewrote it to 156 chars\nwhile keeping Cass's threat-model irony intact (whitelist holds; the CI\nblacklist \"has a bad night eventually\").\n\nCloses #681\nCloses #686\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 ",
+ "subject": "content(doc): trim over-length SEO description in two-locks-and-one-is-a-decoy (#688)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T21:49:02.000-06:00",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "claude[bot]",
+ "email": "41898282+claude[bot]@users.noreply.github.com"
+ },
+ {
+ "name": "Claude Opus 4.8",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "infra",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Revokeeee/MyRevoke2.0-AI",
+ "repo_url": "https://github.com/Revokeeee/MyRevoke2.0-AI",
+ "commit_sha": "6cd7803695ba39530268901e63f763edc1c5b5ed",
+ "commit_url": "https://github.com/Revokeeee/MyRevoke2.0-AI/commit/6cd7803695ba39530268901e63f763edc1c5b5ed",
+ "commit_message": "build: add stage-editor.ps1 to assemble a self-contained editor folder\n\nBuilds RevokeCraft in Dist and copies the exe, OpenAL32.dll, mono/lib,\nresourses/ and projects/Example into dist/MyRevoke, pruning import\nlibraries, debug info, intermediates and imgui.ini.\n\nCloses #37\n\nCo-Authored-By: Claude Opus 5 ",
+ "subject": "build: add stage-editor.ps1 to assemble a self-contained editor folder",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-06T21:07:04.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Opus 5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "interface",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "JW-Incorporated/swift2",
+ "repo_url": "https://github.com/JW-Incorporated/swift2",
+ "commit_sha": "e77a4707b72aab235b8d08c86f66c2f28545ba4f",
+ "commit_url": "https://github.com/JW-Incorporated/swift2/commit/e77a4707b72aab235b8d08c86f66c2f28545ba4f",
+ "commit_message": "a11y: solid accent fill for LockedPayoff's era chip (#3663) (#5203)\n\nThe blurred era-label chip inside Decode's LockedPayoff painted the\npayoff era's raw accent as text over that same accent at ~15% tint \u2014\n3.93:1 on Midnights/evermore, under WCAG 1.4.3's 4.5:1 floor. The chip\nis colored by the payoff's era rather than the page's, so no\nsurface-calibrated token can guarantee the pairing; this applies #3318's\nproven shape instead: solid accent fill + accentFgFor foreground, the\nsame fix already merged for #3396/#3397/#3411. A source-lock regression\ntest keeps the text-on-self-tint pairing from coming back.\n\nPorts attempt 1 (PR #3751, closed unmerged as superseded by #3704,\nwhich itself died stale) to the component's post-migration home in\npackages/ui.\n\nTier-2: Austin \u2014 build runs\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Fable 5 ",
+ "subject": "a11y: solid accent fill for LockedPayoff's era chip (#3663) (#5203)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T19:25:56.000-07:00",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "claude[bot]",
+ "email": "41898282+claude[bot]@users.noreply.github.com"
+ },
+ {
+ "name": "Claude Fable 5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "interface",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "JW-Incorporated/swift2",
+ "repo_url": "https://github.com/JW-Incorporated/swift2",
+ "commit_sha": "4cb9d21f736fc5768574a0d9ea9e3c77224f5a1e",
+ "commit_url": "https://github.com/JW-Incorporated/swift2/commit/4cb9d21f736fc5768574a0d9ea9e3c77224f5a1e",
+ "commit_message": "test: derive heroVideoFor's promoted set from the vault, not a hardcoded 11 (#5252)\n\nPhoto Enrichment giving a video-carrying page its own MV still as the\nhero GROWS the promoted set by design, but video-affordance.test.ts\nasserted promoted.toHaveLength(11) \u2014 so every such pass failed a test\nthe seed-only lane is not allowed to fix, and Vault Run 2026-10-05 had\nto revert 6 verified photos (b7fc243b) to ship green. Computing the\nexpected set from the corpus through the public helpers (youtubeFrameId,\nprimaryImageRef, isSubConfirmed) keeps the assertion meaningful (set\nequality, non-empty) while letting the corpus grow. Verified both ways:\npasses at today's 11 and, with b7fc243b applied locally, at 17.\n\nCloses #5192\n\nTier-2: Austin \u2014 build runs\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Fable 5 ",
+ "subject": "test: derive heroVideoFor's promoted set from the vault, not a hardcoded 11 (#5252)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T19:18:21.000-07:00",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "claude[bot]",
+ "email": "41898282+claude[bot]@users.noreply.github.com"
+ },
+ {
+ "name": "Claude Fable 5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "interface",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "jjhoncv/vitrina",
+ "repo_url": "https://github.com/jjhoncv/vitrina",
+ "commit_sha": "d132a1418ca6cd0a365d23d57d65c7aa0e4209bc",
+ "commit_url": "https://github.com/jjhoncv/vitrina/commit/d132a1418ca6cd0a365d23d57d65c7aa0e4209bc",
+ "commit_message": "feat(#4): t\u00edtulo SEO y sitemap (#15)\n\nCloses #4\n\nEscenarios en verde:\n- T\u00edtulo para buscadores: `/productos/taza-de-ceramica` \u2192 \u00abTaza de\ncer\u00e1mica | Vitrina\u00bb\n- Sitemap con los productos: `/sitemap.xml` incluye\n`/productos/taza-de-ceramica`\n\nQu\u00e9 cambia:\n- `generateMetadata` en la landing: t\u00edtulo \u00ab | \u00bb y\ndescripci\u00f3n del producto.\n- `app/sitemap.ts`: portada + una URL por producto. Base absoluta desde\n`URL` (Netlify), con fallback a `http://localhost:3000`.\n\nC\u00f3mo probarlo: `npm test && npm run build && npm run e2e`, o abrir\n`/sitemap.xml` y el `` de una landing.\n\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 5.5 ",
+ "subject": "feat(#4): t\u00edtulo SEO y sitemap (#15)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T18:56:19.000-05:00",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "claude[bot]",
+ "email": "41898282+claude[bot]@users.noreply.github.com"
+ },
+ {
+ "name": "Claude Sonnet 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "interface",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "jjhoncv/vitrina",
+ "repo_url": "https://github.com/jjhoncv/vitrina",
+ "commit_sha": "382de2ad3b6c730eb998e422a8e01d5ee64d5942",
+ "commit_url": "https://github.com/jjhoncv/vitrina/commit/382de2ad3b6c730eb998e422a8e01d5ee64d5942",
+ "commit_message": "feat(#3): landing por producto y p\u00e1gina de no encontrado (#14)\n\nCloses #3\n\n## Escenarios en verde\n- \u00abAbrir la landing de un producto\u00bb\n- \u00abProducto que no existe\u00bb\n\n## Qu\u00e9 cambia\n- `/productos/` con nombre, foto, descripci\u00f3n, precio y proveedor.\n- `notFound()` con p\u00e1gina \u00abProducto no encontrado\u00bb si el slug no existe.\n- La portada enlaza cada producto a su landing.\n\n## C\u00f3mo probarlo\n`npm run e2e`, o `FUENTE_PRODUCTOS=fixture npm run dev` y abrir\n`/productos/taza-de-ceramica` y `/productos/no-existe`.\nLint, typecheck, tests unitarios, build y e2e pasan.\n\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 5.5 ",
+ "subject": "feat(#3): landing por producto y p\u00e1gina de no encontrado (#14)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T18:51:02.000-05:00",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "claude[bot]",
+ "email": "41898282+claude[bot]@users.noreply.github.com"
+ },
+ {
+ "name": "Claude Sonnet 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "interface",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "jjhoncv/vitrina",
+ "repo_url": "https://github.com/jjhoncv/vitrina",
+ "commit_sha": "b8dcd7b6d5b5966bea48d9680ce7e27cc260a413",
+ "commit_url": "https://github.com/jjhoncv/vitrina/commit/b8dcd7b6d5b5966bea48d9680ce7e27cc260a413",
+ "commit_message": "feat(#2): portada con los productos de la hoja (#12)\n\nCloses #2\n\n**Escenario:** \u00abVer el cat\u00e1logo\u00bb\n(`features/fase-1-catalogo-publico.feature`) en verde: la portada\nmuestra Taza de cer\u00e1mica y Libreta A5 con foto, nombre y precio.\n\n**Qu\u00e9 cambia**\n- `lib/productos.ts`: fuente de datos `obtenerProductos()`. Lee la\npesta\u00f1a `productos` con Sheets API + service account; con\n`FUENTE_PRODUCTOS=fixture` usa `mocks/fixtures/productos.json` (ADR\n0001, ADR 0002).\n- Portada `app/page.tsx` con la lista de productos (din\u00e1mica, sin\ncach\u00e9).\n- Playwright levanta el servidor con el fixture.\n\n**C\u00f3mo probarlo:** `npm run lint && npm run typecheck && npm test && npm\nrun build && npm run e2e` (todo pasa; el escenario sale en verde).\n\n**Necesito de Jhonnatan**\n- Service account de Google Cloud con lectura a la hoja y el ID de la\nhoja. Configurar `GOOGLE_SHEET_ID`, `GOOGLE_SERVICE_ACCOUNT_EMAIL` y\n`GOOGLE_PRIVATE_KEY` en las variables de Netlify, y compartir la hoja\ncon ese correo.\n- Ojo: sin esas variables, la portada en staging/producci\u00f3n falla (y con\nella el smoke de inicio). La lectura real de Google no est\u00e1 probada;\nsolo el parseo de filas y el fixture.\n\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 5.5 ",
+ "subject": "feat(#2): portada con los productos de la hoja (#12)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "web-flow",
+ "name": "GitHub",
+ "email": "noreply@github.com"
+ },
+ "timestamp": "2026-10-06T18:38:06.000-05:00",
+ "attribution_kind": "author + co-author",
+ "coauthors": [
+ {
+ "name": "claude[bot]",
+ "email": "41898282+claude[bot]@users.noreply.github.com"
+ },
+ {
+ "name": "Claude Sonnet 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "browser",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "author:claude[bot]"
+ ]
+ },
+ {
+ "repo": "AlperenGuntekin/text-expansion-calculator",
+ "repo_url": "https://github.com/AlperenGuntekin/text-expansion-calculator",
+ "commit_sha": "6652591cf2ab82277e3606606f21eff087e4945b",
+ "commit_url": "https://github.com/AlperenGuntekin/text-expansion-calculator/commit/6652591cf2ab82277e3606606f21eff087e4945b",
+ "commit_message": "docs(readme): refresh topics + shotlingo cross-links\n\nCo-Authored-By: Claude Sonnet 5.5 ",
+ "subject": "docs(readme): refresh topics + shotlingo cross-links",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-06T11:02:25.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Sonnet 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "AlperenGuntekin/shotlingo-text-expansion",
+ "repo_url": "https://github.com/AlperenGuntekin/shotlingo-text-expansion",
+ "commit_sha": "1a2c40d0aa6ad3312b8bb24b17ecc751277b254f",
+ "commit_url": "https://github.com/AlperenGuntekin/shotlingo-text-expansion/commit/1a2c40d0aa6ad3312b8bb24b17ecc751277b254f",
+ "commit_message": "docs(readme): refresh topics + shotlingo cross-links\n\nCo-Authored-By: Claude Sonnet 5.5 ",
+ "subject": "docs(readme): refresh topics + shotlingo cross-links",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-06T11:02:24.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Sonnet 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "AlperenGuntekin/shotlingo-screenshot-sizes",
+ "repo_url": "https://github.com/AlperenGuntekin/shotlingo-screenshot-sizes",
+ "commit_sha": "fc4054f81216b97585141dbe8b2906b0250a3cd9",
+ "commit_url": "https://github.com/AlperenGuntekin/shotlingo-screenshot-sizes/commit/fc4054f81216b97585141dbe8b2906b0250a3cd9",
+ "commit_message": "docs(readme): refresh topics + shotlingo cross-links\n\nCo-Authored-By: Claude Sonnet 5.5 ",
+ "subject": "docs(readme): refresh topics + shotlingo cross-links",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-06T11:02:23.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Sonnet 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "AlperenGuntekin/shotlingo-locale-codes",
+ "repo_url": "https://github.com/AlperenGuntekin/shotlingo-locale-codes",
+ "commit_sha": "d7a4fbddb291a72a529cb70fcf021277bb26f874",
+ "commit_url": "https://github.com/AlperenGuntekin/shotlingo-locale-codes/commit/d7a4fbddb291a72a529cb70fcf021277bb26f874",
+ "commit_message": "docs(readme): refresh topics + shotlingo cross-links\n\nCo-Authored-By: Claude Sonnet 5.5 ",
+ "subject": "docs(readme): refresh topics + shotlingo cross-links",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-06T11:02:21.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Sonnet 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "bamr87/it-journey",
+ "repo_url": "https://github.com/bamr87/it-journey",
+ "commit_sha": "c9647284bce3f10e825246b54537189b4d77f4fa",
+ "commit_url": "https://github.com/bamr87/it-journey/commit/c9647284bce3f10e825246b54537189b4d77f4fa",
+ "commit_message": "fix(deps): floor github-pages at >= 232 so Bundler cannot walk it back\n\nVerified in ruby:3.4 (the Dockerfile image): with no lockfile and an\nunconstrained `gem 'github-pages'`, a fresh `bundle install` still resolves\ngithub-pages 222 / jekyll 3.9.0 / liquid 4.0.3 and `jekyll build` exits 1.\nWith the floor it resolves github-pages 232 / jekyll 3.10.0 / liquid 4.0.4\nand the build passes. A floor is allowed by fleet policy (no pins, no\nceilings).\n\nRefs bamr87/bamr87#333\n\nCo-Authored-By: Claude Opus 5.5 ",
+ "subject": "fix(deps): floor github-pages at >= 232 so Bundler cannot walk it back",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-06T08:20:40.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Opus 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "interface",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "bamr87/it-journey",
+ "repo_url": "https://github.com/bamr87/it-journey",
+ "commit_sha": "e267accca18f53bcda6817a3f5d695a674d448ed",
+ "commit_url": "https://github.com/bamr87/it-journey/commit/e267accca18f53bcda6817a3f5d695a674d448ed",
+ "commit_message": "fix(deps): stop committing Gemfile.lock (fleet never-commit policy)\n\nGemfile.lock was tracked despite .gitignore:16. Dependabot's lockfile-only\nbundler PR #751 satisfied a ruby-group bump by downgrading github-pages\n232 -> 222 (liquid 4.0.3, which calls String#tainted?, removed in Ruby 3.2),\nso ci, Jekyll Build Test and dependabot-auto-merge went red every week.\n\n- git rm --cached Gemfile.lock (the .gitignore rule stays)\n- docker-compose.yml comments: the lockfile is local-only, not committed\n- AGENTS.md / copilot-instructions.md: drop the stale \"must be committed\"\n guidance in favour of the fleet policy\n\nRefs bamr87/bamr87#333\n\nCo-Authored-By: Claude Opus 5.5 ",
+ "subject": "fix(deps): stop committing Gemfile.lock (fleet never-commit policy)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-06T08:16:41.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Opus 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "workflow",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Reservaste/frontend",
+ "repo_url": "https://github.com/Reservaste/frontend",
+ "commit_sha": "d92cda57f9acc7cbb80b2379ec6be255e6f04c60",
+ "commit_url": "https://github.com/Reservaste/frontend/commit/d92cda57f9acc7cbb80b2379ec6be255e6f04c60",
+ "commit_message": "feat: contacto (email/tel\u00e9fono) del cliente en la ficha del admin (ADR-0050, Issue #5)\n\nCo-Authored-By: Claude Sonnet 5.5 ",
+ "subject": "feat: contacto (email/tel\u00e9fono) del cliente en la ficha del admin (ADR-0050, Issue #5)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-05T14:39:47.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Sonnet 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "implementation",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Reservaste/backend",
+ "repo_url": "https://github.com/Reservaste/backend",
+ "commit_sha": "4d0832b913b65b3dc431abf91df3362798638ff4",
+ "commit_url": "https://github.com/Reservaste/backend/commit/4d0832b913b65b3dc431abf91df3362798638ff4",
+ "commit_message": "feat: contacto (email/tel\u00e9fono) del cliente en la ficha del admin (ADR-0050, Issue #5)\n\nCo-Authored-By: Claude Sonnet 5.5 ",
+ "subject": "feat: contacto (email/tel\u00e9fono) del cliente en la ficha del admin (ADR-0050, Issue #5)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-05T14:39:45.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Sonnet 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "implementation",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Reservaste/frontend",
+ "repo_url": "https://github.com/Reservaste/frontend",
+ "commit_sha": "ad30d3138b9e95e2ccf97d4042b3fa689ff430f5",
+ "commit_url": "https://github.com/Reservaste/frontend/commit/ad30d3138b9e95e2ccf97d4042b3fa689ff430f5",
+ "commit_message": "Mostrar pedidos de cambio de plan en Pagos y alertar si falla la lectura (Issue #6)\n\nCo-Authored-By: Claude Sonnet 5.5 ",
+ "subject": "Mostrar pedidos de cambio de plan en Pagos y alertar si falla la lectura (Issue #6)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-05T14:27:42.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Sonnet 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "implementation",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Revokeeee/MyRevoke2.0-AI",
+ "repo_url": "https://github.com/Revokeeee/MyRevoke2.0-AI",
+ "commit_sha": "25bb8858b16bd5ff2e80c354a9fc245bc33a456f",
+ "commit_url": "https://github.com/Revokeeee/MyRevoke2.0-AI/commit/25bb8858b16bd5ff2e80c354a9fc245bc33a456f",
+ "commit_message": "Separate user projects from the editor's own files\n\nThe editor kept the user's content in its own install folder, so an installed\neditor could not save scenes, and nothing marked which files belong to a game.\n\nAdds Revoke::Project (a .mrproject YAML file plus its assets folder) with\nNew Project / Open Project in the editor. The content browser, scene save/load\nand drag-and-drop now point at the open project. The renderer shader moves to\nresourses/shaders, and the old assets folder becomes projects/Example.\n\nCloses #34\n\nCo-Authored-By: Claude Opus 5 ",
+ "subject": "Separate user projects from the editor's own files",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-04T23:22:27.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Opus 5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "browser",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "ag-grid/ag-charts",
+ "repo_url": "https://github.com/ag-grid/ag-charts",
+ "commit_sha": "4481c93ab0c628923849714725769da9affaa38f",
+ "commit_url": "https://github.com/ag-grid/ag-charts/commit/4481c93ab0c628923849714725769da9affaa38f",
+ "commit_message": "Refresh yarn.lock after the automated version bump\n\nThe 14.2.0-beta.20261004 bump updated every workspace package.json but not\nyarn.lock. Since the Yarn 4 migration the lockfile records workspace\nversions, so CI's yarn install --immutable rejected the commit. Regenerate\nthe lockfile and have bump-versions.sh refresh it on every bump.",
+ "subject": "Refresh yarn.lock after the automated version bump",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-04T20:55:13.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "infra",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Revokeeee/MyRevoke2.0-AI",
+ "repo_url": "https://github.com/Revokeeee/MyRevoke2.0-AI",
+ "commit_sha": "9881f9b490b866ffe7494b627c5026442ebfeb52",
+ "commit_url": "https://github.com/Revokeeee/MyRevoke2.0-AI/commit/9881f9b490b866ffe7494b627c5026442ebfeb52",
+ "commit_message": "Extract UUID generation into a seedable UuidGenerator class\n\nUUIDs were generated from module-level static RNG state in\nUniversallyUniqueIdentifiers.cpp, so there was no way to make generation\ndeterministic in a test without reaching into engine internals.\n\nUuidGenerator now owns its own std::mt19937_64 and distribution. It can be\nconstructed with an explicit seed for reproducible sequences, or default\nconstructed to seed from std::random_device as before. UUID's default\nconstructor wraps a single shared generator instance, so every existing\ncall site keeps working unchanged.\n\nAlso fixes UUID::Get() returning int64_t for a uint64_t member.\n\nCloses #14\n\nCo-Authored-By: Claude Opus 5 ",
+ "subject": "Extract UUID generation into a seedable UuidGenerator class",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-04T20:38:02.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Opus 5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "interface",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Revokeeee/MyRevoke2.0-AI",
+ "repo_url": "https://github.com/Revokeeee/MyRevoke2.0-AI",
+ "commit_sha": "76d67aabe6f252225422eb11a85de1f3327b0dab",
+ "commit_url": "https://github.com/Revokeeee/MyRevoke2.0-AI/commit/76d67aabe6f252225422eb11a85de1f3327b0dab",
+ "commit_message": "Add unit tests for the EventSystem module\n\nCovers event type/name/category reporting for every event class, the data\neach event carries through its constructor and getters, and EventDispatcher\ntype matching plus the Handled flag.\n\nCloses #13\n\nCo-Authored-By: Claude Opus 5 ",
+ "subject": "Add unit tests for the EventSystem module",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-04T20:15:26.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Opus 5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "testing",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "019cfa5c5a31562a7d5e46ef2d47bc0eff70ebc8",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/019cfa5c5a31562a7d5e46ef2d47bc0eff70ebc8",
+ "commit_message": "docs: accept derived artifacts on dev for v1.79.0-beta.7\n\n\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u0431\u0435\u0442\u044b \u2014 \u043e\u0434\u043d\u0438\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u043d\u0430 dev (PROCESS.md \u00a78, \u00a711.4, #697).\n\u041f\u0440\u043e\u0433\u043e\u043d: https://github.com/Matysh/houseplan-card/actions/runs/37139464966\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438: \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432; \u0438\u0437\u043c\u0435\u043d\u0451\u043d\u043d\u044b\u0435 \u043a\u0430\u0434\u0440\u044b: \u043d\u0435\u0442.\n\nIssue: #697\nUser-Visible: no",
+ "subject": "docs: accept derived artifacts on dev for v1.79.0-beta.7",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-03T17:11:26.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "42d1a8a9dc2d4f1e85e0add48d3bdfa1c81b5108",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/42d1a8a9dc2d4f1e85e0add48d3bdfa1c81b5108",
+ "commit_message": "docs: accept derived artifacts on dev for v1.79.0-beta.5\n\n\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u0431\u0435\u0442\u044b \u2014 \u043e\u0434\u043d\u0438\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u043d\u0430 dev (PROCESS.md \u00a78, \u00a711.4, #697).\n\u041f\u0440\u043e\u0433\u043e\u043d: https://github.com/Matysh/houseplan-card/actions/runs/37119340533\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438: \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432; \u0438\u0437\u043c\u0435\u043d\u0451\u043d\u043d\u044b\u0435 \u043a\u0430\u0434\u0440\u044b: \u043d\u0435\u0442.\n\nIssue: #697\nUser-Visible: no",
+ "subject": "docs: accept derived artifacts on dev for v1.79.0-beta.5",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-03T11:22:39.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "9fa5efbdac648a1ad4a704553243540d43e3f57f",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/9fa5efbdac648a1ad4a704553243540d43e3f57f",
+ "commit_message": "docs(reviews): manual code review of the pending-round witness (#781)\n\nManual review requested by the owner after the automated reviewer failed.\nMaterial e931a949: green, no High/Medium findings, one non-blocking Low.\n\nIssue: #781\nUser-Visible: no",
+ "subject": "docs(reviews): manual code review of the pending-round witness (#781)",
+ "author": {
+ "login": "",
+ "name": "Codex",
+ "email": "codex@houseplan.tech"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-02T19:57:08.000+03:00",
+ "attribution_kind": "committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "73b0cfff5b9cd766ca6573b3a608641c61a0c434",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/73b0cfff5b9cd766ca6573b3a608641c61a0c434",
+ "commit_message": "test(process): \u043f\u043e\u0439\u043c\u0430\u0442\u044c \u043e\u0436\u0438\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (#781)\n\nIssue: #781\nUser-Visible: no",
+ "subject": "test(process): \u043f\u043e\u0439\u043c\u0430\u0442\u044c \u043e\u0436\u0438\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (#781)",
+ "author": {
+ "login": "Matysh",
+ "name": "Matysh",
+ "email": "Matunin2005@yandex.ru"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-02T19:57:08.000+03:00",
+ "attribution_kind": "committer",
+ "coauthors": [],
+ "category": "testing",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "reecejunior/techzimint",
+ "repo_url": "https://github.com/reecejunior/techzimint",
+ "commit_sha": "569cc96c342d7412aee1b159fa1c6b858880d28a",
+ "commit_url": "https://github.com/reecejunior/techzimint/commit/569cc96c342d7412aee1b159fa1c6b858880d28a",
+ "commit_message": "Log 2026-10-02 growth/product strategy notes\n\nCo-Authored-By: Claude Sonnet 5 ",
+ "subject": "Log 2026-10-02 growth/product strategy notes",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-02T11:47:51.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Sonnet 5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "implementation",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "reecejunior/techzimint",
+ "repo_url": "https://github.com/reecejunior/techzimint",
+ "commit_sha": "4d2af1595adef50f100a386e0647a2611e054e4f",
+ "commit_url": "https://github.com/reecejunior/techzimint/commit/4d2af1595adef50f100a386e0647a2611e054e4f",
+ "commit_message": "Fix raw ISO timestamp shown on reviewer profile review dates\n\nProfileClient's review history rendered r.createdAt verbatim, e.g.\n\"2024-06-01T12:34:56.789Z\", instead of a readable date. The identical\nReview.createdAt field is already formatted with .slice(0, 10) in\nStartupDetailClient's ReviewCard \u2014 this applies the same fix here so\nprofile pages are consistent with startup detail pages.\n\nCo-Authored-By: Claude Sonnet 5 ",
+ "subject": "Fix raw ISO timestamp shown on reviewer profile review dates",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-02T11:47:18.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Sonnet 5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "context",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "13d8df55541fef9cbbf86d1060c7660a8ce5fa84",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/13d8df55541fef9cbbf86d1060c7660a8ce5fa84",
+ "commit_message": "docs: review document for #780\n\nIssue: #780\nUser-Visible: no",
+ "subject": "docs: review document for #780",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-02T10:47:04.000+03:00",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "9e1a2f4a0777faecbb47f391407d3d37d7d916f2",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/9e1a2f4a0777faecbb47f391407d3d37d7d916f2",
+ "commit_message": "docs(reviews): rebuild the review index after rebase onto dev",
+ "subject": "docs(reviews): rebuild the review index after rebase onto dev",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-02T10:18:38.000+03:00",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "interface",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "23f822475b160983aa7d3f16f92ff19fc4ff23d4",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/23f822475b160983aa7d3f16f92ff19fc4ff23d4",
+ "commit_message": "fix(process): prepare and the usage step run pipeline scripts from one pinned dev snapshot (#765)\n\nThe body of _process.yml is read from dev (@dev, #623). After \"\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430\n\u0432\u0435\u0442\u043a\u0443 \u0437\u0430\u0434\u0430\u0447\u0438\" the working copy of job prepare is the task branch, and a\nshow/ship branch with a clean merge is not rebased before review: its\nscripts/ may lag dev or be replaced. #749 fixed job integrate; prepare\nstill ran four control scripts from the material \u2014 the issue-body digest\nfor the anchor, --reuse of a green verdict (#499), validate-gate (#510)\nand the spec-change check (#517). The material decided its own admission:\na branch whose review-doc-guard.mjs prints reuse=true merges without the\nmodel. model_review took model-usage.mjs from the material too: a lagging\nbranch has none, and the publication silently wrote reason=missing.\n\nNow prepare extracts one snapshot right after setup-node, before the\nbranch switch: `git rev-parse origin/dev` once and `git archive \nscripts .github/workflows/validate.yml`, so the git fetch of the track and\nrebase steps cannot mix versions. Every repo script of the job runs from\nit via TOOLS \u2014 the track step and the rebase guard lose their own\nextractions. The SHA goes out as job output tools_sha; the usage step of\nmodel_review archives the same commit inside itself, so a snapshot failure\nis a failure of the reporting step (continue-on-error), not of the stage.\nThe model session runs on that runner, so the usage line stays untrusted\ninput parsed strictly (#556, #737).\n\nwithMaterialAnchors is idempotent: a repeated call drops the separator the\nprevious call wrote instead of piling up `---` lines.\n\nTests: test/process-prepare-tools.test.mjs \u2014 the job contract (no step\ncalls scripts/ from the working copy, one pinned archive before the branch\nswitch, tools_sha reaches model_review) and the steps as they are, on real\nbash and git: a branch behind dev without model-usage.mjs and with a\nsubstituted review-doc-guard.mjs; the anchor digest, reuse and the spec\ncheck come from dev, the usage line is data even after dev moved. Red on\nthe old workflow: all four. Harnesses of process-track, rebase-generated,\nreview-doc-guard and model-usage take the prepare snapshot. Three registry\nmutants (reuse from the material, usage from moving dev, separators).\n\nCanon: PROCESS.md \u00a710.4 \u00ab\u0421\u043a\u0440\u0438\u043f\u0442\u044b \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u2014 \u0438\u0437 dev\u00bb covers prepare and\nthe usage step; \u00ab\u0420\u0430\u0441\u0445\u043e\u0434 \u043c\u043e\u0434\u0435\u043b\u0438\u00bb names it a pipeline step, not the reviewer's.\n\nIssue: #765\nUser-Visible: no",
+ "subject": "fix(process): prepare and the usage step run pipeline scripts from one pinned dev snapshot (#765)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-02T10:18:29.000+03:00",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "workflow",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "16069d1dcc9e1133834028fa357d2c131e4c6440",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/16069d1dcc9e1133834028fa357d2c131e4c6440",
+ "commit_message": "docs(reviews): independent code review of pipeline snapshot (#765)\n\nManual review requested by the owner after the automated reviewer failed.\nMaterial af09d36d: green, no High/Medium findings, one non-blocking Low.\n\nIssue: #765\nUser-Visible: no",
+ "subject": "docs(reviews): independent code review of pipeline snapshot (#765)",
+ "author": {
+ "login": "Matysh",
+ "name": "Matysh",
+ "email": "Matunin2005@yandex.ru"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-02T10:18:29.000+03:00",
+ "attribution_kind": "committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "ceee249210e4d268521ee800dbf2011687d1b490",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/ceee249210e4d268521ee800dbf2011687d1b490",
+ "commit_message": "docs: review document for #780\n\nIssue: #780\nUser-Visible: no",
+ "subject": "docs: review document for #780",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-02T10:09:11.000+03:00",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "044f09a6a5eee277b3cdd4b3b1e9c1ef46232e79",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/044f09a6a5eee277b3cdd4b3b1e9c1ef46232e79",
+ "commit_message": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#744)\n\nIssue: #744\nUser-Visible: no",
+ "subject": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#744)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T23:05:23.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "92b89d9b80d5355a3631534d58a812f644f79957",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/92b89d9b80d5355a3631534d58a812f644f79957",
+ "commit_message": "docs: review document for #744\n\nIssue: #744\nUser-Visible: no",
+ "subject": "docs: review document for #744",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T23:05:20.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "f2936813af8d6e8ac265c61061451cbf374b3f22",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/f2936813af8d6e8ac265c61061451cbf374b3f22",
+ "commit_message": "fix: keep warm editor adoption subordinate to user navigation (#762)\n\nIssue: #762\nUser-Visible: yes",
+ "subject": "fix: keep warm editor adoption subordinate to user navigation (#762)",
+ "author": {
+ "login": "Matysh",
+ "name": "Matysh",
+ "email": "Matunin2005@yandex.ru"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T21:00:48.000Z",
+ "attribution_kind": "committer",
+ "coauthors": [],
+ "category": "implementation",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "e2d38d4e169d8518438add6d26de839decb12793",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/e2d38d4e169d8518438add6d26de839decb12793",
+ "commit_message": "test: await warm navigation request before checking its authority (#762)\n\nIssue: #762\nUser-Visible: no",
+ "subject": "test: await warm navigation request before checking its authority (#762)",
+ "author": {
+ "login": "Matysh",
+ "name": "Matysh",
+ "email": "Matunin2005@yandex.ru"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T21:00:48.000Z",
+ "attribution_kind": "committer",
+ "coauthors": [],
+ "category": "testing",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "c4cb0649ae2f2fa2790586b9f31d714286643dbb",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/c4cb0649ae2f2fa2790586b9f31d714286643dbb",
+ "commit_message": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#762)\n\nIssue: #762\nUser-Visible: no",
+ "subject": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#762)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T21:00:48.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "baf0136d9a051c0eb98e6cdeaae3106c5c78fd27",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/baf0136d9a051c0eb98e6cdeaae3106c5c78fd27",
+ "commit_message": "docs: review document for #762\n\nIssue: #762\nUser-Visible: no",
+ "subject": "docs: review document for #762",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T21:00:48.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "6149bcf866808cbaa98df1ce5763d8f363cf89ff",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/6149bcf866808cbaa98df1ce5763d8f363cf89ff",
+ "commit_message": "refactor: keep room warm-draft construction in the lazy editor (#762)\n\nIssue: #762\nUser-Visible: no",
+ "subject": "refactor: keep room warm-draft construction in the lazy editor (#762)",
+ "author": {
+ "login": "Matysh",
+ "name": "Matysh",
+ "email": "Matunin2005@yandex.ru"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T21:00:48.000Z",
+ "attribution_kind": "committer",
+ "coauthors": [],
+ "category": "implementation",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "a05458b6f324d83af95ff9150033d704ba7d185e",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/a05458b6f324d83af95ff9150033d704ba7d185e",
+ "commit_message": "docs: review document for #662\n\nIssue: #662\nUser-Visible: no",
+ "subject": "docs: review document for #662",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T20:52:49.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "5021c484461879599ab4aad4aefdb3889282cc26",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/5021c484461879599ab4aad4aefdb3889282cc26",
+ "commit_message": "docs: review document for #662\n\nIssue: #662\nUser-Visible: no",
+ "subject": "docs: review document for #662",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T20:33:15.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "8a3bf71ef19ea22f066a526d860759d084d92abe",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/8a3bf71ef19ea22f066a526d860759d084d92abe",
+ "commit_message": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#740)\n\nIssue: #740\nUser-Visible: no",
+ "subject": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#740)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T18:38:03.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "97d40ea710431c3c4280d2dfcf743080c5c53dc4",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/97d40ea710431c3c4280d2dfcf743080c5c53dc4",
+ "commit_message": "docs: review document for #740\n\nIssue: #740\nUser-Visible: no",
+ "subject": "docs: review document for #740",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T18:38:00.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "d709ea110d3e144fc1d3d2edefa36092b1a58292",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/d709ea110d3e144fc1d3d2edefa36092b1a58292",
+ "commit_message": "perf(stairs): draw all treads of a stair as one path (#740)\n\nA floor with stairs pays for them on every switch to it: the stair layer\nis emptied on other floors, so Lit recreates every symbol on each return\nand the browser lays out and paints it again. With 250 stairs (the\nlarge-house fixture, the per-floor limit) that was 2,875 SVG elements and\nabout 40 ms per entry locally; each stair carried 3-7 separate tread lines\nwith four bound coordinates each.\n\nThe treads of one stair are now a single \nwith one `M a L b` subpath per tread, in geometry order and with the\nnumbers the lines carried. Treads of one stair never overlap (straight:\nparallel, >= 20 cm apart; spiral: inner ends >= 6.7 cm apart at the\n3.6 cm stroke), so the path paints the same pixels at any opacity. The\noutline points and the tread data are built once per cached geometry\nobject (cachedStairMarkup, weak keys), not on every render. The View and\nplan-editor layers share the strings; outline, hit polygon, trapezoid,\narrow, attributes and handlers are unchanged. Floor 1 of the fixture\ndrops from 4,210 to 2,960 elements.\n\nWitnesses: the unit test for the path data and its cache, and the\nsmoke_stairs markup checks in View and in the plan editor, are red on\ndev. The stairs-view-tread-lines mutant restores the View lines.\n\nIssue: #740\nUser-Visible: no\nCo-Authored-By: Claude Opus 5.5 \nClaude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd",
+ "subject": "perf(stairs): draw all treads of a stair as one path (#740)",
+ "author": {
+ "login": "claude",
+ "name": "Claude",
+ "email": "noreply@anthropic.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T18:27:53.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Opus 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "browser",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "b8f662cdf189c03984478b255eaa334b4b5ab023",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/b8f662cdf189c03984478b255eaa334b4b5ab023",
+ "commit_message": "docs(screenshots): source fingerprint for #740 on the current dev \u2014 all frames pixel-identical\n\nValidate on the conveyor's rebase eb439e81 failed preflight: the branch\nchanges visual sources (stairs), so the screenshot check is strict on it,\nand the fingerprint was stale against the moved dev (#739, #742, #759).\nThe branch is rebased onto b84465e5 (inventory counts merged with #742:\nlifecycle 89, total 204/200) and `docs:accept --identical` re-captured\nall 11 frames: pixel-identical, only the source fingerprint moves.\n\nIssue: #740\nUser-Visible: no\nCo-Authored-By: Claude Opus 5.5 \nClaude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd",
+ "subject": "docs(screenshots): source fingerprint for #740 on the current dev \u2014 all frames pixel-identical",
+ "author": {
+ "login": "claude",
+ "name": "Claude",
+ "email": "noreply@anthropic.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T18:27:53.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Opus 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "browser",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "8e4f417f51f46dc49239deb508a4fd341dc72f06",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/8e4f417f51f46dc49239deb508a4fd341dc72f06",
+ "commit_message": "docs: review document for #740\n\nIssue: #740\nUser-Visible: no",
+ "subject": "docs: review document for #740",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T18:27:53.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "9f695d8a5d92d29a4173043d9e43c577185b2d78",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/9f695d8a5d92d29a4173043d9e43c577185b2d78",
+ "commit_message": "docs: review document for #762\n\nIssue: #762\nUser-Visible: no",
+ "subject": "docs: review document for #762",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T17:53:24.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "cf7a9cc4fc2efebbe1718781867c1f51d0d068d6",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/cf7a9cc4fc2efebbe1718781867c1f51d0d068d6",
+ "commit_message": "fix(process): reconcile canon and hints with the pipeline after #707\u2013#730 (#748)\n\nFive places still described the pipeline as it was before code that is\nalready in dev:\n\n- the S3 hint of the task packet told the author to push the branch, while\n the spec lives in the issue body (\u00a72.3, #517) and nothing is pushed\n before S5 (\u00a711.8);\n- process-gate printed \u00abFAIL \u043f.9 Gates: light\u00bb for a trailer nobody writes\n or reads, while \u00a710.2 item 9 is the unimplemented release:prerelease\n verdict check. The check is removed; a contract test ties every RULES key\n to an implemented item of \u00a710.2 and every finding number to a RULES key;\n- \u00a710.4 item 4 demanded a heredoc in run:, while #723/#730 and their tests\n demand the opposite: commit messages echo line by line into a file,\n comment and summary texts come from code;\n- the ship merge comment, AUTHOR.md, REVIEWER.md and AGENTS.md named only\n the pre-beta document, though since #727 the night reads ship code first;\n- the nightly publication committed \u00abdocs: ship review for nightly \u2026\n \u043f\u0435\u0440\u0435\u0434 \u0431\u0435\u0442\u043e\u0439\u00bb with the beta step's Issue: #696. It now has its own\n subject (the document name), body and Issue: #727; the beta message is\n unchanged.\n\nThe browser-guard inventory note still said growth above 200 fails\nmutation-gate --check; since #699 it is a guideline and --check warns. Its\ncounts now match the inventory: 205, lifecycle 90.\n\nIssue: #748\nUser-Visible: no\nCo-Authored-By: Claude Opus 5.5 \nClaude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd",
+ "subject": "fix(process): reconcile canon and hints with the pipeline after #707\u2013#730 (#748)",
+ "author": {
+ "login": "claude",
+ "name": "Claude",
+ "email": "noreply@anthropic.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T16:49:55.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Opus 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "browser",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "c9bf16dec3ffbfc11f618ff2eabbf8710f61e633",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/c9bf16dec3ffbfc11f618ff2eabbf8710f61e633",
+ "commit_message": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#748)\n\nIssue: #748\nUser-Visible: no\nCo-Authored-By: Claude Opus 5.5 \nClaude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd",
+ "subject": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#748)",
+ "author": {
+ "login": "claude",
+ "name": "Claude",
+ "email": "noreply@anthropic.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T16:49:55.000Z",
+ "attribution_kind": "author + committer + co-author",
+ "coauthors": [
+ {
+ "name": "Claude Opus 5.5",
+ "email": "noreply@anthropic.com"
+ }
+ ],
+ "category": "context",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "ae3db2bacd5c4f4afc9543bbcc5ea046564a9678",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/ae3db2bacd5c4f4afc9543bbcc5ea046564a9678",
+ "commit_message": "docs: review document for #748\n\nIssue: #748\nUser-Visible: no",
+ "subject": "docs: review document for #748",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T16:49:55.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "94bd932153def1a0a93b9580144808ef634dd7a6",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/94bd932153def1a0a93b9580144808ef634dd7a6",
+ "commit_message": "docs: review document for #748\n\nIssue: #748\nUser-Visible: no",
+ "subject": "docs: review document for #748",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T16:49:55.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "134a7029b4951d059f8f170c3ac10c683ceda96b",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/134a7029b4951d059f8f170c3ac10c683ceda96b",
+ "commit_message": "docs: review document for #748\n\nIssue: #748\nUser-Visible: no",
+ "subject": "docs: review document for #748",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T16:49:55.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "0606a3664a6c819a501316f478840d6c3a5b456c",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/0606a3664a6c819a501316f478840d6c3a5b456c",
+ "commit_message": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#748)\n\nIssue: #748\nUser-Visible: no",
+ "subject": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#748)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T16:49:55.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "146da62b0de509cfa15127f3a204c7ce0ecaad30",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/146da62b0de509cfa15127f3a204c7ce0ecaad30",
+ "commit_message": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#775)\n\nIssue: #775\nUser-Visible: no",
+ "subject": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#775)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T16:44:29.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "cdfc6e59dcf80f5b0a924775b95b31e79248744b",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/cdfc6e59dcf80f5b0a924775b95b31e79248744b",
+ "commit_message": "docs: review document for #775\n\nIssue: #775\nUser-Visible: no",
+ "subject": "docs: review document for #775",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T16:44:28.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "09fb02cf15ee423753d4e559a7dc864887206d69",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/09fb02cf15ee423753d4e559a7dc864887206d69",
+ "commit_message": "fix(process): bind Validate resume to the current pending round\n\nIssue: #775\nUser-Visible: no",
+ "subject": "fix(process): bind Validate resume to the current pending round",
+ "author": {
+ "login": "Matysh",
+ "name": "Matysh",
+ "email": "Matunin2005@yandex.ru"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T16:44:28.000Z",
+ "attribution_kind": "committer",
+ "coauthors": [],
+ "category": "context",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ },
+ {
+ "repo": "Matysh/houseplan-card",
+ "repo_url": "https://github.com/Matysh/houseplan-card",
+ "commit_sha": "dd86bf955acfc19a149585f78e1e3fd794e416b9",
+ "commit_url": "https://github.com/Matysh/houseplan-card/commit/dd86bf955acfc19a149585f78e1e3fd794e416b9",
+ "commit_message": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#772)\n\nIssue: #772\nUser-Visible: no",
+ "subject": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#772)",
+ "author": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "committer": {
+ "login": "claude[bot]",
+ "name": "claude[bot]",
+ "email": "209825114+claude[bot]@users.noreply.github.com"
+ },
+ "timestamp": "2026-10-01T16:20:19.000Z",
+ "attribution_kind": "author + committer",
+ "coauthors": [],
+ "category": "docs",
+ "ecosystem": "independent",
+ "official_anthropic": false,
+ "matched_queries": [
+ "committer:claude[bot]"
+ ]
+ }
+ ],
+ "errors": [
+ {
+ "term": "\"Co-authored-by: Claude\"",
+ "status": 403,
+ "error": "You have exceeded a secondary rate limit. Please wait a few minutes before you try again. For more on scraping GitHub and how it may affect your rights, please review our Terms of Service (https://docs.github.com/en/site-policy/github-terms/github-terms-of-service) If you reach out to GitHub Support for help, please include the request ID B8EC:5A8BB:D2F6A9:2B5E6D0:6AC5C4A2."
+ }
+ ]
+}
diff --git a/claude.py b/claude.py
new file mode 100644
index 0000000..863be2c
--- /dev/null
+++ b/claude.py
@@ -0,0 +1,320 @@
+#!/usr/bin/env python3
+"""Build a bounded, deterministic view of Claude-attributed GitHub commits."""
+import argparse
+import datetime as dt
+import html
+import json
+import pathlib
+import re
+import urllib.error
+import urllib.parse
+import urllib.request
+
+ROOT = pathlib.Path(__file__).resolve().parent
+LOOKBACK_DAYS = 30
+MAX_RESULTS_PER_QUERY = 50
+SEARCHES = [
+ "author:claude[bot]",
+ "committer:claude[bot]",
+ "author:claude",
+ "committer:claude",
+ '"Co-authored-by: Claude"',
+]
+COAUTHOR_RE = re.compile(r"(?im)^\s*co-authored-by:\s*(.*?)\s*<([^>]+)>\s*$")
+
+
+class GithubApiError(RuntimeError):
+ def __init__(self, status, detail, headers):
+ super().__init__(detail)
+ self.status = status
+ self.headers = headers
+
+
+def api(url):
+ req = urllib.request.Request(url, headers={
+ "User-Agent": "notplanned-claude-scout/0.1",
+ "Accept": "application/vnd.github+json",
+ "X-GitHub-Api-Version": "2022-11-28",
+ })
+ try:
+ with urllib.request.urlopen(req, timeout=20) as response:
+ return json.load(response), dict(response.headers)
+ except urllib.error.HTTPError as error:
+ try:
+ body = json.load(error)
+ detail = body.get("message", "GitHub API request failed")
+ except Exception:
+ detail = "GitHub API request failed"
+ raise GithubApiError(error.code, detail, dict(error.headers)) from error
+
+
+def esc(value):
+ return html.escape(str(value), quote=True)
+
+
+def parse_date(value):
+ try:
+ return dt.datetime.fromisoformat(value.replace("Z", "+00:00"))
+ except Exception:
+ return dt.datetime.min.replace(tzinfo=dt.timezone.utc)
+
+
+def age_days(value, now):
+ return max(0, (now - parse_date(value)).days)
+
+
+def identity_text(identity):
+ if not identity:
+ return ""
+ return " ".join(str(identity.get(key) or "") for key in ("login", "name", "email")).lower()
+
+
+def is_claude_identity(identity):
+ text = identity_text(identity)
+ return bool(re.search(r"(?:claude\s*\[bot\]|claude\s+code|\bclaude\b)", text))
+
+
+def item_identity(item, role):
+ commit_identity = (item.get("commit") or {}).get(role) or {}
+ account = item.get(role) or {}
+ return {
+ "login": account.get("login") or "",
+ "name": commit_identity.get("name") or "",
+ "email": commit_identity.get("email") or "",
+ }
+
+
+def coauthors(message):
+ return [
+ {"name": name.strip(), "email": email.strip()}
+ for name, email in COAUTHOR_RE.findall(message or "")
+ if is_claude_identity({"name": name, "email": email})
+ ]
+
+
+def category(message):
+ text = (message or "").lower()
+ buckets = [
+ ("browser", ["browser", "playwright", "puppeteer", "chrome", "screenshot"]),
+ ("integration", ["mcp", "api", "webhook", "integration", "plugin", "connector"]),
+ ("workflow", ["workflow", "task", "agent", "command", "hook", "automation"]),
+ ("context", ["context", "memory", "session", "history", "resume", "checkpoint"]),
+ ("interface", ["ui", "ux", "sidebar", "dashboard", "panel", "menu"]),
+ ("testing", ["test", "spec", "fixture", "assert", "coverage"]),
+ ("infra", ["ci", "build", "deploy", "docker", "release", "dependency"]),
+ ("docs", ["readme", "docs", "documentation", "changelog"]),
+ ]
+ for name, words in buckets:
+ if any(word in text for word in words):
+ return name
+ return "implementation"
+
+
+def attribution_kind(author_match, committer_match, coauthor_match):
+ kinds = []
+ if author_match:
+ kinds.append("author")
+ if committer_match:
+ kinds.append("committer")
+ if coauthor_match:
+ kinds.append("co-author")
+ return " + ".join(kinds)
+
+
+def candidate(item, query):
+ commit = item.get("commit") or {}
+ message = commit.get("message") or ""
+ author = item_identity(item, "author")
+ committer = item_identity(item, "committer")
+ claude_coauthors = coauthors(message)
+ author_match = is_claude_identity(author)
+ committer_match = is_claude_identity(committer)
+ coauthor_match = bool(claude_coauthors)
+ if not (author_match or committer_match or coauthor_match):
+ return None
+
+ repository = item.get("repository") or {}
+ repo = repository.get("full_name") or ""
+ if not repo:
+ return None
+ timestamp = (committer.get("date") or author.get("date") or "")
+ # GitHub returns dates inside commit.author/commit.committer, not the flattened identities.
+ timestamp = (commit.get("committer") or {}).get("date") or (commit.get("author") or {}).get("date") or timestamp
+ official = repo.lower().startswith("anthropics/")
+ return {
+ "repo": repo,
+ "repo_url": repository.get("html_url") or f"https://github.com/{repo}",
+ "commit_sha": item.get("sha") or "",
+ "commit_url": item.get("html_url") or "",
+ "commit_message": message[:4000],
+ "subject": (message.splitlines() or ["(no commit message)"])[0][:240],
+ "author": author,
+ "committer": committer,
+ "timestamp": timestamp,
+ "attribution_kind": attribution_kind(author_match, committer_match, coauthor_match),
+ "coauthors": claude_coauthors,
+ "category": category(message),
+ "ecosystem": "official Anthropic" if official else "independent",
+ "official_anthropic": official,
+ "matched_queries": [query],
+ "_author_match": author_match,
+ "_committer_match": committer_match,
+ "_coauthor_match": coauthor_match,
+ }
+
+
+def merge(existing, incoming):
+ for field in ("_author_match", "_committer_match", "_coauthor_match"):
+ existing[field] = existing[field] or incoming[field]
+ for query in incoming["matched_queries"]:
+ if query not in existing["matched_queries"]:
+ existing["matched_queries"].append(query)
+ if not existing["coauthors"] and incoming["coauthors"]:
+ existing["coauthors"] = incoming["coauthors"]
+ existing["attribution_kind"] = attribution_kind(
+ existing["_author_match"], existing["_committer_match"], existing["_coauthor_match"]
+ )
+
+
+def rate_snapshot(headers):
+ if not headers:
+ return {}
+ return {
+ key: headers.get(value)
+ for key, value in (
+ ("limit", "X-RateLimit-Limit"),
+ ("remaining", "X-RateLimit-Remaining"),
+ ("reset", "X-RateLimit-Reset"),
+ )
+ if headers.get(value) is not None
+ }
+
+
+def build():
+ now = dt.datetime.now(dt.timezone.utc)
+ cutoff = (now - dt.timedelta(days=LOOKBACK_DAYS)).date().isoformat()
+ rows = {}
+ errors = []
+ query_log = []
+ last_rate = {}
+ filtered_future = 0
+
+ for term in SEARCHES:
+ today = now.date().isoformat()
+ query = f"{term} committer-date:>={cutoff} committer-date:<={today}"
+ url = "https://api.github.com/search/commits?" + urllib.parse.urlencode({
+ "q": query,
+ "sort": "committer-date",
+ "order": "desc",
+ "per_page": MAX_RESULTS_PER_QUERY,
+ })
+ try:
+ payload, headers = api(url)
+ last_rate = rate_snapshot(headers) or last_rate
+ items = payload.get("items", [])
+ query_log.append({"term": term, "query": query, "returned": len(items), "total_count": payload.get("total_count", 0)})
+ except GithubApiError as error:
+ last_rate = rate_snapshot(error.headers) or last_rate
+ query_log.append({"term": term, "query": query, "returned": 0, "error": str(error)})
+ errors.append({"term": term, "status": error.status, "error": str(error)})
+ continue
+ except Exception as error:
+ query_log.append({"term": term, "query": query, "returned": 0, "error": type(error).__name__})
+ errors.append({"term": term, "error": type(error).__name__})
+ continue
+
+ for item in items:
+ row = candidate(item, term)
+ if not row or not row["commit_sha"]:
+ continue
+ if parse_date(row["timestamp"]) > now:
+ filtered_future += 1
+ continue
+ key = (row["repo"].lower(), row["commit_sha"])
+ if key in rows:
+ merge(rows[key], row)
+ else:
+ rows[key] = row
+
+ candidates = list(rows.values())
+ candidates.sort(key=lambda row: (
+ 1 if not row["official_anthropic"] else 0,
+ row["timestamp"],
+ row["repo"].lower(),
+ row["commit_sha"],
+ ), reverse=True)
+ for row in candidates:
+ for field in ("_author_match", "_committer_match", "_coauthor_match"):
+ del row[field]
+
+ return {
+ "generated_at": now.isoformat(),
+ "source": "https://api.github.com/search/commits",
+ "rules": {
+ "lookback_days": LOOKBACK_DAYS,
+ "max_results_per_query": MAX_RESULTS_PER_QUERY,
+ "dedupe_key": "repo + commit_sha",
+ "searches": SEARCHES,
+ "official_definition": "repo full_name starts with anthropics/",
+ },
+ "api": {"rate_limit": last_rate, "queries": query_log},
+ "filters": {"future_timestamps_excluded": filtered_future},
+ "candidates": candidates,
+ "errors": errors,
+ }
+
+
+def identity_label(identity):
+ return identity.get("login") or identity.get("name") or identity.get("email") or "unknown"
+
+
+def card(row):
+ authors = f"author {identity_label(row['author'])} · committer {identity_label(row['committer'])}"
+ if row["coauthors"]:
+ authors += " · co-author " + ", ".join(x["name"] for x in row["coauthors"])
+ return f"""
+ {esc(row['repo'])}{esc(row['ecosystem'])}
+ {esc(row['subject'])}
+
+
+ {esc(authors)}
+ """
+
+
+def render(out_html, out_json):
+ data = build()
+ independent = [row for row in data["candidates"] if not row["official_anthropic"]]
+ official = [row for row in data["candidates"] if row["official_anthropic"]]
+ template = (ROOT / "claude-template.html").read_text()
+ updated = data["generated_at"][:16].replace("T", " ")
+ page = (template
+ .replace("__UPDATED__", esc(updated))
+ .replace("__COUNT__", str(len(data["candidates"])))
+ .replace("__INDEPENDENT__", str(len(independent)))
+ .replace("__OFFICIAL__", str(len(official)))
+ .replace("__REPOS__", str(len({row["repo"] for row in data["candidates"]})))
+ .replace("__QUERIES__", str(len(data["api"]["queries"])))
+ .replace("__INDEPENDENT_CARDS__", "\n".join(card(row) for row in independent) or 'No independent Claude-attributed commits cleared the bounded search window.')
+ .replace("__OFFICIAL_CARDS__", "\n".join(card(row) for row in official) or 'No official Anthropic commits matched this pass.')
+ )
+ out_html = pathlib.Path(out_html)
+ out_html.parent.mkdir(parents=True, exist_ok=True)
+ out_html.write_text(page)
+ pathlib.Path(out_json).write_text(json.dumps(data, indent=2) + "\n")
+ print(json.dumps({
+ "candidates": len(data["candidates"]),
+ "independent": len(independent),
+ "official": len(official),
+ "repos": len({row["repo"] for row in data["candidates"]}),
+ "queries": len(data["api"]["queries"]),
+ "errors": len(data["errors"]),
+ "out": str(out_html),
+ }))
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--html-out", default=str(ROOT / "claude/index.html"))
+ parser.add_argument("--json-out", default=str(ROOT / "claude.json"))
+ args = parser.parse_args()
+ render(args.html_out, args.json_out)
diff --git a/claude/index.html b/claude/index.html
new file mode 100644
index 0000000..810ec9d
--- /dev/null
+++ b/claude/index.html
@@ -0,0 +1,1966 @@
+
+
+notplanned / claude
+
+
+notplanned / claude
+claude signal.
A bounded, deterministic mirror of public GitHub commits attributed to Claude, Claude Code, or Claude co-authorship. The independent ecosystem stays visible beside official Anthropic work.
+100commits100independent0official39repos5bounded queries
+Updated 2026-10-07 04:03 UTC. Search window: last 30 days. Results are deduped by repository + commit SHA, sorted newest first, and categorized with fixed keyword rules. GitHub search can be incomplete when its public rate limit is low.
+independent ecosystem
Public repositories outside the Anthropic organization: the clearest demand/discovery signal for what people are asking Claude to build.
+ kylesnowschwartz/plugin-devindependent
+ feat: sync plugin-dev with Claude Code v2.1.284-v2.1.289 (#83)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot], Claude Opus 5.5
+
+
+ supabase/supabaseindependent
+ Add Terms of Service v4 (effective October 5, 2026) (#51107)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ supabase/supabaseindependent
+ Add Enterprise Terms v4 (effective October 5, 2026) (#51106)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ leandersabel/solventindependent
+ An administrator's password card can no longer be edited while the change runs (#427)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot]
+
+
+ LiamBMX/joshymc-pluginindependent
+ feat(staff): /sj toggle for private silent join/leave notifications (#1063) (#1064)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot], Claude Opus 5.5
+
+
+ mazyu36/aws-oss-updateindependent
+ feat: add bedrock-agentcore-sdk-python v1.24.1 release article (#92)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot], Claude Opus 4.7
+
+
+ leandersabel/solventindependent
+ Screen readers name each value field on Update values by its holding (#426)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot]
+
+
+ leandersabel/solventindependent
+ Lists of names in a sentence read "A, B and C" (#425)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot]
+
+
+ MarwanMoh11/Gymtrackindependent
+ Port the headless watch-command and widget scripts to Swift Testing and delete them (#40)
+
+
+ author claude[bot] · committer web-flow · co-author Claude Opus 5.5, Claude Opus 5.5, claude[bot], Claude Opus 5.5
+
+
+ rpvessoni-sys/Commodities-Radarindependent
+ leitura 2026-10-07 (#107)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot], Claude Sonnet 5.5
+
+
+ leandersabel/solventindependent
+ A recording no longer says silver or m2 will be filled in after Update (#424)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot]
+
+
+ MarwanMoh11/Gymtrackindependent
+ Give the Library's first open a minute in the UI tests, so a busy CI simulator stops failing them (#38)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot], Claude Opus 5.5
+
+
+ MarwanMoh11/Gymtrackindependent
+ Keep the unit-test host's window empty, so RootView's launch work never resets what a test set up (#37)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot], Claude Opus 5.5
+
+
+ MarwanMoh11/Gymtrackindependent
+ Send a Start from the watch live instead of behind a queued request for the mirror (#31)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot], Claude Opus 5.5
+
+
+ leandersabel/solventindependent
+ A typed price on a line nobody publishes a price for no longer says there is no price (#421)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot]
+
+
+ leandersabel/solventindependent
+ Screen readers name the Password and Confirm password fields when registering (#420)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot]
+
+
+ electron/electronindependent
+ test: run WebContentsView focusOnNavigation and shell.openExternal specs serially (#54662)
+
+
+ author claude[bot] · committer web-flow · co-author Claude Opus 5.5 (1M context), Claude Opus 5.5 (1M context), Claude
+
+
+ leandersabel/solventindependent
+ Product description says a price's source is shown on its recording, not on a holding's list of values (#419)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot]
+
+
+ Comfy-Org/ComfyUI_frontendindependent
+ feat(website): add CTAs and footer link to Nano Banana 2.1 page (#20370)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ leandersabel/solventindependent
+ A used invite shows the day it was used and links its username to Accounts (#418)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot]
+
+
+ Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.ioindependent
+ Note pictures (#620): suite reports a refused insert as a check, not a crash
+
+
+ author claude[bot] · committer web-flow · co-author Claude Sonnet 5.5
+
+
+ Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.ioindependent
+ Note pictures (#620): Storage Rules candidate, browser suite, owner-only fetch
+
+
+ author claude[bot] · committer web-flow · co-author Claude Sonnet 5.5
+
+
+ Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.ioindependent
+ Note pictures (#620): resize + upload module, Storage stub, 🖼 button, pictures shown when a Note is read
+
+
+ author claude[bot] · committer web-flow · co-author Claude Sonnet 5.5
+
+
+ Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.ioindependent
+ Note pictures (#620): sanitiser keeps data-mmsa-image paths only; path + step-down module; pure checks
+
+
+ author claude[bot] · committer web-flow · co-author Claude Sonnet 5.5
+
+
+ electron/node-abiindependent
+ ci: set cache-mode on release workflows (#306)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ electron/node-minidumpindependent
+ ci: set cache-mode on release workflows (#163)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ electron/github-app-authindependent
+ ci: set cache-mode on release workflows (#66)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ electron/symbolicate-macindependent
+ ci: set cache-mode on release workflows (#121)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ electron/chromedriverindependent
+ ci: set cache-mode on release workflows (#193)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ electron/devtronindependent
+ ci: set cache-mode on release workflows (#378)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ electron/rebuildindependent
+ ci: set cache-mode on release workflows (#1307)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ electron/tropindependent
+ feat: request original approvers on manual backports of claude[bot] PRs (#437)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ electron/rebuildindependent
+ fix: include target platform in .forge-meta rebuild marker (#1319)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ leandersabel/solventindependent
+ Adding a unit shows Rate lookup, held at Entered by hand with the reason (#417)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot]
+
+
+ leandersabel/solventindependent
+ Adding a metal is refused unless its code names a weight (#416)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot]
+
+
+ electron/windows-installerindependent
+ ci: set cache-mode on release workflows (#616)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ electron/mksnapshotindependent
+ ci: set cache-mode on release workflows (#179)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ electron/typescript-definitionsindependent
+ ci: set cache-mode on release workflows (#357)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ electron/windows-signindependent
+ ci: set cache-mode on release workflows (#124)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ electron/osx-signindependent
+ ci: set cache-mode on release workflows (#449)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ electron/fusesindependent
+ ci: set cache-mode on release workflows (#136)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ electron/build-toolsindependent
+ fix: include clang-tidy in siso clang toolchain subtree (#910)
+
+
+ author claude[bot] · committer web-flow · co-author Claude
+
+
+ Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.ioindependent
+ Link previews: put the menu item last so existing menu positions do not move (#619)
+
+
+ author claude[bot] · committer web-flow · co-author Claude Sonnet 5.5
+
+
+ leandersabel/solventindependent
+ Typing a price where none is stored saves without a confirmation, and the confirmation names only prices that move a holding (#413)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot]
+
+
+ bamr87/lifehacker.devindependent
+ content(doc): trim over-length SEO description in two-locks-and-one-is-a-decoy (#688)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot], Claude Opus 4.8
+
+
+ Revokeeee/MyRevoke2.0-AIindependent
+ build: add stage-editor.ps1 to assemble a self-contained editor folder
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Opus 5
+
+
+ JW-Incorporated/swift2independent
+ a11y: solid accent fill for LockedPayoff's era chip (#3663) (#5203)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot], Claude Fable 5
+
+
+ JW-Incorporated/swift2independent
+ test: derive heroVideoFor's promoted set from the vault, not a hardcoded 11 (#5252)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot], Claude Fable 5
+
+
+ jjhoncv/vitrinaindependent
+ feat(#4): título SEO y sitemap (#15)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot], Claude Sonnet 5.5
+
+
+ jjhoncv/vitrinaindependent
+ feat(#3): landing por producto y página de no encontrado (#14)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot], Claude Sonnet 5.5
+
+
+ jjhoncv/vitrinaindependent
+ feat(#2): portada con los productos de la hoja (#12)
+
+
+ author claude[bot] · committer web-flow · co-author claude[bot], Claude Sonnet 5.5
+
+
+ AlperenGuntekin/text-expansion-calculatorindependent
+ docs(readme): refresh topics + shotlingo cross-links
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5.5
+
+
+ AlperenGuntekin/shotlingo-text-expansionindependent
+ docs(readme): refresh topics + shotlingo cross-links
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5.5
+
+
+ AlperenGuntekin/shotlingo-screenshot-sizesindependent
+ docs(readme): refresh topics + shotlingo cross-links
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5.5
+
+
+ AlperenGuntekin/shotlingo-locale-codesindependent
+ docs(readme): refresh topics + shotlingo cross-links
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5.5
+
+
+ bamr87/it-journeyindependent
+ fix(deps): floor github-pages at >= 232 so Bundler cannot walk it back
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Opus 5.5
+
+
+ bamr87/it-journeyindependent
+ fix(deps): stop committing Gemfile.lock (fleet never-commit policy)
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Opus 5.5
+
+
+ Reservaste/frontendindependent
+ feat: contacto (email/teléfono) del cliente en la ficha del admin (ADR-0050, Issue #5)
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5.5
+
+
+ Reservaste/backendindependent
+ feat: contacto (email/teléfono) del cliente en la ficha del admin (ADR-0050, Issue #5)
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5.5
+
+
+ Reservaste/frontendindependent
+ Mostrar pedidos de cambio de plan en Pagos y alertar si falla la lectura (Issue #6)
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5.5
+
+
+ Revokeeee/MyRevoke2.0-AIindependent
+ Separate user projects from the editor's own files
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Opus 5
+
+
+ ag-grid/ag-chartsindependent
+ Refresh yarn.lock after the automated version bump
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Revokeeee/MyRevoke2.0-AIindependent
+ Extract UUID generation into a seedable UuidGenerator class
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Opus 5
+
+
+ Revokeeee/MyRevoke2.0-AIindependent
+ Add unit tests for the EventSystem module
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Opus 5
+
+
+ Matysh/houseplan-cardindependent
+ docs: accept derived artifacts on dev for v1.79.0-beta.7
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs: accept derived artifacts on dev for v1.79.0-beta.5
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs(reviews): manual code review of the pending-round witness (#781)
+
+
+ author Codex · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ test(process): поймать оживление прошлого запроса (#781)
+
+
+ author Matysh · committer claude[bot]
+
+
+ reecejunior/techzimintindependent
+ Log 2026-10-02 growth/product strategy notes
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5
+
+
+ reecejunior/techzimintindependent
+ Fix raw ISO timestamp shown on reviewer profile review dates
+
+
+ author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5
+
+
+ Matysh/houseplan-cardindependent
+ docs: review document for #780
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs(reviews): rebuild the review index after rebase onto dev
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ fix(process): prepare and the usage step run pipeline scripts from one pinned dev snapshot (#765)
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs(reviews): independent code review of pipeline snapshot (#765)
+
+
+ author Matysh · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs: review document for #780
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs(reviews): индекс после сдвига каталога (#744)
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs: review document for #744
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ fix: keep warm editor adoption subordinate to user navigation (#762)
+
+
+ author Matysh · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ test: await warm navigation request before checking its authority (#762)
+
+
+ author Matysh · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs(reviews): индекс после сдвига каталога (#762)
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs: review document for #762
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ refactor: keep room warm-draft construction in the lazy editor (#762)
+
+
+ author Matysh · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs: review document for #662
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs: review document for #662
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs(reviews): индекс после сдвига каталога (#740)
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs: review document for #740
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ perf(stairs): draw all treads of a stair as one path (#740)
+
+
+ author claude · committer claude[bot] · co-author Claude Opus 5.5
+
+
+ Matysh/houseplan-cardindependent
+ docs(screenshots): source fingerprint for #740 on the current dev — all frames pixel-identical
+
+
+ author claude · committer claude[bot] · co-author Claude Opus 5.5
+
+
+ Matysh/houseplan-cardindependent
+ docs: review document for #740
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs: review document for #762
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ fix(process): reconcile canon and hints with the pipeline after #707–#730 (#748)
+
+
+ author claude · committer claude[bot] · co-author Claude Opus 5.5
+
+
+ Matysh/houseplan-cardindependent
+ docs(reviews): индекс после сдвига каталога (#748)
+
+
+ author claude · committer claude[bot] · co-author Claude Opus 5.5
+
+
+ Matysh/houseplan-cardindependent
+ docs: review document for #748
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs: review document for #748
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs: review document for #748
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs(reviews): индекс после сдвига каталога (#748)
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs(reviews): индекс после сдвига каталога (#775)
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs: review document for #775
+
+
+ author claude[bot] · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ fix(process): bind Validate resume to the current pending round
+
+
+ author Matysh · committer claude[bot]
+
+
+ Matysh/houseplan-cardindependent
+ docs(reviews): индекс после сдвига каталога (#772)
+
+
+ author claude[bot] · committer claude[bot]
+
+official Anthropic
Anthropic-owned repositories are separated so first-party implementation work does not obscure independent activity.
No official Anthropic commits matched this pass.
+
+
diff --git a/index.html b/index.html
index 926cc07..695ee86 100644
--- a/index.html
+++ b/index.html
@@ -49,7 +49,7 @@ footer{padding:0 0 44px;display:flex;justify-content:space-between;gap:24px;colo
notplanned
- a yolopreneur game
+ claude signal · a yolopreneur game
@@ -92,4 +92,4 @@ footer{padding:0 0 44px;display:flex;justify-content:space-between;gap:24px;colo