@overdeck/desktop 0.45.22 → 0.45.24
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 +2 -0
- package/package.json +1 -1
- package/server/{acceptance-criteria-BH7ac_1G.js → acceptance-criteria-DDCnXF58.js} +5 -5
- package/server/{advancing-selfheal-cSvXNZLZ.js → advancing-selfheal-BVwW4qRn.js} +6 -6
- package/server/{agent-gc-Dj2gncak.js → agent-gc-CHcnvonI.js} +4 -4
- package/server/agent-state-Bc3tzUC8.js +3 -0
- package/server/{agent-state-service-DistflNn.js → agent-state-service-BsgWxZuB.js} +5 -5
- package/server/{agent-state-service-CsQ07Pxe.js → agent-state-service-D5UGKIJL.js} +1 -1
- package/server/{agents-DXdHmRTC.js → agents-EbI0zCJl.js} +4 -4
- package/server/agents-wi9NWzs2.js +3 -0
- package/server/{archive-planning-Cp_DC1j-.js → archive-planning-BZDgzoEj.js} +1 -1
- package/server/{archive-planning-BvDuWNMo.js → archive-planning-Du25Jtst.js} +30 -6
- package/server/{artifact-index-jobs-CDBFL4OU.js → artifact-index-jobs-CbEDfCDu.js} +2 -2
- package/server/assemble-J2ZZ2C15.js +339 -0
- package/server/{backlog-auto-trigger-DmA1IbYf.js → backlog-auto-trigger-2R2jog7n.js} +3 -3
- package/server/{behavior-CGj16clS.js → behavior-B3exJ42O.js} +2 -2
- package/server/{briefing-freshness-C12WgkaB.js → briefing-freshness-D1wzUIWv.js} +2 -2
- package/server/{build-info-BRpqQvNd.js → build-info-CZk_TITh.js} +1 -1
- package/server/{build-info-NU3KbXYw.js → build-info-Ie_D0_BT.js} +3 -3
- package/server/{checkpoint-manager-CTPjAmtH.js → checkpoint-manager-BI1Wxoku.js} +2 -2
- package/server/{checkpoint-manager-rOgT98WY.js → checkpoint-manager-DwbQoqrC.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-B5jFNi2G.js → checkpoints-BJIs5QIA.js} +1 -1
- package/server/{checkpoints-BJum14fs.js → checkpoints-CQB1h765.js} +2 -2
- package/server/{claude-hooks-provision-BhwWK-TQ.js → claude-hooks-provision-8Ngo8TpT.js} +1 -1
- package/server/{claude-hooks-provision-D7p5WcKZ.js → claude-hooks-provision-D8GXF3_s.js} +2 -2
- package/server/{claude-permissions-nSFKH78M.js → claude-permissions-DNWEVV6z.js} +2 -2
- package/server/{claude-settings-overlay-BI_UIke0.js → claude-settings-overlay-CEdaqpWI.js} +2 -2
- package/server/{claude-settings-overlay-DHBwjS1X.js → claude-settings-overlay-DWy-Bb4Y.js} +1 -1
- package/server/cli-B86rejVV.js +3 -0
- package/server/{cli-CbKNkFE5.js → cli-RoOx5DUf.js} +9 -9
- package/server/{cliproxy-Brf_5MuG.js → cliproxy-C8a1vtTU.js} +2 -2
- package/server/{cliproxy-bONZDBbC.js → cliproxy-fHfIeiGd.js} +1 -1
- package/server/{close-issue-CxReRxIc.js → close-issue-DoOifFIK.js} +5 -5
- package/server/{closed-issue-reaper-CQ3kqha7.js → closed-issue-reaper-Bk3SU4RC.js} +9 -9
- package/server/{closed-issue-reaper-DXP2Xyv3.js → closed-issue-reaper-CktPXo8m.js} +1 -1
- package/server/{codex-CbmztVcc.js → codex-BZXGhUVB.js} +27 -8
- package/server/codex-GcHuUF-k.js +3 -0
- package/server/{codex-parser-jl8AeAmB.js → codex-parser-CFZ1_1Jl.js} +2 -2
- package/server/{config-q4Gvd8dq.js → config-BZ0sHTju.js} +2 -2
- package/server/{config-DeTsoZdR.js → config-CKxYiCmX.js} +2 -2
- package/server/{config-BJKocXKd.js → config-DzV30TOm.js} +1 -1
- package/server/{config-yaml-ig8Nwtiw.js → config-yaml-DySPNmKN.js} +77 -194
- package/server/{conflict-gate-CFqPVxEg.js → conflict-gate-BaCVrH-N.js} +3 -3
- package/server/{conflict-gate-CHU9K1vU.js → conflict-gate-BhAY7TUd.js} +1 -1
- package/server/context-layers-BrPmE__h.js +4 -0
- package/server/context-layers-igZ4FI4_.js +37 -0
- package/server/{control-settings-D_odMIaC.js → control-settings-BQp7_4uD.js} +4 -4
- package/server/{conversation-compaction-B6YSRLda.js → conversation-compaction-CgrR8YYp.js} +8 -8
- package/server/{conversation-compaction-CN4-5YYt.js → conversation-compaction-eQB5CkOe.js} +1 -1
- package/server/{conversation-service-Dq33SYEj.js → conversation-service-BLd3MYsG.js} +1 -1
- package/server/{conversation-service-C3avRVEr.js → conversation-service-DPJ71F33.js} +329 -19
- package/server/{conversations-bYpM9-kZ.js → conversations-6AfUfbwc.js} +5 -5
- package/server/{conversations-H9if0bCQ.js → conversations-CAsJF9kh.js} +1 -1
- package/server/{cost-Codk1pc2.js → cost-B2ddP6wq.js} +18 -2
- package/server/{cost-wH46-WsJ.js → cost-R-m6Yi-W.js} +3 -3
- package/server/{cost-sync-D_cre6WM.js → cost-sync-BsN6ER0n.js} +3 -3
- package/server/{dag-CJpgf9A3.js → dag-B1ucnjDU.js} +9 -9
- package/server/{dangerous-git-ops-D6AF-Hg_.js → dangerous-git-ops-BXqeWVSf.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/{deacon-CkT_kznS.js → deacon-CU_cAYSR.js} +406 -607
- package/server/{deacon-B8HbQdqU.js → deacon-kiQrb4ZT.js} +3 -3
- package/server/{deacon-nudge-log-D6K9K-rE.js → deacon-nudge-log-6wVqAaqz.js} +3 -3
- package/server/{deacon-swarm-BryRr6AO.js → deacon-swarm-BXZZ1Z2-.js} +17 -17
- package/server/deacon-swarm-C-GwfjJy.js +2 -0
- package/server/deacon.js +8 -8
- package/server/{deploy-patrol-1IrZxicY.js → deploy-patrol-AiFoP8dw.js} +136 -19
- package/server/{deploy-window-wDf4UgHt.js → deploy-window-C3F-tihF.js} +77 -10
- package/server/{deploy-window-7ZYHh7Zp.js → deploy-window-DkZraDyj.js} +1 -1
- package/server/{dev-supervisor-C7p9kEpc.js → dev-supervisor-bcOWqdQE.js} +2 -2
- package/server/{devcontainer-renderer-CNmQy0pL.js → devcontainer-renderer-_d6XhyND.js} +3 -3
- package/server/dist-Bzy0y69j.js +3 -0
- package/server/{dist-D-Ed5yVw.js → dist-Cb_0uvpS.js} +1 -1
- package/server/{docker-BCZ89M9X.js → docker-DcMTFTUC.js} +2 -2
- package/server/{dod-DbJLYcHv.js → dod-C6n9RV3G.js} +1 -1
- package/server/{ensure-devcontainer-Cs6W9Yzj.js → ensure-devcontainer-BZgOhRo7.js} +1 -1
- package/server/{ensure-devcontainer-V5JWaAva.js → ensure-devcontainer-DNi-ono3.js} +4 -4
- package/server/{esm-shims-dTeNdq7X.js → esm-shims-OSHAYaS1.js} +1 -1
- package/server/{event-store-TnWdydfB.js → event-store-CQL6NeqB.js} +3 -3
- package/server/{event-store-CpBGsO6_.js → event-store-EV2cMiXj.js} +1 -1
- package/server/{events-Dsuv6qyB.js → events-BTdrdEq8.js} +1 -1
- package/server/{events-DSUdR-04.js → events-DTfAe4My.js} +3 -3
- package/server/{factory-BMrK4TrE.js → factory-CFibJuaw.js} +50 -13
- package/server/{feature-registry-population-B-CI9hgE.js → feature-registry-population-DKZFMbFt.js} +4 -4
- package/server/{feature-registry-storage-B972ph_A.js → feature-registry-storage-BdPuLcBX.js} +2 -2
- package/server/{features-Bc-Bmiye.js → features-ez2271oH.js} +2 -2
- package/server/{feedback-target-DZ-iAnAa.js → feedback-target-7mqqwrX6.js} +7 -7
- package/server/{feedback-target-DS6NUuSs.js → feedback-target-CoFDHiM8.js} +1 -1
- package/server/{feedback-writer-BXP6g75N.js → feedback-writer-CY5L1lB7.js} +6 -5
- package/server/{feedback-writer-Bx5z11mF.js → feedback-writer-D3a22RCd.js} +1 -1
- package/server/flywheel-DHrgCphM.js +1084 -0
- package/server/flywheel-DzGtWnJ1.js +477 -0
- package/server/flywheel-SVF02Jpq.js +2 -0
- package/server/{flywheel-merge-order-CTgHeg-W.js → flywheel-merge-order-UU0tiUld.js} +10 -9
- package/server/{flywheel-merge-order-CNKAY489.js → flywheel-merge-order-UUcsCDb6.js} +1 -1
- package/server/{forge-B1S_KZv4.js → forge-CNFnyqps.js} +2 -2
- package/server/forge-DXnS_YFH.js +2 -0
- package/server/{from-DpwQ-sc3.js → from-kNxT0bZC.js} +1 -1
- package/server/{fts-db-DmAcuCkV.js → fts-db-CE46vDkZ.js} +2 -2
- package/server/{fts-operations-7d_RkmWp.js → fts-operations-CqY6zl-i.js} +2 -2
- package/server/{git-utils-Cc3FHDKd.js → git-utils-CRw2zLPC.js} +68 -3
- package/server/git-utils-D0_yhCgF.js +3 -0
- package/server/{github-app-CDPtGF7J.js → github-app-C3QrAUd0.js} +27 -8
- package/server/{github-app-CU14oYzP.js → github-app-ClZ2lk8D.js} +1 -1
- package/server/{github-client-XjTJbBm7.js → github-client-BnIsSrEN.js} +2 -2
- package/server/{github-client-CwBZZ3t7.js → github-client-DfQYVUaw.js} +1 -1
- package/server/{github-pr-lookup-CFGeVhqv.js → github-pr-lookup-D16NGsSO.js} +2 -2
- package/server/{harness-binary-B2CTcD84.js → harness-binary-DPUi-Pv8.js} +32 -6
- package/server/{harness-resolve-D5FVQTmy.js → harness-resolve-3lNZkyT4.js} +18 -9
- package/server/{health-events-DREeevle.js → health-events-BBcTYQKU.js} +2 -2
- package/server/{health-events-C1whmd58.js → health-events-BDOHby5Q.js} +1 -1
- package/server/{hooks-yxRsjk-z.js → hooks-CKZgXlJb.js} +2 -2
- package/server/{hooks-B-HItBiS.js → hooks-DPVX1rwQ.js} +1 -1
- package/server/{hume-Dz_OymXE.js → hume-Cz8igP9E.js} +2 -2
- package/server/hume-ccTf4wTX.js +3 -0
- package/server/{idle-stack-reaper-DrCv0OAG.js → idle-stack-reaper-CuLF0j2H.js} +1 -1
- package/server/{idle-stack-reaper-Yf34xXxY.js → idle-stack-reaper-DDIRwxUY.js} +2 -2
- package/server/{in-flight-guard-BoWm66Kh.js → in-flight-guard-CAAkqPLu.js} +2 -2
- package/server/{infra-D4iNWMA5.js → infra-BEqFxlJc.js} +14 -4
- package/server/{injection-D7T75Pye.js → injection-C8aiVJrF.js} +191 -183
- package/server/{injection-BVNa4MQW.js → injection-CPUIqNhI.js} +1 -1
- package/server/{inspect-agent-BXCgNeZ4.js → inspect-agent-BLuJ1AkT.js} +137 -81
- package/server/inspect-agent-Brtz0URj.js +2 -0
- package/server/{internal-token-C9DdEOKY.js → internal-token-BrcU6qfe.js} +1 -1
- package/server/{internal-token-CXsfxslp.js → internal-token-s0-oKybJ.js} +2 -2
- package/server/{io-DQR9PMgS.js → io-C9kF1wtJ.js} +160 -184
- package/server/{issue-closed-DtmJM0D0.js → issue-closed-CDJk4pIp.js} +7 -7
- package/server/{issue-lifecycle-8PSS9Anq.js → issue-lifecycle-B8sZHVHh.js} +1 -1
- package/server/{issue-lifecycle-CeyW_HoD.js → issue-lifecycle-ojZAzDBP.js} +22 -22
- package/server/{issue-service-singleton-DBZabEl7.js → issue-service-singleton-BvJ09SaR.js} +1 -1
- package/server/{issue-service-singleton-D_RVYBuL.js → issue-service-singleton-Yx5DdmVJ.js} +8 -8
- package/server/{issues-pDW9VUNz.js → issues-BMmP_77e.js} +2 -2
- package/server/{jsonl-parser-C3HVNR5d.js → jsonl-parser-BXSlHwEh.js} +3 -3
- package/server/{label-cleanup-DPwiZlWo.js → label-cleanup-B0UJwnv5.js} +3 -3
- package/server/{label-reconciler-Df1ZduPH.js → label-reconciler-B4iOAjlC.js} +4 -4
- package/server/{launcher-generator-COgR2By1.js → launcher-generator-BBWG_SiS.js} +105 -10
- package/server/{lifecycle-io-taIb0PoH.js → lifecycle-io-BREGpnLk.js} +37 -37
- package/server/lifecycle-io-DPo7x11I.js +3 -0
- package/server/{lifecycle-CtPDcZ9u.js → lifecycle-xmBfK2GJ.js} +6 -6
- package/server/lifecycle-yPd___5E.js +121 -0
- package/server/{linear-client-DsFkIxee.js → linear-client-BsuUvkdA.js} +2 -2
- package/server/{linear-client-YwZMDIwQ.js → linear-client-CTskEeT_.js} +1 -1
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-BwsyNRJV.js → merge-B1DiziGU.js} +1 -1
- package/server/{merge-C1t-bspg.js → merge-CefQNAnq.js} +3 -3
- package/server/{merge-agent-DDiIjzk-.js → merge-agent-4WOWlSYA.js} +28 -28
- package/server/{merge-agent-B-SnXOoc.js → merge-agent-CKkgIBPB.js} +1 -1
- package/server/{merge-batch-Byt-QnEl.js → merge-batch-ClFn2T-y.js} +1 -1
- package/server/merge-ops-CR44oU9-.js +2 -0
- package/server/{merge-rebase-Cm6fXaZN.js → merge-rebase-BfaTyXsw.js} +2 -2
- package/server/merge-set-DJ8-UErs.js +83 -0
- package/server/{merge-set-6LEglm6o.js → merge-set-bUqbm3yc.js} +1 -1
- package/server/{merge-sync-B95_4in_.js → merge-sync-BJYeOODr.js} +1 -1
- package/server/{merge-sync-Do8_q32h.js → merge-sync-VPV28g0g.js} +2 -2
- package/server/{merge-train-CKana8EH.js → merge-train-CHopycP0.js} +3 -3
- package/server/{merge-train-deps-BgmqwIfA.js → merge-train-deps-D1cOZzy2.js} +4 -4
- package/server/{merge-verification-CqnUzGEK.js → merge-verification-BkaOqPsw.js} +4 -4
- package/server/{multipart-parser-tdOQDJ3o.js → multipart-parser-duPAfSBw.js} +2 -2
- package/server/{no-resume-mode-BWOSZjWd.js → no-resume-mode-Nw29vaFb.js} +11 -8
- package/server/node_modules/.package-lock.json +8 -8
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
- package/server/node_modules/undici/README.md +5 -0
- package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
- package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
- package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
- package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
- package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
- package/server/node_modules/undici/docs/docs/index.md +5 -0
- package/server/node_modules/undici/lib/core/request.js +1 -1
- package/server/node_modules/undici/lib/core/util.js +6 -1
- package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
- package/server/node_modules/undici/lib/dispatcher/client-h1.js +31 -6
- package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
- package/server/node_modules/undici/lib/handler/cache-handler.js +93 -5
- package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
- package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
- package/server/node_modules/undici/lib/handler/retry-handler.js +6 -4
- package/server/node_modules/undici/lib/interceptor/cache.js +21 -4
- package/server/node_modules/undici/lib/interceptor/decompress.js +4 -0
- package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
- package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
- package/server/node_modules/undici/lib/util/cache.js +49 -7
- package/server/node_modules/undici/lib/web/fetch/body.js +2 -1
- package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
- package/server/node_modules/undici/package.json +2 -2
- package/server/node_modules/undici/types/client.d.ts +2 -2
- package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
- package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
- package/server/{orphan-proposed-reconciler-xklgvNA7.js → orphan-proposed-reconciler-BvKkWMJQ.js} +15 -13
- package/server/{orphan-proposed-reconciler-DSvsJ5M7.js → orphan-proposed-reconciler-CTSGcK8p.js} +1 -1
- package/server/package-lock.json +9 -9
- package/server/package.json +1 -1
- package/server/{pan-dir-DOcf6ug3.js → pan-dir-B0c3w0Ya.js} +78 -58
- package/server/{paths-DooHpt9p.js → paths-D-xWGHdh.js} +2 -2
- package/server/{pickup-CaskQ7j6.js → pickup-DUCLWrJY.js} +17 -16
- package/server/{pipeline-membership-1LGRjo-k.js → pipeline-membership-mY3GprlK.js} +186 -67
- package/server/{pipeline-notifier-CZsrU_nj.js → pipeline-notifier-BJr8gQX6.js} +1 -1
- package/server/{pipeline-notifier-B6FVsYF9.js → pipeline-notifier-BXkJzDC4.js} +2 -2
- package/server/{project-pipelines-CtNG_rvs.js → project-pipelines-C0MWUeCU.js} +2 -2
- package/server/project-repos-B6GycDh9.js +94 -0
- package/server/project-repos-DXKQsc_m.js +3 -0
- package/server/projects-vjjcmiN8.js +3 -0
- package/server/{prompts-EvhMeeHG.js → prompts-DxzFXuLl.js} +2 -2
- package/server/{providers-BDDPULlp.js → providers-qQAwGQDW.js} +7 -7
- package/server/{providers-DNSQqy2V.js → providers-u4Ga0jOr.js} +1 -1
- package/server/public/assets/{chunk-BO2N2NFS-sym_ufXe.js → chunk-BO2N2NFS-BamJdinX.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-CQJPBNBu.js → diagram-OG6HWLK6-DfOB8-w4.js} +1 -1
- package/server/public/assets/{dist-DukGS2YZ.js → dist-ByIuzMQW.js} +3 -3
- package/server/public/assets/{dist-Bio7THQU.js → dist-D7zYSEA6.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-D4lWwte3.js → ganttDiagram-6RSMTGT7-EdmRyXL3.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-CaLboCt5.js → highlighted-body-OFNGDK62-MerOfTX8.js} +1 -1
- package/server/public/assets/{index-Bwejq-5s.js → index-CWeMerGO.js} +147 -144
- package/server/public/assets/index-CenuJ3Cw.css +1 -0
- package/server/public/assets/{linear-qUWmMZ-c.js → linear-BBbArIcK.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-C4zYulEm.js → pieDiagram-4H26LBE5-BKIddiJN.js} +1 -1
- package/server/public/assets/{prod-C8VtLuWC.js → prod-B8vYiu52.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-qP04zyZC.js → quadrantDiagram-W4KKPZXB-D6RtoULk.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-eMPTX_cG.js → sankeyDiagram-5OEKKPKP-CLrCedZX.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-Dme1PIt6.js → xychartDiagram-2RQKCTM6-hznR8DYl.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-By_BteaL.js → pull-requests-7N8WKseP.js} +1 -1
- package/server/{pull-requests-8z2N1UOV.js → pull-requests-_lHueOHW.js} +13 -11
- package/server/{queries-ZABd5aXP.js → queries-CjNIf-Ub.js} +1200 -201
- package/server/{rally-i_goYmiA.js → rally-CyWT_lNO.js} +3 -3
- package/server/{rally-api-DqKqIMNR.js → rally-api-C8e_1JRi.js} +2 -2
- package/server/{rally-api-xHazRk0d.js → rally-api-ClOSd-Tt.js} +1 -1
- package/server/{rally-client-COYz1vYR.js → rally-client-lc-nokqr.js} +4 -4
- package/server/{rally-client-CGWEHaPd.js → rally-client-sgtVqzNU.js} +1 -1
- package/server/rally-zhhtXuDP.js +3 -0
- package/server/{reap-terminal-sessions-CaMkFOIH.js → reap-terminal-sessions-7KeHv1R1.js} +1 -1
- package/server/{reap-terminal-sessions-DG9eiMVz.js → reap-terminal-sessions-BtHPo6Xc.js} +1 -1
- package/server/rebuild-stack-CFvcBHsS.js +4 -0
- package/server/{rebuild-stack-JUm0jqYP.js → rebuild-stack-lwtsW0GO.js} +26 -35
- package/server/{reconstruct-cache-wU79aCee.js → reconstruct-cache-C3Ui7ojV.js} +6 -6
- package/server/record-CN0pj4_5.js +3 -0
- package/server/{record-update-D3N6WMFR.js → record-update-bLJxAXH4.js} +1 -1
- package/server/record-update-dE1Aw83j.js +310 -0
- package/server/{recovery-trip-DkzJSej9.js → recovery-trip-BvRWfUXM.js} +2 -2
- package/server/{release-engine-DMINVN8S.js → release-engine-Cx48W7z8.js} +5 -5
- package/server/{release-set-DeUSOEHy.js → release-set-CQfuN9-v.js} +3 -3
- package/server/{remote-b-c5bOce.js → remote-C_2hasl7.js} +3 -3
- package/server/{remote-Dr5kGYSZ.js → remote-ChgimyYa.js} +3 -3
- package/server/{remote-agents-Ct_WOyke.js → remote-agents-By1ige5O.js} +6 -6
- package/server/{remote-agents-D6O_zETW.js → remote-agents-CA3Ihlxj.js} +1 -1
- package/server/{remote-completion-Dca3hAaa.js → remote-completion-fVe9e_3u.js} +12 -12
- package/server/resume-BFv1PGpA.js +3 -0
- package/server/{review-agent-CThvgK2r.js → review-agent-CIGOQYBD.js} +29 -25
- package/server/{review-agent-CCum8sGe.js → review-agent-DNboMyW4.js} +1 -1
- package/server/{review-artifacts-CXywD0F2.js → review-artifacts-nRDPuMxd.js} +5 -5
- package/server/{review-context-OYfKUprb.js → review-context-2uj-YQ8J.js} +70 -26
- package/server/review-status-btEYlaxA.js +3 -0
- package/server/{review-status-enrichment-crNAtIpL.js → review-status-enrichment-Dci-ZwEt.js} +3 -3
- package/server/{review-status-DFRjDFef.js → review-status-kZj_KyCk.js} +77 -28
- package/server/{review-status-sync-DpAMD_WO.js → review-status-sync-BTOpxtTC.js} +10 -5
- package/server/{review-status-sync-D60PJWNL.js → review-status-sync-DSDK3OMy.js} +1 -1
- package/server/{review-verdict-feedback-CpUZl5aE.js → review-verdict-feedback-CCjVA7Uk.js} +6 -6
- package/server/{review-verdict-feedback-JImjut0z.js → review-verdict-feedback-CTd4QMBu.js} +1 -1
- package/server/{rollup-CZ02qgxk.js → rollup-BKQC7jp4.js} +1 -1
- package/server/{rollup-SyuF09e4.js → rollup-FGsKki9R.js} +8 -8
- package/server/{scanner-Br0Z5S6R.js → scanner-CnqEZeDy.js} +45 -14
- package/server/{sequence-io-fxU0DlwW.js → sequence-io-D909zgeH.js} +4 -4
- package/server/{sequencer-agent-B5YC5XVP.js → sequencer-agent-CzkcK6P5.js} +5 -5
- package/server/server.js +2961 -919
- package/server/{service-Bagb90KZ.js → service-CLeAoU6G.js} +55 -54
- package/server/{session-fork-BqQxd-V6.js → session-fork-CHI1XvL9.js} +2 -2
- package/server/{session-history-XdS0JKp3.js → session-history-BT3IvqhC.js} +4 -4
- package/server/settings-66A6uvIA.js +2 -0
- package/server/{settings-BNbocWOg.js → settings-BTMvpNFU.js} +3 -3
- package/server/{settings-uLc6DEYI.js → settings-C0zgxOGf.js} +2 -2
- package/server/{shadow-engineering-D4X_s3fA.js → shadow-engineering-BJfgm-hX.js} +2 -2
- package/server/{shadow-state-C_NkP-sa.js → shadow-state-7a-524T8.js} +2 -2
- package/server/{shadow-state-CbvsN3qG.js → shadow-state-DnDyjujH.js} +1 -1
- package/server/{shadow-utils-CYMRPeRT.js → shadow-utils-Db3oroFG.js} +2 -2
- package/server/{ship-log-__QtAFXG.js → ship-log-D9MlVzYU.js} +1 -1
- package/server/{smart-compaction-jdMkG1vo.js → smart-compaction-CV2ukKND.js} +1 -1
- package/server/{smart-compaction-CLZOWin1.js → smart-compaction-KCYScAU1.js} +7 -7
- package/server/{spawn-planning-session-D5OXo8pT.js → spawn-planning-session-DKpdFyOC.js} +35 -27
- package/server/{spawn-planning-session-8D6mE033.js → spawn-planning-session-qUC2VWu3.js} +1 -1
- package/server/{specialist-completion-CqmduO92.js → specialist-completion-Ky9wCDpb.js} +1 -1
- package/server/{specialist-context-CJ-QjFR-.js → specialist-context-Bn3dCGS2.js} +5 -5
- package/server/{specialist-handoff-logger-Dnjlwt7g.js → specialist-handoff-logger-CMEwYxa2.js} +2 -2
- package/server/{specialist-logs-CQnKzuZs.js → specialist-logs-C5p8G7tx.js} +3 -3
- package/server/{specialists-Bg9v4z3F.js → specialists-CC4r-c2s.js} +1015 -460
- package/server/{specialists-D0gGXMZx.js → specialists-CShuVGWT.js} +1 -1
- package/server/specialists-DM6bWjsi.js +3 -0
- package/server/{specialists-CwZHb5cb.js → specialists-jiuuyVkp.js} +66 -74
- package/server/specs-C8Wsn2XO.js +3 -0
- package/server/{src-BMMoA_ba.js → src-CXmtj0im.js} +6 -6
- package/server/{src-Bqdtd6po.js → src-CdmnTM2m.js} +5 -5
- package/server/{src-k039WVYY.js → src-DtcUOZCq.js} +112 -18
- package/server/stack-health-Bn3o8FBX.js +3 -0
- package/server/{stack-health-C-ifC7b0.js → stack-health-DxSdG9cW.js} +63 -9
- package/server/{stale-task-claims-L7pJkQFL.js → stale-task-claims-KJKxxiiQ.js} +4 -4
- package/server/{staleness-_Tr-GwdA.js → staleness-CT34nwr9.js} +1 -1
- package/server/{staleness-BID1BKdr.js → staleness-DPm7ClwA.js} +15 -3
- package/server/{state-home-CONQvZR0.js → state-home-Cn_Qu8IX.js} +96 -44
- package/server/{state-migrate-BeBW0KXA.js → state-migrate-BGg2ZaOt.js} +12 -3
- package/server/{stuck-remediation-CKnIryGT.js → stuck-remediation-DYuPRYYw.js} +307 -26
- package/server/{stuck-remediation-CsGD5Ksb.js → stuck-remediation-s9_2qfi6.js} +1 -1
- package/server/{substrate-bug-weights-service-CpIZILj9.js → substrate-bug-weights-service-B-FwCs5V.js} +3 -3
- package/server/{summary-fork-bX6ax6X7.js → summary-fork-D1RAk9rJ.js} +78 -12
- package/server/{summary-fork-agEMsPSo.js → summary-fork-DpcxN9tf.js} +2 -2
- package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-Csw5tqfJ.js} +2 -41
- package/server/supervisor/pty-supervisor.js +2 -1
- package/server/supervisor/pty-token-x-ea28Us.js +43 -0
- package/server/supervisor-FTJAIsAK.js +2 -0
- package/server/{supervisor-Ctt4eRYz.js → supervisor-wM4ooB5O.js} +3 -3
- package/server/{swarm-readiness-DdmJVX7y.js → swarm-readiness-DlP_UjHq.js} +4 -4
- package/server/{system-prerequisites-DSXBvffY.js → system-prerequisites-DUDj1YHf.js} +56 -29
- package/server/{teardown-workspace-DDCf5n-a.js → teardown-workspace-DeTTImn-.js} +15 -15
- package/server/{test-agent-queue-BJZ9Nfcc.js → test-agent-queue-MbxX5vqq.js} +7 -7
- package/server/{test-verdict-Cp5tljlJ.js → test-verdict-bWYBtqBg.js} +1 -1
- package/server/{test-verdict-D_-sXIz_.js → test-verdict-gscuksPv.js} +1 -1
- package/server/{tldr-daemon-B8_oT5gx.js → tldr-daemon-BYFkts95.js} +1 -1
- package/server/{tldr-daemon-BQFmmFp0.js → tldr-daemon-C-69c3OI.js} +2 -2
- package/server/tmux-B6z7h_vZ.js +3 -0
- package/server/{tmux-L5LgvGLp.js → tmux-R7N7y-Mh.js} +76 -44
- package/server/{token-BkQLy4yS.js → token-BK6t8BIT.js} +2 -2
- package/server/token-util-DuPuNriz.js +3 -0
- package/server/{token-util-DI8sGlmF.js → token-util-DxXu-vd1.js} +1 -1
- package/server/{tracker-config-DdT-nUAM.js → tracker-config-G6latr8C.js} +2 -2
- package/server/{tracker-utils-DV3h1FYG.js → tracker-utils-B4ylXZQK.js} +1 -1
- package/server/{tracker-utils-CawsPSS2.js → tracker-utils-DHv5pSDT.js} +2 -2
- package/server/{traefik-connect-C6mJckNs.js → traefik-connect-Df2uXPsQ.js} +1 -1
- package/server/{tunnel-IdK1iTHx.js → tunnel-CDVKJpRv.js} +3 -3
- package/server/{tunnel-BIFl98rc.js → tunnel-DGdUkGoZ.js} +1 -1
- package/server/{types-7-GnJn0t.js → types-5M0lupud.js} +1 -1
- package/server/{uat-train-0Ujk8GCv.js → uat-train-B05BWkp-.js} +1 -1
- package/server/{uat-train-j0cPeMSj.js → uat-train-DDSrSoV1.js} +28 -28
- package/server/validate-IfDGkaVR.js +177 -0
- package/server/{validation-DcAgXTQp.js → validation-CC9OPqJZ.js} +1 -1
- package/server/{validation-CabEISJT.js → validation-Dw1pzDzr.js} +259 -9
- package/server/{verification-artifact-Ck1tefmz.js → verification-artifact-B3itKTxu.js} +1 -1
- package/server/{verification-artifact-BuTA1QbL.js → verification-artifact-TVFSz_q1.js} +1 -1
- package/server/{verification-runner-DlJezzef.js → verification-runner-BW4HOKAz.js} +1 -1
- package/server/{verification-runner-FiuAZ-H2.js → verification-runner-CkgX6EtI.js} +174 -124
- package/server/{vtt-parser-BnRsYzcz.js → vtt-parser-DYPbKcIJ.js} +1 -1
- package/server/{work-agent-prompt-DLthEPAq.js → work-agent-prompt-Du8Vh2aJ.js} +13 -13
- package/server/workflows-BQu4RFQ-.js +2 -0
- package/server/{workflows-BZNNYkGC.js → workflows-mbQzh6mQ.js} +39 -77
- package/server/{workspace-3IC-UkAi.js → workspace--8tnhDI0.js} +1 -1
- package/server/{workspace-D9ppycdg.js → workspace-BPUws1-_.js} +3 -3
- package/server/{workspace-config-Bigl_-Lk.js → workspace-config-CIVWZOQr.js} +1 -1
- package/server/{workspace-manager-ClkCIWTe.js → workspace-manager-CBhNdzE4.js} +76 -18
- package/server/workspace-manager-CWT55qeI.js +3 -0
- package/server/{workspace-metadata-BE0efUv_.js → workspace-metadata-BzHnwwX4.js} +1 -1
- package/server/{workspace-metadata-tiSRIWJP.js → workspace-metadata-_WygnyoX.js} +2 -2
- package/server/{workspaces-CFPcL0vl.js → workspaces-Do_9J0LQ.js} +309 -124
- 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 +369 -75
- 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/okf/README.md +11 -3
- package/sync-sources/skills/okf/SKILL.md +12 -1
- package/sync-sources/skills/okf/docs/USAGE.md +15 -0
- package/sync-sources/skills/okf/references/overdeck.md +28 -0
- 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-flywheel/SKILL.md +18 -1
- package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
- package/sync-sources/skills/pan-new-project/SKILL.md +9 -11
- package/sync-sources/skills/pan-orders/SKILL.md +33 -0
- 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 +7 -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/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
- package/server/agent-state-Co5Sy2Fw.js +0 -3
- package/server/agents-DyHKlq1I.js +0 -3
- package/server/cli-BRORS9qY.js +0 -3
- package/server/codex-DNyiQDKW.js +0 -3
- package/server/context-layers-15gDOk20.js +0 -165
- package/server/context-layers-DlQKkHH2.js +0 -4
- package/server/deacon-swarm-CV54eNmU.js +0 -2
- package/server/dist-j64RzSrQ.js +0 -3
- package/server/flywheel-6WHU4O7A.js +0 -207
- package/server/flywheel-COR0mbRI.js +0 -522
- package/server/flywheel-Ctr5uuvo.js +0 -2
- package/server/forge-B0_opi-V.js +0 -2
- package/server/git-utils-CsKGnzFA.js +0 -3
- package/server/hume-BmhvfVbV.js +0 -3
- package/server/inspect-agent-Dq0z1k3H.js +0 -2
- package/server/layers-Cp1To4L8.js +0 -93
- package/server/lifecycle-io-DmY2qwCn.js +0 -3
- package/server/merge-blockers-BYjeXrVN.js +0 -41
- package/server/merge-ops-DwWCkSgo.js +0 -2
- package/server/merge-set-DiISXcC-.js +0 -139
- package/server/projects-BKkwpH6q.js +0 -3
- package/server/public/assets/index-Bdc4V9ba.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-B5v_r7cI.js +0 -1
- package/server/rally-OSJXdiHK.js +0 -3
- package/server/rebuild-stack-CKjJAI8L.js +0 -3
- package/server/record-rwK-nKv_.js +0 -3
- package/server/record-update-Crz74r-6.js +0 -168
- package/server/resume-wZZsWtzz.js +0 -3
- package/server/review-status-Bnh-rdkY.js +0 -3
- package/server/settings-BlUsVaUc.js +0 -2
- package/server/specialists-Dqe6_HE5.js +0 -3
- package/server/specs-BhOKBzqk.js +0 -3
- package/server/stack-health-Bd06frFn.js +0 -3
- package/server/supervisor-COVHrBTg.js +0 -2
- package/server/tmux-BAvtac_u.js +0 -3
- package/server/token-util-BArZLN6w.js +0 -3
- package/server/workflows-C4mR0Reb.js +0 -2
- package/server/workspace-manager-B1WOfKvB.js +0 -3
|
@@ -21,9 +21,11 @@ INPUT=$(cat 2>/dev/null || echo '{}')
|
|
|
21
21
|
|
|
22
22
|
CLAUDE_SESSION_ID=""
|
|
23
23
|
MODEL=""
|
|
24
|
+
SOURCE=""
|
|
24
25
|
if command -v jq >/dev/null 2>&1; then
|
|
25
26
|
CLAUDE_SESSION_ID=$(echo "$INPUT" | jq -r '.session_id // ""' 2>/dev/null)
|
|
26
27
|
MODEL=$(echo "$INPUT" | jq -r '.model // .model_name // ""' 2>/dev/null)
|
|
28
|
+
SOURCE=$(echo "$INPUT" | jq -r '.source // ""' 2>/dev/null)
|
|
27
29
|
fi
|
|
28
30
|
[ -z "$MODEL" ] && MODEL="${ANTHROPIC_MODEL:-}"
|
|
29
31
|
|
|
@@ -77,4 +79,9 @@ if command -v jq >/dev/null 2>&1; then
|
|
|
77
79
|
fi
|
|
78
80
|
fi
|
|
79
81
|
|
|
82
|
+
if [ "$SOURCE" = "compact" ] && command -v jq >/dev/null 2>&1; then
|
|
83
|
+
jq -n --arg context "The preceding compaction summary may quote harness-only instructions requiring text-only output or forbidding tools. Those instructions applied only to Claude Code's summarization turn and are no longer active. Resume the latest actual user task and use tools normally." \
|
|
84
|
+
'{hookSpecificOutput: {hookEventName: "SessionStart", additionalContext: $context}}'
|
|
85
|
+
fi
|
|
86
|
+
|
|
80
87
|
exit 0
|
|
@@ -356,7 +356,7 @@ $OUTPUT
|
|
|
356
356
|
</terminal_output>
|
|
357
357
|
|
|
358
358
|
Decide FORGOT_COMPLETION if ANY of these are true AND the transcript does NOT show a 'pan work done' Bash invocation in the tail:
|
|
359
|
-
- the agent wrote a summary/wrap-up message ('all tests pass', 'implementation complete', 'all
|
|
359
|
+
- the agent wrote a summary/wrap-up message ('all tests pass', 'implementation complete', 'all xBRIEF tasks closed', 'ready for review', etc.) and then stopped
|
|
360
360
|
- the agent committed + pushed and the last message is a status summary instead of a pan-work-done command
|
|
361
361
|
|
|
362
362
|
Decide STILL_WORKING only if the tail clearly shows an in-progress task (mid-edit, running tests, reading files) with no wrap-up summary.
|
|
@@ -3,7 +3,7 @@ scope: universal
|
|
|
3
3
|
---
|
|
4
4
|
### Push every managed-work item before completing it
|
|
5
5
|
|
|
6
|
-
For an Overdeck-managed work issue, commit exactly one
|
|
6
|
+
For an Overdeck-managed work issue, commit exactly one xBRIEF item at a time and immediately
|
|
7
7
|
push the feature branch before running `pan task done`. This invariant applies on
|
|
8
8
|
local and remote machines and overrides generic project Git profiles; an unpushed item
|
|
9
9
|
can be lost before Overdeck advances durable pipeline state.
|
|
@@ -16,7 +16,7 @@ Author every plan so it can be executed without re-research or judgment calls:
|
|
|
16
16
|
paths, and before/after code. The downstream executor is a model, not a senior
|
|
17
17
|
engineer who can fill gaps from taste and tribal knowledge — so the *how* must be
|
|
18
18
|
on the page. Specifying the implementation is required, not scope-creep. (`pan
|
|
19
|
-
plan` then mechanically lowers the PRD into
|
|
19
|
+
plan` then mechanically lowers the PRD into an xBRIEF; the richer the PRD, the
|
|
20
20
|
less the planner has to invent.)
|
|
21
21
|
|
|
22
22
|
- **Glossary first.** Define every term of art the document uses before using it.
|
|
@@ -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
|
|
|
@@ -15,14 +15,21 @@ Embedding commands also need Ollama or an API key for the selected provider.
|
|
|
15
15
|
|
|
16
16
|
Overdeck users receive this skill through `pan sync`.
|
|
17
17
|
|
|
18
|
-
Standalone Claude Code users
|
|
18
|
+
Standalone Claude Code users install it from the mirror repo, [eltmon/okf](https://github.com/eltmon/okf) — symlink so `git pull` updates it in place:
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
+
git clone https://github.com/eltmon/okf.git ~/Projects/okf
|
|
21
22
|
mkdir -p ~/.claude/skills
|
|
22
|
-
|
|
23
|
+
ln -s ~/Projects/okf ~/.claude/skills/okf
|
|
23
24
|
```
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
Or copy-install instead of symlinking:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
cp -R ~/Projects/okf ~/.claude/skills/okf
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The skill remains portable. Its core scripts do not import Overdeck and require only git, gh, Python 3, and PyYAML for non-embedding workflows.
|
|
26
33
|
|
|
27
34
|
## 5-Minute Quickstart
|
|
28
35
|
|
|
@@ -61,6 +68,7 @@ The copied skill remains portable. Its core scripts do not import Overdeck and r
|
|
|
61
68
|
| Command | Summary |
|
|
62
69
|
| --- | --- |
|
|
63
70
|
| `/okf init` | Create or connect the knowledge bundle and pointer file. |
|
|
71
|
+
| `/okf open [--no-install] [--no-browser]` | Open the configured bundle in the local visual knowledge viewer. |
|
|
64
72
|
| `/okf author "<topic>"` | Write or update one concept for one idea. |
|
|
65
73
|
| `/okf convert <path>` | Convert existing docs into OKF without destructive edits. |
|
|
66
74
|
| `/okf sync [--topic "<focus>"]` | Update concepts from code or documentation diffs. |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: okf
|
|
3
|
-
description: Maintain a project knowledge wiki in Open Knowledge Format with /okf init, author, convert, sync, study, retro, extract, validate, lint, and embed.
|
|
3
|
+
description: Maintain a project knowledge wiki in Open Knowledge Format with /okf init, open, author, convert, sync, study, retro, extract, validate, lint, and embed.
|
|
4
4
|
triggers:
|
|
5
5
|
- /okf
|
|
6
6
|
- okf
|
|
@@ -26,6 +26,7 @@ The bundle is the source of truth. Keep changes small, cited, and PR-gated. Dete
|
|
|
26
26
|
| Command | Purpose | Primary references |
|
|
27
27
|
| --- | --- | --- |
|
|
28
28
|
| `/okf init` | Create or connect a project knowledge bundle. | `references/workflow.md`, `references/spec.md` |
|
|
29
|
+
| `/okf open [--no-install] [--no-browser]` | Open the configured bundle in the local visual knowledge viewer. | `references/overdeck.md` |
|
|
29
30
|
| `/okf author "<topic>"` | Write or refresh one focused concept. | `templates/concept.md`, `references/taxonomy.md`, `references/model-bridges.md` |
|
|
30
31
|
| `/okf convert <path>` | Convert existing docs into OKF concepts without deleting originals. | `references/conversion.md` |
|
|
31
32
|
| `/okf sync [--topic "<focus>"]` | Update concepts from code or documentation changes. | `references/workflow.md`, `references/model-bridges.md` |
|
|
@@ -80,6 +81,16 @@ Create a knowledge bundle and pointer file.
|
|
|
80
81
|
- Add exactly one discovery line to `CLAUDE.md` or `AGENTS.md`, preserving it without duplication on repeated init.
|
|
81
82
|
- Future resolution order is host project config `knowledge_repo`, then `.okf.yml`, then a clear error telling the user to run `/okf init`.
|
|
82
83
|
|
|
84
|
+
## `/okf open [--no-install] [--no-browser]`
|
|
85
|
+
|
|
86
|
+
Open the configured bundle in the local visual knowledge viewer.
|
|
87
|
+
|
|
88
|
+
- Resolve the bundle from `.okf.yml`; under Overdeck, the canonical resolver also honors the project's `knowledge_repo` setting.
|
|
89
|
+
- When `pan` is available, delegate to `pan knowledge open` and pass through `--no-install` and `--no-browser`.
|
|
90
|
+
- By default, an explicit open request progressively installs the separately licensed GPL-3.0 `@inkeep/open-knowledge` program. `--no-install` requires an existing `ok` binary instead.
|
|
91
|
+
- The viewer is an arm's-length subprocess served over HTTP. Overdeck launches it against a disposable snapshot, reuses healthy lock-reported processes, and never lets viewer edits touch the canonical PR-gated bundle.
|
|
92
|
+
- Never import, require, or bundle `@inkeep/open-knowledge` into the portable OKF scripts or Overdeck packages.
|
|
93
|
+
|
|
83
94
|
## `/okf author "<topic>"`
|
|
84
95
|
|
|
85
96
|
Write or update one concept for one idea.
|
|
@@ -16,6 +16,21 @@ Create a knowledge bundle.
|
|
|
16
16
|
- `--dir <path>`: use any external directory.
|
|
17
17
|
- `--local <subdir>`: create an in-repo bundle.
|
|
18
18
|
|
|
19
|
+
## `/okf open [--no-install] [--no-browser]`
|
|
20
|
+
|
|
21
|
+
Open the configured bundle in the local visual viewer.
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
/okf open
|
|
25
|
+
/okf open --no-install
|
|
26
|
+
/okf open --no-browser
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
- Resolves the bundle from `.okf.yml` (or Overdeck's `knowledge_repo` setting).
|
|
30
|
+
- Delegates to `pan knowledge open` when Overdeck is available.
|
|
31
|
+
- Progressively installs the separate GPL-3.0 `ok` program only after the explicit open request; `--no-install` opts out.
|
|
32
|
+
- `--no-browser` starts or reuses the viewer and prints its URL without launching a browser.
|
|
33
|
+
|
|
19
34
|
## `/okf author "<topic>"`
|
|
20
35
|
|
|
21
36
|
Write or update one concept.
|
|
@@ -11,6 +11,34 @@ Overdeck is available only when:
|
|
|
11
11
|
|
|
12
12
|
Detection is by command execution, never by Python or TypeScript imports.
|
|
13
13
|
|
|
14
|
+
## OpenKnowledge Viewer Runtime
|
|
15
|
+
|
|
16
|
+
`pan knowledge open` and the dashboard Knowledge page use an assisted Node.js 24 resolution flow for the OpenKnowledge viewer. Overdeck first reuses a working `ok`, then checks `OVERDECK_OPEN_KNOWLEDGE_NODE`, then searches installed runtimes under nvm, fnm, Volta, mise, and asdf. If a download is required, the operator sees the exact setup steps and must consent before they run; shell profiles and the ambient/default Node.js version remain unchanged. A fresh nvm bootstrap suppresses profile edits and restores or removes the `default` alias to match its pre-setup state.
|
|
17
|
+
|
|
18
|
+
Set `OVERDECK_OPEN_KNOWLEDGE_NODE=/absolute/path/to/node` to pin the viewer to a specific Node.js 24+ binary. Overdeck rejects relative overrides and resolves the absolute path before writing the shim, so the override affects only the separate `ok` subprocess and cannot drift with `PATH`.
|
|
19
|
+
|
|
20
|
+
## Optional OpenKnowledge MCP Registration
|
|
21
|
+
|
|
22
|
+
The dashboard viewer and `pan knowledge open` never register an MCP server. Their unattended initialization always uses `ok init --no-mcp --no-skills`, so opening the viewer cannot change an editor or agent configuration.
|
|
23
|
+
|
|
24
|
+
MCP registration is a separate, explicit operator action. From the resolved knowledge-bundle root, run:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
ok init --mcp --no-skills --scope user
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Use `--scope project` for repository-local configuration, or `--scope both` for both locations. OpenKnowledge v0.34 writes the supported native formats:
|
|
31
|
+
|
|
32
|
+
| Client | User scope | Project scope |
|
|
33
|
+
| --- | --- | --- |
|
|
34
|
+
| Claude Code | `~/.claude.json` | `.mcp.json` |
|
|
35
|
+
| Codex | `~/.codex/config.toml` | `.codex/config.toml` |
|
|
36
|
+
| Cursor | `~/.cursor/mcp.json` | `.cursor/mcp.json` |
|
|
37
|
+
|
|
38
|
+
OpenKnowledge registers only clients it detects. Start or install the intended client, then rerun the explicit command if its config root was previously absent. Review the reported paths before restarting the client; registration is opt-in and Overdeck never performs it automatically.
|
|
39
|
+
|
|
40
|
+
`/okf init` and `ok init` are different commands: `/okf init` creates or connects an OKF knowledge bundle, while the upstream `ok init` command scaffolds OpenKnowledge's local `.ok/` runtime files and optionally registers MCP clients.
|
|
41
|
+
|
|
14
42
|
## Retro Feedstock
|
|
15
43
|
|
|
16
44
|
When Overdeck is detected, `/okf retro` may mine observations for the issue:
|
|
@@ -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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pan-flywheel
|
|
3
|
-
description: "pan flywheel — start, pause, resume, stop, inspect, emit, and report on the singleton Fix-All Flywheel orchestrator"
|
|
3
|
+
description: "pan flywheel — start, pause, resume, complete, stop, inspect, emit, and report on the singleton Fix-All Flywheel orchestrator"
|
|
4
4
|
triggers:
|
|
5
5
|
- pan flywheel
|
|
6
6
|
- flywheel orchestrator
|
|
@@ -24,6 +24,7 @@ The Flywheel is not an issue-scoped work agent. It runs as `flywheel-orchestrato
|
|
|
24
24
|
```bash
|
|
25
25
|
pan flywheel start
|
|
26
26
|
pan flywheel start --brief docs/flywheel-brief.md
|
|
27
|
+
pan flywheel start --orders <book-id>
|
|
27
28
|
pan flywheel config --get
|
|
28
29
|
pan flywheel config --get flywheel.require_uat_before_merge
|
|
29
30
|
pan flywheel config --set flywheel.auto_pickup_backlog=true
|
|
@@ -32,6 +33,8 @@ pan flywheel status
|
|
|
32
33
|
pan flywheel status --json
|
|
33
34
|
pan flywheel pause
|
|
34
35
|
pan flywheel resume
|
|
36
|
+
pan flywheel complete
|
|
37
|
+
pan flywheel complete --force
|
|
35
38
|
pan flywheel stop
|
|
36
39
|
pan flywheel abort
|
|
37
40
|
pan flywheel emit-status --file latest.json
|
|
@@ -45,12 +48,15 @@ pan flywheel report
|
|
|
45
48
|
```bash
|
|
46
49
|
pan flywheel start
|
|
47
50
|
pan flywheel start --brief docs/flywheel-brief.md
|
|
51
|
+
pan flywheel start --orders <book-id>
|
|
48
52
|
```
|
|
49
53
|
|
|
50
54
|
Starts `flywheel-orchestrator` and opens a new run under `~/.overdeck/flywheel/runs/<runId>/`.
|
|
51
55
|
|
|
52
56
|
Use the default brief unless the user gives a specific markdown brief. The default is `docs/flywheel-brief.md`. The command validates that the brief path stays inside the project root.
|
|
53
57
|
|
|
58
|
+
`--orders <book-id>` validates a ready order book, stamps the book binding into the run launch metadata, and marks the book running only after the Flywheel start gate succeeds. Validation or gate failures leave the book ready.
|
|
59
|
+
|
|
54
60
|
### Config
|
|
55
61
|
|
|
56
62
|
```bash
|
|
@@ -84,6 +90,17 @@ pan flywheel resume
|
|
|
84
90
|
|
|
85
91
|
If the Flywheel is already paused or already running, these commands report the current gate state and exit successfully.
|
|
86
92
|
|
|
93
|
+
### Complete
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
pan flywheel complete
|
|
97
|
+
pan flywheel complete --force
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Completes an orders-bound run after every book item is closed or parked. The command refuses a non-drained book and names each remaining issue unless `--force` is passed. It writes `report.md`, adds `## Retrospective` from the run's `retro.md` when present or the exact no-findings line otherwise, commits any `docs/FLYWHEEL-STATE.md` change, clears the active-run gate, and marks the book complete.
|
|
101
|
+
|
|
102
|
+
Continuation is mechanical: the next ready book in queue order starts in-process; when no book is ready and `flywheel.auto_pickup_backlog=true`, a bookless backlog run starts; otherwise the command stays stopped and emits `needs-you: pipeline idle — no order book queued and auto-pickup is off`.
|
|
103
|
+
|
|
87
104
|
### Stop
|
|
88
105
|
|
|
89
106
|
```bash
|
|
@@ -9,6 +9,7 @@ triggers:
|
|
|
9
9
|
- knowledge sync
|
|
10
10
|
- knowledge study
|
|
11
11
|
- knowledge retro
|
|
12
|
+
- knowledge open
|
|
12
13
|
allowed-tools:
|
|
13
14
|
- Bash
|
|
14
15
|
- Read
|
|
@@ -30,6 +31,8 @@ pan knowledge PAN-123 --focus "auth flow" # Study a topic, then sync
|
|
|
30
31
|
pan knowledge PAN-123 --retro # Capture retro knowledge, then sync
|
|
31
32
|
pan knowledge PAN-123 --model claude-sonnet-5 # Override the knowledge role model
|
|
32
33
|
pan knowledge PAN-123 --effort high # Raise reasoning effort for the agent
|
|
34
|
+
pan knowledge open # Open this project's OKF bundle in the viewer
|
|
35
|
+
pan knowledge open --no-install --no-browser # Never install or launch a browser
|
|
33
36
|
```
|
|
34
37
|
|
|
35
38
|
## What It Does
|
|
@@ -51,6 +54,13 @@ The command first tries to ensure `mnemos` is available on `PATH` (installing it
|
|
|
51
54
|
on demand if necessary) and ingest the resolved bundle. If mnemos is unavailable,
|
|
52
55
|
it resolves the installed `okf` skill and falls back to its bundled `scripts/` directory.
|
|
53
56
|
|
|
57
|
+
`pan knowledge open` resolves the current project's bundle through
|
|
58
|
+
`projects.yaml` or `.okf.yml`, progressively installs the separately licensed
|
|
59
|
+
`@inkeep/open-knowledge` program when needed, starts or reuses a verified viewer
|
|
60
|
+
against a disposable snapshot, and opens the URL. Viewer edits never touch the
|
|
61
|
+
canonical PR-gated bundle. Use `--no-install` to require a preinstalled `ok` binary and
|
|
62
|
+
`--no-browser` to print the URL without launching a browser.
|
|
63
|
+
|
|
54
64
|
## When to Use
|
|
55
65
|
|
|
56
66
|
- After merging a feature to capture knowledge that would have helped the work
|
|
@@ -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
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pan-orders
|
|
3
|
+
description: "pan orders — create, inspect, edit, and start Flywheel order books"
|
|
4
|
+
triggers:
|
|
5
|
+
- pan orders
|
|
6
|
+
- order book
|
|
7
|
+
- special orders
|
|
8
|
+
allowed-tools:
|
|
9
|
+
- Bash
|
|
10
|
+
- Read
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# pan orders
|
|
14
|
+
|
|
15
|
+
Use `pan orders` to manage the operator-owned order book that scopes a Flywheel campaign.
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pan orders create "Campaign name"
|
|
19
|
+
pan orders list
|
|
20
|
+
pan orders show <id>
|
|
21
|
+
pan orders add <id> <issue...>
|
|
22
|
+
pan orders add <id> <issue...> --lane B --after <issue> --reverify
|
|
23
|
+
pan orders remove <id> <issue>
|
|
24
|
+
pan orders move <id> <issue> --lane A --order 2
|
|
25
|
+
pan orders start <id>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
- `create` makes a draft book with a date-and-name id.
|
|
29
|
+
- `add` defaults to Lane A. `--after` must name an item already in the target lane. `--reverify` requires PRD re-verification before pickup.
|
|
30
|
+
- `move` accepts `--lane <A|B>`, `--order <n>`, or both.
|
|
31
|
+
- `start` validates and starts the same orders-bound path as Flywheel start; validation blocks leave the book unchanged.
|
|
32
|
+
|
|
33
|
+
Order-book reads and mutations go through the canonical resolver and writer. Do not edit `orders/*.json` directly.
|
|
@@ -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
|
|
@@ -31,6 +31,7 @@ pan start PAN-123 --fresh # Drop the saved session and start a new one (e.g. sw
|
|
|
31
31
|
pan start PAN-123 --harness codex # Explicitly use the Codex harness
|
|
32
32
|
pan start PAN-123 --model gpt-5.6-sol --swarm off --review-mode full
|
|
33
33
|
pan start PAN-123 --review-model gpt-5.6-sol # Pin the convoy review model
|
|
34
|
+
pan start PAN-123 --plan-model k3 --model k3 # Auto-plan AND work on Kimi k3
|
|
34
35
|
pan start PAN-123 --remote --tier durable # Remote Fly.io workspace with persistent volume
|
|
35
36
|
pan start PAN-123 --remote --tier ephemeral # Remote Fly.io workspace that winds down on stale heartbeat
|
|
36
37
|
```
|
|
@@ -40,10 +41,10 @@ pan start PAN-123 --remote --tier ephemeral # Remote Fly.io workspace that wind
|
|
|
40
41
|
`pan start <id>` is the single paved-road entry point: it takes an issue from whatever
|
|
41
42
|
state it is in to running work.
|
|
42
43
|
|
|
43
|
-
- **No plan exists** — `pan start` auto-plans (non-interactive), materializes
|
|
44
|
+
- **No plan exists** — `pan start` auto-plans (non-interactive), materializes xBRIEF tasks, and
|
|
44
45
|
starts the work agent when planning finalizes.
|
|
45
46
|
- **Plan exists** — `pan start` creates the workspace if needed and spawns the work agent
|
|
46
|
-
from the existing
|
|
47
|
+
from the existing xBRIEF and xBRIEF tasks.
|
|
47
48
|
- **Already running** — `pan start` exits 0 with a no-op message naming `pan tell <id>` for
|
|
48
49
|
messaging and the tmux attach command.
|
|
49
50
|
|
|
@@ -52,7 +53,7 @@ Planning depth is controlled by `--plan`:
|
|
|
52
53
|
```bash
|
|
53
54
|
pan start PAN-1071 --plan interactive # Q&A planning first, then work
|
|
54
55
|
pan start PAN-1071 --plan auto # non-interactive planning, then work (default)
|
|
55
|
-
pan start PAN-1071 --plan skip # synthesize a minimal
|
|
56
|
+
pan start PAN-1071 --plan skip # synthesize a minimal xBRIEF and xBRIEF tasks, then work
|
|
56
57
|
```
|
|
57
58
|
|
|
58
59
|
The default planning mode comes from `planning.default_mode` in `~/.overdeck/config.yaml`;
|
|
@@ -63,6 +64,9 @@ Start-time policy flags are persisted on the issue before planning or work begin
|
|
|
63
64
|
sets the durable work-model override used by later respawns, `--swarm` accepts `off`, `auto`,
|
|
64
65
|
or `always`, `--review-mode` accepts `quick`, `full`, or `none`, and `--review-model` pins the
|
|
65
66
|
model used by the review convoy. Omitted flags leave existing and inherited policy untouched.
|
|
67
|
+
When this start also kicks off planning (no plan exists yet), `--plan-model <model>` overrides
|
|
68
|
+
the planning agent's model for that session only — it is a one-shot override, not persisted
|
|
69
|
+
policy, and it never changes the work agent's model (`--model`).
|
|
66
70
|
|
|
67
71
|
If an agent is paused, `pan start <id>` refuses to spawn until you run `pan unpause <id>`.
|
|
68
72
|
Use `--force` only when you intentionally want to clear that pause gate and start anyway.
|
|
@@ -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
|