diff --git a/docs/architecture/excalidraw/01-what-pushgate-does.excalidraw b/docs/architecture/excalidraw/01-what-pushgate-does.excalidraw new file mode 100644 index 0000000..42b3322 --- /dev/null +++ b/docs/architecture/excalidraw/01-what-pushgate-does.excalidraw @@ -0,0 +1,1005 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "pg01-title", + "type": "text", + "x": 40, + "y": 28, + "width": 760, + "height": 34, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101000, + "version": 1, + "versionNonce": 101001, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 26, + "fontFamily": 5, + "text": "What ai-pushgate does", + "rawText": "What ai-pushgate does", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "What ai-pushgate does", + "lineHeight": 1.2 + }, + { + "id": "pg01-dev-box", + "type": "rectangle", + "x": 40, + "y": 160, + "width": 150, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101002, + "version": 1, + "versionNonce": 101003, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg01-dev-text", + "type": "text", + "x": 52, + "y": 172, + "width": 126, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101004, + "version": 1, + "versionNonce": 101005, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "Developer", + "rawText": "Developer", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Developer", + "lineHeight": 1.2 + }, + { + "id": "pg01-push-box", + "type": "rectangle", + "x": 240, + "y": 160, + "width": 150, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101006, + "version": 1, + "versionNonce": 101007, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg01-push-text", + "type": "text", + "x": 252, + "y": 172, + "width": 126, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101008, + "version": 1, + "versionNonce": 101009, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "git push", + "rawText": "git push", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "git push", + "lineHeight": 1.2 + }, + { + "id": "pg01-hook-box", + "type": "rectangle", + "x": 440, + "y": 150, + "width": 180, + "height": 90, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101010, + "version": 1, + "versionNonce": 101011, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg01-hook-text", + "type": "text", + "x": 452, + "y": 162, + "width": 156, + "height": 66, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101012, + "version": 1, + "versionNonce": 101013, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "Git pre-push\nhook", + "rawText": "Git pre-push\nhook", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Git pre-push\nhook", + "lineHeight": 1.2 + }, + { + "id": "pg01-gate-box", + "type": "rectangle", + "x": 690, + "y": 105, + "width": 280, + "height": 220, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101014, + "version": 1, + "versionNonce": 101015, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg01-gate-title", + "type": "text", + "x": 710, + "y": 120, + "width": 240, + "height": 30, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101016, + "version": 1, + "versionNonce": 101017, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Pushgate local gate", + "rawText": "Pushgate local gate", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Pushgate local gate", + "lineHeight": 1.2 + }, + { + "id": "pg01-det-box", + "type": "rectangle", + "x": 725, + "y": 165, + "width": 210, + "height": 55, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ebfbee", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101018, + "version": 1, + "versionNonce": 101019, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg01-det-text", + "type": "text", + "x": 737, + "y": 177, + "width": 186, + "height": 31, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101020, + "version": 1, + "versionNonce": 101021, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "Deterministic\nchecks", + "rawText": "Deterministic\nchecks", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Deterministic\nchecks", + "lineHeight": 1.2 + }, + { + "id": "pg01-ai-box", + "type": "rectangle", + "x": 725, + "y": 240, + "width": 210, + "height": 55, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ebfbee", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101022, + "version": 1, + "versionNonce": 101023, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg01-ai-text", + "type": "text", + "x": 737, + "y": 252, + "width": 186, + "height": 31, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101024, + "version": 1, + "versionNonce": 101025, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "Local AI\nreview", + "rawText": "Local AI\nreview", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Local AI\nreview", + "lineHeight": 1.2 + }, + { + "id": "pg01-remote-box", + "type": "rectangle", + "x": 1050, + "y": 150, + "width": 210, + "height": 90, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "#e5dbff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101026, + "version": 1, + "versionNonce": 101027, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg01-remote-text", + "type": "text", + "x": 1062, + "y": 162, + "width": 186, + "height": 66, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101028, + "version": 1, + "versionNonce": 101029, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "Remote / CI / PR\nfinal enforcement", + "rawText": "Remote / CI / PR\nfinal enforcement", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Remote / CI / PR\nfinal enforcement", + "lineHeight": 1.2 + }, + { + "id": "pg01-block-box", + "type": "rectangle", + "x": 735, + "y": 390, + "width": 200, + "height": 70, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101030, + "version": 1, + "versionNonce": 101031, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg01-block-text", + "type": "text", + "x": 747, + "y": 402, + "width": 176, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101032, + "version": 1, + "versionNonce": 101033, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "BLOCK\nstops locally", + "rawText": "BLOCK\nstops locally", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "BLOCK\nstops locally", + "lineHeight": 1.2 + }, + { + "id": "pg01-warn-box", + "type": "rectangle", + "x": 1010, + "y": 390, + "width": 220, + "height": 70, + "angle": 0, + "strokeColor": "#e67700", + "backgroundColor": "#ffe8cc", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101034, + "version": 1, + "versionNonce": 101035, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg01-warn-text", + "type": "text", + "x": 1022, + "y": 402, + "width": 196, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101036, + "version": 1, + "versionNonce": 101037, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "WARN\nasks confirmation", + "rawText": "WARN\nasks confirmation", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "WARN\nasks confirmation", + "lineHeight": 1.2 + }, + { + "id": "pg01-bypass-label", + "type": "text", + "x": 510, + "y": 70, + "width": 470, + "height": 32, + "angle": 0, + "strokeColor": "#5f3dc4", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101038, + "version": 1, + "versionNonce": 101039, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "git push --no-verify: local hook bypass; remote checks still apply", + "rawText": "git push --no-verify: local hook bypass; remote checks still apply", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "git push --no-verify: local hook bypass; remote checks still apply", + "lineHeight": 1.2 + }, + { + "id": "pg01-a-dev-push", + "type": "arrow", + "x": 190, + "y": 195, + "width": 50, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101040, + "version": 1, + "versionNonce": 101041, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 50, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg01-a-push-hook", + "type": "arrow", + "x": 390, + "y": 195, + "width": 50, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101042, + "version": 1, + "versionNonce": 101043, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 50, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg01-a-hook-gate", + "type": "arrow", + "x": 620, + "y": 195, + "width": 70, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101044, + "version": 1, + "versionNonce": 101045, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg01-a-gate-remote", + "type": "arrow", + "x": 970, + "y": 195, + "width": 80, + "height": 0, + "angle": 0, + "strokeColor": "#2b8a3e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101046, + "version": 1, + "versionNonce": 101047, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 80, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg01-a-gate-block", + "type": "arrow", + "x": 835, + "y": 325, + "width": 0, + "height": 65, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101048, + "version": 1, + "versionNonce": 101049, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 65 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg01-a-gate-warn", + "type": "arrow", + "x": 930, + "y": 325, + "width": 155, + "height": 65, + "angle": 0, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101050, + "version": 1, + "versionNonce": 101051, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 155, + 65 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg01-a-warn-remote", + "type": "arrow", + "x": 1120, + "y": 390, + "width": 30, + "height": -150, + "angle": 0, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101052, + "version": 1, + "versionNonce": 101053, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 30, + -150 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg01-a-bypass", + "type": "arrow", + "x": 315, + "y": 155, + "width": 815, + "height": -5, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101054, + "version": 1, + "versionNonce": 101055, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 815, + -5 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + } + ], + "appState": { + "viewBackgroundColor": "#ffffff", + "gridSize": 20 + }, + "files": {} +} diff --git a/docs/architecture/excalidraw/02-installation-and-delegation.excalidraw b/docs/architecture/excalidraw/02-installation-and-delegation.excalidraw new file mode 100644 index 0000000..c81645f --- /dev/null +++ b/docs/architecture/excalidraw/02-installation-and-delegation.excalidraw @@ -0,0 +1,1140 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "pg02-title", + "type": "text", + "x": 40, + "y": 28, + "width": 760, + "height": 34, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101056, + "version": 1, + "versionNonce": 101057, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 26, + "fontFamily": 5, + "text": "Installation and hook delegation", + "rawText": "Installation and hook delegation", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Installation and hook delegation", + "lineHeight": 1.2 + }, + { + "id": "pg02-install-label", + "type": "text", + "x": 40, + "y": 88, + "width": 260, + "height": 28, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101058, + "version": 1, + "versionNonce": 101059, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Install time", + "rawText": "Install time", + "textAlign": "left", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Install time", + "lineHeight": 1.2 + }, + { + "id": "pg02-user-box", + "type": "rectangle", + "x": 40, + "y": 130, + "width": 150, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101060, + "version": 1, + "versionNonce": 101061, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg02-user-text", + "type": "text", + "x": 52, + "y": 142, + "width": 126, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101062, + "version": 1, + "versionNonce": 101063, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "User", + "rawText": "User", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "User", + "lineHeight": 1.2 + }, + { + "id": "pg02-install-box", + "type": "rectangle", + "x": 245, + "y": 130, + "width": 180, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101064, + "version": 1, + "versionNonce": 101065, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg02-install-text", + "type": "text", + "x": 257, + "y": 142, + "width": 156, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101066, + "version": 1, + "versionNonce": 101067, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "install.sh\n--template", + "rawText": "install.sh\n--template", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "install.sh\n--template", + "lineHeight": 1.2 + }, + { + "id": "pg02-runner-box", + "type": "rectangle", + "x": 505, + "y": 95, + "width": 230, + "height": 70, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101068, + "version": 1, + "versionNonce": 101069, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg02-runner-text", + "type": "text", + "x": 517, + "y": 107, + "width": 206, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101070, + "version": 1, + "versionNonce": 101071, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Managed runner\n~/.pushgate/bin/pushgate", + "rawText": "Managed runner\n~/.pushgate/bin/pushgate", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Managed runner\n~/.pushgate/bin/pushgate", + "lineHeight": 1.2 + }, + { + "id": "pg02-hook-box", + "type": "rectangle", + "x": 505, + "y": 190, + "width": 230, + "height": 70, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101072, + "version": 1, + "versionNonce": 101073, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg02-hook-text", + "type": "text", + "x": 517, + "y": 202, + "width": 206, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101074, + "version": 1, + "versionNonce": 101075, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Repo hook\n.git/hooks/pre-push", + "rawText": "Repo hook\n.git/hooks/pre-push", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Repo hook\n.git/hooks/pre-push", + "lineHeight": 1.2 + }, + { + "id": "pg02-config-box", + "type": "rectangle", + "x": 815, + "y": 145, + "width": 210, + "height": 70, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101076, + "version": 1, + "versionNonce": 101077, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg02-config-text", + "type": "text", + "x": 827, + "y": 157, + "width": 186, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101078, + "version": 1, + "versionNonce": 101079, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": ".pushgate.yml\nwritten if absent", + "rawText": ".pushgate.yml\nwritten if absent", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": ".pushgate.yml\nwritten if absent", + "lineHeight": 1.2 + }, + { + "id": "pg02-runtime-label", + "type": "text", + "x": 40, + "y": 335, + "width": 280, + "height": 28, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101080, + "version": 1, + "versionNonce": 101081, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Runtime delegation", + "rawText": "Runtime delegation", + "textAlign": "left", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Runtime delegation", + "lineHeight": 1.2 + }, + { + "id": "pg02-git-hook-box", + "type": "rectangle", + "x": 40, + "y": 385, + "width": 190, + "height": 75, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101082, + "version": 1, + "versionNonce": 101083, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg02-git-hook-text", + "type": "text", + "x": 52, + "y": 397, + "width": 166, + "height": 51, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101084, + "version": 1, + "versionNonce": 101085, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Git invokes\npre-push hook", + "rawText": "Git invokes\npre-push hook", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Git invokes\npre-push hook", + "lineHeight": 1.2 + }, + { + "id": "pg02-resolve-box", + "type": "rectangle", + "x": 300, + "y": 385, + "width": 200, + "height": 75, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101086, + "version": 1, + "versionNonce": 101087, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg02-resolve-text", + "type": "text", + "x": 312, + "y": 397, + "width": 176, + "height": 51, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101088, + "version": 1, + "versionNonce": 101089, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Resolve runner\npath", + "rawText": "Resolve runner\npath", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Resolve runner\npath", + "lineHeight": 1.2 + }, + { + "id": "pg02-protocol-diamond", + "type": "diamond", + "x": 575, + "y": 365, + "width": 160, + "height": 115, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#fff3bf", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101090, + "version": 1, + "versionNonce": 101091, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg02-protocol-text", + "type": "text", + "x": 597, + "y": 393, + "width": 116, + "height": 59, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101092, + "version": 1, + "versionNonce": 101093, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "protocol\n== 1?", + "rawText": "protocol\n== 1?", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "protocol\n== 1?", + "lineHeight": 1.2 + }, + { + "id": "pg02-exec-box", + "type": "rectangle", + "x": 820, + "y": 385, + "width": 220, + "height": 75, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101094, + "version": 1, + "versionNonce": 101095, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg02-exec-text", + "type": "text", + "x": 832, + "y": 397, + "width": 196, + "height": 51, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101096, + "version": 1, + "versionNonce": 101097, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "exec pushgate\npre-push", + "rawText": "exec pushgate\npre-push", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "exec pushgate\npre-push", + "lineHeight": 1.2 + }, + { + "id": "pg02-lookup-box", + "type": "rectangle", + "x": 300, + "y": 510, + "width": 270, + "height": 95, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "#e5dbff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101098, + "version": 1, + "versionNonce": 101099, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg02-lookup-text", + "type": "text", + "x": 312, + "y": 522, + "width": 246, + "height": 71, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101100, + "version": 1, + "versionNonce": 101101, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 15, + "fontFamily": 5, + "text": "Runner lookup order\n1 git config pushgate.runner\n2 PUSHGATE_RUNNER\n3 managed install", + "rawText": "Runner lookup order\n1 git config pushgate.runner\n2 PUSHGATE_RUNNER\n3 managed install", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Runner lookup order\n1 git config pushgate.runner\n2 PUSHGATE_RUNNER\n3 managed install", + "lineHeight": 1.2 + }, + { + "id": "pg02-a-user-install", + "type": "arrow", + "x": 190, + "y": 165, + "width": 55, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101102, + "version": 1, + "versionNonce": 101103, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 55, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg02-a-install-runner", + "type": "arrow", + "x": 425, + "y": 155, + "width": 80, + "height": -25, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101104, + "version": 1, + "versionNonce": 101105, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 80, + -25 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg02-a-install-hook", + "type": "arrow", + "x": 425, + "y": 175, + "width": 80, + "height": 50, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101106, + "version": 1, + "versionNonce": 101107, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 80, + 50 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg02-a-install-config", + "type": "arrow", + "x": 425, + "y": 165, + "width": 390, + "height": 15, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101108, + "version": 1, + "versionNonce": 101109, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 390, + 15 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg02-a-hook-resolve", + "type": "arrow", + "x": 230, + "y": 422, + "width": 70, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101110, + "version": 1, + "versionNonce": 101111, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg02-a-resolve-protocol", + "type": "arrow", + "x": 500, + "y": 422, + "width": 75, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101112, + "version": 1, + "versionNonce": 101113, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 75, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg02-a-protocol-exec", + "type": "arrow", + "x": 735, + "y": 422, + "width": 85, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101114, + "version": 1, + "versionNonce": 101115, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 85, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg02-a-lookup-resolve", + "type": "arrow", + "x": 435, + "y": 510, + "width": -30, + "height": -50, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101116, + "version": 1, + "versionNonce": 101117, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -30, + -50 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg02-node-note", + "type": "text", + "x": 760, + "y": 95, + "width": 360, + "height": 32, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101118, + "version": 1, + "versionNonce": 101119, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Installer validates runner and checks Node.js runtime", + "rawText": "Installer validates runner and checks Node.js runtime", + "textAlign": "left", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Installer validates runner and checks Node.js runtime", + "lineHeight": 1.2 + } + ], + "appState": { + "viewBackgroundColor": "#ffffff", + "gridSize": 20 + }, + "files": {} +} diff --git a/docs/architecture/excalidraw/03-pre-push-runtime-flow.excalidraw b/docs/architecture/excalidraw/03-pre-push-runtime-flow.excalidraw new file mode 100644 index 0000000..d806036 --- /dev/null +++ b/docs/architecture/excalidraw/03-pre-push-runtime-flow.excalidraw @@ -0,0 +1,1727 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "pg03-title", + "type": "text", + "x": 40, + "y": 28, + "width": 760, + "height": 34, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103000, + "version": 1, + "versionNonce": 103001, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 26, + "fontFamily": 5, + "text": "Pre-push runtime flow", + "rawText": "Pre-push runtime flow", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Pre-push runtime flow", + "lineHeight": 1.2 + }, + { + "id": "pg03-start-box", + "type": "rectangle", + "x": 60, + "y": 145, + "width": 190, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 103002, + "version": 1, + "versionNonce": 103003, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg03-start-text", + "type": "text", + "x": 72, + "y": 157, + "width": 166, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103004, + "version": 1, + "versionNonce": 103005, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "pushgate\npre-push", + "rawText": "pushgate\npre-push", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "pushgate\npre-push", + "lineHeight": 1.2 + }, + { + "id": "pg03-context-box", + "type": "rectangle", + "x": 310, + "y": 145, + "width": 230, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 103006, + "version": 1, + "versionNonce": 103007, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg03-context-text", + "type": "text", + "x": 322, + "y": 157, + "width": 206, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103008, + "version": 1, + "versionNonce": 103009, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Drain hook stdin\nrepo + skip controls", + "rawText": "Drain hook stdin\nrepo + skip controls", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Drain hook stdin\nrepo + skip controls", + "lineHeight": 1.2 + }, + { + "id": "pg03-skipall-diamond", + "type": "diamond", + "x": 610, + "y": 125, + "width": 160, + "height": 110, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#fff3bf", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103010, + "version": 1, + "versionNonce": 103011, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg03-skipall-text", + "type": "text", + "x": 634, + "y": 153, + "width": 112, + "height": 54, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103012, + "version": 1, + "versionNonce": 103013, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "skip all?", + "rawText": "skip all?", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "skip all?", + "lineHeight": 1.2 + }, + { + "id": "pg03-skip-exit-box", + "type": "rectangle", + "x": 850, + "y": 145, + "width": 180, + "height": 70, + "angle": 0, + "strokeColor": "#2b8a3e", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 103014, + "version": 1, + "versionNonce": 103015, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg03-skip-exit-text", + "type": "text", + "x": 862, + "y": 157, + "width": 156, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103016, + "version": 1, + "versionNonce": 103017, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "exit 0\nskipped", + "rawText": "exit 0\nskipped", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "exit 0\nskipped", + "lineHeight": 1.2 + }, + { + "id": "pg03-config-box", + "type": "rectangle", + "x": 610, + "y": 300, + "width": 220, + "height": 70, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 103018, + "version": 1, + "versionNonce": 103019, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg03-config-text", + "type": "text", + "x": 622, + "y": 312, + "width": 196, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103020, + "version": 1, + "versionNonce": 103021, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Load config\nbuild run decision", + "rawText": "Load config\nbuild run decision", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Load config\nbuild run decision", + "lineHeight": 1.2 + }, + { + "id": "pg03-files-box", + "type": "rectangle", + "x": 610, + "y": 435, + "width": 220, + "height": 78, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 103022, + "version": 1, + "versionNonce": 103023, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg03-files-text", + "type": "text", + "x": 622, + "y": 447, + "width": 196, + "height": 54, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103024, + "version": 1, + "versionNonce": 103025, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Resolve changed files\nonly if needed", + "rawText": "Resolve changed files\nonly if needed", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Resolve changed files\nonly if needed", + "lineHeight": 1.2 + }, + { + "id": "pg03-det-box", + "type": "rectangle", + "x": 610, + "y": 575, + "width": 220, + "height": 78, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 103026, + "version": 1, + "versionNonce": 103027, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg03-det-text", + "type": "text", + "x": 622, + "y": 587, + "width": 196, + "height": 54, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103028, + "version": 1, + "versionNonce": 103029, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Run deterministic\nchecks first", + "rawText": "Run deterministic\nchecks first", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Run deterministic\nchecks first", + "lineHeight": 1.2 + }, + { + "id": "pg03-det-outcome-diamond", + "type": "diamond", + "x": 910, + "y": 555, + "width": 170, + "height": 118, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#fff3bf", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103030, + "version": 1, + "versionNonce": 103031, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg03-det-outcome-text", + "type": "text", + "x": 934, + "y": 583, + "width": 122, + "height": 62, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103032, + "version": 1, + "versionNonce": 103033, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "blocked or\nwarning?", + "rawText": "blocked or\nwarning?", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "blocked or\nwarning?", + "lineHeight": 1.2 + }, + { + "id": "pg03-block-box", + "type": "rectangle", + "x": 1170, + "y": 575, + "width": 180, + "height": 70, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 103034, + "version": 1, + "versionNonce": 103035, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg03-block-text", + "type": "text", + "x": 1182, + "y": 587, + "width": 156, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103036, + "version": 1, + "versionNonce": 103037, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "exit 1\nblocked", + "rawText": "exit 1\nblocked", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "exit 1\nblocked", + "lineHeight": 1.2 + }, + { + "id": "pg03-ai-decision-box", + "type": "rectangle", + "x": 610, + "y": 720, + "width": 220, + "height": 78, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "#e5dbff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 103038, + "version": 1, + "versionNonce": 103039, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg03-ai-decision-text", + "type": "text", + "x": 622, + "y": 732, + "width": 196, + "height": 54, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103040, + "version": 1, + "versionNonce": 103041, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "AI off or skipped?\notherwise review", + "rawText": "AI off or skipped?\notherwise review", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "AI off or skipped?\notherwise review", + "lineHeight": 1.2 + }, + { + "id": "pg03-ai-box", + "type": "rectangle", + "x": 610, + "y": 860, + "width": 220, + "height": 78, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "#e5dbff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 103042, + "version": 1, + "versionNonce": 103043, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg03-ai-text", + "type": "text", + "x": 622, + "y": 872, + "width": 196, + "height": 54, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103044, + "version": 1, + "versionNonce": 103045, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Run local AI\nreview", + "rawText": "Run local AI\nreview", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Run local AI\nreview", + "lineHeight": 1.2 + }, + { + "id": "pg03-ai-outcome-diamond", + "type": "diamond", + "x": 910, + "y": 840, + "width": 170, + "height": 118, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#fff3bf", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103046, + "version": 1, + "versionNonce": 103047, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg03-ai-outcome-text", + "type": "text", + "x": 934, + "y": 868, + "width": 122, + "height": 62, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103048, + "version": 1, + "versionNonce": 103049, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "block or\nwarning?", + "rawText": "block or\nwarning?", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "block or\nwarning?", + "lineHeight": 1.2 + }, + { + "id": "pg03-pass-box", + "type": "rectangle", + "x": 610, + "y": 1015, + "width": 220, + "height": 70, + "angle": 0, + "strokeColor": "#2b8a3e", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 103050, + "version": 1, + "versionNonce": 103051, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg03-pass-text", + "type": "text", + "x": 622, + "y": 1027, + "width": 196, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103052, + "version": 1, + "versionNonce": 103053, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "exit 0\nGit pushes", + "rawText": "exit 0\nGit pushes", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "exit 0\nGit pushes", + "lineHeight": 1.2 + }, + { + "id": "pg03-note", + "type": "text", + "x": 1050, + "y": 735, + "width": 310, + "height": 58, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103054, + "version": 1, + "versionNonce": 103055, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 15, + "fontFamily": 5, + "text": "Warnings require explicit terminal confirmation.\nDeclined confirmation blocks the push.", + "rawText": "Warnings require explicit terminal confirmation.\nDeclined confirmation blocks the push.", + "textAlign": "left", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Warnings require explicit terminal confirmation.\nDeclined confirmation blocks the push.", + "lineHeight": 1.2 + }, + { + "id": "pg03-a-start-context", + "type": "arrow", + "x": 250, + "y": 180, + "width": 60, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103056, + "version": 1, + "versionNonce": 103057, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 60, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg03-a-context-skip", + "type": "arrow", + "x": 540, + "y": 180, + "width": 70, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103058, + "version": 1, + "versionNonce": 103059, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg03-a-skip-yes", + "type": "arrow", + "x": 770, + "y": 180, + "width": 80, + "height": 0, + "angle": 0, + "strokeColor": "#2b8a3e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103060, + "version": 1, + "versionNonce": 103061, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 80, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg03-yes1", + "type": "text", + "x": 790, + "y": 153, + "width": 40, + "height": 24, + "angle": 0, + "strokeColor": "#2b8a3e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103062, + "version": 1, + "versionNonce": 103063, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "yes", + "rawText": "yes", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "yes", + "lineHeight": 1.2 + }, + { + "id": "pg03-a-skip-no", + "type": "arrow", + "x": 690, + "y": 235, + "width": 30, + "height": 65, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103064, + "version": 1, + "versionNonce": 103065, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 30, + 65 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg03-no1", + "type": "text", + "x": 725, + "y": 250, + "width": 34, + "height": 22, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103066, + "version": 1, + "versionNonce": 103067, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "no", + "rawText": "no", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "no", + "lineHeight": 1.2 + }, + { + "id": "pg03-a-config-files", + "type": "arrow", + "x": 720, + "y": 370, + "width": 0, + "height": 65, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103068, + "version": 1, + "versionNonce": 103069, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 65 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg03-a-files-det", + "type": "arrow", + "x": 720, + "y": 513, + "width": 0, + "height": 62, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103070, + "version": 1, + "versionNonce": 103071, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 62 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg03-a-det-outcome", + "type": "arrow", + "x": 830, + "y": 614, + "width": 80, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103072, + "version": 1, + "versionNonce": 103073, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 80, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg03-a-outcome-block", + "type": "arrow", + "x": 1080, + "y": 614, + "width": 90, + "height": 0, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103074, + "version": 1, + "versionNonce": 103075, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 90, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg03-bad1", + "type": "text", + "x": 1100, + "y": 585, + "width": 70, + "height": 24, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103076, + "version": 1, + "versionNonce": 103077, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "block", + "rawText": "block", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "block", + "lineHeight": 1.2 + }, + { + "id": "pg03-a-outcome-ai", + "type": "arrow", + "x": 995, + "y": 673, + "width": -165, + "height": 87, + "angle": 0, + "strokeColor": "#2b8a3e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103078, + "version": 1, + "versionNonce": 103079, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -165, + 87 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg03-ok1", + "type": "text", + "x": 965, + "y": 698, + "width": 100, + "height": 24, + "angle": 0, + "strokeColor": "#2b8a3e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103080, + "version": 1, + "versionNonce": 103081, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "pass or confirmed", + "rawText": "pass or confirmed", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "pass or confirmed", + "lineHeight": 1.2 + }, + { + "id": "pg03-a-ai-decision-review", + "type": "arrow", + "x": 720, + "y": 798, + "width": 0, + "height": 62, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103082, + "version": 1, + "versionNonce": 103083, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 62 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg03-a-ai-skip-pass", + "type": "arrow", + "x": 610, + "y": 760, + "width": -110, + "height": 290, + "angle": 0, + "strokeColor": "#2b8a3e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103084, + "version": 1, + "versionNonce": 103085, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -110, + 290 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg03-ai-skip-label", + "type": "text", + "x": 455, + "y": 862, + "width": 125, + "height": 24, + "angle": 0, + "strokeColor": "#2b8a3e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103086, + "version": 1, + "versionNonce": 103087, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "skip AI", + "rawText": "skip AI", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "skip AI", + "lineHeight": 1.2 + }, + { + "id": "pg03-a-ai-outcome", + "type": "arrow", + "x": 830, + "y": 899, + "width": 80, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103088, + "version": 1, + "versionNonce": 103089, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 80, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg03-a-ai-block", + "type": "arrow", + "x": 1080, + "y": 899, + "width": 180, + "height": -254, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103090, + "version": 1, + "versionNonce": 103091, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 180, + -254 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg03-a-ai-pass", + "type": "arrow", + "x": 995, + "y": 958, + "width": -165, + "height": 92, + "angle": 0, + "strokeColor": "#2b8a3e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103092, + "version": 1, + "versionNonce": 103093, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -165, + 92 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg03-ok2", + "type": "text", + "x": 965, + "y": 978, + "width": 100, + "height": 24, + "angle": 0, + "strokeColor": "#2b8a3e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 103094, + "version": 1, + "versionNonce": 103095, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "pass or confirmed", + "rawText": "pass or confirmed", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "pass or confirmed", + "lineHeight": 1.2 + } + ], + "appState": { + "viewBackgroundColor": "#ffffff", + "gridSize": 20 + }, + "files": {} +} diff --git a/docs/architecture/excalidraw/04-changed-files-and-deterministic-checks.excalidraw b/docs/architecture/excalidraw/04-changed-files-and-deterministic-checks.excalidraw new file mode 100644 index 0000000..4a054cd --- /dev/null +++ b/docs/architecture/excalidraw/04-changed-files-and-deterministic-checks.excalidraw @@ -0,0 +1,1087 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "pg04-title", + "type": "text", + "x": 40, + "y": 30, + "width": 640, + "height": 32, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401001, + "version": 1, + "versionNonce": 401002, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 26, + "fontFamily": 5, + "text": "Changed files and deterministic checks", + "rawText": "Changed files and deterministic checks", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Changed files and deterministic checks", + "lineHeight": 1.25 + }, + { + "id": "pg04-order-label", + "type": "text", + "x": 945, + "y": 25, + "width": 290, + "height": 26, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401003, + "version": 1, + "versionNonce": 401004, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Deterministic order", + "rawText": "Deterministic order", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Deterministic order", + "lineHeight": 1.25 + }, + { + "id": "pg04-config-box", + "type": "rectangle", + "x": 40, + "y": 110, + "width": 220, + "height": 100, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 401005, + "version": 1, + "versionNonce": 401006, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg04-config-text", + "type": "text", + "x": 60, + "y": 128, + "width": 180, + "height": 64, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401007, + "version": 1, + "versionNonce": 401008, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": ".pushgate.yml\nreview target\nignore_paths", + "rawText": ".pushgate.yml\nreview target\nignore_paths", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": ".pushgate.yml\nreview target\nignore_paths", + "lineHeight": 1.2 + }, + { + "id": "pg04-git-box", + "type": "rectangle", + "x": 40, + "y": 250, + "width": 220, + "height": 90, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 401009, + "version": 1, + "versionNonce": 401010, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg04-git-text", + "type": "text", + "x": 62, + "y": 269, + "width": 176, + "height": 52, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401011, + "version": 1, + "versionNonce": 401012, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "Git repo state\nHEAD, target\nlocal changes", + "rawText": "Git repo state\nHEAD, target\nlocal changes", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Git repo state\nHEAD, target\nlocal changes", + "lineHeight": 1.2 + }, + { + "id": "pg04-resolver-box", + "type": "rectangle", + "x": 320, + "y": 150, + "width": 240, + "height": 160, + "angle": 0, + "strokeColor": "#5f3dc4", + "backgroundColor": "#e5dbff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 401013, + "version": 1, + "versionNonce": 401014, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg04-resolver-text", + "type": "text", + "x": 340, + "y": 168, + "width": 200, + "height": 124, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401015, + "version": 1, + "versionNonce": 401016, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "resolveChangedFiles\nresolve target commit\nmerge base\nreview target...HEAD\nscan mergeBase..HEAD\nparse status + numstat\napply ignores", + "rawText": "resolveChangedFiles\nresolve target commit\nmerge base\nreview target...HEAD\nscan mergeBase..HEAD\nparse status + numstat\napply ignores", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "resolveChangedFiles\nresolve target commit\nmerge base\nreview target...HEAD\nscan mergeBase..HEAD\nparse status + numstat\napply ignores", + "lineHeight": 1.18 + }, + { + "id": "pg04-cfr-box", + "type": "rectangle", + "x": 620, + "y": 150, + "width": 260, + "height": 160, + "angle": 0, + "strokeColor": "#0b7285", + "backgroundColor": "#c5f6fa", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 401017, + "version": 1, + "versionNonce": 401018, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg04-cfr-text", + "type": "text", + "x": 640, + "y": 170, + "width": 220, + "height": 120, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401019, + "version": 1, + "versionNonce": 401020, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "ChangedFileResolution\nfiles incl deleted\nreviewRange\nscanRange\nlive current paths\nfor tool selection", + "rawText": "ChangedFileResolution\nfiles incl deleted\nreviewRange\nscanRange\nlive current paths\nfor tool selection", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "ChangedFileResolution\nfiles incl deleted\nreviewRange\nscanRange\nlive current paths\nfor tool selection", + "lineHeight": 1.18 + }, + { + "id": "pg04-builtins-box", + "type": "rectangle", + "x": 960, + "y": 70, + "width": 230, + "height": 100, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#fff3bf", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 401021, + "version": 1, + "versionNonce": 401022, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg04-builtins-text", + "type": "text", + "x": 980, + "y": 90, + "width": 190, + "height": 60, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401023, + "version": 1, + "versionNonce": 401024, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "Built-in policies\n1 diff_size\n2 forbidden_paths", + "rawText": "Built-in policies\n1 diff_size\n2 forbidden_paths", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Built-in policies\n1 diff_size\n2 forbidden_paths", + "lineHeight": 1.2 + }, + { + "id": "pg04-gitleaks-box", + "type": "rectangle", + "x": 960, + "y": 220, + "width": 230, + "height": 90, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "#ffe3e3", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 401025, + "version": 1, + "versionNonce": 401026, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg04-gitleaks-text", + "type": "text", + "x": 980, + "y": 240, + "width": 190, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401027, + "version": 1, + "versionNonce": 401028, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "Plugin: Gitleaks\nuses scanRange", + "rawText": "Plugin: Gitleaks\nuses scanRange", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Plugin: Gitleaks\nuses scanRange", + "lineHeight": 1.2 + }, + { + "id": "pg04-tools-box", + "type": "rectangle", + "x": 960, + "y": 360, + "width": 250, + "height": 110, + "angle": 0, + "strokeColor": "#6741d9", + "backgroundColor": "#e5dbff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 401029, + "version": 1, + "versionNonce": 401030, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg04-tools-text", + "type": "text", + "x": 980, + "y": 380, + "width": 210, + "height": 72, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401031, + "version": 1, + "versionNonce": 401032, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "Configured tools\nlive filtered paths\n{changed_files} argv\nrun modes", + "rawText": "Configured tools\nlive filtered paths\n{changed_files} argv\nrun modes", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Configured tools\nlive filtered paths\n{changed_files} argv\nrun modes", + "lineHeight": 1.2 + }, + { + "id": "pg04-no-checks-box", + "type": "rectangle", + "x": 1250, + "y": 60, + "width": 240, + "height": 80, + "angle": 0, + "strokeColor": "#868e96", + "backgroundColor": "#f1f3f5", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 401033, + "version": 1, + "versionNonce": 401034, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg04-no-checks-text", + "type": "text", + "x": 1270, + "y": 78, + "width": 200, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401035, + "version": 1, + "versionNonce": 401036, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "No checks configured\nvisible pass", + "rawText": "No checks configured\nvisible pass", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "No checks configured\nvisible pass", + "lineHeight": 1.2 + }, + { + "id": "pg04-summary-diamond", + "type": "diamond", + "x": 1280, + "y": 240, + "width": 170, + "height": 130, + "angle": 0, + "strokeColor": "#2b8a3e", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401037, + "version": 1, + "versionNonce": 401038, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg04-summary-text", + "type": "text", + "x": 1320, + "y": 265, + "width": 90, + "height": 80, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401039, + "version": 1, + "versionNonce": 401040, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Check\nsummary\npass\nwarning\nblocked", + "rawText": "Check\nsummary\npass\nwarning\nblocked", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Check\nsummary\npass\nwarning\nblocked", + "lineHeight": 1.15 + }, + { + "id": "pg04-a-config-resolver", + "type": "arrow", + "x": 260, + "y": 160, + "width": 60, + "height": 70, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401041, + "version": 1, + "versionNonce": 401042, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 60, + 70 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg04-a-git-resolver", + "type": "arrow", + "x": 260, + "y": 295, + "width": 60, + "height": 65, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401043, + "version": 1, + "versionNonce": 401044, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 60, + -65 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg04-a-resolver-cfr", + "type": "arrow", + "x": 560, + "y": 230, + "width": 60, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401045, + "version": 1, + "versionNonce": 401046, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 60, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg04-a-cfr-builtins", + "type": "arrow", + "x": 880, + "y": 190, + "width": 80, + "height": 70, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401047, + "version": 1, + "versionNonce": 401048, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 80, + -70 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg04-a-builtins-gitleaks", + "type": "arrow", + "x": 1075, + "y": 170, + "width": 0, + "height": 50, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401049, + "version": 1, + "versionNonce": 401050, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 50 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg04-a-gitleaks-tools", + "type": "arrow", + "x": 1075, + "y": 310, + "width": 0, + "height": 50, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401051, + "version": 1, + "versionNonce": 401052, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 50 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg04-a-tools-summary", + "type": "arrow", + "x": 1210, + "y": 415, + "width": 70, + "height": 110, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401053, + "version": 1, + "versionNonce": 401054, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70, + -110 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg04-a-no-checks-summary", + "type": "arrow", + "x": 1370, + "y": 140, + "width": 0, + "height": 100, + "angle": 0, + "strokeColor": "#868e96", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401055, + "version": 1, + "versionNonce": 401056, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 100 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg04-a-cfr-gitleaks", + "type": "arrow", + "x": 880, + "y": 235, + "width": 80, + "height": 30, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401057, + "version": 1, + "versionNonce": 401058, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 80, + 30 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg04-a-cfr-tools", + "type": "arrow", + "x": 880, + "y": 260, + "width": 80, + "height": 150, + "angle": 0, + "strokeColor": "#6741d9", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 401059, + "version": 1, + "versionNonce": 401060, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 80, + 150 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + } + ], + "appState": { + "viewBackgroundColor": "#ffffff", + "gridSize": 20 + }, + "files": {} +} diff --git a/docs/architecture/excalidraw/05-local-ai-review-contract.excalidraw b/docs/architecture/excalidraw/05-local-ai-review-contract.excalidraw new file mode 100644 index 0000000..d145f98 --- /dev/null +++ b/docs/architecture/excalidraw/05-local-ai-review-contract.excalidraw @@ -0,0 +1,1286 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "pg05-title", + "type": "text", + "x": 40, + "y": 30, + "width": 570, + "height": 32, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501001, + "version": 1, + "versionNonce": 501002, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 26, + "fontFamily": 5, + "text": "Local AI review contract", + "rawText": "Local AI review contract", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Local AI review contract", + "lineHeight": 1.25 + }, + { + "id": "pg05-cfr-box", + "type": "rectangle", + "x": 40, + "y": 160, + "width": 240, + "height": 110, + "angle": 0, + "strokeColor": "#0b7285", + "backgroundColor": "#c5f6fa", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 501003, + "version": 1, + "versionNonce": 501004, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg05-cfr-text", + "type": "text", + "x": 60, + "y": 183, + "width": 200, + "height": 64, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501005, + "version": 1, + "versionNonce": 501006, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "ChangedFileResolution\nchangedFiles\nreviewRange", + "rawText": "ChangedFileResolution\nchangedFiles\nreviewRange", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "ChangedFileResolution\nchangedFiles\nreviewRange", + "lineHeight": 1.2 + }, + { + "id": "pg05-config-box", + "type": "rectangle", + "x": 40, + "y": 310, + "width": 240, + "height": 90, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 501007, + "version": 1, + "versionNonce": 501008, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg05-config-text", + "type": "text", + "x": 60, + "y": 331, + "width": 200, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501009, + "version": 1, + "versionNonce": 501010, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "AI review config\nprovider + mode\nlimits", + "rawText": "AI review config\nprovider + mode\nlimits", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "AI review config\nprovider + mode\nlimits", + "lineHeight": 1.2 + }, + { + "id": "pg05-runtime-box", + "type": "rectangle", + "x": 350, + "y": 220, + "width": 220, + "height": 120, + "angle": 0, + "strokeColor": "#5f3dc4", + "backgroundColor": "#e5dbff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 501011, + "version": 1, + "versionNonce": 501012, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg05-runtime-text", + "type": "text", + "x": 370, + "y": 242, + "width": 180, + "height": 76, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501013, + "version": 1, + "versionNonce": 501014, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "Provider runtime\nclaude or copilot\nblocking/advisory\nwith guardrails", + "rawText": "Provider runtime\nclaude or copilot\nblocking/advisory\nwith guardrails", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Provider runtime\nclaude or copilot\nblocking/advisory\nwith guardrails", + "lineHeight": 1.2 + }, + { + "id": "pg05-guard-diamond", + "type": "diamond", + "x": 640, + "y": 210, + "width": 200, + "height": 150, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#fff3bf", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501015, + "version": 1, + "versionNonce": 501016, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg05-guard-text", + "type": "text", + "x": 694, + "y": 252, + "width": 92, + "height": 66, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501017, + "version": 1, + "versionNonce": 501018, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "Guardrails\nfiles?\nlines?\ntokens?", + "rawText": "Guardrails\nfiles?\nlines?\ntokens?", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Guardrails\nfiles?\nlines?\ntokens?", + "lineHeight": 1.15 + }, + { + "id": "pg05-payload-box", + "type": "rectangle", + "x": 910, + "y": 170, + "width": 260, + "height": 150, + "angle": 0, + "strokeColor": "#0b7285", + "backgroundColor": "#c5f6fa", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 501019, + "version": 1, + "versionNonce": 501020, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg05-payload-text", + "type": "text", + "x": 930, + "y": 188, + "width": 220, + "height": 112, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501021, + "version": 1, + "versionNonce": 501022, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Payload + prompt\nchangedFiles\nrendered reviewRange diff\ndiffLineCount\nsmall fullFiles\nfinal prompt", + "rawText": "Payload + prompt\nchangedFiles\nrendered reviewRange diff\ndiffLineCount\nsmall fullFiles\nfinal prompt", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Payload + prompt\nchangedFiles\nrendered reviewRange diff\ndiffLineCount\nsmall fullFiles\nfinal prompt", + "lineHeight": 1.18 + }, + { + "id": "pg05-adapter-box", + "type": "rectangle", + "x": 1240, + "y": 170, + "width": 270, + "height": 150, + "angle": 0, + "strokeColor": "#6741d9", + "backgroundColor": "#e5dbff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 501023, + "version": 1, + "versionNonce": 501024, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg05-adapter-text", + "type": "text", + "x": 1260, + "y": 190, + "width": 230, + "height": 110, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501025, + "version": 1, + "versionNonce": 501026, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Provider adapter\nClaude: native JSON schema\nCopilot: JSONL transport\nstrict local parsing\nreturns neutral result", + "rawText": "Provider adapter\nClaude: native JSON schema\nCopilot: JSONL transport\nstrict local parsing\nreturns neutral result", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Provider adapter\nClaude: native JSON schema\nCopilot: JSONL transport\nstrict local parsing\nreturns neutral result", + "lineHeight": 1.18 + }, + { + "id": "pg05-validate-box", + "type": "rectangle", + "x": 1580, + "y": 170, + "width": 280, + "height": 150, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 501027, + "version": 1, + "versionNonce": 501028, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg05-validate-text", + "type": "text", + "x": 1600, + "y": 188, + "width": 240, + "height": 112, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501029, + "version": 1, + "versionNonce": 501030, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Parse + repair + validate\nAI Review Output v1\nschema_version 1\nfindings\ninvalid output => failure", + "rawText": "Parse + repair + validate\nAI Review Output v1\nschema_version 1\nfindings\ninvalid output => failure", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Parse + repair + validate\nAI Review Output v1\nschema_version 1\nfindings\ninvalid output => failure", + "lineHeight": 1.18 + }, + { + "id": "pg05-verdict-box", + "type": "rectangle", + "x": 1930, + "y": 200, + "width": 230, + "height": 110, + "angle": 0, + "strokeColor": "#087f5b", + "backgroundColor": "#c3fae8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 501031, + "version": 1, + "versionNonce": 501032, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg05-verdict-text", + "type": "text", + "x": 1950, + "y": 225, + "width": 190, + "height": 60, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501033, + "version": 1, + "versionNonce": 501034, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "Verdict + transcript\nnormalized findings\npolicy mode applied", + "rawText": "Verdict + transcript\nnormalized findings\npolicy mode applied", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Verdict + transcript\nnormalized findings\npolicy mode applied", + "lineHeight": 1.2 + }, + { + "id": "pg05-result-diamond", + "type": "diamond", + "x": 2220, + "y": 205, + "width": 160, + "height": 100, + "angle": 0, + "strokeColor": "#2b8a3e", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501035, + "version": 1, + "versionNonce": 501036, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg05-result-text", + "type": "text", + "x": 2255, + "y": 231, + "width": 90, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501037, + "version": 1, + "versionNonce": 501038, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "pass\nwarn\nblock", + "rawText": "pass\nwarn\nblock", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "pass\nwarn\nblock", + "lineHeight": 1.2 + }, + { + "id": "pg05-guard-note-box", + "type": "rectangle", + "x": 610, + "y": 420, + "width": 270, + "height": 140, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#fff9db", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 501039, + "version": 1, + "versionNonce": 501040, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg05-guard-note-text", + "type": "text", + "x": 630, + "y": 437, + "width": 230, + "height": 104, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501041, + "version": 1, + "versionNonce": 501042, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Guardrail outcomes\nno changed files: skip\nmax changed lines: block\nmax prompt tokens: skip\ntimeout/failure: block or warn", + "rawText": "Guardrail outcomes\nno changed files: skip\nmax changed lines: block\nmax prompt tokens: skip\ntimeout/failure: block or warn", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Guardrail outcomes\nno changed files: skip\nmax changed lines: block\nmax prompt tokens: skip\ntimeout/failure: block or warn", + "lineHeight": 1.18 + }, + { + "id": "pg05-contract-note-box", + "type": "rectangle", + "x": 1240, + "y": 390, + "width": 270, + "height": 100, + "angle": 0, + "strokeColor": "#6741d9", + "backgroundColor": "#f3f0ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 501043, + "version": 1, + "versionNonce": 501044, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg05-contract-note-text", + "type": "text", + "x": 1260, + "y": 412, + "width": 230, + "height": 56, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501045, + "version": 1, + "versionNonce": 501046, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "Provider-neutral contract\nLocalAiProviderResult\nsame shape for all providers", + "rawText": "Provider-neutral contract\nLocalAiProviderResult\nsame shape for all providers", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Provider-neutral contract\nLocalAiProviderResult\nsame shape for all providers", + "lineHeight": 1.18 + }, + { + "id": "pg05-category-note-box", + "type": "rectangle", + "x": 1580, + "y": 390, + "width": 300, + "height": 140, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ebfbee", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 501047, + "version": 1, + "versionNonce": 501048, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg05-category-note-text", + "type": "text", + "x": 1600, + "y": 410, + "width": 260, + "height": 98, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501049, + "version": 1, + "versionNonce": 501050, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Finding categories\nblock: security, logic_errors\nwarn: test_coverage,\nperformance,\nnaming_and_readability", + "rawText": "Finding categories\nblock: security, logic_errors\nwarn: test_coverage,\nperformance,\nnaming_and_readability", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Finding categories\nblock: security, logic_errors\nwarn: test_coverage,\nperformance,\nnaming_and_readability", + "lineHeight": 1.18 + }, + { + "id": "pg05-a-cfr-runtime", + "type": "arrow", + "x": 280, + "y": 215, + "width": 70, + "height": 65, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501051, + "version": 1, + "versionNonce": 501052, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70, + 65 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg05-a-config-runtime", + "type": "arrow", + "x": 280, + "y": 355, + "width": 70, + "height": 75, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501053, + "version": 1, + "versionNonce": 501054, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70, + -75 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg05-a-runtime-guard", + "type": "arrow", + "x": 570, + "y": 280, + "width": 70, + "height": 5, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501055, + "version": 1, + "versionNonce": 501056, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70, + 5 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg05-a-guard-payload", + "type": "arrow", + "x": 840, + "y": 285, + "width": 70, + "height": 40, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501057, + "version": 1, + "versionNonce": 501058, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70, + -40 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg05-a-payload-adapter", + "type": "arrow", + "x": 1170, + "y": 245, + "width": 70, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501059, + "version": 1, + "versionNonce": 501060, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg05-a-adapter-validate", + "type": "arrow", + "x": 1510, + "y": 245, + "width": 70, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501061, + "version": 1, + "versionNonce": 501062, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg05-a-validate-verdict", + "type": "arrow", + "x": 1860, + "y": 245, + "width": 70, + "height": 10, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501063, + "version": 1, + "versionNonce": 501064, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70, + 10 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg05-a-verdict-result", + "type": "arrow", + "x": 2160, + "y": 255, + "width": 60, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501065, + "version": 1, + "versionNonce": 501066, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 60, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg05-a-guard-note", + "type": "arrow", + "x": 740, + "y": 360, + "width": 0, + "height": 60, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501067, + "version": 1, + "versionNonce": 501068, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 60 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg05-a-adapter-contract", + "type": "arrow", + "x": 1375, + "y": 320, + "width": 0, + "height": 70, + "angle": 0, + "strokeColor": "#6741d9", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501069, + "version": 1, + "versionNonce": 501070, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 70 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg05-a-validate-categories", + "type": "arrow", + "x": 1720, + "y": 320, + "width": 0, + "height": 70, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 501071, + "version": 1, + "versionNonce": 501072, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 70 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + } + ], + "appState": { + "viewBackgroundColor": "#ffffff", + "gridSize": 20 + }, + "files": {} +} diff --git a/docs/architecture/excalidraw/06-module-architecture.excalidraw b/docs/architecture/excalidraw/06-module-architecture.excalidraw new file mode 100644 index 0000000..bfb74e1 --- /dev/null +++ b/docs/architecture/excalidraw/06-module-architecture.excalidraw @@ -0,0 +1,1620 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "pg06-title", + "type": "text", + "x": 40, + "y": 30, + "width": 520, + "height": 32, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601001, + "version": 1, + "versionNonce": 601002, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 26, + "fontFamily": 5, + "text": "Pushgate module architecture", + "rawText": "Pushgate module architecture", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Pushgate module architecture", + "lineHeight": 1.25 + }, + { + "id": "pg06-product-box", + "type": "rectangle", + "x": 60, + "y": 100, + "width": 260, + "height": 90, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 601003, + "version": 1, + "versionNonce": 601004, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg06-product-text", + "type": "text", + "x": 80, + "y": 119, + "width": 220, + "height": 52, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601005, + "version": 1, + "versionNonce": 601006, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "Product contracts\ndocs + templates\nAI output v1", + "rawText": "Product contracts\ndocs + templates\nAI output v1", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Product contracts\ndocs + templates\nAI output v1", + "lineHeight": 1.2 + }, + { + "id": "pg06-entry-box", + "type": "rectangle", + "x": 420, + "y": 100, + "width": 300, + "height": 90, + "angle": 0, + "strokeColor": "#0b7285", + "backgroundColor": "#c5f6fa", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 601007, + "version": 1, + "versionNonce": 601008, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg06-entry-text", + "type": "text", + "x": 440, + "y": 119, + "width": 260, + "height": 52, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601009, + "version": 1, + "versionNonce": 601010, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "Entry layer\ninstall.sh, hook/pre-push\nbin/pushgate.mjs", + "rawText": "Entry layer\ninstall.sh, hook/pre-push\nbin/pushgate.mjs", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Entry layer\ninstall.sh, hook/pre-push\nbin/pushgate.mjs", + "lineHeight": 1.2 + }, + { + "id": "pg06-cli-box", + "type": "rectangle", + "x": 240, + "y": 250, + "width": 320, + "height": 90, + "angle": 0, + "strokeColor": "#5f3dc4", + "backgroundColor": "#e5dbff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 601011, + "version": 1, + "versionNonce": 601012, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg06-cli-text", + "type": "text", + "x": 260, + "y": 269, + "width": 280, + "height": 52, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601013, + "version": 1, + "versionNonce": 601014, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "CLI layer\nsrc/cli.ts\npushgate pre-push / push", + "rawText": "CLI layer\nsrc/cli.ts\npushgate pre-push / push", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "CLI layer\nsrc/cli.ts\npushgate pre-push / push", + "lineHeight": 1.2 + }, + { + "id": "pg06-workflow-box", + "type": "rectangle", + "x": 640, + "y": 250, + "width": 320, + "height": 90, + "angle": 0, + "strokeColor": "#5f3dc4", + "backgroundColor": "#e5dbff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 601015, + "version": 1, + "versionNonce": 601016, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg06-workflow-text", + "type": "text", + "x": 660, + "y": 269, + "width": 280, + "height": 52, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601017, + "version": 1, + "versionNonce": 601018, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "Workflow layer\nsrc/workflows/pre-push.ts\norchestrates checks", + "rawText": "Workflow layer\nsrc/workflows/pre-push.ts\norchestrates checks", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Workflow layer\nsrc/workflows/pre-push.ts\norchestrates checks", + "lineHeight": 1.2 + }, + { + "id": "pg06-config-box", + "type": "rectangle", + "x": 70, + "y": 430, + "width": 240, + "height": 90, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 601019, + "version": 1, + "versionNonce": 601020, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg06-config-text", + "type": "text", + "x": 90, + "y": 451, + "width": 200, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601021, + "version": 1, + "versionNonce": 601022, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "Configuration\n.pushgate.yml v2\nvalidated settings", + "rawText": "Configuration\n.pushgate.yml v2\nvalidated settings", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Configuration\n.pushgate.yml v2\nvalidated settings", + "lineHeight": 1.2 + }, + { + "id": "pg06-path-box", + "type": "rectangle", + "x": 370, + "y": 430, + "width": 260, + "height": 110, + "angle": 0, + "strokeColor": "#0b7285", + "backgroundColor": "#c5f6fa", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 601023, + "version": 1, + "versionNonce": 601024, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg06-path-text", + "type": "text", + "x": 390, + "y": 450, + "width": 220, + "height": 72, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601025, + "version": 1, + "versionNonce": 601026, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "Path policy\nChangedFileResolution\nreviewRange + scanRange\nlive path selection", + "rawText": "Path policy\nChangedFileResolution\nreviewRange + scanRange\nlive path selection", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Path policy\nChangedFileResolution\nreviewRange + scanRange\nlive path selection", + "lineHeight": 1.18 + }, + { + "id": "pg06-process-box", + "type": "rectangle", + "x": 700, + "y": 430, + "width": 240, + "height": 90, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#f1f3f5", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 601027, + "version": 1, + "versionNonce": 601028, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg06-process-text", + "type": "text", + "x": 720, + "y": 451, + "width": 200, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601029, + "version": 1, + "versionNonce": 601030, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "Process execution\nargv only\nno shell expansion", + "rawText": "Process execution\nargv only\nno shell expansion", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Process execution\nargv only\nno shell expansion", + "lineHeight": 1.2 + }, + { + "id": "pg06-deterministic-box", + "type": "rectangle", + "x": 250, + "y": 620, + "width": 280, + "height": 110, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#fff3bf", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 601031, + "version": 1, + "versionNonce": 601032, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg06-deterministic-text", + "type": "text", + "x": 270, + "y": 640, + "width": 240, + "height": 72, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601033, + "version": 1, + "versionNonce": 601034, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "Deterministic runner\nbuilt-ins, plugins, tools\nfail_fast blocking\nDeterministicCheckSummary", + "rawText": "Deterministic runner\nbuilt-ins, plugins, tools\nfail_fast blocking\nDeterministicCheckSummary", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Deterministic runner\nbuilt-ins, plugins, tools\nfail_fast blocking\nDeterministicCheckSummary", + "lineHeight": 1.18 + }, + { + "id": "pg06-ai-box", + "type": "rectangle", + "x": 610, + "y": 620, + "width": 280, + "height": 110, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 601035, + "version": 1, + "versionNonce": 601036, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg06-ai-text", + "type": "text", + "x": 630, + "y": 640, + "width": 240, + "height": 72, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601037, + "version": 1, + "versionNonce": 601038, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "Local AI review\npayload + guardrails\nprovider-neutral verdict\ntranscript", + "rawText": "Local AI review\npayload + guardrails\nprovider-neutral verdict\ntranscript", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Local AI review\npayload + guardrails\nprovider-neutral verdict\ntranscript", + "lineHeight": 1.18 + }, + { + "id": "pg06-adapters-box", + "type": "rectangle", + "x": 970, + "y": 620, + "width": 280, + "height": 110, + "angle": 0, + "strokeColor": "#6741d9", + "backgroundColor": "#e5dbff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 601039, + "version": 1, + "versionNonce": 601040, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg06-adapters-text", + "type": "text", + "x": 990, + "y": 640, + "width": 240, + "height": 72, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601041, + "version": 1, + "versionNonce": 601042, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 17, + "fontFamily": 5, + "text": "Provider adapters\nLocalAiProviderAdapter\nClaude Code CLI\nCopilot JSONL", + "rawText": "Provider adapters\nLocalAiProviderAdapter\nClaude Code CLI\nCopilot JSONL", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Provider adapters\nLocalAiProviderAdapter\nClaude Code CLI\nCopilot JSONL", + "lineHeight": 1.18 + }, + { + "id": "pg06-external-box", + "type": "rectangle", + "x": 1070, + "y": 410, + "width": 300, + "height": 150, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "#ffe3e3", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 601043, + "version": 1, + "versionNonce": 601044, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg06-external-text", + "type": "text", + "x": 1090, + "y": 434, + "width": 260, + "height": 98, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601045, + "version": 1, + "versionNonce": 601046, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "External systems\nGit\nGitleaks + tools\nClaude / Copilot", + "rawText": "External systems\nGit\nGitleaks + tools\nClaude / Copilot", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "External systems\nGit\nGitleaks + tools\nClaude / Copilot", + "lineHeight": 1.2 + }, + { + "id": "pg06-dist-box", + "type": "rectangle", + "x": 570, + "y": 820, + "width": 420, + "height": 100, + "angle": 0, + "strokeColor": "#087f5b", + "backgroundColor": "#c3fae8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 601047, + "version": 1, + "versionNonce": 601048, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg06-dist-text", + "type": "text", + "x": 590, + "y": 842, + "width": 380, + "height": 56, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601049, + "version": 1, + "versionNonce": 601050, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "Distribution + tests\ngenerated runner + validators\ncontract and workflow tests", + "rawText": "Distribution + tests\ngenerated runner + validators\ncontract and workflow tests", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Distribution + tests\ngenerated runner + validators\ncontract and workflow tests", + "lineHeight": 1.2 + }, + { + "id": "pg06-stable-text", + "type": "text", + "x": 60, + "y": 950, + "width": 1280, + "height": 28, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601051, + "version": 1, + "versionNonce": 601052, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 18, + "fontFamily": 5, + "text": "Stable interfaces: hook protocol 1 | pushgate pre-push/push | .pushgate.yml v2 | ChangedFileResolution | DeterministicCheckSummary | LocalAiProviderAdapter | AI output v1", + "rawText": "Stable interfaces: hook protocol 1 | pushgate pre-push/push | .pushgate.yml v2 | ChangedFileResolution | DeterministicCheckSummary | LocalAiProviderAdapter | AI output v1", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Stable interfaces: hook protocol 1 | pushgate pre-push/push | .pushgate.yml v2 | ChangedFileResolution | DeterministicCheckSummary | LocalAiProviderAdapter | AI output v1", + "lineHeight": 1.25 + }, + { + "id": "pg06-a-product-entry", + "type": "arrow", + "x": 320, + "y": 145, + "width": 100, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601053, + "version": 1, + "versionNonce": 601054, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 100, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-entry-cli", + "type": "arrow", + "x": 530, + "y": 190, + "width": 130, + "height": 60, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601055, + "version": 1, + "versionNonce": 601056, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -130, + 60 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-cli-workflow", + "type": "arrow", + "x": 560, + "y": 295, + "width": 80, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601057, + "version": 1, + "versionNonce": 601058, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 80, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-workflow-config", + "type": "arrow", + "x": 700, + "y": 340, + "width": 420, + "height": 120, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601059, + "version": 1, + "versionNonce": 601060, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -420, + 120 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-workflow-path", + "type": "arrow", + "x": 760, + "y": 340, + "width": 260, + "height": 110, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601061, + "version": 1, + "versionNonce": 601062, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -260, + 110 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-workflow-process", + "type": "arrow", + "x": 820, + "y": 340, + "width": 0, + "height": 90, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601063, + "version": 1, + "versionNonce": 601064, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 90 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-config-deterministic", + "type": "arrow", + "x": 220, + "y": 520, + "width": 120, + "height": 100, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601065, + "version": 1, + "versionNonce": 601066, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 120, + 100 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-path-deterministic", + "type": "arrow", + "x": 460, + "y": 540, + "width": 70, + "height": 80, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601067, + "version": 1, + "versionNonce": 601068, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -70, + 80 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-path-ai", + "type": "arrow", + "x": 540, + "y": 540, + "width": 190, + "height": 80, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601069, + "version": 1, + "versionNonce": 601070, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 190, + 80 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-process-deterministic", + "type": "arrow", + "x": 760, + "y": 520, + "width": 280, + "height": 120, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601071, + "version": 1, + "versionNonce": 601072, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -280, + 120 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-ai-adapters", + "type": "arrow", + "x": 890, + "y": 675, + "width": 80, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601073, + "version": 1, + "versionNonce": 601074, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 80, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-deterministic-external", + "type": "arrow", + "x": 530, + "y": 650, + "width": 540, + "height": 150, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601075, + "version": 1, + "versionNonce": 601076, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 540, + -150 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-adapters-external", + "type": "arrow", + "x": 1130, + "y": 620, + "width": 90, + "height": 60, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601077, + "version": 1, + "versionNonce": 601078, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 90, + -60 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-external-path", + "type": "arrow", + "x": 1070, + "y": 470, + "width": 440, + "height": 15, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601079, + "version": 1, + "versionNonce": 601080, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -440, + 15 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-workflow-dist", + "type": "arrow", + "x": 800, + "y": 340, + "width": 10, + "height": 480, + "angle": 0, + "strokeColor": "#087f5b", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601081, + "version": 1, + "versionNonce": 601082, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -10, + 480 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-deterministic-dist", + "type": "arrow", + "x": 420, + "y": 730, + "width": 220, + "height": 90, + "angle": 0, + "strokeColor": "#087f5b", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601083, + "version": 1, + "versionNonce": 601084, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 220, + 90 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-ai-dist", + "type": "arrow", + "x": 750, + "y": 730, + "width": 0, + "height": 90, + "angle": 0, + "strokeColor": "#087f5b", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601085, + "version": 1, + "versionNonce": 601086, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 90 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg06-a-adapters-dist", + "type": "arrow", + "x": 1090, + "y": 730, + "width": 170, + "height": 90, + "angle": 0, + "strokeColor": "#087f5b", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 601087, + "version": 1, + "versionNonce": 601088, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -170, + 90 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + } + ], + "appState": { + "viewBackgroundColor": "#ffffff", + "gridSize": 20 + }, + "files": {} +} diff --git a/docs/architecture/excalidraw/07-module-sequence.excalidraw b/docs/architecture/excalidraw/07-module-sequence.excalidraw new file mode 100644 index 0000000..dea989b --- /dev/null +++ b/docs/architecture/excalidraw/07-module-sequence.excalidraw @@ -0,0 +1,2378 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "pg07-title", + "type": "text", + "x": 40, + "y": 30, + "width": 760, + "height": 34, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107000, + "version": 1, + "versionNonce": 107001, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 26, + "fontFamily": 5, + "text": "Pushgate module architecture sequence", + "rawText": "Pushgate module architecture sequence", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Pushgate module architecture sequence", + "lineHeight": 1.2 + }, + { + "id": "pg07-subtitle", + "type": "text", + "x": 40, + "y": 66, + "width": 880, + "height": 24, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107002, + "version": 1, + "versionNonce": 107003, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "One pre-push run: module calls, shared contracts, and external command boundaries", + "rawText": "One pre-push run: module calls, shared contracts, and external command boundaries", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "One pre-push run: module calls, shared contracts, and external command boundaries", + "lineHeight": 1.2 + }, + { + "id": "pg07-hook-head", + "type": "rectangle", + "x": 25, + "y": 110, + "width": 130, + "height": 58, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107004, + "version": 1, + "versionNonce": 107005, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-hook-label", + "type": "text", + "x": 33, + "y": 120, + "width": 114, + "height": 38, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107006, + "version": 1, + "versionNonce": 107007, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 15, + "fontFamily": 5, + "text": "hook/pre-push", + "rawText": "hook/pre-push", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "hook/pre-push", + "lineHeight": 1.2 + }, + { + "id": "pg07-hook-life", + "type": "arrow", + "x": 90, + "y": 168, + "width": 0, + "height": 852, + "angle": 0, + "strokeColor": "#adb5bd", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107008, + "version": 1, + "versionNonce": 107009, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 852 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "pg07-cli-head", + "type": "rectangle", + "x": 185, + "y": 110, + "width": 130, + "height": 58, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107010, + "version": 1, + "versionNonce": 107011, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-cli-label", + "type": "text", + "x": 193, + "y": 120, + "width": 114, + "height": 38, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107012, + "version": 1, + "versionNonce": 107013, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 15, + "fontFamily": 5, + "text": "CLI\nsrc/cli.ts", + "rawText": "CLI\nsrc/cli.ts", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "CLI\nsrc/cli.ts", + "lineHeight": 1.2 + }, + { + "id": "pg07-cli-life", + "type": "arrow", + "x": 250, + "y": 168, + "width": 0, + "height": 852, + "angle": 0, + "strokeColor": "#adb5bd", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107014, + "version": 1, + "versionNonce": 107015, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 852 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "pg07-workflow-head", + "type": "rectangle", + "x": 365, + "y": 110, + "width": 130, + "height": 58, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107016, + "version": 1, + "versionNonce": 107017, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-workflow-label", + "type": "text", + "x": 373, + "y": 120, + "width": 114, + "height": 38, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107018, + "version": 1, + "versionNonce": 107019, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 15, + "fontFamily": 5, + "text": "Workflow\npre-push.ts", + "rawText": "Workflow\npre-push.ts", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Workflow\npre-push.ts", + "lineHeight": 1.2 + }, + { + "id": "pg07-workflow-life", + "type": "arrow", + "x": 430, + "y": 168, + "width": 0, + "height": 852, + "angle": 0, + "strokeColor": "#adb5bd", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107020, + "version": 1, + "versionNonce": 107021, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 852 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "pg07-config-head", + "type": "rectangle", + "x": 545, + "y": 110, + "width": 130, + "height": 58, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107022, + "version": 1, + "versionNonce": 107023, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-config-label", + "type": "text", + "x": 553, + "y": 120, + "width": 114, + "height": 38, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107024, + "version": 1, + "versionNonce": 107025, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 15, + "fontFamily": 5, + "text": "Config\n.pushgate.yml v2", + "rawText": "Config\n.pushgate.yml v2", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Config\n.pushgate.yml v2", + "lineHeight": 1.2 + }, + { + "id": "pg07-config-life", + "type": "arrow", + "x": 610, + "y": 168, + "width": 0, + "height": 852, + "angle": 0, + "strokeColor": "#adb5bd", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107026, + "version": 1, + "versionNonce": 107027, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 852 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "pg07-path-head", + "type": "rectangle", + "x": 725, + "y": 110, + "width": 130, + "height": 58, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#d3f9d8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107028, + "version": 1, + "versionNonce": 107029, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-path-label", + "type": "text", + "x": 733, + "y": 120, + "width": 114, + "height": 38, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107030, + "version": 1, + "versionNonce": 107031, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 15, + "fontFamily": 5, + "text": "Path policy\nChangedFileResolution", + "rawText": "Path policy\nChangedFileResolution", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Path policy\nChangedFileResolution", + "lineHeight": 1.2 + }, + { + "id": "pg07-path-life", + "type": "arrow", + "x": 790, + "y": 168, + "width": 0, + "height": 852, + "angle": 0, + "strokeColor": "#adb5bd", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107032, + "version": 1, + "versionNonce": 107033, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 852 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "pg07-det-head", + "type": "rectangle", + "x": 905, + "y": 110, + "width": 130, + "height": 58, + "angle": 0, + "strokeColor": "#e67700", + "backgroundColor": "#ffe8cc", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107034, + "version": 1, + "versionNonce": 107035, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-det-label", + "type": "text", + "x": 913, + "y": 120, + "width": 114, + "height": 38, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107036, + "version": 1, + "versionNonce": 107037, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 15, + "fontFamily": 5, + "text": "Deterministic\nrunner", + "rawText": "Deterministic\nrunner", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Deterministic\nrunner", + "lineHeight": 1.2 + }, + { + "id": "pg07-det-life", + "type": "arrow", + "x": 970, + "y": 168, + "width": 0, + "height": 852, + "angle": 0, + "strokeColor": "#adb5bd", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107038, + "version": 1, + "versionNonce": 107039, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 852 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "pg07-ai-head", + "type": "rectangle", + "x": 1085, + "y": 110, + "width": 130, + "height": 58, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "#e5dbff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107040, + "version": 1, + "versionNonce": 107041, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-ai-label", + "type": "text", + "x": 1093, + "y": 120, + "width": 114, + "height": 38, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107042, + "version": 1, + "versionNonce": 107043, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 15, + "fontFamily": 5, + "text": "Local AI\nreview", + "rawText": "Local AI\nreview", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Local AI\nreview", + "lineHeight": 1.2 + }, + { + "id": "pg07-ai-life", + "type": "arrow", + "x": 1150, + "y": 168, + "width": 0, + "height": 852, + "angle": 0, + "strokeColor": "#adb5bd", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107044, + "version": 1, + "versionNonce": 107045, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 852 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "pg07-provider-head", + "type": "rectangle", + "x": 1265, + "y": 110, + "width": 130, + "height": 58, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "#e5dbff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107046, + "version": 1, + "versionNonce": 107047, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-provider-label", + "type": "text", + "x": 1273, + "y": 120, + "width": 114, + "height": 38, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107048, + "version": 1, + "versionNonce": 107049, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 15, + "fontFamily": 5, + "text": "Provider +\nprocess boundary", + "rawText": "Provider +\nprocess boundary", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Provider +\nprocess boundary", + "lineHeight": 1.2 + }, + { + "id": "pg07-provider-life", + "type": "arrow", + "x": 1330, + "y": 168, + "width": 0, + "height": 852, + "angle": 0, + "strokeColor": "#adb5bd", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107050, + "version": 1, + "versionNonce": 107051, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 852 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "pg07-act-cli", + "type": "rectangle", + "x": 243, + "y": 210, + "width": 14, + "height": 720, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#ffffff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107052, + "version": 1, + "versionNonce": 107053, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-act-workflow", + "type": "rectangle", + "x": 423, + "y": 250, + "width": 14, + "height": 660, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffffff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107054, + "version": 1, + "versionNonce": 107055, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-act-config", + "type": "rectangle", + "x": 603, + "y": 310, + "width": 14, + "height": 65, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffffff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107056, + "version": 1, + "versionNonce": 107057, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-act-path", + "type": "rectangle", + "x": 783, + "y": 390, + "width": 14, + "height": 70, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffffff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107058, + "version": 1, + "versionNonce": 107059, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-act-det", + "type": "rectangle", + "x": 963, + "y": 500, + "width": 14, + "height": 80, + "angle": 0, + "strokeColor": "#e67700", + "backgroundColor": "#ffffff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107060, + "version": 1, + "versionNonce": 107061, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-act-ai", + "type": "rectangle", + "x": 1143, + "y": 620, + "width": 14, + "height": 160, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "#ffffff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107062, + "version": 1, + "versionNonce": 107063, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-act-provider", + "type": "rectangle", + "x": 1323, + "y": 755, + "width": 14, + "height": 85, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "#ffffff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107064, + "version": 1, + "versionNonce": 107065, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-m1", + "type": "arrow", + "x": 90, + "y": 220, + "width": 160, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107066, + "version": 1, + "versionNonce": 107067, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 160, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-m1-label", + "type": "text", + "x": 110, + "y": 192, + "width": 120, + "height": 24, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107068, + "version": 1, + "versionNonce": 107069, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "exec pre-push", + "rawText": "exec pre-push", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "exec pre-push", + "lineHeight": 1.2 + }, + { + "id": "pg07-m2", + "type": "arrow", + "x": 250, + "y": 270, + "width": 180, + "height": 0, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107070, + "version": 1, + "versionNonce": 107071, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 180, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-m2-label", + "type": "text", + "x": 265, + "y": 242, + "width": 150, + "height": 24, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107072, + "version": 1, + "versionNonce": 107073, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "runPrePushWorkflow", + "rawText": "runPrePushWorkflow", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "runPrePushWorkflow", + "lineHeight": 1.2 + }, + { + "id": "pg07-m3", + "type": "arrow", + "x": 430, + "y": 320, + "width": 180, + "height": 0, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107074, + "version": 1, + "versionNonce": 107075, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 180, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-m3-label", + "type": "text", + "x": 475, + "y": 292, + "width": 90, + "height": 24, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107076, + "version": 1, + "versionNonce": 107077, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "loadConfig", + "rawText": "loadConfig", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "loadConfig", + "lineHeight": 1.2 + }, + { + "id": "pg07-r3", + "type": "arrow", + "x": 610, + "y": 360, + "width": -180, + "height": 0, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107078, + "version": 1, + "versionNonce": 107079, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -180, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-r3-label", + "type": "text", + "x": 460, + "y": 332, + "width": 120, + "height": 24, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107080, + "version": 1, + "versionNonce": 107081, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "PushgateConfig", + "rawText": "PushgateConfig", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "PushgateConfig", + "lineHeight": 1.2 + }, + { + "id": "pg07-m4", + "type": "arrow", + "x": 430, + "y": 410, + "width": 360, + "height": 0, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107082, + "version": 1, + "versionNonce": 107083, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 360, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-m4-label", + "type": "text", + "x": 535, + "y": 382, + "width": 150, + "height": 24, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107084, + "version": 1, + "versionNonce": 107085, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "resolveChangedFiles", + "rawText": "resolveChangedFiles", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "resolveChangedFiles", + "lineHeight": 1.2 + }, + { + "id": "pg07-r4", + "type": "arrow", + "x": 790, + "y": 455, + "width": -360, + "height": 0, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107086, + "version": 1, + "versionNonce": 107087, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -360, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-r4-label", + "type": "text", + "x": 525, + "y": 427, + "width": 170, + "height": 24, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107088, + "version": 1, + "versionNonce": 107089, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "ChangedFileResolution", + "rawText": "ChangedFileResolution", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "ChangedFileResolution", + "lineHeight": 1.2 + }, + { + "id": "pg07-m5", + "type": "arrow", + "x": 430, + "y": 520, + "width": 540, + "height": 0, + "angle": 0, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107090, + "version": 1, + "versionNonce": 107091, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 540, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-m5-label", + "type": "text", + "x": 610, + "y": 492, + "width": 180, + "height": 24, + "angle": 0, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107092, + "version": 1, + "versionNonce": 107093, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "runDeterministicChecks", + "rawText": "runDeterministicChecks", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "runDeterministicChecks", + "lineHeight": 1.2 + }, + { + "id": "pg07-m6", + "type": "arrow", + "x": 970, + "y": 565, + "width": 360, + "height": 0, + "angle": 0, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107094, + "version": 1, + "versionNonce": 107095, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 360, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-m6-label", + "type": "text", + "x": 1055, + "y": 537, + "width": 190, + "height": 24, + "angle": 0, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107096, + "version": 1, + "versionNonce": 107097, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "tools / plugins via process", + "rawText": "tools / plugins via process", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "tools / plugins via process", + "lineHeight": 1.2 + }, + { + "id": "pg07-r6", + "type": "arrow", + "x": 970, + "y": 610, + "width": -540, + "height": 0, + "angle": 0, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107098, + "version": 1, + "versionNonce": 107099, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -540, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-r6-label", + "type": "text", + "x": 597.5, + "y": 582, + "width": 205, + "height": 24, + "angle": 0, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107100, + "version": 1, + "versionNonce": 107101, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "DeterministicCheckSummary", + "rawText": "DeterministicCheckSummary", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "DeterministicCheckSummary", + "lineHeight": 1.2 + }, + { + "id": "pg07-m7", + "type": "arrow", + "x": 430, + "y": 680, + "width": 720, + "height": 0, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107102, + "version": 1, + "versionNonce": 107103, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 720, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-m7-label", + "type": "text", + "x": 720, + "y": 652, + "width": 140, + "height": 24, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107104, + "version": 1, + "versionNonce": 107105, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "runLocalAiReview", + "rawText": "runLocalAiReview", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "runLocalAiReview", + "lineHeight": 1.2 + }, + { + "id": "pg07-m8", + "type": "arrow", + "x": 1150, + "y": 735, + "width": 180, + "height": 0, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107106, + "version": 1, + "versionNonce": 107107, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 180, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-m8-label", + "type": "text", + "x": 1167.5, + "y": 707, + "width": 145, + "height": 24, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107108, + "version": 1, + "versionNonce": 107109, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "provider.runReview", + "rawText": "provider.runReview", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "provider.runReview", + "lineHeight": 1.2 + }, + { + "id": "pg07-r8", + "type": "arrow", + "x": 1330, + "y": 795, + "width": -180, + "height": 0, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107110, + "version": 1, + "versionNonce": 107111, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -180, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-r8-label", + "type": "text", + "x": 1152.5, + "y": 767, + "width": 175, + "height": 24, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107112, + "version": 1, + "versionNonce": 107113, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "LocalAiProviderResult", + "rawText": "LocalAiProviderResult", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "LocalAiProviderResult", + "lineHeight": 1.2 + }, + { + "id": "pg07-r9", + "type": "arrow", + "x": 1150, + "y": 850, + "width": -720, + "height": 0, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107114, + "version": 1, + "versionNonce": 107115, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -720, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-r9-label", + "type": "text", + "x": 727.5, + "y": 822, + "width": 125, + "height": 24, + "angle": 0, + "strokeColor": "#7048e8", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107116, + "version": 1, + "versionNonce": 107117, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "LocalAiVerdict", + "rawText": "LocalAiVerdict", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "LocalAiVerdict", + "lineHeight": 1.2 + }, + { + "id": "pg07-r10", + "type": "arrow", + "x": 430, + "y": 925, + "width": -180, + "height": 0, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107118, + "version": 1, + "versionNonce": 107119, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -180, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-r10-label", + "type": "text", + "x": 260, + "y": 897, + "width": 160, + "height": 24, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107120, + "version": 1, + "versionNonce": 107121, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "exit code + transcript", + "rawText": "exit code + transcript", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "exit code + transcript", + "lineHeight": 1.2 + }, + { + "id": "pg07-r11", + "type": "arrow", + "x": 250, + "y": 980, + "width": -160, + "height": 0, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107122, + "version": 1, + "versionNonce": 107123, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -160, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "pg07-r11-label", + "type": "text", + "x": 100, + "y": 952, + "width": 140, + "height": 24, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107124, + "version": 1, + "versionNonce": 107125, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 14, + "fontFamily": 5, + "text": "pass or block push", + "rawText": "pass or block push", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "pass or block push", + "lineHeight": 1.2 + }, + { + "id": "pg07-note-box", + "type": "rectangle", + "x": 50, + "y": 1060, + "width": 1290, + "height": 85, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#f8f9fa", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 107126, + "version": 1, + "versionNonce": 107127, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "pg07-note", + "type": "text", + "x": 75, + "y": 1075, + "width": 1240, + "height": 52, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 107128, + "version": 1, + "versionNonce": 107129, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Read this left-to-right by module ownership and top-to-bottom by time. Solid arrows are calls; dashed arrows are returned contracts or final outcomes. The provider/process boundary represents configured tools, Gitleaks, Claude Code CLI, and Copilot CLI.", + "rawText": "Read this left-to-right by module ownership and top-to-bottom by time. Solid arrows are calls; dashed arrows are returned contracts or final outcomes. The provider/process boundary represents configured tools, Gitleaks, Claude Code CLI, and Copilot CLI.", + "textAlign": "left", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Read this left-to-right by module ownership and top-to-bottom by time. Solid arrows are calls; dashed arrows are returned contracts or final outcomes. The provider/process boundary represents configured tools, Gitleaks, Claude Code CLI, and Copilot CLI.", + "lineHeight": 1.2 + } + ], + "appState": { + "viewBackgroundColor": "#ffffff", + "gridSize": 20 + }, + "files": {} +} diff --git a/docs/architecture/pushgate-big-picture.excalidraw b/docs/architecture/pushgate-big-picture.excalidraw new file mode 100644 index 0000000..5894d69 --- /dev/null +++ b/docs/architecture/pushgate-big-picture.excalidraw @@ -0,0 +1,1208 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "title_pushgate_big_picture", + "type": "text", + "x": 40, + "y": 55, + "width": 480, + "height": 40, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101001, + "version": 1, + "versionNonce": 201001, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "text": "Pushgate Big-Picture Architecture", + "fontSize": 32, + "fontFamily": 5, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Pushgate Big-Picture Architecture", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "box_developer_push", + "type": "rectangle", + "x": 40, + "y": 150, + "width": 170, + "height": 90, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#f8f9fa", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101002, + "version": 1, + "versionNonce": 201002, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "text_developer_push", + "type": "text", + "x": 40, + "y": 169, + "width": 170, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101003, + "version": 1, + "versionNonce": 201003, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "text": "Developer\nruns git push", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Developer\nruns git push", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "box_thin_hook", + "type": "rectangle", + "x": 260, + "y": 150, + "width": 190, + "height": 90, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101004, + "version": 1, + "versionNonce": 201004, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "text_thin_hook", + "type": "text", + "x": 260, + "y": 169, + "width": 190, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101005, + "version": 1, + "versionNonce": 201005, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "text": "Thin Git hook\nhook/pre-push", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Thin Git hook\nhook/pre-push", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "box_runner_workflow", + "type": "rectangle", + "x": 510, + "y": 135, + "width": 250, + "height": 120, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#fff3bf", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101006, + "version": 1, + "versionNonce": 201006, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "text_runner_workflow", + "type": "text", + "x": 510, + "y": 157, + "width": 250, + "height": 68, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101007, + "version": 1, + "versionNonce": 201007, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "text": "Managed runner\nCLI + pre-push workflow\nbin/pushgate.mjs", + "fontSize": 18, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Managed runner\nCLI + pre-push workflow\nbin/pushgate.mjs", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "box_config_path_policy", + "type": "rectangle", + "x": 510, + "y": 330, + "width": 250, + "height": 90, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#e6fcf5", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101008, + "version": 1, + "versionNonce": 201008, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "text_config_path_policy", + "type": "text", + "x": 510, + "y": 349, + "width": 250, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101009, + "version": 1, + "versionNonce": 201009, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "text": "Config + path policy\n.pushgate.yml + git diff", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Config + path policy\n.pushgate.yml + git diff", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "box_deterministic_checks", + "type": "rectangle", + "x": 830, + "y": 110, + "width": 330, + "height": 230, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#d0ebff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101010, + "version": 1, + "versionNonce": 201010, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "text_deterministic_checks", + "type": "text", + "x": 850, + "y": 135, + "width": 290, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101011, + "version": 1, + "versionNonce": 201011, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "text": "Deterministic checks", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Deterministic checks", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "box_check_diff_size", + "type": "rectangle", + "x": 850, + "y": 180, + "width": 135, + "height": 40, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101022, + "version": 1, + "versionNonce": 201022, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "text_check_diff_size", + "type": "text", + "x": 850, + "y": 190, + "width": 135, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101023, + "version": 1, + "versionNonce": 201023, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "text": "Diff size", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Diff size", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "box_check_secrets_scan", + "type": "rectangle", + "x": 1005, + "y": 180, + "width": 135, + "height": 40, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101024, + "version": 1, + "versionNonce": 201024, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "text_check_secrets_scan", + "type": "text", + "x": 1005, + "y": 190, + "width": 135, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101025, + "version": 1, + "versionNonce": 201025, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "text": "Secrets scan", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Secrets scan", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "box_check_typecheck", + "type": "rectangle", + "x": 850, + "y": 240, + "width": 135, + "height": 40, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101026, + "version": 1, + "versionNonce": 201026, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "text_check_typecheck", + "type": "text", + "x": 850, + "y": 250, + "width": 135, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101027, + "version": 1, + "versionNonce": 201027, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "text": "Typecheck", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Typecheck", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "box_check_tests", + "type": "rectangle", + "x": 1005, + "y": 240, + "width": 135, + "height": 40, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101028, + "version": 1, + "versionNonce": 201028, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "text_check_tests", + "type": "text", + "x": 1005, + "y": 250, + "width": 135, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101029, + "version": 1, + "versionNonce": 201029, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "text": "Tests", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Tests", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "box_check_more", + "type": "rectangle", + "x": 927, + "y": 295, + "width": 135, + "height": 28, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101030, + "version": 1, + "versionNonce": 201030, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "text_check_more", + "type": "text", + "x": 927, + "y": 299, + "width": 135, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101031, + "version": 1, + "versionNonce": 201031, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "text": "...", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "...", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "box_ai_review", + "type": "rectangle", + "x": 1230, + "y": 150, + "width": 190, + "height": 90, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#d8f5a2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101032, + "version": 1, + "versionNonce": 201032, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "text_ai_review", + "type": "text", + "x": 1230, + "y": 169, + "width": 190, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101033, + "version": 1, + "versionNonce": 201033, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "text": "AI review\nClaude / Copilot", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "AI review\nClaude / Copilot", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "box_verdict", + "type": "rectangle", + "x": 1480, + "y": 150, + "width": 230, + "height": 90, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#f1f3f5", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101012, + "version": 1, + "versionNonce": 201012, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "text_verdict", + "type": "text", + "x": 1480, + "y": 169, + "width": 230, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101013, + "version": 1, + "versionNonce": 201013, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "text": "Transcript + verdict\npass / warn / block", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Transcript + verdict\npass / warn / block", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "box_remote_ci", + "type": "rectangle", + "x": 1770, + "y": 150, + "width": 220, + "height": 90, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "#fff0f6", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 101014, + "version": 1, + "versionNonce": 201014, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false + }, + { + "id": "text_remote_ci", + "type": "text", + "x": 1770, + "y": 169, + "width": 220, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 101015, + "version": 1, + "versionNonce": 201015, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "text": "Git remote + CI\nfinal enforcement", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Git remote + CI\nfinal enforcement", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "arrow_push_to_hook", + "type": "arrow", + "x": 210, + "y": 195, + "width": 50, + "height": 0, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 101016, + "version": 1, + "versionNonce": 201016, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 50, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "arrow_hook_to_runner", + "type": "arrow", + "x": 450, + "y": 195, + "width": 60, + "height": 0, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 101017, + "version": 1, + "versionNonce": 201017, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 60, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "arrow_config_to_runner", + "type": "arrow", + "x": 635, + "y": 330, + "width": 0, + "height": -75, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 101018, + "version": 1, + "versionNonce": 201018, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -75 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "arrow_runner_to_gates", + "type": "arrow", + "x": 760, + "y": 195, + "width": 70, + "height": 0, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 101019, + "version": 1, + "versionNonce": 201019, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "arrow_deterministic_to_ai", + "type": "arrow", + "x": 1160, + "y": 195, + "width": 70, + "height": 0, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 101020, + "version": 1, + "versionNonce": 201020, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "arrow_ai_to_verdict", + "type": "arrow", + "x": 1420, + "y": 195, + "width": 60, + "height": 0, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 101034, + "version": 1, + "versionNonce": 201034, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 60, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "arrow_verdict_to_remote", + "type": "arrow", + "x": 1710, + "y": 195, + "width": 60, + "height": 0, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 101021, + "version": 1, + "versionNonce": 201021, + "isDeleted": false, + "boundElements": null, + "updated": 1, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 60, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + } + ], + "appState": { + "viewBackgroundColor": "#ffffff", + "gridSize": 20 + }, + "files": {} +}