)]}'
{
  "log": [
    {
      "commit": "da98b6bcb26ba8bc089f8c2ebc0daea8a79f4d7d",
      "tree": "25a266343fbef30ef696dbff5f8d9b2474ca9b4f",
      "parents": [
        "a844a43f151f73b255b6a136712ecfbb00e9baab"
      ],
      "author": {
        "name": "Sander Striker",
        "email": "striker@apache.org",
        "time": "Thu Oct 15 14:29:41 2026 +0200"
      },
      "committer": {
        "name": "Sander Striker",
        "email": "striker@apache.org",
        "time": "Thu Oct 15 14:29:41 2026 +0200"
      },
      "message": "Date the invitation demo\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_013JJPPzhmjbXb5qnya7g1bb\n"
    },
    {
      "commit": "a844a43f151f73b255b6a136712ecfbb00e9baab",
      "tree": "ae517e0fe9ea663e6468a8eae107a2db8ac7d643",
      "parents": [
        "413492a4959bf9153721ed50a5cbea0485fefb77"
      ],
      "author": {
        "name": "Sander Striker",
        "email": "striker@apache.org",
        "time": "Thu Oct 15 13:58:13 2026 +0200"
      },
      "committer": {
        "name": "Sander Striker",
        "email": "striker@apache.org",
        "time": "Thu Oct 15 13:58:13 2026 +0200"
      },
      "message": "Verify agreement text, and record four decisions\n\nF-29: the extracted text is compared clause by clause with the\ncanonical ICLA, CCLA and grant texts, so a document is filed only as\nwhat it actually is. Decisions from the first review: access is\nrestricted to the secretarial team (R-1), OCR runs locally with no\nnetwork ingress or egress (N-4), DocuSign starts with certificate\nverification (F-34), and the invitation flow lives in the roster tool\nwhile the submission form lives here (section 3.13 restructured).\nSection 8 now lists the decisions; section 9 keeps the remaining\nopen questions under their original numbers.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_013JJPPzhmjbXb5qnya7g1bb\n"
    },
    {
      "commit": "413492a4959bf9153721ed50a5cbea0485fefb77",
      "tree": "b91a024975a7ac86fc3476faebfadc778cdaea8a",
      "parents": [
        "6495b6624a90b6c1c999bac98f7cf8f0e4c41bdb"
      ],
      "author": {
        "name": "Sander Striker",
        "email": "striker@apache.org",
        "time": "Thu Oct 15 13:19:11 2026 +0200"
      },
      "committer": {
        "name": "Sander Striker",
        "email": "striker@apache.org",
        "time": "Thu Oct 15 13:19:11 2026 +0200"
      },
      "message": "Make the project on the ICLA form a generated choice field\n\nF-102: the \"notify project\" field becomes a combo box generated from\ncommittee-info.txt and the podling list, regenerated when committees\nare established or terminated, with stable export values, a version\nfield, and free text still allowed for stale copies. F-111 uses the\nproject as a third matching key against invitations.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_013JJPPzhmjbXb5qnya7g1bb\n"
    },
    {
      "commit": "6495b6624a90b6c1c999bac98f7cf8f0e4c41bdb",
      "tree": "3037343da576babe70454ba978cc9c472eaf4473",
      "parents": [
        "3498bb6ade48c8c6b3ed9ddd93b02321c3b1ca82"
      ],
      "author": {
        "name": "Sander Striker",
        "email": "striker@apache.org",
        "time": "Thu Oct 15 13:11:45 2026 +0200"
      },
      "committer": {
        "name": "Sander Striker",
        "email": "striker@apache.org",
        "time": "Thu Oct 15 13:11:45 2026 +0200"
      },
      "message": "Describe the submission, invitation, account and membership chain\n\nWORKBENCH.md gains section 14 on what surrounds the workbench: the\nemail-only submission path on apache.org, the unfinished invitation\ndemo at www/project/icla, the two routes from a filed ICLA to an\naccount request (filing-time and the acreq helper), and how membership\napplications are checked against memapp-received.txt.\n\nREQUIREMENTS.md changes accordingly: the tool stops writing LDAP and\nemits record-change events (F-64), membership applications are matched\nto the elected list (F-66), the submitter form is specified as new\nrather than assumed to exist (F-101), and a new section 3.13 ties a\nproject\u0027s invitation to the expected ICLA and a separate account\nrequest step (F-110 to F-116). Open questions 7 and 8 cover where the\ninvitation flow lives and the shared event transport.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_013JJPPzhmjbXb5qnya7g1bb\n"
    },
    {
      "commit": "3498bb6ade48c8c6b3ed9ddd93b02321c3b1ca82",
      "tree": "d502d004ca0db86fa9ea30a5435213ed19f1a3fb",
      "parents": [
        "c47f46481810d9f20802f6f5059149739d4abc4e"
      ],
      "author": {
        "name": "Sander Striker",
        "email": "striker@apache.org",
        "time": "Wed Oct 14 09:25:29 2026 +0200"
      },
      "committer": {
        "name": "Sander Striker",
        "email": "striker@apache.org",
        "time": "Wed Oct 14 09:25:29 2026 +0200"
      },
      "message": "Add analysis of the current Whimsy Secretary Workbench\n\nWORKBENCH.md describes the tool being replaced: architecture, data\nmodel, work queue, filing actions and their side effects, attachment\nediting, rejection handling, ICLA parsing, HTTP routes, email\ncomposition, operations, and the requirements gathered from the\nSecretary. It is the baseline for the \"preserve\" requirements in\nREQUIREMENTS.md, which now points at it locally.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_013JJPPzhmjbXb5qnya7g1bb\n"
    },
    {
      "commit": "c47f46481810d9f20802f6f5059149739d4abc4e",
      "tree": "a17c644f0263586e12e91152bbcc17c5b6a1d57f",
      "parents": [],
      "author": {
        "name": "Sander Striker",
        "email": "striker@apache.org",
        "time": "Wed Oct 14 09:21:53 2026 +0200"
      },
      "committer": {
        "name": "Sander Striker",
        "email": "striker@apache.org",
        "time": "Wed Oct 14 09:21:53 2026 +0200"
      },
      "message": "Add requirements for the Secretary Workbench replacement\n\nCaptures functional and non-functional requirements for replacing the\nWhimsy Secretary Workbench with a tool shaped like the Board Agenda Tool\n(Python/Quart, Svelte islands, ASF OAuth, SVN as source of record).\nIncludes the Secretary\u0027s requests for automated normalisation,\nclassification and signature verification, the filing workflows with\ntheir side effects, a technology table, data model sketch, migration\nplan and open questions.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_013JJPPzhmjbXb5qnya7g1bb\n"
    }
  ]
}
