create-harness-vibe-coding 0.8.19 → 0.9.3
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/CHANGELOG.md +49 -0
- package/README-CN.md +4 -2
- package/README.md +23 -4
- package/package.json +17 -2
- package/src/generator.js +19 -6
- package/src/index.js +531 -38
- package/src/prompts.js +4 -4
- package/src/ui/dist/assets/AgentsRoute-BGGs90wH.js +7 -0
- package/src/ui/dist/assets/Assistant-Bold-gm-uSS1B.woff2 +0 -0
- package/src/ui/dist/assets/Assistant-Medium-DrcxCXg3.woff2 +0 -0
- package/src/ui/dist/assets/Assistant-Regular-DVxZuzxb.woff2 +0 -0
- package/src/ui/dist/assets/Assistant-SemiBold-SCI4bEL9.woff2 +0 -0
- package/src/ui/dist/assets/Combination-DhBLEmof.js +42 -0
- package/src/ui/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/src/ui/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/src/ui/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/src/ui/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/src/ui/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/src/ui/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/src/ui/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/src/ui/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/src/ui/dist/assets/RolesRoute-DnodCSz0.js +2 -0
- package/src/ui/dist/assets/RuntimePicker-CucD8TGn.js +7 -0
- package/src/ui/dist/assets/SettingsRoute-DquMWjac.js +2 -0
- package/src/ui/dist/assets/TaskList-Bxc0Uktx.js +7 -0
- package/src/ui/dist/assets/TerminalDrawer-CDusYltc.js +36 -0
- package/src/ui/dist/assets/WorkflowRoute-BN8yHmUs.css +1 -0
- package/src/ui/dist/assets/WorkflowRoute-D-0wVDpY.js +334 -0
- package/src/ui/dist/assets/abnfDiagram-VRR7QNED-zkRKkaxO.js +2 -0
- package/src/ui/dist/assets/apl-B4CMkyY2.js +2 -0
- package/src/ui/dist/assets/ar-SA-G6X2FPQ2-BiHaArx5.js +11 -0
- package/src/ui/dist/assets/arc-CBnLtOFO.js +2 -0
- package/src/ui/dist/assets/architectureDiagram-ZJ3FMSHR-DWXRXsh1.js +37 -0
- package/src/ui/dist/assets/asciiarmor-Df11BRmG.js +2 -0
- package/src/ui/dist/assets/asn1-EdZsLKOL.js +2 -0
- package/src/ui/dist/assets/asterisk-B-8jnY81.js +2 -0
- package/src/ui/dist/assets/az-AZ-76LH7QW2-CiT05voO.js +2 -0
- package/src/ui/dist/assets/bg-BG-XCXSNQG7-L-UM9tNf.js +6 -0
- package/src/ui/dist/assets/blockDiagram-677ZJIJ3-BIyh3Bry.js +133 -0
- package/src/ui/dist/assets/bn-BD-2XOGV67Q-NdgbA0bC.js +6 -0
- package/src/ui/dist/assets/brainfuck-C4LP7Hcl.js +2 -0
- package/src/ui/dist/assets/c4Diagram-LMCZKHZV-CA54vWWM.js +11 -0
- package/src/ui/dist/assets/ca-ES-6MX7JW3Y-BKZZsQ5J.js +9 -0
- package/src/ui/dist/assets/channel-Da_-zcAu.js +2 -0
- package/src/ui/dist/assets/chunk-2Q5K7J3B-DE4cxr1v.js +2 -0
- package/src/ui/dist/assets/chunk-32BRIVSS-i7FwbEU9.js +2 -0
- package/src/ui/dist/assets/chunk-5VM5RSS4-BhIcOYSu.js +16 -0
- package/src/ui/dist/assets/chunk-EX3LRPZG-Ci9zZRIs.js +232 -0
- package/src/ui/dist/assets/chunk-JWPE2WC7-BFdkcz-G.js +2 -0
- package/src/ui/dist/assets/chunk-MOJQB5TN-Dzmapl_S.js +89 -0
- package/src/ui/dist/assets/chunk-RYQCIY6F-RTmp7FOy.js +2 -0
- package/src/ui/dist/assets/chunk-V7JOEXUC-DInU3v3D.js +207 -0
- package/src/ui/dist/assets/chunk-VR4S4FIN-BHoyGBQO.js +2 -0
- package/src/ui/dist/assets/chunk-XXDRQBXY-DfeLZNZx.js +2 -0
- package/src/ui/dist/assets/classDiagram-OUVF2IWQ-FKbUS0bu.js +2 -0
- package/src/ui/dist/assets/classDiagram-v2-EOCWNBFH-FKbUS0bu.js +2 -0
- package/src/ui/dist/assets/clike-B9uivgTg.js +2 -0
- package/src/ui/dist/assets/clojure-BMjYHr_A.js +2 -0
- package/src/ui/dist/assets/cmake-BQqOBYOt.js +2 -0
- package/src/ui/dist/assets/cobol-CWcv1MsR.js +2 -0
- package/src/ui/dist/assets/coffeescript-S37ZYGWr.js +2 -0
- package/src/ui/dist/assets/commonlisp-DBKNyK5s.js +2 -0
- package/src/ui/dist/assets/cose-bilkent-JH36ORCC-_5PUJ615.js +2 -0
- package/src/ui/dist/assets/crystal-SjHAIU92.js +2 -0
- package/src/ui/dist/assets/cs-CZ-2BRQDIVT-DnkfnhDU.js +12 -0
- package/src/ui/dist/assets/css-BnMrqG3P.js +2 -0
- package/src/ui/dist/assets/cynefin-VYW2F7L2-CmkcFv-b.js +179 -0
- package/src/ui/dist/assets/cynefinDiagram-TSTJHNR4-D72VZn8H.js +63 -0
- package/src/ui/dist/assets/cypher-C_CwsFkJ.js +2 -0
- package/src/ui/dist/assets/cytoscape.esm-DTSO7Bv0.js +332 -0
- package/src/ui/dist/assets/d-pRatUO7H.js +2 -0
- package/src/ui/dist/assets/da-DK-5WZEPLOC-C54tQUgd.js +6 -0
- package/src/ui/dist/assets/dagre-VKFMJZFB-0BsAkrmo.js +5 -0
- package/src/ui/dist/assets/de-DE-XR44H4JA-DGfZlR10.js +9 -0
- package/src/ui/dist/assets/defaultLocale-DX6XiGOO.js +2 -0
- package/src/ui/dist/assets/diagram-FQU43EPY-C1ZJDOca.js +4 -0
- package/src/ui/dist/assets/diagram-G47NLZAW-D3pr3FSP.js +25 -0
- package/src/ui/dist/assets/diagram-NH7WQ7WH-Bwry0NV-.js +25 -0
- package/src/ui/dist/assets/diagram-OA4YK3LP-L6g09cmV.js +31 -0
- package/src/ui/dist/assets/diagram-WEI45ONY-Bh1puYVX.js +42 -0
- package/src/ui/dist/assets/diff-DbItnlRl.js +2 -0
- package/src/ui/dist/assets/directory-open-01563666-DWU9wJ6I.js +2 -0
- package/src/ui/dist/assets/directory-open-4ed118d0-CunoC1EB.js +2 -0
- package/src/ui/dist/assets/dockerfile-BKs6k2Af.js +2 -0
- package/src/ui/dist/assets/dtd-DF_7sFjM.js +2 -0
- package/src/ui/dist/assets/dylan-DwRh75JA.js +2 -0
- package/src/ui/dist/assets/ebnf-CDyGwa7X.js +2 -0
- package/src/ui/dist/assets/ebnfDiagram-CCIWWBDH-BC_mBRR5.js +2 -0
- package/src/ui/dist/assets/ecl-Cabwm37j.js +2 -0
- package/src/ui/dist/assets/eiffel-CnydiIhH.js +2 -0
- package/src/ui/dist/assets/el-GR-BZB4AONW-DsnwWweL.js +11 -0
- package/src/ui/dist/assets/elm-vLlmbW-K.js +2 -0
- package/src/ui/dist/assets/erDiagram-Q63AITRT-Bkxam36l.js +86 -0
- package/src/ui/dist/assets/erlang-BNw1qcRV.js +2 -0
- package/src/ui/dist/assets/es-ES-U4NZUMDT-CRxBcQgC.js +10 -0
- package/src/ui/dist/assets/eu-ES-A7QVB2H4-CTd_E7YR.js +12 -0
- package/src/ui/dist/assets/excalidraw-default-bMWIgNCy.svg +1 -0
- package/src/ui/dist/assets/fa-IR-HGAKTJCU-DO56k7eG.js +9 -0
- package/src/ui/dist/assets/factor-kuTfRLto.js +2 -0
- package/src/ui/dist/assets/fcl-Kvtd6kyn.js +2 -0
- package/src/ui/dist/assets/fi-FI-Z5N7JZ37-DEDCF9WB.js +7 -0
- package/src/ui/dist/assets/file-open-002ab408-DIuFHtCF.js +2 -0
- package/src/ui/dist/assets/file-open-7c801643-684qeFg4.js +2 -0
- package/src/ui/dist/assets/file-save-3189631c-C1wFhQhH.js +2 -0
- package/src/ui/dist/assets/file-save-745eba88-Bb9F9Kg7.js +2 -0
- package/src/ui/dist/assets/flowDiagram-23GEKE2U-C3SAEao7.js +157 -0
- package/src/ui/dist/assets/forth-Ffai-XNe.js +2 -0
- package/src/ui/dist/assets/fortran-DYz_wnZ1.js +2 -0
- package/src/ui/dist/assets/fr-FR-RHASNOE6-DE2nPyDt.js +10 -0
- package/src/ui/dist/assets/ganttDiagram-NO4QXBWP-U-J_Xi-_.js +293 -0
- package/src/ui/dist/assets/gas-Bneqetm1.js +2 -0
- package/src/ui/dist/assets/gherkin-heZmZLOM.js +2 -0
- package/src/ui/dist/assets/gitGraphDiagram-IHSO6WYX-BADVbD-a.js +107 -0
- package/src/ui/dist/assets/gl-ES-HMX3MZ6V-mCqVgQHC.js +11 -0
- package/src/ui/dist/assets/graph-C9eacEi8.js +2 -0
- package/src/ui/dist/assets/groovy-D9Dt4D0W.js +2 -0
- package/src/ui/dist/assets/haskell-Cw1EW3IL.js +2 -0
- package/src/ui/dist/assets/haxe-H-WmDvRZ.js +2 -0
- package/src/ui/dist/assets/he-IL-6SHJWFNN-KnaLrCzw.js +11 -0
- package/src/ui/dist/assets/hi-IN-IWLTKZ5I-wuqiaaWt.js +5 -0
- package/src/ui/dist/assets/http-DBlCnlav.js +2 -0
- package/src/ui/dist/assets/hu-HU-A5ZG7DT2-DLg_zm22.js +8 -0
- package/src/ui/dist/assets/id-ID-SAP4L64H-MB2mXqcR.js +11 -0
- package/src/ui/dist/assets/idl-BEugSyMb.js +2 -0
- package/src/ui/dist/assets/image-blob-reduce.esm-HwCm7IZ0.js +8 -0
- package/src/ui/dist/assets/index-39SJtrt0.js +2 -0
- package/src/ui/dist/assets/index-BQ0LIrW-.js +2 -0
- package/src/ui/dist/assets/index-BcAUh2Nm.css +1 -0
- package/src/ui/dist/assets/index-BcThOK-i.js +331 -0
- package/src/ui/dist/assets/index-BnxV3k_S.js +3 -0
- package/src/ui/dist/assets/index-C7MZBHbT.js +117 -0
- package/src/ui/dist/assets/index-CCvKI2rM.js +2 -0
- package/src/ui/dist/assets/index-CZvmcCab.js +8 -0
- package/src/ui/dist/assets/index-Cp3hLKNl.js +2 -0
- package/src/ui/dist/assets/index-D7ayFxcx.js +2 -0
- package/src/ui/dist/assets/index-DAYxSQGU.js +2 -0
- package/src/ui/dist/assets/index-DD-HeMV0.css +1 -0
- package/src/ui/dist/assets/index-DPMxd3Qn.js +2 -0
- package/src/ui/dist/assets/index-DSe2jx3k.js +4 -0
- package/src/ui/dist/assets/index-DUirCkgW.js +2 -0
- package/src/ui/dist/assets/index-DaKPQ2hN.js +159 -0
- package/src/ui/dist/assets/index-DzpuR0Jg.js +2 -0
- package/src/ui/dist/assets/index-POndwsCI.js +2 -0
- package/src/ui/dist/assets/index-R8NM9I_9.js +2 -0
- package/src/ui/dist/assets/index-TCDuDhBj.js +2 -0
- package/src/ui/dist/assets/index-TckzASdM.js +2 -0
- package/src/ui/dist/assets/index-Yi5ytFFr.js +2 -0
- package/src/ui/dist/assets/infoDiagram-FWYZ7A6U-CiGBlFqH.js +3 -0
- package/src/ui/dist/assets/init-Gi6I4Gst.js +2 -0
- package/src/ui/dist/assets/ishikawaDiagram-FXEZZL3T-B1aheRbz.js +71 -0
- package/src/ui/dist/assets/it-IT-JPQ66NNP-DT3HSU7X.js +12 -0
- package/src/ui/dist/assets/ja-JP-DBVTYXUO-CsfJjjWt.js +9 -0
- package/src/ui/dist/assets/javascript-iXu5QeM3.js +2 -0
- package/src/ui/dist/assets/journeyDiagram-5HDEW3XC-DtnJPxub.js +140 -0
- package/src/ui/dist/assets/julia-DuME0IfC.js +2 -0
- package/src/ui/dist/assets/kaa-6HZHGXH3-DQz-1-Gn.js +2 -0
- package/src/ui/dist/assets/kab-KAB-ZGHBKWFO-CaH-LSoK.js +9 -0
- package/src/ui/dist/assets/kanban-definition-HUTT4EX6-CZatSm3e.js +90 -0
- package/src/ui/dist/assets/katex-C5jXJg4s.js +258 -0
- package/src/ui/dist/assets/kk-KZ-P5N5QNE5-BMXmcm55.js +2 -0
- package/src/ui/dist/assets/km-KH-HSX4SM5Z-ZeoJNBpN.js +12 -0
- package/src/ui/dist/assets/ko-KR-MTYHY66A-BeaLRKph.js +10 -0
- package/src/ui/dist/assets/ku-TR-6OUDTVRD-B_28KrkR.js +10 -0
- package/src/ui/dist/assets/layout-DEXfKzaS.js +2 -0
- package/src/ui/dist/assets/linear-CpEDnQRC.js +2 -0
- package/src/ui/dist/assets/livescript-BwQOo05w.js +2 -0
- package/src/ui/dist/assets/lt-LT-XHIRWOB4-BxDcnUhp.js +4 -0
- package/src/ui/dist/assets/lua-VAEuO923.js +2 -0
- package/src/ui/dist/assets/lv-LV-5QDEKY6T-DpKDl1_y.js +8 -0
- package/src/ui/dist/assets/map-Czzmt4hB.js +2 -0
- package/src/ui/dist/assets/mathematica-DTrFuWx2.js +2 -0
- package/src/ui/dist/assets/mbox-CNhZ1qSd.js +2 -0
- package/src/ui/dist/assets/mermaidLoader-CBO31t0J.js +305 -0
- package/src/ui/dist/assets/mermaidLoader-CEK31ho9.css +1 -0
- package/src/ui/dist/assets/mindmap-definition-LN4V7U3C-CQ0TccEr.js +97 -0
- package/src/ui/dist/assets/mirc-CjQqDB4T.js +2 -0
- package/src/ui/dist/assets/mllike-CXdrOF99.js +2 -0
- package/src/ui/dist/assets/modelica-Dc1JOy9r.js +2 -0
- package/src/ui/dist/assets/mr-IN-CRQNXWMA-BKCZT58p.js +14 -0
- package/src/ui/dist/assets/mscgen-BA5vi2Kp.js +2 -0
- package/src/ui/dist/assets/mumps-BT43cFF4.js +2 -0
- package/src/ui/dist/assets/my-MM-5M5IBNSE-D34k0G9T.js +2 -0
- package/src/ui/dist/assets/nb-NO-T6EIAALU-DXr_KW8J.js +11 -0
- package/src/ui/dist/assets/nginx-DdIZxoE0.js +2 -0
- package/src/ui/dist/assets/nl-NL-IS3SIHDZ-C1L0aVDR.js +9 -0
- package/src/ui/dist/assets/nn-NO-6E72VCQL-CLWVSxbZ.js +9 -0
- package/src/ui/dist/assets/nsis-LdVXkNf5.js +2 -0
- package/src/ui/dist/assets/ntriples-BfvgReVJ.js +2 -0
- package/src/ui/dist/assets/oc-FR-POXYY2M6-nf8_J3eR.js +9 -0
- package/src/ui/dist/assets/octave-Ck1zUtKM.js +2 -0
- package/src/ui/dist/assets/ordinal-Cboi1Yqb.js +2 -0
- package/src/ui/dist/assets/oz-BzwKVEFT.js +2 -0
- package/src/ui/dist/assets/pa-IN-N4M65BXN-CAMJ-xd6.js +5 -0
- package/src/ui/dist/assets/pascal--L3eBynH.js +2 -0
- package/src/ui/dist/assets/pegDiagram-2B236MQR-Bj2RcmRd.js +2 -0
- package/src/ui/dist/assets/percentages-BXMCSKIN-s9yWFdr6.js +160 -0
- package/src/ui/dist/assets/perl-CdXCOZ3F.js +2 -0
- package/src/ui/dist/assets/pica-BGv_AhAB.js +8 -0
- package/src/ui/dist/assets/pieDiagram-ENE6RG2P-obpzz8dC.js +40 -0
- package/src/ui/dist/assets/pig-CevX1Tat.js +2 -0
- package/src/ui/dist/assets/pl-PL-T2D74RX3-DKJ5H85v.js +10 -0
- package/src/ui/dist/assets/powershell-CFHJl5sT.js +2 -0
- package/src/ui/dist/assets/properties-C78fOPTZ.js +2 -0
- package/src/ui/dist/assets/protobuf-ChK-085T.js +2 -0
- package/src/ui/dist/assets/{proxy-D0vUbds5.js → proxy-BSmwef4H.js} +2 -2
- package/src/ui/dist/assets/pt-BR-5N22H2LF-B5kow-kN.js +10 -0
- package/src/ui/dist/assets/pt-PT-UZXXM6DQ-B2G34fso.js +10 -0
- package/src/ui/dist/assets/pug-DeIclll2.js +2 -0
- package/src/ui/dist/assets/puppet-DMA9R1ak.js +2 -0
- package/src/ui/dist/assets/python-BuPzkPfP.js +2 -0
- package/src/ui/dist/assets/q-pXgVlZs6.js +2 -0
- package/src/ui/dist/assets/quadrantDiagram-ABIIQ3AL-Cl-T7NkJ.js +8 -0
- package/src/ui/dist/assets/r-B6wPVr8A.js +2 -0
- package/src/ui/dist/assets/railroadDiagram-RFXS5EU6-DMq82RHg.js +2 -0
- package/src/ui/dist/assets/{refresh-cw-JNmExijd.js → refresh-cw-CbFd7guV.js} +2 -2
- package/src/ui/dist/assets/requirementDiagram-TGXJPOKE-tGInMDgU.js +85 -0
- package/src/ui/dist/assets/ro-RO-JPDTUUEW-BwLdZW91.js +12 -0
- package/src/ui/dist/assets/roundRect-0PYZxl1G.js +2 -0
- package/src/ui/dist/assets/rpm-CTu-6PCP.js +2 -0
- package/src/ui/dist/assets/ru-RU-B4JR7IUQ-DpdAgIJc.js +10 -0
- package/src/ui/dist/assets/ruby-B2Rjki9n.js +2 -0
- package/src/ui/dist/assets/runtimeBrand-BoKPimsz.js +2 -0
- package/src/ui/dist/assets/sankeyDiagram-HTMAVEWB-C7X-ET4m.js +41 -0
- package/src/ui/dist/assets/sas-B4kiWyti.js +2 -0
- package/src/ui/dist/assets/save-D1CXHwBw.js +12 -0
- package/src/ui/dist/assets/scheme-C41bIUwD.js +2 -0
- package/src/ui/dist/assets/sequenceDiagram-DBY2YBRQ-Bn24i_nY.js +163 -0
- package/src/ui/dist/assets/settings-2-DtSNAAcU.js +22 -0
- package/src/ui/dist/assets/shell-CjFT_Tl9.js +2 -0
- package/src/ui/dist/assets/shield-check-BVbJ8T_N.js +7 -0
- package/src/ui/dist/assets/si-LK-N5RQ5JYF-naJaUy5u.js +2 -0
- package/src/ui/dist/assets/sieve-C3Gn_uJK.js +2 -0
- package/src/ui/dist/assets/simple-mode-GW_nhZxv.js +2 -0
- package/src/ui/dist/assets/sizeCapture-X5ZJPWSS-DAQHfm82.js +2 -0
- package/src/ui/dist/assets/sk-SK-C5VTKIMK-1NPz1J_d.js +7 -0
- package/src/ui/dist/assets/sl-SI-NN7IZMDC-D8RfmNQw.js +7 -0
- package/src/ui/dist/assets/smalltalk-CnHTOXQT.js +2 -0
- package/src/ui/dist/assets/solr-DehyRSwq.js +2 -0
- package/src/ui/dist/assets/sparql-DkYu6x3z.js +2 -0
- package/src/ui/dist/assets/spreadsheet-BCZA_wO0.js +2 -0
- package/src/ui/dist/assets/sql-D0XecflT.js +2 -0
- package/src/ui/dist/assets/stateDiagram-2N3HPSRC-Ck48D1ck.js +2 -0
- package/src/ui/dist/assets/stateDiagram-v2-6OUMAXLB-CdfRCJAJ.js +2 -0
- package/src/ui/dist/assets/stex-C3f8Ysf7.js +2 -0
- package/src/ui/dist/assets/style-C3QI7VPf.css +1 -0
- package/src/ui/dist/assets/stylus-B533Al4x.js +2 -0
- package/src/ui/dist/assets/subset-shared.chunk-eAtLHmbi.js +85 -0
- package/src/ui/dist/assets/subset-worker.chunk-DeHCTnTk.js +2 -0
- package/src/ui/dist/assets/sv-SE-XGPEYMSR-BeOYCU-8.js +11 -0
- package/src/ui/dist/assets/swift-BzpIVaGY.js +2 -0
- package/src/ui/dist/assets/swimlanes-5IMT3BWC-DOy22UjP.js +3 -0
- package/src/ui/dist/assets/swimlanesDiagram-G3AALYLV-sicPbVOg.js +9 -0
- package/src/ui/dist/assets/ta-IN-2NMHFXQM-CtS68WDd.js +10 -0
- package/src/ui/dist/assets/tcl-DVfN8rqt.js +2 -0
- package/src/ui/dist/assets/{terminal-BBQvnOAK.js → terminal-DEby5Y_P.js} +2 -2
- package/src/ui/dist/assets/terminalControl-BkFeDVXo.js +134 -0
- package/src/ui/dist/assets/textile-CnDTJFAw.js +2 -0
- package/src/ui/dist/assets/th-TH-HPSO5L25-DCHY9-Co.js +3 -0
- package/src/ui/dist/assets/tiddlywiki-DO-Gjzrf.js +2 -0
- package/src/ui/dist/assets/tiki-DGYXhP31.js +2 -0
- package/src/ui/dist/assets/timeline-definition-FHXFAJF6-DVkG72qO.js +121 -0
- package/src/ui/dist/assets/toml-Bm5Em-hy.js +2 -0
- package/src/ui/dist/assets/tr-TR-DEFEU3FU-y5-vjTv8.js +8 -0
- package/src/ui/dist/assets/troff-wAsdV37c.js +2 -0
- package/src/ui/dist/assets/ttcn-CfJYG6tj.js +2 -0
- package/src/ui/dist/assets/ttcn-cfg-B9xdYoR4.js +2 -0
- package/src/ui/dist/assets/turtle-B1tBg_DP.js +2 -0
- package/src/ui/dist/assets/uk-UA-QMV73CPH-BRbR5It6.js +7 -0
- package/src/ui/dist/assets/useReducedMotion-D07XP52Q.js +12 -0
- package/src/ui/dist/assets/vb-CmGdzxic.js +2 -0
- package/src/ui/dist/assets/vbscript-BuJXcnF6.js +2 -0
- package/src/ui/dist/assets/velocity-D8B20fx6.js +2 -0
- package/src/ui/dist/assets/vennDiagram-L72KCM5P-DwMwBlf-.js +35 -0
- package/src/ui/dist/assets/verilog-C6RDOZhf.js +2 -0
- package/src/ui/dist/assets/vhdl-lSbBsy5d.js +2 -0
- package/src/ui/dist/assets/vi-VN-M7AON7JQ-s6wSBv2s.js +6 -0
- package/src/ui/dist/assets/wardleyDiagram-EHGQE667-CNuuvzEg.js +79 -0
- package/src/ui/dist/assets/webidl-ZXfAyPTL.js +2 -0
- package/src/ui/dist/assets/{x-DoIOGAJz.js → x-B84wq78k.js} +2 -2
- package/src/ui/dist/assets/xquery-DzFWVndE.js +2 -0
- package/src/ui/dist/assets/xychartDiagram-FW5EYKEG-dUpZxmn6.js +8 -0
- package/src/ui/dist/assets/yacas-BJ4BC0dw.js +2 -0
- package/src/ui/dist/assets/z80-Hz9HOZM7.js +2 -0
- package/src/ui/dist/assets/zh-CN-LNUGB5OW-Cu_-POQN.js +11 -0
- package/src/ui/dist/assets/zh-HK-E62DVLB3-BCx4W4qZ.js +2 -0
- package/src/ui/dist/assets/zh-TW-RAJ6MFWO-02wx_Mrj.js +10 -0
- package/src/ui/dist/icons/excalidraw.svg +1 -0
- package/src/ui/dist/icons/markdown.svg +1 -0
- package/src/ui/dist/index.html +2 -2
- package/src/ui/package.json +10 -0
- package/src/ui/playwright.config.ts +36 -0
- package/src/ui/pnpm-workspace.yaml +2 -0
- package/src/ui/public/icons/excalidraw.svg +1 -0
- package/src/ui/public/icons/markdown.svg +1 -0
- package/src/ui/tsconfig.json +2 -1
- package/src/ui/vite.config.ts +1 -0
- package/src/wf-ui-server/__tests__/a2a-store.test.mjs +432 -15
- package/src/wf-ui-server/__tests__/action-registry-loader.test.mjs +156 -0
- package/src/wf-ui-server/__tests__/claude-stream-json.test.mjs +397 -0
- package/src/wf-ui-server/__tests__/codex-appserver.test.mjs +392 -0
- package/src/wf-ui-server/__tests__/component-node-api.test.mjs +881 -0
- package/src/wf-ui-server/__tests__/component-node-store.test.mjs +401 -0
- package/src/wf-ui-server/__tests__/control-plane-acceptance.test.mjs +2027 -0
- package/src/wf-ui-server/__tests__/control-plane-cli-smoke.test.mjs +1014 -0
- package/src/wf-ui-server/__tests__/dispatch-lifecycle.test.mjs +330 -0
- package/src/wf-ui-server/__tests__/effort-compatibility-red-092.test.mjs +151 -0
- package/src/wf-ui-server/__tests__/graph-layout-agent-tree.test.mjs +254 -0
- package/src/wf-ui-server/__tests__/graph-layout-tidy.test.mjs +260 -0
- package/src/wf-ui-server/__tests__/graph-layout.test.mjs +84 -0
- package/src/wf-ui-server/__tests__/node-config-api.test.mjs +384 -0
- package/src/wf-ui-server/__tests__/opencode-server.test.mjs +526 -0
- package/src/wf-ui-server/__tests__/peer-capsule.test.mjs +2 -2
- package/src/wf-ui-server/__tests__/pty-adapter.test.mjs +71 -1
- package/src/wf-ui-server/__tests__/runtime-config.test.mjs +3 -3
- package/src/wf-ui-server/__tests__/runtime-detector.test.mjs +21 -0
- package/src/wf-ui-server/__tests__/runtime-review.test.mjs +828 -0
- package/src/wf-ui-server/__tests__/server.integration.test.mjs +1463 -11
- package/src/wf-ui-server/__tests__/session-cleanup.test.mjs +159 -0
- package/src/wf-ui-server/__tests__/session-registry.test.mjs +52 -3
- package/src/wf-ui-server/__tests__/settings.test.mjs +12 -2
- package/src/wf-ui-server/__tests__/spawn-gate.test.mjs +78 -0
- package/src/wf-ui-server/__tests__/task-group-parser.test.mjs +120 -0
- package/src/wf-ui-server/__tests__/task-group-tag.test.mjs +264 -0
- package/src/wf-ui-server/__tests__/task-parser.test.mjs +49 -3
- package/src/wf-ui-server/__tests__/terminal-context-hardening.test.mjs +122 -0
- package/src/wf-ui-server/__tests__/terminal-context.test.mjs +164 -0
- package/src/wf-ui-server/__tests__/terminal-store.test.mjs +4 -4
- package/src/wf-ui-server/__tests__/wf-browser-api.test.mjs +599 -0
- package/src/wf-ui-server/__tests__/wf-browser-store.test.mjs +184 -0
- package/src/wf-ui-server/__tests__/workflow-action-registry.test.mjs +282 -0
- package/src/wf-ui-server/__tests__/workflow-agent-communication.test.mjs +411 -0
- package/src/wf-ui-server/__tests__/workflow-agent-context.test.mjs +323 -0
- package/src/wf-ui-server/__tests__/workflow-agent-cooperation-permissions.test.mjs +318 -0
- package/src/wf-ui-server/__tests__/workflow-agent-messages-structured.test.mjs +458 -0
- package/src/wf-ui-server/__tests__/workflow-agent-routing.test.mjs +434 -0
- package/src/wf-ui-server/__tests__/workflow-agent-runtime.test.mjs +324 -0
- package/src/wf-ui-server/__tests__/workflow-api-integration.test.mjs +263 -0
- package/src/wf-ui-server/__tests__/workflow-api-phase3.test.mjs +1213 -0
- package/src/wf-ui-server/__tests__/workflow-claude-materialize.test.mjs +209 -0
- package/src/wf-ui-server/__tests__/workflow-cli-registry-manuals.test.mjs +173 -0
- package/src/wf-ui-server/__tests__/workflow-cli-surface.test.mjs +176 -0
- package/src/wf-ui-server/__tests__/workflow-codex-resume-id.test.mjs +556 -0
- package/src/wf-ui-server/__tests__/workflow-cooperation-enforcement.test.mjs +553 -0
- package/src/wf-ui-server/__tests__/workflow-depth-resume-dock.test.mjs +846 -0
- package/src/wf-ui-server/__tests__/workflow-display-node.test.mjs +150 -0
- package/src/wf-ui-server/__tests__/workflow-edge-update.test.mjs +296 -0
- package/src/wf-ui-server/__tests__/workflow-file-cache-lock-watch.test.mjs +380 -0
- package/src/wf-ui-server/__tests__/workflow-file-formats.test.mjs +994 -0
- package/src/wf-ui-server/__tests__/workflow-file-node-actions.test.mjs +294 -0
- package/src/wf-ui-server/__tests__/workflow-goal-actions.test.mjs +357 -0
- package/src/wf-ui-server/__tests__/workflow-goal-task-autoclose.test.mjs +256 -0
- package/src/wf-ui-server/__tests__/workflow-graceful-stop.test.mjs +108 -0
- package/src/wf-ui-server/__tests__/workflow-graph-undo.test.mjs +524 -0
- package/src/wf-ui-server/__tests__/workflow-layout.test.mjs +732 -0
- package/src/wf-ui-server/__tests__/workflow-magnetic-topology.test.mjs +222 -0
- package/src/wf-ui-server/__tests__/workflow-markdown-lock.test.mjs +359 -0
- package/src/wf-ui-server/__tests__/workflow-mcp-hub.test.mjs +174 -0
- package/src/wf-ui-server/__tests__/workflow-node-manual-schema.test.mjs +241 -0
- package/src/wf-ui-server/__tests__/workflow-node-runtime.test.mjs +1991 -0
- package/src/wf-ui-server/__tests__/workflow-node-store-utils.test.mjs +125 -0
- package/src/wf-ui-server/__tests__/workflow-registry-drift.test.mjs +296 -0
- package/src/wf-ui-server/__tests__/workflow-resource-handle-four-side.test.mjs +217 -0
- package/src/wf-ui-server/__tests__/workflow-role-profile.test.mjs +234 -0
- package/src/wf-ui-server/__tests__/workflow-set-model.test.mjs +261 -0
- package/src/wf-ui-server/__tests__/workflow-skill-group-context-enabled.test.mjs +131 -0
- package/src/wf-ui-server/__tests__/workflow-skill-group-enable-disable.test.mjs +186 -0
- package/src/wf-ui-server/__tests__/workflow-skills-hub.test.mjs +125 -0
- package/src/wf-ui-server/__tests__/workflow-state-reconcile.test.mjs +139 -0
- package/src/wf-ui-server/__tests__/workflow-subagent-strategy-matrix.test.mjs +529 -0
- package/src/wf-ui-server/__tests__/workflow-team-flow.test.mjs +278 -0
- package/src/wf-ui-server/__tests__/workflow-terminal-control-live.test.mjs +294 -0
- package/src/wf-ui-server/__tests__/workflow-terminal-control.test.mjs +631 -0
- package/src/wf-ui-server/__tests__/workflow-timer-wakeup.test.mjs +318 -0
- package/src/wf-ui-server/__tests__/workflow-unified-resume.test.mjs +537 -0
- package/src/wf-ui-server/__tests__/workspace-api-hardening.test.mjs +187 -0
- package/src/wf-ui-server/__tests__/workspace-api.test.mjs +382 -0
- package/src/wf-ui-server/__tests__/workspace-reveal.test.mjs +138 -0
- package/src/wf-ui-server/__tests__/workspace-store-hardening.test.mjs +255 -0
- package/src/wf-ui-server/__tests__/workspace-store.test.mjs +208 -0
- package/src/wf-ui-server/__tests__/ws-events.integration.test.mjs +52 -25
- package/src/wf-ui-server/__tests__/ws-terminal.integration.test.mjs +12 -6
- package/src/wf-ui-server/__tests__/ws-wf-browser.integration.test.mjs +488 -0
- package/src/wf-ui-server/a2a-store.mjs +3007 -89
- package/src/wf-ui-server/action-registry.mjs +277 -0
- package/src/wf-ui-server/bridge-store.mjs +276 -0
- package/src/wf-ui-server/chat-driver.mjs +220 -0
- package/src/wf-ui-server/chat-store.mjs +109 -0
- package/src/wf-ui-server/claude-transcript-materializer.mjs +235 -0
- package/src/wf-ui-server/codex-update-prompt.mjs +53 -0
- package/src/wf-ui-server/component-node-store.mjs +689 -0
- package/src/wf-ui-server/composition-api.mjs +436 -0
- package/src/wf-ui-server/control-plane-token.mjs +17 -0
- package/src/wf-ui-server/dispatch-contract.mjs +150 -0
- package/src/wf-ui-server/drivers/claude-stream-json.mjs +371 -0
- package/src/wf-ui-server/drivers/codex-appserver.mjs +513 -0
- package/src/wf-ui-server/drivers/opencode-server.mjs +486 -0
- package/src/wf-ui-server/excalidraw-svg.mjs +141 -0
- package/src/wf-ui-server/file-format-adapters.mjs +511 -0
- package/src/wf-ui-server/file-watcher.mjs +215 -0
- package/src/wf-ui-server/graph-layout.mjs +778 -0
- package/src/wf-ui-server/harness-env.mjs +46 -0
- package/src/wf-ui-server/json-store-utils.mjs +48 -0
- package/src/wf-ui-server/model-capability.mjs +773 -0
- package/src/wf-ui-server/node-config-store.mjs +233 -0
- package/src/wf-ui-server/node-store-utils.mjs +88 -0
- package/src/wf-ui-server/peer-capsule.mjs +56 -1
- package/src/wf-ui-server/pty-adapter.mjs +513 -11
- package/src/wf-ui-server/reveal-foreground.mjs +69 -0
- package/src/wf-ui-server/runtime-detector.mjs +52 -6
- package/src/wf-ui-server/server.mjs +5613 -403
- package/src/wf-ui-server/session-cleanup.mjs +363 -0
- package/src/wf-ui-server/session-registry.mjs +179 -3
- package/src/wf-ui-server/settings.mjs +25 -0
- package/src/wf-ui-server/spawn-gate.mjs +46 -0
- package/src/wf-ui-server/task-parser.mjs +88 -3
- package/src/wf-ui-server/terminal-store.mjs +225 -11
- package/src/wf-ui-server/timer-wakeup-scheduler.mjs +226 -0
- package/src/wf-ui-server/wf-browser-store.mjs +733 -0
- package/src/wf-ui-server/workflow-agent-context.mjs +1731 -0
- package/src/wf-ui-server/workflow-capability-node-store.mjs +676 -0
- package/src/wf-ui-server/workflow-event-node-store.mjs +623 -0
- package/src/wf-ui-server/workflow-goal-node-store.mjs +328 -0
- package/src/wf-ui-server/workflow-graph-store.mjs +623 -0
- package/src/wf-ui-server/workflow-mcp-hub.mjs +286 -0
- package/src/wf-ui-server/workflow-node-runtime.mjs +1767 -0
- package/src/wf-ui-server/workflow-node-settings-store.mjs +339 -0
- package/src/wf-ui-server/workflow-node-types/agent-node.mjs +920 -0
- package/src/wf-ui-server/workflow-node-types/display-node.mjs +151 -0
- package/src/wf-ui-server/workflow-node-types/excalidraw-node.mjs +145 -0
- package/src/wf-ui-server/workflow-node-types/file-node.mjs +484 -0
- package/src/wf-ui-server/workflow-node-types/github-trigger-node.mjs +207 -0
- package/src/wf-ui-server/workflow-node-types/goal-node.mjs +491 -0
- package/src/wf-ui-server/workflow-node-types/markdown-node.mjs +225 -0
- package/src/wf-ui-server/workflow-node-types/mcp-connector-node.mjs +71 -0
- package/src/wf-ui-server/workflow-node-types/role-profile-store.mjs +191 -0
- package/src/wf-ui-server/workflow-node-types/skill-group-node.mjs +98 -0
- package/src/wf-ui-server/workflow-node-types/timer-node.mjs +607 -0
- package/src/wf-ui-server/workflow-ontology.mjs +681 -0
- package/src/wf-ui-server/workflow-operation-store.mjs +115 -0
- package/src/wf-ui-server/workflow-skills-hub.mjs +366 -0
- package/src/wf-ui-server/workflow-skills-market.mjs +723 -0
- package/src/wf-ui-server/workspace-store.mjs +951 -0
- package/src/wf-ui-server/ws-chat.mjs +299 -0
- package/src/wf-ui-server/ws-events.mjs +45 -20
- package/src/wf-ui-server/ws-terminal.mjs +165 -22
- package/src/wf-ui-server/ws-wf-browser.mjs +419 -0
- package/templates/common/.claude/agents/review-manager.md +33 -29
- package/templates/common/.claude/commands/wf-browser.md +1 -1
- package/templates/common/.claude/commands/wf-help.md +5 -3
- package/templates/common/.claude/commands/wf-init.md +44 -0
- package/templates/common/.claude/commands/wf-learn.md +34 -8
- package/templates/common/.claude/commands/wf-max.md +19 -9
- package/templates/common/.claude/commands/wf-review.md +3 -3
- package/templates/common/.claude/commands/wf-search.md +55 -0
- package/templates/common/.claude/commands/wf-task-archive.md +5 -4
- package/templates/common/.claude/commands/wf-task-list.md +6 -3
- package/templates/common/.claude/commands/wf-task-record.md +10 -2
- package/templates/common/.claude/commands/wf-ui.md +12 -5
- package/templates/common/.claude/commands/wf-update.md +4 -0
- package/templates/common/.claude/commands/wf.md +12 -1
- package/templates/common/.claude/rules/ecc/common.md +10 -1
- package/templates/common/.claude/skills/wf/SKILL.md +36 -0
- package/templates/common/.claude/skills/wf-browser/SKILL.md +427 -122
- package/templates/common/.claude/skills/wf-browser/references/BROWSER_CONTROL_PATTERNS.md +43 -0
- package/templates/common/.claude/skills/wf-init/SKILL.md +33 -0
- package/templates/common/.claude/skills/wf-learn/SKILL.md +106 -26
- package/templates/common/.claude/skills/wf-max/SKILL.md +45 -11
- package/templates/common/.claude/skills/wf-review/SKILL.md +26 -54
- package/templates/common/.claude/skills/wf-search/SKILL.md +122 -0
- package/templates/common/.claude/skills/wf-search/references/evidence-contract.md +77 -0
- package/templates/common/.claude/skills/wf-search/references/policies/compare.md +38 -0
- package/templates/common/.claude/skills/wf-search/references/policies/fact.md +39 -0
- package/templates/common/.claude/skills/wf-search/references/policies/troubleshoot.md +39 -0
- package/templates/common/.claude/skills/wf-search/references/policies/verify.md +44 -0
- package/templates/common/.claude/skills/wf-search/references/source-routing.md +40 -0
- package/templates/common/.claude/skills/wf-search/references/tool-adapters.md +38 -0
- package/templates/common/.claude/skills/wf-ui/SKILL.md +146 -12
- package/templates/common/.claude/skills/wf-update/SKILL.md +5 -1
- package/templates/common/.harness-version +188 -85
- package/templates/common/.opencode/agents/review-manager.md +31 -27
- package/templates/common/.opencode/commands/wf-browser.md +1 -1
- package/templates/common/.opencode/commands/wf-help.md +5 -3
- package/templates/common/.opencode/commands/wf-init.md +44 -0
- package/templates/common/.opencode/commands/wf-learn.md +34 -8
- package/templates/common/.opencode/commands/wf-max.md +19 -9
- package/templates/common/.opencode/commands/wf-review.md +3 -3
- package/templates/common/.opencode/commands/wf-search.md +55 -0
- package/templates/common/.opencode/commands/wf-task-archive.md +5 -7
- package/templates/common/.opencode/commands/wf-task-list.md +6 -6
- package/templates/common/.opencode/commands/wf-task-record.md +10 -5
- package/templates/common/.opencode/commands/wf-ui.md +12 -5
- package/templates/common/.opencode/commands/wf-update.md +4 -0
- package/templates/common/.opencode/commands/wf.md +12 -1
- package/templates/common/CLAUDE.md +61 -3
- package/templates/common/Harness/MEMORY.md +8 -5
- package/templates/common/Harness/README.md +14 -10
- package/templates/common/Harness/a2a/action-registry.json +4397 -0
- package/templates/common/Harness/a2a/role-graph.json +16 -3
- package/templates/common/Harness/a2a/skills/terminal-control.json +45 -1
- package/templates/common/Harness/a2a/skills/wf-ui-map.json +50 -0
- package/templates/common/Harness/a2a/skills/workflow-agent-node.json +143 -0
- package/templates/common/Harness/a2a/skills/workflow-context.json +95 -0
- package/templates/common/Harness/a2a/skills/workflow-diagram-node.json +60 -0
- package/templates/common/Harness/a2a/skills/workflow-display-node.json +69 -0
- package/templates/common/Harness/a2a/skills/workflow-file-node.json +92 -0
- package/templates/common/Harness/a2a/skills/workflow-goal-node.json +76 -0
- package/templates/common/Harness/a2a/skills/workflow-markdown-node.json +79 -0
- package/templates/common/Harness/a2a/skills/workflow-mcp-connector-node.json +59 -0
- package/templates/common/Harness/a2a/skills/workflow-node-actions.json +105 -0
- package/templates/common/Harness/a2a/skills/workflow-node-map.json +71 -0
- package/templates/common/Harness/a2a/skills/workflow-ontology.json +54 -0
- package/templates/common/Harness/a2a/skills/workflow-resource-node.json +68 -0
- package/templates/common/Harness/a2a/skills/workflow-skill-group-node.json +56 -0
- package/templates/common/Harness/a2a/skills/workflow-timer-node.json +81 -0
- package/templates/common/Harness/a2a/workflows.json +33 -0
- package/templates/common/Harness/ownership.manifest.json +263 -2
- package/templates/common/Harness/project/architecture.md +499 -0
- package/templates/common/Harness/research/README.md +20 -0
- package/templates/common/Harness/scripts/README.md +70 -6
- package/templates/common/Harness/scripts/a2a-terminal.mjs +12 -4
- package/templates/common/Harness/scripts/context-budget.mjs +7 -3
- package/templates/common/Harness/scripts/lib/memory-context.mjs +400 -0
- package/templates/common/Harness/scripts/lib/path-scope.mjs +77 -0
- package/templates/common/Harness/scripts/lib/research-policy.mjs +99 -0
- package/templates/common/Harness/scripts/lib/wf-search.mjs +189 -0
- package/templates/common/Harness/scripts/memory-context.mjs +63 -0
- package/templates/common/Harness/scripts/research-policy.mjs +27 -0
- package/templates/common/Harness/scripts/task-context.mjs +547 -0
- package/templates/common/Harness/scripts/task-group-index.mjs +242 -0
- package/templates/common/Harness/scripts/task-state.mjs +659 -95
- package/templates/common/Harness/scripts/validate-harness.mjs +70 -28
- package/templates/common/Harness/scripts/wf-auto-update-prompt.mjs +24 -0
- package/templates/common/Harness/scripts/wf-remove.mjs +10 -0
- package/templates/common/Harness/scripts/wf-search.mjs +10 -0
- package/templates/common/Harness/scripts/wf-ui-control.mjs +3144 -0
- package/templates/common/Harness/scripts/wf-update-check.mjs +274 -51
- package/templates/common/Harness/scripts/wf-update-runner.mjs +53 -16
- package/templates/common/Harness/settings.json +10 -0
- package/templates/common/Harness/specs/guides/SETUP.md +4 -3
- package/templates/common/Harness/specs/protocols/HARNESS_BRIDGE.md +429 -48
- package/templates/common/Harness/specs/protocols/MEMORY_PROTOCOL.md +24 -0
- package/templates/common/Harness/specs/protocols/TASK_ARCHIVE.md +14 -11
- package/templates/common/Harness/specs/runtime/command-surface.json +28 -0
- package/templates/common/Harness/specs/runtime/context-loading.md +6 -0
- package/templates/common/Harness/specs/runtime/dispatch.md +9 -1
- package/templates/common/Harness/specs/runtime/subagents.md +20 -5
- package/templates/common/Harness/specs/workflows/WF-AUTO-SPARK.md +19 -0
- package/templates/common/Harness/specs/workflows/WF-AUTO.md +21 -0
- package/templates/common/Harness/specs/workflows/WF-KERNEL.md +4 -2
- package/templates/common/Harness/specs/workflows/WF-MAX.md +39 -12
- package/templates/common/Harness/specs/workflows/WF-STATE.md +62 -14
- package/templates/common/Harness/specs/workflows/WF.md +32 -0
- package/templates/common/Harness/tasks/INDEX.json +7 -0
- package/templates/common/Harness/tasks/INDEX.md +12 -0
- package/templates/common/Harness/tasks/_template/PLAN.md +6 -0
- package/templates/common/Harness/tasks/_template/PROGRESS.md +5 -0
- package/templates/common/Harness/tasks/_template/STATE.json +22 -0
- package/templates/common/Harness/templates/TEST_PLAN.template.md +5 -4
- package/templates/common/Harness/templates/UI_CONTRACT.template.md +7 -5
- package/templates/common/Harness/wf-browser/README.md +69 -0
- package/templates/common/README.md +17 -0
- package/src/ui/dist/assets/AgentsRoute-CuSKYmFu.js +0 -17
- package/src/ui/dist/assets/AgentsRoute-CuSKYmFu.js.map +0 -1
- package/src/ui/dist/assets/RolesRoute-DOzTYVRm.js +0 -7
- package/src/ui/dist/assets/RolesRoute-DOzTYVRm.js.map +0 -1
- package/src/ui/dist/assets/SettingsRoute-DPU7jSQm.js +0 -12
- package/src/ui/dist/assets/SettingsRoute-DPU7jSQm.js.map +0 -1
- package/src/ui/dist/assets/TaskList-BN4r8s1i.js +0 -50
- package/src/ui/dist/assets/TaskList-BN4r8s1i.js.map +0 -1
- package/src/ui/dist/assets/TerminalDrawer-Cej4PxsH.js +0 -74
- package/src/ui/dist/assets/TerminalDrawer-Cej4PxsH.js.map +0 -1
- package/src/ui/dist/assets/WorkflowRoute-BnuhLJ6X.css +0 -1
- package/src/ui/dist/assets/WorkflowRoute-C-clKe-j.js +0 -39
- package/src/ui/dist/assets/WorkflowRoute-C-clKe-j.js.map +0 -1
- package/src/ui/dist/assets/index-BOVYWntB.js +0 -117
- package/src/ui/dist/assets/index-BOVYWntB.js.map +0 -1
- package/src/ui/dist/assets/index-DaUObq0H.css +0 -1
- package/src/ui/dist/assets/maximize-2-LNrr_rKr.js +0 -7
- package/src/ui/dist/assets/maximize-2-LNrr_rKr.js.map +0 -1
- package/src/ui/dist/assets/plus-QuTJyoT3.js +0 -7
- package/src/ui/dist/assets/plus-QuTJyoT3.js.map +0 -1
- package/src/ui/dist/assets/proxy-D0vUbds5.js.map +0 -1
- package/src/ui/dist/assets/refresh-cw-JNmExijd.js.map +0 -1
- package/src/ui/dist/assets/terminal-BBQvnOAK.js.map +0 -1
- package/src/ui/dist/assets/useReducedMotion-BqmH0Tf7.js +0 -7
- package/src/ui/dist/assets/useReducedMotion-BqmH0Tf7.js.map +0 -1
- package/src/ui/dist/assets/x-DoIOGAJz.js.map +0 -1
- package/src/ui/pnpm-lock.yaml +0 -1582
- package/src/ui/src/App.tsx +0 -86
- package/src/ui/src/api.ts +0 -93
- package/src/ui/src/components/AgentsRoute.tsx +0 -503
- package/src/ui/src/components/Footer.tsx +0 -69
- package/src/ui/src/components/Header.tsx +0 -175
- package/src/ui/src/components/LoadingView.tsx +0 -22
- package/src/ui/src/components/RolesRoute.tsx +0 -169
- package/src/ui/src/components/SettingsRoute.tsx +0 -166
- package/src/ui/src/components/TaskList.tsx +0 -388
- package/src/ui/src/components/TerminalDrawer.tsx +0 -611
- package/src/ui/src/components/WorkflowRoute.tsx +0 -670
- package/src/ui/src/hooks/useReducedMotion.ts +0 -17
- package/src/ui/src/hooks/useServerConnection.ts +0 -114
- package/src/ui/src/index.css +0 -281
- package/src/ui/src/main.tsx +0 -11
- package/src/ui/src/types.ts +0 -108
- /package/src/ui/dist/assets/{TerminalDrawer-6GBZ9nXN.css → terminalControl-6GBZ9nXN.css} +0 -0
|
@@ -16,9 +16,9 @@ which returns this same table without loading `Harness/MEMORY.md` or entering WF
|
|
|
16
16
|
| `/wf-max <task>` | workflow skill | `/wf-max refactor auth module` | WF-Max-Useful default (fan-out only where independent), WF-Max-Strict override (unconditional fan-out). |
|
|
17
17
|
| `/wf-auto` | workflow skill | `/wf-auto` | Perpetual adaptive auto-optimization using project evidence, dynamic probes, risk obligations, evidence ledger, and confirmation-based exhaustion. |
|
|
18
18
|
| `/wf-auto-spark` | workflow skill | `/wf-auto-spark` | Perpetual inspiration mode with roadmap anchoring and external spark search. |
|
|
19
|
-
| `/wf-review <focus>` | workflow skill | `/wf-review security and test coverage` |
|
|
20
|
-
| `/wf-learn` | workflow skill | `/wf-learn` |
|
|
21
|
-
| `/wf-browser <task>` | workflow skill | `/wf-browser verify checkout flow` |
|
|
19
|
+
| `/wf-review <focus>` | workflow skill | `/wf-review security and test coverage` | Native Harness reviewer subagents with bounded, evidence-backed fan-out. |
|
|
20
|
+
| `/wf-learn` | workflow skill | `/wf-learn` | Extract generalized methods with anti-overfitting and route-load checks after verified failures or closeout. |
|
|
21
|
+
| `/wf-browser <task>` | workflow skill | `/wf-browser verify checkout flow` | Agent-operable browser architecture and runtime-control workflow with WebSocket bridge, UI capability contract, virtual cursor, artifacts, multi-window leases, and Playwright/CDP fallback. |
|
|
22
22
|
| `/wf-readme <task>` | workflow skill | `/wf-readme polish quickstart` | Preserve, merge, or improve README docs without trampling existing project documentation. |
|
|
23
23
|
| `/wf-update` | direct command | `/wf-update` | Check/apply Harness scaffold updates with safe file classification and conflict handling. |
|
|
24
24
|
| `/wf-remove` | workflow skill | `/wf-remove` | Safely remove Harness files while preserving project/user data unless explicitly purged. |
|
|
@@ -27,6 +27,8 @@ which returns this same table without loading `Harness/MEMORY.md` or entering WF
|
|
|
27
27
|
| `/wf-task-archive [--apply]` | direct command | `/wf-task-archive --apply` | Archive completed task capsules (dry-run by default). |
|
|
28
28
|
| `/wf-command-create <wf-command-id>` | direct command | `/wf-command-create wf-report --direct` | Create or modify wf-* command surfaces atomically from the command registry. |
|
|
29
29
|
| `/wf-ui` | direct command | `/wf-ui` | Start the local Harness backend and browser control panel. |
|
|
30
|
+
| `/wf-init` | direct command | `/wf-init` | Initialize this project against the global Harness runtime (thin bridge; global version is authoritative). |
|
|
31
|
+
| `/wf-search` | direct command | `/wf-search <question>` | Evidence-backed search protocol with stateless validate/render helper; optional --save/--task by controller. |
|
|
30
32
|
|
|
31
33
|
Source of truth: `Harness/README.md#Skill Commands` plus installed skills under
|
|
32
34
|
`.claude/skills/` (Claude Code and OpenCode adapters) or `.agents/skills/`
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Initialize this project with the Harness runtime — global bridge by default (`--scope global`), or classic full project-level install (`--scope project`)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /wf-init
|
|
6
|
+
|
|
7
|
+
Initialize the current project with the Harness runtime. This is a direct command.
|
|
8
|
+
Do not invoke a skill, do not start WF mode, and do not dispatch agents.
|
|
9
|
+
|
|
10
|
+
Run from the project root:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
create-harness-vibe-coding init .
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
If you are inside the generator source repository and the global binary is not
|
|
17
|
+
available, use the local source entry:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
node bin/create-harness-vibe-coding.js init .
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Otherwise use the package fallback:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx create-harness-vibe-coding@0.8.21 init .
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Install scopes:
|
|
30
|
+
|
|
31
|
+
- `--scope global` (default) — thin bridge: the project keeps only bridge docs (CLAUDE.md, AGENTS.md, Harness README/MEMORY/SETUP) plus its own state (`Harness/tasks/`, memory, `PROGRESS.md`, settings). Framework files, commands, skills, agents, and scripts load once from the machine-level global runtime, which is the single version source of truth.
|
|
32
|
+
- `--scope project` — classic full project-level install: the whole framework is copied into the project so it stays self-contained; update per project with `/wf-update`.
|
|
33
|
+
|
|
34
|
+
Useful flags:
|
|
35
|
+
|
|
36
|
+
- `--dry-run` — print the plan without writing.
|
|
37
|
+
- `--on-conflict <policy>` — `fail`, `skip` (default), `backup`, or `overwrite`. Keep `skip` so user-authored files are never clobbered.
|
|
38
|
+
- `--global-dir <dir>` / `--host-global-dir <dir>` — override the global runtime and host-copy locations (global scope only).
|
|
39
|
+
|
|
40
|
+
Rules:
|
|
41
|
+
|
|
42
|
+
- Never overwrite user-authored files; the default conflict policy is `skip`.
|
|
43
|
+
- If Harness already exists in the project, report the update path and stop — do not re-init.
|
|
44
|
+
- Return the printed install scope, the global runtime path (global scope), and the next-step hints (`/wf-ui`, `/wf <task>`).
|
|
@@ -1,16 +1,42 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Run the
|
|
2
|
+
description: Run the explicit evidence-to-method wf-learn cycle with an anti-overfitting gate
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# /wf-learn
|
|
6
6
|
|
|
7
|
-
This is a
|
|
8
|
-
|
|
7
|
+
This is a workflow command, not a direct command. It runs only when the user
|
|
8
|
+
explicitly invokes /wf-learn, $wf-learn, or /skills wf-learn. Editing this
|
|
9
|
+
command or discussing a learning rule is not an invocation and must not write
|
|
10
|
+
memory.
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
## Command Contract
|
|
13
|
+
|
|
14
|
+
1. Load CLAUDE.md, the Harness/MEMORY.md index, Harness/README.md, and the
|
|
15
|
+
active task context when one exists.
|
|
16
|
+
2. Preserve the cache-first order in
|
|
17
|
+
Harness/specs/runtime/context-loading.md#Cache-First Context Contract.
|
|
18
|
+
3. Read and follow the wf-learn skill adapter. It is the authoritative
|
|
19
|
+
implementation for routing, generalization, deduplication, and memory writes.
|
|
20
|
+
4. Build a compact environment profile from capabilities, not machine-specific
|
|
21
|
+
literals: runtime family, OS family, shell family, project layout, and
|
|
22
|
+
available agent runtimes.
|
|
23
|
+
5. Start with a scoped, de-duplicating query:
|
|
24
|
+
`node Harness/scripts/memory-context.mjs query --project <absolutePath> --text <topic> --scope project --json`.
|
|
25
|
+
Validate candidates with `memory-context.mjs validate --input <candidate.json>`;
|
|
26
|
+
apply only validated evidence with `memory-context.mjs apply --project <absolutePath>
|
|
27
|
+
--input <candidate.json> --apply`; record task-local outcomes with
|
|
28
|
+
`memory-context.mjs feedback --project <absolutePath> --task <task-id> --entry <id>
|
|
29
|
+
--outcome useful|unused|incorrect --reason <text> --apply`.
|
|
30
|
+
6. Apply the Generalization Gate before any memory write. Instance facts such
|
|
31
|
+
as a port number, device label, absolute path, timestamp, or one-run ID stay
|
|
32
|
+
in task evidence. Durable memory receives the method and its validation
|
|
33
|
+
criteria only.
|
|
34
|
+
7. Return load proof, candidates written, facts kept task-local, candidates
|
|
35
|
+
skipped for overfitting, and the guarantee status. If a registered critical
|
|
36
|
+
route was not loaded, report the result as not guaranteed and do not pretend
|
|
37
|
+
the learning cycle completed.
|
|
14
38
|
|
|
15
39
|
If this runtime cannot invoke the skill directly, read
|
|
16
|
-
|
|
40
|
+
.claude/skills/wf-learn/SKILL.md (Codex mirror:
|
|
41
|
+
.agents/skills/wf-learn/SKILL.md) and follow the contract in place. Do not
|
|
42
|
+
duplicate the detailed learning procedure in this command file.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Run WF-MAX with
|
|
2
|
+
description: Run WF-MAX with evidence-driven fan-out and recorded suppression or degradation
|
|
3
3
|
agent: build
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -11,11 +11,21 @@ static help or script command.
|
|
|
11
11
|
1. Load `CLAUDE.md`, `Harness/MEMORY.md` (index only per Memory Preflight), then `Harness/README.md`.
|
|
12
12
|
2. Load and follow `.claude/skills/wf-max/SKILL.md` (mirror: `.agents/skills/wf-max/SKILL.md`) and `Harness/specs/workflows/WF-MAX.md`.
|
|
13
13
|
3. Preserve cache-first order per `Harness/specs/runtime/context-loading.md#Cache-First Context Contract`.
|
|
14
|
-
4.
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
4. After the task id is known, generate a bounded controller/worker input with
|
|
15
|
+
`node Harness/scripts/task-context.mjs pack <task-id> --project <absolutePath> --role <role> --budget-bytes <n> --json`.
|
|
16
|
+
Resume by consuming a fresh `show`/`pack`; do not inject the full task log.
|
|
17
|
+
5. Before external lookup, run
|
|
18
|
+
`node Harness/scripts/research-policy.mjs decide --trigger <trigger> --task-type <type> --json`.
|
|
19
|
+
Search web, GitHub, or Hugging Face only when the decision says `search: true`;
|
|
20
|
+
record source URL, title, version, license, date, and adopt/adapt/reject.
|
|
21
|
+
6. Use WF-Max-Useful by default. The CEO may suppress fan-out when work is a
|
|
22
|
+
dependency chain, has no independent acceptance, or coordination cost has
|
|
23
|
+
no measured benefit; persist `fanoutSuppressed: true` plus the reason and
|
|
24
|
+
budget/capacity evidence. Workers still own any required source edits.
|
|
25
|
+
7. WF-Max-Strict is active only for explicit `--strict`, `strict wf-max`, or
|
|
26
|
+
`strict mode`; then the controller MUST attempt native runtime subagent fan-out
|
|
27
|
+
and the span formula within real runtime capacity.
|
|
28
|
+
If a strict dispatch fails, record `fanoutAttempted: true`, channel, limit,
|
|
29
|
+
failure, and fallback in the task capsule. If Useful selects OpenCode
|
|
30
|
+
manager-to-worker fan-out, first require `subagent_depth >= 2` and a
|
|
31
|
+
`permission.task` child allowlist; otherwise record suppression.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Run
|
|
2
|
+
description: Run native Harness reviewer-subagent review via the wf-review skill
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# /wf-review
|
|
@@ -9,8 +9,8 @@ static help or script command.
|
|
|
9
9
|
|
|
10
10
|
1. Load `CLAUDE.md`, `Harness/MEMORY.md` (index only per Memory Preflight), then `Harness/README.md`.
|
|
11
11
|
2. Preserve cache-first order per `Harness/specs/runtime/context-loading.md#Cache-First Context Contract`.
|
|
12
|
-
3. Execute per the skill adapter `.claude/skills/wf-review/SKILL.md` (mirror: `.agents/skills/wf-review/SKILL.md`).
|
|
13
|
-
4. Do not duplicate the workflow here. The skill adapter and the wf-review
|
|
12
|
+
3. Execute per the native-only skill adapter `.claude/skills/wf-review/SKILL.md` (mirror: `.agents/skills/wf-review/SKILL.md`).
|
|
13
|
+
4. Do not invoke another CLI. Do not duplicate the workflow here. The skill adapter and the wf-review native review contract are authoritative.
|
|
14
14
|
|
|
15
15
|
If this runtime cannot invoke the skill directly, read
|
|
16
16
|
`.claude/skills/wf-review/SKILL.md` and follow it in place.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run one evidence-backed research pass (/wf-search) with a stateless validate/render helper
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /wf-search
|
|
6
|
+
|
|
7
|
+
Run a single evidence-backed research pass over a real question using the
|
|
8
|
+
current host's actual search tools. This is a direct command. Do not invoke a skill
|
|
9
|
+
for it in Claude Code or OpenCode; load the protocol file named
|
|
10
|
+
below directly. Do not start WF mode and do not load `Harness/MEMORY.md`
|
|
11
|
+
(classification=direct, taskCapsulePolicy=none).
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
/wf-search <question> [--mode auto|fact|verify|compare|troubleshoot] [--depth quick|standard|deep] [--task <task-id>] [--save]
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Defaults: `--mode auto`, `--depth standard`. `auto` is resolved by the agent
|
|
20
|
+
into one primary mode (`fact`/`verify`/`compare`/`troubleshoot`) plus optional
|
|
21
|
+
secondary intents; the helper validates the four primary modes only.
|
|
22
|
+
|
|
23
|
+
## Execution
|
|
24
|
+
|
|
25
|
+
1. Load `.claude/skills/wf-search/SKILL.md` and follow that protocol. This
|
|
26
|
+
command file fixes argument semantics only; the skill owns the research
|
|
27
|
+
algorithm, source routing, budgets, and the evidence contract.
|
|
28
|
+
2. The skill loads only the references it needs for the matched mode:
|
|
29
|
+
`references/policies/<mode>.md`, then `references/source-routing.md`,
|
|
30
|
+
`references/tool-adapters.md`, and `references/evidence-contract.md`.
|
|
31
|
+
3. When assisting an existing WF task (`--task <task-id>`), the search
|
|
32
|
+
attaches evidence to that task only. It never creates, exits, downgrades,
|
|
33
|
+
closes, or switches the active task, and it never changes the task
|
|
34
|
+
lifecycle.
|
|
35
|
+
|
|
36
|
+
## runtimeRoot
|
|
37
|
+
|
|
38
|
+
- Project install that ships `Harness/scripts/wf-search.mjs`: run
|
|
39
|
+
`node Harness/scripts/wf-search.mjs <subcommand>` from the project root.
|
|
40
|
+
- Global bridge without a project-local helper: read `globalDir` from
|
|
41
|
+
`Harness/.harness-version` and run
|
|
42
|
+
`node <globalDir>/Harness/scripts/wf-search.mjs <subcommand>`.
|
|
43
|
+
- The helper is stateless: it reads only the given input file (or stdin) and
|
|
44
|
+
writes to stdout/stderr. It never creates directories, caches, locks, or
|
|
45
|
+
reports, and it makes no network calls.
|
|
46
|
+
|
|
47
|
+
## Saving
|
|
48
|
+
|
|
49
|
+
`--save` and `--task <task-id>` are executed only by a controller that has
|
|
50
|
+
write permission, following the skill's save flow (validate -> render ->
|
|
51
|
+
write -> read back). Read-only researcher roles return the structured
|
|
52
|
+
ResearchResult JSON to the controller and never persist reports themselves.
|
|
53
|
+
|
|
54
|
+
Codex compatibility: `$wf-search` or `/skills wf-search` reaches the same
|
|
55
|
+
protocol through the wf-search skill shim.
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Archive completed/obsolete task capsules to _archive
|
|
3
|
-
---
|
|
4
1
|
# /wf-task-archive
|
|
5
2
|
|
|
6
3
|
Archive completed/obsolete task capsules to `Harness/tasks/_archive/`. Do not invoke a skill or start WF mode.
|
|
@@ -11,17 +8,18 @@ DIRECT command. Wraps `node Harness/scripts/task-state.mjs archive`. Never loads
|
|
|
11
8
|
|
|
12
9
|
## Usage
|
|
13
10
|
|
|
14
|
-
/wf-task-archive [--dry-run] [--apply] [--task <id>] [--keep <n>]
|
|
11
|
+
/wf-task-archive [--dry-run] [--apply] [--task <id>] [--group <project>] [--keep <n>]
|
|
15
12
|
|
|
16
13
|
- Defaults to dry-run (`--dry-run`) without `--apply`.
|
|
17
|
-
- With `--apply`: moves eligible task directories into
|
|
14
|
+
- With `--apply`: moves eligible task directories into dated paths under `_archive/YYYY/MM/DD/`.
|
|
18
15
|
- With `--task <id>`: targets a specific task for archive eligibility check.
|
|
19
16
|
- With `--keep <n>`: keeps N most recent non-archived task capsules (default 5).
|
|
20
|
-
-
|
|
17
|
+
- Only closed tasks are archive candidates. Legacy completed status values remain
|
|
18
|
+
readable and are treated as closed during eligibility checks.
|
|
21
19
|
|
|
22
20
|
## Execution
|
|
23
21
|
|
|
24
|
-
Run: `node Harness/scripts/task-state.mjs archive [--dry-run] [--apply] [--task <id>] [--keep <n>] [--json]`
|
|
22
|
+
Run: `node Harness/scripts/task-state.mjs archive [--dry-run] [--apply] [--task <id>] [--group <project>] [--keep <n>] [--json]`
|
|
25
23
|
|
|
26
24
|
## Return
|
|
27
25
|
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: List Harness task capsules with state, phase, status, and dependency info
|
|
3
|
-
---
|
|
4
1
|
# /wf-task-list
|
|
5
2
|
|
|
6
3
|
List Harness task capsules with state, phase, status, and dependency info. Do not invoke a skill or start WF mode.
|
|
@@ -11,15 +8,18 @@ DIRECT command. Wraps `node Harness/scripts/task-state.mjs list --json`. Never l
|
|
|
11
8
|
|
|
12
9
|
## Usage
|
|
13
10
|
|
|
14
|
-
/wf-task-list [--json]
|
|
11
|
+
/wf-task-list [--project <project>] [--group <project>] [--status <status>] [--by-group] [--json]
|
|
15
12
|
|
|
16
13
|
- By default, returns a human-readable listing of all task capsules.
|
|
17
14
|
- With --json, returns structured JSON output.
|
|
18
|
-
- Shows active, open, blocked,
|
|
15
|
+
- Shows active, open, blocked, and closed tasks with dependency info.
|
|
16
|
+
- `--project` is canonical; `--group` remains a compatible alias.
|
|
17
|
+
- The generated machine/human task route is rebuilt by `node Harness/scripts/task-state.mjs index`; lifecycle writes refresh it automatically.
|
|
18
|
+
- Search with `node Harness/scripts/task-state.mjs query <keyword> [--project <project>] [--status <status>] --json`.
|
|
19
19
|
|
|
20
20
|
## Execution
|
|
21
21
|
|
|
22
|
-
Run: `node Harness/scripts/task-state.mjs list --json`
|
|
22
|
+
Run: `node Harness/scripts/task-state.mjs list [--project <project>] [--group <project>] [--status <status>] [--by-group] --json`
|
|
23
23
|
|
|
24
24
|
## Return
|
|
25
25
|
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Record a task into a Harness task capsule
|
|
3
|
-
---
|
|
4
1
|
# /wf-task-record
|
|
5
2
|
|
|
6
3
|
Record a task into a Harness task capsule. Do not invoke a skill or start WF mode.
|
|
@@ -11,15 +8,23 @@ DIRECT command. Wraps `node Harness/scripts/task-state.mjs record`. Never loads
|
|
|
11
8
|
|
|
12
9
|
## Usage
|
|
13
10
|
|
|
14
|
-
/wf-task-record [<task-id>] [--title <slug>] [--note <text>] [--context <text>] [--new] [--create] [--status <status>] [--mode <mode>] [--text "description"]
|
|
11
|
+
/wf-task-record [<task-id>] [--title <slug>] [--note <text>] [--context <text>] [--new] [--create] [--status <status>] [--mode <mode>] [--project <project>] [--group <project>] [--tag <tag[,tag...]>] [--text "description"]
|
|
15
12
|
|
|
16
13
|
- With <task-id>: record to that task (existing semantics).
|
|
17
14
|
- Without <task-id>: --title/--note/--context required. Deterministically matches open tasks; updates if unique match found; creates new if no match; fails if ambiguous unless --new.
|
|
18
15
|
- Never uses LLM or embeddings — slug + keyword overlap only.
|
|
19
16
|
|
|
17
|
+
`--project` is the canonical project collection key. `--group` remains a
|
|
18
|
+
compatible alias for older repositories.
|
|
19
|
+
|
|
20
|
+
To declare durable WF ownership at creation, pass `--mode wf` or `--mode
|
|
21
|
+
wf-max`; a later mode promotion is rejected. A managed task can only move
|
|
22
|
+
between `active`/`blocked` and then terminal `closed`; create a new capsule for
|
|
23
|
+
the next WF unit.
|
|
24
|
+
|
|
20
25
|
## Execution
|
|
21
26
|
|
|
22
|
-
Run: `node Harness/scripts/task-state.mjs record [<task-id>] [--title <slug>] [--note <text>] [--context <text>] [--new] [--create] [--apply] [--text "..."] [--status <status>] [--mode <mode>] [--json]`
|
|
27
|
+
Run: `node Harness/scripts/task-state.mjs record [<task-id>] [--title <slug>] [--note <text>] [--context <text>] [--new] [--create] [--apply] [--text "..."] [--status <status>] [--mode <mode>] [--project <project>] [--group <project>] [--tag <tag[,tag...]>] [--json]`
|
|
23
28
|
|
|
24
29
|
## Return
|
|
25
30
|
|
|
@@ -10,17 +10,24 @@ Do not invoke a skill, do not start WF mode, and do not dispatch agents.
|
|
|
10
10
|
Run from the project root:
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
create-harness-vibe-coding wf-ui --project . --host 127.0.0.1 --port
|
|
13
|
+
create-harness-vibe-coding wf-ui --project . --host 127.0.0.1 --port 56670 --open --detach
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
If
|
|
16
|
+
If you are inside the generator source repository and the global binary is not
|
|
17
|
+
available, use the local source entry:
|
|
17
18
|
|
|
18
19
|
```bash
|
|
19
|
-
|
|
20
|
+
node bin/create-harness-vibe-coding.js wf-ui --project . --host 127.0.0.1 --port 56670 --open --detach
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Otherwise use the package fallback:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx create-harness-vibe-coding@0.8.21 wf-ui --project . --host 127.0.0.1 --port 56670 --open --detach
|
|
20
27
|
```
|
|
21
28
|
|
|
22
29
|
Rules:
|
|
23
30
|
- Bind only to `127.0.0.1`.
|
|
24
|
-
- Use port `0`
|
|
25
|
-
-
|
|
31
|
+
- Use port `56670`; if occupied, wf-ui tries the next port upward until one opens. Use `--port 0` only when the user explicitly wants an OS-assigned free port.
|
|
32
|
+
- Detach the server so the command returns after printing the URL.
|
|
26
33
|
- Return the local URL printed by the command.
|
|
@@ -37,6 +37,10 @@ Scope resolution is deterministic:
|
|
|
37
37
|
Older installs that do not have the runner fall back to
|
|
38
38
|
`Harness/scripts/wf-update-check.mjs`.
|
|
39
39
|
|
|
40
|
+
All update paths are bounded: pass `--timeout-ms <positive-ms>` or set
|
|
41
|
+
`WF_UPDATE_TIMEOUT_MS`; timeout exits with code `3`, an active update lock with
|
|
42
|
+
code `4`, and successful transaction state is removed from `Harness/.temp`.
|
|
43
|
+
|
|
40
44
|
1. Run `node Harness/scripts/wf-update-runner.mjs --json` first when present;
|
|
41
45
|
otherwise run `node Harness/scripts/wf-update-check.mjs --json`. Use the
|
|
42
46
|
`agent` block as the action plan. Preserve `agent.releaseHighlights` for the
|
|
@@ -10,7 +10,18 @@ static help or script command.
|
|
|
10
10
|
1. Load `CLAUDE.md`, `Harness/MEMORY.md` (index only per Memory Preflight), then `Harness/README.md`.
|
|
11
11
|
2. Preserve cache-first order per `Harness/specs/runtime/context-loading.md#Cache-First Context Contract`.
|
|
12
12
|
3. Execute per the skill adapter `.claude/skills/wf/SKILL.md` (mirror: `.agents/skills/wf/SKILL.md`).
|
|
13
|
-
4.
|
|
13
|
+
4. Once the task id is known, create the bounded dispatch input with
|
|
14
|
+
`node Harness/scripts/task-context.mjs pack <task-id> --project <absolutePath> --role <role> --budget-bytes <n> --json`.
|
|
15
|
+
Pass the returned pack to the controller and each worker; on resume, use
|
|
16
|
+
`show`/`pack` again instead of injecting the complete task log. `--input`
|
|
17
|
+
is optional for `pack`.
|
|
18
|
+
5. Before external lookup, run
|
|
19
|
+
`node Harness/scripts/research-policy.mjs decide --trigger <trigger> --task-type <type> --json`.
|
|
20
|
+
Use web, GitHub, or Hugging Face sources only when `search: true`; record
|
|
21
|
+
the URL, title, version, license, checked date, and adopt/adapt/reject
|
|
22
|
+
decision in the task evidence. Do not research every workflow by default.
|
|
23
|
+
6. Do not duplicate the workflow here. The skill adapter and
|
|
24
|
+
`Harness/specs/workflows/WF.md` are authoritative.
|
|
14
25
|
|
|
15
26
|
If this runtime cannot invoke the skill directly, read
|
|
16
27
|
`.claude/skills/wf/SKILL.md` and follow it in place.
|
|
@@ -4,6 +4,46 @@ This repository dogfoods the generated Harness scaffold. Scaffold source files l
|
|
|
4
4
|
|
|
5
5
|
## 1. Harness Binding & Startup
|
|
6
6
|
|
|
7
|
+
When running inside a Harness-managed PTY node, the backend injects identity
|
|
8
|
+
through environment variables instead of terminal prompt text. If
|
|
9
|
+
`HARNESS_NODE_INIT` or `HARNESS_PEER_SESSION_ID` is set, quietly read the file
|
|
10
|
+
pointed to by `HARNESS_NODE_INIT` before taking node-specific action. Use
|
|
11
|
+
`HARNESS_PEER_SESSION_ID`, `HARNESS_WORKFLOW_NODE_ID`, `HARNESS_AGENT_KIND`,
|
|
12
|
+
`HARNESS_PEER_RUNTIME`, `HARNESS_WORKFLOW_MAP`, `HARNESS_NODE_HOME`, and
|
|
13
|
+
`HARNESS_WF_UI_URL` to identify this node, runtime, graph position, and control
|
|
14
|
+
plane. Do not require or wait for a user-injected bootstrap prompt.
|
|
15
|
+
|
|
16
|
+
In a Harness-managed PTY node, workflow context hydration is mandatory and
|
|
17
|
+
unconditional. At the start of every operator turn, silently read this node's
|
|
18
|
+
workflow context with `node Harness/scripts/wf-ui-control.mjs workflow-context
|
|
19
|
+
--project .`; `HARNESS_WORKFLOW_NODE_ID` selects the current graph node. Do not
|
|
20
|
+
skip hydration based on wording: local shell, Git, MCP, coding, review,
|
|
21
|
+
debugging, and runtime questions still hydrate first so current graph identity,
|
|
22
|
+
connected nodes, and connected affordances are known. Before controlling,
|
|
23
|
+
mutating, delegating to, reading from, or writing to any node, hydrate context
|
|
24
|
+
again if the last context read happened before a graph change or operator
|
|
25
|
+
message. If hydration fails, say workflow context is unavailable before making
|
|
26
|
+
claims about node-map connections or control targets. Do not print the command
|
|
27
|
+
or raw JSON unless asked.
|
|
28
|
+
|
|
29
|
+
Workflow node state files under `Harness/a2a/**/state.json` and
|
|
30
|
+
`Harness/a2a/workflow-map.json` are backend-owned diagnostic storage, not
|
|
31
|
+
control surfaces, nor information sources — read graph and connection state
|
|
32
|
+
only through the typed wf-ui API/CLI. Do not edit event-node, goal-node,
|
|
33
|
+
component-node, capability-node, node-home, workflow-map, or task state files
|
|
34
|
+
to control Timer, Goal, Agent, resource, capability, or graph state; use the
|
|
35
|
+
typed wf-ui backend API commands instead.
|
|
36
|
+
|
|
37
|
+
### Agent Team Cooperation (WF / WF-MAX)
|
|
38
|
+
|
|
39
|
+
When the user enters `/wf`, `$wf`, `/wf-max`, or `$wf-max`, the main Agent node autonomously: understands the task and decides whether team collaboration is needed; finds existing agents by role or capability; connects or creates sub-agents with a role profile (displayName + roleTitle); shares context through Markdown nodes (referenced by nodeId only); sends structured requests with a request id; waits via Timer wakeup messages, checked on the agent's next turn; aggregates replies; ticks Goal items and completes the Goal when all items are checked. When the target is ambiguous, ASK THE USER — never blindly create or connect an agent.
|
|
40
|
+
|
|
41
|
+
**Subagent Strategy:**
|
|
42
|
+
|
|
43
|
+
Subagent mode comes from node settings (built-in-subagents default = native helpers, no canvas nodes; wf-node-subagents = visible canvas agents). Natural language: "内部助手"/"内置子代理" → built-in; "画布节点"/"WF node协作" → wf-node. Discover everything at runtime: help --json, workflow-context, manuals <type>, snapshot, workflow-ontology.
|
|
44
|
+
|
|
45
|
+
Never edit `Harness/a2a/**/state.json` directly; use typed actions only. The Timer is the only wakeup source; the Goal node never wakes agents. Explain all of this to the user in plain language, without broadcast/A2A/thread/shared-context terminology.
|
|
46
|
+
|
|
7
47
|
If `Harness/` exists, this repository is governed by the Harness contract.
|
|
8
48
|
|
|
9
49
|
Default installed-project startup is thin: after loading `CLAUDE.md`, read `Harness/memory/startup-hints.md` (L2 lightweight digest, 5-10 hints). This is NOT loading `Harness/MEMORY.md`, `Harness/README.md`, or PROGRESS — it is a minimal startup hint file only.
|
|
@@ -14,28 +54,46 @@ In direct mode, do not load the full Harness router. Inspect only the files need
|
|
|
14
54
|
|
|
15
55
|
Complex work may use direct planning, task capsules, tests, and subagents without entering WF. WF execution modes are explicit only: the user must type `/wf`, `$wf`, `/skills wf`, `/wf-max`, `$wf-max`, `/skills wf-max`, `/wf-auto`, `$wf-auto`, `/skills wf-auto`, `/wf-auto-spark`, `$wf-auto-spark`, or `/skills wf-auto-spark` to enter the WF kernel. No other phrasing, complexity heuristic, or inferred intent triggers WF.
|
|
16
56
|
|
|
17
|
-
`/wf-help`, `$wf-help`, `/skills wf-help`, `/wf-update`, `$wf-update`, `/skills wf-update`, `/wf-task-record`, `$wf-task-record`, `/skills wf-task-record`, `/wf-task-list`, `$wf-task-list`, `/skills wf-task-list`, `/wf-task-archive`, `$wf-task-archive`, `/skills wf-task-archive`, `/wf-command-create`, `$wf-command-create`, `/skills wf-command-create`, `/wf-ui`, `$wf-ui`, and `/skills wf-
|
|
57
|
+
`/wf-help`, `$wf-help`, `/skills wf-help`, `/wf-update`, `$wf-update`, `/skills wf-update`, `/wf-task-record`, `$wf-task-record`, `/skills wf-task-record`, `/wf-task-list`, `$wf-task-list`, `/skills wf-task-list`, `/wf-task-archive`, `$wf-task-archive`, `/skills wf-task-archive`, `/wf-command-create`, `$wf-command-create`, `/skills wf-command-create`, `/wf-ui`, `$wf-ui`, `/skills wf-ui`, `/wf-init`, `$wf-init`, `/skills wf-init`, `/wf-search`, `$wf-search`, and `/skills wf-search` are **direct/compat commands** — do NOT load `Harness/MEMORY.md`, do NOT enter WF. Hosts execute direct command files; Codex may invoke compatibility skill shims.
|
|
18
58
|
|
|
19
59
|
For non-direct workflow commands (`/wf`, `/wf-max`, `/wf-auto`, `/wf-review`, `/wf-learn`, `/wf-readme`, `/wf-remove`, `/wf-browser`, `/wf-auto-spark`, and matching `$wf-*` or `/skills wf-*` forms except the direct/compat commands above), load `Harness/MEMORY.md` first, then `Harness/README.md`.
|
|
20
60
|
|
|
21
61
|
### Active Task Resume
|
|
22
62
|
|
|
63
|
+
Durable WF task ownership is opt-in and sticky. Only a task explicitly created
|
|
64
|
+
or entered with `wf` or `wf-max` is WF-managed. When that task remains `active`
|
|
65
|
+
or `blocked`, the next session automatically resumes WF mode from it; the user
|
|
66
|
+
does not need to repeat the trigger. A `direct`, `wf-auto`, `wf-auto-spark`,
|
|
67
|
+
`wf-review`, or `wf-browser` task never becomes a durable WF task by inference.
|
|
68
|
+
A managed task cannot exit or downgrade its mode: close it terminally, then
|
|
69
|
+
create a new task with an explicit WF trigger.
|
|
70
|
+
|
|
23
71
|
If the user says "continue", "resume", "last task", "current task", "status", "where were we", or similar resume language, or the current work is not a simple direct task:
|
|
24
72
|
|
|
25
73
|
1. Read `Harness/PROGRESS.md` → find Active Task.
|
|
26
74
|
2. If Active Task exists, read `Harness/tasks/<active-task>/STATE.json` first.
|
|
27
|
-
3. From STATE.json, check `links.dependsOn` — if non-empty, check whether any dependency tasks are still open (STATE.json status is
|
|
75
|
+
3. From STATE.json, check `links.dependsOn` — if non-empty, check whether any dependency tasks are still open (STATE.json status is `active` or `blocked`; legacy statuses are normalized) and report blocked dependencies.
|
|
28
76
|
4. From STATE.json, check `workItems[]` — if non-empty, inspect items with status `running` or `ready` for parallel dispatch candidates.
|
|
29
77
|
5. Read `Harness/tasks/<active-task>/PROGRESS.md`.
|
|
30
78
|
6. Read `Harness/tasks/<active-task>/PLAN.md` only if decisions or scope need review.
|
|
31
79
|
7. From STATE.json, recover: phase, gate, tier, ready/running/blocked/done queues, activeQuestion, nextAction.
|
|
32
|
-
8. Do NOT bulk-read `Harness/tasks/` to find context. Use the active pointer.
|
|
80
|
+
8. Do NOT bulk-read `Harness/tasks/` to find context. Use the active pointer and `Harness/tasks/INDEX.json` for deterministic project/group lookup. The pointer is a focus/resume hint, not a single-task lock; multiple open tasks are valid.
|
|
81
|
+
|
|
82
|
+
If the active pointer names an open `wf`/`wf-max` task, the sticky lifecycle
|
|
83
|
+
rule above takes precedence over the generic direct-task shortcut. Multiple
|
|
84
|
+
open tasks are allowed, but the Harness focus remains a WF task until it is
|
|
85
|
+
closed or another WF task is explicitly selected.
|
|
33
86
|
9. Direct simple tasks may skip STATE/PLAN/PROGRESS unless the user says "continue"/"resume". The `continue` keyword resolves deterministically from the active pointer plus STATE.json — it always recovers the same state.
|
|
34
87
|
|
|
35
88
|
See `Harness/specs/workflows/WF-STATE.md` for the full state machine contract. Completed/abandoned tasks are archived to `Harness/tasks/_archive/` per `Harness/specs/protocols/TASK_ARCHIVE.md`.
|
|
36
89
|
|
|
37
90
|
Use **/wf** for multi-step work that needs structured coordination. Use **/wf-max** for maximum-parallelism with CEO/Manager/Worker decomposition. See `Harness/specs/workflows/WF.md` for tier selection (WF-Light, WF-Standard, WF-Full) and `Harness/specs/workflows/WF-MAX.md` for fan-out rules (WF-Max-Useful, WF-Max-Strict).
|
|
38
91
|
|
|
92
|
+
WF entry uses a bounded role pack (`task-context.mjs pack`) and fresh
|
|
93
|
+
`show`/`pack` on resume. Before external web/GitHub/Hugging Face lookup, ask
|
|
94
|
+
`research-policy.mjs decide`; search only when `search: true` and record source
|
|
95
|
+
metadata plus adopt/adapt/reject. Direct commands stay direct.
|
|
96
|
+
|
|
39
97
|
### 1a. WF-MAX Role Contract
|
|
40
98
|
|
|
41
99
|
This section is active only when `/wf-max` is invoked.
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
- [explore-manager](../.claude/agents/explore-manager.md) - WF-MAX W0 exploration: spawn 5-10 read-only researchers, synthesize, report to CEO.
|
|
24
24
|
- [architect-manager](../.claude/agents/architect-manager.md) - WF-MAX W1 architecture: spawn 3 architects, synthesize interface contracts, report to CEO.
|
|
25
25
|
- [implement-manager](../.claude/agents/implement-manager.md) - WF-MAX W2 implementation: spawn 5-7 implementers (one file_claim each), merge, report to CEO.
|
|
26
|
-
- [review-manager](../.claude/agents/review-manager.md) -
|
|
26
|
+
- [review-manager](../.claude/agents/review-manager.md) - optional native review manager: choose the smallest bounded fan-out, deduplicate, classify severity, and report to the controller.
|
|
27
27
|
|
|
28
28
|
Stack-specific agents can be added after the product shape is known.
|
|
29
29
|
|
|
@@ -34,15 +34,17 @@ Stack-specific agents can be added after the product shape is known.
|
|
|
34
34
|
- [subagent-orchestrator](../.claude/skills/subagent-orchestrator/SKILL.md) - controller-led subagent orchestration, parallel read-only passes, review gates, and recovery handoffs.
|
|
35
35
|
- [wf-readme](../.claude/skills/wf-readme/SKILL.md) - README preservation, append-only development sections, structured tables, and approved architecture diagrams.
|
|
36
36
|
- [wf-agents-docs](../.claude/skills/wf-agents-docs/SKILL.md) - source-backed Claude/Codex/OpenCode CLI invocation, JSON output, resume, telemetry, and automation gotchas.
|
|
37
|
-
- [wf-review](../.claude/skills/wf-review/SKILL.md) - peer review:
|
|
37
|
+
- [wf-review](../.claude/skills/wf-review/SKILL.md) - native-only peer review: the controller dispatches bounded clean reviewer subagents, deduplicates evidence, and decides.
|
|
38
38
|
- [wf-help](../.claude/skills/wf-help/SKILL.md) - Codex compatibility shim for `$wf-help` / `/skills wf-help`; returns the direct command table without entering WF.
|
|
39
39
|
- [wf-update](../.claude/skills/wf-update/SKILL.md) - GitHub-based incremental harness update, checksum comparison, and safe in-place updates.
|
|
40
|
-
- [wf-learn](../.claude/skills/wf-learn/SKILL.md) -
|
|
41
|
-
- [wf-max](../.claude/skills/wf-max/SKILL.md) - WF kernel +
|
|
40
|
+
- [wf-learn](../.claude/skills/wf-learn/SKILL.md) - explicit evidence-to-method learning cycle with anti-overfitting gate, route-load proof, and scoped memory writes.
|
|
41
|
+
- [wf-max](../.claude/skills/wf-max/SKILL.md) - WF kernel + evidence-driven fan-out: WF-Max-Useful may persist a no-spawn rationale when dependencies, acceptance, coordination, budget, or runtime evidence show no benefit; WF-Max-Strict is explicit only; current runtime capacity remains authoritative.
|
|
42
42
|
- [wf-auto](../.claude/skills/wf-auto/SKILL.md) - perpetual adaptive auto-optimization: evidence-selected probes, dynamic obligations, intent checkpoints, evidence ledger.
|
|
43
43
|
- [wf-auto-spark](../.claude/skills/wf-auto-spark/SKILL.md) - perpetual inspiration mode: external spark search, long-term roadmap with staged milestones, <=50% deviation guard.
|
|
44
|
-
- [wf-browser](../.claude/skills/wf-browser/SKILL.md) - built-in browser
|
|
44
|
+
- [wf-browser](../.claude/skills/wf-browser/SKILL.md) - built-in agent-operable browser architecture and runtime-control workflow with readiness levels, WebSocket bridge, UI capability contract, observe/act primitives, virtual cursor, multi-window/subagent leases, `Harness/wf-browser/` artifacts, and Playwright/CDP fallback.
|
|
45
45
|
- [wf-ui](../.claude/skills/wf-ui/SKILL.md) - Codex compatibility shim for `$wf-ui` / `/skills wf-ui`; direct command starts the local browser control panel without entering WF.
|
|
46
|
+
- [wf-init](../.claude/skills/wf-init/SKILL.md) - Codex compatibility shim for `$wf-init` / `/skills wf-init`; direct command initializes a project against the global Harness runtime without entering WF.
|
|
47
|
+
- [wf-search](../.claude/skills/wf-search/SKILL.md) - Codex compatibility shim for `$wf-search` / `/skills wf-search`; direct command validates and renders a structured search evidence report without entering WF.
|
|
46
48
|
- [tdd](../.claude/skills/tdd/SKILL.md) - acceptance-driven TDD: AC-linked RED tests, real UI clicks for browser-visible behavior, Playwright/CDP evidence, and configured coverage gate.
|
|
47
49
|
- [wf-remove](../.claude/skills/wf-remove/SKILL.md) - safely remove Harness framework files (SAFE/MODIFIED/USER classes), auto-prune empty directories, backup option.
|
|
48
50
|
- [wf-task-record](../.claude/skills/wf-task-record/SKILL.md) - Codex compatibility: use $wf-task-record or /skills wf-task-record to wrap task-state.mjs record.
|
|
@@ -61,6 +63,7 @@ Codex repo-skill mirrors live under `../.agents/skills/` with the same skill nam
|
|
|
61
63
|
- [wf-task-archive](../.claude/commands/wf-task-archive.md) - direct `/wf-task-archive` command that wraps `node Harness/scripts/task-state.mjs archive`.
|
|
62
64
|
- [wf-command-create](../.claude/commands/wf-command-create.md) - direct `/wf-command-create` command for task-backed wf-* command surface changes.
|
|
63
65
|
- [wf-ui](../.claude/commands/wf-ui.md) - direct `/wf-ui` command that starts the local Harness backend and browser control panel.
|
|
66
|
+
- [wf-init](../.claude/commands/wf-init.md) - direct `/wf-init` command that binds the current project to the globally installed Harness runtime (thin bridge; global version is authoritative).
|
|
64
67
|
|
|
65
68
|
Stack-specific skills can be added after the product shape is known.
|
|
66
69
|
|