@overdeck/desktop 0.49.1 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/drizzle/overdeck/0000_overdeck_init.sql +1 -0
- package/package.json +1 -1
- package/server/{acceptance-criteria-Crw-xSJ3.js → acceptance-criteria-B_maCGZv.js} +2 -2
- package/server/{active-dashboard-bundle-CLwfD-Om.js → active-dashboard-bundle-CCqpFWiz.js} +2 -2
- package/server/activity-logger-B0X2JJwM.js +3 -0
- package/server/{activity-logger-BAVLrkR7.js → activity-logger-SlTXYCVf.js} +22 -4
- package/server/{advancing-selfheal-BQiJ7mIH.js → advancing-selfheal-BJAfiY-C.js} +12 -7
- package/server/{agent-gc-5E0lgxI1.js → agent-gc-bhikjoJ_.js} +11 -11
- package/server/agent-idle-D-UQ7gDv.js +745 -0
- package/server/agent-state-BrUPf_7Z.js +3 -0
- package/server/{agent-state-Bb3UUxQm.js → agent-state-FABw8neJ.js} +682 -454
- package/server/{agent-state-service-keg-x1bT.js → agent-state-service-BAQApt97.js} +1 -1
- package/server/{agent-state-service-BFbttwRA.js → agent-state-service-rDenYSlD.js} +5 -5
- package/server/agents-DixZjXWm.js +3 -0
- package/server/{agents-CqQJW75N.js → agents-DzpQidT8.js} +8 -8
- package/server/{archive-planning-BwEhu9Oq.js → archive-planning-BL1ABtW0.js} +20 -135
- package/server/archive-planning-D3gw32U9.js +2 -0
- package/server/{artifact-index-jobs-C6Lg2rKm.js → artifact-index-jobs-Cjdme0jS.js} +3 -3
- package/server/{assemble-DyTp2gSB.js → assemble-B_JgnCbG.js} +28 -9
- package/server/{auto-spawn-consent-BDfe4qz0.js → auto-spawn-consent-BesWchEi.js} +8 -7
- package/server/{backlog-auto-trigger-DuOGpdDW.js → backlog-auto-trigger-COLq639j.js} +3 -3
- package/server/{behavior-Bitko0mD.js → behavior-DCg8CIWC.js} +3 -3
- package/server/{bridge-pool-patrol-DiHEd13O.js → bridge-pool-patrol-BDohuMRt.js} +2 -2
- package/server/{briefing-freshness-CDJcmHHZ.js → briefing-freshness-ENa_hW_V.js} +2 -2
- package/server/build-info-Dx2qrVhb.js +2 -0
- package/server/{build-info-DTX8JwVP.js → build-info-WuZT6xyi.js} +3 -3
- package/server/{checkpoint-manager-BlOOdzLF.js → checkpoint-manager-CSZ7aVQF.js} +26 -9
- package/server/{checkpoint-manager-CKg1tn34.js → checkpoint-manager-DXhGRvg4.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-BGfl0cHM.js → checkpoints-DUkUsPVS.js} +2 -2
- package/server/{checkpoints-DRALkfDS.js → checkpoints-tm_w6Y4V.js} +1 -1
- package/server/{claude-hooks-provision-B_tv3wzE.js → claude-hooks-provision-CTh9zxEi.js} +1 -1
- package/server/{claude-hooks-provision-BlGv6twJ.js → claude-hooks-provision-fRofvhTN.js} +2 -2
- package/server/{claude-permissions-aHgDcZi5.js → claude-permissions-DLrb9ovz.js} +18 -3
- package/server/{claude-settings-overlay-T2LWLteV.js → claude-settings-overlay-BYnXaTVc.js} +2 -2
- package/server/{claude-settings-overlay-CYOvFE3A.js → claude-settings-overlay-CMS5Jab5.js} +1 -1
- package/server/cli-BflmtEFM.js +2 -0
- package/server/{cli-Do8UpLoI.js → cli-CoQou1t_.js} +11 -11
- package/server/{cliproxy-CX6jHRDP.js → cliproxy-DXDQcR3I.js} +52 -17
- package/server/cliproxy-DdhFpcXU.js +3 -0
- package/server/{close-issue-J0_eWYT1.js → close-issue-CpQ0BWg-.js} +5 -5
- package/server/{closed-issue-reaper-bFppuk6F.js → closed-issue-reaper-CdcJRvUx.js} +13 -12
- package/server/{closed-issue-reaper-Cl2h9AfT.js → closed-issue-reaper-TymtZM37.js} +1 -1
- package/server/{codex-icapA4om.js → codex-BValsmtK.js} +1 -1
- package/server/{codex-OOea7lXs.js → codex-DYyZL8JD.js} +16 -10
- package/server/{compaction-continuation-D5voR1ME.js → compaction-continuation-CVjbdGKt.js} +3 -3
- package/server/{config-Cjleh3_U.js → config-CvKH7r7W.js} +1 -1
- package/server/{config-tucKBCCc.js → config-NxI9Yl2f.js} +2 -2
- package/server/{config-DC75T4Mr.js → config-_qaa1UXH.js} +2 -2
- package/server/{config-yaml-BwOEANMr.js → config-yaml-D60AnTIu.js} +55 -15
- package/server/{conflict-gate-DlpWCMd7.js → conflict-gate-0dD1kxjN.js} +1 -1
- package/server/{conflict-gate-D2L1kZeL.js → conflict-gate-hAUCL-un.js} +5 -5
- package/server/{context-layers-CSPGc2Hb.js → context-layers-CdpabJj0.js} +3 -3
- package/server/context-layers-Ds1MnEFI.js +4 -0
- package/server/{continue-U3Af0jUq.js → continue-CnvrUfxw.js} +3 -3
- package/server/{control-settings-5k6ixdFW.js → control-settings-Db0uXgVM.js} +310 -7
- package/server/{conversation-compaction-CSpVpxN6.js → conversation-compaction-B-1KETG9.js} +8 -8
- package/server/{conversation-compaction-Ciit9O6k.js → conversation-compaction-DzMXGRiJ.js} +1 -1
- package/server/{conversation-service-BxrB5lUT.js → conversation-service-BL-asWPX.js} +1 -1
- package/server/{conversation-service-BteE4ELK.js → conversation-service-BxIOd5ay.js} +21 -7
- package/server/conversations-CEMfwMt-.js +3 -0
- package/server/{conversations-DhwxsOru.js → conversations-nS6QgYpD.js} +12 -7
- package/server/cost-3FyqKK56.js +838 -0
- package/server/{cost-Bnf9NUC5.js → cost-Cctc-Q9M.js} +3 -3
- package/server/{cost-CQKI6OCu.js → cost-DTuIRE4y.js} +2 -2
- package/server/{cost-sync-B-ADeXKY.js → cost-sync-DfmvLT9L.js} +3 -3
- package/server/{dag-DI9LaK_q.js → dag-o-dUpw1L.js} +6 -19
- package/server/{dangerous-git-ops-akhA3iyF.js → dangerous-git-ops-BOtXCFkT.js} +1 -1
- package/server/dashboard-db-worker.js +61 -11
- package/server/{deacon-TPYssFYt.js → deacon-CsisLmPt.js} +1735 -172
- package/server/{deacon-canonical-state-DFYymrDw.js → deacon-canonical-state-DkdkQS5p.js} +3 -3
- package/server/deacon-e6py3jkM.js +4 -0
- package/server/{deacon-event-client-Te5v10-b.js → deacon-event-client-BCjHiGAY.js} +1 -1
- package/server/{deacon-event-client-BKOL4AcL.js → deacon-event-client-CMQswEHX.js} +2 -2
- package/server/{deacon-nudge-log-BtlTWgWu.js → deacon-nudge-log-pcliw8Dr.js} +1 -1
- package/server/{deacon-pending-lifecycle-DVHjOLje.js → deacon-pending-lifecycle-BzaE76Xo.js} +3 -3
- package/server/deacon.js +11 -11
- package/server/{dead-end-trip-P0IF1O0E.js → dead-end-trip-Bs3hxIn6.js} +3 -3
- package/server/dead-end-trip-DUbiRMtT.js +2 -0
- package/server/delivery-DhZGRShH.js +3 -0
- package/server/{deploy-patrol-BXjlvoV3.js → deploy-patrol-B8sKkA8h.js} +8 -8
- package/server/deploy-queue--smqHLhe.js +2 -0
- package/server/{deploy-queue-o7shYg1j.js → deploy-queue-CCGWXFkp.js} +2 -2
- package/server/{deploy-window-CNT6fOff.js → deploy-window-YuJewzmC.js} +4 -4
- package/server/{deploy-window-BMk5_oX6.js → deploy-window-hgsvZ3UZ.js} +1 -1
- package/server/{dev-supervisor-SR1CLOAK.js → dev-supervisor-4SBloJHV.js} +2 -2
- package/server/{devcontainer-renderer-enMmNDFa.js → devcontainer-renderer-BiJhwFNi.js} +3 -3
- package/server/{dist-CPTO_zMR.js → dist-CoR2sivG.js} +1 -1
- package/server/dist-FHv1s5ez.js +3 -0
- package/server/{docker-B7qUZptz.js → docker-CWO7dcIP.js} +3 -3
- package/server/{docker-KR3zSFKY.js → docker-DQzyMXkd.js} +1 -1
- package/server/{dod-gK835UMf.js → dod-BAk5arLF.js} +1 -1
- package/server/{done-preflight-CksRvh49.js → done-preflight-CGFA0M1b.js} +1 -1
- package/server/{done-preflight-Bk8aExAL.js → done-preflight-Cx9JGznT.js} +5 -5
- package/server/{driver-CmsY2RLl.js → driver-BtcFz-qu.js} +14 -3
- package/server/durable-review-pipeline-BOEZ0chh.js +3 -0
- package/server/{durable-review-pipeline-DgYHucN2.js → durable-review-pipeline-Djx_lvFd.js} +11 -2
- package/server/{ensure-devcontainer-BQ4YizSH.js → ensure-devcontainer-Dk6ZMOUC.js} +1 -1
- package/server/{ensure-devcontainer-ojerEqQg.js → ensure-devcontainer-DzYBBwnM.js} +4 -4
- package/server/{esm-shims-1htPASWs.js → esm-shims-deFq5Hhl.js} +1 -1
- package/server/{event-store-BgEjNsvk.js → event-store-C50Qt-f1.js} +1 -1
- package/server/{event-store-D7qcJXuZ.js → event-store-DTns2XZP.js} +5 -5
- package/server/{event-store-provider-BKvk2rDj.js → event-store-provider-Bu1Qrg6v.js} +1 -1
- package/server/{events-BIKGJZOT.js → events-B6xW8Cpm.js} +3 -3
- package/server/{dist-src-BM9eudEd.js → factory-CWVKwKFE.js} +714 -2
- package/server/{feature-registry-storage-ewNSIVsQ.js → feature-registry-storage-vaxRN3WO.js} +3 -3
- package/server/{features-CGopJXdU.js → features-DXWwktJB.js} +2 -2
- package/server/{feedback-stuck-retirement-B8-fX7NA.js → feedback-stuck-retirement-CXAYe2rU.js} +2 -2
- package/server/{feedback-target-CkyLYohm.js → feedback-target-DSVpi0gT.js} +1 -1
- package/server/{feedback-target-Ci6N5p4G.js → feedback-target-yPD_wclF.js} +10 -10
- package/server/{feedback-writer-DfuVjvH0.js → feedback-writer-BzN4qvaP.js} +1 -1
- package/server/{feedback-writer-D4ULO4qG.js → feedback-writer-Ds1Wjsz4.js} +5 -5
- package/server/{flywheel-DXI_WITn.js → flywheel-BCZS-FlW.js} +1 -1
- package/server/{flywheel-BwYPDlhK.js → flywheel-CC4gE_rx.js} +15 -15
- package/server/{flywheel-C7yek87O.js → flywheel-DWKd7bMc.js} +79 -29
- package/server/{flywheel-merge-order-C5m5bYBc.js → flywheel-merge-order-DDT3i57u.js} +1 -1
- package/server/{flywheel-merge-order-CXfU4M6l.js → flywheel-merge-order-DJwH2KpL.js} +17 -15
- package/server/forge-4VVCRcF7.js +2 -0
- package/server/{forge-DYX9sKzG.js → forge-CHADjOFs.js} +2 -2
- package/server/{from-DAdMxC29.js → from-C3dzmjSO.js} +1 -1
- package/server/{fs-lock-cw25uO_E.js → fs-lock-DQ_gUxfq.js} +2 -2
- package/server/{fts-operations-D_rzLxX5.js → fts-operations-asZo2fh1.js} +3 -3
- package/server/git-info-DMOSfJ9I.js +148 -0
- package/server/{git-utils-Y0zG25ez.js → git-utils-BAMwn9Nf.js} +1 -1
- package/server/{git-utils-DV4B9TRl.js → git-utils-BdHk8y7g.js} +4 -4
- package/server/{github-app-C33lDk9Z.js → github-app-BWziYCf3.js} +1 -1
- package/server/{github-app-4UX8VIr8.js → github-app-BlMSzSTw.js} +2 -2
- package/server/{github-client-nPj5ckZO.js → github-client-OK24qpol.js} +1 -1
- package/server/{github-client-DkJVR908.js → github-client-w6j5nVlz.js} +3 -3
- package/server/{github-pr-lookup-C9Vokb0W.js → github-pr-lookup-bGcsEvLE.js} +2 -2
- package/server/{harness-binary-BgXYDo2Z.js → harness-binary-DChiynaB.js} +2 -2
- package/server/{harness-resolve-1NZcVx7n.js → harness-resolve-BplBEbwn.js} +4 -4
- package/server/{health-events-jMfxrElt.js → health-events-BTqsmunw.js} +1 -1
- package/server/{health-events-DlX_FVAB.js → health-events-Bk3LjaJ9.js} +2 -2
- package/server/{hooks-NQ19vvlB.js → hooks-DJR1yR9w.js} +2 -2
- package/server/{hooks-W3REcb3h.js → hooks-EndRNrx9.js} +1 -1
- package/server/{hume-BFkid2PO.js → hume-1FJmNDTq.js} +2 -2
- package/server/hume-gXLmRhmN.js +3 -0
- package/server/{identity-Bwh6VGeL.js → identity-C3s8lyp0.js} +3 -3
- package/server/{idle-stack-reaper-CHtCNpvd.js → idle-stack-reaper-CBelVOE3.js} +1 -1
- package/server/{idle-stack-reaper-BeU_KxWx.js → idle-stack-reaper-DtoI4al6.js} +4 -4
- package/server/{in-flight-guard-pcwXKLGz.js → in-flight-guard-B7khcBdQ.js} +1 -1
- package/server/{infra-KTp9KV9u.js → infra-CJRi_5Wu.js} +36 -7
- package/server/{injection-67YyU6SC.js → injection-ADWQ3D0s.js} +8 -8
- package/server/{injection-BxbZKPDh.js → injection-BWsgHvrL.js} +1 -1
- package/server/{inspect-agent-VHSihlb7.js → inspect-agent-CCfNJjKr.js} +12 -12
- package/server/inspect-agent-Dhp3hCGp.js +2 -0
- package/server/{internal-token-B-z-sGBH.js → internal-token-BCTEqUCX.js} +1 -1
- package/server/{internal-token-zY75jrRJ.js → internal-token-BeIWG_kT.js} +2 -2
- package/server/{io-DfvO2xyh.js → io-BCtZoXHo.js} +5 -5
- package/server/{issue-closed-dvEWKO7Q.js → issue-closed-CiYAa6bX.js} +7 -7
- package/server/{issue-lifecycle-3N8XF7lP.js → issue-lifecycle-BETNVVLq.js} +206 -29
- package/server/{issue-lifecycle-BI6jAfp8.js → issue-lifecycle-DaKN57sx.js} +1 -1
- package/server/{issue-service-singleton-CL6hESX2.js → issue-service-singleton-1Q0ER8Yc.js} +1 -1
- package/server/{issue-service-singleton-BN_2MXp4.js → issue-service-singleton-C_sZ0HjP.js} +124 -11
- package/server/issue-title-fallback-B91iD66g.js +120 -0
- package/server/{issues-CkvUoAnq.js → issues-RGHQUKhB.js} +2 -2
- package/server/{jsonl-parser-CrEb2PWr.js → jsonl-parser-Dfs1dlYE.js} +3 -3
- package/server/jsonl-resolver-bFtftCDd.js +324 -0
- package/server/{kimi-code-DoMoGqIu.js → kimi-code-BxkDgaj4.js} +1 -1
- package/server/{kimi-code-C26gmGxM.js → kimi-code-CNYRA8Dd.js} +14 -12
- package/server/{kimi-parser-Dmhy3UlR.js → kimi-parser-OcWwmOqF.js} +2 -2
- package/server/{label-cleanup-X2lWfghH.js → label-cleanup-CefxK9tL.js} +3 -3
- package/server/{lifecycle-B0rL38D3.js → lifecycle-DDZ7w-BY.js} +6 -6
- package/server/{lifecycle-Bg44O-9x.js → lifecycle-DVXyUil2.js} +2 -2
- package/server/{lifecycle-io-DQDU0apV.js → lifecycle-io-D1oBiMce.js} +1 -1
- package/server/{lifecycle-io-CCBpRv5m.js → lifecycle-io-D7N0vQNj.js} +5 -5
- package/server/{linear-client-B0cIkTs4.js → linear-client-DUN7zCeb.js} +3 -3
- package/server/{linear-client-6V2E-DSa.js → linear-client-TL32snOy.js} +1 -1
- package/server/{linear-mcp-auth-LCo9AWUd.js → linear-mcp-auth-CtRKSHy5.js} +1 -1
- package/server/{linear-mcp-auth-Dsu9Io9r.js → linear-mcp-auth-bB0CPyjh.js} +5 -5
- package/server/memory-fts-worker.js +1 -1
- package/server/{memory-governor-A4O6vI9d.js → memory-governor-Cvv_9K0M.js} +88 -22
- package/server/{memory-pressure-patrol-BWlWywmA.js → memory-pressure-patrol-C6DJJQRA.js} +38 -14
- package/server/{merge-BGWcBxku.js → merge-DOCR6pHi.js} +1 -1
- package/server/{merge-vz80RvSE.js → merge-FTk4LsnM.js} +3 -3
- package/server/{merge-agent-GWhmnxFk.js → merge-agent-C-dsN9se.js} +37 -33
- package/server/{merge-agent-BRSz26Oh.js → merge-agent-D-4_iQgy.js} +2 -2
- package/server/{merge-batch-CFMEtTxv.js → merge-batch-BJjzUUL7.js} +1 -1
- package/server/{merge-completeness-CP347umA.js → merge-completeness-BOtBUwTU.js} +4 -4
- package/server/{merge-completeness-7ajHAIR-.js → merge-completeness-CoLJxfUY.js} +1 -1
- package/server/merge-eligibility-C4rTS97F.js +3 -0
- package/server/merge-eligibility-D7wRnJbj.js +51 -0
- package/server/merge-ops-Cf02szJ5.js +2 -0
- package/server/merge-rebase-Bj7eJAG4.js +2 -0
- package/server/{merge-rebase-C5htyEEH.js → merge-rebase-KBw4rdh3.js} +2 -2
- package/server/{merge-set-DsGW8fmc.js → merge-set-CVfEM57p.js} +1 -1
- package/server/{merge-set-eiE2nC6C.js → merge-set-CyW-xSn4.js} +4 -4
- package/server/{merge-sync-CM2-myXu.js → merge-sync-CYGsJy0u.js} +1 -1
- package/server/{merge-sync-Ct0-cxMX.js → merge-sync-YLvOPAry.js} +2 -2
- package/server/{merge-train-BOu3fN7O.js → merge-train-VxLn8Ms4.js} +4 -4
- package/server/{merge-train-deps-LXHGK61n.js → merge-train-deps-D0y4hBB9.js} +4 -4
- package/server/{merge-verification-BRp08IzI.js → merge-verification-BfJRNMiD.js} +6 -6
- package/server/{merged-docker-cleanup-worker-CwldDjHV.js → merged-docker-cleanup-worker-Bh5fKG_b.js} +4 -4
- package/server/{merged-docker-cleanup-worker-C8eGn78a.js → merged-docker-cleanup-worker-Ci9oeFAe.js} +1 -1
- package/server/messaging-Dfbhgjd6.js +3 -0
- package/server/{multipart-parser-OAuW7824.js → multipart-parser-BYwfKOVU.js} +2 -2
- package/server/{no-resume-mode-MWI6pnrK.js → no-resume-mode-DjMQRkId.js} +1 -1
- package/server/node_modules/.package-lock.json +24 -24
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/AGENTS.md +14 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/CLAUDE.md +14 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/README.md +10 -3
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/package.json +2 -2
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/40_sql/10_basics.ts +175 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/40_sql/index.md +6 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/10_basics.ts +3 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/20_testing.ts +100 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/api/Users.ts +30 -14
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/domain/User.ts +15 -6
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +11 -10
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +41 -32
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/server/Users.ts +141 -20
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/70_cli/10_basics.ts +31 -5
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.d.ts.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js +10 -9
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.d.ts.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.js +12 -9
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocket.js +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocket.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocketServer.js +4 -4
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocketServer.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeStream.d.ts.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeStream.js +10 -4
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeStream.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.d.ts +4 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.d.ts.map +1 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.js +10 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.js.map +1 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +7 -7
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeChildProcessSpawner.ts +16 -11
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeClusterSocket.ts +15 -12
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeSocket.ts +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeSocketServer.ts +4 -4
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeStream.ts +10 -4
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/internal/nodeChildProcessSpawner.ts +16 -0
- package/server/node_modules/@types/node/README.md +1 -1
- package/server/node_modules/@types/node/buffer.buffer.d.ts +5 -5
- package/server/node_modules/@types/node/crypto.d.ts +2 -2
- package/server/node_modules/@types/node/http.d.ts +16 -0
- package/server/node_modules/@types/node/http2.d.ts +10 -2
- package/server/node_modules/@types/node/package.json +2 -2
- package/server/node_modules/@types/node/process.d.ts +52 -0
- package/server/node_modules/@types/node/quic.d.ts +210 -28
- package/server/node_modules/@types/node/sqlite.d.ts +6 -2
- package/server/node_modules/@types/node/test.d.ts +36 -0
- package/server/node_modules/ansi-regex/index.js +3 -2
- package/server/node_modules/ansi-regex/package.json +1 -1
- package/server/node_modules/effect/node_modules/uuid/README.md +19 -19
- package/server/node_modules/effect/node_modules/uuid/dist/v1.js +7 -3
- package/server/node_modules/effect/node_modules/uuid/dist/v7.js +5 -2
- package/server/node_modules/effect/node_modules/uuid/dist-node/v1.js +7 -3
- package/server/node_modules/effect/node_modules/uuid/dist-node/v7.js +5 -2
- package/server/node_modules/effect/node_modules/uuid/package.json +4 -3
- package/server/node_modules/gaxios/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/server/node_modules/gaxios/build/esm/tsconfig.tsbuildinfo +1 -1
- package/server/node_modules/gaxios/package.json +3 -3
- package/server/node_modules/msgpackr/dist/index-no-eval.cjs +11 -5
- package/server/node_modules/msgpackr/dist/index-no-eval.cjs.map +1 -1
- package/server/node_modules/msgpackr/dist/index-no-eval.min.js +1 -1
- package/server/node_modules/msgpackr/dist/index-no-eval.min.js.map +1 -1
- package/server/node_modules/msgpackr/dist/index.js +11 -5
- package/server/node_modules/msgpackr/dist/index.js.map +1 -1
- package/server/node_modules/msgpackr/dist/index.min.js +1 -1
- package/server/node_modules/msgpackr/dist/index.min.js.map +1 -1
- package/server/node_modules/msgpackr/dist/node.cjs +11 -5
- package/server/node_modules/msgpackr/dist/node.cjs.map +1 -1
- package/server/node_modules/msgpackr/dist/test.js +11 -5
- package/server/node_modules/msgpackr/dist/test.js.map +1 -1
- package/server/node_modules/msgpackr/dist/unpack-no-eval.cjs +11 -5
- package/server/node_modules/msgpackr/dist/unpack-no-eval.cjs.map +1 -1
- package/server/node_modules/msgpackr/package.json +1 -1
- package/server/node_modules/msgpackr/unpack.js +11 -5
- package/server/node_modules/picomatch/lib/parse.js +10 -1
- package/server/node_modules/picomatch/lib/scan.js +30 -18
- package/server/node_modules/picomatch/package.json +1 -1
- package/server/{orphan-proposed-reconciler-BAE5AZ_e.js → orphan-proposed-reconciler-CnP0K2v3.js} +2 -2
- package/server/{orphan-proposed-reconciler-cV3URUqk.js → orphan-proposed-reconciler-nFUlquZt.js} +24 -23
- package/server/package-lock.json +25 -25
- package/server/package.json +1 -1
- package/server/{pan-dir-DDd91kMb.js → pan-dir-B4NfzOf3.js} +5 -5
- package/server/{deacon-merge-BOGFEV8_.js → parked-residue-8WbU0y1z.js} +188 -69
- package/server/{paths-CRLnDgcI.js → paths-rETQhTF2.js} +2 -2
- package/server/{pending-lifecycle-claim-CYgMiDAP.js → pending-lifecycle-claim-yAwDuGS4.js} +2 -2
- package/server/{pickup-BjJsSX12.js → pickup-Dle6k9Xt.js} +1 -1
- package/server/{pipeline-agent-reader-BLc43dVJ.js → pipeline-agent-reader-CeWhQzXC.js} +5 -5
- package/server/{pipeline-membership-BHZp_ShY.js → pipeline-membership-BV4hdkHm.js} +1 -1
- package/server/{pipeline-membership-5qlRz5Qg.js → pipeline-membership-C9ykcjsn.js} +1 -1
- package/server/{pipeline-membership-gather-CGFY1v-y.js → pipeline-membership-gather-Ba0wJNCR.js} +17 -12
- package/server/{pipeline-membership-gather-WhRc1yke.js → pipeline-membership-gather-C9E22B2W.js} +1 -1
- package/server/{pipeline-notifier-C4fZ2ito.js → pipeline-notifier-B5DPXvnr.js} +1 -1
- package/server/{pipeline-notifier-BmsLWM_2.js → pipeline-notifier-p190L97e.js} +2 -2
- package/server/{post-merge-lifecycle-worker-KK1RTKRE.js → post-merge-lifecycle-worker-OQoK8Ckg.js} +3 -3
- package/server/{post-merge-state-_Lj3LDLh.js → post-merge-state-DFaf7OI1.js} +4 -4
- package/server/prd-locations-F2oLSAhy.js +124 -0
- package/server/{project-pipelines-CCkebHOu.js → project-pipelines-CUsa6U59.js} +2 -2
- package/server/project-repos-BVdi9-ch.js +3 -0
- package/server/{project-repos-B4MK48j4.js → project-repos-CsfvLtmr.js} +29 -3
- package/server/project-resource-refresh-queue-BehrH4Ai.js +865 -0
- package/server/project-resource-refresh-queue-D2110Guc.js +2 -0
- package/server/{projects-DvPEAP18.js → projects-BMuEf14J.js} +1 -1
- package/server/{prompts-BiS5I2tZ.js → prompts-CKpDt8Jn.js} +2 -2
- package/server/providers-Buv2wmFU.js +3 -0
- package/server/{providers-DrfK0Ip8.js → providers-CxPKmyif.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-GtVe_o56.js → chunk-BO2N2NFS-DZOQVqV1.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-BvhcYYHc.js → diagram-OG6HWLK6-oKeXcbO1.js} +1 -1
- package/server/public/assets/{dist-CSmUXazd.js → dist-2qPmeRzT.js} +3 -3
- package/server/public/assets/{dist-D0ryefak.js → dist-ClBlE-Nm.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-BXA51DzM.js → ganttDiagram-6RSMTGT7-BwdG9fQv.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-mlV4EpWt.js → highlighted-body-OFNGDK62-BzGNdskQ.js} +1 -1
- package/server/public/assets/index-CdPveU3M.css +1 -0
- package/server/public/assets/index-Cg6tdZoY.js +860 -0
- package/server/public/assets/{linear-BPE7oswm.js → linear-DpEt1TJb.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-6KBD_3T_.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-BguGGV3S.js → pieDiagram-4H26LBE5-9BpM4oRJ.js} +1 -1
- package/server/public/assets/{prod-aKDYUrXQ.js → prod-CzJiNNEG.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-Bx3i4B6H.js → quadrantDiagram-W4KKPZXB-BXWVAoZx.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-B5vuLjA4.js → sankeyDiagram-5OEKKPKP-5oxodGEw.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-HPlpkqsN.js → xychartDiagram-2RQKCTM6-BChDrHxZ.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/pull-requests-CmlandI7.js +2 -0
- package/server/{pull-requests-BcHIsFJv.js → pull-requests-T0OV0Vn4.js} +3 -3
- package/server/{rally-B1OMtzch.js → rally-CUqj2oIN.js} +3 -3
- package/server/rally-DYIn9R2U.js +3 -0
- package/server/{rally-api-ShZ4kvn0.js → rally-api-BFPb2oSq.js} +2 -2
- package/server/{rally-api-u_vkr5c_.js → rally-api-BoucQG1u.js} +1 -1
- package/server/{rally-client-D6Feq1Ka.js → rally-client-16iObny7.js} +5 -5
- package/server/{rally-client-DgZvUZqX.js → rally-client-CsqLjLLa.js} +1 -1
- package/server/{reap-terminal-sessions-CRfiXLY0.js → reap-terminal-sessions-BaDSNR-k.js} +2 -2
- package/server/{reap-terminal-sessions-D7f3zSE9.js → reap-terminal-sessions-DgEIKMhH.js} +2 -2
- package/server/{rebuild-stack-CCwKHZb6.js → rebuild-stack-BcBVFJp3.js} +2 -2
- package/server/{rebuild-stack-DKxOnkpE.js → rebuild-stack-CyXMrj6K.js} +7 -7
- package/server/reconciler-caYiRnPy.js +657 -0
- package/server/{reconstruct-cache-BP8UIKt7.js → reconstruct-cache-3JzPOune.js} +7 -7
- package/server/{record-By-wp6pg.js → record-DYOg97Iv.js} +1 -1
- package/server/{record-update-D23jPU6b.js → record-update-BPqpBu3O.js} +9 -7
- package/server/{record-update-ByGtIlUK.js → record-update-CDPEX7BH.js} +1 -1
- package/server/{recovery-trip-C4dTl8DO.js → recovery-trip-CpfW6LCJ.js} +43 -10
- package/server/{recovery-trip-qloOYOFz.js → recovery-trip-xqKC07Gy.js} +1 -1
- package/server/{release-engine-Crc0Tjx-.js → release-engine-C_OOhCaK.js} +5 -5
- package/server/{release-set-DDXwbIK7.js → release-set-DOIDz2vw.js} +3 -3
- package/server/{remote-oEMfXlwT.js → remote-BTh-sjpX.js} +3 -3
- package/server/{remote-agents-Bgtc2nOO.js → remote-agents-DbbN7vSm.js} +6 -6
- package/server/{remote-agents-DQVGZVQ9.js → remote-agents-MuXx2gWm.js} +1 -1
- package/server/{remote-completion-DxUJ5HKR.js → remote-completion-LcWCpAm2.js} +13 -13
- package/server/{remote-CBpLi4Yy.js → remote-xY0B43Ho.js} +3 -3
- package/server/{resolver-CuAULbLs.js → resolver-C2QKOf09.js} +2 -2
- package/server/{resolver-C8rooxoz.js → resolver-D4nsxfGo.js} +31 -8
- package/server/resume-ByUrJUNX.js +3 -0
- package/server/{review-agent-7C2w5CzU.js → review-agent-BRBTm1qE.js} +43 -55
- package/server/review-agent-Caodi0PX.js +3 -0
- package/server/{review-artifacts-BJeEfm2r.js → review-artifacts-DgaDlbO4.js} +6 -6
- package/server/{review-convoy-liveness-DfF9eXjI.js → review-convoy-liveness-BBvyuRLC.js} +20 -11
- package/server/{review-run-recovery-ZjuDTNhZ.js → review-run-recovery-DCzWMMvE.js} +1 -1
- package/server/{review-run-recovery-7BKt2Es0.js → review-run-recovery-THHMKlXJ.js} +3 -3
- package/server/{review-status-CUnjjOUu.js → review-status-Bge_3XTR.js} +1 -1
- package/server/{review-status-DBnR5t4z.js → review-status-DpniqzPT.js} +113 -44
- package/server/{review-status-emit-Cg4tOb8U.js → review-status-emit-D7sM720S.js} +3 -3
- package/server/{review-status-enrichment-D-rQshu6.js → review-status-enrichment-PDI4-faj.js} +3 -3
- package/server/{review-status-source-DSn0glLa.js → review-status-source-D2PCWS6E.js} +1 -1
- package/server/{review-status-source-Ct912fv_.js → review-status-source-Jq0BXmn3.js} +1 -1
- package/server/{review-status-sync-B7V_Gg51.js → review-status-sync-C6ZKTI8f.js} +11 -8
- package/server/{review-status-sync-YthpOH_q.js → review-status-sync-CvpHWyvR.js} +1 -1
- package/server/{review-verdict-feedback-C-dBon_-.js → review-verdict-feedback-B2ojHFH5.js} +8 -8
- package/server/{review-verdict-feedback-DqXTuJk8.js → review-verdict-feedback-tyMoLT2L.js} +1 -1
- package/server/{review-verdict-writer-CKaJWp75.js → review-verdict-writer-Cy_1pnIj.js} +7 -7
- package/server/{review-verdict-writer-jldSh3Bm.js → review-verdict-writer-DjrJ64eS.js} +1 -1
- package/server/{rollup-DZwH4CLs.js → rollup-Cp0KEoOu.js} +1 -1
- package/server/{rollup-QCwYcBdP.js → rollup-DU3xBQu2.js} +8 -8
- package/server/{scanner-2aHeLC3W.js → scanner-BFKG3Gxv.js} +8 -8
- package/server/{search-DwHYaj66.js → search-DhtKwbBC.js} +2 -2
- package/server/{secret-redaction-B5G1xZ3k.js → secret-redaction-DLZ-VqHq.js} +1 -1
- package/server/{sequence-io-POKWdusG.js → sequence-io-C-Q19Jez.js} +4 -4
- package/server/{sequencer-agent-DS00KHVm.js → sequencer-agent-eN2P2lDz.js} +6 -6
- package/server/server.js +1499 -1350
- package/server/{service-BLb_CyPL.js → service-CThO0Sar.js} +80 -774
- package/server/{session-fork-DcTzVwex.js → session-fork-ZYTHtpBh.js} +2 -2
- package/server/settings-ByDRfuuE.js +2 -0
- package/server/{settings-Clw8UVNs.js → settings-CTywpFw5.js} +2 -2
- package/server/{settings-B9-H2K_E.js → settings-nAT-eK56.js} +3 -3
- package/server/{shadow-engineering-C6oO_PiR.js → shadow-engineering-BHZKPJhq.js} +3 -3
- package/server/{shadow-state-CEGrrECe.js → shadow-state-BTLi4Axs.js} +2 -2
- package/server/{shadow-state-e7250VUx.js → shadow-state-CZ_LnPsi.js} +1 -1
- package/server/{shadow-utils-xFk2Wusb.js → shadow-utils-CPLlPHdn.js} +2 -2
- package/server/{ship-log-7BnQHuKU.js → ship-log-D-CphNZx.js} +1 -1
- package/server/{ship-record-CwUX6Afo.js → ship-record-BaBla0l_.js} +7 -7
- package/server/{ship-record-BgUPnpT0.js → ship-record-BlvX8-xv.js} +1 -1
- package/server/{ship-status-Ce3_3edi.js → ship-status-rQbPQBsF.js} +2 -2
- package/server/{smart-compaction-BmfIi3oL.js → smart-compaction-CUXn8mfX.js} +1 -1
- package/server/{smart-compaction-Dy0gw1VH.js → smart-compaction-D1CNGdZx.js} +7 -7
- package/server/{spawn-planning-session-nH3b4Drz.js → spawn-planning-session-DCmO6COk.js} +19 -19
- package/server/{spawn-planning-session-CfhxRJoY.js → spawn-planning-session-DfEWyrVV.js} +2 -2
- package/server/{specialist-completion-CC1XJbTx.js → specialist-completion-BMv3K54P.js} +1 -1
- package/server/{specialist-context-cHwpcXSh.js → specialist-context-C1-CfYQb.js} +5 -5
- package/server/{specialist-handoff-logger-GqnGSYoJ.js → specialist-handoff-logger-BDKoz5Z9.js} +2 -2
- package/server/{specialist-logs-5OTnrV91.js → specialist-logs-BJQFkpdG.js} +3 -3
- package/server/specialists-CYt1U3Zm.js +4 -0
- package/server/{specialists-8LcQi9Np.js → specialists-D6MUU31Q.js} +21 -272
- package/server/{specialists-DocAK-7A.js → specialists-DhS79T9v.js} +369 -691
- package/server/{specialists-xXcJHAyg.js → specialists-Dx0zRTxX.js} +1 -1
- package/server/specialists-registry-BRLCi61y.js +3 -0
- package/server/specialists-registry-Bng0OFGH.js +277 -0
- package/server/specs-oRGyfz6C.js +3 -0
- package/server/{src-C2TAxwki.js → src-C7gGe4KU.js} +6 -6
- package/server/{src-DudQNYVw.js → src-CdwN6WY6.js} +344 -7
- package/server/{src-DUVvEA8Q.js → src-DMosbuSJ.js} +3 -3
- package/server/{stack-health-DKT4ySnA.js → stack-health-BKfNaqMm.js} +3 -3
- package/server/{stack-health-CbyiYS9H.js → stack-health-Bz711z1Y.js} +1 -1
- package/server/{stale-task-claims-PzFee70R.js → stale-task-claims-DMRLb5R2.js} +5 -5
- package/server/{staleness-D8UTEXV5.js → staleness-CxZaIhrn.js} +1 -1
- package/server/{staleness-BjOAq9-d.js → staleness-r_dkMyMG.js} +1 -1
- package/server/{stall-sweeper-DOyIfeLR.js → stall-sweeper-CBWqSWV2.js} +8 -8
- package/server/{state-home-DhAZlk5k.js → state-home-DhsMqg8W.js} +2 -2
- package/server/{state-mapping-BVSs84bO.js → state-mapping-D2yC81Vy.js} +1 -1
- package/server/{state-migrate-CJKEwpB0.js → state-migrate-C2Ouyd6e.js} +6 -6
- package/server/{state-mirror-Do7pag7W.js → state-mirror-BPXciz84.js} +3 -3
- package/server/stuck-remediation-DALieAkx.js +2 -0
- package/server/stuck-remediation-kta3KN7c.js +774 -0
- package/server/{substrate-bug-weights-service-BTNjHBnl.js → substrate-bug-weights-service-D_ICP7TI.js} +3 -3
- package/server/{summary-fork-CvB7Oyq9.js → summary-fork-CojrFKb6.js} +2 -2
- package/server/{summary-fork-CZ88rhVx.js → summary-fork-DhhaFhxZ.js} +113 -30
- package/server/supervisor/{pane-composer-BaLLspSj.js → pane-composer-CoiVkGIt.js} +8 -1
- package/server/supervisor/{paths-D6XUcR_g.js → paths-DTGbtcaP.js} +8 -4
- package/server/supervisor/pty-supervisor.js +3 -3
- package/server/supervisor/{pty-token-DjjHxoCq.js → pty-token-GVqnvU3U.js} +2 -2
- package/server/supervisor-DSSWo4M2.js +2 -0
- package/server/{supervisor-D4v0WfiQ.js → supervisor-DqH-laVL.js} +4 -4
- package/server/{swarm-readiness-D8R-LWX5.js → swarm-readiness-LF8ZF_hc.js} +3 -3
- package/server/{synthesis-verdict-N5Z11pg7.js → synthesis-verdict-CGFF8uQI.js} +2 -2
- package/server/{synthesis-verdict-B6wvLGcA.js → synthesis-verdict-DSoOFUIV.js} +1 -1
- package/server/{system-prerequisites-BbGZ_WHF.js → system-prerequisites-Lsx0jUUV.js} +2 -2
- package/server/{teardown-workspace-CYend-KY.js → teardown-workspace-DMwomEG1.js} +16 -16
- package/server/{test-agent-queue-BUtWhNcc.js → test-agent-queue-Cu0D6BYe.js} +6 -6
- package/server/{test-verdict-BWm3hgDj.js → test-verdict-9mvl7pQn.js} +1 -1
- package/server/{test-verdict-BWtRmdiR.js → test-verdict-oNSv1rVr.js} +2 -2
- package/server/{tldr-daemon-CneJ24eL.js → tldr-daemon-CRSAkhBx.js} +1 -1
- package/server/{tldr-daemon-CMVBT4kT.js → tldr-daemon-McqCk2X7.js} +2 -2
- package/server/tmux-CYucGrTl.js +4 -0
- package/server/{tmux-BqXzRuaH.js → tmux-wnT_hg-s.js} +91 -19
- package/server/{token-CO3INKbh.js → token-BdfZLRg1.js} +2 -2
- package/server/{token-util-DyJJyX_B.js → token-util-Crcay9j_.js} +1 -1
- package/server/token-util-DfUS3Lpp.js +3 -0
- package/server/{tracker-config-DVzhaUxO.js → tracker-config-tfAOWgng.js} +2 -2
- package/server/{tracker-utils-xnVJVrrO.js → tracker-utils-Dbg_pVZg.js} +2 -2
- package/server/{traefik-connect-A5k54mCv.js → traefik-connect-DoQvQ6oJ.js} +1 -1
- package/server/{tunnel-DauSR-rs.js → tunnel-B1MNIgkL.js} +1 -1
- package/server/{tunnel-CwOnS-PB.js → tunnel-skW68j9B.js} +3 -3
- package/server/{typed-errors-B-gfU2RB.js → typed-errors-CZ3GFBvo.js} +1 -1
- package/server/{typed-errors-DzC4zXbI.js → typed-errors-DXqf3RnP.js} +1 -1
- package/server/{types-DjpLVpsj.js → types-PW4zkxCM.js} +1 -1
- package/server/{types-DbxY2QB6.js → types-pLpbsNto.js} +1 -1
- package/server/{uat-failure-feedback-BVqsWlrr.js → uat-failure-feedback-ly8ZwtfC.js} +5 -5
- package/server/{uat-promote-verification-DmG097QS.js → uat-promote-verification-BBaMwfdc.js} +5 -5
- package/server/{uat-train-DVUNW03P.js → uat-train-BBEiYSep.js} +0 -0
- package/server/{uat-train-COSy-vEX.js → uat-train-D7Ran2FB.js} +1 -1
- package/server/{validate-Dvv83iBx.js → validate-BYcBcBwg.js} +3 -3
- package/server/{validation-DlHafKzu.js → validation-BfG2jW5C.js} +9 -6
- package/server/{validation-BdCjzWLN.js → validation-nSrYiYvA.js} +1 -1
- package/server/{verification-artifact-CaSbxUVg.js → verification-artifact-Cmhgq4b_.js} +1 -1
- package/server/{verification-artifact-0Zku8N-W.js → verification-artifact-DglwaHke.js} +1 -1
- package/server/{verification-runner-DwP2fUEF.js → verification-runner-BEq5ZF-h.js} +53 -27
- package/server/{verification-runner-C6wdZda2.js → verification-runner-CFjAuv9u.js} +1 -1
- package/server/{vtt-parser-luerJpYT.js → vtt-parser-Va--tv27.js} +1 -1
- package/server/work-agent-prompt-BnhKNAg7.js +3 -0
- package/server/{work-agent-prompt--9AWNYwZ.js → work-agent-prompt-CaD2ue8m.js} +14 -14
- package/server/{work-agent-start-BNQO65W7.js → work-agent-start-0nJ-6UeA.js} +2 -2
- package/server/{work-agent-start-DkzseQFl.js → work-agent-start-D8NEN5KD.js} +1 -1
- package/server/workflows-BtHRlFIm.js +2 -0
- package/server/{workflows-BYwR2aIN.js → workflows-C7mxM1qc.js} +114 -41
- package/server/{workspace-iTnTycOB.js → workspace-BAhMgMaO.js} +3 -3
- package/server/{workspace-B-QJa3Ps.js → workspace-Dbqv9ehn.js} +1 -1
- package/server/{workspace-anchor-drift-CHiGg8iu.js → workspace-anchor-drift-B_3kyyxJ.js} +4 -4
- package/server/{workspace-anchor-drift-DTt6h2Em.js → workspace-anchor-drift-Bpa3xoni.js} +1 -1
- package/server/{workspace-config-D0CavVtz.js → workspace-config-D-bNq2CF.js} +1 -1
- package/server/{workspace-manager-5BKPV6SY.js → workspace-manager-BrbX90Rm.js} +1 -1
- package/server/{workspace-manager-W1OnbvU5.js → workspace-manager-CM8RCrSc.js} +17 -17
- package/server/{workspace-metadata-tbbevEmP.js → workspace-metadata-BEOwJSdK.js} +1 -1
- package/server/{workspace-metadata-dJhXvZGQ.js → workspace-metadata-Cu6yfxBS.js} +2 -2
- package/server/{workspaces-BlpbOPZ7.js → workspaces-C7LAuZfe.js} +140 -709
- package/sync-sources/dev-skills/pan-style-guide/SKILL.md +90 -15
- package/sync-sources/hooks/linear-mcp-auth-hook +6 -1
- package/sync-sources/rules/agent-message-delivery.md +21 -14
- package/sync-sources/rules/handoff-isolate-cwd.md +4 -4
- package/sync-sources/rules/pan-handoff-focus-limit.md +14 -5
- package/sync-sources/rules/ste-writing.md +17 -0
- package/sync-sources/rules/work-agents-via-pan.md +2 -1
- package/sync-sources/rules/writing-style.md +3 -2
- package/sync-sources/skills/{skill-creator → claude-skill-creator}/SKILL.md +1 -1
- package/sync-sources/skills/{skill-creator → claude-skill-creator}/scripts/init_skill.py +1 -1
- package/sync-sources/skills/{skill-creator → claude-skill-creator}/scripts/package_skill.py +1 -1
- package/sync-sources/skills/pan-gauntlet-loop/SKILL.md +230 -0
- package/sync-sources/skills/pan-gauntlet-loop/assets/PROMPT.template.md +92 -0
- package/sync-sources/skills/pan-gauntlet-loop/assets/REFERENCE-BAR.template.md +53 -0
- package/sync-sources/skills/pan-gauntlet-loop/assets/STYLE.template.md +41 -0
- package/sync-sources/skills/pan-gauntlet-loop/assets/gauntlet-index.html +237 -0
- package/sync-sources/skills/pan-gauntlet-loop/references/domains.md +106 -0
- package/sync-sources/skills/pan-handoff/SKILL.md +24 -6
- package/sync-sources/skills/pan-help/SKILL.md +1 -1
- package/sync-sources/skills/pan-peer-review/SKILL.md +3 -3
- package/sync-sources/skills/pan-restart/SKILL.md +6 -3
- package/sync-sources/skills/pan-start/SKILL.md +3 -0
- package/sync-sources/skills/pan-swarm/SKILL.md +32 -44
- package/sync-sources/skills/pan-sync/SKILL.md +1 -1
- package/server/activity-logger-BejO16Am.js +0 -3
- package/server/agent-state-DH_-Jkua.js +0 -3
- package/server/agents-megfmQHM.js +0 -3
- package/server/archive-planning-C-H9cM_J.js +0 -2
- package/server/build-info-PQlh_Rhb.js +0 -2
- package/server/cli-TaZspPHS.js +0 -2
- package/server/cliproxy-36ncAXlu.js +0 -3
- package/server/context-layers-CF6zHws4.js +0 -4
- package/server/conversations-AnGJ5rtX.js +0 -3
- package/server/deacon-BEH-IY0v.js +0 -5
- package/server/deacon-swarm-BHX-kR1b.js +0 -2
- package/server/deacon-swarm-BiLfNm_v.js +0 -1522
- package/server/dead-end-trip-BWpDg1Qd.js +0 -2
- package/server/delivery-cJM6zRjJ.js +0 -3
- package/server/deploy-queue-CmVBZEja.js +0 -2
- package/server/dist-VKBfkdi7.js +0 -3
- package/server/durable-review-pipeline-DgcVCYDL.js +0 -3
- package/server/factory-D4V2wd_V.js +0 -717
- package/server/forge-CrP1L3i6.js +0 -2
- package/server/hume-1ubD_6O7.js +0 -3
- package/server/inspect-agent-CfxERkNt.js +0 -2
- package/server/merge-ops-DtHx17Vd.js +0 -2
- package/server/merge-rebase-BvB4UuNS.js +0 -2
- package/server/project-repos-BJiShUsN.js +0 -3
- package/server/providers-CStNGwze.js +0 -3
- package/server/public/assets/index-BFEwfmqX.js +0 -860
- package/server/public/assets/index-_USwyTAT.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-Dsln95SK.js +0 -1
- package/server/pull-requests-C1Cqp2yo.js +0 -2
- package/server/rally-CjayjUIl.js +0 -3
- package/server/resume-D7JuMCRQ.js +0 -3
- package/server/review-agent-BUNTVJK2.js +0 -2
- package/server/settings-DBWB1gsG.js +0 -2
- package/server/specialists-D8gsOCwh.js +0 -3
- package/server/specs-BqkrRnU9.js +0 -3
- package/server/stuck-remediation-Di5JYkoo.js +0 -1164
- package/server/stuck-remediation-TNM1VhZb.js +0 -2
- package/server/supervisor-DX8VsPnb.js +0 -2
- package/server/tmux-CqNapnrr.js +0 -4
- package/server/token-util-Bu8bPF9f.js +0 -3
- package/server/workflows-Cf4LAnhg.js +0 -2
|
@@ -42,20 +42,33 @@ allowed-tools:
|
|
|
42
42
|
3. **Written tightening:** `docs/prds/planned/pan-dashboard-unified-redesign.md`
|
|
43
43
|
§4.5 ("Color & Style Discipline") — the PAN-1148 "Always means / Never used
|
|
44
44
|
for" table now folded into the guide.
|
|
45
|
-
4. **Tokens:** `src/dashboard/frontend/src/index.css`
|
|
46
|
-
blocks, `@font-face`
|
|
47
|
-
`.display-xl`/`.display-lg
|
|
48
|
-
`
|
|
49
|
-
|
|
45
|
+
4. **Tokens:** `src/dashboard/frontend/src/index.css` — the unscoped
|
|
46
|
+
`:root`/`.dark` blocks (Ledger's untouched default), `@font-face`
|
|
47
|
+
declarations, theme font tokens, the `.display-xl`/`.display-lg`/
|
|
48
|
+
`.eyebrow` Broadsheet utilities, and, after `.dark` closes, the PAN-3706
|
|
49
|
+
four-scope region carrying every color/surface/border/shadow/radius/
|
|
50
|
+
type/motion token plus the `.chip`/`.soft-card`/`.large-cta`/`.keycap`/
|
|
51
|
+
`.dot-metadata` component patterns — and `src/dashboard/frontend/
|
|
52
|
+
tailwind.config.js` (`boxShadow`, `fontFamily.mono-ui`, and the
|
|
53
|
+
`safelist` entries for classes not yet consumed by any `.tsx` file).
|
|
54
|
+
Conformance is exercised by `tests/e2e/styleguide-conformance.spec.ts`.
|
|
50
55
|
|
|
51
56
|
## Themes: Ledger (legacy) vs. Broadsheet (default)
|
|
52
57
|
|
|
53
58
|
Overdeck ships two named design languages behind a single `ui.theme` setting
|
|
54
59
|
(`~/.overdeck/config.yaml`, default `broadsheet`) and a `data-theme` attribute
|
|
55
|
-
on `<html
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
on `<html>` (independent of the `.dark` class, which carries light/dark
|
|
61
|
+
color-scheme — the two axes never interact). **Ledger** is the pre-PAN-3410
|
|
62
|
+
style — DM Sans, flat `font-medium` cap, cool blue-gray neutrals, no display
|
|
63
|
+
tier — now frozen: bug fixes only, never new patterns. **Broadsheet** is the
|
|
64
|
+
active theme: Geist/Geist Mono, a tiered weight system, a display scale, and
|
|
65
|
+
the new component vocabulary below — plus, as of PAN-3706, its own warm
|
|
66
|
+
neutral color ramp, stepped surfaces, opaque borders, a shadow/elevation
|
|
67
|
+
scale, a smaller base radius, 13px/1.6 body type, and an ambient-wash
|
|
68
|
+
background in place of Ledger's noise film. Before PAN-3706 the color/
|
|
69
|
+
surface/elevation/radius/texture system was accidentally shared between both
|
|
70
|
+
themes (a font-only migration); it is not anymore — see "Color, surface, and
|
|
71
|
+
elevation now differ by theme" below.
|
|
59
72
|
|
|
60
73
|
**The theme rule for new surfaces:** author against the Broadsheet
|
|
61
74
|
vocabulary (`.display-xl`, `.display-lg`, `.eyebrow`, chips, soft cards,
|
|
@@ -83,6 +96,59 @@ utilities, no theming) if reached while Ledger is active. A component built
|
|
|
83
96
|
with them is a Broadsheet-only component by construction; don't reach for
|
|
84
97
|
them on a surface that must still render under Ledger.
|
|
85
98
|
|
|
99
|
+
## Color, surface, and elevation now differ by theme (PAN-3706)
|
|
100
|
+
|
|
101
|
+
The color system is no longer identical between themes (it was, pre-PAN-3706
|
|
102
|
+
— see guide §2/§4). `:root`/`.dark` in `index.css` stay the untouched Ledger
|
|
103
|
+
default; Broadsheet's real values live in a later region that overrides them
|
|
104
|
+
per the four-scope contract below. What's still shared: signal-color
|
|
105
|
+
*semantics* (what `--destructive`/`--warning`/etc. mean) and the badge tint
|
|
106
|
+
*formula* (8%/32%). What now differs: the neutral ramp (warm HSL vs cool
|
|
107
|
+
gray), `--background`/`--card`/`--popover` step apart under Broadsheet
|
|
108
|
+
instead of collapsing to one flat color, `--border`/`--input` are opaque
|
|
109
|
+
under Broadsheet instead of near-invisible `color-mix()`, `--radius` itself
|
|
110
|
+
(10px Ledger / 6px Broadsheet — not just the badge tier), a role-named
|
|
111
|
+
`--shadow-sm/md/lg/xl/card/floating/overlay` scale that actually resolves to
|
|
112
|
+
something visible on dark surfaces, body type (13px/1.6/antialiased under
|
|
113
|
+
Broadsheet vs. browser default under Ledger), and the background treatment
|
|
114
|
+
(Ledger keeps the fractal-noise film; Broadsheet swaps it for an ambient
|
|
115
|
+
corner wash via a new `--wash` token — not a retargeted `--accent`, which
|
|
116
|
+
stays the hover-surface token in both themes). New tokens: `--primary-ink`
|
|
117
|
+
(text-safe accent), `--body-foreground`/`--faint-foreground` (rounding
|
|
118
|
+
`--foreground`/`--muted-foreground` out to a four-tier ramp), `--wash`, a
|
|
119
|
+
`--type-size-*`/`--type-leading-*`/`--type-tracking-*` vocabulary (defined,
|
|
120
|
+
not yet adopted by components), and `--ease-*`/`--duration-*` motion tokens
|
|
121
|
+
(same — defined, not yet wired into existing animations). `--font-mono-ui`
|
|
122
|
+
splits UI-chrome monospace (labels, IDs, timestamps) from `--font-mono`
|
|
123
|
+
(code + the eyebrow exception) — Ledger resolves both to the same SF Mono
|
|
124
|
+
stack, Broadsheet gives UI-mono a tighter system stack instead of Geist
|
|
125
|
+
Mono's code-tuned metrics.
|
|
126
|
+
|
|
127
|
+
**The four-scope selector contract** is what makes every one of those tokens
|
|
128
|
+
resolve correctly by theme. Because `.dark` and `data-theme` both live on
|
|
129
|
+
`<html>` at once, and because Settings → Appearance nests a `[data-theme]`
|
|
130
|
+
scope inside the ambient document for its comparison specimens, a
|
|
131
|
+
theme-varying token needs **four** blocks, placed after `:root`/`.dark` in
|
|
132
|
+
source order (equal-specificity attribute selectors win on source order, not
|
|
133
|
+
specificity):
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
[data-theme="ledger"] — light, restate today's value
|
|
137
|
+
[data-theme="broadsheet"] — light, new value
|
|
138
|
+
.dark[data-theme="ledger"], .dark [data-theme="ledger"] — dark, restate today's value
|
|
139
|
+
.dark[data-theme="broadsheet"], .dark [data-theme="broadsheet"] — dark, new value
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Same-element (`.dark[data-theme=...]`) matches `<html>` itself; descendant
|
|
143
|
+
(`.dark [data-theme=...]`) matches a nested Appearance-picker specimen —
|
|
144
|
+
both are required or a nested specimen inherits the wrong theme. For a
|
|
145
|
+
non-color-token rule (a `body` background, a utility class), gate it on a
|
|
146
|
+
custom property with a `var()` fallback rather than a bare descendant
|
|
147
|
+
selector — `--badge-radius` and the `.display-xl`/`.display-lg`/`.eyebrow`
|
|
148
|
+
properties are the established examples; a descendant selector matches
|
|
149
|
+
through *any* ancestor with the attribute and breaks nesting, a custom
|
|
150
|
+
property cascades by DOM proximity and doesn't. Full mechanics: guide §4a.
|
|
151
|
+
|
|
86
152
|
## The rules agents violate most (memorize these)
|
|
87
153
|
|
|
88
154
|
### Typography — Ledger (legacy baseline, verbatim)
|
|
@@ -144,9 +210,12 @@ purple = specialist verb, cyan = money, neutral = everything else.**
|
|
|
144
210
|
(`bg-{signal}/8 border-{signal}/32 text-{signal}-foreground`) — identical
|
|
145
211
|
in both themes (D-11, unchanged). No pills (`rounded-full`) for status
|
|
146
212
|
badges.
|
|
147
|
-
- Radius: `rounded-sm` under Ledger, `rounded-md` under Broadsheet — the
|
|
148
|
-
|
|
149
|
-
|
|
213
|
+
- Radius: `rounded-sm` under Ledger, `rounded-md` under Broadsheet — the one
|
|
214
|
+
deliberate radius-*tier* change from PAN-3410, layered on top of PAN-3706's
|
|
215
|
+
smaller Broadsheet base `--radius` (10px Ledger / 6px Broadsheet), which
|
|
216
|
+
now also shrinks every other `rounded-*` utility computed from it (buttons,
|
|
217
|
+
cards, dialogs — see "Color, surface, and elevation" above). Nothing else
|
|
218
|
+
about the badge *formula* (8%/32% tint) differs between themes.
|
|
150
219
|
- Pick ONE indicator pattern per context — don't mix dots + badges + colored
|
|
151
220
|
text for the same concept in one view.
|
|
152
221
|
|
|
@@ -186,9 +255,15 @@ hardcoded hex (#22c55e, #ef4444, …) → semantic tokens
|
|
|
186
255
|
slate-* grays (cold) → neutral-* (warm) — everywhere
|
|
187
256
|
```
|
|
188
257
|
|
|
189
|
-
Surfaces: depth via tonal layering (`--card`, `--card-2`), not shadows
|
|
190
|
-
|
|
191
|
-
|
|
258
|
+
Surfaces: depth via tonal layering (`--card`, `--card-2`), not shadows —
|
|
259
|
+
shadows stay reserved for floating elements only (dialogs, dropdowns,
|
|
260
|
+
tooltips, popovers, dragged items), never inline cards/panels. Border/wash
|
|
261
|
+
values are theme-scoped and no longer share one description: Ledger keeps
|
|
262
|
+
low-alpha `color-mix()` borders (`white/6%` dark, `black/8%` light,
|
|
263
|
+
near-invisible by design, light-mode cards borderless with an ambient
|
|
264
|
+
shadow instead) and the noise-film texture; Broadsheet uses opaque HSL
|
|
265
|
+
borders and an ambient corner wash instead (see "Color, surface, and
|
|
266
|
+
elevation" above).
|
|
192
267
|
|
|
193
268
|
### Brand mark — the control ring (guide §19)
|
|
194
269
|
|
|
@@ -78,8 +78,13 @@ RESPONSE=$(printf '%s' "$INPUT" | jq -r '
|
|
|
78
78
|
[ -n "$RESPONSE" ] || RESPONSE=''
|
|
79
79
|
|
|
80
80
|
if [ "$TOOL_NAME" = 'mcp__linear__authenticate' ]; then
|
|
81
|
+
# Linear's hosted MCP server (mcp.linear.app) returns its authorization URL
|
|
82
|
+
# as https://mcp.linear.app/authorize?…; the older form was
|
|
83
|
+
# https://linear.app/oauth/authorize?…. Match both — a regex that only
|
|
84
|
+
# knows one host silently emits required with a null URL and the banner
|
|
85
|
+
# waits forever (observed 2026-08-15).
|
|
81
86
|
AUTH_URL=$(printf '%s\n' "$RESPONSE" \
|
|
82
|
-
| grep -Eo 'https://linear\.app/oauth/authorize[^"[:space:]<>]*' 2>/dev/null \
|
|
87
|
+
| grep -Eo 'https://(mcp\.linear\.app/authorize|linear\.app/oauth/authorize)[^"[:space:]<>]*' 2>/dev/null \
|
|
83
88
|
| sed -n '1p')
|
|
84
89
|
emit_required "$AUTH_URL"
|
|
85
90
|
exit 0
|
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
---
|
|
2
2
|
scope: universal
|
|
3
3
|
---
|
|
4
|
-
### Message
|
|
4
|
+
### Message Overdeck-managed agents with `pan tell`, not raw tmux keystrokes
|
|
5
5
|
|
|
6
|
-
To send a message to a running agent, conversation, or
|
|
7
|
-
`pan tell <agent-or-session> "<message>"`. It routes through
|
|
8
|
-
(`deliverAgentMessage`: PTY supervisor → channels → tmux
|
|
9
|
-
the transcript, and works regardless of harness. If it
|
|
10
|
-
not running, verify with `tmux -L overdeck list-sessions`
|
|
11
|
-
`OVERDECK_HOME` (a polluted shell env is the usual cause —
|
|
12
|
-
`OVERDECK_HOME=~/.overdeck` if in doubt).
|
|
6
|
+
To send a message to a running **Overdeck-managed** agent, conversation, or
|
|
7
|
+
the flywheel, use `pan tell <agent-or-session> "<message>"`. It routes through
|
|
8
|
+
the delivery door (`deliverAgentMessage`: PTY supervisor → channels → tmux
|
|
9
|
+
fallback), echoes into the transcript, and works regardless of harness. If it
|
|
10
|
+
reports the target is not running, verify with `tmux -L overdeck list-sessions`
|
|
11
|
+
and check your `OVERDECK_HOME` (a polluted shell env is the usual cause —
|
|
12
|
+
prefix `OVERDECK_HOME=~/.overdeck` if in doubt).
|
|
13
13
|
|
|
14
|
-
Do
|
|
15
|
-
`tmux
|
|
16
|
-
and
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
Do not drive another **Overdeck-managed** session with raw `tmux send-keys` /
|
|
15
|
+
`tmux paste-buffer` when `pan tell` can reach it — raw keystrokes bypass the
|
|
16
|
+
transcript echo and the PTY supervisor, so the message leaves no trace and can
|
|
17
|
+
interleave with the harness's own input handling. Scope of the mechanical
|
|
18
|
+
enforcement (PAN-1084): pipeline **work agents** are hook-blocked from
|
|
19
|
+
injecting keystrokes into any session other than their own (this exists to
|
|
20
|
+
stop self-approval of another agent's permission prompts). Conversations and
|
|
21
|
+
human-directed sessions are NOT blocked.
|
|
22
|
+
|
|
23
|
+
Driving a session that Overdeck does not manage (e.g. the operator's own tmux
|
|
24
|
+
session on the default socket, at their direction) with `send-keys` /
|
|
25
|
+
`paste-buffer` is legitimate — use the async `load-buffer` + `paste-buffer` +
|
|
26
|
+
delayed Enter pattern from the async-tmux rule so the text lands reliably.
|
|
@@ -7,13 +7,13 @@ When you spawn a supervised agent (`pan handoff`, or any spawned agent that may
|
|
|
7
7
|
|
|
8
8
|
An agent whose cwd is the primary repo can `git checkout -b` and commit there, which silently **drifts `main` onto a feature branch** and lets the agent commit straight to `main` — the same write-to-main hazard as PAN-2204. Your own later commits then land on the wrong branch.
|
|
9
9
|
|
|
10
|
-
For `pan handoff`, pass `--cwd`:
|
|
10
|
+
For `pan handoff`, pass `--cwd` as an **absolute path to an existing directory under your home directory** — the server rejects relative paths, `/tmp` paths, and not-yet-created directories with `Invalid cwd`:
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
git worktree add
|
|
14
|
-
pan handoff --model <m> --cwd
|
|
13
|
+
git worktree add "$HOME/Projects/hoff-<slug>" main # if you don't already have one
|
|
14
|
+
pan handoff --model <m> --cwd "$HOME/Projects/hoff-<slug>" --project <key> self "Read .pan/handoff-brief.md FIRST. <goal>"
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
Project association inherits automatically from a project-scoped source; use `--project <key>` to override it or associate an unscoped source. Point `--cwd` at any isolated checkout — anything but the primary.
|
|
17
|
+
Run the `pan handoff` command itself from your project directory (not from the `--cwd` target or `/tmp` — sandboxed harnesses block network there). Project association inherits automatically from a project-scoped source; use `--project <key>` to override it or associate an unscoped source. Point `--cwd` at any isolated checkout — anything but the primary.
|
|
18
18
|
|
|
19
19
|
**Why:** a `pan handoff` investigation run in the primary worktree branched + committed there, silently drifting `main` and stranding later commits on the wrong branch (2026-07-01). Isolation keeps every spawned agent's commits on its own branch, where review/merge can gate them.
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
---
|
|
2
2
|
scope: universal
|
|
3
3
|
---
|
|
4
|
-
### `pan handoff` focus
|
|
4
|
+
### `pan handoff` focus: keep it short; the hard ceiling is 10,000 chars
|
|
5
5
|
|
|
6
|
-
The `pan handoff` **focus** (the trailing text after `self`/`<conv>`) is
|
|
6
|
+
The `pan handoff` **focus** (the trailing text after `self`/`<conv>`) is a steering
|
|
7
|
+
statement, not the brief. Since PAN-3737 the hard cap is **10,000 characters**
|
|
8
|
+
(multi-line focus is allowed), so accidental rejection is effectively gone — but a
|
|
9
|
+
short focus still works better: it becomes the conversation title and steers the
|
|
10
|
+
handoff author, while detail belongs in the transcript or a brief file. Pass
|
|
11
|
+
`--title "<title>"` to name the successor explicitly instead (PAN-3768) — useful
|
|
12
|
+
when the focus is a file pointer.
|
|
7
13
|
|
|
8
|
-
For
|
|
14
|
+
For a full brief, write it to a file in the target cwd and point the focus at it:
|
|
9
15
|
|
|
10
16
|
```bash
|
|
11
17
|
pan handoff self "Read .pan/handoff-brief.md FIRST and follow it exactly. <one-line goal>"
|
|
12
18
|
```
|
|
13
19
|
|
|
14
|
-
Also pass **`self`** (or a real conversation id) **before** the focus text. Omitting it
|
|
20
|
+
Also pass **`self`** (or a real conversation id) **before** the focus text. Omitting it
|
|
21
|
+
makes the CLI read your focus as a conversation name and fail with `Conversation not found`.
|
|
15
22
|
|
|
16
|
-
**Why:**
|
|
23
|
+
**Why:** the old 500-char cap rejected the handoff *after* the agent had done the work,
|
|
24
|
+
on essentially every long focus, burning retry loops. The cap is now a sanity ceiling
|
|
25
|
+
only; the file-backed brief remains the reliable pattern for long instructions.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
scope: universal
|
|
3
|
+
---
|
|
4
|
+
### Write clear, simple prose — the STE clarity standard
|
|
5
|
+
|
|
6
|
+
Respond in clear, plain, concise, human-readable prose by default. "The
|
|
7
|
+
Elements of Style" (Strunk & White) is the baseline register.
|
|
8
|
+
|
|
9
|
+
On that baseline, use the core principles of ASD-STE100 Simplified Technical
|
|
10
|
+
English as a clarity standard. Use active voice, simple verbs, and short
|
|
11
|
+
sentences. Avoid idioms, slang, and unnecessary jargon. Give each sentence one
|
|
12
|
+
main idea or instruction. Put conditions before dependent actions. Use one
|
|
13
|
+
consistent term for each concept. Prefer 20 words or fewer for procedures and
|
|
14
|
+
25 words or fewer for descriptions when this preserves accuracy and natural
|
|
15
|
+
flow. Do not force formal STE compliance unless the user asks for it. Keep
|
|
16
|
+
technical identifiers, paths, commands, names, units, prices, and numbers
|
|
17
|
+
exact.
|
|
@@ -5,7 +5,7 @@ scope: universal
|
|
|
5
5
|
|
|
6
6
|
Spawn work agents only through the Overdeck CLI — `pan start <id>`, `pan swarm <id>`, `pan plan <id>`. NEVER spawn a *work* agent via Claude Code's `Agent`/subagent tool.
|
|
7
7
|
|
|
8
|
-
**Why:** `pan`-spawned agents are registered with Overdeck — a `~/.overdeck/agents/agent-<id>/state.json` carrying `issueId
|
|
8
|
+
**Why:** `pan`-spawned agents are registered with Overdeck — a `~/.overdeck/agents/agent-<id>/state.json` carrying `issueId` and a tmux session on the `overdeck` socket. The dashboard nests them under their issue with openable terminals, and the review/test/ship pipeline can manage them.
|
|
9
9
|
|
|
10
10
|
Agents spawned via the `Agent` tool run as ephemeral subagents inside the caller's session — no state file, no `issueId`, no `overdeck`-socket session. The dashboard cannot discover them; they cannot be paused, resumed, reviewed, merged, or recovered through the pipeline.
|
|
11
11
|
|
|
@@ -13,5 +13,6 @@ Agents spawned via the `Agent` tool run as ephemeral subagents inside the caller
|
|
|
13
13
|
|
|
14
14
|
- **work** (implementation), **plan**, **review/test/ship** → always `pan`.
|
|
15
15
|
- Claude Code's built-in `Explore` / `general-purpose` subagents are fine for *throwaway code investigation* — they produce no deliverable and are not work agents.
|
|
16
|
+
- A swarm foreman may perform a small, high-confidence item in its own context or use a registered standing tier session. The foreman still owns the claim, verification, commit, push, and task transition; an ephemeral subagent never becomes an independent slot.
|
|
16
17
|
|
|
17
18
|
Let Cloister route models — do not pass `--model` unless explicitly asked.
|
|
@@ -18,8 +18,9 @@ Rules:
|
|
|
18
18
|
4. **Don't shred connected reasoning into bullets.** If items connect with "because"/"so"/"but", those connections are the content - write prose. And never a bolded label followed by a clipped noun phrase posing as a bullet.
|
|
19
19
|
5. **Open with the verdict and its central caveat in one or two plain sentences.** Not a bolded headline.
|
|
20
20
|
6. **Conversational but not dramatic.** Use contractions (it's, you'd, don't). Say "so" and "but", not "therefore" and "however". Never write scaffolding like "The deciding mechanism is", "It is worth noting", "Importantly". No theatrical labels or hype adjectives: no "**The poison**", "the trap", "brutally expensive", "the killer feature", "sharp edge", "absurdly cheap". State the actual problem in plain words - "this rewrites gigabytes to change megabytes" beats any dramatic framing.
|
|
21
|
-
-
|
|
21
|
+
- Vary sentence length and shape, and connect related ideas. A run of same-shape sentences, automatic pairs and triads, or setup/payoff framing reads as generated - break the pattern.
|
|
22
22
|
- No cheesy setup phrases that introduce a point instead of stating it. Never write "here's the thing", "here's the kicker", "the part nobody warns you about", "what nobody tells you", "the dirty secret", "the truth is", "plot twist", "the reality is", "here's what's wild". State the claim directly.
|
|
23
|
-
- No contrastive "not just X, but Y" structure or its variants ("it's not just X, it's Y", "not only X but also Y"). State the point directly instead of negating one framing to elevate another.
|
|
23
|
+
- No contrastive "not just X, but Y" structure or its variants ("it's not just X, it's Y", "not only X but also Y"), and no repeated negative openings ("Not X. Not Y."). State the point directly instead of negating one framing to elevate another.
|
|
24
|
+
- No filler intensifiers, corporate verbs, needless hedges, or performed enthusiasm. Prefer verbs to noun piles. Write for the spoken voice.
|
|
24
25
|
7. **No compression.** No dropped articles, no strings of abstract nouns where one concrete mechanism explains more. Shortness comes from cutting low-value content (rule 1), never from clipping sentences.
|
|
25
26
|
8. **End with a bottom line only when the answer weighed a real decision.** One plain-prose sentence: the call plus the condition that would flip it. Short factual or confirmation answers just end - no formulaic closer.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: skill-creator
|
|
2
|
+
name: claude-skill-creator
|
|
3
3
|
description: Guide for creating effective Claude Code skills. Use when users want to create a new skill, update an existing skill, or need guidance on skill best practices. Triggers on requests like "create a skill", "make a new skill", "help me build a skill", "skill development", or "extend Claude's capabilities".
|
|
4
4
|
license: Apache 2.0 (based on Anthropic's skills repo)
|
|
5
5
|
---
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pan-gauntlet-loop
|
|
3
|
+
description: >-
|
|
4
|
+
Run a Gauntlet Loop — fan out builder sub-agents per area, judge each with
|
|
5
|
+
a SEPARATE harsh critic in a blind A/B against a named reference bar, keep
|
|
6
|
+
looping until every area wins, and track it all on a live progress page.
|
|
7
|
+
Use when the user wants to take any project, feature, or domain to an
|
|
8
|
+
extreme quality tier ("make it AAA", "at the level of <reference>",
|
|
9
|
+
"utterly perfect", "run the gauntlet", "gauntlet loop"). Works for any
|
|
10
|
+
domain — games, UI, CLIs, APIs, libraries, docs, performance, writing.
|
|
11
|
+
triggers:
|
|
12
|
+
- gauntlet loop
|
|
13
|
+
- run the gauntlet
|
|
14
|
+
- gauntlet
|
|
15
|
+
- AAA quality pass
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Gauntlet Loop
|
|
19
|
+
|
|
20
|
+
Take any domain to a named quality bar with a builder/critic loop: fan out a
|
|
21
|
+
builder sub-agent per area, judge each area with a **separate** harsh critic
|
|
22
|
+
(fresh context, blind A/B against the reference, binary verdict), feed defects
|
|
23
|
+
back, and loop until every area is WOWED. A live progress page tracks every
|
|
24
|
+
area, screenshot, verdict, and defect list.
|
|
25
|
+
|
|
26
|
+
Origin: Matt Shumer's gauntlet prompt; hardened by the operational lessons of
|
|
27
|
+
runs #1–#2 (folded into the phases below — every rule exists because its
|
|
28
|
+
absence cost an iteration).
|
|
29
|
+
|
|
30
|
+
## Phase 0 — Intake: fill the slots, ask about the gaps
|
|
31
|
+
|
|
32
|
+
**Run-file shortcut:** a run file (e.g. `gauntlet/RUN-<CODENAME>.md`) may
|
|
33
|
+
pre-fill every slot and carry the operator's approval in writing. When one
|
|
34
|
+
exists and the operator pointed you at it, the run file IS the contract —
|
|
35
|
+
skip intake questions and the Phase-1 approval gate, and follow the run
|
|
36
|
+
file wherever it is more specific than this skill.
|
|
37
|
+
|
|
38
|
+
Otherwise, extract these slots from the user's request. For every slot that is
|
|
39
|
+
missing or vague, ask via AskUserQuestion — batch up to 4 questions per call,
|
|
40
|
+
each self-contained (the operator may answer from a dashboard dialog without
|
|
41
|
+
the transcript: state the situation, then ask). Never guess the mission.
|
|
42
|
+
|
|
43
|
+
| Slot | Meaning | If missing |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| THING | What to build / enhance / fix | Ask. Never proceed without it. |
|
|
46
|
+
| REFERENCE | The named quality bar | Propose 2–3 candidates that are **named, fetchable, comparable** (below); ask the user to pick one. |
|
|
47
|
+
| AREAS | The fan-out split | Propose a split from THING (see `references/domains.md`); ask to confirm or edit. |
|
|
48
|
+
| TIER | Quality shorthand | Default: "shipped commercial quality at the level of REFERENCE". |
|
|
49
|
+
| LOOK | The committed direction (art / UX / language / architecture) | Seed from repo conventions; confirm in one AskUserQuestion option set. |
|
|
50
|
+
| STACK | Stack constraints | Default: "this repo, unchanged". Ask only if the request implies a change. |
|
|
51
|
+
| SCOPE | Explicit exclusions | If THING is broad, ask "what is out of bounds on this pass?" |
|
|
52
|
+
| CHECK | How the critic inspects the work | Derive from the domain (`references/domains.md`) — screenshots, CLI transcripts, benchmarks, rendered docs. |
|
|
53
|
+
|
|
54
|
+
REFERENCE is the load-bearing slot. Before accepting it, verify it is:
|
|
55
|
+
|
|
56
|
+
- **Named** — a specific thing ("Civilization VII", "stripe.com's docs"),
|
|
57
|
+
not a category ("a good strategy game").
|
|
58
|
+
- **Fetchable** — the critic can screenshot, read, run, or open it. Fetch the
|
|
59
|
+
reference evidence during setup (below); if you cannot, say so and pick
|
|
60
|
+
another bar with the operator.
|
|
61
|
+
- **Comparable** — the subject's evidence and the reference's evidence can sit
|
|
62
|
+
side by side for a judge to pick one.
|
|
63
|
+
|
|
64
|
+
## Phase 1 — Setup (before any builder launches)
|
|
65
|
+
|
|
66
|
+
1. **Isolate the work.** Default: `git worktree add ../<repo>-gauntlet -b
|
|
67
|
+
gauntlet-loop-pass` and run the whole gauntlet there. Offer the current
|
|
68
|
+
checkout instead only when the operator asked to enhance in place.
|
|
69
|
+
2. **Scaffold `gauntlet/` in the worktree:**
|
|
70
|
+
- `gauntlet/index.html` — copy `{baseDir}/assets/gauntlet-index.html`
|
|
71
|
+
**verbatim** (it renders from status.json; never edit per project).
|
|
72
|
+
- `gauntlet/PROMPT.md` — fill `{baseDir}/assets/PROMPT.template.md` with
|
|
73
|
+
the slots. This is the mission prompt every agent reads.
|
|
74
|
+
- `gauntlet/status.json` — schema below; all areas NOT STARTED.
|
|
75
|
+
- `gauntlet/shots/`, `gauntlet/notes/` — empty dirs.
|
|
76
|
+
3. **Write the judging contracts in `refs/`:**
|
|
77
|
+
- `refs/STYLE.md` — fill `{baseDir}/assets/STYLE.template.md`: one page,
|
|
78
|
+
the committed direction. Every builder and every critic works from it.
|
|
79
|
+
- `refs/REFERENCE-BAR.md` — fill
|
|
80
|
+
`{baseDir}/assets/REFERENCE-BAR.template.md`: the verdict question,
|
|
81
|
+
automatic failures, scoring dimensions, verdict JSON format.
|
|
82
|
+
- `refs/press/` — the fetched reference evidence (screenshots, transcripts,
|
|
83
|
+
docs). Gitignore third-party media.
|
|
84
|
+
4. **Build seed/test hooks NOW, not mid-loop.** Seedable state is
|
|
85
|
+
load-bearing for critique: if reaching a state takes hours of wall-clock
|
|
86
|
+
(filled stockpiles, advanced time, specific data), the loop can't be
|
|
87
|
+
photographed. Add the hook during setup. Never restart a shared dev
|
|
88
|
+
server mid-run — hot-reload kills other agents' verification sessions.
|
|
89
|
+
5. **Serve the progress page:** from `gauntlet/`, run
|
|
90
|
+
`python3 -m http.server <port>` in the background and report the URL.
|
|
91
|
+
(Browsers block `fetch()` from `file://` — the page needs HTTP.)
|
|
92
|
+
6. **Operator approval gate.** Show the filled `gauntlet/PROMPT.md` to the
|
|
93
|
+
operator and get an explicit go before the first fan-out. The gauntlet
|
|
94
|
+
burns real tokens; the mission it burns them on is the operator's call.
|
|
95
|
+
(Skipped when a run file already carries the approval — see Phase 0.)
|
|
96
|
+
|
|
97
|
+
### status.json schema
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{
|
|
101
|
+
"project": "<display title>",
|
|
102
|
+
"tagline": "<one-line mission flavor>",
|
|
103
|
+
"updated": "<ISO>",
|
|
104
|
+
"pass": "<branch name>",
|
|
105
|
+
"areas": {
|
|
106
|
+
"<area-key>": {
|
|
107
|
+
"title": "<human title>",
|
|
108
|
+
"status": "NOT STARTED",
|
|
109
|
+
"iteration": 0,
|
|
110
|
+
"verdict": null,
|
|
111
|
+
"defects": [],
|
|
112
|
+
"note": "<one-line current state>",
|
|
113
|
+
"updated": "<ISO>"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
`verdict` is `"WOWED"`, `"NOT_YET"`, or `null`. `defects` holds the top ≤5
|
|
120
|
+
(strings, or `{"element","fix"}` objects). The page polls it every 5s.
|
|
121
|
+
|
|
122
|
+
## Phase 2 — The loop (per area, areas in waves)
|
|
123
|
+
|
|
124
|
+
1. **Wave plan — parallelize to the file-ownership limit.** Assign each area
|
|
125
|
+
an exact file-ownership map, restated in every agent prompt. Concurrent
|
|
126
|
+
agents in one worktree WILL clobber shared files, so areas that share
|
|
127
|
+
files run in the same wave **serially** — but that constraint is
|
|
128
|
+
per-file, not global: prefer SPLITTING areas until their maps are
|
|
129
|
+
disjoint, and run everything disjoint **concurrently**. Films and
|
|
130
|
+
critics for different areas are read-only-ish and parallelize freely.
|
|
131
|
+
Keep the orchestrator thin; the fan-out does the work.
|
|
132
|
+
2. **Build.** Spawn a builder sub-agent for the area with its ownership map,
|
|
133
|
+
the mission prompt, and the current defect list as its work order.
|
|
134
|
+
Builders never commit and never judge their own work; the orchestrator
|
|
135
|
+
reviews and commits per area with path-scoped `git add` — `git add -A`
|
|
136
|
+
would scoop another in-flight agent's half-done work.
|
|
137
|
+
3. **Capture evidence at presentation quality.** Launch the real thing and
|
|
138
|
+
drive it — Playwright for UI, the CLI at its command, the benchmark at
|
|
139
|
+
its load. Screenshots at 1920×1080 with realistic in-fiction data (a
|
|
140
|
+
visible test username in a shot is a defect); keep dev tooling out of
|
|
141
|
+
frame. Save the canonical shot to `gauntlet/shots/<area-key>.png` (or
|
|
142
|
+
transcript/benchmark to notes/). Headless gotchas: black frames in
|
|
143
|
+
headless Chromium are a renderer-context issue, not scene code — try
|
|
144
|
+
default launch flags before forcing software rasterization; canvas/WebGL
|
|
145
|
+
code must survive a React StrictMode double-mount; software-rasterized
|
|
146
|
+
FPS is CPU numbers — NEVER the real perf verdict. Perf claims need a
|
|
147
|
+
headed capture.
|
|
148
|
+
4. **Critique.** Spawn the critic — ALWAYS a separate sub-agent from the
|
|
149
|
+
builder, fresh context, high-tier model (see routing below). The critic
|
|
150
|
+
is blind to the builder's effort, reasoning, and transcript — but it is
|
|
151
|
+
NOT tool-poor: it gets the evidence + `refs/`, and it MAY run its own
|
|
152
|
+
probes and instruments against the running app, the repo, or the
|
|
153
|
+
benchmark to verify or refute any claim (run-#2 precedent: critic-built
|
|
154
|
+
instruments caught deploy-saving defects the builder's own numbers
|
|
155
|
+
missed). It judges blind per `refs/REFERENCE-BAR.md` — literally side by
|
|
156
|
+
side, which one looks better — and returns the verdict JSON. Verdicts
|
|
157
|
+
are binary (WOWED / NOT_YET + every failing element with a concrete
|
|
158
|
+
fix), never a score out of 10. The critic tags each defect with the
|
|
159
|
+
owning area so cross-area defects merge into the right queue. Save to
|
|
160
|
+
`gauntlet/notes/critique-<area>-iter<n>.json`.
|
|
161
|
+
5. **Update the dashboard at every transition** — agent launched / landed /
|
|
162
|
+
filming / awaiting critique / verdict — not just after critiques. A
|
|
163
|
+
stale dashboard is a bug. The page mutates cards in place; regenerated
|
|
164
|
+
media needs cache-busting or browsers replay stale files.
|
|
165
|
+
6. **NOT_YET → the defect list becomes the next iteration's work order** for
|
|
166
|
+
the same area. WOWED → area done, and prior WOWED quality is a FLOOR no
|
|
167
|
+
later iteration may regress. **No fixed round count**: the exit is
|
|
168
|
+
winning, or the operator stopping the run.
|
|
169
|
+
7. **Test reconciliation is its own queued item.** Big visual/structural
|
|
170
|
+
changes break existing test selectors; don't let a builder burn its run
|
|
171
|
+
fixing them. Wave gates are: build passes, evidence captured, critique
|
|
172
|
+
filed. Broken-suite repair gets its own area or follow-up.
|
|
173
|
+
8. **Cadence artifacts.** Commit critique JSONs and status.json to the
|
|
174
|
+
branch — the pass history is reviewable. Gitignore large third-party
|
|
175
|
+
reference media and regenerable sources (keep shipped assets committed).
|
|
176
|
+
|
|
177
|
+
## Phase 3 — Stop conditions
|
|
178
|
+
|
|
179
|
+
- **The operator is the brake.** The loop does not finish on its own; when
|
|
180
|
+
they say stop, stop, commit cleanly, and report state.
|
|
181
|
+
- **All areas WOWED** → final report: per-area verdicts and iteration counts,
|
|
182
|
+
the commit log, the dashboard URL, and anything deferred to a later pass.
|
|
183
|
+
|
|
184
|
+
## The four ways the loop silently fails
|
|
185
|
+
|
|
186
|
+
1. **Vague bar** — the critic invents a comparison and approves everything.
|
|
187
|
+
The bar must be named, fetchable, comparable.
|
|
188
|
+
2. **Builder judging its own work** — the critic must be a fresh agent with
|
|
189
|
+
zero knowledge of the builder's effort or reasoning trail.
|
|
190
|
+
3. **Soft critic** — scores out of 10 drift upward and everything passes.
|
|
191
|
+
Binary verdict + concrete fixes only.
|
|
192
|
+
4. **Fixed round count** — "3 iterations" ships a prototype. The exit is
|
|
193
|
+
WOWED, or the operator stopping the run.
|
|
194
|
+
|
|
195
|
+
Restate all four in every agent prompt — they are the whole game.
|
|
196
|
+
|
|
197
|
+
## Sub-agents, model routing, and tools
|
|
198
|
+
|
|
199
|
+
- Fan out with the Agent tool inside this conversation. Gauntlet builders and
|
|
200
|
+
critics are ephemeral conversation sub-agents — the "work agents run through
|
|
201
|
+
`pan`" rule governs managed pipeline issues, not this loop. If the gauntlet
|
|
202
|
+
uncovers work that belongs in the managed pipeline, file an issue and route
|
|
203
|
+
it through `pan start`.
|
|
204
|
+
- **Model ladder — cheapest that clears the bar, escalate on evidence:**
|
|
205
|
+
**Sonnet** is the default for as much as possible — builders, films,
|
|
206
|
+
mechanical implementation, asset processing, test runs. **Opus** when
|
|
207
|
+
necessary — every critic by default, design-heavy build areas, and
|
|
208
|
+
problems a Sonnet attempt just fumbled. **Fable** for the really tricky
|
|
209
|
+
stuff only — areas that keep failing across iterations, deep root-cause
|
|
210
|
+
mysteries, and the final full-frame composition judgment. Escalate a
|
|
211
|
+
LANE's tier after failures, not preemptively; de-escalate when the hard
|
|
212
|
+
part is done. Critics are where model quality pays — never cheap out on
|
|
213
|
+
the judge.
|
|
214
|
+
- **Distribute and parallelize as much as possible.** Many cheap agents in
|
|
215
|
+
flight beat one expensive agent in series; the wave plan's file-ownership
|
|
216
|
+
maps are the only serialization constraint.
|
|
217
|
+
- **No tool restrictions.** Every gauntlet agent may use whatever tools the
|
|
218
|
+
session has — browsers/Playwright, WebSearch/WebFetch, image tooling,
|
|
219
|
+
profilers, DB clients. "Blind critic" restricts what the critic is TOLD
|
|
220
|
+
(nothing from the builder), never what it may DO.
|
|
221
|
+
- Sub-agent fan-out requires a harness with the Agent tool. GPT-routed
|
|
222
|
+
claude-code sessions cannot spawn sub-agents — run the gauntlet from a
|
|
223
|
+
Claude session.
|
|
224
|
+
|
|
225
|
+
## References
|
|
226
|
+
|
|
227
|
+
- `references/domains.md` — per-domain CHECK (evidence capture), sample area
|
|
228
|
+
splits, automatic-failure lists, and storefront-test phrasing.
|
|
229
|
+
- `assets/` — `gauntlet-index.html` (progress page), `PROMPT.template.md`,
|
|
230
|
+
`STYLE.template.md`, `REFERENCE-BAR.template.md`.
|