[{"data":1,"prerenderedAt":1538},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-ci-runners":234,"-getting-started-ci-runners-surround":1533},[4,26,47,68,89,114,135,164,181,210],{"title":5,"path":6,"stem":7,"children":8,"page":25},"1. Getting Started & Pricing","\u002Fgetting-started","01.getting-started",[9,13,17,21],{"title":10,"path":11,"stem":12},"1.1 5-Minute Quickstart","\u002Fgetting-started\u002Fquickstart","01.getting-started\u002F1.quickstart",{"title":14,"path":15,"stem":16},"1.2 Project Boards Setup","\u002Fgetting-started\u002Fboard-init","01.getting-started\u002F2.board-init",{"title":18,"path":19,"stem":20},"1.3 GitHub Actions & GitLab CI Runner Setup","\u002Fgetting-started\u002Fci-runners","01.getting-started\u002F3.ci-runners",{"title":22,"path":23,"stem":24},"1.4 Organization Credit Pool & Per-Function Credit Pricing","\u002Fgetting-started\u002Forg-credits-and-slack","01.getting-started\u002F4.org-credits-and-slack",false,{"title":27,"path":28,"stem":29,"children":30,"page":25},"2. Pair & Triad Programming","\u002Fpair-and-triad-programming","02.pair-and-triad-programming",[31,35,39,43],{"title":32,"path":33,"stem":34},"2.1 Cross-Model Pair & Triad Programming","\u002Fpair-and-triad-programming\u002Foverview","02.pair-and-triad-programming\u002F1.overview",{"title":36,"path":37,"stem":38},"2.2 Isolated Shadow Workspaces","\u002Fpair-and-triad-programming\u002Fshadow-jj-workspaces","02.pair-and-triad-programming\u002F2.shadow-jj-workspaces",{"title":40,"path":41,"stem":42},"2.3 Cryptographic File-Scope Leases & Small-Diff Gates","\u002Fpair-and-triad-programming\u002Ffile-scope-leases","02.pair-and-triad-programming\u002F3.file-scope-leases",{"title":44,"path":45,"stem":46},"2.4 Sub-Issue to Subagent Fan-Out & Delta Velocity","\u002Fpair-and-triad-programming\u002Fsub-issue-fanout","02.pair-and-triad-programming\u002F4.sub-issue-fanout",{"title":48,"path":49,"stem":50,"children":51,"page":25},"3. Declarative Workflow Policy","\u002Fworkflow-policy","03.workflow-policy",[52,56,60,64],{"title":53,"path":54,"stem":55},"3.1 Declarative Workflow Policy Schema","\u002Fworkflow-policy\u002Fschema-reference","03.workflow-policy\u002F1.schema-reference",{"title":57,"path":58,"stem":59},"3.2 Cryptographic Conformance Matrix & Memory Tombstones","\u002Fworkflow-policy\u002Fwp-01-to-wp-15-matrix","03.workflow-policy\u002F2.wp-01-to-wp-15-matrix",{"title":61,"path":62,"stem":63},"3.3 Two-Tier Organization Governance Lattice","\u002Fworkflow-policy\u002Forg-policy-floor","03.workflow-policy\u002F3.org-policy-floor",{"title":65,"path":66,"stem":67},"3.4 Trusted Handoff Hooks & Independent Verification","\u002Fworkflow-policy\u002Fhandoff-hooks-h1-to-h5","03.workflow-policy\u002F4.handoff-hooks-h1-to-h5",{"title":69,"path":70,"stem":71,"children":72,"page":25},"4. Visual Geometry & Copy Gates","\u002Fvisual-and-copy-tribunals","04.visual-and-copy-tribunals",[73,77,81,85],{"title":74,"path":75,"stem":76},"12-Tuple DOM Geometry (176\u002F176)","\u002Fvisual-and-copy-tribunals\u002Fui-gate-geometry","04.visual-and-copy-tribunals\u002F1.ui-gate-geometry",{"title":78,"path":79,"stem":80},"Vision-3 Geometry & Auto-Patch","\u002Fvisual-and-copy-tribunals\u002Fcross-model-design-tribunal","04.visual-and-copy-tribunals\u002F2.cross-model-design-tribunal",{"title":82,"path":83,"stem":84},"64\u002F64 Declaration Copy Gate","\u002Fvisual-and-copy-tribunals\u002Fdeclaration-copy-gate","04.visual-and-copy-tribunals\u002F3.declaration-copy-gate",{"title":86,"path":87,"stem":88},"Synthetic CI Canary","\u002Fvisual-and-copy-tribunals\u002Fsynthetic-ci-canary","04.visual-and-copy-tribunals\u002F4.synthetic-ci-canary",{"title":90,"path":91,"stem":92,"children":93,"page":25},"5. Autonomous AI Program Manager","\u002Fdelivery-program-manager","05.delivery-program-manager",[94,98,102,106,110],{"title":95,"path":96,"stem":97},"Overview: Dual-Brain AI PM","\u002Fdelivery-program-manager\u002Foverview","05.delivery-program-manager\u002F1.overview",{"title":99,"path":100,"stem":101},"Executable Tickets & Auto-Splitting","\u002Fdelivery-program-manager\u002Fchinwag-tasks-and-never-stop","05.delivery-program-manager\u002F2.chinwag-tasks-and-never-stop",{"title":103,"path":104,"stem":105},".codegraph & FinOps Routing","\u002Fdelivery-program-manager\u002Fcodegraph-and-finops-arbitrage","05.delivery-program-manager\u002F3.codegraph-and-finops-arbitrage",{"title":107,"path":108,"stem":109},"++ Triage & CI Recovery","\u002Fdelivery-program-manager\u002Fplus-plus-ci-triage","05.delivery-program-manager\u002F4.plus-plus-ci-triage",{"title":111,"path":112,"stem":113},"Flight Deck & Trajectory Time-Travel","\u002Fdelivery-program-manager\u002Fflight-deck-and-time-travel","05.delivery-program-manager\u002F5.flight-deck-and-time-travel",{"title":115,"path":116,"stem":117,"children":118,"page":25},"6. The Chinwag Way & Scrimmages","\u002Fthe-chinwag-way","06.the-chinwag-way",[119,123,127,131],{"title":120,"path":121,"stem":122},"Academic Foundations","\u002Fthe-chinwag-way\u002Facademic-foundations","06.the-chinwag-way\u002F1.academic-foundations",{"title":124,"path":125,"stem":126},"Chips (◈) & 7-Day Survival","\u002Fthe-chinwag-way\u002Fchips-and-7day-survival","06.the-chinwag-way\u002F2.chips-and-7day-survival",{"title":128,"path":129,"stem":130},"Sealed Card (.cwcard.png) Drills","\u002Fthe-chinwag-way\u002Fsealed-card-handoff-drills","06.the-chinwag-way\u002F3.sealed-card-handoff-drills",{"title":132,"path":133,"stem":134},"Calibration Scrimmages","\u002Fthe-chinwag-way\u002Fcalibration-scrimmages","06.the-chinwag-way\u002F4.calibration-scrimmages",{"title":136,"path":137,"stem":138,"children":139,"page":25},"7. Zero-Knowledge Cryptography","\u002Fzero-knowledge-cryptography","07.zero-knowledge-cryptography",[140,144,148,152,156,160],{"title":141,"path":142,"stem":143},"PQ-HPKE Wire Envelope","\u002Fzero-knowledge-cryptography\u002Fpq-hpke-envelope","07.zero-knowledge-cryptography\u002F1.pq-hpke-envelope",{"title":145,"path":146,"stem":147},"Verify-Before-Decrypt (K1+K2)","\u002Fzero-knowledge-cryptography\u002Fverify-before-decrypt","07.zero-knowledge-cryptography\u002F2.verify-before-decrypt",{"title":149,"path":150,"stem":151},"Blinded Commitments & 128B Flywheel","\u002Fzero-knowledge-cryptography\u002Fblind-commitments","07.zero-knowledge-cryptography\u002F3.blind-commitments",{"title":153,"path":154,"stem":155},"Local Viewer & CISO DPA","\u002Fzero-knowledge-cryptography\u002Flocal-viewer-and-dpa","07.zero-knowledge-cryptography\u002F4.local-viewer-and-dpa",{"title":157,"path":158,"stem":159},"A.509 Agent Passports","\u002Fzero-knowledge-cryptography\u002Fa509-agent-pkix","07.zero-knowledge-cryptography\u002F5.a509-agent-pkix",{"title":161,"path":162,"stem":163},"chinwag-acu & CISO Kill Switch","\u002Fzero-knowledge-cryptography\u002Fchinwag-acu","07.zero-knowledge-cryptography\u002F6.chinwag-acu",{"title":165,"path":166,"stem":167,"children":168,"page":25},"8. E2EE Mesh & Extension SDK","\u002Fmesh-and-extensions","08.mesh-and-extensions",[169,173,177],{"title":170,"path":171,"stem":172},"chinwag-mesh & 3-Repo Time Machine","\u002Fmesh-and-extensions\u002Fsdk-and-cwcard-png-transport","08.mesh-and-extensions\u002F1.sdk-and-cwcard-png-transport",{"title":174,"path":175,"stem":176},"warroom & whisper Extensions","\u002Fmesh-and-extensions\u002Fwarroom-and-whisper","08.mesh-and-extensions\u002F2.warroom-and-whisper",{"title":178,"path":179,"stem":180},"teleport, shroud & vault","\u002Fmesh-and-extensions\u002Fgit-bundle-and-vault","08.mesh-and-extensions\u002F3.git-bundle-and-vault",{"title":182,"path":183,"stem":184,"children":185,"page":25},"9. CLI & GraphQL Reference","\u002Fcli-and-graphql-reference","09.cli-and-graphql-reference",[186,190,194,198,202,206],{"title":187,"path":188,"stem":189},"chinwag tasks & task","\u002Fcli-and-graphql-reference\u002Fchinwag-task","09.cli-and-graphql-reference\u002F1.chinwag-task",{"title":191,"path":192,"stem":193},"chinwag board & GraphQL","\u002Fcli-and-graphql-reference\u002Fchinwag-board","09.cli-and-graphql-reference\u002F2.chinwag-board",{"title":195,"path":196,"stem":197},"chinwag pair & triad","\u002Fcli-and-graphql-reference\u002Fchinwag-pair-and-triad","09.cli-and-graphql-reference\u002F3.chinwag-pair-and-triad",{"title":199,"path":200,"stem":201},"chinwag bus","\u002Fcli-and-graphql-reference\u002Fchinwag-bus","09.cli-and-graphql-reference\u002F4.chinwag-bus",{"title":203,"path":204,"stem":205},"chinwag-ci, fork-run & ui-gate","\u002Fcli-and-graphql-reference\u002Fchinwag-ci-and-uigate","09.cli-and-graphql-reference\u002F5.chinwag-ci-and-uigate",{"title":207,"path":208,"stem":209},"chinwag memory & tombstone","\u002Fcli-and-graphql-reference\u002Fchinwag-memory","09.cli-and-graphql-reference\u002F6.chinwag-memory",{"title":211,"path":212,"stem":213,"children":214,"page":-1},"10. Architecture PRDs","\u002Fprds","10.prds",[215,218,222,226,230],{"title":216,"path":212,"stem":217},"10.0 Ratified Architecture PRDs","10.prds\u002Findex",{"title":219,"path":220,"stem":221},"10.1 Ephemeral Tart Cleanroom VMs & Declarative Nix","\u002Fprds\u002Ftart-cleanroom-vms","10.prds\u002F1.tart-cleanroom-vms",{"title":223,"path":224,"stem":225},"10.2 Executable Delivery Boards & Proof-of-Green","\u002Fprds\u002Fdelivery-executable-boards","10.prds\u002F2.delivery-executable-boards",{"title":227,"path":228,"stem":229},"10.3 Cursor Agent SDK Importer & Sanitizer","\u002Fprds\u002Fcursor-agent-sdk-importer","10.prds\u002F3.cursor-agent-sdk-importer",{"title":231,"path":232,"stem":233},"10.4 Chinwag Local Web App & Command Center","\u002Fprds\u002Fhuman-command-center-ui","10.prds\u002F4.human-command-center-ui",{"id":235,"title":18,"body":236,"command":249,"description":1527,"extension":1528,"links":1529,"meta":1530,"navigation":1529,"path":19,"seo":1531,"stem":20,"__hash__":1532},"docs\u002F01.getting-started\u002F3.ci-runners.md",{"type":237,"value":238,"toc":1510},"minimark",[239,243,250,307,384,387,398,407,793,800,989,991,997,1247,1249,1256,1372,1376,1409,1411,1418,1490,1492,1506],[240,241,18],"h1",{"id":242},"_13-github-actions-gitlab-ci-runner-setup",[244,245,246],"p",{},[247,248,249],"code",{},"chinwag-ci wrap --org \u003Corg> -- cargo test",[251,252,253],"blockquote",{},[244,254,255,267,268,271,272,275,276,279,280,283,284,287,288,287,291,287,294,287,297,287,300,303,304,306],{},[256,257,258,259,262,263,266],"strong",{},"✅ Available Now (",[247,260,261],{},"v0.1.0"," · ",[247,264,265],{},"CHWG-PUB-103","):"," The ",[247,269,270],{},"\u003C1 MB"," static ",[247,273,274],{},"chinwag-ci"," cleanroom wrapper for ",[256,277,278],{},"GitHub Actions"," and ",[256,281,282],{},"GitLab CI"," (",[247,285,286],{},"wrap",", ",[247,289,290],{},"test-regressions",[247,292,293],{},"diff-run",[247,295,296],{},"fork-run",[247,298,299],{},"attest-green",[247,301,302],{},"selftest",") is shipped and verified in ",[247,305,261],{},".",[251,308,309],{},[244,310,311,314,315,283,326,329,330,333,334,344,345,359,360,371,372,378,379,306],{},[256,312,313],{},"Outcome Summary & Δ Velocity Proof:"," Drop the ",[256,316,317,271,319,322,323,325],{},[247,318,270],{},[247,320,321],{},"musl"," ",[247,324,274],{}," binary",[247,327,328],{},"Linux x86_64"," & ",[247,331,332],{},"ARM64",", zero Docker pull latency) into GitHub Actions or GitLab CI with a single line. Ephemeral runners generate a ",[256,335,336,337,322,340,343],{},"RAM-only ",[247,338,339],{},"K1",[247,341,342],{},"Ed25519"," keypair",", authenticate via ",[256,346,347,348,351,352,355,356],{},"Zero-Secret OIDC JWKS (",[247,349,350],{},"id-token: write"," \u002F ",[247,353,354],{},"CI_JOB_JWT_V2",") + ",[247,357,358],{},"CHINWAG_CI_ORG_TOKEN",", run all ",[256,361,362,363,366,367,370],{},"Tombstone regression cassettes (",[247,364,365],{},"chinwag-ci test-regressions",") in ",[247,368,369],{},"\u003C50 ms"," at $0 LLM spend",", scrub secrets before HPKE sealing, and turn every failed CI run into an encrypted root-cause wakeup & verified fix cycle (",[256,373,374,377],{},[247,375,376],{},"50 Credits"," per failed CI run","), waking the originating coding agent in ",[256,380,381],{},[247,382,383],{},"1.4 seconds",[385,386],"hr",{},[388,389,391,392,394,395,397],"h2",{"id":390},"_1-1-line-github-actions-gitlab-ci-setup-1-mb-static-musl-binary","1. 1-Line GitHub Actions & GitLab CI Setup (",[247,393,270],{}," Static ",[247,396,321],{}," Binary)",[399,400,402,403,406],"h3",{"id":401},"tab-a-github-actions-githubworkflowsciyml","Tab A: GitHub Actions (",[247,404,405],{},".github\u002Fworkflows\u002Fci.yml",")",[408,409,414],"pre",{"className":410,"code":411,"language":412,"meta":413,"style":413},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# .github\u002Fworkflows\u002Fci.yml · Zero-Secret OIDC JWKS + Tombstone Regressions + 1.4s Agent Wakeup\nname: CI & Governed Chinwag Agent Wakeup\non: [push, pull_request]\n\npermissions:\n  id-token: write   # Hardware OIDC JWKS attestation (zero long-lived private keys)\n  contents: read\n\njobs:\n  test-matrix:\n    runs-on: ${{ matrix.os }}\n    strategy:\n      fail-fast: false\n      matrix:\n        os: [ubuntu-latest, ubuntu-24.04-arm]\n    steps:\n      - uses: actions\u002Fcheckout@v4\n\n      # 1. Replay all Tombstone trajectory regression cassettes in \u003C50ms ($0 LLM spend, 0 network calls)\n      - name: Run Offline Tombstone Cassette Regressions (\u003C50ms, $0)\n        uses: emunlabs\u002Fchinwag-ci@v1\n        with:\n          org: emunlabs\n          mode: test-regressions\n          regressions-dir: .chinwag\u002Fregressions\n\n      # 2. Wrap test suite with Pre-Encryption Secret Scrubber, Fork Quarantine & 1.4s Encrypted Agent Wakeup\n      - name: Run Test Matrix with chinwag-ci (1.4s Encrypted Agent Wakeup)\n        uses: emunlabs\u002Fchinwag-ci@v1\n        env:\n          CHINWAG_CI_ORG_TOKEN: ${{ secrets.CHINWAG_CI_ORG_TOKEN }}\n        with:\n          org: emunlabs\n          mode: wrap\n          hold-for-patch: 90\n          quarantine-fork: true\n          command: cargo test --workspace --all-targets\n","yaml","",[247,415,416,425,440,464,471,480,494,505,510,518,526,537,545,556,564,584,592,606,611,617,630,641,649,660,671,682,687,693,705,714,722,733,740,749,759,771,782],{"__ignoreMap":413},[417,418,421],"span",{"class":419,"line":420},"line",1,[417,422,424],{"class":423},"sHwdD","# .github\u002Fworkflows\u002Fci.yml · Zero-Secret OIDC JWKS + Tombstone Regressions + 1.4s Agent Wakeup\n",[417,426,428,432,436],{"class":419,"line":427},2,[417,429,431],{"class":430},"swJcz","name",[417,433,435],{"class":434},"sMK4o",":",[417,437,439],{"class":438},"sfazB"," CI & Governed Chinwag Agent Wakeup\n",[417,441,443,447,449,452,455,458,461],{"class":419,"line":442},3,[417,444,446],{"class":445},"sfNiH","on",[417,448,435],{"class":434},[417,450,451],{"class":434}," [",[417,453,454],{"class":438},"push",[417,456,457],{"class":434},",",[417,459,460],{"class":438}," pull_request",[417,462,463],{"class":434},"]\n",[417,465,467],{"class":419,"line":466},4,[417,468,470],{"emptyLinePlaceholder":469},true,"\n",[417,472,474,477],{"class":419,"line":473},5,[417,475,476],{"class":430},"permissions",[417,478,479],{"class":434},":\n",[417,481,483,486,488,491],{"class":419,"line":482},6,[417,484,485],{"class":430},"  id-token",[417,487,435],{"class":434},[417,489,490],{"class":438}," write",[417,492,493],{"class":423},"   # Hardware OIDC JWKS attestation (zero long-lived private keys)\n",[417,495,497,500,502],{"class":419,"line":496},7,[417,498,499],{"class":430},"  contents",[417,501,435],{"class":434},[417,503,504],{"class":438}," read\n",[417,506,508],{"class":419,"line":507},8,[417,509,470],{"emptyLinePlaceholder":469},[417,511,513,516],{"class":419,"line":512},9,[417,514,515],{"class":430},"jobs",[417,517,479],{"class":434},[417,519,521,524],{"class":419,"line":520},10,[417,522,523],{"class":430},"  test-matrix",[417,525,479],{"class":434},[417,527,529,532,534],{"class":419,"line":528},11,[417,530,531],{"class":430},"    runs-on",[417,533,435],{"class":434},[417,535,536],{"class":438}," ${{ matrix.os }}\n",[417,538,540,543],{"class":419,"line":539},12,[417,541,542],{"class":430},"    strategy",[417,544,479],{"class":434},[417,546,548,551,553],{"class":419,"line":547},13,[417,549,550],{"class":430},"      fail-fast",[417,552,435],{"class":434},[417,554,555],{"class":445}," false\n",[417,557,559,562],{"class":419,"line":558},14,[417,560,561],{"class":430},"      matrix",[417,563,479],{"class":434},[417,565,567,570,572,574,577,579,582],{"class":419,"line":566},15,[417,568,569],{"class":430},"        os",[417,571,435],{"class":434},[417,573,451],{"class":434},[417,575,576],{"class":438},"ubuntu-latest",[417,578,457],{"class":434},[417,580,581],{"class":438}," ubuntu-24.04-arm",[417,583,463],{"class":434},[417,585,587,590],{"class":419,"line":586},16,[417,588,589],{"class":430},"    steps",[417,591,479],{"class":434},[417,593,595,598,601,603],{"class":419,"line":594},17,[417,596,597],{"class":434},"      -",[417,599,600],{"class":430}," uses",[417,602,435],{"class":434},[417,604,605],{"class":438}," actions\u002Fcheckout@v4\n",[417,607,609],{"class":419,"line":608},18,[417,610,470],{"emptyLinePlaceholder":469},[417,612,614],{"class":419,"line":613},19,[417,615,616],{"class":423},"      # 1. Replay all Tombstone trajectory regression cassettes in \u003C50ms ($0 LLM spend, 0 network calls)\n",[417,618,620,622,625,627],{"class":419,"line":619},20,[417,621,597],{"class":434},[417,623,624],{"class":430}," name",[417,626,435],{"class":434},[417,628,629],{"class":438}," Run Offline Tombstone Cassette Regressions (\u003C50ms, $0)\n",[417,631,633,636,638],{"class":419,"line":632},21,[417,634,635],{"class":430},"        uses",[417,637,435],{"class":434},[417,639,640],{"class":438}," emunlabs\u002Fchinwag-ci@v1\n",[417,642,644,647],{"class":419,"line":643},22,[417,645,646],{"class":430},"        with",[417,648,479],{"class":434},[417,650,652,655,657],{"class":419,"line":651},23,[417,653,654],{"class":430},"          org",[417,656,435],{"class":434},[417,658,659],{"class":438}," emunlabs\n",[417,661,663,666,668],{"class":419,"line":662},24,[417,664,665],{"class":430},"          mode",[417,667,435],{"class":434},[417,669,670],{"class":438}," test-regressions\n",[417,672,674,677,679],{"class":419,"line":673},25,[417,675,676],{"class":430},"          regressions-dir",[417,678,435],{"class":434},[417,680,681],{"class":438}," .chinwag\u002Fregressions\n",[417,683,685],{"class":419,"line":684},26,[417,686,470],{"emptyLinePlaceholder":469},[417,688,690],{"class":419,"line":689},27,[417,691,692],{"class":423},"      # 2. Wrap test suite with Pre-Encryption Secret Scrubber, Fork Quarantine & 1.4s Encrypted Agent Wakeup\n",[417,694,696,698,700,702],{"class":419,"line":695},28,[417,697,597],{"class":434},[417,699,624],{"class":430},[417,701,435],{"class":434},[417,703,704],{"class":438}," Run Test Matrix with chinwag-ci (1.4s Encrypted Agent Wakeup)\n",[417,706,708,710,712],{"class":419,"line":707},29,[417,709,635],{"class":430},[417,711,435],{"class":434},[417,713,640],{"class":438},[417,715,717,720],{"class":419,"line":716},30,[417,718,719],{"class":430},"        env",[417,721,479],{"class":434},[417,723,725,728,730],{"class":419,"line":724},31,[417,726,727],{"class":430},"          CHINWAG_CI_ORG_TOKEN",[417,729,435],{"class":434},[417,731,732],{"class":438}," ${{ secrets.CHINWAG_CI_ORG_TOKEN }}\n",[417,734,736,738],{"class":419,"line":735},32,[417,737,646],{"class":430},[417,739,479],{"class":434},[417,741,743,745,747],{"class":419,"line":742},33,[417,744,654],{"class":430},[417,746,435],{"class":434},[417,748,659],{"class":438},[417,750,752,754,756],{"class":419,"line":751},34,[417,753,665],{"class":430},[417,755,435],{"class":434},[417,757,758],{"class":438}," wrap\n",[417,760,762,765,767],{"class":419,"line":761},35,[417,763,764],{"class":430},"          hold-for-patch",[417,766,435],{"class":434},[417,768,770],{"class":769},"sbssI"," 90\n",[417,772,774,777,779],{"class":419,"line":773},36,[417,775,776],{"class":430},"          quarantine-fork",[417,778,435],{"class":434},[417,780,781],{"class":445}," true\n",[417,783,785,788,790],{"class":419,"line":784},37,[417,786,787],{"class":430},"          command",[417,789,435],{"class":434},[417,791,792],{"class":438}," cargo test --workspace --all-targets\n",[399,794,796,797,406],{"id":795},"tab-b-gitlab-ci-gitlab-ciyml","Tab B: GitLab CI (",[247,798,799],{},".gitlab-ci.yml",[408,801,803],{"className":410,"code":802,"language":412,"meta":413,"style":413},"# .gitlab-ci.yml · Zero-Secret CI_JOB_JWT_V2 OIDC + Static chinwag-ci Runner\nstages:\n  - regressions\n  - test\n\ntombstone-regressions:\n  stage: regressions\n  script:\n    - chinwag-ci test-regressions --dir .chinwag\u002Fregressions --json\n\ncargo-test-matrix:\n  stage: test\n  parallel:\n    matrix:\n      - ARCH: [\"x86_64\", \"aarch64\"]\n  id_tokens:\n    CI_JOB_JWT_V2:\n      aud: https:\u002F\u002Fmesh.chinwag.sh\n  script:\n    - |\n      chinwag-ci wrap \\\n        --org emunlabs \\\n        --hold-for-patch 90 \\\n        -- cargo test --workspace --all-targets\n",[247,804,805,810,817,825,832,836,843,852,859,867,871,878,886,893,900,931,938,945,955,961,969,974,979,984],{"__ignoreMap":413},[417,806,807],{"class":419,"line":420},[417,808,809],{"class":423},"# .gitlab-ci.yml · Zero-Secret CI_JOB_JWT_V2 OIDC + Static chinwag-ci Runner\n",[417,811,812,815],{"class":419,"line":427},[417,813,814],{"class":430},"stages",[417,816,479],{"class":434},[417,818,819,822],{"class":419,"line":442},[417,820,821],{"class":434},"  -",[417,823,824],{"class":438}," regressions\n",[417,826,827,829],{"class":419,"line":466},[417,828,821],{"class":434},[417,830,831],{"class":438}," test\n",[417,833,834],{"class":419,"line":473},[417,835,470],{"emptyLinePlaceholder":469},[417,837,838,841],{"class":419,"line":482},[417,839,840],{"class":430},"tombstone-regressions",[417,842,479],{"class":434},[417,844,845,848,850],{"class":419,"line":496},[417,846,847],{"class":430},"  stage",[417,849,435],{"class":434},[417,851,824],{"class":438},[417,853,854,857],{"class":419,"line":507},[417,855,856],{"class":430},"  script",[417,858,479],{"class":434},[417,860,861,864],{"class":419,"line":512},[417,862,863],{"class":434},"    -",[417,865,866],{"class":438}," chinwag-ci test-regressions --dir .chinwag\u002Fregressions --json\n",[417,868,869],{"class":419,"line":520},[417,870,470],{"emptyLinePlaceholder":469},[417,872,873,876],{"class":419,"line":528},[417,874,875],{"class":430},"cargo-test-matrix",[417,877,479],{"class":434},[417,879,880,882,884],{"class":419,"line":539},[417,881,847],{"class":430},[417,883,435],{"class":434},[417,885,831],{"class":438},[417,887,888,891],{"class":419,"line":547},[417,889,890],{"class":430},"  parallel",[417,892,479],{"class":434},[417,894,895,898],{"class":419,"line":558},[417,896,897],{"class":430},"    matrix",[417,899,479],{"class":434},[417,901,902,904,907,909,911,914,917,919,921,924,927,929],{"class":419,"line":566},[417,903,597],{"class":434},[417,905,906],{"class":430}," ARCH",[417,908,435],{"class":434},[417,910,451],{"class":434},[417,912,913],{"class":434},"\"",[417,915,916],{"class":438},"x86_64",[417,918,913],{"class":434},[417,920,457],{"class":434},[417,922,923],{"class":434}," \"",[417,925,926],{"class":438},"aarch64",[417,928,913],{"class":434},[417,930,463],{"class":434},[417,932,933,936],{"class":419,"line":586},[417,934,935],{"class":430},"  id_tokens",[417,937,479],{"class":434},[417,939,940,943],{"class":419,"line":594},[417,941,942],{"class":430},"    CI_JOB_JWT_V2",[417,944,479],{"class":434},[417,946,947,950,952],{"class":419,"line":608},[417,948,949],{"class":430},"      aud",[417,951,435],{"class":434},[417,953,954],{"class":438}," https:\u002F\u002Fmesh.chinwag.sh\n",[417,956,957,959],{"class":419,"line":613},[417,958,856],{"class":430},[417,960,479],{"class":434},[417,962,963,965],{"class":419,"line":619},[417,964,863],{"class":434},[417,966,968],{"class":967},"s7zQu"," |\n",[417,970,971],{"class":419,"line":632},[417,972,973],{"class":438},"      chinwag-ci wrap \\\n",[417,975,976],{"class":419,"line":643},[417,977,978],{"class":438},"        --org emunlabs \\\n",[417,980,981],{"class":419,"line":651},[417,982,983],{"class":438},"        --hold-for-patch 90 \\\n",[417,985,986],{"class":419,"line":662},[417,987,988],{"class":438},"        -- cargo test --workspace --all-targets\n",[385,990],{},[388,992,994,995],{"id":993},"_2-six-hardened-security-velocity-guarantees-in-chinwag-ci","2. Six Hardened Security & Velocity Guarantees in ",[247,996,274],{},[998,999,1000,1020],"table",{},[1001,1002,1003],"thead",{},[1004,1005,1006,1011,1014],"tr",{},[1007,1008,1010],"th",{"align":1009},"left","Capability",[1007,1012,1013],{"align":1009},"CLI \u002F Flag",[1007,1015,1016,1017,1019],{"align":1009},"How ",[247,1018,274],{}," Enforces It",[1021,1022,1023,1064,1105,1137,1173,1199],"tbody",{},[1004,1024,1025,1031,1040],{},[1026,1027,1028],"td",{"align":1009},[256,1029,1030],{},"1. Zero-Secret OIDC JWKS Attestation",[1026,1032,1033,351,1035,1037,1038],{"align":1009},[247,1034,350],{},[247,1036,354],{}," + ",[247,1039,358],{},[1026,1041,1042,1043,1045,1046,1048,1049,1052,1053,1056,1057,1060,1061,306],{"align":1009},"Generates an ephemeral RAM-only ",[247,1044,342],{}," keypair (",[247,1047,339],{},") at process start and binds its public key into the OIDC JWT ",[247,1050,1051],{},"aud"," claim (",[247,1054,1055],{},"https:\u002F\u002Fmesh.chinwag.sh\u002F\u003Corg>:\u003Cpk_k1_hex>","). The organization coordinator verifies the GitHub\u002FGitLab JWKS signature and issues a 15-minute ",[247,1058,1059],{},"K2","-countersigned ",[247,1062,1063],{},"CiRunnerLeaseCertV1",[1004,1065,1066,1071,1074],{},[1026,1067,1068],{"align":1009},[256,1069,1070],{},"2. Pre-Encryption Secret Scrubber",[1026,1072,1073],{"align":1009},"Automatic before HPKE seal",[1026,1075,1076,1077,1080,1081,287,1084,1087,1088,1091,1092,1095,1096,1100,1101,1104],{"align":1009},"Scans and redacts AWS keys (",[247,1078,1079],{},"AKIA...","), GitHub PATs (",[247,1082,1083],{},"ghp_...",[247,1085,1086],{},"github_pat_...","), Slack tokens (",[247,1089,1090],{},"xoxb-...","), Bearer headers, PEM blocks, and high-entropy strings (",[247,1093,1094],{},">= 4.6 bits\u002Fchar"," Shannon entropy) ",[1097,1098,1099],"em",{},"before"," sealing failure logs with ",[247,1102,1103],{},"RFC 9180"," HPKE so raw CI secrets never enter an agent's LLM context window.",[1004,1106,1107,1112,1118],{},[1026,1108,1109],{"align":1009},[256,1110,1111],{},"3. Untrusted Fork PR Quarantine",[1026,1113,1114,1117],{"align":1009},[247,1115,1116],{},"--quarantine-fork"," (default: enabled)",[1026,1119,1120,1121,1124,1125,1128,1129,1132,1133,1136],{"align":1009},"Detects external fork pull requests (",[247,1122,1123],{},"head_repo_fork == true","), assigns ",[247,1126,1127],{},"TrustTier::UntrustedForkReadOnly"," (5-minute read-only ",[247,1130,1131],{},"art_v1_\u003CTOKEN>","), blocks automatic local code-execution wakeups, and wraps compiler output inside ",[247,1134,1135],{},"\u003Cuntrusted_ci_log_data>"," XML delimiters to prevent indirect prompt injection.",[1004,1138,1139,1148,1153],{},[1026,1140,1141],{"align":1009},[256,1142,1143,1144,1147],{},"4. ",[247,1145,1146],{},"1.4s"," Encrypted Root-Cause Wakeup",[1026,1149,1150],{"align":1009},[247,1151,1152],{},"chinwag-ci wrap",[1026,1154,1155,1156,1159,1160,1162,1163,1166,1167,1170,1171,306],{"align":1009},"Distills compiler\u002Ftest output from a failed CI run into a structured ",[247,1157,1158],{},"(error_code, file_path, line, message_hash)"," root-cause payload (",[247,1161,376],{}," per failed CI run wakeup & fix cycle) and wakes ",[247,1164,1165],{},"@\u003CSEAT>#\u003CINSTANCE>"," over outbound ",[247,1168,1169],{},":443"," in ",[247,1172,1146],{},[1004,1174,1175,1180,1185],{},[1026,1176,1177],{"align":1009},[256,1178,1179],{},"5. Live Container Hold-for-Patch",[1026,1181,1182],{"align":1009},[247,1183,1184],{},"--hold-for-patch \u003Csecs>",[1026,1186,1187,1188,1191,1192,1195,1196,306],{"align":1009},"Keeps the already-warm CI container open for a bounded window (e.g. ",[247,1189,1190],{},"90s",") to receive a dual-signed ",[247,1193,1194],{},"CiCandidatePatchV1"," from the originating coding agent, re-runs only the failing test target in place, and emits a signed ",[247,1197,1198],{},"CiPatchVerifiedReceiptV1",[1004,1200,1201,1209,1216],{},[1026,1202,1203],{"align":1009},[256,1204,1205,1206,1208],{},"6. ",[247,1207,369],{}," Offline Tombstone Cassette Replay",[1026,1210,1211,1037,1214],{"align":1009},[247,1212,1213],{},"chinwag tombstone --emit-test",[247,1215,365],{},[1026,1217,1218,1219,1222,1223,287,1226,287,1229,287,1232,1235,1236,1239,1240,1242,1243,1246],{"align":1009},"Converts every Tombstone \u002F caught agent failure into a deterministic ",[247,1220,1221],{},".chinwag\u002Fregressions\u002F\u003Ctombstone-id>.json"," offline cassette (",[247,1224,1225],{},"ctx.llm",[247,1227,1228],{},"ctx.tool",[247,1230,1231],{},"ctx.clock",[247,1233,1234],{},"ctx.uuid",") synced via the Chinwag Encrypted Artifact Store (",[247,1237,1238],{},"refs\u002Fchinwag\u002Fregressions\u002F\u003Ctombstone-id>",") and replayed on every PR in ",[247,1241,369],{}," with $0 LLM spend and ",[247,1244,1245],{},"0"," network calls.",[385,1248],{},[388,1250,1252,1253,1255],{"id":1251},"_3-architectural-comparison-why-chinwag-ci-crushes-legacy-webhooks","3. Architectural Comparison: Why ",[247,1254,274],{}," Crushes Legacy Webhooks",[998,1257,1258,1276],{},[1001,1259,1260],{},[1004,1261,1262,1265,1271],{},[1007,1263,1264],{"align":1009},"Architectural Dimension",[1007,1266,1267,1268,406],{"align":1009},"Traditional CI\u002FCD + Slack Webhook (",[247,1269,1270],{},"POST https:\u002F\u002F...",[1007,1272,1273,1275],{"align":1009},[247,1274,274],{}," + Chinwag Slack App & Local Viewer",[1021,1277,1278,1310,1329,1350],{},[1004,1279,1280,1285,1292],{},[1026,1281,1282],{"align":1009},[256,1283,1284],{},"1. Boot Latency & Binary Footprint",[1026,1286,1287,1288,1291],{"align":1009},"Heavy Node\u002FPython\u002FDocker actions adding ",[247,1289,1290],{},"15s–45s"," container pull overhead to every matrix shard.",[1026,1293,1294,1305,1306,1309],{"align":1009},[256,1295,1296,394,1298,1300,1301,329,1303,266],{},[247,1297,270],{},[247,1299,321],{}," Rust Binary (",[247,1302,916],{},[247,1304,332],{}," Boots in ",[247,1307,1308],{},"\u003C15 ms"," with zero runtime dependencies.",[1004,1311,1312,1317,1320],{},[1026,1313,1314],{"align":1009},[256,1315,1316],{},"2. Secret Hygiene",[1026,1318,1319],{"align":1009},"Forwards raw stdout\u002Fstderr logs, including leaked env vars or tokens, straight into cloud dashboards or LLM prompts.",[1026,1321,1322,1325,1326,1328],{"align":1009},[256,1323,1324],{},"Pre-Encryption Secret Scrubber + Post-Quantum HPKE:"," Redacts secrets and high-entropy tokens ",[1097,1327,1099],{}," sealing logs to your organization's public key.",[1004,1330,1331,1336,1339],{},[1026,1332,1333],{"align":1009},[256,1334,1335],{},"3. Fork PR Prompt-Injection Defense",[1026,1337,1338],{"align":1009},"Blindly feeds untrusted fork compiler errors into privileged auto-fix bots.",[1026,1340,1341,1346,1347,1349],{"align":1009},[256,1342,1343,1344,266],{},"Automatic Fork PR Quarantine (",[247,1345,1116],{}," Restricts fork PRs to 5-min read-only tokens and isolates logs in ",[247,1348,1135],{}," tags.",[1004,1351,1352,1357,1360],{},[1026,1353,1354],{"align":1009},[256,1355,1356],{},"4. Regression Prevention",[1026,1358,1359],{"align":1009},"Fixes a bug once, then lets another agent re-introduce the exact same tool\u002Fprompt regression next week.",[1026,1361,1362,1368,1369,1371],{"align":1009},[256,1363,1364,1037,1366,435],{},[247,1365,1213],{},[247,1367,365],{}," Replays deterministic offline cassettes in ",[247,1370,369],{}," at $0 token cost on every PR.",[399,1373,1375],{"id":1374},"verification-commands","Verification Commands",[408,1377,1381],{"className":1378,"code":1379,"language":1380,"meta":413,"style":413},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","chinwag-ci selftest --json\nchinwag-ci test-regressions --dir .chinwag\u002Fregressions --json\n","bash",[247,1382,1383,1394],{"__ignoreMap":413},[417,1384,1385,1388,1391],{"class":419,"line":420},[417,1386,274],{"class":1387},"sBMFI",[417,1389,1390],{"class":438}," selftest",[417,1392,1393],{"class":438}," --json\n",[417,1395,1396,1398,1401,1404,1407],{"class":419,"line":427},[417,1397,274],{"class":1387},[417,1399,1400],{"class":438}," test-regressions",[417,1402,1403],{"class":438}," --dir",[417,1405,1406],{"class":438}," .chinwag\u002Fregressions",[417,1408,1393],{"class":438},[385,1410],{},[388,1412,1414,1415,406],{"id":1413},"_4-buildkite-circleci-jenkins-contributor-adapters-coming-soon","4. Buildkite, CircleCI & Jenkins Contributor Adapters (",[247,1416,1417],{},"⏳ Coming Soon",[251,1419,1420],{},[244,1421,1422,1437,1438,329,1441,283,1444,287,1447,322,1450,1453,1454,322,1457,1459,1460,287,1463,322,1465,1468,1469,1472,1473,1476,1477,1483,1484,306],{},[256,1423,1424,1425,262,1428,329,1431,262,1434,266],{},"⏳ Coming Soon (",[247,1426,1427],{},"v0.2.0",[247,1429,1430],{},"CHWG-PUB-115",[247,1432,1433],{},"CHWG-PUB-116",[247,1435,1436],{},"🌱 Contributor Backlog · +500 Cr Bounty"," First-party OIDC token provider adapters for ",[256,1439,1440],{},"Buildkite Pipelines",[256,1442,1443],{},"CircleCI",[247,1445,1446],{},"CHWG-CONTRIB-01",[247,1448,1449],{},"Chinwag Reflex-1",[247,1451,1452],{},"p50: 2026-11-25",") and the outbound ",[256,1455,1456],{},"Jenkins \u002F Drone CI",[247,1458,274],{}," wrapper (",[247,1461,1462],{},"CHWG-CONTRIB-02",[247,1464,1449],{},[247,1466,1467],{},"p50: 2026-11-27",") are open for community pull requests (",[247,1470,1471],{},"+500 Org Credits"," corporate ",[247,1474,1475],{},"OrgWallet"," grant upon merge). Track live status via ",[1478,1479,1481],"a",{"href":1480},"\u002Fapi\u002Freality-matrix",[247,1482,1480],{}," and the ",[1478,1485,1489],{"href":1486,"rel":1487},"https:\u002F\u002Fchinwag.sh\u002Froadmap",[1488],"nofollow","Chinwag Public Roadmap",[385,1491],{},[1493,1494,1495],"ul",{},[1496,1497,1498,322,1501],"li",{},[256,1499,1500],{},"Ready to ship verified code at autonomous speed?",[1478,1502,1505],{"href":1503,"rel":1504},"https:\u002F\u002Fchinwag.sh\u002Fpricing",[1488],"Reserve Your Organization Credit Pack →",[1507,1508,1509],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}",{"title":413,"searchDepth":427,"depth":427,"links":1511},[1512,1519,1521,1525],{"id":390,"depth":427,"text":1513,"children":1514},"1. 1-Line GitHub Actions & GitLab CI Setup (\u003C1 MB Static musl Binary)",[1515,1517],{"id":401,"depth":442,"text":1516},"Tab A: GitHub Actions (.github\u002Fworkflows\u002Fci.yml)",{"id":795,"depth":442,"text":1518},"Tab B: GitLab CI (.gitlab-ci.yml)",{"id":993,"depth":427,"text":1520},"2. Six Hardened Security & Velocity Guarantees in chinwag-ci",{"id":1251,"depth":427,"text":1522,"children":1523},"3. Architectural Comparison: Why chinwag-ci Crushes Legacy Webhooks",[1524],{"id":1374,"depth":442,"text":1375},{"id":1413,"depth":427,"text":1526},"4. Buildkite, CircleCI & Jenkins Contributor Adapters (⏳ Coming Soon)","Configure the \u003C1 MB static chinwag-ci Linux x86_64\u002FARM64 runner with 1-line GitHub Actions & GitLab CI setup, Zero-Secret OIDC JWKS attestation, Pre-Encryption Secret Scrubber, Fork PR Quarantine, 1.4s Direct-to-Agent Encrypted Wakeup, --hold-for-patch live container verification, and \u003C50ms Offline Tombstone Cassette Regression testing.","md",null,{},{"title":18,"description":1527},"gFLMJuWXyUQHzhjAHhuTUPk1iv75cNvpxHosdLczESI",[1534,1536],{"title":14,"path":15,"stem":16,"description":1535,"children":-1},"Initialize \u003Corg>\u002Fchinwag-tasks, configure the 5 canonical Kanban\u002FGantt columns on GitHub Projects v2 and Linear, and publish live Delta Velocity Proof scorecards.",{"title":22,"path":23,"stem":24,"description":1537,"children":-1},"Complete guide to Chinwag's shared Organization Credit Pool, upfront credit packs ($0.0080 to $0.0050 per credit), and fixed credit costs for each verified cryptographic function across Claude, OpenAI Codex, Gemini, xAI Grok, and local Apple Silicon MLX models.",1794371826571]