@overdeck/desktop 0.45.21 → 0.45.23
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/package.json +1 -1
- package/server/{acceptance-criteria-CJIFA8Vg.js → acceptance-criteria-DOA0KgXx.js} +5 -5
- package/server/{advancing-selfheal-CPOBO5ZS.js → advancing-selfheal-BBu6DSNm.js} +6 -6
- package/server/{agent-gc-D6PUckBB.js → agent-gc-BV1q_2EV.js} +4 -4
- package/server/agent-state-Bg0lhqwj.js +3 -0
- package/server/{agent-state-service-DHwemt96.js → agent-state-service-CnzFKSAQ.js} +1 -1
- package/server/{agent-state-service-6MFQqnFy.js → agent-state-service-HoK8U4jW.js} +5 -5
- package/server/{agents-DbrHWunF.js → agents-B4Bjbkfv.js} +4 -4
- package/server/agents-FlIgQ3ql.js +3 -0
- package/server/{archive-planning-BOnwJq8M.js → archive-planning-DYrYojxl.js} +31 -7
- package/server/{archive-planning-MPpvQJL4.js → archive-planning-zkJb3BeM.js} +1 -1
- package/server/{artifact-index-jobs-BOoySTKD.js → artifact-index-jobs-C-xy7Z5v.js} +2 -2
- package/server/{backlog-auto-trigger-BUaFI44J.js → backlog-auto-trigger-GtG71X8H.js} +3 -3
- package/server/{behavior-Dg-D8eBG.js → behavior-B_-4EKF3.js} +2 -2
- package/server/{briefing-freshness-OouGbJ7d.js → briefing-freshness-DWdW7vUm.js} +2 -2
- package/server/{build-info-27NlbKhV.js → build-info-BT096lEl.js} +3 -3
- package/server/{build-info-Cv6CI7Gu.js → build-info-DgTqZkL5.js} +1 -1
- package/server/{checkpoint-manager-C7mFCY_E.js → checkpoint-manager-B7Bt29J0.js} +1 -1
- package/server/{checkpoint-manager-D64fCC4p.js → checkpoint-manager-DDqcGyu8.js} +2 -2
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-Vh-J15ge.js → checkpoints-C-AXLfYT.js} +2 -2
- package/server/{checkpoints-DwZqT2qQ.js → checkpoints-CpgCjAlN.js} +1 -1
- package/server/{claude-hooks-provision-CS5W_dhI.js → claude-hooks-provision-C8wdRnN1.js} +1 -1
- package/server/{claude-hooks-provision-BVLGfHrv.js → claude-hooks-provision-but-_qGY.js} +2 -2
- package/server/{claude-permissions-C2OrLYKL.js → claude-permissions-H_5wHQZQ.js} +2 -2
- package/server/{claude-settings-overlay-DWXjafJh.js → claude-settings-overlay-BTENVmYf.js} +1 -1
- package/server/{claude-settings-overlay-DX-fMFpC.js → claude-settings-overlay-CbSz0Dvb.js} +2 -2
- package/server/cli-BsVIHwzC.js +3 -0
- package/server/{cli-mvpEOb3w.js → cli-vBeXbPrq.js} +9 -9
- package/server/{cliproxy-Dvsr4ZkW.js → cliproxy-Bgb2XCqi.js} +2 -2
- package/server/{cliproxy-7g1nObvB.js → cliproxy-DW0V86F8.js} +1 -1
- package/server/{close-issue-8F6uawYj.js → close-issue-Dn_4c4G8.js} +5 -5
- package/server/{closed-issue-reaper-BhV-r-tC.js → closed-issue-reaper-CWpY2uBw.js} +1 -1
- package/server/{closed-issue-reaper-BaYQYF6w.js → closed-issue-reaper-hANY_ehE.js} +9 -9
- package/server/codex-Dg7Is5yb.js +3 -0
- package/server/{codex-D_UBEOwL.js → codex-TmSi-yTv.js} +30 -8
- package/server/{codex-parser-BTzlOZiV.js → codex-parser-C4gSH-IR.js} +2 -2
- package/server/{config-CrduXs4a.js → config-CCvjQf27.js} +2 -2
- package/server/{config-nAB_F-Gp.js → config-DUIhMN_T.js} +1 -1
- package/server/{config-G1TOMJZA.js → config-DjLOdbgT.js} +2 -2
- package/server/{config-yaml-Ciyp2mYe.js → config-yaml-DvyMuOle.js} +177 -211
- package/server/{conflict-gate-BKalpcjL.js → conflict-gate-BSJkNTdp.js} +1 -1
- package/server/{conflict-gate-BLUNMs1i.js → conflict-gate-CmrYpa47.js} +3 -3
- package/server/{context-layers-YNpf6Q_I.js → context-layers-B3Nt58jl.js} +2 -2
- package/server/{context-layers-Cg9ZgVfx.js → context-layers-ZYFcWiyc.js} +3 -3
- package/server/{control-settings-D_79A6gp.js → control-settings-aP1ANIlI.js} +4 -4
- package/server/{conversation-compaction-DiuZbIUB.js → conversation-compaction-CNbTLB86.js} +8 -8
- package/server/{conversation-compaction-CMIeWW4_.js → conversation-compaction-DiG5zWQq.js} +1 -1
- package/server/{conversation-service-DQybSPUK.js → conversation-service-Du-MTNpJ.js} +6 -6
- package/server/{conversation-service-CWk8mEym.js → conversation-service-Up7FEzIC.js} +1 -1
- package/server/{conversations-BJ-t3BRm.js → conversations-6mPANqvL.js} +1 -1
- package/server/{conversations-BUgGvqVL.js → conversations-DbOs1e9Q.js} +4 -4
- package/server/{cost-jJ2cgDcG.js → cost-CW4WSe72.js} +3 -3
- package/server/{cost-Drm7qeD5.js → cost-Ca0YTWDw.js} +18 -2
- package/server/{cost-sync-DzHP6zaR.js → cost-sync-C0VdGme1.js} +3 -3
- package/server/{dag-DIji6O2b.js → dag-CdOjJVDT.js} +9 -9
- package/server/{dangerous-git-ops-BebB-61h.js → dangerous-git-ops-CT-IypG3.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/{deacon-pleYrvIm.js → deacon-DYSEJb48.js} +3 -3
- package/server/{deacon-nudge-log-C5VCKtyi.js → deacon-nudge-log-Bjg8U4Y9.js} +3 -3
- package/server/{deacon-1s7bM5zn.js → deacon-pRnyD5w9.js} +1133 -474
- package/server/deacon-swarm-9jRLS5Ke.js +2 -0
- package/server/{deacon-swarm-DmA3rJ7k.js → deacon-swarm-DftYRDo8.js} +17 -17
- package/server/deacon.js +8 -8
- package/server/{deploy-patrol-DmM6F-yw.js → deploy-patrol-Bjsho_ha.js} +136 -19
- package/server/{deploy-window-ClLq1RYf.js → deploy-window-CM6W1-c6.js} +1 -1
- package/server/{deploy-window-jw4S_Y-c.js → deploy-window-DeP_OIRk.js} +77 -10
- package/server/{dev-supervisor-Do2Stz49.js → dev-supervisor-BpMoHlkR.js} +2 -2
- package/server/{devcontainer-renderer-D8ylupco.js → devcontainer-renderer-CtUgrVKW.js} +3 -3
- package/server/dist-Bd3vn0Hw.js +3 -0
- package/server/{dist-yfR7G1BL.js → dist-DyRx4cI7.js} +1 -1
- package/server/{docker-ClwPQaba.js → docker-BK7HIcBj.js} +2 -2
- package/server/{dod-BLphkhjs.js → dod-BrSfUHm0.js} +1 -1
- package/server/{ensure-devcontainer-BA3bICoY.js → ensure-devcontainer-DRqaAkBR.js} +1 -1
- package/server/{ensure-devcontainer-CFpQatOc.js → ensure-devcontainer-DseivYEy.js} +4 -4
- package/server/{esm-shims-BZw-fTQ6.js → esm-shims-CbI3BVkl.js} +1 -1
- package/server/{event-store-DABarGNz.js → event-store-Cr5PQwFC.js} +1 -1
- package/server/{event-store-BVnON3vf.js → event-store-tdiY5eDZ.js} +3 -3
- package/server/{events-CmERlnwn.js → events-CC1dgUpx.js} +3 -3
- package/server/{events-LGeUehYW.js → events-CvvGK6LT.js} +1 -1
- package/server/{factory-CQNprtHe.js → factory-CynerjXO.js} +50 -13
- package/server/{feature-registry-population-D9Z3tYSa.js → feature-registry-population-B0pmAz0a.js} +4 -4
- package/server/{feature-registry-storage-BWymOgXE.js → feature-registry-storage-_wUBRD3J.js} +2 -2
- package/server/{features--fOza5g5.js → features-Dhxz-wLc.js} +2 -2
- package/server/{feedback-target-Dqik2WTe.js → feedback-target-CPS15Vte.js} +7 -7
- package/server/{feedback-target-Dn9vfPpz.js → feedback-target-iygZwmMc.js} +1 -1
- package/server/{feedback-writer-Wlq5-qgS.js → feedback-writer-C9b6ccN1.js} +6 -5
- package/server/{feedback-writer-DDQNV8uc.js → feedback-writer-qmiMbqTZ.js} +1 -1
- package/server/{flywheel-Q-38YhZG.js → flywheel-DMCUzDWg.js} +1 -1
- package/server/{flywheel-1Wd8WDlh.js → flywheel-DSSpWmqF.js} +13 -13
- package/server/{flywheel-DPUc8r3V.js → flywheel-DcBkQvgE.js} +14 -14
- package/server/{flywheel-merge-order-CeBuX0EJ.js → flywheel-merge-order-C-6zRLvM.js} +1 -1
- package/server/{flywheel-merge-order-4SqOXFAr.js → flywheel-merge-order-DxbQKE1d.js} +8 -8
- package/server/forge-B-ZWyTRm.js +2 -0
- package/server/{forge-DBbDpiYc.js → forge-Ch9gCFod.js} +2 -2
- package/server/{from-hh6vTBGl.js → from-CJ_aH5jD.js} +1 -1
- package/server/{fts-db-6ponMie2.js → fts-db-CKgg0VKg.js} +2 -2
- package/server/{fts-operations-KIRK165y.js → fts-operations-BrL_VTRr.js} +2 -2
- package/server/git-utils-BVa07a4a.js +198 -0
- package/server/{git-utils-DmF5xkj8.js → git-utils-Dry_Ka_D.js} +1 -1
- package/server/{github-app-B3yfECo8.js → github-app-CMBdIFBQ.js} +11 -3
- package/server/{github-app-CeSVFL6C.js → github-app-CPfoFAdV.js} +1 -1
- package/server/{github-client-Dslipypz.js → github-client--XVlDpwM.js} +2 -2
- package/server/{github-client-4A6FgA8O.js → github-client-B4QsdE-X.js} +1 -1
- package/server/{github-pr-lookup-DBP0YHMr.js → github-pr-lookup-BRbDW-qk.js} +2 -2
- package/server/harness-binary-CVio2m-u.js +106 -0
- package/server/{harness-resolve-BGpO-OVM.js → harness-resolve-qHJBhy3Z.js} +9 -15
- package/server/{health-events-CZGZ5I-A.js → health-events-C9B8y1Hm.js} +2 -2
- package/server/{health-events-CnwV_SSz.js → health-events-CpfvuVmm.js} +1 -1
- package/server/{hooks-CoNscX84.js → hooks-DUXw8A0-.js} +2 -2
- package/server/{hooks-DvX33gY_.js → hooks-ltecuFqZ.js} +1 -1
- package/server/{hume-DSJt5eA_.js → hume-BEq0bUDg.js} +2 -2
- package/server/hume-B_DbflNM.js +3 -0
- package/server/{idle-stack-reaper-5DVRoY6P.js → idle-stack-reaper-D7w9t3fE.js} +1 -1
- package/server/{idle-stack-reaper-BfL8HqYy.js → idle-stack-reaper-w1ISSlhs.js} +2 -2
- package/server/{in-flight-guard-tVGiI5ee.js → in-flight-guard-aQ1IxeI3.js} +2 -2
- package/server/{infra-DN2wSxle.js → infra-CzaSOgul.js} +4 -4
- package/server/{injection-DtlT8Akv.js → injection-DZ0PfYa4.js} +7 -7
- package/server/{injection-DK9zh_HL.js → injection-oNZeoDhL.js} +1 -1
- package/server/{inspect-agent-DKByUS_F.js → inspect-agent-DJKLWcVT.js} +15 -11
- package/server/inspect-agent-ch-F-5Ci.js +2 -0
- package/server/{internal-token-DhfFiwW7.js → internal-token-Bb4XeV2x.js} +2 -2
- package/server/{internal-token-7bYL5v6K.js → internal-token-DXdfprGr.js} +1 -1
- package/server/{io-BiM-7Zsx.js → io-B3_AHDfr.js} +160 -184
- package/server/{issue-closed-Dfw3QDyZ.js → issue-closed-zhdvQicO.js} +7 -7
- package/server/{issue-lifecycle-B7HZWnTA.js → issue-lifecycle-CreaCkjW.js} +22 -22
- package/server/{issue-lifecycle-ytsEdDlK.js → issue-lifecycle-Dy4vd0Oa.js} +1 -1
- package/server/{issue-service-singleton-CPESc4Or.js → issue-service-singleton-B5ushCvE.js} +8 -8
- package/server/{issue-service-singleton-D5EB5eYr.js → issue-service-singleton-DabvBWUp.js} +1 -1
- package/server/{issues-XYtFMxrH.js → issues-B6ToV6x1.js} +2 -2
- package/server/{jsonl-parser-DJV2eZUP.js → jsonl-parser-Dhflo1SH.js} +3 -3
- package/server/{label-cleanup-CJ4m8iRU.js → label-cleanup-BKPJm4Hv.js} +3 -3
- package/server/{label-reconciler-CNf3Ylm3.js → label-reconciler-DdWbHEBu.js} +4 -4
- package/server/{launcher-generator-5DJRiovn.js → launcher-generator-CHVm7bGT.js} +10 -9
- package/server/{layers-cZx7ibtV.js → layers-DzxSTGNA.js} +2 -2
- package/server/lifecycle-DfeyBDwA.js +121 -0
- package/server/lifecycle-io-Bsnr2K4F.js +3 -0
- package/server/{lifecycle-io-DMurK4oM.js → lifecycle-io-D8iNBcux.js} +37 -37
- package/server/{lifecycle-CE7619Xw.js → lifecycle-sycO16hj.js} +6 -6
- package/server/{linear-client-BLyN-NiP.js → linear-client-D4zqMnX7.js} +2 -2
- package/server/{linear-client-Bj1l4FOA.js → linear-client-DqhDQO9k.js} +1 -1
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-hSC2BENe.js → merge-C_ZEhbqI.js} +3 -3
- package/server/{merge-CwX2_AWm.js → merge-DK23JEdS.js} +1 -1
- package/server/{merge-agent-CnORPiri.js → merge-agent-BQM3a8z5.js} +1 -1
- package/server/{merge-agent-DnBsms_V.js → merge-agent-XrB80vfT.js} +369 -213
- package/server/{merge-batch-C2w2U2eK.js → merge-batch-Bwoyr8Je.js} +1 -1
- package/server/{merge-blockers-DhRgh76x.js → merge-blockers-BsFjGrQ8.js} +2 -2
- package/server/merge-ops-DlB1IM0Y.js +2 -0
- package/server/{merge-rebase-CE-ZyOMY.js → merge-rebase-C1KIVr0s.js} +2 -2
- package/server/{merge-set-D7YNU1ZB.js → merge-set-DLz0MkGT.js} +3 -3
- package/server/{merge-set-DHkzPCJU.js → merge-set-DnSYdBEp.js} +1 -1
- package/server/{merge-sync-De1FYva5.js → merge-sync-DZ9dojJn.js} +2 -2
- package/server/{merge-sync-CpGA9Kg7.js → merge-sync-SSv3E-pl.js} +1 -1
- package/server/{merge-train-SvkRJZ-k.js → merge-train-DxDfBTjr.js} +3 -3
- package/server/{merge-train-deps-CECJTElu.js → merge-train-deps-CyYQUksx.js} +4 -4
- package/server/{merge-verification-B3meGcXF.js → merge-verification-CSizH3HY.js} +4 -4
- package/server/{multipart-parser-ByTMgYV5.js → multipart-parser-Dt8YPN5S.js} +2 -2
- package/server/{no-resume-mode-BnInAFKs.js → no-resume-mode-Cx3K0hHi.js} +11 -8
- package/server/node_modules/.package-lock.json +5 -5
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/README.md +3 -3
- 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 +2 -2
- 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/package.json +5 -5
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeChildProcessSpawner.ts +6 -8
- package/server/{orphan-proposed-reconciler-CAfuWTA1.js → orphan-proposed-reconciler-BTkDrl4R.js} +1 -1
- package/server/{orphan-proposed-reconciler-AxAGUouN.js → orphan-proposed-reconciler-neK8dHQk.js} +23 -14
- package/server/package-lock.json +6 -6
- package/server/package.json +1 -1
- package/server/{pan-dir-Rw17YjT1.js → pan-dir-DeVUgwA7.js} +78 -58
- package/server/{paths-FP8v3lTz.js → paths-_zEts6wc.js} +2 -2
- package/server/{pickup-xi3KTLaJ.js → pickup-Dd0Znxxy.js} +2 -2
- package/server/{pipeline-membership-BtKMNY7v.js → pipeline-membership-0HaEGDlH.js} +190 -68
- package/server/{pipeline-notifier-dQ-U4NSb.js → pipeline-notifier-6iCJplFZ.js} +1 -1
- package/server/{pipeline-notifier-BM2HLF7B.js → pipeline-notifier-D0ykk59O.js} +2 -2
- package/server/{project-pipelines-B59NfN44.js → project-pipelines-2sK1apsO.js} +2 -2
- package/server/projects-9SkRpES9.js +3 -0
- package/server/{prompts-CbqaVjbe.js → prompts-Dp4Tpk39.js} +2 -2
- package/server/providers-DKkBXhxU.js +3 -0
- package/server/{providers-d3pwXGVE.js → providers-DV7ec8l7.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-BxYSL7J-.js → chunk-BO2N2NFS-CltymLRg.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-C_F9Q2as.js → diagram-OG6HWLK6-D2f6pjgA.js} +1 -1
- package/server/public/assets/{dist-DQNg4CiF.js → dist-BWR4qFiV.js} +1 -1
- package/server/public/assets/{dist-CLSlc6cV.js → dist-DEmlBBNQ.js} +3 -3
- package/server/public/assets/{ganttDiagram-6RSMTGT7-Cq0my-0C.js → ganttDiagram-6RSMTGT7-DnfiViPK.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-eZC03dGh.js → highlighted-body-OFNGDK62-B8Wrmj9H.js} +1 -1
- package/server/public/assets/index-CUr1xv8w.css +1 -0
- package/server/public/assets/{index-SLYGA8AQ.js → index-CsSuZQBI.js} +148 -145
- package/server/public/assets/{linear-6Fi3qnGg.js → linear-C9zFQpkX.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-Dpmc6xsv.js → pieDiagram-4H26LBE5-lR8H7Yjd.js} +1 -1
- package/server/public/assets/{prod-ojHllFvN.js → prod-B1jCQihw.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-Ulr9gON5.js → quadrantDiagram-W4KKPZXB-CVQ2guem.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-CwdHGXfL.js → sankeyDiagram-5OEKKPKP-eD1RB4gm.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-r-bEDzJh.js → xychartDiagram-2RQKCTM6-ChEC6dQn.js} +1 -1
- package/server/public/index.html +54 -10
- package/server/{pull-requests-D3N6HQzI.js → pull-requests--Ib2jTgy.js} +1 -1
- package/server/{pull-requests-CjjPj7v6.js → pull-requests-CXIhdCYD.js} +13 -11
- package/server/{queries-B5hl7lMQ.js → queries-6d7Cdtm7.js} +723 -110
- package/server/{rally-Dp0Gb1DN.js → rally-B708-nZn.js} +3 -3
- package/server/{rally-api-DGaFz5L5.js → rally-api-nY0ZANw3.js} +2 -2
- package/server/{rally-api-CKr0O4DJ.js → rally-api-yjQ0TfHd.js} +1 -1
- package/server/{rally-client-SVbjGvqj.js → rally-client-B1EJhfV0.js} +4 -4
- package/server/{rally-client-Cqf6EX_r.js → rally-client-CULK2XAY.js} +1 -1
- package/server/rally-njs_mJrt.js +3 -0
- package/server/reap-terminal-sessions-MWnqdLCJ.js +4 -0
- package/server/{reap-terminal-sessions-CjqRAGw7.js → reap-terminal-sessions-N3BTkmX_.js} +11 -28
- package/server/{rebuild-stack-DHqCLvLX.js → rebuild-stack-Dp4eLkt4.js} +6 -6
- package/server/{rebuild-stack-DjdpALr1.js → rebuild-stack-kA7XngID.js} +1 -1
- package/server/{reconstruct-cache-BqrCQt0o.js → reconstruct-cache-uWbZfjms.js} +6 -6
- package/server/record-t6V-3Dcj.js +3 -0
- package/server/{record-update-BlB8mpKO.js → record-update-DACtKh6_.js} +1 -1
- package/server/record-update-Dq0t2uBG.js +310 -0
- package/server/{recovery-trip-l1Hsi37x.js → recovery-trip-BJtIQuag.js} +2 -2
- package/server/{release-engine-CSI4K6Oj.js → release-engine-DZpmGGzb.js} +5 -5
- package/server/{release-set-BywwggrE.js → release-set-hnXd_kga.js} +3 -3
- package/server/{remote-DYziAkiZ.js → remote-4tiENDaI.js} +3 -3
- package/server/{remote-cnoeuDWn.js → remote-Br-ZWVIP.js} +3 -3
- package/server/{remote-agents-BNORDWAX.js → remote-agents-CRCg1L4H.js} +1 -1
- package/server/{remote-agents-CZ2rc8I0.js → remote-agents-nmty1mLu.js} +6 -6
- package/server/{remote-completion-W67FNQ-A.js → remote-completion-BbWNd10K.js} +13 -13
- package/server/resume-CcKqnTvE.js +3 -0
- package/server/{review-agent-CSswH985.js → review-agent-DJRO8EG8.js} +1 -1
- package/server/{review-agent-CqSqSHkU.js → review-agent-sKkE1FEL.js} +23 -23
- package/server/{review-artifacts-BBgnd5df.js → review-artifacts-BLbSC4ke.js} +5 -5
- package/server/{review-context-Ctp9BdNJ.js → review-context-BgX3lcCx.js} +9 -9
- package/server/{review-status-CCgPVK1h.js → review-status-A7quS5KJ.js} +56 -39
- package/server/review-status-C6n6-9f_.js +3 -0
- package/server/{review-status-enrichment-DtDRGpst.js → review-status-enrichment-tbOn_A_u.js} +3 -3
- package/server/review-status-source-CxuEjLGg.js +39 -0
- package/server/{review-status-sync-jnLgd04F.js → review-status-sync-BhSQ0d0l.js} +2 -2
- package/server/{review-status-sync-C792ksoJ.js → review-status-sync-To3-iS-N.js} +1 -1
- package/server/{review-verdict-feedback-D5lW0o3k.js → review-verdict-feedback-C1Kg8n7t.js} +1 -1
- package/server/{review-verdict-feedback-CMsIpTpy.js → review-verdict-feedback-CTRNtzXO.js} +7 -7
- package/server/{rollup-B3kQmNpl.js → rollup-B53Y81xK.js} +1 -1
- package/server/{rollup-CLj_AK9f.js → rollup-WA0VD-Rr.js} +8 -8
- package/server/{scanner-C4NeC4FE.js → scanner-D2743cp8.js} +11 -7
- package/server/{sequence-io-Ce-6grIY.js → sequence-io-Cg0zYj_E.js} +4 -4
- package/server/{sequencer-agent-Bpz0yGmG.js → sequencer-agent-BGY8gjg-.js} +5 -5
- package/server/server.js +1348 -963
- package/server/{service-CqAY8Kmk.js → service-DCpB_SGd.js} +154 -51
- package/server/{session-fork-uNo4rMRA.js → session-fork-BQ8_6H32.js} +2 -2
- package/server/{session-history-DUehL3KN.js → session-history-CVZDpS3c.js} +4 -4
- package/server/{settings-DP2OYLXL.js → settings-BZ5m1UCl.js} +3 -3
- package/server/settings-D0OSwos5.js +2 -0
- package/server/{settings-D9grjmaP.js → settings-ylxwqwQG.js} +2 -2
- package/server/{shadow-engineering-Bi_oIMtF.js → shadow-engineering-BlxG6Xye.js} +3 -3
- package/server/{shadow-state-CDxEuPlE.js → shadow-state-C2_epgx2.js} +1 -1
- package/server/{shadow-state-a_ztFBJe.js → shadow-state-Dh-HzF2J.js} +2 -2
- package/server/{shadow-utils-CyOg6_Xq.js → shadow-utils-4bvjn9b3.js} +2 -2
- package/server/{ship-log-DDcueaIR.js → ship-log-ClSMIzZX.js} +1 -1
- package/server/{smart-compaction-C1_VVLEd.js → smart-compaction-CHIxLr_d.js} +1 -1
- package/server/{smart-compaction--Oj65Uov.js → smart-compaction-r4pHQBIr.js} +7 -7
- package/server/{spawn-planning-session-AiUSsBnH.js → spawn-planning-session-DWAorh2B.js} +25 -20
- package/server/{spawn-planning-session-LFtK2QCE.js → spawn-planning-session-KC_UduxD.js} +1 -1
- package/server/{specialist-completion-qOgqdqXH.js → specialist-completion-BXhav38U.js} +1 -1
- package/server/{specialist-context-gjj8Z4Ii.js → specialist-context-DtrYvGJ-.js} +5 -5
- package/server/{specialist-handoff-logger-BsBNvVZv.js → specialist-handoff-logger-C45ouoZ6.js} +2 -2
- package/server/{specialist-logs-CSLtvPx6.js → specialist-logs-DJ3RzKxW.js} +3 -3
- package/server/{specialists-D0VBf8g_.js → specialists-D5fRZXmN.js} +1 -1
- package/server/specialists-DVj0hvaL.js +3 -0
- package/server/{specialists-CYRwELzc.js → specialists-DyFeedjn.js} +66 -76
- package/server/{specialists-DAegTvRt.js → specialists-JVO00bs7.js} +374 -220
- package/server/specs-nN45DG2X.js +3 -0
- package/server/{src-OLoJhUiJ.js → src-CG9mCkP6.js} +6 -6
- package/server/{src-BqTcrfO_.js → src-CMTQGyCK.js} +3 -3
- package/server/{src-Dpq1yFIl.js → src-U7_kTPEE.js} +338 -4
- package/server/{stack-health-I713ELld.js → stack-health-Df0YEZKa.js} +1 -1
- package/server/{stack-health-DV_f-lK0.js → stack-health-puygdaMd.js} +2 -2
- package/server/{stale-task-claims-CQSKZVq0.js → stale-task-claims-BbFwCTb0.js} +4 -4
- package/server/{staleness-BbsGxmF2.js → staleness-Bpy41ngS.js} +15 -3
- package/server/{staleness-zGp4P1hd.js → staleness-Cbl_w4Bw.js} +1 -1
- package/server/{state-home-DixkE-up.js → state-home-CIGjwNfJ.js} +119 -54
- package/server/state-migrate-Dkzaxvny.js +487 -0
- package/server/{stuck-remediation-BWkK_O7A.js → stuck-remediation-CzEov_fq.js} +27 -21
- package/server/{stuck-remediation-CTPRC2S5.js → stuck-remediation-sY_MHHgQ.js} +1 -1
- package/server/{substrate-bug-weights-service-DXd0ID83.js → substrate-bug-weights-service-BH66lhm7.js} +3 -3
- package/server/{summary-fork-CdLn8Chr.js → summary-fork-D8bXjCr7.js} +2 -2
- package/server/{summary-fork-f3DpgjXh.js → summary-fork-DHhJIsAL.js} +8 -8
- package/server/{supervisor-Ch8CDuoF.js → supervisor-BO-Zk_h-.js} +3 -3
- package/server/supervisor-BPy-o1A8.js +2 -0
- package/server/{swarm-readiness-C9P2iPap.js → swarm-readiness-CQ_fwUWF.js} +4 -4
- package/server/{system-prerequisites-DkoQBn1q.js → system-prerequisites-Bza0ffAh.js} +24 -44
- package/server/{teardown-workspace-D-5yMyit.js → teardown-workspace-CEgauF4U.js} +15 -15
- package/server/{test-agent-queue-BwpUpu-o.js → test-agent-queue-DXDt0Xa-.js} +7 -7
- package/server/{test-verdict-BRiSu7eW.js → test-verdict-CmUBK5cT.js} +1 -1
- package/server/{test-verdict-BQ1yx7d4.js → test-verdict-DFjjIHR5.js} +1 -1
- package/server/{tldr-daemon-DjxP5g6Y.js → tldr-daemon-BDtLOIlO.js} +2 -2
- package/server/{tldr-daemon-BJA7TkqS.js → tldr-daemon-DL566HbH.js} +1 -1
- package/server/tmux-DoThH6aj.js +3 -0
- package/server/{tmux-y1blSxks.js → tmux-ftABRAmc.js} +76 -44
- package/server/{token-LUrbM9sU.js → token-CsOhvw42.js} +2 -2
- package/server/{token-util-BZaDAQ8S.js → token-util-CTmczIfW.js} +1 -1
- package/server/token-util-DrHg8abn.js +3 -0
- package/server/{tracker-config-DSFZBdXP.js → tracker-config-B4itFzDo.js} +2 -2
- package/server/{tracker-utils-WtP_V-yn.js → tracker-utils-BePq_oj-.js} +1 -1
- package/server/{tracker-utils-DiceZN3a.js → tracker-utils-tnxxqROg.js} +2 -2
- package/server/{traefik-connect-BXqfOP4-.js → traefik-connect-m73vGebA.js} +1 -1
- package/server/{tunnel-DTng1rfQ.js → tunnel-B2vxjx_b.js} +3 -3
- package/server/{tunnel-WcJImbAC.js → tunnel-Cgj-IGIl.js} +1 -1
- package/server/{types-BjaZ1oqH.js → types-BBNjPcqU.js} +1 -1
- package/server/{types-DqeBMmJN.js → types-hraoaQIp.js} +1 -1
- package/server/{uat-train-BpLnp7Cx.js → uat-train-CuEn0t9M.js} +28 -28
- package/server/{uat-train-Wismge7h.js → uat-train-cKfM-_WW.js} +1 -1
- package/server/{validation-BA4e5EGm.js → validation-B5JxoPUS.js} +259 -9
- package/server/{validation-CUWamZ4X.js → validation-CIi6pnI2.js} +1 -1
- package/server/{verification-artifact-Dr_0g9nb.js → verification-artifact-BcnIbigL.js} +1 -1
- package/server/{verification-artifact-CrbI4tJE.js → verification-artifact-C-lIHfUa.js} +1 -1
- package/server/{verification-runner-gAzh3cVD.js → verification-runner-Br0S_Ous.js} +103 -37
- package/server/{verification-runner-Dcksl_P-.js → verification-runner-CDj4lD4t.js} +1 -1
- package/server/{vtt-parser-3VZKsmSm.js → vtt-parser-DKpNNW5i.js} +1 -1
- package/server/{work-agent-prompt-ULdcANl5.js → work-agent-prompt-Yb2bd3Fq.js} +16 -15
- package/server/{workflows-B8ROFlfw.js → workflows-C9WmILql.js} +39 -77
- package/server/workflows-D90rMOya.js +2 -0
- package/server/{workspace-DhTDA8nB.js → workspace-BVl4rihN.js} +3 -3
- package/server/{workspace-DSjUJaJN.js → workspace-DuUdndHe.js} +1 -1
- package/server/{workspace-config-BAAsAv-o.js → workspace-config-cEGcO6UT.js} +1 -1
- package/server/{workspace-manager-CcujONCR.js → workspace-manager-ZTdJAy9M.js} +1 -1
- package/server/{workspace-manager-DsN52IMG.js → workspace-manager-hLUv3ADC.js} +23 -16
- package/server/{workspace-metadata-DIL5_U4c.js → workspace-metadata-CskwzzhL.js} +2 -2
- package/server/{workspace-metadata-CftOpNLs.js → workspace-metadata-DNpMixRq.js} +1 -1
- package/server/{workspaces-Dmlh1YXm.js → workspaces-hWvy9eKs.js} +276 -110
- package/sync-sources/agents/pan-inspect-agent.md +1 -1
- package/sync-sources/agents/pan-merge-agent.md +1 -1
- package/sync-sources/agents/pan-planning-agent.md +4 -4
- package/sync-sources/agents/pan-work-agent.md +1 -1
- package/sync-sources/dev-skills/pan-commit/SKILL.md +1 -1
- package/sync-sources/dev-skills/test-specialist-workflow/SKILL.md +1 -1
- package/sync-sources/hooks/record-cost-event.js +363 -71
- package/sync-sources/hooks/session-start-hook +7 -0
- package/sync-sources/hooks/work-agent-stop-hook +1 -1
- package/sync-sources/rules/per-bead-durability.md +1 -1
- package/sync-sources/rules/prd-authoring.md +1 -1
- package/sync-sources/skills/feature-work/SKILL.md +1 -1
- package/sync-sources/skills/pan/SKILL.md +2 -2
- package/sync-sources/skills/pan-admin-config/SKILL.md +1 -0
- package/sync-sources/skills/pan-approve/SKILL.md +1 -1
- package/sync-sources/skills/pan-close/SKILL.md +1 -1
- package/sync-sources/skills/pan-doctor/SKILL.md +1 -1
- package/sync-sources/skills/pan-new-project/SKILL.md +9 -11
- package/sync-sources/skills/pan-oversee/SKILL.md +5 -5
- package/sync-sources/skills/pan-plan/SKILL.md +6 -6
- package/sync-sources/skills/pan-quickstart/SKILL.md +1 -1
- package/sync-sources/skills/pan-recap/SKILL.md +2 -2
- package/sync-sources/skills/pan-review/SKILL.md +1 -1
- package/sync-sources/skills/pan-start/SKILL.md +26 -3
- package/sync-sources/skills/pan-swarm/SKILL.md +1 -1
- package/sync-sources/skills/pan-sync/SKILL.md +1 -1
- package/sync-sources/skills/pan-task/SKILL.md +2 -2
- package/sync-sources/skills/pan-wipe/SKILL.md +2 -2
- package/sync-sources/skills/pipeline-list/SKILL.md +1 -1
- package/sync-sources/skills/pipeline-status/SKILL.md +2 -2
- package/sync-sources/skills/plan/SKILL.md +11 -11
- package/sync-sources/skills/write-vbrief/SKILL.md +7 -282
- package/sync-sources/skills/write-xbrief/SKILL.md +295 -0
- package/sync-sources/templates/claude-md/sections/warnings.md +1 -1
- package/server/agent-state-BV_6RHnO.js +0 -3
- package/server/agents-Czz6R57Z.js +0 -3
- package/server/cli-ChErG518.js +0 -3
- package/server/codex-BBeZ8c3s.js +0 -3
- package/server/deacon-swarm-uudlSCLM.js +0 -2
- package/server/dist-BEDL2alY.js +0 -3
- package/server/forge-DbhJyH6u.js +0 -2
- package/server/git-utils-Bkxzr1Xf.js +0 -129
- package/server/hume-BrA1tUuk.js +0 -3
- package/server/inspect-agent-CyXNo9fM.js +0 -2
- package/server/lifecycle-io-CUpsxG0p.js +0 -3
- package/server/merge-ops-BpTtuO8x.js +0 -2
- package/server/projects-IRHJIPYC.js +0 -3
- package/server/providers-BqCdTryq.js +0 -3
- package/server/public/assets/index-C6NLz_1S.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-BNwFoQsf.js +0 -1
- package/server/rally-DGimSRBQ.js +0 -3
- package/server/reap-terminal-sessions-C1mfzoZo.js +0 -3
- package/server/record-update-RviRDSNs.js +0 -168
- package/server/record-us0YECMO.js +0 -3
- package/server/resume-OyN3dEXE.js +0 -3
- package/server/review-status-DXeqFpk5.js +0 -3
- package/server/settings-BaPXXJsT.js +0 -2
- package/server/specialists-C6WkeKFK.js +0 -3
- package/server/specs-BsNcum0h.js +0 -3
- package/server/state-migrate-_zJJ6XKE.js +0 -362
- package/server/supervisor-Qy1QecAs.js +0 -2
- package/server/tmux-HQLgwo_C.js +0 -3
- package/server/token-util-Cg-QnowA.js +0 -3
- package/server/workflows-C5c-RPsY.js +0 -2
|
@@ -9,7 +9,7 @@ When implementing a new feature:
|
|
|
9
9
|
|
|
10
10
|
## 1. Understand Requirements
|
|
11
11
|
- Read the Linear/GitHub issue thoroughly
|
|
12
|
-
- Check for an associated PRD draft at `<projectRoot>/.pan/drafts/<ISSUE-ID>.md` and the workspace
|
|
12
|
+
- Check for an associated PRD draft at `<projectRoot>/.pan/drafts/<ISSUE-ID>.md` and the workspace xBRIEF at `.pan/spec.vbrief.json`
|
|
13
13
|
- Identify acceptance criteria
|
|
14
14
|
- Clarify ambiguities BEFORE coding
|
|
15
15
|
|
|
@@ -38,7 +38,8 @@ LIFECYCLE VERBS (top-level)
|
|
|
38
38
|
pan wipe <id> Destructive reset-to-Todo for an issue
|
|
39
39
|
pan close <id> Close-out ceremony for completed issues
|
|
40
40
|
pan plan <id> Create execution plan
|
|
41
|
-
pan plan finalize <id>
|
|
41
|
+
pan plan finalize <id> Finalize the xBRIEF plan
|
|
42
|
+
pan task <subcommand> Read and update xBRIEF item state
|
|
42
43
|
pan issues List and triage work across trackers
|
|
43
44
|
|
|
44
45
|
OBSERVATION
|
|
@@ -70,7 +71,6 @@ ADMIN (PLUMBING)
|
|
|
70
71
|
pan admin specialists <cmd> Review/test/merge agents
|
|
71
72
|
pan admin remote <cmd> Fly.io infra
|
|
72
73
|
pan admin db <cmd> Database seeding
|
|
73
|
-
pan admin vBRIEF tasks <cmd> vBRIEF tasks CLI management
|
|
74
74
|
pan admin config <cmd> Configuration management
|
|
75
75
|
pan admin hooks install Install Claude Code heartbeat hooks
|
|
76
76
|
pan admin tldr <cmd> TLDR daemon management
|
|
@@ -45,5 +45,6 @@ Settings page or edit `~/.overdeck/config.yaml` directly.
|
|
|
45
45
|
## See Also
|
|
46
46
|
|
|
47
47
|
- `pan admin migrate-config` — migrate legacy settings.json → config.yaml
|
|
48
|
+
- `pan admin state migrate-xbrief <project> [--dry-run]` — migrate state files to xBRIEF envelopes and extensions
|
|
48
49
|
- `pan admin tracker <cmd>` — tracker-specific operations
|
|
49
50
|
- `pan doctor` — verify configuration is valid
|
|
@@ -17,7 +17,7 @@ allowed-tools:
|
|
|
17
17
|
|
|
18
18
|
`pan approve` was a legacy CLI command that bypassed critical infrastructure:
|
|
19
19
|
- **Merge queue** — no serialization, could collide with concurrent merges
|
|
20
|
-
- **Post-merge lifecycle** — no Docker cleanup, label cleanup, stash cleanup,
|
|
20
|
+
- **Post-merge lifecycle** — no Docker cleanup, label cleanup, stash cleanup, xBRIEF task-state compaction
|
|
21
21
|
- **Idempotency guards** — no protection against the infinite loop (PAN-328)
|
|
22
22
|
- **Verification gate** — no post-rebase quality checks
|
|
23
23
|
|
|
@@ -57,7 +57,7 @@ pan close PAN-1234 --force --accept-deploy
|
|
|
57
57
|
Runs the close-out ceremony after mechanically checking review, tests, branch verification,
|
|
58
58
|
forge merge, post-merge lifecycle, main verification, deployment, and teardown. Merge
|
|
59
59
|
moves the issue to canonical state `verifying_on_main`; close-out is the deliberate final
|
|
60
|
-
step that completes the
|
|
60
|
+
step that completes the xBRIEF, archives planning artifacts, applies final cleanup, closes
|
|
61
61
|
the tracker issue, and clears review status.
|
|
62
62
|
|
|
63
63
|
Close-out is lighter than `pan wipe`: it preserves history and follows the configured
|
|
@@ -47,7 +47,7 @@ pan doctor
|
|
|
47
47
|
# ✓ Skills directory exists
|
|
48
48
|
# ✓ tmux available
|
|
49
49
|
# ✓ Docker available
|
|
50
|
-
# ⚠ orphan-proposed-specs: proposed
|
|
50
|
+
# ⚠ orphan-proposed-specs: proposed xBRIEF specs without work agents, grouped by project with remediation hints
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
### 2. Check Configuration
|
|
@@ -3,7 +3,7 @@ name: pan-new-project
|
|
|
3
3
|
description: >
|
|
4
4
|
Complete setup for registering a new project with Overdeck. Handles
|
|
5
5
|
project registration, issue prefix, workspace config, trust setup,
|
|
6
|
-
|
|
6
|
+
xBRIEF task support init, tracker config, and validates against working projects.
|
|
7
7
|
triggers:
|
|
8
8
|
- new project
|
|
9
9
|
- add new project
|
|
@@ -31,7 +31,7 @@ license: "MIT"
|
|
|
31
31
|
Sets up a new project for Overdeck management. This is the ONLY correct
|
|
32
32
|
way to add a new project. Do NOT just run `pan project add` alone — it
|
|
33
33
|
creates a skeleton entry that breaks planning agents, workspace creation,
|
|
34
|
-
issue routing, and
|
|
34
|
+
issue routing, and xBRIEF task support.
|
|
35
35
|
|
|
36
36
|
---
|
|
37
37
|
|
|
@@ -185,16 +185,14 @@ extra config needed beyond `issue_prefix` in projects.yaml.
|
|
|
185
185
|
|
|
186
186
|
For **GitLab** projects, TBD — not yet supported in dashboard polling.
|
|
187
187
|
|
|
188
|
-
### Step 5:
|
|
188
|
+
### Step 5: Verify xBRIEF Task Support
|
|
189
|
+
|
|
190
|
+
No per-project task database initialization is required. xBRIEF plan items become the executable checklist after planning, and `pan task` reads and updates their state through the canonical state door.
|
|
189
191
|
|
|
190
192
|
```bash
|
|
191
|
-
|
|
192
|
-
git config vBRIEF tasks.role agent
|
|
193
|
+
pan task --help >/dev/null && echo "PASS: pan task available"
|
|
193
194
|
```
|
|
194
195
|
|
|
195
|
-
New worktrees inherit this automatically since Overdeck now sets it during
|
|
196
|
-
workspace creation (`workspace-manager.ts` and `worktree.ts`).
|
|
197
|
-
|
|
198
196
|
### Step 6: Create workspaces/ Directory
|
|
199
197
|
|
|
200
198
|
```bash
|
|
@@ -250,8 +248,8 @@ console.log(d.projects?.['<path>']?.hasTrustDialogAccepted
|
|
|
250
248
|
grep 'GITHUB_REPOS' ~/.overdeck.env | grep -q '<PREFIX>' && \
|
|
251
249
|
echo "PASS: in GITHUB_REPOS" || echo "FAIL: not in GITHUB_REPOS"
|
|
252
250
|
|
|
253
|
-
# 5.
|
|
254
|
-
|
|
251
|
+
# 5. xBRIEF task command available
|
|
252
|
+
pan task --help >/dev/null && echo "PASS" || echo "FAIL: pan task unavailable"
|
|
255
253
|
|
|
256
254
|
# 6. workspaces/ exists
|
|
257
255
|
test -d <path>/workspaces && echo "PASS" || echo "FAIL: no workspaces/"
|
|
@@ -278,7 +276,7 @@ Tracker: GitHub (<owner/repo>)
|
|
|
278
276
|
Workspace type: <type>
|
|
279
277
|
Tests: <command>
|
|
280
278
|
Trusted: Yes
|
|
281
|
-
|
|
279
|
+
xBRIEF task support: Available through pan task
|
|
282
280
|
Dashboard: Issues visible
|
|
283
281
|
|
|
284
282
|
Validation: 8/8 checks passed
|
|
@@ -27,7 +27,7 @@ Supervise an agent working on an issue through the **entire lifecycle**:
|
|
|
27
27
|
`spawn/resume → work → completion → review → feedback loop → test → merge-ready`
|
|
28
28
|
|
|
29
29
|
This is NOT passive monitoring. You are actively:
|
|
30
|
-
- **Watching for bugs at every stage** — dashboard rendering, agent spawning, workspace creation,
|
|
30
|
+
- **Watching for bugs at every stage** — dashboard rendering, agent spawning, workspace creation, xBRIEF tasks lifecycle, specialist handoffs, status transitions, terminal output, API responses
|
|
31
31
|
- **Documenting everything** — no bug is too small. If something flickers, logs a warning, shows stale data, or doesn't match expected state, that's a finding
|
|
32
32
|
- **Fixing infrastructure bugs** when they block progress, then continuing the test
|
|
33
33
|
- **Filing or updating GitHub issues** (PAN-XXX) for every bug found
|
|
@@ -92,12 +92,12 @@ echo "Completed: ${COMPLETED:-NO}"
|
|
|
92
92
|
REVIEW_STATUS=$(curl -s http://localhost:3011/api/review/$ISSUE_ID/status 2>/dev/null)
|
|
93
93
|
echo "Review status: $REVIEW_STATUS"
|
|
94
94
|
|
|
95
|
-
# 6b. Branch-portable
|
|
95
|
+
# 6b. Branch-portable xBRIEF pipeline mirror (corroborating, not authoritative)
|
|
96
96
|
PIPELINE_MIRROR=""
|
|
97
97
|
if [ -n "$WS_PATH" ] && [ -f "$WS_PATH/.pan/spec.vbrief.json" ]; then
|
|
98
98
|
PIPELINE_MIRROR=$(jq -c '.plan.metadata.pipeline // empty' "$WS_PATH/.pan/spec.vbrief.json" 2>/dev/null)
|
|
99
99
|
fi
|
|
100
|
-
echo "
|
|
100
|
+
echo "xBRIEF pipeline mirror: ${PIPELINE_MIRROR:-NONE}"
|
|
101
101
|
|
|
102
102
|
# 7. Specialist activity?
|
|
103
103
|
SPECIALISTS=$(curl -s http://localhost:3011/api/specialists 2>/dev/null)
|
|
@@ -106,7 +106,7 @@ echo "Specialists: $SPECIALISTS"
|
|
|
106
106
|
|
|
107
107
|
### Phase Decision Matrix
|
|
108
108
|
|
|
109
|
-
Based on the checks above, determine the current phase. Treat `REVIEW_STATUS` and other live SQLite-backed API status as authoritative; use the branch-portable
|
|
109
|
+
Based on the checks above, determine the current phase. Treat `REVIEW_STATUS` and other live SQLite-backed API status as authoritative; use the branch-portable xBRIEF `plan.metadata.pipeline` mirror as a corroborating signal when API status is missing, stale, or ambiguous. If the mirror disagrees with the API, log a bug and prefer the API.
|
|
110
110
|
|
|
111
111
|
| Condition | Current Phase | Jump To |
|
|
112
112
|
|-----------|--------------|---------|
|
|
@@ -344,7 +344,7 @@ When you find a bug in the Overdeck infrastructure:
|
|
|
344
344
|
Be thorough. All of these are findings worth logging:
|
|
345
345
|
- Dashboard shows wrong status, stale data, or flickers
|
|
346
346
|
- Agent state file says one thing, dashboard shows another
|
|
347
|
-
-
|
|
347
|
+
- xBRIEF tasks not created, duplicated, or disappearing
|
|
348
348
|
- Specialist doesn't wake up or takes too long
|
|
349
349
|
- Terminal output garbled or missing
|
|
350
350
|
- API returns unexpected response
|
|
@@ -18,7 +18,7 @@ allowed-tools:
|
|
|
18
18
|
|
|
19
19
|
# Overdeck Planning Lifecycle
|
|
20
20
|
|
|
21
|
-
`pan plan <id>` is the plan-ONLY verb: it starts a planning session for an issue and produces a PRD and
|
|
21
|
+
`pan plan <id>` is the plan-ONLY verb: it starts a planning session for an issue and produces a PRD and xBRIEF, but it does not start the work agent. Use `pan start <id>` when you want planning and work in one command.
|
|
22
22
|
|
|
23
23
|
Use `--auto` when the user wants the planning agent to run non-interactively and infer defensible defaults. Use `--probe` when the plan needs an adversarial pre-finalize self-pass; `--effort high` enables the same probe instructions automatically.
|
|
24
24
|
|
|
@@ -85,13 +85,13 @@ What it does:
|
|
|
85
85
|
2. Validates the tasks already stored in `plan.items[]`, including their declared dependencies.
|
|
86
86
|
3. Flips the spec's `plan.status` from `draft` to `proposed`.
|
|
87
87
|
4. Calls the dashboard's complete-planning endpoint to promote the canonical spec into `<projectRoot>/.pan/specs/`, commit it on main, push, transition the tracker state to Planned, and terminate the planning session — same flow as `pan plan done` and the dashboard Done button.
|
|
88
|
-
5. Returns a summary of finalized
|
|
88
|
+
5. Returns a summary of finalized xBRIEF tasks and promotion status, or JSON with `--json`.
|
|
89
89
|
|
|
90
|
-
Use `-w <path>` to point at another workspace. Use `--no-promote` to leave the spec at `status=proposed` without promoting (rare; for humans who want to review the plan in the dashboard before clicking Done). Finalize runs
|
|
90
|
+
Use `-w <path>` to point at another workspace. Use `--no-promote` to leave the spec at `status=proposed` without promoting (rare; for humans who want to review the plan in the dashboard before clicking Done). Finalize runs xBRIEF quality lint by default; use `--no-quality-lint` only as a loud one-run emergency bypass when the plan must be promoted despite known quality issues.
|
|
91
91
|
|
|
92
92
|
### PRD-first gate
|
|
93
93
|
|
|
94
|
-
Finalize and complete-planning refuse to promote a plan unless a **PRD draft** of at least 20 lines exists for the issue. `roles/plan.md` has always required the PRD as the first artifact; this gate makes it mechanical. The gate searches, in order, for `<ISSUE-ID>.md` (uppercase then lowercase) under `<projectRoot>/.pan/drafts/` then `<workspace>/.pan/drafts/`; the first existing file with ≥20 lines satisfies it. A found-but-thinner draft fails with its line count; a fully missing draft fails naming the canonical path to write. `pan start <id> --auto` is structurally exempt (it synthesizes a minimal
|
|
94
|
+
Finalize and complete-planning refuse to promote a plan unless a **PRD draft** of at least 20 lines exists for the issue. `roles/plan.md` has always required the PRD as the first artifact; this gate makes it mechanical. The gate searches, in order, for `<ISSUE-ID>.md` (uppercase then lowercase) under `<projectRoot>/.pan/drafts/` then `<workspace>/.pan/drafts/`; the first existing file with ≥20 lines satisfies it. A found-but-thinner draft fails with its line count; a fully missing draft fails naming the canonical path to write. `pan start <id> --auto` is structurally exempt (it synthesizes a minimal xBRIEF and never POSTs complete-planning, so the gate cannot block it). Use `--no-prd` (on `finalize` or `done`) only for a genuinely trivial issue that went through interactive planning anyway — it prints a yellow `⚠ PRD gate SKIPPED` warning and tells the endpoint to skip the check too.
|
|
95
95
|
|
|
96
96
|
## Completing planning (`pan plan done`)
|
|
97
97
|
|
|
@@ -101,7 +101,7 @@ Finalize and complete-planning refuse to promote a plan unless a **PRD draft** o
|
|
|
101
101
|
pan plan done PAN-1071
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
-
This promotes the workspace
|
|
104
|
+
This promotes the workspace xBRIEF to `<projectRoot>/.pan/specs/`, syncs xBRIEF tasks, and transitions the tracker state to Planned. It is subject to the same PRD-first gate as `finalize`; pass `--no-prd` only for a genuinely trivial issue.
|
|
105
105
|
|
|
106
106
|
## Related commands
|
|
107
107
|
|
|
@@ -112,5 +112,5 @@ This promotes the workspace vBRIEF to `<projectRoot>/.pan/specs/`, syncs vBRIEF
|
|
|
112
112
|
## See also
|
|
113
113
|
|
|
114
114
|
- `roles/plan.md` — planning role prompt.
|
|
115
|
-
- `docs/
|
|
115
|
+
- `docs/XBRIEF.md` — xBRIEF schema, artifact locations, lifecycle states.
|
|
116
116
|
- `docs/SKILLS-CONVENTION.md` — skill/CLI naming convention.
|
|
@@ -374,7 +374,7 @@ After completing this quick start, you have:
|
|
|
374
374
|
|
|
375
375
|
### Productivity Tips
|
|
376
376
|
- Use dashboard to monitor multiple agents
|
|
377
|
-
-
|
|
377
|
+
- Use xBRIEF plan items through `pan task` for task tracking
|
|
378
378
|
- Configure git hooks for automated workflows
|
|
379
379
|
- Create custom skills for your team's processes
|
|
380
380
|
|
|
@@ -130,14 +130,14 @@ gh issue list --state closed --search "closed:>=$SINCE_DATE" --limit 50 \
|
|
|
130
130
|
```
|
|
131
131
|
|
|
132
132
|
Also scan real commits on `main` (drop the bookkeeping noise — `chore(records)`,
|
|
133
|
-
`chore(state)
|
|
133
|
+
`chore(state)` and `chore(records)` are per-issue state syncs, not work):
|
|
134
134
|
|
|
135
135
|
```bash
|
|
136
136
|
echo "=== substantive commits on origin/main ==="
|
|
137
137
|
git fetch -q origin main 2>/dev/null
|
|
138
138
|
git log origin/main --since="$HOURS hours ago" --no-merges \
|
|
139
139
|
--pretty='%h %ad %s' --date=format:'%m-%d %H:%M' \
|
|
140
|
-
| grep -vE 'chore\((records|state
|
|
140
|
+
| grep -vE 'chore\((records|state)\)' | head -40
|
|
141
141
|
```
|
|
142
142
|
|
|
143
143
|
### 2. What's in flight — active agents and in-review work
|
|
@@ -90,7 +90,7 @@ all reviewers + the test specialist sign off; humans only click the button.
|
|
|
90
90
|
|
|
91
91
|
## See also
|
|
92
92
|
|
|
93
|
-
- `pan show <id>` — inspect work agent state,
|
|
93
|
+
- `pan show <id>` — inspect work agent state, xBRIEF status, recent activity
|
|
94
94
|
- `pan done <id>` — signal initial work completion (from the worker side)
|
|
95
95
|
- `pan code-review` skill — orchestrated parallel code review with synthesis
|
|
96
96
|
- `roles/review.md` — the review role's frontmatter and prompt
|
|
@@ -40,10 +40,10 @@ pan start PAN-123 --remote --tier ephemeral # Remote Fly.io workspace that wind
|
|
|
40
40
|
`pan start <id>` is the single paved-road entry point: it takes an issue from whatever
|
|
41
41
|
state it is in to running work.
|
|
42
42
|
|
|
43
|
-
- **No plan exists** — `pan start` auto-plans (non-interactive), materializes
|
|
43
|
+
- **No plan exists** — `pan start` auto-plans (non-interactive), materializes xBRIEF tasks, and
|
|
44
44
|
starts the work agent when planning finalizes.
|
|
45
45
|
- **Plan exists** — `pan start` creates the workspace if needed and spawns the work agent
|
|
46
|
-
from the existing
|
|
46
|
+
from the existing xBRIEF and xBRIEF tasks.
|
|
47
47
|
- **Already running** — `pan start` exits 0 with a no-op message naming `pan tell <id>` for
|
|
48
48
|
messaging and the tmux attach command.
|
|
49
49
|
|
|
@@ -52,7 +52,7 @@ Planning depth is controlled by `--plan`:
|
|
|
52
52
|
```bash
|
|
53
53
|
pan start PAN-1071 --plan interactive # Q&A planning first, then work
|
|
54
54
|
pan start PAN-1071 --plan auto # non-interactive planning, then work (default)
|
|
55
|
-
pan start PAN-1071 --plan skip # synthesize a minimal
|
|
55
|
+
pan start PAN-1071 --plan skip # synthesize a minimal xBRIEF and xBRIEF tasks, then work
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
The default planning mode comes from `planning.default_mode` in `~/.overdeck/config.yaml`;
|
|
@@ -78,6 +78,29 @@ different model, where the existing session can't resume under different provide
|
|
|
78
78
|
`--fresh` is non-destructive: it clears only the resume pointer, never the JSONL transcript,
|
|
79
79
|
and refuses while the agent is still running (stop it first with `pan kill <id>`).
|
|
80
80
|
|
|
81
|
+
## Slow or hanging workspace prep
|
|
82
|
+
|
|
83
|
+
Workspace preparation bounds its slow external phases with these default budgets:
|
|
84
|
+
|
|
85
|
+
| Phase | Budget | Timeout behavior |
|
|
86
|
+
| --- | ---: | --- |
|
|
87
|
+
| `state-reconcile` | 60s | Fail fast |
|
|
88
|
+
| `sync-main` | 240s | Warn and continue to spawn |
|
|
89
|
+
| `tracker-context` | 60s | Warn, use empty tracker context, and continue to spawn |
|
|
90
|
+
| `spawn` | 600s | Fail fast |
|
|
91
|
+
|
|
92
|
+
Ora spinner text updates render only on a TTY, so non-interactive callers receive plain
|
|
93
|
+
progress lines and a heartbeat every 15 seconds while a phase is still running:
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
[prep] still running: sync-main (45s elapsed)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
A fail-fast timeout exits with the step name and budget. A degraded timeout warns and keeps
|
|
100
|
+
preparation moving toward agent spawn. Supervisors that invoke `pan start` non-interactively
|
|
101
|
+
should allow an outer budget of at least 300 seconds under load; RUN-35 completed after earlier
|
|
102
|
+
120-second and 200-second supervisors timed out while workspace preparation was still making progress.
|
|
103
|
+
|
|
81
104
|
## When to Use
|
|
82
105
|
|
|
83
106
|
- Starting work on a new issue
|
|
@@ -5,7 +5,7 @@ description: Start and recover Overdeck swarm slots for planned issues with `pan
|
|
|
5
5
|
|
|
6
6
|
# Pan Swarm
|
|
7
7
|
|
|
8
|
-
Use `pan swarm` when an issue has a finalized
|
|
8
|
+
Use `pan swarm` when an issue has a finalized xBRIEF plan and the operator wants Deacon-managed parallel slot execution.
|
|
9
9
|
|
|
10
10
|
## Start a Swarm
|
|
11
11
|
|
|
@@ -286,7 +286,7 @@ These names are reserved by Overdeck. Don't use them for custom skills:
|
|
|
286
286
|
|
|
287
287
|
**Pan operations:** `pan-down`, `pan-help`, `pan-install`, `pan-issue`, `pan-plan`, `pan-quickstart`, `pan-setup`, `pan-status`, `pan-up`, `pan-config`, `pan-tracker`, `pan-projects`, `pan-sync`, `pan-docker`, `pan-network`, `pan-approve`, `pan-tell`, `pan-kill`, `pan-doctor`, `pan-diagnose`, `pan-logs`, `pan-rescue`
|
|
288
288
|
|
|
289
|
-
**Workflow skills:** `
|
|
289
|
+
**Workflow skills:** `pan-task`, `bug-fix`, `code-review`, `code-review-performance`, `code-review-security`, `dependency-update`, `feature-work`, `incident-response`, `onboard-codebase`, `refactor`, `release`, `session-health`, `skill-creator`, `web-design-guidelines`, `work-complete`
|
|
290
290
|
|
|
291
291
|
## Related Skills
|
|
292
292
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pan-task
|
|
3
|
-
description: "pan task <verb> <issue> — claim and complete
|
|
3
|
+
description: "pan task <verb> <issue> — claim and complete xBRIEF checklist items"
|
|
4
4
|
triggers:
|
|
5
5
|
- pan task
|
|
6
6
|
- claim task
|
|
@@ -11,7 +11,7 @@ allowed-tools:
|
|
|
11
11
|
|
|
12
12
|
# pan task
|
|
13
13
|
|
|
14
|
-
Run the requested task command now. Task state belongs to one issue's
|
|
14
|
+
Run the requested task command now. Task state belongs to one issue's xBRIEF checklist.
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
17
|
pan task next PAN-123
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pan-wipe
|
|
3
|
-
description: "pan wipe <id> — destructive reset to Todo: remove workspace, processes, branches, review state,
|
|
3
|
+
description: "pan wipe <id> — destructive reset to Todo: remove workspace, processes, branches, review state, xBRIEF task state, and tracker status"
|
|
4
4
|
triggers:
|
|
5
5
|
- pan wipe
|
|
6
6
|
- wipe issue
|
|
@@ -27,7 +27,7 @@ Performs the canonical destructive reset-to-Todo for an issue:
|
|
|
27
27
|
- Removes the workspace directory (`workspaces/feature-<id>/`)
|
|
28
28
|
- Removes agent state (`~/.overdeck/agents/<id>/`)
|
|
29
29
|
- Deletes local and remote feature branches
|
|
30
|
-
- Clears review status and issue
|
|
30
|
+
- Clears review status and issue xBRIEF task state
|
|
31
31
|
- Resets issue status in the tracker to Todo
|
|
32
32
|
|
|
33
33
|
## When to Use
|
|
@@ -140,7 +140,7 @@ PY
|
|
|
140
140
|
- **Resource view** is backed by the resource-discovery service
|
|
141
141
|
(`src/dashboard/server/services/resource-discovery.ts`), which includes an
|
|
142
142
|
issue when it has ≥1 `resourceSource` (workspace, branch, tmux, docker, pr,
|
|
143
|
-
|
|
143
|
+
xBRIEF plan, task state, or active tracker state) and computes `readyForMerge` +
|
|
144
144
|
`stateLabel`. Same data the Command Deck `fetchProjects()` consumes.
|
|
145
145
|
- **Lifecycle view** ports `getPipelineIssuePhase`
|
|
146
146
|
(`src/dashboard/frontend/src/lib/pipeline-state.ts`). It can't see
|
|
@@ -43,7 +43,7 @@ PAN-1028 in_flight TTS: first speech utterance gets clipped kimi-k
|
|
|
43
43
|
PAN-945 post_merge_limbo Planning artifact path mismatch gpt-5.4 · · · · ✓* ·
|
|
44
44
|
PAN-1024 zombie_pr Lazy-load per-turn diff summaries gpt-5.4 · · · · · ·
|
|
45
45
|
|
|
46
|
-
PLANNING (Opus drafting
|
|
46
|
+
PLANNING (Opus drafting xBRIEFs)
|
|
47
47
|
PAN-1015 Remove claudish routing in favor of CLIProxy claude-sonnet-4-6 ◐ planning
|
|
48
48
|
|
|
49
49
|
✓ done/passing ◐ in-progress ✗ failed/blocked · pending/n-a
|
|
@@ -170,7 +170,7 @@ for i in panissues:
|
|
|
170
170
|
f"{'✓' if ready else '·'}")
|
|
171
171
|
|
|
172
172
|
print()
|
|
173
|
-
print("PLANNING SESSIONS (Opus drafting
|
|
173
|
+
print("PLANNING SESSIONS (Opus drafting xBRIEFs)")
|
|
174
174
|
print('─' * 130)
|
|
175
175
|
sessions = subprocess.check_output(['tmux','-L','overdeck','list-sessions','-F','#{session_name}']).decode().split('\n')
|
|
176
176
|
for ps in sorted(s for s in sessions if s.startswith('planning-pan-')):
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: plan
|
|
3
3
|
description: >
|
|
4
4
|
Opus-driven planning for issues before Sonnet implementation. Creates workspace,
|
|
5
|
-
.pan/continue.json, .pan/spec.vbrief.json with
|
|
5
|
+
.pan/continue.json, .pan/spec.vbrief.json with xBRIEF tasks, and updates issue tracker.
|
|
6
6
|
Ensures strategic decisions are made by Opus, not cheaper models.
|
|
7
7
|
triggers:
|
|
8
8
|
- plan
|
|
@@ -31,7 +31,7 @@ license: "MIT"
|
|
|
31
31
|
|
|
32
32
|
**Opus plans EVERYTHING. Sonnet executes.**
|
|
33
33
|
|
|
34
|
-
Do NOT leave any decisions for the implementation agent. Every architectural choice, every file path, every function name, every edge case - all decided here. The implementation agent should be able to work through
|
|
34
|
+
Do NOT leave any decisions for the implementation agent. Every architectural choice, every file path, every function name, every edge case - all decided here. The implementation agent should be able to work through xBRIEF tasks mechanically without making any design decisions.
|
|
35
35
|
|
|
36
36
|
---
|
|
37
37
|
|
|
@@ -103,7 +103,7 @@ Create `.pan/continue.json` with COMPLETE planning context:
|
|
|
103
103
|
{ "id": "H1", "summary": "<risk/edge case>", "mitigation": "<how to handle it>" }
|
|
104
104
|
],
|
|
105
105
|
"resumePoint": null,
|
|
106
|
-
"
|
|
106
|
+
"tasksMapping": {},
|
|
107
107
|
"agentModel": "plan",
|
|
108
108
|
"sessionHistory": [
|
|
109
109
|
{ "timestamp": "<ISO timestamp>", "reason": "planning", "note": "Initial planning session", "agentModel": "plan" }
|
|
@@ -116,8 +116,8 @@ Create `.pan/continue.json` with COMPLETE planning context:
|
|
|
116
116
|
|
|
117
117
|
```json
|
|
118
118
|
{
|
|
119
|
-
"
|
|
120
|
-
"version": "0.
|
|
119
|
+
"xBRIEFInfo": {
|
|
120
|
+
"version": "0.8",
|
|
121
121
|
"created": "<ISO timestamp>"
|
|
122
122
|
},
|
|
123
123
|
"plan": {
|
|
@@ -167,9 +167,9 @@ Create `.pan/continue.json` with COMPLETE planning context:
|
|
|
167
167
|
}
|
|
168
168
|
```
|
|
169
169
|
|
|
170
|
-
**CRITICAL
|
|
170
|
+
**CRITICAL xBRIEF Structure Rules:**
|
|
171
171
|
|
|
172
|
-
1. **Acceptance criteria MUST be subItems, NEVER top-level items.** Each AC is nested under its parent task/requirement as a `subItems` entry. Top-level items with `kind: "acceptance_criterion"` will fail
|
|
172
|
+
1. **Acceptance criteria MUST be subItems, NEVER top-level items.** Each AC is nested under its parent task/requirement as a `subItems` entry. Top-level items with `kind: "acceptance_criterion"` will fail xBRIEF Studio validation.
|
|
173
173
|
|
|
174
174
|
2. **Hierarchical IDs required.** SubItem IDs must use dot-notation from the parent: `parent-id.ac-name`. Example: `work-prompt-ac.injects-ac-per-task`. The parent prefix is mandatory.
|
|
175
175
|
|
|
@@ -183,17 +183,17 @@ Create `.pan/continue.json` with COMPLETE planning context:
|
|
|
183
183
|
- Set `edges` to capture blocking relationships between items
|
|
184
184
|
- `difficulty`: trivial (typo/config), simple (1 file), medium (2-3 files), complex (multi-system)
|
|
185
185
|
- 10-40 items for a typical feature; more for large refactors
|
|
186
|
-
- SubItems (acceptance criteria) are NOT converted to
|
|
186
|
+
- SubItems (acceptance criteria) are NOT converted to xBRIEF tasks — they're verification checklists
|
|
187
187
|
|
|
188
188
|
**After writing the JSON file:**
|
|
189
189
|
```bash
|
|
190
|
-
# Materialize
|
|
190
|
+
# Materialize xBRIEF tasks and mark the workspace spec proposed
|
|
191
191
|
pan plan finalize
|
|
192
192
|
```
|
|
193
193
|
|
|
194
194
|
**Cloister hand-off:** When `pan plan finalize` runs, it automatically:
|
|
195
195
|
1. Reads `.pan/spec.vbrief.json` from the workspace
|
|
196
|
-
2. Validates the
|
|
196
|
+
2. Validates the xBRIEF tasks already stored in `plan.items[]`
|
|
197
197
|
3. Preserves dependency relationships from `edges` (blocking order)
|
|
198
198
|
4. Includes acceptance criteria in task descriptions
|
|
199
199
|
5. Marks `plan.status` as `proposed` so the dashboard shows Done
|
|
@@ -230,7 +230,7 @@ gh issue comment <number> --body "## Planning Complete
|
|
|
230
230
|
**Planned by:** Claude Opus 4.6
|
|
231
231
|
**Workspace:** workspaces/feature-<issue-id>/
|
|
232
232
|
|
|
233
|
-
###
|
|
233
|
+
### xBRIEF tasks: <N> items in .pan/spec.vbrief.json
|
|
234
234
|
### Next: /work-issue <ISSUE-ID>"
|
|
235
235
|
```
|
|
236
236
|
|