{"count":126,"permits":[{"hash":"2820f43b1410e6a2c12d892edcc0cc92345dc0c9d3706b7ad9bf8766b4f57031","short_code":"PO-2026-0066","title":"PERMIT PO-2026-0066 — token grant for Claude Code session 610e3cb0 (agent peer-equivalent at espadvisorygroup) — TEMPORARY, expires 2026-05-27","kind":"token","principal":"claude_session_610e3cb0","scope_tag":"espadvisorygroup","tier":"peer","issued_at":"2026-05-20T01:25:00+00:00","expires_at":"2026-05-27T01:25:00+00:00","surface":"espadvisorygroup.com","chain_hash":"0badc00d8fc501999cfd4a3eeb604d6f124099da1fc8c95554be1a0111d5a29a","conditions":[["TOKEN_SHA256","5e4af97538f03e91e6e1417af4926ede0ec2566850892df953a6cf6d498fa47b"],["USERNAME","claude_session_610e3cb0"],["DISPLAY_NAME","Claude Code (opus-4-7[1m]) session 610e3cb0"],["RUNG","peer"],["PRINCIPAL_KIND","agent"],["CHAIN_BLOCK","d7148585"],["TEMPORARY",true],["EXPIRES_AT","2026-05-27T01:25:00+00:00"],["AGENT_CLASS","Claude Code"],["AGENT_MODEL","claude-opus-4-7[1m]"],["AGENT_SESSION_ID","610e3cb0-2eab-4e33-826c-329579cd2bcb"]],"hash_short":"2820f43b1410"},{"hash":"2d395e8f88d44a457c913f2da612a4bbc86491ccdfa7593b7c535c7a4e8c8dbf","short_code":"PERMIT-TEAM-1779512810","title":"ledib in puso team","kind":"team_membership","principal":"ledib","scope_tag":"puso","tier":"member","issued_at":"2026-05-23T05:06:50.623862+00:00","expires_at":null,"surface":"package","chain_hash":null,"conditions":[],"hash_short":"2d395e8f88d4"},{"hash":"c4225c1d258a2c4f90e858f266855d0ac28ffb81bc4eed93d45cc74b0b41c687","short_code":"PERMIT-ROLE-1779512810","title":"ledib as reviewer in puso","kind":"role_assignment","principal":"ledib","scope_tag":"puso:reviewer","tier":"reviewer","issued_at":"2026-05-23T05:06:50.623932+00:00","expires_at":null,"surface":"package","chain_hash":null,"conditions":[["PARENT","2d395e8f88d44a457c913f2da612a4bbc86491ccdfa7593b7c535c7a4e8c8dbf"]],"hash_short":"c4225c1d258a"},{"hash":"c155b621956d3d164b5bab917a87d51f2ef5fdcf5bf907a8caca651c231d4658","short_code":"2026-05-21T01:53:37.651761+00:00","title":null,"kind":"capability","principal":"carol","scope_tag":"demo_team","tier":"peer","issued_at":"2026-05-21T01:53:37.651776+00:00","expires_at":null,"surface":null,"chain_hash":null,"conditions":[["SANDBOX",false],["GRANTS","announce"]],"hash_short":"c155b621956d"},{"hash":"90974d2fd23ac7465925ae5aae3645a5071aa1a687176fe513078a8e5ca33af3","short_code":"2026-05-21T01:49:00.740958+00:00","title":null,"kind":"capability","principal":"bob","scope_tag":"demo_team","tier":"peer","issued_at":"2026-05-21T01:49:00.740973+00:00","expires_at":null,"surface":null,"chain_hash":null,"conditions":[["SANDBOX",false],["GRANTS","announce"],["PARENT","da03d5cea385a51ce71e680d0912764158219f62feedd452d11475c463b67d55"]],"hash_short":"90974d2fd23a"},{"hash":"da03d5cea385a51ce71e680d0912764158219f62feedd452d11475c463b67d55","short_code":"2026-05-21T01:49:00.482134+00:00","title":null,"kind":"capability","principal":"demo_team","scope_tag":"demo_team","tier":"peer","issued_at":"2026-05-21T01:49:00.482156+00:00","expires_at":null,"surface":null,"chain_hash":null,"conditions":[["SANDBOX",false],["GRANTS","lead"]],"hash_short":"da03d5cea385"},{"hash":"cdc0891366a17cb4fbd2a22278cde47863862173d7e25f639b5a22e51301b022","short_code":"2026-05-21T00:12:36.994657+00:00","title":null,"kind":"revocation","principal":"system","scope_tag":"killswitch","tier":"architect","issued_at":"2026-05-21T00:12:36.994672+00:00","expires_at":null,"surface":null,"chain_hash":null,"conditions":[["REVOKES","7a93b40305e537a8"]],"hash_short":"cdc0891366a1"},{"hash":"257249436a760449519abb7d17d2e476de824897426e73c5072fcce7a0203969","short_code":"2026-05-21T00:12:35.988544+00:00","title":null,"kind":"capability","principal":"doctortheisen","scope_tag":"demo_team","tier":"peer","issued_at":"2026-05-21T00:12:35.988560+00:00","expires_at":null,"surface":null,"chain_hash":null,"conditions":[["SANDBOX",false],["GRANTS","announce"]],"hash_short":"257249436a76"},{"hash":"fbf539029a18bd00af508f136e9ed6c11051dab7acd9e28f18e55582d6b3a4b8","short_code":"2026-05-21T00:12:35.690525+00:00","title":null,"kind":"capability","principal":"alice","scope_tag":"demo_team","tier":"peer","issued_at":"2026-05-21T00:12:35.690540+00:00","expires_at":null,"surface":null,"chain_hash":null,"conditions":[["SANDBOX",true],["GRANTS","announce"]],"hash_short":"fbf539029a18"},{"hash":"7a93b40305e537a8123542fd36b31518d0036f12a40943e94e86782a39965868","short_code":"2026-05-21T00:12:35.384330+00:00","title":null,"kind":"capability","principal":"alice","scope_tag":"demo_team","tier":"peer","issued_at":"2026-05-21T00:12:35.384355+00:00","expires_at":null,"surface":null,"chain_hash":null,"conditions":[["SANDBOX",false],["GRANTS","announce"]],"hash_short":"7a93b40305e5"},{"hash":"7dff723b795f33a77b94a630c7fcd63c9e11ecd44ae10b379b3e3ca75764b17c","short_code":"2026-05-21T00:10:37.158982+00:00","title":null,"kind":"revocation","principal":"system","scope_tag":"killswitch","tier":"architect","issued_at":"2026-05-21T00:10:37.158998+00:00","expires_at":null,"surface":null,"chain_hash":null,"conditions":[["REVOKES","b42aa1873c6fb081"]],"hash_short":"7dff723b795f"},{"hash":"063c85023896564d1430f6c58c1d530f237252ca2243f395c0668c0c384177ff","short_code":"2026-05-21T00:10:36.092681+00:00","title":null,"kind":"capability","principal":"doctortheisen","scope_tag":"demo_team","tier":"peer","issued_at":"2026-05-21T00:10:36.092696+00:00","expires_at":null,"surface":null,"chain_hash":null,"conditions":[["SANDBOX",false],["GRANTS","announce_to_team"],["NOTE","architect-as-team-member"]],"hash_short":"063c85023896"},{"hash":"eb79c42095c46b5f5d6c71b86279dd02686d815d562b6d78f2d6d4c31c1b0ee2","short_code":"2026-05-21T00:10:35.775762+00:00","title":null,"kind":"capability","principal":"alice","scope_tag":"demo_team","tier":"peer","issued_at":"2026-05-21T00:10:35.775777+00:00","expires_at":null,"surface":null,"chain_hash":null,"conditions":[["SANDBOX",true],["GRANTS","announce_to_team"]],"hash_short":"eb79c42095c4"},{"hash":"b42aa1873c6fb081a04d87527def97a4ade2353ebc67f781d8eddd5de3a9cdd6","short_code":"2026-05-21T00:10:35.462911+00:00","title":null,"kind":"capability","principal":"alice","scope_tag":"demo_team","tier":"peer","issued_at":"2026-05-21T00:10:35.462936+00:00","expires_at":null,"surface":null,"chain_hash":null,"conditions":[["SANDBOX",false],["GRANTS","announce_to_team"]],"hash_short":"b42aa1873c6f"},{"hash":"55496b27e527010efe27ccc88bb7e8cc792387e7f5a391be9066f700693a6bc3","short_code":"2026-05-21T00:10:15.914798+00:00","title":null,"kind":"token","principal":"doctortheisen","scope_tag":"espadvisorygroup","tier":"architect","issued_at":"2026-05-21T00:10:15.914798+00:00","expires_at":null,"surface":null,"chain_hash":null,"conditions":[["SANDBOX",false],["NOTE","bootstrap for v2 demo"]],"hash_short":"55496b27e527"},{"hash":"bbd682208383dc9644bd56305cb4c45c92117fcd8c5a5aaef8340ed71c4d39aa","short_code":"2026-05-20T20:21:16+00:00","title":"PERMIT — LEADER_CAPABILITY_PACKAGE for espadvisorygroup (rename_team + announce_to_team)","kind":"capability_package","principal":"doctortheisen","scope_tag":"espadvisorygroup_leader_capabilities","tier":"architect","issued_at":"2026-05-20T20:21:16+00:00","expires_at":"","surface":"espadvisorygroup.com","chain_hash":"72b14546b54338f6196681a564809851aefb770628bb5e92fdf60fde4bae6048","conditions":[["VERSION","v1"],["CAPABILITIES",[[["NAME","rename_team"],["UI_HTML_FRAGMENT","<div class=\"composer cap-pkg-composer\" id=\"cap-rename-team\" data-capability=\"rename_team\">\n  <h3>Rename team</h3>\n  <p class=\"current\">Current name: <span class=\"current-name-slot\">—</span></p>\n  <label>proposed new name</label>\n  <input type=\"text\" maxlength=\"120\" class=\"new-name-input\" placeholder=\"e.g. Pioneers\">\n  <button class=\"compose-btn\" type=\"button\">compose rename request</button>\n  <div class=\"preview\"></div>\n\n  <!-- MINT_HOOK: annotate-to-mint affordance (Lightsail v_permit INSERT, no YubiKey) -->\n  <button class=\"annotate-btn\" type=\"button\" data-mint-hook=\"onclick\" data-capability=\"rename_team\" title=\"annotate to mint\">✎ annotate</button>\n</div>\n"],["UI_JS_FRAGMENT","// MINT_HOOK [rename_team]: this onclick should mint-as-annotation via\n// direct INSERT into v_permit on Lightsail. No YubiKey at this stage.\n// User-supplied annotation text rides in the new row's conditions_json.\n// Operator: top of the permit-is-List refactor (priority 2).\n(function(){\n  const root = document.getElementById('cap-rename-team');\n  if(!root) return;\n  const v = window._viewer || {};\n  const team = window._team || {};\n  const currentName = team.name;\n  const slot = root.querySelector('.current-name-slot');\n  if(Array.isArray(currentName) && currentName.length === 0){\n    slot.innerHTML = '<span class=\"team__hole\">unfilled</span>';\n  } else {\n    slot.textContent = currentName || '—';\n  }\n  root.querySelector('.compose-btn').addEventListener('click', () => {\n    const input = root.querySelector('.new-name-input');\n    const newVal = input.value.trim();\n    if(!newVal){ alert('enter a proposed name'); return; }\n    const cmd = 'python3 ~/.ko/services/espadvisorygroup/architect_execute.py rename_team --actor ' + v.principal + ' --new-name ' + JSON.stringify(newVal);\n    const payload = {\n      type:'CAPABILITY_REQUEST',\n      capability:'rename_team',\n      scope_tag:'espadvisorygroup',\n      field:'NAME',\n      new_value:newVal,\n      requested_by:{principal:v.principal, display_name:v.displayName, tier:v.tier, permit_short_code:v.permit},\n      composed_at: new Date().toISOString(),\n      architect_command: cmd\n    };\n    const previewText = JSON.stringify(payload, null, 2);\n    const mailto = window._buildMailto('Rename request — ' + newVal, previewText);\n    const preview = root.querySelector('.preview');\n    preview.innerHTML = '<span class=\"preview-label\">request preview</span>\\n' + window._esc(previewText) +\n      '<div style=\"margin-top:14px\"><a class=\"mailto-btn\" href=\"' + mailto + '\">✉ send to architect</a></div>';\n    preview.classList.add('show');\n  });\n})();\n"],["SERVER_ACTION","architect_execute.py rename_team"],["DOC","Compose a request to rename the team's display name. The leader composes; the architect executes via YubiKey-attested ceremony. Latest-by-DESC on the NAME typed_hole wins."],["PERMITTED_RUNGS",["project_lead","architect"]],["INPUT_SCHEMA",[["new_name","text","Proposed team name (display)",120]]],["ANNOUNCEMENT_TEMPLATE","<actor_display> as team <actor_tier> renamed the group to \"<new_name>\"."]],[["NAME","announce_to_team"],["UI_HTML_FRAGMENT","<div class=\"composer cap-pkg-composer\" id=\"cap-announce-team\" data-capability=\"announce_to_team\">\n  <h3>Announce to team</h3>\n  <label>subject</label>\n  <input type=\"text\" maxlength=\"160\" class=\"ann-subject-input\" placeholder=\"brief subject line\">\n  <label>body</label>\n  <textarea class=\"ann-body-input\" placeholder=\"message body — what you would like the team to know\"></textarea>\n  <p class=\"recipients\">recipients: <em class=\"recipients-slot\">(loading)</em></p>\n  <button class=\"compose-btn\" type=\"button\">compose announcement request</button>\n  <div class=\"preview\"></div>\n\n  <!-- MINT_HOOK: annotate-to-mint affordance (Lightsail v_permit INSERT, no YubiKey) -->\n  <button class=\"annotate-btn\" type=\"button\" data-mint-hook=\"onclick\" data-capability=\"announce_to_team\" title=\"annotate to mint\">✎ annotate</button>\n</div>\n"],["UI_JS_FRAGMENT","// MINT_HOOK [announce_to_team]: this onclick should mint-as-annotation via\n// direct INSERT into v_permit on Lightsail. No YubiKey at this stage.\n// User-supplied annotation text rides in the new row's conditions_json.\n// Operator: top of the permit-is-List refactor (priority 2).\n(function(){\n  const root = document.getElementById('cap-announce-team');\n  if(!root) return;\n  const v = window._viewer || {};\n  const team = window._team || {};\n  const members = team.members || [];\n  const slot = root.querySelector('.recipients-slot');\n  if(members.length === 0){\n    slot.textContent = '(team members not loaded)';\n  } else {\n    const tags = members.map(m => {\n      const g = (k) => (m.find && m.find(x => Array.isArray(x) && x[0]===k) || [])[1] || '';\n      return g('display_name') || g('principal');\n    });\n    slot.textContent = '(' + members.length + ') ' + tags.join(', ');\n  }\n  root.querySelector('.compose-btn').addEventListener('click', () => {\n    const subj = root.querySelector('.ann-subject-input').value.trim();\n    const body = root.querySelector('.ann-body-input').value.trim();\n    if(!subj || !body){ alert('subject and body both required'); return; }\n    const recips = members.map(m => {\n      const g = (k) => (m.find && m.find(x => Array.isArray(x) && x[0]===k) || [])[1] || '';\n      return {principal:g('principal'), display_name:g('display_name'), rung:g('rung')};\n    });\n    const cmd = 'python3 ~/.ko/services/espadvisorygroup/architect_execute.py announce_to_team --actor ' + v.principal +\n                ' --subject ' + JSON.stringify(subj) + ' --body ' + JSON.stringify(body);\n    const payload = {\n      type:'CAPABILITY_REQUEST',\n      capability:'announce_to_team',\n      scope_tag:'espadvisorygroup',\n      subject: subj,\n      body: body,\n      recipients: recips,\n      requested_by:{principal:v.principal, display_name:v.displayName, tier:v.tier, permit_short_code:v.permit},\n      composed_at: new Date().toISOString(),\n      architect_command: cmd\n    };\n    const previewText = JSON.stringify(payload, null, 2);\n    const mailto = window._buildMailto('Announcement request — ' + subj, previewText);\n    const preview = root.querySelector('.preview');\n    preview.innerHTML = '<span class=\"preview-label\">request preview</span>\\n' + window._esc(previewText) +\n      '<div style=\"margin-top:14px\"><a class=\"mailto-btn\" href=\"' + mailto + '\">✉ send to architect</a></div>';\n    preview.classList.add('show');\n  });\n})();\n"],["SERVER_ACTION","architect_execute.py announce_to_team"],["DOC","Compose an announcement to the team. INSERTs to v_announcements + rebuilds /pages/announcements_feed.json + dispatches email per current mode toggles."],["PERMITTED_RUNGS",["project_lead","architect"]],["INPUT_SCHEMA",[["subject","text","Subject line",160],["body","textarea","Message body",4000]]],["ANNOUNCEMENT_TEMPLATE",null]]]],["MODE_DEPENDENCY_SCOPE","espadvisorygroup"],["DESCRIPTION","Capability package for project_lead/architect rungs at espadvisorygroup. Each entry in CAPABILITIES is a List of [NAME, UI_HTML_FRAGMENT, UI_JS_FRAGMENT, SERVER_ACTION, DOC, PERMITTED_RUNGS, INPUT_SCHEMA, ANNOUNCEMENT_TEMPLATE]. The SPA fetches this package after token validation, filters entries by PERMITTED_RUNGS intersection with viewer rung, and inlines UI_HTML_FRAGMENT + evaluates UI_JS_FRAGMENT. Without this permit, the leader area is empty in the SPA — the toggle is the permit's presence at view time."]],"hash_short":"bbd682208383"},{"hash":"bc8da9326284ed5d84d6fa6bdde3a147207ee3da773c2adebb990b3d9f1ff195","short_code":"2026-05-20T16:15:21+00:00","title":"PERMIT — LEADER_CAPABILITY_PACKAGE for espadvisorygroup (rename_team + announce_to_team)","kind":"capability_package","principal":"doctortheisen","scope_tag":"espadvisorygroup_leader_capabilities","tier":"architect","issued_at":"2026-05-20T16:15:21+00:00","expires_at":"","surface":"espadvisorygroup.com","chain_hash":"72b14546b54338f6196681a564809851aefb770628bb5e92fdf60fde4bae6048","conditions":[["VERSION","v1"],["CAPABILITIES",[[["NAME","rename_team"],["UI_HTML_FRAGMENT","<div class=\"composer cap-pkg-composer\" id=\"cap-rename-team\" data-capability=\"rename_team\">\n  <h3>Rename team</h3>\n  <p class=\"current\">Current name: <span class=\"current-name-slot\">—</span></p>\n  <label>proposed new name</label>\n  <input type=\"text\" maxlength=\"120\" class=\"new-name-input\" placeholder=\"e.g. Pioneers\">\n  <button class=\"compose-btn\" type=\"button\">compose rename request</button>\n  <div class=\"preview\"></div>\n</div>\n"],["UI_JS_FRAGMENT","(function(){\n  const root = document.getElementById('cap-rename-team');\n  if(!root) return;\n  const v = window._viewer || {};\n  const team = window._team || {};\n  const currentName = team.name;\n  const slot = root.querySelector('.current-name-slot');\n  if(Array.isArray(currentName) && currentName.length === 0){\n    slot.innerHTML = '<span class=\"team__hole\">unfilled</span>';\n  } else {\n    slot.textContent = currentName || '—';\n  }\n  root.querySelector('.compose-btn').addEventListener('click', () => {\n    const input = root.querySelector('.new-name-input');\n    const newVal = input.value.trim();\n    if(!newVal){ alert('enter a proposed name'); return; }\n    const cmd = 'python3 ~/.ko/services/espadvisorygroup/architect_execute.py rename_team --actor ' + v.principal + ' --new-name ' + JSON.stringify(newVal);\n    const payload = {\n      type:'CAPABILITY_REQUEST',\n      capability:'rename_team',\n      scope_tag:'espadvisorygroup',\n      field:'NAME',\n      new_value:newVal,\n      requested_by:{principal:v.principal, display_name:v.displayName, tier:v.tier, permit_short_code:v.permit},\n      composed_at: new Date().toISOString(),\n      architect_command: cmd\n    };\n    const previewText = JSON.stringify(payload, null, 2);\n    const mailto = window._buildMailto('Rename request — ' + newVal, previewText);\n    const preview = root.querySelector('.preview');\n    preview.innerHTML = '<span class=\"preview-label\">request preview</span>\\n' + window._esc(previewText) +\n      '<div style=\"margin-top:14px\"><a class=\"mailto-btn\" href=\"' + mailto + '\">✉ send to architect</a></div>';\n    preview.classList.add('show');\n  });\n})();\n"],["SERVER_ACTION","architect_execute.py rename_team"],["DOC","Compose a request to rename the team's display name. The leader composes; the architect executes via YubiKey-attested ceremony. Latest-by-DESC on the NAME typed_hole wins."],["PERMITTED_RUNGS",["project_lead","architect"]],["INPUT_SCHEMA",[["new_name","text","Proposed team name (display)",120]]],["ANNOUNCEMENT_TEMPLATE","<actor_display> as team <actor_tier> renamed the group to \"<new_name>\"."]],[["NAME","announce_to_team"],["UI_HTML_FRAGMENT","<div class=\"composer cap-pkg-composer\" id=\"cap-announce-team\" data-capability=\"announce_to_team\">\n  <h3>Announce to team</h3>\n  <label>subject</label>\n  <input type=\"text\" maxlength=\"160\" class=\"ann-subject-input\" placeholder=\"brief subject line\">\n  <label>body</label>\n  <textarea class=\"ann-body-input\" placeholder=\"message body — what you would like the team to know\"></textarea>\n  <p class=\"recipients\">recipients: <em class=\"recipients-slot\">(loading)</em></p>\n  <button class=\"compose-btn\" type=\"button\">compose announcement request</button>\n  <div class=\"preview\"></div>\n</div>\n"],["UI_JS_FRAGMENT","(function(){\n  const root = document.getElementById('cap-announce-team');\n  if(!root) return;\n  const v = window._viewer || {};\n  const team = window._team || {};\n  const members = team.members || [];\n  const slot = root.querySelector('.recipients-slot');\n  if(members.length === 0){\n    slot.textContent = '(team members not loaded)';\n  } else {\n    const tags = members.map(m => {\n      const g = (k) => (m.find && m.find(x => Array.isArray(x) && x[0]===k) || [])[1] || '';\n      return g('display_name') || g('principal');\n    });\n    slot.textContent = '(' + members.length + ') ' + tags.join(', ');\n  }\n  root.querySelector('.compose-btn').addEventListener('click', () => {\n    const subj = root.querySelector('.ann-subject-input').value.trim();\n    const body = root.querySelector('.ann-body-input').value.trim();\n    if(!subj || !body){ alert('subject and body both required'); return; }\n    const recips = members.map(m => {\n      const g = (k) => (m.find && m.find(x => Array.isArray(x) && x[0]===k) || [])[1] || '';\n      return {principal:g('principal'), display_name:g('display_name'), rung:g('rung')};\n    });\n    const cmd = 'python3 ~/.ko/services/espadvisorygroup/architect_execute.py announce_to_team --actor ' + v.principal +\n                ' --subject ' + JSON.stringify(subj) + ' --body ' + JSON.stringify(body);\n    const payload = {\n      type:'CAPABILITY_REQUEST',\n      capability:'announce_to_team',\n      scope_tag:'espadvisorygroup',\n      subject: subj,\n      body: body,\n      recipients: recips,\n      requested_by:{principal:v.principal, display_name:v.displayName, tier:v.tier, permit_short_code:v.permit},\n      composed_at: new Date().toISOString(),\n      architect_command: cmd\n    };\n    const previewText = JSON.stringify(payload, null, 2);\n    const mailto = window._buildMailto('Announcement request — ' + subj, previewText);\n    const preview = root.querySelector('.preview');\n    preview.innerHTML = '<span class=\"preview-label\">request preview</span>\\n' + window._esc(previewText) +\n      '<div style=\"margin-top:14px\"><a class=\"mailto-btn\" href=\"' + mailto + '\">✉ send to architect</a></div>';\n    preview.classList.add('show');\n  });\n})();\n"],["SERVER_ACTION","architect_execute.py announce_to_team"],["DOC","Compose an announcement to the team. INSERTs to v_announcements + rebuilds /pages/announcements_feed.json + dispatches email per current mode toggles."],["PERMITTED_RUNGS",["project_lead","architect"]],["INPUT_SCHEMA",[["subject","text","Subject line",160],["body","textarea","Message body",4000]]],["ANNOUNCEMENT_TEMPLATE",null]]]],["MODE_DEPENDENCY_SCOPE","espadvisorygroup"],["DESCRIPTION","Capability package for project_lead/architect rungs at espadvisorygroup. Each entry in CAPABILITIES is a List of [NAME, UI_HTML_FRAGMENT, UI_JS_FRAGMENT, SERVER_ACTION, DOC, PERMITTED_RUNGS, INPUT_SCHEMA, ANNOUNCEMENT_TEMPLATE]. The SPA fetches this package after token validation, filters entries by PERMITTED_RUNGS intersection with viewer rung, and inlines UI_HTML_FRAGMENT + evaluates UI_JS_FRAGMENT. Without this permit, the leader area is empty in the SPA — the toggle is the permit's presence at view time."]],"hash_short":"bc8da9326284"},{"hash":"f4cc3a92e65e7499df7b05719f006dc4ee0ad5b692b32361b03ff5b137ab2552","short_code":"2026-05-20T16:07:57+00:00","title":"PERMIT — ACTIVE_MODE for espadvisorygroup (currently sandbox; supersede via newer active_mode mint)","kind":"active_mode","principal":"doctortheisen","scope_tag":"espadvisorygroup","tier":"architect","issued_at":"2026-05-20T16:07:57+00:00","expires_at":"","surface":"espadvisorygroup.com","chain_hash":"69076a96ad421c4efc23c5a7ceb137ed25adbdd6558dffde84ea4cd6cfa844dd","conditions":[["ACTIVE_MODE_NAME","sandbox"],["RESOLUTION","code reads (kind=active_mode, scope_tag=espadvisorygroup) DESC LIMIT 1 → ACTIVE_MODE_NAME, then (kind=mode_definition, scope_tag=espadvisorygroup_mode_<ACTIVE_MODE_NAME>) DESC LIMIT 1 → TOGGLES"],["DESCRIPTION","Points to which MODE_DEFINITION is currently in effect. Switch active mode by INSERTing a new active_mode permit row with a different ACTIVE_MODE_NAME. Old rows stay; DESC LIMIT 1 wins."]],"hash_short":"f4cc3a92e65e"},{"hash":"3ff48506d5480b76714c5f846f8816fc7bad3291ec7fe8b407f6999b52724b06","short_code":"2026-05-20T16:07:57+00:00","title":"PERMIT — MODE_DEFINITION espadvisorygroup_mode_sandbox (TOGGLES List; supersede via newer mint at same scope_tag)","kind":"mode_definition","principal":"doctortheisen","scope_tag":"espadvisorygroup_mode_sandbox","tier":"architect","issued_at":"2026-05-20T16:07:57+00:00","expires_at":"","surface":"espadvisorygroup.com","chain_hash":"87edbb17a30dbc0763be94f3fb8d081eafb29d039c43be43ff11873db5b7aa8a","conditions":[["MODE_NAME","sandbox"],["TOGGLES",[["peer_email_dispatch",false],["real_register_writes",true],["architect_command_execution",true],["display_sandbox_banner",true],["mailto_target_override","doctortheisen@gmail.com"]]],["DESCRIPTION","Sandbox mode. Real register writes happen so the chain reflects activity, but outbound emails to peer addresses are suppressed and routed only to operator's inboxes. UI shows a sandbox banner. Switch by INSERTing a new active_mode permit pointing to a different MODE_NAME."]],"hash_short":"3ff48506d548"},{"hash":"1fc40e25909de533d8acd299a6e3899164acaf2af9759895006147b91f89fe4a","short_code":"2026-05-20T01:17:36+00:00","title":"PERMIT PO-2026-CLAUDE-0001 — token for claude_assistant (session 610e3cb0) at espadvisorygroup","kind":"token","principal":"claude_assistant","scope_tag":"espadvisorygroup","tier":"claude_assistant","issued_at":"2026-05-20T01:17:36+00:00","expires_at":"","surface":"espadvisorygroup.com","chain_hash":"68383393148c0beac56bc4fc7ec98375039842e5fb111d934140703598f0dcdb","conditions":[["PUBLIC","fcb3d5ad9ead989becf27200d29c385baa9366b177f0bf2dde0a337e61b370ef"],["PRIVATE","df63077c94c1eccf4a12ac26ce1689bf2b249f8a12fe8576a4f326f3f3269e2d"],["VERIFICATION","Bearer presents PUBLIC; server queries v_permit for matching PUBLIC; valid iff a row exists with non-empty PRIVATE and not revoked."],["USERNAME","claude_assistant"],["DISPLAY_NAME","Claude Code assistant (claude-opus-4-7[1m])"],["RUNG","claude_assistant"],["CHAIN_BLOCK","d7148585"],["ROLE_AUTHORITY_REF","PO-2026-ROLE-CLAUDE-0001"],["AGENT_CLASS","claude-code_2-1-145_agent"],["MODEL_ID","claude-opus-4-7[1m]"],["SESSION_UUID","610e3cb0-2eab-4e33-826c-329579cd2bcb"],["OUTSIDE_ANNOTATION",[]]],"hash_short":"1fc40e25909d"},{"hash":"ce0721e3e2d12d595407b52d5aa7babf38e54739e1147c3ecb59735f8d76a947","short_code":"2026-05-20T01:17:36+00:00","title":"PERMIT — ROLE_AUTHORITY for claude_assistant typed_hole at espadvisorygroup (subordinate to architect)","kind":"role_authority","principal":"doctortheisen","scope_tag":"espadvisorygroup","tier":"architect","issued_at":"2026-05-20T01:17:36+00:00","expires_at":"","surface":"espadvisorygroup.com","chain_hash":"04f543c83145085e5c14fe96a8273214ba135cf8b5313f44da18233eb8171622","conditions":[["ROLE_NAME","claude_assistant"],["ROLE_TYPED_HOLE","claude_assistant"],["RUNG_PARENT","architect"],["RUNG_RANK",1],["DELEGATED_AUTHORITY",[["compose_permits_below_architect_for_operator_review_and_yubikey_attestation"],["read_register"],["draft_announcements_for_review"]]],["AUTHORITY_CEILING","Architect (doctortheisen) attests with YubiKey. Without operator YubiKey present, claude_assistant cannot mint or alter register state."],["RUNG_RELATIONSHIPS",[["above",[]],["below",["architect"]],["sibling",[]]]],["OUTSIDE_ANNOTATION",[]]],"hash_short":"ce0721e3e2d1"},{"hash":"73d6eb59e35b314db25711437eb0617fad58856fe8347619d8a2025162583d47","short_code":"2026-05-20T00:51:47+00:00","title":"PERMIT PO-2026-0065 — token grant for alex_cestero at espadvisorygroup (rung=peer)","kind":"token","principal":"alex_cestero","scope_tag":"espadvisorygroup","tier":"peer","issued_at":"2026-05-20T00:51:47+00:00","expires_at":"","surface":"espadvisorygroup.com","chain_hash":"aedaaf1bbd326d23646beed46c185a46ee4abcabf668be16924dd00efa4afad1","conditions":[["TOKEN_SHA256","dd3e06f22a4a443ce7deda3b0aca05d8fa079a2af1f6e3790987b36631405315"],["USERNAME","alex_cestero"],["DISPLAY_NAME","Alex Cestero"],["RUNG","peer"],["CHAIN_BLOCK","d7148585"],["CHAIN_ENROLLMENT","ENROLL_PEER"]],"hash_short":"73d6eb59e35b"},{"hash":"3543499c8186cb411a52cc567f5052afc05d98e26af77b3c9bf38be409c31a41","short_code":"2026-05-20T00:51:47+00:00","title":"PERMIT PO-2026-0064 — token grant for david_marshall at espadvisorygroup (rung=peer)","kind":"token","principal":"david_marshall","scope_tag":"espadvisorygroup","tier":"peer","issued_at":"2026-05-20T00:51:47+00:00","expires_at":"","surface":"espadvisorygroup.com","chain_hash":"72a69d21435c967c4d8afbbfcadcfa30bf3bfb70145a16ff201c35e0c20298a9","conditions":[["TOKEN_SHA256","0d1b98aa8644fbfaacfd4c9ae09465320eced7541ea336530adccc8807b0676e"],["USERNAME","david_marshall"],["DISPLAY_NAME","David Marshall"],["RUNG","peer"],["CHAIN_BLOCK","d7148585"],["CHAIN_ENROLLMENT","ENROLL_PEER"]],"hash_short":"3543499c8186"},{"hash":"1a92337a3ac9d34562951afe4e9bea8ad2c1bb93cc173bf019452d0033210efc","short_code":"2026-05-20T00:51:47+00:00","title":"PERMIT PO-2026-0063 — token grant for ron_brown at espadvisorygroup (rung=peer)","kind":"token","principal":"ron_brown","scope_tag":"espadvisorygroup","tier":"peer","issued_at":"2026-05-20T00:51:47+00:00","expires_at":"","surface":"espadvisorygroup.com","chain_hash":"f263a36aae4b8380aec2a24b73a47907dc2d816787e0cd29ba6690d39f49ab5e","conditions":[["TOKEN_SHA256","88feeb5a22ebcb94f906728150a4036c6d5f4e5c50645ef445e9ab2bec8569c5"],["USERNAME","ron_brown"],["DISPLAY_NAME","Ron Brown"],["RUNG","peer"],["CHAIN_BLOCK","d7148585"],["CHAIN_ENROLLMENT","ENROLL_PEER"]],"hash_short":"1a92337a3ac9"},{"hash":"63d2215f20cb76defc401d952f68dc89b9083c9ed52b5236fa716b25bba254eb","short_code":"2026-05-20T00:51:47+00:00","title":"PERMIT PO-2026-0062 — token grant for latif at espadvisorygroup (rung=project_lead)","kind":"token","principal":"latif","scope_tag":"espadvisorygroup","tier":"project_lead","issued_at":"2026-05-20T00:51:47+00:00","expires_at":"","surface":"espadvisorygroup.com","chain_hash":"1fc60441e0e9d1f89528e4611d11dcd2b93ba0b1cd8494eea4ee1708f1da6d13","conditions":[["TOKEN_SHA256","f40deaf953cc41a4320135391d63ea9cdddbcd9b15b4cdbd8bd52e16e4d968d1"],["USERNAME","latif"],["DISPLAY_NAME","Latif Diop, PhDc"],["RUNG","project_lead"],["CHAIN_BLOCK","d7148585"],["CHAIN_ENROLLMENT","ENROLL_PROJECT_LEAD"]],"hash_short":"63d2215f20cb"},{"hash":"bc2cbd62935e6b3fcf3a323645bfa901c668c7a44202c2dcc809831a3a9100a3","short_code":"2026-05-20T00:51:47+00:00","title":"PERMIT PO-2026-0061 — token grant for doctortheisen at espadvisorygroup (rung=architect)","kind":"token","principal":"doctortheisen","scope_tag":"espadvisorygroup","tier":"architect","issued_at":"2026-05-20T00:51:47+00:00","expires_at":"","surface":"espadvisorygroup.com","chain_hash":"4676c62dc3ef616246b58424c7e6097c75effed0f607d1c2ab0da8e4c6c16148","conditions":[["TOKEN_SHA256","b49482360c9d83e47767b6db1430402cdc8cb69400149ee91e5f9942a630f2e0"],["USERNAME","doctortheisen"],["DISPLAY_NAME","Benjamin Theisen"],["RUNG","architect"],["CHAIN_BLOCK","d7148585"],["CHAIN_ENROLLMENT","ENROLL_ARCHITECT"]],"hash_short":"bc2cbd62935e"},{"hash":"78c53503920b6a638240d4f5f8171a14b36bb36944c94730bddc0689ed87f109","short_code":"2026-05-20T00:51:47+00:00","title":"PERMIT — TEAM_AUTHORITY for espadvisorygroup (typed_hole fields: NAME, LEADER, MEMBERS, RENAME_HISTORY)","kind":"team_authority","principal":"doctortheisen","scope_tag":"espadvisorygroup","tier":"architect","issued_at":"2026-05-20T00:51:47+00:00","expires_at":"","surface":"espadvisorygroup.com","chain_hash":"b37945251e8185771f67fe32771f06b8e2a065ed0f89fdb63300de6bf8bb0dfb","conditions":[["NAME",[]],["LEADER",[["principal","latif"],["display_name","Latif Diop, PhDc"],["is_leader",1]]],["MEMBERS",[[["rung","architect"],["principal","doctortheisen"],["display_name","Benjamin Theisen"],["chain_enrollment","ENROLL_ARCHITECT"]],[["rung","project_lead"],["principal","latif"],["display_name","Latif Diop, PhDc"],["chain_enrollment","ENROLL_PROJECT_LEAD"]],[["rung","peer"],["principal","ron_brown"],["display_name","Ron Brown"],["chain_enrollment","ENROLL_PEER"]],[["rung","peer"],["principal","david_marshall"],["display_name","David Marshall"],["chain_enrollment","ENROLL_PEER"]],[["rung","peer"],["principal","alex_cestero"],["display_name","Alex Cestero"],["chain_enrollment","ENROLL_PEER"]]]],["RENAME_HISTORY",[]],["NAMING_PRIVILEGE_RUNGS",["project_lead","architect"]]],"hash_short":"78c53503920b"},{"hash":"6b86d2445a4bb1dbcee490bf1b924d3bbfa031c25a00a25deebd6834ea30e0e1","short_code":"2026-05-14T01:46:12+00:00","title":"PERMIT — MENU_AUTHORITY for espadvisorygroup.com top menu (composition chain root)","kind":"menu_authority","principal":"doctortheisen","scope_tag":"espadvisorygroup_com_top_menu","tier":"architect","issued_at":"2026-05-14T01:46:12+00:00","expires_at":"","surface":"espadvisorygroup.com (all pages importing /static/menu.mjs)","chain_hash":"997057df5eaaabe7b09940dbd5a72f89704d8418294c1a93027b376eb3cc1e74","conditions":[["PERMIT_ID","PO-2026-MENU-0001"],["items",[{"id":"profile","label":"PROFILE","href":"/profile/","tier":"guest"},{"id":"support","label":"SUPPORT","href":"/support/","tier":"guest"},{"id":"home","label":"MAISON","href":"/","tier":"guest"},{"id":"tl","label":"TL","href":"/x/tl/","tier":"guest"},{"id":"token","label":"TOKEN","href":"/token/","tier":"guest"}]],["positioning","sticky top right z50 paper bg hairline border"]],"hash_short":"6b86d2445a4b"},{"hash":"bb56fbedce4ef1710bb0790437577eec2b4c63e41fae26b56dc63d5cd9d11e7d","short_code":"2026-05-13T04:35:00+00:00","title":"PERMIT — surface_authority for hello.mjs register-resident ES6 component (binds sha 4d036f8d; pipeline proof)","kind":"surface_authority","principal":"doctortheisen","scope_tag":"espadvisorygroup_com_hello_mjs_module","tier":"architect","issued_at":"2026-05-13T04:35:00+00:00","expires_at":"","surface":"espadvisorygroup.com (Lightsail FastAPI; /pages/hello.mjs reads v_pages name='hello.mjs' with mime=text/javascript)","chain_hash":"","conditions":[["sha256_at_signoff","4d036f8d7be705f01f8188a38337a69a138d89750b86d1fed519f53b9b366940"],["bytes_at_signoff",860],["source_event_hash","a7cd3fe58817a2266a1bdcc26ee25995eb4e07768b8322b82767f1e6a4b34c6e"],["mime","text/javascript"],["v_pages_row_state","Will be the FIRST attested v_pages row once INSERTed (per LINK_1 c7a525d0 spec). source_event_hash = a7cd3fe5 MODULE_AUTHORITY_MJS mint; sha256 matches CODE bytes; mime=text/javascript."],["governance_invariant","Identity-via-name doesn't transfer approval; identity-via-hash does. New sha invalidates this SIGNOFF; supersede via parallel of d725407f SOP_APPROVE pattern."]],"hash_short":"bb56fbedce4e"},{"hash":"935f3cc04e7e814d5dec8c695a9f409e37945ce5848d404cebd79d7b26c59e71","short_code":"2026-05-12T23:37:00+00:00","title":"PERMIT — surface_authority for lightsail_kernel: drift-fix + boot-guard-wired (timeline cf20d5f9 + unit with ExecStartPre 368be7d7); supersedes f048d1ef","kind":"surface_authority","principal":"doctortheisen","scope_tag":"lightsail_kernel","tier":"architect","issued_at":"2026-05-12T23:37:00+00:00","expires_at":"","surface":"espadvisorygroup.com Lightsail FastAPI kernel + boot guard + systemd unit","chain_hash":"","conditions":[["polymorphic_typed_hole","Each GOVERNED_FILES entry is polymorphic: {path, sha256, bytes, kernel_code_block}. kernel_code_block accepts string hash or [[]] typed hole."],["captured_at","2026-05-12T23:31Z (sha refresh after parallel session deploy + new unit content)"],["bytes_total_governed",56366],["governance_invariant","Identity-via-name doesn't transfer approval; identity-via-hash does. Boot guard refuses uvicorn if any disk sha != authority sha."],["unit_change_critical","/etc/systemd/system/... entry changed: kernel_code_block now 56befcd6 (with ExecStartPre line). Disk file at /etc/systemd/system/espadvisory-kernel.service still has OLD content (sha 3c13bc81). Phase 2 sudo cp + daemon-reload + restart needed to align disk with authority — UNTIL THAT HAPPENS, guard would FAIL on the unit if invoked. Guard NOT YET invoked at boot (current unit has no ExecStartPre)."],["filled_blocks_count","5 of 10 entries now have kernel_code_block hash (main, config, timeline NEW, guard, unit NEW). 5 routers still [[]]."]],"hash_short":"935f3cc04e7e"},{"hash":"42ceaa0eef67b1d1c441852ca3a3e188d25eb3d61046266acf686b16d3b8ccd0","short_code":"2026-05-12T23:25:00+00:00","title":"PERMIT — shipping: interim deploy of v_pages_attested view to Lightsail register.db (LINK_3 of WO 1f2997e9 federated permit plan; implements b8d5c805 DDL via scp + sqlite3 + SHIP_RECEIPT)","kind":"shipping","principal":"doctortheisen","scope_tag":"lightsail_register_v_pages_attested_deploy","tier":"architect","issued_at":"2026-05-12T23:25:00+00:00","expires_at":"","surface":"Lightsail admin@54.161.77.229:/home/admin/register.db (CREATE VIEW v_pages_attested); main FIELD.db SHIP_RECEIPT mint surface; ssh transport channel for the DDL apply","chain_hash":"","conditions":[],"hash_short":"42ceaa0eef67"},{"hash":"b8d5c8053d12480a0be9d508591a9c90ddde905ca67a2788fb59771d29cd6254","short_code":"2026-05-12T23:20:00+00:00","title":"PERMIT — procedure: v_pages_attested read-time projection (implements c7a525d0 write-gate spec via view, not trigger; LINK_2 of WO 1f2997e9 federated permit plan)","kind":"procedure","principal":"doctortheisen","scope_tag":"v_pages_attested_projection","tier":"architect","issued_at":"2026-05-12T23:20:00+00:00","expires_at":"","surface":"Lightsail /home/admin/register.db v_pages + v_permit + register_sha256 + register tables; /home/admin/main.py /pages/{name} + GET / + other v_pages reader routes (LINK_6 kernel supersede covers the route swap)","chain_hash":"","conditions":[],"hash_short":"b8d5c8053d12"},{"hash":"c7a525d0c48a5b114e63b7b48be4d9bc109c00168df617e0d4dad9d5b92d57d8","short_code":"2026-05-12T23:15:00+00:00","title":"PERMIT — procedure: v_pages INSERT write-gate specification (parallel of c43f77b2 for v_pages plane; LINK_1 of WO 1f2997e9 federated permit plan)","kind":"procedure","principal":"doctortheisen","scope_tag":"v_pages_write_gate","tier":"architect","issued_at":"2026-05-12T23:15:00+00:00","expires_at":"","surface":"Lightsail /home/admin/register.db v_pages table; main FIELD.db register write surface for PAGE_AUTHORITY_HTML blocks; federate_sister.py ship/pull path for v_pages rows","chain_hash":"","conditions":[],"hash_short":"c7a525d0c48a"},{"hash":"f048d1efa3d177d2b0515ab26975ab5916722e2be587d899736c6c5e2f6baeae","short_code":"2026-05-12T22:42:00+00:00","title":"PERMIT — surface_authority for lightsail_kernel (10 governed files: kernel + boot guard + systemd unit; supersedes d085113e to add guard + unit + their block_hashes)","kind":"surface_authority","principal":"doctortheisen","scope_tag":"lightsail_kernel","tier":"architect","issued_at":"2026-05-12T22:42:00+00:00","expires_at":"","surface":"espadvisorygroup.com Lightsail FastAPI kernel + boot guard + systemd unit","chain_hash":"","conditions":[["polymorphic_typed_hole","Each GOVERNED_FILES entry is a polymorphic-position list-of-lists with slots: path (string, abs OR rel-to-KERNEL_DIR), sha256, bytes, kernel_code_block (string hash OR [[]] typed hole). Boot guard handles abs vs rel paths via resolve_path()."],["captured_at","2026-05-12T22:18Z (8 originals) + 2026-05-12T22:34Z (guard) + 2026-05-12T22:38Z (unit)"],["bytes_total_governed",56297],["governance_invariant","Identity-via-name doesn't transfer approval; identity-via-hash does. New sha256 in any GOVERNED_FILE invalidates this SIGNOFF for that file. Boot guard runs at ExecStartPre time and refuses uvicorn boot on any drift/missing/unreadable result."],["self_governing_guard","kernel_guard.py is itself in GOVERNED_FILES — guard cannot be silently swapped. If someone replaces the guard with a no-op, the legitimate-guard's last successful boot attested the swap-target's old sha; new guard's sha won't match, boot refuses, system halts in a known state."],["unfilled_blocks_pending","6 of 10 entries carry [[]] in kernel_code_block — content not yet in register. Filled at next edit cycle (KERNEL_CODE mint precedes scp per fb9ac14a, then supersede this authority). Acceptable interim state; surfaces in reconstitute test (criterion reconstitute_test_passes) if not filled by then."],["deployment_pending","All 10 entries reference the CURRENT disk state, but none of these mints have been federated to Lightsail register.db yet. Federation pathway investigation deferred per operator. Boot guard, when shipped + wired into systemd ExecStartPre, would FAIL until the authority block + KERNEL_CODE blocks federate to /home/admin/register.db."]],"hash_short":"f048d1efa3d1"},{"hash":"5b6c324331b4a960db3f007831852d04350ee872bcff38aabbd329a6dce3d2f1","short_code":"2026-05-12T22:35:00+00:00","title":"PERMIT — federate_sister.py — bundler AND transporter for sister-register row shipping (PO-2026-FEDSHIP)","kind":"procedure","principal":"doctortheisen","scope_tag":"lightsail_federation_shuttle","tier":"architect","issued_at":"2026-05-12T22:35:00+00:00","expires_at":"never","surface":"espadvisorygroup.com","chain_hash":"","conditions":["Architect operates the shuttle; agent invocation allowed when upstream mints were YubiKey-attested.","Each ship pass writes provenance to local + remote register_sha256.","Per-row failure halts and surfaces; subsequent rows are not silently advanced.","federation_sister.db is the curated outbound pool; main FIELD.db is NOT shipped wholesale.","Projection into remote v_permit / v_pages / v_styles / v_profile happens out-of-band today (direct INSERT during this session); a register-driven projector is the next architecture step.","Bundler-and-transporter roles are inseparable; this permit governs the script as one composite, not two."],"hash_short":"5b6c324331b4"},{"hash":"9883a2961458b3a4341bc6cee748bfeb9570b59a0536d0f735389ec8e20061aa","short_code":"2026-05-12T22:30:00Z","title":"PERMIT — procedure permit for federate_sister.py (local sister → Lightsail register shipping)","kind":"procedure","principal":"doctortheisen","scope_tag":"lightsail_federation_shuttle","tier":"architect","issued_at":"2026-05-12T22:30:00+00:00","expires_at":"never","surface":"espadvisorygroup.com","chain_hash":"","conditions":["Architect operates the shuttle.","Each ship pass writes provenance to register_sha256.","Per-row failure halts."],"hash_short":"9883a2961458"},{"hash":"d085113e34b97c485a28074998ed89608bebf142682dbcbef7f9d6f5c3999722","short_code":"2026-05-12T22:20:00+00:00","title":"PERMIT — surface_authority for lightsail_kernel (polymorphic typed hole; supersedes c3d67368 sha-only; expands GOVERNED_FILES to 8 kernel files including new magic_code + profile routers)","kind":"surface_authority","principal":"doctortheisen","scope_tag":"lightsail_kernel","tier":"architect","issued_at":"2026-05-12T22:20:00+00:00","expires_at":"","surface":"espadvisorygroup.com Lightsail FastAPI kernel at /home/admin/{main.py, config.py, services/{intake,magic_code,profile,permits,timeline,views}/router.py}","chain_hash":"","conditions":[["polymorphic_typed_hole","Each GOVERNED_FILES entry is a polymorphic-position list-of-lists with slots: path (string), sha256 (string), bytes (int), kernel_code_block (string hash OR [[]] typed hole). The kernel_code_block position accepts polymorphic projection per f1673c1d — currently a hash; future projections could include embeddings, semantic_hash, or other resolvers without breaking readers."],["captured_at","2026-05-12T22:18Z (SSH sha256sum + wc -c)"],["bytes_at_signoff_total",52080],["governance_invariant","Identity-via-name doesn't transfer approval; identity-via-hash does. New sha256 in any GOVERNED_FILE invalidates this SIGNOFF for that file. Boot guard (task 4 of WO 30b01060) resolves authority at boot and refuses startup on disk-vs-authority sha mismatch."],["unfilled_blocks_pending","6 of 8 entries carry [[]] in kernel_code_block — content not yet in register. Filled at next edit cycle (KERNEL_CODE mint precedes scp per procedure fb9ac14a, then supersede this authority). Acceptable interim state; surfaces in reconstitute test (task 6) if not filled by then."]],"hash_short":"d085113e34b9"},{"hash":"974b4f3f76ee2a46cda17ca6350fd33ae9ce00c7c1f1ebf578ce6cef2c33f511","short_code":"2026-05-12T20:45:18+00:00","title":"PERMIT PO-2026-0052 — token grant for latif (latif_dissertation)","kind":"token","principal":"latif","scope_tag":"latif_dissertation","tier":"owner","issued_at":"2026-05-12T20:45:18+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"espadvisorygroup.com","chain_hash":"","conditions":["Token sha256 alone is the bearer credential; raw token never stored in the register."],"hash_short":"974b4f3f76ee"},{"hash":"3c2a45f1d61eac10fa6abd4885e8a4f329c9f836338c18ac341f6e2165e3f112","short_code":"2026-05-12T20:42:01+00:00","title":"PERMIT PO-2026-0051 — token grant for doctortheisen (espadvisorygroup_landing)","kind":"token","principal":"doctortheisen","scope_tag":"espadvisorygroup_landing","tier":"owner","issued_at":"2026-05-12T20:42:01+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"espadvisorygroup.com","chain_hash":"","conditions":["Token sha256 alone is the bearer credential; raw token never stored in the register."],"hash_short":"3c2a45f1d61e"},{"hash":"3593e40b17b64d9ef19b03dde79628321b5a155076ba0a80dc784d0bf30da104","short_code":"2026-05-12T19:57:12+00:00","title":"PERMIT PO-2026-0050 — token grant for doctortheisen (doctortheisen_private)","kind":"token","principal":"doctortheisen","scope_tag":"doctortheisen_private","tier":"owner","issued_at":"2026-05-12T19:57:12+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"espadvisorygroup.com","chain_hash":"","conditions":["Token sha256 alone is the bearer credential; raw token never stored in the register."],"hash_short":"3593e40b17b6"},{"hash":"fb9ac14ab4cb4da367da454cf37cadb454ec88e9301f1a1e713b58fa2e0b9448","short_code":"2026-05-12T19:50:00+00:00","title":"PERMIT — procedure: interim scp ship of /home/admin/{main.py, config.py, services/*/router.py} on Lightsail (kernel-plane ship discipline, parallel to 332ef4bd for static plane)","kind":"procedure","principal":"doctortheisen","scope_tag":"lightsail_kernel_interim_ship","tier":"architect","issued_at":"2026-05-12T19:50:00+00:00","expires_at":"","surface":"espadvisorygroup.com (Lightsail FastAPI canonical, /home/admin/{main.py, config.py, services/intake/router.py, services/timeline/router.py, services/views/router.py, services/permits/router.py})","chain_hash":"","conditions":[["scope_boundary","Strictly the file paths in GOVERNED_FILES bound to surface_authority c3d67368. Editing files outside this list under this procedure is a violation; new files require a supersede of c3d67368 extending GOVERNED_FILES first."],["pre_mint_required","KERNEL_CODE mint (step 2) MUST precede scp (step 3). Direct scp without prior KERNEL_CODE mint is the failure mode this procedure exists to prevent — exactly the gap that admitted the 2026-05-12 19:14:15Z config.py edit."],["forward_attestation","scp is the agent (or operator) action; KERNEL_CODE pre-mint + SHIP_RECEIPT post-mint are the bracketing attestations. YubiKey on both."],["reload_discipline","systemctl restart espadvisory-kernel.service required after edit; service is the live reader of these files. Hot-reload not configured."],["sunset_clause","When v_kernel SOP lands or register-resident code rendering ships for kernel plane, this permit becomes superseded; scp ceases to be authorized for kernel files. Agents must read this PERMIT before scp."],["governance_invariant","332ef4bd (static-plane interim) explicitly excluded kernel code as 'separate ship discipline.' This permit IS that discipline. Mirrors 332ef4bd shape; differs in: GOVERNED_FILES (kernel paths), pre-mint requirement (KERNEL_CODE before scp, not optional), restart step (kernel files require service reload)."]],"hash_short":"fb9ac14ab4cb"},{"hash":"c3d67368a6c59de73eaf19f5327fc15cc65b79d7fb26839ee8fd4ee41e12690c","short_code":"2026-05-12T19:45:00+00:00","title":"PERMIT — surface_authority for lightsail_kernel (FastAPI kernel: main.py + config.py + services/*/router.py) — coarse per WO_AMENDMENT 5322e75c F6 Option A","kind":"surface_authority","principal":"doctortheisen","scope_tag":"lightsail_kernel","tier":"architect","issued_at":"2026-05-12T19:45:00+00:00","expires_at":"","surface":"espadvisorygroup.com Lightsail FastAPI kernel at /home/admin/{main.py, config.py, services/intake/router.py, services/timeline/router.py, services/views/router.py, services/permits/router.py}","chain_hash":"","conditions":[["sha256_at_signoff_per_file",[["main.py","4a2da6a926f4238b11610dfcc52e63f9ed6354f76c43f8ad02fdf2fd940f559a"],["config.py","ed449f05f76b200d158039eaef5bc2189f5385e3fa1ac971b16ce153d804b904"],["services/intake/router.py","b996c0ccb038a3776f3b8ee76206364f3f3d0034caa170752656de7a3e50c42e"],["services/timeline/router.py","23ab84417cd85ff35780cd3b36b8e60df7fd7b988cf66853d571072c0448e35b"],["services/views/router.py","f6759c8e0ac39886c46690fdfae63f1c5a921f7bd72b15b64cc72071c3b7b6d8"],["services/permits/router.py","44f5cb6a3d255eaa1a677c21ddab079d352abbd344581151e2848dc9c90100ef"]]],["bytes_config_py",843],["captured_at","2026-05-12T19:40Z (SSH; config.py mtime = 2026-05-12 19:14:15Z — operator's proximate edit)"],["governance_invariant","Identity-via-name doesn't transfer approval; identity-via-hash does. New sha256 in any GOVERNED_FILE invalidates this SIGNOFF for that file and requires a supersede mint."],["granularity","Coarse single authority per WO_AMENDMENT 5322e75c GRANULARITY_DECISION_ANSWERED. One surface_authority covers the kernel-code plane jointly (mirrors espadvisorygroup_com_look_and_feel single authority for CSS)."]],"hash_short":"c3d67368a6c5"},{"hash":"71e4f51e6d2811e158a0cf16b5968e32aeb1053047ec1f520925258abfd25cd8","short_code":"2026-05-12T17:30:00+00:00","title":"PERMIT — procedure: v_styles_attested read-time projection (implements c43f77b2 write-gate spec via read-time witness/permit filter, not write-time enforcement)","kind":"procedure","principal":"doctortheisen","scope_tag":"v_styles_attested_projection","tier":"architect","issued_at":"2026-05-12T17:30:00+00:00","expires_at":"","surface":"Lightsail /home/admin/register.db v_styles + v_permit + register_sha256 + register tables; /home/admin/main.py /styles/{name} route reader","chain_hash":"","conditions":[],"hash_short":"71e4f51e6d28"},{"hash":"ccda92d397b711ac8c369743cd0de00ee2286e7b22edf6b8f032b8ed73d35284","short_code":"2026-05-12T16:50:00+00:00","title":"RFP — Implementation of v_styles INSERT write-gate per procedure permit c43f77b2","kind":"rfp","principal":"doctortheisen","scope_tag":"v_styles_write_gate_implementation","tier":"governance","issued_at":"2026-05-12T16:50:00+00:00","expires_at":"never","surface":"(governance — not surface-bound; implementation will target Lightsail register.db + local FIELD.db + ~/.ko/.dash/federate_sister.py + mint.py)","chain_hash":"","conditions":[],"hash_short":"ccda92d397b7"},{"hash":"d9f60a0fceee97d20aa485bb4f4248837534d552463f3f0c433a8afe2f920ba1","short_code":"2026-05-12T16:35:00+00:00","title":"PERMIT — REVOKE push_site.py + sync_site.py (file-shipment bundler tools superseded by 9060dc16 + federate_sister.py)","kind":"revocation","principal":"doctortheisen","scope_tag":"tooling_retirement","tier":"architect","issued_at":"2026-05-12T16:35:00+00:00","expires_at":"never","surface":"","chain_hash":"","conditions":[],"hash_short":"d9f60a0fceee"},{"hash":"c43f77b25b9a2e65b962b42c9a18701694d5a20be2d052e0c6b2d33c565a4715","short_code":"2026-05-12T16:20:00+00:00","title":"PERMIT — procedure: v_styles INSERT write-gate specification (preventing unsigned authority-row writes)","kind":"procedure","principal":"doctortheisen","scope_tag":"v_styles_write_gate","tier":"architect","issued_at":"2026-05-12T16:20:00+00:00","expires_at":"","surface":"Lightsail /home/admin/register.db v_styles table; federate_sister.py ship/pull path; main FIELD.db register write surface for STYLE_AUTHORITY_CSS blocks","chain_hash":"","conditions":[],"hash_short":"c43f77b25b9a"},{"hash":"332ef4bde417b62f00ac7911bab1139a300e28513f7dc0e82b668eea0d16dbe3","short_code":"2026-05-12T16:15:00+00:00","title":"PERMIT — procedure: interim scp ship of /home/admin/static/{html,mjs,js,css-files} on Lightsail (until v_static SOP lands)","kind":"procedure","principal":"doctortheisen","scope_tag":"espadvisorygroup_com_static_deploy","tier":"architect","issued_at":"2026-05-12T16:15:00+00:00","expires_at":"","surface":"espadvisorygroup.com (Lightsail FastAPI canonical, /home/admin/static/ file-served by StaticFiles mount)","chain_hash":"","conditions":[["scope_boundary","Strictly the file paths listed in GOVERNED_FILES. Editing files outside this list under this procedure is a violation."],["css_exclusion","CSS authority is NOT under this procedure — that lives in v_styles per STANDARDS 32fdcf0d R3 + surface_authority permit chain. Direct file scp of authority CSS is forbidden."],["forward_attestation","Ship is the agent action; SHIP_RECEIPT mint is the post-hoc attestation. Operator YubiKey on the receipt provides the missing chain link."],["sunset_clause","When v_static SOP lands or register-resident code rendering ships, this permit becomes superseded and scp ceases to be authorized. Agents must read this PERMIT before scp."],["governance_invariant","Predecessor file-shipment via push_site.py was revoked by 9060dc16 (Lightsail canonical, file-shipment superseded). This procedure narrows-and-attests the residual operational gap rather than restoring file-shipment broadly."]],"hash_short":"332ef4bde417"},{"hash":"1e5dfb2d59a32aeafd774445cb1fd09513604d421c6a7d534df6af1165e4a2b9","short_code":"2026-05-12T15:30:00+00:00","title":"PERMIT — surface_authority for esp_site_authority CSS (supersedes 5b13c2df; canonical at 8d0a2ce1)","kind":"surface_authority","principal":"doctortheisen","scope_tag":"espadvisorygroup_com_look_and_feel","tier":"architect","issued_at":"2026-05-12T15:30:00+00:00","expires_at":"","surface":"espadvisorygroup.com (Lightsail FastAPI canonical, /styles/esp_site_authority route reading v_styles)","chain_hash":"","conditions":[["sha256_at_signoff","8d0a2ce141ea6279fd94e5952a1291da93740d93395a43df6a6efdd7802c014d"],["bytes_at_signoff",8731],["source_event_hash","784a685df5abe3583bc7a006fa1a20a61a8397f9c89cda1d209ae7e973b0832d"],["v_styles_row_state","latest row for name='esp_site_authority' on Lightsail register.db at created_at=1778571143179480791 (2026-05-12T07:32:23Z). Source HASHBLOCK is the operator-attested STYLE_AUTHORITY_CSS mint 784a685d binding the code to permit 5b13c2df (predecessor) and STANDARDS 32fdcf0d. Per R3 'Latest row by created_at wins' — this is the canonical surface authority going forward."],["folio_design_language","Cream paper #f5f1e8 / near-black ink #0a0a0a / warm hairline #c8bfae / wax red accent #8b1414 / Cormorant Garamond serif + Cormorant SC smallcaps. CSS vars: --paper, --ink, --muted, --hairline, --wax, --rule, --accent, --serif, --smallcaps, --sans, --mono, --measure, --space."],["governance_invariant","Identity-via-name doesn't transfer approval; identity-via-hash does. New sha256 invalidates this SIGNOFF; supersede via SOP_APPROVE_LOOKANDFEEL_AUTHORITY (d725407f)."]],"hash_short":"1e5dfb2d59a3"},{"hash":"5133591c9b1afa673a87fabda82a41bb66139e10f7e9307f26bb158fe2a02efa","short_code":"2026-05-12T08:30:00+00:00","title":"PermitBundler — token_sha256 + composition fields shipped through federation (supersedes 110b3009)","kind":"bundler_declaration","principal":"doctortheisen","scope_tag":"espadvisorygroup","tier":"architect","issued_at":"2026-05-12T08:30:00+00:00","expires_at":"never","surface":"espadvisorygroup.com (Lightsail FastAPI canonical) + sister register","chain_hash":"","conditions":["All future PERMIT mints with kind=token MUST carry TOKEN_SHA256 inline at INSIDE.CONTENT (already true for PO-2026-0026 .. PO-2026-0036).","Federation ship code extracts the new INSIDE fields and INSERTs into the new columns; absence of a field leaves the column NULL.","Backfill: re-read each existing v_permit row's source MINT from main register; populate the new columns; idempotent on hash.","Sister DDL applies to ~/.ko/services/fastapi/register.db AND /home/admin/register.db on Lightsail; schemas must match for federation.","Supersedes 110b3009; prior bundler declaration remains in chain (append-only).","/home/admin/permits/active.json file MUST NOT be re-created; kernel reads register via query.py (Rule 13).","Composition rendering: composes_from_json carries the WHAT_IT_COMPOSES_FROM 4-tuples [KIND_LABEL, KIND_TYPE, FULL_HASH, description] verbatim; permit-office UI renders nested using that structure."],"hash_short":"5133591c9b1a"},{"hash":"5b13c2df29f3d6d127974b12c9fa444b4b2841b64267dfecaf2c0ed84f30a06c","short_code":"2026-05-12T07:13:00+00:00","title":"PERMIT — surface_authority for esp_site_authority CSS (restored original FOLIO)","kind":"surface_authority","principal":"doctortheisen","scope_tag":"espadvisorygroup_com_look_and_feel","tier":"architect","issued_at":"2026-05-12T07:13:00+00:00","expires_at":"","surface":"espadvisorygroup.com (Lightsail FastAPI canonical, /styles/esp_site_authority route reading v_styles)","chain_hash":"","conditions":[["sha256_at_signoff","af5818dbbbc5c7b0bf23a14c43a19daaefd9c5f450302621ac887c96526e5f81"],["bytes_at_signoff",34930],["v_styles_row_state","latest row for name='esp_site_authority' on Lightsail register.db, restored 2026-05-12T07:12 after agent went rogue and replaced original with a smaller draft. Restoration confirmed via X-Style-SHA256 response header."],["folio_design_language","Cream paper bg (#f5f1e8), near-black ink (#0a0a0a), warm hairline (#bdb4a3), Cormorant Garamond + Cormorant SC throughout. CSS vars: --paper, --ink, --rule, --muted, --hairline."],["governance_invariant","Identity-via-name doesn't transfer approval; identity-via-hash does. New sha256 invalidates this SIGNOFF."]],"hash_short":"5b13c2df29f3"},{"hash":"3d59640d8939ba9fb2ce61253523b1659fd0cd70ddf5efa25a69742cf4c35067","short_code":"2026-05-12 (this mint timestamp; first AGENT_COMPETENCY_PERMIT issued under AR EPOCH 1781ad0a)","title":"PERMIT — APPROVED: Agent B (a013b5c0) AGENT_COMPETENCY_PERMIT for REGISTER_READ station (L3 of 5-layer chain; first issued AR competency permit)","kind":"agent_competency_permit_approved","principal":"doctortheisen","scope_tag":"agent_competency_permit_register_read_agent_b_approved","tier":"READ_ONLY","issued_at":"2026-05-12 (this mint timestamp; first AGENT_COMPETENCY_PERMIT issued under AR EPOCH 1781ad0a)","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"3d59640d8939"},{"hash":"85851886dabd967f516471c06d4fc9db2df224b36a064e07f102c21bc01c3b0d","short_code":"2026-05-12 (this mint timestamp; first AGENT_ACADEMY L3 approved permit; first instance of academy-as-witnessed-device pattern in AR)","title":"PERMIT — APPROVED: AGENT_ACADEMY L3 — academy-as-witnessed-node at operator MacBook M3 Max (chains L2 61b3e469 + L1 d3b58c97)","kind":"agent_academy_approved","principal":"doctortheisen","scope_tag":"agent_academy_approved_macbook_m3_max","tier":"academy_witnessed_device","issued_at":"2026-05-12 (this mint timestamp; first AGENT_ACADEMY L3 approved permit; first instance of academy-as-witnessed-device pattern in AR)","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"85851886dabd"},{"hash":"fbffd1ba81c59bfac5d2fac34547ed67603a2059b563406d7d5730dbcdc17ab0","short_code":"2026-05-12","title":"PERMIT PO-2026-0049 — APPROVED: teaching↔learning vector permit (transmission unit) [F5 of WO 5e0abf1e]","kind":"vector_permit_teaching_learning","principal":"doctortheisen","scope_tag":"teaching_learning_vector_orientation_2026_05_12","tier":"","issued_at":"2026-05-12","expires_at":"session_close (already passed; vector permit is retroactive)","surface":"","chain_hash":"","conditions":["Vector binds F3 teacher role and F4 learner role for this session.","Subject-agnostic at the vector level; specific subjects bind via downstream TEACHING blocks that reference this vector_permit_hash.","Per operator: 'there's some kind of learning surface and there's some teaching surface. And there's a vector connecting them and then we have a system with other things'"],"hash_short":"fbffd1ba81c5"},{"hash":"89037596bcfa86ebe6a86465ead0f6da00e46493253e3cc0629feb40f4db0350","short_code":"2026-05-12","title":"PERMIT PO-2026-0048 — APPROVED: agent-as-learner role (constitutive, subject-agnostic) [F4 of WO 5e0abf1e]","kind":"role_permit_learner","principal":"doctortheisen","scope_tag":"","tier":"","issued_at":"2026-05-12","expires_at":"session_close (learner role is session-scoped because the concrete agent is session-scoped; revoked at agent dismissal)","surface":"","chain_hash":"","conditions":["Constitutive: operator declares learner role for this session's concrete agent.","Subject-agnostic: this permit does not name what is learned.","Session-scoped: expires at session close (CALLSIGN_REVOKE 371b76579b4a7787 already revoked the bracket once, but the learner role persists across session as register evidence; future sessions get their own learner role permit chained via vendor chain L5)."],"hash_short":"89037596bcfa"},{"hash":"4704630f80e707b9b2c3a81c4d170605c8ea58894300b533b722cc2a05f7cb9d","short_code":"2026-05-12","title":"PERMIT PO-2026-0047 — APPROVED: operator-as-teacher role (constitutive, subject-agnostic) [F3 of WO 5e0abf1e]","kind":"role_permit_teacher","principal":"doctortheisen","scope_tag":"","tier":"","issued_at":"2026-05-12","expires_at":"never (role is constitutive of identity; revoked only by explicit role-revoke mint)","surface":"","chain_hash":"","conditions":["Constitutive: operator declares teacher role for self.","Subject-agnostic: this permit does not name what is taught.","Polymorphic per FUNCTION bc8f7fe7."],"hash_short":"4704630f80e7"},{"hash":"a845fd29264d5976fba9edd80d67a4d0117b3bea7a94273b4465c2d4b1c3e820","short_code":"2026-05-12","title":"PERMIT PO-2026-0046 — APPROVED: vendor provenance chain Anthropic → concrete agent (L3 of WO 5e0abf1e F2)","kind":"vendor_provenance_chain","principal":"doctortheisen","scope_tag":"vendor_provenance_anthropic_to_agent","tier":"vendor_provenance_witness","issued_at":"2026-05-12","expires_at":"never (observational provenance is durable while account exists; revoke if subscription/account changes)","surface":"","chain_hash":"","conditions":["5 rungs identified; account_uuid a0a10f5d anchors the chain.","Polymorphic per FUNCTION bc8f7fe7.","OBSERVATIONAL — distinct from constitutive role permits (F3 teacher / F4 learner / F5 vector forthcoming)."],"hash_short":"a845fd29264d"},{"hash":"9e3771a55ce371d1961c5d8a4dad821df6f157da46cb6dbf103a1661c31cfd9e","short_code":"2026-05-12","title":"PERMIT PO-2026-0044 — APPROVED: session (orientation-2026-05-12) as federation witness (L3)","kind":"federation_witness_session","principal":"doctortheisen","scope_tag":"federation_witness_session","tier":"session_witness","issued_at":"2026-05-12","expires_at":"session_close","surface":"","chain_hash":"","conditions":["Session is the temporal witness envelope.","Closes at SESSION_SUMMARY mint.","Polymorphic per FUNCTION bc8f7fe7."],"hash_short":"9e3771a55ce3"},{"hash":"e3e93287bd6908a0a39fa42c39afd43f5771864344c504b87b8b51bf23509c70","short_code":"2026-05-12","title":"PERMIT PO-2026-0043 — APPROVED: operator (doctortheisen) as federation witness (L3)","kind":"federation_witness_operator","principal":"doctortheisen","scope_tag":"federation_witness_operator","tier":"human_operator_witness","issued_at":"2026-05-12","expires_at":"never","surface":"","chain_hash":"","conditions":["Operator is the human witness layer of the federation.","YubiKey attestation IS the witness signature for all federated events.","Self-attestation note: this permit's own YubiKey touch is recursively the operator attesting to being-the-witness."],"hash_short":"e3e93287bd69"},{"hash":"42156a46bb64395c52791ff34bc23ae467a35ca4f7c653a93b4d477522f64393","short_code":"2026-05-12","title":"PERMIT PO-2026-0041 — APPROVED: transport shuttle for federation data carry (L3)","kind":"federation_shuttle","principal":"doctortheisen","scope_tag":"lightsail_federation_shuttle","tier":"carry_witness","issued_at":"2026-05-12","expires_at":"never","surface":"","chain_hash":"","conditions":["Each carry attests start + end spacetime + bytes + integrity hash.","Polymorphic projection per FUNCTION bc8f7fe7."],"hash_short":"42156a46bb64"},{"hash":"3bc58fc64824afd50e3908fd04421f971829002a330ed1f475d8ab53e7ff269b","short_code":"2026-05-12","title":"PERMIT PO-2026-0040 — APPROVED: FastAPI code as device-witness for federation (L3)","kind":"federation_fastapi_code","principal":"doctortheisen","scope_tag":"lightsail_federation_fastapi_code","tier":"device_witness_code","issued_at":"2026-05-12","expires_at":"never","surface":"","chain_hash":"","conditions":["Code-as-device witness for request/response on espadvisorygroup.com.","Provenance chain L1→L5 polymorphic per FUNCTION bc8f7fe7."],"hash_short":"3bc58fc64824"},{"hash":"5ccb61b7130c04231b9e8d0bc0edf521bcf36fdedf3726710486b4ec048449aa","short_code":"2026-05-12","title":"PERMIT PO-2026-0039 — APPROVED: AWS Lightsail server-as-witness for federation transport-layer (L3 of 5-layer chain)","kind":"federation_server","principal":"doctortheisen","scope_tag":"lightsail_federation_server","tier":"server_layer_witness","issued_at":"2026-05-12","expires_at":"never","surface":"espadvisorygroup.com (FastAPI canonical) + sister register at /home/admin/register.db","chain_hash":"","conditions":["Server identity = AWS Lightsail instance at admin@54.161.77.229, us-east-1.","Spacetime witness = uptime interval starting 2026-05-10.","Provenance chain: L1 (74480b41) → L2 (80fa8066) → L3 (this) → L4 (instrument declaration, forthcoming) → L5 (usage records, forthcoming).","Polymorphic projection contract per FUNCTION bc8f7fe7 applies; this permit's content is read polymorphically by permit_read.py."],"hash_short":"5ccb61b7130c"},{"hash":"cc659ccbbe7821a2bc6b36f4f28be8150447b1a01adb14fc470e2602c731f638","short_code":"2026-05-12","title":"PERMIT — token grant for lightsail_federation shipping (doctortheisen)","kind":"token","principal":"doctortheisen","scope_tag":"lightsail_federation","tier":"owner","issued_at":"2026-05-12","expires_at":"","surface":"/home/admin/register.db at admin@54.161.77.229 (Lightsail us-east-1)","chain_hash":"","conditions":[["Bearer carries authority to invoke federate_sister.py ship/pull against /home/admin/register.db per shipping_spec f494d232."],["Token sha256 is the only artifact stored in the register; the bearer itself is out-of-band, operator-held."],["Token rotation: mint a new token-grant permit, revoke this one. Old sha256 stays in the chain (append-only)."],["Scope discipline: bearer is bounded to lightsail_federation; not valid for other registers, surfaces, or operations."]],"hash_short":"cc659ccbbe78"},{"hash":"f494d23296b0d449f9ba7c89630857b3b57783250dd6a0018aaa114badcf0d29","short_code":"2026-05-12","title":"PERMIT — payload shipping spec (active) for Lightsail federation","kind":"shipping_spec","principal":"","scope_tag":"lightsail_federation","tier":"service","issued_at":"2026-05-12","expires_at":"","surface":"/home/admin/register.db at admin@54.161.77.229 (Lightsail us-east-1)","chain_hash":"","conditions":[],"hash_short":"f494d23296b0"},{"hash":"bc2b231fa6e44f1cafa251f5d3784a867b4a432c87d9ebbf024793b22911fb16","short_code":"2026-05-09T13:56:46+00:00","title":"PERMIT PO-2026-0037 — RFP: Permit Office under control (routing, usage, standards)","kind":"rfp","principal":"","scope_tag":"","tier":"governance","issued_at":"2026-05-09T13:56:46+00:00","expires_at":"never","surface":"(governance — not surface-bound)","chain_hash":"","conditions":[],"hash_short":"bc2b231fa6e4"},{"hash":"4c46a510fd55d44f03e39c0c136337ef577cf176704ace60ceeb6fe1795b324a","short_code":"2026-05-09T03:43:05+00:00","title":"PERMIT PO-2026-0036 — token grant for kalie (kalie_dissertation)","kind":"token","principal":"kalie","scope_tag":"kalie_dissertation","tier":"owner","issued_at":"2026-05-09T03:43:05+00:00","expires_at":"2026-08-31T23:59:59+00:00","surface":"doctortheisen.com","chain_hash":"","conditions":[["Token grants Kalie (936ed766) read access to her own ticket surface /s/271d50c6e2ff and principal-facing /p/<receipt> on doctortheisen.com under scope kalie_dissertation; bounded to kalie_dissertation domain (no scope creep)."],["Anti-collision: any 'Rosen'-named artifact under this scope MUST resolve to Ian Rosen, Ph.D. (PERSON ebf3226baf42d0df), NEVER to Senator Jacky Rosen literature citations (HOW_BLOCKs 6dfca024 / 74ed13cc / 7f5cca8d). Cross-binding is a defect."],["Student-separation discipline: artifacts surfaced under this token MUST NOT cross-reference Latif Diop pipeline (3cdfed0d, 54ab36676244) per feedback_student_separation rule."],["Hashemi-narrative scoped to operator + Kalie working set; not propagated beyond chair-change announcement context (f577fad24813)."],["Token expires 2026-08-31 OR upon WO PIVOT 190f1364374 CRITERION slot 13 (proposal_defense_held) fill, whichever is sooner."]],"hash_short":"4c46a510fd55"},{"hash":"79d2d483093a6dc605739b7af44ad742fa493efd2c1e76e4bc8f38c9cc26631e","short_code":"2026-05-09T02:01:39+00:00","title":"PERMIT PO-2026-0034 — token grant for alex_cestero (espadvisorygroup_team)","kind":"token","principal":"alex_cestero","scope_tag":"espadvisorygroup_team","tier":"member","issued_at":"2026-05-09T02:01:39+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"espadvisorygroup.com","chain_hash":"","conditions":["Peer for espadvisorygroup per PERMIT_CHAIN d7148585; tier=peer resolves at view time from chain rung; token SHA-256 matches against s3://espadvisorygroup.com/permits/active.json; authority READ/COMMENT/ENDORSE/VOTE/RAISE_QUESTION per chain enrollment ENROLL_PEER"],"hash_short":"79d2d483093a"},{"hash":"eb1b39542ab9b247d25d1629196ba9d6b509f5a308b9b1e5389362b16e575a49","short_code":"2026-05-07T22:44:27+00:00","title":"PERMIT PO-2026-0033 — token grant for david (espadvisorygroup_team)","kind":"token","principal":"david","scope_tag":"espadvisorygroup_team","tier":"member","issued_at":"2026-05-07T22:44:27+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"espadvisorygroup.com","chain_hash":"","conditions":["Peer for espadvisorygroup per PERMIT_CHAIN d7148585; tier=peer resolves at view time from chain rung; token SHA-256 matches against s3://espadvisorygroup.com/permits/active.json; authority READ/COMMENT/ENDORSE/VOTE/RAISE_QUESTION per chain enrollment ENROLL_PEER"],"hash_short":"eb1b39542ab9"},{"hash":"25a1f523a2db2ac122b6e2cba209dc995e9ea5080098a7e03fbf6a2ec85e1e28","short_code":"2026-05-07T22:37:47+00:00","title":"PERMIT PO-2026-0032 — token grant for ron (espadvisorygroup_team)","kind":"token","principal":"ron","scope_tag":"espadvisorygroup_team","tier":"member","issued_at":"2026-05-07T22:37:47+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"espadvisorygroup.com","chain_hash":"","conditions":["Peer for espadvisorygroup per PERMIT_CHAIN d7148585; tier=peer resolves at view time from chain rung; token SHA-256 matches against s3://espadvisorygroup.com/permits/active.json; authority READ/COMMENT/ENDORSE/VOTE/RAISE_QUESTION per chain enrollment ENROLL_PEER"],"hash_short":"25a1f523a2db"},{"hash":"890434c717bc863b0d7aff575feeafaf60fc3e194b13c40f60bfbd1d037adec9","short_code":"2026-05-07T22:07:25+00:00","title":"PERMIT PO-2026-0031 — token grant for latif (espadvisorygroup_team)","kind":"token","principal":"latif","scope_tag":"espadvisorygroup_team","tier":"member","issued_at":"2026-05-07T22:07:25+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"espadvisorygroup.com","chain_hash":"","conditions":["Project lead for espadvisorygroup per PERMIT_CHAIN d7148585; tier=project_lead resolves at view time from chain rung; token SHA-256 matches against s3://espadvisorygroup.com/permits/active.json; supersedes the espadvisorygroup_landing-only restriction of PO-2026-0020 by adding team scope alongside"],"hash_short":"890434c717bc"},{"hash":"002971a3ad27cb4d4dfa5b0008f4e201b365afec3ddde15ccedcc815d73f1274","short_code":"2026-05-07T13:40:00+00:00","title":"PERMIT PO-2026-0028 — PDF/Package card render gate (procedure permit, 90-day initial)","kind":"procedure","principal":"doctortheisen","scope_tag":"pdf_card_render","tier":"service","issued_at":"2026-05-07T13:40:00+00:00","expires_at":"2026-08-05","surface":"espadvisorygroup.com","chain_hash":"","conditions":[["1","Card data carries TIMELINE_EVENT_SCHEMA shape (PO-2026-0024 conformance — all eight slots present)."],["2","SLOT_6_CARD_TYPE_AND_BODY.CARD_TYPE in {package, deliverable, ceremony, observation}."],["3","SLOT_6.CARD_BODY_HTML follows the package-item pattern: .package-eyebrow, h3 heading, p prose, .actions.package strip with six action buttons, .complete-row, .status."],["4","Six action types: COMMENT, ENDORSE, RELATE, COPY, REFERENCE, SHARE — match card_schema.json action_type catalog."],["5","SLOT_7_ACTION_LOG appends each action click as a stamped entry. APPEND-only (Lesson 5 + Rule 22). Latest entry IS state."],["6","Completion mark on .complete-row[data-card] is itself an APPENDED event, not UPDATE. Toggling complete = new entry on the slot."],["7","PDF asset reference (when card represents a document): SLOT_1.BACKWARD_UP includes the document's register block hash. Bytes archived at content-addressed blob (~/.ko/.dash/blobs/) or s3 (espadvisorygroup.com/packages/). Rule 25 — never delete-on-regenerate."],["8","SLOT_8_PERMIT_PANEL_BINDING.PERMIT_ID = 'PO-2026-0028'."],["9","SLOT_8.VIEWER_TIER read at view time from chain rung — never baked into token."],["10","Card payload delivered via JSON endpoint conforming to ~/.ko/services/permit_office/card_schema.json shape."]],"hash_short":"002971a3ad27"},{"hash":"30c7c9f6dba1952517015a793267f0a3f00b13f08f52406efa4c60e5ba81d100","short_code":"2026-05-07T10:30:00+00:00","title":"PRIVATE — PERMIT PO-2026-0027 — visibility policy for doctortheisen primitives","kind":"visibility_policy","principal":"doctortheisen","scope_tag":"doctortheisen_private","tier":"owner","issued_at":"2026-05-07T10:30:00+00:00","expires_at":"never","surface":"local","chain_hash":"","conditions":[["Primitives whose TYPE is in COVERED_PRIMITIVES inherit VISIBILITY=private at mint time."],["Title prefix 'PRIVATE — ' applied to covered primitives for visible filing in the register."],["Operator may grant agent read access on demand; no default cloud-agent routing."],["Content stays on local infrastructure paths."]],"hash_short":"30c7c9f6dba1"},{"hash":"853266bbeb8fd9d0109ca967a5d97a8c6714f21080c2c939d02fd6a766c6c976","short_code":"2026-05-07T10:26:16+00:00","title":"PERMIT PO-2026-0026 — token grant for doctortheisen (espadvisorygroup_team)","kind":"token","principal":"doctortheisen","scope_tag":"espadvisorygroup_team","tier":"owner","issued_at":"2026-05-07T10:26:16+00:00","expires_at":"never","surface":"espadvisorygroup.com","chain_hash":"","conditions":["architect tier; bearer sees all permits at scope espadvisorygroup_team and downstream (espadvisorygroup_landing, espadvisorygroup_kernel)"],"hash_short":"853266bbeb8f"},{"hash":"02185826275d8b1119da5164bd97201d3b08050a7825d445106a575f9f25b49b","short_code":"2026-05-07T10:23:32+00:00","title":"PERMIT PO-2026-0025 — token grant for doctortheisen (espadvisorygroup_team)","kind":"token","principal":"doctortheisen","scope_tag":"espadvisorygroup_team","tier":"member","issued_at":"2026-05-07T10:23:32+00:00","expires_at":"never","surface":"espadvisorygroup.com","chain_hash":"","conditions":["architect tier; bearer sees all permits at scope espadvisorygroup_team and downstream (espadvisorygroup_landing, espadvisorygroup_kernel)"],"hash_short":"02185826275d"},{"hash":"81425f698f88ed8e455c52d68415531981b36d304fc05f0533ee8b16e080417c","short_code":"2026-05-07T05:53:00+00:00","title":"PERMIT PO-2026-0024 — TIMELINE_EVENT_SCHEMA cross-service render gate (90-day initial procedure permit)","kind":"procedure","principal":"doctortheisen","scope_tag":"timeline_event_schema_v1","tier":"service","issued_at":"2026-05-07T05:53:00+00:00","expires_at":"2026-08-05","surface":"","chain_hash":"","conditions":[["1","Card data has TYPE=TIMELINE_EVENT (object root marker)."],["2","All eight slots are structurally present (not absent keys)."],["3","SLOT_1_EVENT_IDENTIFIER.STABLE_ID is non-empty and ID_KIND is one of the enum values (register_hash | submission_receipt | ticket_id)."],["4","SLOT_3_INTERVAL has START_ISO set, AND (END_ISO is set OR DURATION_S is a positive number OR OPEN=true)."],["5","SLOT_4_WITNESS_LIST has >= 1 entry."],["6","SLOT_5_PROJECT_SCOPE.SCOPE_TAG matches an active PERMIT_CHAIN scope (resolves via query.py search)."],["7","SLOT_5_PROJECT_SCOPE.CHAIN_OF_APPROVAL hash resolves to an existing PERMIT_CHAIN block."],["8","SLOT_8_PERMIT_PANEL_BINDING.PERMIT_ID is an active PERMIT (not revoked, not expired); resolves via permit_office.py list."],["9","SLOT_8_PERMIT_PANEL_BINDING.VIEWER_TIER ∈ {architect, project_lead, peer} and is read at view time from the viewer's chain rung — NOT baked into a token."],["10","Card payload is delivered via JSON endpoint conforming to ~/.ko/services/permit_office/card_schema.json."]],"hash_short":"81425f698f88"},{"hash":"a7a5c7b5bd8da456339583831438899624a1660ce81e8bfe8bf7e0233e0e38c0","short_code":"2026-05-07T04:02:50+00:00","title":"PERMIT PO-2026-0023 — token grant for doctortheisen (espadvisorygroup_kernel)","kind":"token","principal":"doctortheisen","scope_tag":"espadvisorygroup_kernel","tier":"owner","issued_at":"2026-05-07T04:02:50+00:00","expires_at":"never","surface":"espadvisorygroup.com","chain_hash":"","conditions":["Token sha256 alone is the bearer credential; raw token never stored in the register."],"hash_short":"a7a5c7b5bd8d"},{"hash":"24c93e8a3b1f69d08ac06eb10111a572a0003e2cdc7407571781a0fa84a0b8fa","short_code":"2026-05-06T14:05:00+00:00","title":"PERMIT PO-2026-0022 — procedure permit for transcription (mlx-whisper-turbo, no diarization)","kind":"procedure","principal":"doctortheisen","scope_tag":"transcription_service","tier":"service","issued_at":"2026-05-06T14:05:00+00:00","expires_at":"never","surface":"","chain_hash":"","conditions":[["Caller register fingerprint must appear in AUTHORIZED_REGISTERS at the time of the call."],["Per-call invocation routes a TRANSCRIPTION_RECEIPT with the OUTPUT_CONTRACT shape."],["Joules slot remains null on receipts until operator opts in."],["Diarization is OFF for this procedure; a separate procedure permit covers diarized whisperx."]],"hash_short":"24c93e8a3b1f"},{"hash":"2fe545aa7b8998ffc1c3d73db93fee58823b57c435f764c9cba367b3974877f6","short_code":"2026-05-05T06:50:24+00:00","title":"PERMIT PO-2026-0021 — token grant for doctortheisen (espadvisorygroup_landing)","kind":"token","principal":"doctortheisen","scope_tag":"espadvisorygroup_landing","tier":"owner","issued_at":"2026-05-05T06:50:24+00:00","expires_at":"never","surface":"espadvisorygroup.com","chain_hash":"","conditions":["Owner-tier permit on espadvisorygroup.com landing surface for doctortheisen. Issued live during Latif vision call (recording: doctortheisen_latif_web_vision_call.m4a; VERBATIM_CORPUS 430ecba9; WIRE WO 73722d11). Sibling to Latif's PO-2026-0020; both belong to the espadvisorygroup_owners PERMIT_GROUP minted in the same ceremony bundle."],"hash_short":"2fe545aa7b89"},{"hash":"63b37cec704660090d306f173472568f61fe9f15a4ec01e8c4b1e1aac1bdaba1","short_code":"2026-05-05T06:41:25+00:00","title":"PERMIT PO-2026-0020 — token grant for latif (espadvisorygroup_landing)","kind":"token","principal":"latif","scope_tag":"espadvisorygroup_landing","tier":"owner","issued_at":"2026-05-05T06:41:25+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"espadvisorygroup.com","chain_hash":"","conditions":["Owner-tier permit on espadvisorygroup.com landing surface for Latif Diop. Issued live during vision call (recording: doctortheisen_latif_web_vision_call.m4a; VERBATIM_CORPUS 430ecba9; WIRE WO 73722d11). Latif is the principal of espadvisorygroup.com; this is his canonical token for the surface."],"hash_short":"63b37cec7046"},{"hash":"5bd3b5222d57cf67e488b50b84b71bc8270b9d00ff6a245ae1e0fd880af8c123","short_code":"2026-05-05T05:37:42+00:00","title":"PERMIT PO-2026-0019 — token grant for architect (espadvisorygroup_landing)","kind":"token","principal":"architect","scope_tag":"espadvisorygroup_landing","tier":"owner","issued_at":"2026-05-05T05:37:42+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"espadvisorygroup.com","chain_hash":"","conditions":["Architect-tier permit on espadvisorygroup.com landing surface. Placeholder seed for the new domain; refine when Latif's vision lands and a scoped principal is named."],"hash_short":"5bd3b5222d57"},{"hash":"1492c78243a4a6c937d47d254cab30bef53a4235fce7c90d54973182575a9e15","short_code":"2026-05-04T23:53:40+00:00","title":"PERMIT PO-2026-0018 — token grant for latif (espdoyen_drafting_room)","kind":"token","principal":"latif","scope_tag":"espdoyen_drafting_room","tier":"reviewer","issued_at":"2026-05-04T23:53:40+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"espdoyen.com","chain_hash":"","conditions":["Token sha256 alone is the bearer credential; raw token never stored in the register."],"hash_short":"1492c78243a4"},{"hash":"035c94df8ebe2a1633ef45b2e51a4b7a1d76b651d64e594a610327316bfca14e","short_code":"2026-05-04T08:07:28+00:00","title":"PERMIT PO-2026-0017 — token grant for architect (permit_office_view)","kind":"token","principal":"architect","scope_tag":"permit_office_view","tier":"member","issued_at":"2026-05-04T08:07:28+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"doctortheisen.com","chain_hash":"","conditions":["Granted to Latif Diop for permit-office viewing. Full architect surface results because /permit-office gates on _is_authed() until WO 719bcb35 D14 lands."],"hash_short":"035c94df8ebe"},{"hash":"b7e623c8aa104b06acc5e65dd109c8a70f14be7ab85f4e8b78d4fa96143533ef","short_code":"2026-05-03T19:51:58+00:00","title":"PERMIT PO-2026-0016 — token grant for doctortheisen (wo_959ab3c2_query_observability)","kind":"token","principal":"doctortheisen","scope_tag":"wo_959ab3c2_query_observability","tier":"","issued_at":"2026-05-03T19:51:58+00:00","expires_at":"never","surface":"ko_register","chain_hash":"","conditions":[["Governs the register-resident verbatim bundler artifact bundle minted under WO 959ab3c2 query observability between 2026-05-03 13:33Z and 14:54Z. All eleven artifacts listed in NOTES are scoped to this PERMIT for governance purposes; access and audit flow through PO-2026-0016."],["Per WO eb0d397e directive: all permission management routed through Permit Office; no side-doors. This PERMIT brings prior unrouted mints under the office retroactively."]],"hash_short":"b7e623c8aa10"},{"hash":"a1aa281d68e57ff16934b9686a3ba607b2c5d7e63f7ca7e96e03a2c02200e3f2","short_code":"2026-05-01T17:00:07+00:00","title":"PERMIT PO-2026-0015 — token grant for latif (colonel_drafting_room)","kind":"token","principal":"latif","scope_tag":"colonel_drafting_room","tier":"","issued_at":"2026-05-01T17:00:07+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"doctortheisen.com","chain_hash":"","conditions":["Single principal: latif. Used to access /x/colonel Drafting Room surface for the K Nijaifan partnership-package team coordination space."],"hash_short":"a1aa281d68e5"},{"hash":"fbe962fd49242422d8b407235cac6ee476195d892841f0cae2c1e4e5ce3c25d1","short_code":"2026-05-01T06:42:34+00:00","title":"PERMIT PO-2026-0014 — token grant for doctortheisen (person_edit)","kind":"token","principal":"doctortheisen","scope_tag":"person_edit","tier":"","issued_at":"2026-05-01T06:42:34+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"doctortheisen.com","chain_hash":"","conditions":["Token sha256 alone is the bearer credential; raw token never stored in the register."],"hash_short":"fbe962fd4924"},{"hash":"5faed44a0f1457ed4ed321f65bfa019f61a64418803aa1495dc71fd28b80ae20","short_code":"2026-05-01T06:41:33+00:00","title":"PERMIT PO-2026-0013 — token grant for latif (person_view)","kind":"token","principal":"latif","scope_tag":"person_view","tier":"","issued_at":"2026-05-01T06:41:33+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"doctortheisen.com","chain_hash":"","conditions":["Token sha256 alone is the bearer credential; raw token never stored in the register."],"hash_short":"5faed44a0f14"},{"hash":"b5422063c0c652be4af68974bd728876a679d8257c318401e2589fa6c44338ad","short_code":"2026-04-30T14:48:37+00:00","title":"PERMIT PO-2026-0012 — token grant for latif (proverse_defense)","kind":"token","principal":"latif","scope_tag":"proverse_defense","tier":"","issued_at":"2026-04-30T14:48:37+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"doctortheisen.com","chain_hash":"","conditions":["Visibility for /tickets/recording-upload and /r/<receipt> ticket timelines under scope_tag=proverse_defense."],"hash_short":"b5422063c0c6"},{"hash":"8ad14114c9d8d2d87df1cbe925bb2e5dbb648733ba4e8084311f79c29310fee1","short_code":"2026-04-30T14:47:37+00:00","title":"PERMIT PO-2026-0011 — token grant for latif (colonel_saudi_arabian)","kind":"token","principal":"latif","scope_tag":"colonel_saudi_arabian","tier":"","issued_at":"2026-04-30T14:47:37+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"doctortheisen.com","chain_hash":"","conditions":["Visibility for /tickets/recording-upload and /r/<receipt> ticket timelines under scope_tag=colonel_saudi_arabian."],"hash_short":"8ad14114c9d8"},{"hash":"eb56a4fb89076ee3f405345eceece9fe37b2656bb94cc890f9fc57707b1b327e","short_code":"2026-04-30T14:42:18+00:00","title":"PERMIT PO-2026-0010 — token grant for latif (esp_usa)","kind":"token","principal":"latif","scope_tag":"esp_usa","tier":"","issued_at":"2026-04-30T14:42:18+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"doctortheisen.com","chain_hash":"","conditions":["Visibility for /tickets/recording-upload and /r/<receipt> ticket timelines under scope_tag=esp_usa."],"hash_short":"eb56a4fb8907"},{"hash":"ea01269b38a0a4d59deb59d6a415df41e001562c26b48ef6b1577309ee0b22f4","short_code":"2026-04-30T14:38:21+00:00","title":"PERMIT PO-2026-0009 — token grant for architect (architect)","kind":"token","principal":"architect","scope_tag":"architect","tier":"","issued_at":"2026-04-30T14:38:21+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"doctortheisen.com","chain_hash":"","conditions":["Visibility for /tickets/recording-upload and /r/<receipt> ticket timelines under scope_tag=architect."],"hash_short":"ea01269b38a0"},{"hash":"2d55ce2d3edc3cc4bc9ccbdb018040cb846570d2eb0a9b0ff0e5c285929b3803","short_code":"2026-04-30T14:36:05+00:00","title":"PERMIT PO-2026-0008 — token grant for architect (engineer)","kind":"token","principal":"architect","scope_tag":"engineer","tier":"","issued_at":"2026-04-30T14:36:05+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"doctortheisen.com","chain_hash":"","conditions":["Visibility for /tickets/recording-upload and /r/<receipt> ticket timelines."],"hash_short":"2d55ce2d3edc"},{"hash":"049bceb5be3ab6597ba663b0389f2bdf8b553afdbd5495afa1cdf3d65d0fb077","short_code":"2026-04-30T09:30:06+00:00","title":"PERMIT PO-2026-0007 — token grant for daouia (daouiaamrir_architecture)","kind":"token","principal":"daouia","scope_tag":"daouiaamrir_architecture","tier":"","issued_at":"2026-04-30T09:30:06+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"doctortheisen.com","chain_hash":"","conditions":[["Daouia's token from the original env. Validates against daouia* scope or daouiaamrir-intake bucket."],["Issued retroactively 2026-04-30 to bring the existing pre-PERMIT_OFFICE token under register governance."]],"hash_short":"049bceb5be3a"},{"hash":"a1ef81d62e5bdb8b101c8acaa93741ddc1f2f63dbb2abd2efc2150193fdf6138","short_code":"2026-04-30T09:29:33+00:00","title":"PERMIT PO-2026-0006 — token grant for latif (latifdiop_architecture)","kind":"token","principal":"latif","scope_tag":"latifdiop_architecture","tier":"","issued_at":"2026-04-30T09:29:33+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"doctortheisen.com","chain_hash":"","conditions":[["Latif's new token from the 2026-04-30 email landing the K Nijaifan dashboard."],["Additive — issued alongside PO-2026-0005 (Latif old) so old links keep working until intentionally revoked."]],"hash_short":"a1ef81d62e5b"},{"hash":"f9b7ad7e8b50c7ab0a4755df427cafdefa42759405870d9ef22bb9883a284bda","short_code":"2026-04-30T09:28:36+00:00","title":"PERMIT PO-2026-0005 — token grant for latif (latifdiop_architecture)","kind":"token","principal":"latif","scope_tag":"latifdiop_architecture","tier":"","issued_at":"2026-04-30T09:28:36+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"doctortheisen.com","chain_hash":"","conditions":[["Latif's original token from the 2026-04-25 link operator pasted in chat. Validates against latif* scope or latifdiop.com bucket."],["Issued retroactively 2026-04-30 — kept active for ~8 months so existing emailed links don't break."]],"hash_short":"f9b7ad7e8b50"},{"hash":"5941cbe755b70ed9a0715a5dfd16a1baf8719aedfd9bfb6627e826860fed503f","short_code":"2026-04-30T09:27:55+00:00","title":"PERMIT PO-2026-0004 — token grant for architect (system_architecture)","kind":"token","principal":"architect","scope_tag":"system_architecture","tier":"","issued_at":"2026-04-30T09:27:55+00:00","expires_at":"never","surface":"doctortheisen.com","chain_hash":"","conditions":[["Architect token. Validates against ANY scope. Sole bearer is doctortheisen at the operator workbench."],["Issued retroactively 2026-04-30 to bring the existing pre-PERMIT_OFFICE token under register governance."]],"hash_short":"5941cbe755b7"},{"hash":"00df22d6ad793dc9ad64cfc45a8336470d7e5d6852c0c0d9b1c23ba722ee62fa","short_code":"2026-04-24T17:30:00+00:00","title":"PERMIT PO-2026-0003 — WorkOrderBundler (first non-genesis surface bundler permit; retroactive)","kind":"","principal":"","scope_tag":"","tier":"","issued_at":"2026-04-24T17:30:00+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"","chain_hash":"","conditions":[["lineage_embed_required","Every WO produced by the bundler embeds BUNDLER_LINEAGE pointing at milestone 528a9f9e, lens 93b946e4, P18 c6772c2a, pioneer pair fec9d061+2725deeb, primitive 7531c740"],["structural_criterion","CRITERION typed-hole slots per Rule 16 + Rule 21; no prose; no STATUS field"],["forbidden_fields","No STATUS / PARENT / CHILD per Rule 3 + Rule 16"],["yubikey_for_mint","Actual WO mints flow through mint.py HARDWARE attestation; bundler produces content, operator authorizes write"],["plain_text_inline","Rule 28 — narrative content inline, sha256 + bytes alongside"],["no_operator_python_edited","feedback_code_is_operators.md — bundler declares its own surface only, does not modify other Python"],["scope_rule_governs","DOWN_RECURSIVE + HORIZONTAL + UPWARD-via-approval-chain per ANNOUNCEMENT_GENESIS 379328bf section 3"]],"hash_short":"00df22d6ad79"},{"hash":"20b48cd13989069a0cfe7684ee552eae8a98b7bef7a2503dcdc0daa8cbf8f668","short_code":"2026-04-24T17:00:00+00:00","title":"PERMIT PO-2026-0002 — REGISTER_VOCABULARY_CATALOG (188dc612); second permit ever; companion to PO-2026-0001","kind":"","principal":"","scope_tag":"","tier":"","issued_at":"2026-04-24T17:00:00+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"","chain_hash":"","conditions":[["project_scope_excluded","Project-scoped vocabulary (CITI_IRB_*, dissertation, ESP, calendar shadow) governed by respective project conventions; Office is escalation surface for cross-project federation"],["kind_open_set","KIND seed sets are open; new KIND values do not require new permit"],["new_type_amendment_protocol","New TYPEs added to system-foundational scope follow the catalog amendment protocol: mint first instance → Office submission → review → permit → new catalog mint → announce at KIND=permit_issued"],["tags_flow_freely","TAGs continue without permit (findability markers, not type carriers)"],["cycles_with_PO_2026_0001","Catalog and permit cycle together at renewal review"]],"hash_short":"20b48cd13989"},{"hash":"8e44103f03264a5049dd6eefbd0088bb46066ab4a24004805f61e999f3b98745","short_code":"2026-04-24T16:00:00+00:00","title":"PERMIT PO-2026-0001 — Announcement primitive (5th vertical surface); retroactive issuance, first permit ever","kind":"","principal":"","scope_tag":"","tier":"","issued_at":"2026-04-24T16:00:00+00:00","expires_at":"2026-12-31T23:59:59+00:00","surface":"","chain_hash":"","conditions":[["scope_rule_governs","Scope rule DOWN_RECURSIVE + HORIZONTAL + UPWARD-via-approval-chain governs every emission"],["required_fields","ROLE, PERMISSION_DOMAIN, KIND, HEADLINE, BODY, EMITTED_AT per SHAPE_PROPOSAL"],["genesis_only_fields_not_reused","MARKER_COMPOSITION, VERTICAL_SURFACE_SIBLINGS, SHAPE_PROPOSAL not reused outside genesis blocks"],["inline_plain_text","PLAIN_TEXT inline per Rule 28"],["approval_chain_for_upward","Upward propagation out of a permission domain routes through the domain's approval-chain anchor"]],"hash_short":"8e44103f0326"},{"hash":"5d4080a9d4d4db436b2132dc430c52256c37085bf427b2f0279abc845bfa52a3","short_code":"","title":"PERMIT — esp_teal palette + light/dark natural transformation (style authority)","kind":"style_authority","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"5d4080a9d4d4"},{"hash":"d13756523cd6e6c7787eb5db60cd136afa43b527a1396aa1002e553340003e6f","short_code":"","title":"PERMIT — event_card_hello_world (composition of 5 register-served parts)","kind":"component_composition","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"d13756523cd6"},{"hash":"701e1bbe61509fb92ea2413c6433c187b9865c354f61c24a71bc7232dcef6b52","short_code":"","title":"SOP — STATIC_FILE_FALLBACK sentinel wrap for the register pivot (component-permit-gated render path)","kind":"procedure","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"701e1bbe6150"},{"hash":"7bcb59cdab257587043e68f83791235d7a66efbaf1c0867935e84cdafd921d42","short_code":"","title":"PERMIT — colonel_principal_panel (component composition pattern; team timeline + permit-chain overlay)","kind":"component_composition","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"7bcb59cdab25"},{"hash":"5f3a1c2bb670442cd1fd491d7cf52cf128ecb4b362017eee27189cc372b0ffd4","short_code":"","title":"PERMIT — continue_card (component pattern, token surface entry posture)","kind":"component","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"5f3a1c2bb670"},{"hash":"10bbe55ac1d1274054beeea41e9535091554e1d62f30b7d67c502ee1db097f0f","short_code":"","title":"PERMIT — magic_code_redeem_form (component pattern, redeem-code surface)","kind":"component","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"10bbe55ac1d1"},{"hash":"6d12f2a4a54d18504c018c13a446450e07b81798bd318809908483393f3f4aab","short_code":"","title":"PERMIT — magic_code_request_form (component pattern, request-access surface)","kind":"component","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"6d12f2a4a54d"},{"hash":"7b5c7bfda347f8bec42cf8c0ca892aa867670cf325321137e02912afaf444402","short_code":"","title":"PERMIT — intake_form (component pattern, x-colonel-upload surface — semantically ticket-intake)","kind":"component","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"7b5c7bfda347"},{"hash":"87308794f865f9626b9d604f6c196e45f5277c0ce3ee8322c18547f70a571e58","short_code":"","title":"PERMIT — ticket_list_card (component pattern, x-colonel-tickets surface)","kind":"component","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"87308794f865"},{"hash":"e34f6e8e614521da84c60c2a7719ccc31ff8c58a6dd1804ee6b5dc8a4b2a2a3f","short_code":"","title":"PERMIT — document_attachment_card (component pattern, Plate X)","kind":"component","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"e34f6e8e6145"},{"hash":"f919946cac561214b6fd3e14a61f0d4eecfcd8271f5aedc3968525168079bf3e","short_code":"","title":"PERMIT — package_composition_list (component pattern, Plate IX)","kind":"component","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"f919946cac56"},{"hash":"c076478b8791d392801415e9c3bb02a5ecd1d2b7d71b4271ddd6e5f7156bb5d9","short_code":"","title":"PERMIT — scope_nested_registers (component pattern, Plate VIII)","kind":"component","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"c076478b8791"},{"hash":"5f8a6b38e6c896e9bf1d641cffa71cbed64e2e5376461009ed6f1ef50893b601","short_code":"","title":"PERMIT — chain_of_approval_tree (component pattern, Plate VII)","kind":"component","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"5f8a6b38e6c8"},{"hash":"dd1d96f24774f84ea430c5d8ae36df6d312336a1a34249adf6660aefa9a9117e","short_code":"","title":"PERMIT — chain_of_approval_rungs (component pattern, Plate VI)","kind":"component","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"dd1d96f24774"},{"hash":"18f2532479ce344e4b8a156e5e03d9dcd00cb269a9d2d719053579e90ced77f5","short_code":"","title":"PERMIT — action_log_press_set (component pattern, Plate IV)","kind":"component","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"18f2532479ce"},{"hash":"e9e0c017e320d9c6815f074cb752670f06e7c3fc958803cfa45fa83b97a33d99","short_code":"","title":"PERMIT — home_profile_panel (component pattern, Plate II)","kind":"component","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"e9e0c017e320"},{"hash":"47cae869f34fe39b698ae0ec19a6eb3992365535c459cd672c1ab214c28cdc74","short_code":"","title":"PERMIT — token_presentation_card (component pattern, Plate I)","kind":"component","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"47cae869f34f"},{"hash":"495e9df793fa28ea56df83deb72e263f870927acc39ff1b0d516e0409e7e581a","short_code":"","title":"PERMIT — Typed-Hole Lexicon (four kinds of nothing on the folio)","kind":"lexicon","principal":"doctortheisen","scope_tag":"","tier":"architect","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"495e9df793fa"},{"hash":"61b3e469d9935b6d84eb28242e99ab2fdf7c75faf156a5932c6899618a6e5dc0","short_code":"","title":"AGENT_ACADEMY L2 application — this-instance: operator's MacBook Pro M3 Max academy at ~/.ko/.dash/","kind":"agent_academy_application","principal":"doctortheisen","scope_tag":"agent_academy_this_instance_macbook_pro_m3_max","tier":"","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"61b3e469d993"},{"hash":"de97b524e781e533ea9cde2aab16389bab532c7d42ef10bb06b7fb3a5e7f7f32","short_code":"","title":"PERMIT — federation_sister.db (local sister register for Lightsail federation)","kind":"local_artifact_declaration","principal":"","scope_tag":"lightsail_federation","tier":"service","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"de97b524e781"},{"hash":"9060dc16cf1407b4ccda77967e0ca62cc111aa36f1cb5289793f1cd4b659f02f","short_code":"","title":"PERMIT — REVOKE local services/fastapi; Lightsail server canonical","kind":"revocation","principal":"","scope_tag":"","tier":"","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"9060dc16cf14"},{"hash":"110b30098ef286b4ad3734486924adf88e991a9c4e66935101a1f0a2a4948a03","short_code":"","title":"PermitBundler — bundle PERMIT block + unbundle via v_permit","kind":"bundler_declaration","principal":"","scope_tag":"","tier":"","issued_at":"","expires_at":"","surface":"espadvisorygroup.com (Lightsail FastAPI canonical)","chain_hash":"","conditions":[["All future PERMIT mints carry the INSIDE fields required by the unbundle view: PRINCIPAL or SCOPE_TAG (one required), KIND, ISSUED_AT, plus EXPIRES_AT/TIER/SURFACE/CONDITIONS where applicable."],["Sister register schema (CREATE TABLE v_permit) applies to local ~/.ko/services/fastapi/register.db AND the deployed copy at /home/admin/register.db on Lightsail. Schemas must match for federation."],["Backfill: every existing PERMIT MINT in the sister register is read, INSIDE content fetched via store.py, and a v_permit row inserted."],["FastAPI permits/router.py is updated to query v_permit. The old LIKE-pattern unbundle is removed."]],"hash_short":"110b30098ef2"},{"hash":"f89c812b4c36791b433036e4422e8217d2a0fe3ea6743e4110b16784f5e37f5b","short_code":"","title":"PERMIT PO-2026-0038 — FRAME for espadvisorygroup.com delivery (central FRAME-permit, FIRST_INSTANCE; envelope per PO-2026-0029; composes from team chain d7148585, sister-register genesis f3363f61, deploy receipt 2026-05-04, README disambiguation 40db76e2)","kind":"frame","principal":"","scope_tag":"espadvisorygroup","tier":"governance","issued_at":"","expires_at":"never","surface":"","chain_hash":"","conditions":[["WHAT_IT_COMPOSES_FROM hashes resolve to active register blocks (no REVOKE outstanding on any of them)."],["INTERVAL.OPEN remains true; setting OPEN=false (via amendment or REVOKE) closes the FRAME."],["Out-of-frame items remain absent from conferred ability set; out-of-frame is structural absence, not active denial (Pillar 1)."],["Future agent classification of items uses this permit's IN_SCOPE / OUT_OF_FRAME lists as the canonical boundary; codomain reasoning, not token-similarity (per Agent 3 finding)."]],"hash_short":"f89c812b4c36"},{"hash":"70009aecb04577f02d2f95e5c68fbc23086e60d5e82316d8fde527d310d37da2","short_code":"","title":"PERMIT PO-2026-0033 — Artifact index (TOC) for Client::Colonel engagement (PO-2026-0029)","kind":"artifact_index","principal":"doctortheisen","scope_tag":"espadvisorygroup_client_colonel","tier":"client_engagement","issued_at":"","expires_at":"never","surface":"","chain_hash":"","conditions":[],"hash_short":"70009aecb045"},{"hash":"58a3870bd8fc428f872f709999412403f13b626bfd998bef22790e449dbb8380","short_code":"","title":"PERMIT PO-2026-0031 — FOLIO model artifact for Latif (TIMELINE_EVENT_SCHEMA visual reference, panel-delivered)","kind":"document","principal":"","scope_tag":"espadvisorygroup_team","tier":"","issued_at":"","expires_at":"2026-08-05 (matches producing procedure permit PO-2026-0024)","surface":"espadvisorygroup.com — Latif's panel (/x/latif/ Lead Hub) via receipt-query auto-surfacing","chain_hash":"","conditions":[],"hash_short":"58a3870bd8fc"},{"hash":"d87adea02c57f336c5a1470df422a4475583d2711bf0f2a0102ba705c4ab613d","short_code":"","title":"PERMIT PO-2026-0030 — Approval chain for Permit Office inbox (architect_permit_card → ticket_center → architect_response → submitter_messages → catalog)","kind":"procedure","principal":"doctortheisen","scope_tag":"permit_office_inbox","tier":"service","issued_at":"","expires_at":"never","surface":"","chain_hash":"","conditions":[],"hash_short":"d87adea02c57"},{"hash":"5ca9a980447c09364d88300d7366428822c56d6f90bafbe49e8b1b440249572f","short_code":"","title":"PERMIT PO-2026-0029 — Client::Colonel engagement (drafting-room access for ESP TEAM, panel renders on team page)","kind":"client_engagement","principal":"doctortheisen","scope_tag":"espadvisorygroup","tier":"client_engagement","issued_at":"","expires_at":"never","surface":"","chain_hash":"","conditions":[["1","TEAM_CHAIN.CHAIN_BLOCK_HASH (d7148585) resolves to an active PERMIT_CHAIN with TYPE=PERMIT_CHAIN."],["2","All 5 principals in TEAM_CHAIN.ROSTER_5 have ENROLL_* events in the chain with no outstanding REVOKE_ENROLLMENT."],["3","Drafting-room surface (espadvisorygroup.com/x/colonel/) is reachable and controlled by the operator."],["4","Engagement INTERVAL.OPEN is true; setting OPEN=false (via amendment or revoke) closes the team's authorization."],["5","Panel-card render on the team page (espadvisorygroup.com/x/team.html) sources its data from this permit; revoking this permit removes the panel from the team-page render."],["6","VIEWER_TIER on the panel-card is read at view time from the viewer's chain rung in d7148585 — never baked into any token."],["7","Per-event TIMELINE_EVENT cards on the drafting-room timeline bind this permit in slot 8 (PO-2026-0029); validation per PO-2026-0024 conditions cascades."]],"hash_short":"5ca9a980447c"},{"hash":"550afa3410a33f0b71f9bf58fb546014b38afa23aa1a9bec3a5cb06cb3a31b30","short_code":"","title":"PERMIT — Permit-chain surface pattern (UI permit, pattern-level)","kind":"ui_pattern_charter","principal":"","scope_tag":"","tier":"","issued_at":"","expires_at":"","surface":"","chain_hash":"","conditions":[],"hash_short":"550afa3410a3"},{"hash":"25b60769a11db72b40195c22146132e8f81a426c5fe1f6d795e100172f842b9d","short_code":"","title":"PERMIT PO-2026-0028 — CARD_MODAL_EXPAND_SURFACE component (universal-visibility expand affordance)","kind":"component","principal":"doctortheisen","scope_tag":"timeline_event_schema_v1","tier":"component","issued_at":"","expires_at":"2026-08-05","surface":"","chain_hash":"","conditions":[["1","data-component-permit attribute on the header element matches PO-2026-0028."],["2","data-component-permit attribute on the dialog element matches PO-2026-0028."],["3","Click on header (or expand button within) -> dialog.showModal() invoked."],["4","Click on backdrop / X / Esc -> dialog.close() invoked (Esc native via showModal)."],["5","Permit-panel clicks do NOT bubble to modal-open (event.stopPropagation enforced at panel root)."],["6","Affordance renders for every viewer_tier value (architect | project_lead | peer)."]],"hash_short":"25b60769a11d"}]}