@iowarp/clio-coder 0.4.5 → 0.4.7
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/.claude-plugin/marketplace.json +283 -0
- package/CHANGELOG.md +74 -0
- package/CONTRIBUTING.md +116 -38
- package/NOTICE +24 -0
- package/README.md +341 -682
- package/dist/{acp-H3CU2HBQ.js → acp-W3Y3TRHD.js} +12 -12
- package/dist/{agents-IXQQZ7BD.js → agents-J4ICNLQ3.js} +57 -56
- package/dist/assets/codewiki.json +1 -1
- package/dist/assets/tui-notices/get-east-asian-width-LICENSE +9 -0
- package/dist/assets/tui-notices/marked-LICENSE +44 -0
- package/dist/assets/tui-notices/pi-tui-LICENSE +21 -0
- package/dist/{auth-R7KYF7N3.js → auth-X2UJUMOC.js} +25 -25
- package/dist/{builtins-CRFDQUVP.js → builtins-XLXWWSRF.js} +6 -6
- package/dist/{chunk-DZK63TZJ.js → chunk-24S3DN22.js} +336 -612
- package/dist/{chunk-NTK3WTHM.js → chunk-24TOGHPO.js} +2 -2
- package/dist/{chunk-M6TAYK66.js → chunk-2O2LVQQK.js} +11 -4
- package/dist/{chunk-OQM5IVJY.js → chunk-34XHRVKG.js} +3 -3
- package/dist/{chunk-LY4N4TTL.js → chunk-3LXJOICS.js} +2 -2
- package/dist/{chunk-SE4ZKILO.js → chunk-3XE4NRLF.js} +30 -9
- package/dist/{chunk-YYB3MC65.js → chunk-4MFBBY2Z.js} +3 -3
- package/dist/{chunk-5VTJP36Q.js → chunk-4N2RZ4TO.js} +2 -2
- package/dist/{chunk-FKIOX6DS.js → chunk-4QKAITQT.js} +10 -5
- package/dist/chunk-4UHVS5T7.js +207 -0
- package/dist/{chunk-VLPTKCKT.js → chunk-5AJPUR72.js} +6 -6
- package/dist/{chunk-5CY4Q6QI.js → chunk-5EQO5NWP.js} +105 -3
- package/dist/{chunk-RXIOCVBZ.js → chunk-65BGHOUR.js} +8 -5
- package/dist/{chunk-T53XI6I7.js → chunk-6CA2BHOR.js} +2 -2
- package/dist/{chunk-HL26ADLH.js → chunk-6CB2IL4N.js} +2 -1
- package/dist/{chunk-HR3HPQ76.js → chunk-6LRLOJHQ.js} +3 -3
- package/dist/{chunk-HXHFDHB6.js → chunk-6TAATXXH.js} +6 -6
- package/dist/{chunk-WFKDPU7U.js → chunk-6YHPAAZR.js} +3 -3
- package/dist/{chunk-ZMZQEBKI.js → chunk-7EEGBKV4.js} +11 -11
- package/dist/{chunk-BS4GAMUB.js → chunk-A67NR5AT.js} +2 -2
- package/dist/{chunk-WJIMKGD6.js → chunk-BAU36233.js} +8 -8
- package/dist/{chunk-MDU3C27C.js → chunk-BO4XV5VX.js} +8 -8
- package/dist/{chunk-KF6GFW6O.js → chunk-BQQ5MXUC.js} +11 -11
- package/dist/{chunk-K6RDB7IA.js → chunk-C3G5PNUO.js} +23 -23
- package/dist/{chunk-SRZOW5L2.js → chunk-C6GEXX4L.js} +1 -1
- package/dist/{chunk-U2JOLB7O.js → chunk-CE64C5K5.js} +227 -72
- package/dist/chunk-CP3HIR5H.js +2119 -0
- package/dist/{chunk-BBV5TKE6.js → chunk-CPXGJI2A.js} +2 -2
- package/dist/{chunk-5DDOTTG4.js → chunk-CULVKYTK.js} +5 -5
- package/dist/{chunk-F34AR6O3.js → chunk-D2T66PDV.js} +6 -6
- package/dist/{chunk-NF3BK5WR.js → chunk-DACXIVVF.js} +5 -5
- package/dist/{chunk-4SVIVOMC.js → chunk-DLIYANB7.js} +20 -15
- package/dist/{chunk-E3BQTQUP.js → chunk-DO7M3LSX.js} +9 -9
- package/dist/{chunk-2QPI3TR3.js → chunk-DVJL77SO.js} +2 -2
- package/dist/chunk-EM2WNQS2.js +93 -0
- package/dist/{chunk-ODUTYZIU.js → chunk-EUEXGXXR.js} +5 -5
- package/dist/{chunk-UL36QJX6.js → chunk-EUZRMP4Y.js} +18 -16
- package/dist/{chunk-R6MAYTMS.js → chunk-G4LGUTOE.js} +4 -4
- package/dist/{chunk-CBSKDFWL.js → chunk-GEVQNST4.js} +2 -2
- package/dist/{chunk-XXBQKW32.js → chunk-GFQ7P2UF.js} +7 -7
- package/dist/{chunk-SBZX6ARC.js → chunk-GI5RRMAH.js} +14 -14
- package/dist/{chunk-KDWLXVMN.js → chunk-GVZFCJHE.js} +343 -113
- package/dist/{chunk-633EXGZA.js → chunk-GXIWHXDB.js} +3 -3
- package/dist/{chunk-LUL5Z66S.js → chunk-HOX4YZ2K.js} +6 -5
- package/dist/chunk-HRAKUPIH.js +57 -0
- package/dist/{chunk-KYKNBD4Y.js → chunk-IJMW64DX.js} +978 -258
- package/dist/{chunk-DIMRLNIC.js → chunk-IMOD2YPV.js} +16 -9
- package/dist/{chunk-6CDNRHWH.js → chunk-IQCNVLO6.js} +28 -8
- package/dist/{chunk-UTUNT5QL.js → chunk-ISNCCX42.js} +9 -9
- package/dist/{chunk-RLTT5GVY.js → chunk-IZYTT3CD.js} +9 -5
- package/dist/{chunk-5ZMXGW7P.js → chunk-KAFMW7WM.js} +4 -85
- package/dist/chunk-KKEYGFX4.js +915 -0
- package/dist/{chunk-HHVJNVUJ.js → chunk-KS7ETA3P.js} +2 -2
- package/dist/{chunk-UXAC2FX4.js → chunk-L3Z5ANCV.js} +7 -7
- package/dist/{chunk-EHCPSZJF.js → chunk-LBFQMYS3.js} +2 -2
- package/dist/{chunk-QEQISF75.js → chunk-LK2FN5JY.js} +1 -1
- package/dist/{chunk-URBGEOH3.js → chunk-M6Z2V6YU.js} +5 -5
- package/dist/{chunk-DRD2A54W.js → chunk-MBJO5VNZ.js} +18 -18
- package/dist/chunk-MNQN3X6Y.js +595 -0
- package/dist/{chunk-GXCCHKN6.js → chunk-MZHXENL7.js} +7 -7
- package/dist/chunk-MZNWZUJM.js +1801 -0
- package/dist/{chunk-7YJWEF2L.js → chunk-N37QC5FV.js} +5 -5
- package/dist/{chunk-WLMSOT73.js → chunk-NCCQ6DVS.js} +7 -7
- package/dist/{chunk-TZ7MFRG4.js → chunk-NO7J45X6.js} +170 -53
- package/dist/chunk-OH3YYA3B.js +15 -0
- package/dist/{chunk-22PQ4TX4.js → chunk-P4DL2LM5.js} +16 -77
- package/dist/{chunk-R6MICQYU.js → chunk-PFLOULP3.js} +4 -4
- package/dist/{chunk-MC3JSVR6.js → chunk-QJMRYTCX.js} +7 -7
- package/dist/{chunk-ILJ7DWGE.js → chunk-QKWL7SYE.js} +12 -12
- package/dist/chunk-R2CT5YDO.js +66 -0
- package/dist/chunk-RFCKPS2V.js +26 -0
- package/dist/{chunk-ONRTXOZY.js → chunk-RTLNFZMD.js} +12 -4
- package/dist/{chunk-U7H5WRG5.js → chunk-RXFPB32E.js} +8 -6
- package/dist/{chunk-S32UQ5GL.js → chunk-SEDI5K5B.js} +18 -18
- package/dist/{chunk-ICO4TQ2F.js → chunk-SELG4SUR.js} +41 -25
- package/dist/{chunk-YEJIG7LN.js → chunk-SER7RRAE.js} +27 -832
- package/dist/{chunk-K2HL3GBL.js → chunk-T4TY5GG3.js} +165 -15
- package/dist/chunk-T7QQBNLH.js +691 -0
- package/dist/{chunk-HGSLRG33.js → chunk-TLTGZTXI.js} +3 -3
- package/dist/chunk-TZ6UVP2H.js +637 -0
- package/dist/{chunk-EWD5P3GK.js → chunk-TZHN5ITX.js} +13 -41
- package/dist/{chunk-7TKWWPD7.js → chunk-U3TPUXOQ.js} +398 -253
- package/dist/{chunk-GNQRWTMY.js → chunk-UA3W4FGC.js} +6 -6
- package/dist/{chunk-O2RQ7LCK.js → chunk-UA6W4XFJ.js} +2 -2
- package/dist/chunk-UWD3JD5X.js +709 -0
- package/dist/chunk-V4ZKOKRB.js +13433 -0
- package/dist/{chunk-NC4KV7EL.js → chunk-VCRVEDUC.js} +5 -5
- package/dist/{chunk-I7VLWRK2.js → chunk-VMATUZB6.js} +12 -10
- package/dist/{chunk-J2FYEQ5L.js → chunk-VTYHHQ57.js} +2 -2
- package/dist/chunk-WB7POC6M.js +891 -0
- package/dist/{chunk-GVYWZNRK.js → chunk-WBVKKTUT.js} +2 -2
- package/dist/{chunk-EHOSNVVM.js → chunk-WLHX3MM5.js} +6 -2
- package/dist/{chunk-SDWNDICN.js → chunk-WN552PKN.js} +573 -316
- package/dist/{chunk-TEG3RYVZ.js → chunk-WT5TRMO4.js} +51 -26
- package/dist/{chunk-NY6IWDVU.js → chunk-WURGVOZJ.js} +56 -12
- package/dist/{chunk-7WUZEB2M.js → chunk-XR3XJN2M.js} +2 -2
- package/dist/chunk-XW2UZICE.js +372 -0
- package/dist/{chunk-FSTIBAGM.js → chunk-XZ6UFQ52.js} +11 -11
- package/dist/chunk-Y3JU5RPK.js +8 -0
- package/dist/chunk-YKRJTYNP.js +1143 -0
- package/dist/{chunk-7HBHHVCK.js → chunk-YPRSNUTC.js} +2 -2
- package/dist/{chunk-PWWSIB2A.js → chunk-ZGIGW4ZG.js} +5 -5
- package/dist/cli/index.js +34 -36
- package/dist/{clio-5I2IBFYL.js → clio-L2P7S2R2.js} +9 -9
- package/dist/{code-nav-YXIAEZVS.js → code-nav-B5LNX4KU.js} +25 -25
- package/dist/{components-TNIKXCBH.js → components-63MMQKUT.js} +6 -6
- package/dist/{config-Y2JDJ3JJ.js → config-YXARKGTX.js} +81 -77
- package/dist/configure-LMVQJ46J.js +85 -0
- package/dist/{context-QQ53HSGJ.js → context-7HJEWTTP.js} +92 -48
- package/dist/{context-S2EEC3EJ.js → context-XSZKKFBW.js} +14 -14
- package/dist/{context-P5YSEO55.js → context-YG2LZDYZ.js} +67 -64
- package/dist/{context-clear-TMEQCOTH.js → context-clear-AC5NXHM2.js} +64 -61
- package/dist/{context-index-HP2JFUWA.js → context-index-KKTPRV5G.js} +3 -3
- package/dist/{context-map-INTXD54D.js → context-map-T7ROR5D5.js} +4 -4
- package/dist/{context-working-set-CNLSQN5K.js → context-working-set-F4Q4J3NS.js} +15 -12
- package/dist/{detail-5572VLBO.js → detail-H73BEF2N.js} +65 -62
- package/dist/{dispatch-runner-FRHD6P2O.js → dispatch-runner-3RY5FSJC.js} +83 -80
- package/dist/{doctor-N3LCM2LG.js → doctor-EQYJOGUG.js} +47 -32
- package/dist/{eval-BUU3ZOUZ.js → eval-4P7O6CCE.js} +114 -50
- package/dist/{evidence-DTGEN456.js → evidence-D6GUSYJW.js} +64 -61
- package/dist/{evidence-SQ5DNFEN.js → evidence-O76QF7TZ.js} +69 -65
- package/dist/{evolve-IJNUFZDS.js → evolve-H47BCETS.js} +65 -62
- package/dist/{extensions-YVRHX6ZI.js → extensions-NNL3ZOCU.js} +98 -20
- package/dist/{fleet-ZNNVSYFO.js → fleet-KMNS6NOM.js} +115 -107
- package/dist/{fleet-commands-5YE7NPJL.js → fleet-commands-DOWSYCBX.js} +15 -15
- package/dist/{fleet-decisions-3SBSCTCW.js → fleet-decisions-S3PTZV2D.js} +9 -9
- package/dist/{fleet-graph-6HHPWF5T.js → fleet-graph-F2DE2TME.js} +26 -24
- package/dist/{fleet-inspect-JEYMGCGC.js → fleet-inspect-EN2Q6IVB.js} +67 -63
- package/dist/{fleet-preflight-QRSHIIDE.js → fleet-preflight-FRLETDD3.js} +3 -3
- package/dist/{fleet-validate-4PM4GDDL.js → fleet-validate-B2XDLS57.js} +28 -29
- package/dist/{fleet-verify-NJDTHTO3.js → fleet-verify-4JKUWGJ7.js} +64 -61
- package/dist/{fleet-view-UP2BWQQY.js → fleet-view-BHJFW26B.js} +67 -63
- package/dist/{init-S3GZQ5ZF.js → init-XAT5N5YM.js} +86 -80
- package/dist/interop-FVECHFKG.js +246 -0
- package/dist/{inventory-K2OZ36YJ.js → inventory-7KFQGLCV.js} +67 -63
- package/dist/library-NY2XOT75.js +492 -0
- package/dist/library-QAPAO23R.js +306 -0
- package/dist/library-import-5Y6MAS3R.js +183 -0
- package/dist/library-inventory-JT6HWITQ.js +56 -0
- package/dist/library-validation-EQUH25DC.js +42 -0
- package/dist/{memory-OQOXQGYD.js → memory-DYVTTCP6.js} +65 -62
- package/dist/{models-3IK2Y5WE.js → models-MASFJ6Y2.js} +51 -38
- package/dist/{monitor-FTJLTKCQ.js → monitor-YMP4NXJJ.js} +73 -69
- package/dist/{orchestrator-N47O7SFD.js → orchestrator-AFQRRTEI.js} +4255 -2845
- package/dist/{panes-7BTYH3XQ.js → panes-D3Y2KFG5.js} +4 -4
- package/dist/{panes-WPOMEMRH.js → panes-NICTHQCV.js} +7 -7
- package/dist/{paths-J3KN7UAO.js → paths-PSFAUIGO.js} +5 -5
- package/dist/{preload-65U34NG6.js → preload-5Q7VXRFJ.js} +64 -61
- package/dist/{reset-MUVQDLNL.js → reset-7NKZK7JN.js} +11 -9
- package/dist/{resources-LM76COAO.js → resources-NILSIZAT.js} +94 -38
- package/dist/{run-3VFZQ33N.js → run-BPZGEBZV.js} +131 -114
- package/dist/{share-4JUB4BL7.js → share-EZ6ERBMH.js} +31 -28
- package/dist/skills-BTVVNYVM.js +100 -0
- package/dist/{skills-eval-G6T57L7M.js → skills-eval-UY34MNK7.js} +117 -78
- package/dist/{skills-inventory-WLM46PJH.js → skills-inventory-JDHSIA7I.js} +30 -25
- package/dist/{slash-commands-GBARG3Y7.js → slash-commands-K4FNQ2AT.js} +53 -49
- package/dist/{steer-S7D7IKPU.js → steer-2B3EQGFH.js} +4 -4
- package/dist/{support-5VAEC32W.js → support-L2SOL3IE.js} +7 -7
- package/dist/{targets-N5REUETU.js → targets-44VKGFLN.js} +69 -47
- package/dist/{tasks-6BVY5YZF.js → tasks-3KODKFU7.js} +14 -14
- package/dist/{terminal-lease-57UEOJKS.js → terminal-lease-LXA7MMPO.js} +32 -19
- package/dist/{tools-6OCQ6SVB.js → tools-3UB7TEVR.js} +7 -7
- package/dist/{trace-JHLXWUMN.js → trace-TAMIU4OJ.js} +5 -4
- package/dist/{tui-primitives-RCY2HN7G.js → tui-primitives-A6MUW32V.js} +3 -2
- package/dist/{uninstall-FXYMFFRT.js → uninstall-QYVRPEM4.js} +9 -9
- package/dist/{upgrade-4HD5HAIV.js → upgrade-7PMKM2JH.js} +17 -18
- package/dist/{usage-4GWM2WWP.js → usage-6EQV7EQK.js} +77 -73
- package/dist/{verifiers-GSKWKWVG.js → verifiers-JLITWSHU.js} +16 -16
- package/dist/{verify-3AS3ULCY.js → verify-T7NAEVIG.js} +13 -13
- package/dist/{web-fetch-MQN4FH3X.js → web-fetch-W4TNW4Q7.js} +4 -4
- package/dist/{wiki-generate-7BV7XWIY.js → wiki-generate-T2TJQJUA.js} +90 -84
- package/dist/{with-panes-OFTNAR4Y.js → with-panes-CHFC7HGI.js} +4 -4
- package/dist/worker/entry.js +297 -88
- package/docs/README.md +43 -0
- package/docs/architecture/architecture.md +8 -7
- package/docs/architecture/artifact-versions.md +3 -3
- package/docs/architecture/context-engine.md +36 -2
- package/docs/architecture/library.md +32 -0
- package/docs/architecture/middleware-and-components.md +1 -1
- package/docs/architecture/model-catalog.md +21 -1
- package/docs/architecture/pi-boundary.md +18 -0
- package/docs/architecture/prompt-envelope-and-tools.md +5 -5
- package/docs/architecture/safety-model.md +21 -2
- package/docs/architecture/session-lifecycle.md +12 -1
- package/docs/architecture/tui-design.md +153 -39
- package/docs/architecture/worker-context.md +106 -0
- package/docs/guide/authoring-plugins.md +160 -0
- package/docs/guide/built-in-agents.md +5 -5
- package/docs/guide/commands-and-modes.md +186 -80
- package/docs/guide/configuration-and-targets.md +123 -28
- package/docs/guide/configuration-reference.md +36 -38
- package/docs/guide/environment-variables.md +2 -2
- package/docs/guide/exit-codes-and-output.md +1 -1
- package/docs/guide/extensions-and-sharing.md +93 -53
- package/docs/guide/fleet-dispatch.md +32 -10
- package/docs/guide/glossary.md +2 -2
- package/docs/guide/harness-extensions.md +291 -0
- package/docs/guide/installation-and-lifecycle.md +53 -20
- package/docs/guide/interop.md +243 -0
- package/docs/guide/panes-and-files.md +3 -3
- package/docs/guide/plugins.md +80 -0
- package/docs/guide/resource-library.md +111 -45
- package/docs/guide/skills-marketplace.md +35 -72
- package/docs/guide/tool-usage.md +19 -7
- package/docs/guide/troubleshooting.md +1 -1
- package/docs/process/development-pipeline.md +15 -15
- package/docs/process/documentation-coverage.md +29 -2
- package/docs/process/documentation-guide.md +15 -7
- package/docs/process/eval-runner.md +8 -3
- package/docs/process/performance-methodology.md +1 -1
- package/docs/process/release-cut-checklist.md +22 -6
- package/docs/process/scientific-validation.md +23 -0
- package/evals/scalar-decision-machinery.ts +1 -1
- package/examples/extensions/README.md +67 -0
- package/examples/extensions/lab-status/clio-coder-extension.json +14 -0
- package/examples/extensions/lab-status/extension.mjs +68 -0
- package/examples/extensions/lab-status/jobs.synthetic.json +9 -0
- package/examples/extensions/measurements/clio-coder-extension.json +28 -0
- package/examples/extensions/measurements/summarize.cjs +23 -0
- package/library/README.md +109 -0
- package/library/_authoring/templates/agent/README.md +28 -0
- package/library/_authoring/templates/agent/agents/benchmark-scout.md +30 -0
- package/library/_authoring/templates/agent/plugin.json +23 -0
- package/library/_authoring/templates/fleet/README.md +29 -0
- package/library/_authoring/templates/fleet/fleets/pipeline-review.md +31 -0
- package/library/_authoring/templates/fleet/plugin.json +23 -0
- package/library/_authoring/templates/plugin/README.md +37 -0
- package/library/_authoring/templates/plugin/agents/data-curator.md +31 -0
- package/library/_authoring/templates/plugin/assets/curation-guide.md +22 -0
- package/library/_authoring/templates/plugin/plugin.json +42 -0
- package/library/_authoring/templates/plugin/prompts/inspect-dataset.md +15 -0
- package/library/_authoring/templates/plugin/skills/dataset-curation/SKILL.md +36 -0
- package/library/_authoring/templates/plugin/skills/dataset-curation/evals.md +17 -0
- package/library/_authoring/templates/prompt/README.md +28 -0
- package/library/_authoring/templates/prompt/plugin.json +23 -0
- package/library/_authoring/templates/prompt/prompts/paper-summary.md +26 -0
- package/library/_authoring/templates/skill/README.md +24 -0
- package/library/_authoring/templates/skill/SKILL.md +39 -0
- package/library/_authoring/templates/skill/evals.md +30 -0
- package/library/_authoring/templates/skill/plugin.json +23 -0
- package/library/agents/README.md +7 -0
- package/library/fleets/README.md +7 -0
- package/library/plugins/materio/README.md +137 -0
- package/library/plugins/materio/ai.iowarp.clio/agents/materio-lab-definer.md +208 -0
- package/library/plugins/materio/ai.iowarp.clio/agents/materio-literature-reviewer.md +308 -0
- package/library/plugins/materio/ai.iowarp.clio/agents/materio-research-explorer.md +249 -0
- package/library/plugins/materio/ai.iowarp.clio/agents/materio-task-executor.md +416 -0
- package/library/plugins/materio/ai.iowarp.clio/agents/materio-task-verifier.md +60 -0
- package/library/plugins/materio/ai.iowarp.clio/agents/materio-workflow-planner.md +238 -0
- package/library/plugins/materio/ai.iowarp.clio/fleets/materio-execute-task.md +50 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/add-task.md +66 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/archive-task.md +65 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/checkpoint.md +26 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/define-research-tasks.md +230 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/define-virtual-lab.md +181 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/execute-task.md +292 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/help.md +129 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/identify-research.md +206 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/literature-review.md +201 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/pause-research.md +12 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/progress.md +105 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/remove-task.md +63 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/resume-research.md +64 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/settings.md +16 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/status.md +92 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/upload-data.md +104 -0
- package/library/plugins/materio/ai.iowarp.clio/prompts/materio/wtfp.md +145 -0
- package/library/plugins/materio/ai.iowarp.clio/references/execution.md +56 -0
- package/library/plugins/materio/ai.iowarp.portability/provenance.json +9 -0
- package/library/plugins/materio/assets/actions/add-task.md +86 -0
- package/library/plugins/materio/assets/actions/archive-task.md +84 -0
- package/library/plugins/materio/assets/actions/checkpoint.md +47 -0
- package/library/plugins/materio/assets/actions/define-research-tasks.md +228 -0
- package/library/plugins/materio/assets/actions/define-virtual-lab.md +179 -0
- package/library/plugins/materio/assets/actions/execute-task.md +290 -0
- package/library/plugins/materio/assets/actions/help.md +140 -0
- package/library/plugins/materio/assets/actions/identify-research.md +204 -0
- package/library/plugins/materio/assets/actions/literature-review.md +199 -0
- package/library/plugins/materio/assets/actions/pause-research.md +34 -0
- package/library/plugins/materio/assets/actions/progress.md +125 -0
- package/library/plugins/materio/assets/actions/remove-task.md +82 -0
- package/library/plugins/materio/assets/actions/resume-research.md +84 -0
- package/library/plugins/materio/assets/actions/settings.md +38 -0
- package/library/plugins/materio/assets/actions/status.md +112 -0
- package/library/plugins/materio/assets/actions/upload-data.md +123 -0
- package/library/plugins/materio/assets/actions/wtfp.md +179 -0
- package/library/plugins/materio/assets/references/research-domains.md +134 -0
- package/library/plugins/materio/assets/references/research-policy.md +77 -0
- package/library/plugins/materio/assets/references/traditional-workflows.md +146 -0
- package/library/plugins/materio/assets/scripts/check_physics.py +271 -0
- package/library/plugins/materio/assets/scripts/check_scripts.py +248 -0
- package/library/plugins/materio/assets/scripts/project_plugin.py +165 -0
- package/library/plugins/materio/assets/scripts/research_state.py +400 -0
- package/library/plugins/materio/assets/scripts/verify_citations.py +616 -0
- package/library/plugins/materio/assets/templates/RESEARCH.md +39 -0
- package/library/plugins/materio/assets/templates/VIRTUAL-LAB.md +120 -0
- package/library/plugins/materio/assets/templates/WORKFLOW.md +42 -0
- package/library/plugins/materio/assets/templates/config.json +5 -0
- package/library/plugins/materio/evals/scripts.yaml +29 -0
- package/library/plugins/materio/plugin.json +530 -0
- package/library/plugins/materio/skills/materio-lab-definer/SKILL.md +74 -0
- package/library/plugins/materio/skills/materio-literature-reviewer/SKILL.md +64 -0
- package/library/plugins/materio/skills/materio-research-explorer/SKILL.md +74 -0
- package/library/plugins/materio/skills/materio-task-executor/SKILL.md +214 -0
- package/library/plugins/materio/skills/materio-task-verifier/SKILL.md +46 -0
- package/library/plugins/materio/skills/materio-workflow-planner/SKILL.md +79 -0
- package/library/plugins/materio/tests/test_check_physics.py +139 -0
- package/library/plugins/materio/tests/test_check_scripts.py +140 -0
- package/library/plugins/materio/tests/test_research_state.py +291 -0
- package/library/plugins/materio/tests/test_verify_citations.py +337 -0
- package/library/prompts/README.md +7 -0
- package/library/registry.yaml +921 -0
- package/library/skills/README.md +120 -0
- package/{skills → library/skills}/coding/ast-grep/SKILL.md +1 -1
- package/{skills → library/skills}/coding/ast-grep/evals.md +1 -1
- package/library/skills/coding/ast-grep/plugin.json +23 -0
- package/{skills → library/skills}/coding/coding-standards/SKILL.md +1 -1
- package/{skills → library/skills}/coding/coding-standards/evals.md +1 -1
- package/library/skills/coding/coding-standards/plugin.json +23 -0
- package/{skills → library/skills}/coding/prototype/SKILL.md +1 -1
- package/{skills → library/skills}/coding/prototype/evals.md +1 -1
- package/library/skills/coding/prototype/plugin.json +23 -0
- package/{skills → library/skills}/coding/tdd/SKILL.md +1 -1
- package/{skills → library/skills}/coding/tdd/evals.md +1 -1
- package/library/skills/coding/tdd/plugin.json +23 -0
- package/{skills → library/skills}/context/context-handoff/SKILL.md +1 -1
- package/{skills → library/skills}/context/context-handoff/evals.md +1 -1
- package/library/skills/context/context-handoff/plugin.json +23 -0
- package/{skills → library/skills}/context/context-prime/SKILL.md +1 -1
- package/{skills → library/skills}/context/context-prime/evals.md +1 -1
- package/library/skills/context/context-prime/plugin.json +23 -0
- package/{skills → library/skills}/git/branch-closeout/SKILL.md +1 -1
- package/library/skills/git/branch-closeout/plugin.json +23 -0
- package/{skills → library/skills}/git/file-ticket/SKILL.md +1 -1
- package/library/skills/git/file-ticket/plugin.json +23 -0
- package/{skills → library/skills}/git/fix-issue/SKILL.md +1 -1
- package/library/skills/git/fix-issue/plugin.json +23 -0
- package/{skills → library/skills}/git/resolve-merge-conflicts/SKILL.md +1 -1
- package/{skills → library/skills}/git/resolve-merge-conflicts/evals.md +1 -1
- package/library/skills/git/resolve-merge-conflicts/plugin.json +23 -0
- package/{skills → library/skills}/git/ship/SKILL.md +1 -1
- package/library/skills/git/ship/plugin.json +23 -0
- package/{skills → library/skills}/git/worktree-create/SKILL.md +1 -1
- package/library/skills/git/worktree-create/plugin.json +23 -0
- package/{skills → library/skills}/git/worktree-merge/SKILL.md +1 -1
- package/library/skills/git/worktree-merge/plugin.json +23 -0
- package/{skills → library/skills}/meta/clio-coder-dev/SKILL.md +1 -1
- package/{skills → library/skills}/meta/clio-coder-dev/evals.md +1 -1
- package/library/skills/meta/clio-coder-dev/plugin.json +23 -0
- package/{skills → library/skills}/meta/clio-coder-test/SKILL.md +1 -1
- package/{skills → library/skills}/meta/clio-coder-test/evals.md +1 -1
- package/library/skills/meta/clio-coder-test/plugin.json +23 -0
- package/{skills → library/skills}/meta/credentials/SKILL.md +1 -1
- package/{skills → library/skills}/meta/credentials/evals.md +1 -1
- package/library/skills/meta/credentials/plugin.json +23 -0
- package/library/skills/meta/find-skills/SKILL.md +85 -0
- package/library/skills/meta/find-skills/evals.md +65 -0
- package/library/skills/meta/find-skills/plugin.json +23 -0
- package/{skills → library/skills}/meta/herdr/SKILL.md +1 -1
- package/{skills → library/skills}/meta/herdr/evals.md +1 -1
- package/library/skills/meta/herdr/plugin.json +23 -0
- package/{skills → library/skills}/meta/skill-craft/SKILL.md +23 -9
- package/{skills → library/skills}/meta/skill-craft/evals.md +11 -3
- package/library/skills/meta/skill-craft/plugin.json +23 -0
- package/{skills → library/skills}/planning/archify/SKILL.md +13 -13
- package/library/skills/planning/archify/plugin.json +23 -0
- package/{skills → library/skills}/planning/architecture/SKILL.md +1 -1
- package/{skills → library/skills}/planning/architecture/evals.md +1 -1
- package/library/skills/planning/architecture/plugin.json +23 -0
- package/{skills → library/skills}/planning/backlog/SKILL.md +1 -1
- package/{skills → library/skills}/planning/backlog/evals.md +1 -1
- package/library/skills/planning/backlog/plugin.json +23 -0
- package/{skills → library/skills}/planning/prd/SKILL.md +1 -1
- package/{skills → library/skills}/planning/prd/evals.md +1 -1
- package/library/skills/planning/prd/plugin.json +23 -0
- package/{skills → library/skills}/planning/product-intent/SKILL.md +1 -1
- package/{skills → library/skills}/planning/product-intent/evals.md +1 -1
- package/library/skills/planning/product-intent/plugin.json +23 -0
- package/{skills → library/skills}/planning/tech-spec/SKILL.md +1 -1
- package/{skills → library/skills}/planning/tech-spec/evals.md +1 -1
- package/library/skills/planning/tech-spec/plugin.json +23 -0
- package/{skills → library/skills}/registry.yaml +7 -7
- package/{skills → library/skills}/remote.yaml +1 -1
- package/{skills → library/skills}/research/arxiv-literature/SKILL.md +1 -1
- package/{skills → library/skills}/research/arxiv-literature/evals.md +1 -1
- package/library/skills/research/arxiv-literature/plugin.json +23 -0
- package/{skills → library/skills}/research/experiment-protocol/SKILL.md +1 -1
- package/{skills → library/skills}/research/experiment-protocol/evals.md +1 -1
- package/library/skills/research/experiment-protocol/plugin.json +23 -0
- package/{skills → library/skills}/research/scientific-debugging/SKILL.md +1 -1
- package/{skills → library/skills}/research/scientific-debugging/evals.md +1 -1
- package/library/skills/research/scientific-debugging/plugin.json +23 -0
- package/{skills → library/skills}/research/scientific-modernization/SKILL.md +1 -1
- package/{skills → library/skills}/research/scientific-modernization/evals.md +1 -1
- package/library/skills/research/scientific-modernization/plugin.json +23 -0
- package/{skills → library/skills}/skill-marketplace.json +37 -37
- package/{skills → library/skills}/workflow/cut-it/SKILL.md +1 -1
- package/{skills → library/skills}/workflow/cut-it/evals.md +1 -1
- package/library/skills/workflow/cut-it/plugin.json +23 -0
- package/{skills → library/skills}/workflow/design-council/SKILL.md +1 -1
- package/{skills → library/skills}/workflow/design-council/evals.md +1 -1
- package/library/skills/workflow/design-council/plugin.json +23 -0
- package/{skills → library/skills}/workflow/grill-me/SKILL.md +1 -1
- package/{skills → library/skills}/workflow/grill-me/evals.md +1 -1
- package/library/skills/workflow/grill-me/plugin.json +23 -0
- package/{skills → library/skills}/workflow/workflow-distiller/SKILL.md +14 -11
- package/{skills → library/skills}/workflow/workflow-distiller/evals.md +14 -6
- package/library/skills/workflow/workflow-distiller/plugin.json +23 -0
- package/package.json +12 -5
- package/src/cli/agents.ts +1 -1
- package/src/cli/ask.ts +10 -10
- package/src/cli/config-inspect.ts +1 -1
- package/src/cli/configure-editor.ts +51 -0
- package/src/cli/configure-interop.ts +1 -1
- package/src/cli/configure-oauth.ts +1 -1
- package/src/cli/configure-onboarding.ts +232 -96
- package/src/cli/configure-prompts.ts +76 -0
- package/src/cli/configure-quick.ts +274 -0
- package/src/cli/configure-target.ts +14 -2
- package/src/cli/configure.ts +415 -176
- package/src/cli/eval.ts +40 -6
- package/src/cli/extensions.ts +74 -8
- package/src/cli/fleet-preflight.ts +2 -0
- package/src/cli/fleet.ts +2 -0
- package/src/cli/index.ts +1 -3
- package/src/cli/interop-inspect.ts +61 -33
- package/src/cli/interop.ts +79 -9
- package/src/cli/library-import.ts +139 -0
- package/src/cli/library.ts +418 -120
- package/src/cli/oauth-manual-input.ts +1 -1
- package/src/cli/reset.ts +2 -0
- package/src/cli/run.ts +26 -9
- package/src/cli/select.ts +35 -4
- package/src/cli/skills-eval.ts +43 -6
- package/src/cli/skills-inventory.ts +6 -2
- package/src/cli/skills.ts +44 -491
- package/src/cli/upgrade.ts +2 -2
- package/src/core/bus-events.ts +5 -0
- package/src/core/config.ts +6 -1
- package/src/core/defaults.ts +34 -12
- package/src/{interactive → core}/external-editor.ts +4 -4
- package/src/core/recent-models.ts +2 -2
- package/src/core/session-routing.ts +3 -3
- package/src/core/state-file-lock.ts +1 -1
- package/src/core/tool-names.ts +5 -0
- package/src/domains/agents/extension.ts +42 -6
- package/src/domains/agents/fleet-commands.ts +92 -1
- package/src/domains/agents/fleet-contract.ts +87 -19
- package/src/domains/agents/recipe.ts +5 -4
- package/src/domains/agents/registry.ts +80 -24
- package/src/domains/config/classify.ts +1 -1
- package/src/domains/config/keybindings.ts +156 -124
- package/src/domains/context/worker/contract.ts +91 -0
- package/src/domains/context/worker/pressure.ts +120 -0
- package/src/domains/context/worker/recall.ts +62 -0
- package/src/domains/context/worker/select.ts +164 -0
- package/src/domains/context/worker/snapshot.ts +35 -0
- package/src/domains/context/worker/store.ts +16 -0
- package/src/domains/context/working-set/replay/synthetic.ts +2 -1
- package/src/domains/dispatch/active-route-planner.ts +2 -0
- package/src/domains/dispatch/backoff.ts +1 -0
- package/src/domains/dispatch/code-step.ts +12 -2
- package/src/domains/dispatch/contract.ts +3 -0
- package/src/domains/dispatch/execution-plan.ts +2 -0
- package/src/domains/dispatch/extension.ts +109 -27
- package/src/domains/dispatch/fleet-plan.ts +10 -0
- package/src/domains/dispatch/fleet-run.ts +1 -0
- package/src/domains/dispatch/orphan-recovery.ts +1 -0
- package/src/domains/dispatch/receipt-integrity.ts +4 -0
- package/src/domains/dispatch/state.ts +1 -0
- package/src/domains/dispatch/types.ts +5 -0
- package/src/domains/dispatch/validation.ts +12 -0
- package/src/domains/dispatch/workspace-checkpoint.ts +1 -1
- package/src/domains/evidence/failure-attribution.ts +1 -0
- package/src/domains/evidence/trust-status.ts +22 -3
- package/src/domains/extensions/command-schema.ts +145 -0
- package/src/domains/extensions/command-tools.ts +15 -0
- package/src/domains/extensions/compatibility.ts +7 -0
- package/src/domains/extensions/contract.ts +0 -4
- package/src/domains/extensions/discovery.ts +69 -205
- package/src/domains/extensions/extension.ts +0 -4
- package/src/domains/extensions/index.ts +1 -5
- package/src/domains/extensions/manager.ts +1 -6
- package/src/domains/extensions/operator-commands.ts +29 -0
- package/src/domains/extensions/operator-runtime.ts +483 -0
- package/src/domains/extensions/public-api.ts +53 -0
- package/src/domains/extensions/runtime-child.mjs +114 -0
- package/src/domains/extensions/runtime-process.ts +306 -0
- package/src/domains/extensions/runtime-schema.ts +146 -0
- package/src/domains/extensions/{resources.ts → snapshot-access.ts} +1 -17
- package/src/domains/extensions/snapshot.ts +4 -32
- package/src/domains/extensions/state.ts +5 -83
- package/src/domains/extensions/types.ts +33 -34
- package/src/domains/interop/adopt.ts +546 -0
- package/src/domains/interop/detect.ts +50 -12
- package/src/domains/interop/foreign.ts +554 -0
- package/src/domains/interop/import.ts +277 -0
- package/src/domains/interop/index.ts +24 -0
- package/src/domains/interop/install.ts +6 -0
- package/src/domains/interop/inventory.ts +351 -0
- package/src/domains/interop/projection.ts +360 -0
- package/src/domains/interop/registry.ts +106 -3
- package/src/domains/interop/types.ts +51 -0
- package/src/domains/lifecycle/migrations/index.ts +0 -2
- package/src/domains/lifecycle/naming-resources.ts +1 -1
- package/src/domains/middleware/marketplace-offer.ts +1 -1
- package/src/domains/mux/contract.ts +1 -1
- package/src/domains/plugins/catalog.ts +204 -0
- package/src/domains/plugins/contract.ts +24 -0
- package/src/domains/plugins/discovery.ts +316 -0
- package/src/domains/plugins/extension.ts +40 -0
- package/src/domains/plugins/index.ts +77 -0
- package/src/domains/plugins/integrity.ts +6 -0
- package/src/domains/plugins/manifest.ts +3 -0
- package/src/domains/plugins/resources.ts +102 -0
- package/src/domains/plugins/state.ts +753 -0
- package/src/domains/plugins/types.ts +217 -0
- package/src/domains/prompts/extension.ts +9 -2
- package/src/domains/prompts/fragments/operating/skills.md +10 -10
- package/src/domains/providers/probe/fingerprint.ts +13 -6
- package/src/domains/providers/probe/reasoning.ts +2 -0
- package/src/domains/providers/runtimes/common/probe-helpers.ts +23 -7
- package/src/domains/providers/runtimes/protocol/anthropic-compat.ts +7 -2
- package/src/domains/providers/runtimes/protocol/openai-compat.ts +10 -4
- package/src/domains/resources/common-loader.ts +9 -6
- package/src/domains/resources/index.ts +67 -0
- package/src/domains/resources/library-actions.ts +836 -0
- package/src/domains/resources/library-evals.ts +38 -0
- package/src/domains/resources/library-inventory.ts +1048 -0
- package/src/domains/resources/library-types.ts +50 -0
- package/src/domains/resources/library-validation.ts +634 -0
- package/src/domains/resources/library.ts +437 -156
- package/src/domains/resources/package-references.ts +66 -0
- package/src/domains/resources/prompts/loader.ts +75 -41
- package/src/domains/resources/skills/install.ts +2 -2
- package/src/domains/resources/skills/loader.ts +77 -22
- package/src/domains/resources/skills/marketplace.ts +48 -57
- package/src/domains/resources/skills/promotion.ts +2 -2
- package/src/domains/resources/skills/provenance-pin.ts +17 -4
- package/src/domains/safety/action-classifier.ts +2 -2
- package/src/domains/safety/default-path-policy.ts +3 -1
- package/src/domains/safety/policy-engine.ts +1 -1
- package/src/domains/safety/protected-artifacts.ts +21 -5
- package/src/domains/safety/skill-authority.ts +5 -2
- package/src/domains/share/archive.ts +1 -1
- package/src/engine/apis/openai-completions.ts +52 -2
- package/src/engine/notices/pi-tui-LICENSE +21 -0
- package/src/engine/tui.ts +3 -0
- package/src/engine/worker-runtime.ts +58 -14
- package/src/engine/worker-tools.ts +5 -0
- package/src/entry/orchestrator.ts +26 -5
- package/src/entry/plugin-reload.ts +18 -0
- package/src/interactive/application-controller.ts +68 -52
- package/src/interactive/chat-loop.ts +32 -5
- package/src/interactive/chat-panel.ts +168 -638
- package/src/interactive/chat-renderer.ts +13 -30
- package/src/interactive/clio-editor.ts +53 -21
- package/src/interactive/command-output.ts +56 -1
- package/src/interactive/dispatch-board.ts +1 -3
- package/src/interactive/editor-submit.ts +73 -59
- package/src/interactive/fleet-run-preview.ts +2 -0
- package/src/interactive/follow-up-queue-panel.ts +3 -3
- package/src/interactive/footer/dashboard.ts +12 -4
- package/src/interactive/footer/notifications.ts +2 -2
- package/src/interactive/footer/widgets.ts +52 -93
- package/src/interactive/interactive-application.ts +225 -63
- package/src/interactive/interactive-event-projection.ts +2 -44
- package/src/interactive/interactive-input-runtime.ts +257 -35
- package/src/interactive/interactive-presentation.ts +71 -21
- package/src/interactive/interactive-slash-runtime.ts +40 -48
- package/src/interactive/keybinding-manager.ts +156 -79
- package/src/interactive/keyboard-owner.ts +37 -0
- package/src/interactive/layout.ts +29 -4
- package/src/interactive/leader-key.ts +49 -102
- package/src/interactive/leader-menu.ts +45 -0
- package/src/interactive/overlay-ask-user-lifecycle.ts +9 -1
- package/src/interactive/overlay-frame.ts +15 -0
- package/src/interactive/overlay-general-openers.ts +2 -0
- package/src/interactive/overlay-key-routing.ts +46 -47
- package/src/interactive/overlay-lifecycle.ts +31 -15
- package/src/interactive/overlay-resource-openers.ts +56 -46
- package/src/interactive/overlay-session-lifecycle.ts +1 -1
- package/src/interactive/overlays/ask-user.ts +630 -556
- package/src/interactive/overlays/extension-panel.ts +70 -0
- package/src/interactive/overlays/extensions.ts +28 -5
- package/src/interactive/overlays/fleet-run-approval.ts +7 -3
- package/src/interactive/overlays/help-reference.ts +89 -40
- package/src/interactive/overlays/interop.ts +122 -3
- package/src/interactive/overlays/keybinding-detail.ts +2 -2
- package/src/interactive/overlays/library-lifecycle.ts +90 -0
- package/src/interactive/overlays/library-model.ts +574 -0
- package/src/interactive/overlays/library-review.ts +557 -0
- package/src/interactive/overlays/library-tabs.ts +3 -15
- package/src/interactive/overlays/library.ts +602 -0
- package/src/interactive/overlays/list-overlay.ts +218 -39
- package/src/interactive/overlays/model-selector.ts +28 -25
- package/src/interactive/overlays/session-selector.ts +9 -3
- package/src/interactive/overlays/settings.ts +34 -26
- package/src/interactive/overlays/tree-selector.ts +16 -11
- package/src/interactive/permission-hint.ts +13 -0
- package/src/interactive/permission-overlay.ts +77 -28
- package/src/interactive/prompt-source-label.ts +21 -0
- package/src/interactive/renderers/preview.ts +16 -0
- package/src/interactive/renderers/reference-card.ts +35 -0
- package/src/interactive/renderers/tool-execution.ts +67 -160
- package/src/interactive/renderers/worker-entry.ts +90 -42
- package/src/interactive/slash-autocomplete.ts +100 -7
- package/src/interactive/slash-commands.ts +396 -105
- package/src/interactive/slash-spec.ts +0 -1
- package/src/interactive/status/controller.ts +0 -5
- package/src/interactive/status/state-machine.ts +44 -26
- package/src/interactive/status/types.ts +3 -0
- package/src/interactive/status/verbs.ts +13 -12
- package/src/interactive/terminal-lease.ts +44 -12
- package/src/interactive/transcript-detail.ts +50 -112
- package/src/interactive/turn-queues.ts +8 -7
- package/src/interactive/turn-runtime.ts +1 -1
- package/src/interactive/view/artifacts.ts +4 -0
- package/src/interactive/view/view-overlay.ts +58 -43
- package/src/interactive/welcome-dashboard.ts +525 -408
- package/src/tools/bootstrap.ts +8 -0
- package/src/tools/builtin-tool-catalog.ts +7 -2
- package/src/tools/context/index.ts +58 -5
- package/src/tools/context/library.ts +465 -0
- package/src/tools/context/surface.ts +20 -6
- package/src/tools/core-bootstrap.ts +3 -0
- package/src/tools/dispatch-admission.ts +24 -1
- package/src/tools/dispatch-arguments.ts +8 -0
- package/src/tools/dispatch-plan.ts +32 -0
- package/src/tools/dispatch-schema.ts +31 -1
- package/src/tools/dispatch-types.ts +3 -0
- package/src/tools/dispatch.ts +1 -1
- package/src/tools/harness-extensions.ts +169 -0
- package/src/tools/observation.ts +4 -0
- package/src/tools/policy.ts +7 -1
- package/src/tools/presentation.ts +1 -1
- package/src/tools/registry.ts +20 -2
- package/src/tools/verify/numeric.ts +4 -4
- package/src/tools/worker-evidence.ts +5 -0
- package/src/worker/context-seed.ts +192 -0
- package/src/worker/entry.ts +1 -0
- package/src/worker/spec-contract.ts +8 -1
- package/dist/chunk-3UW3KU4A.js +0 -21
- package/dist/chunk-6SYEGZI3.js +0 -433
- package/dist/chunk-CXQ37WJH.js +0 -45
- package/dist/chunk-EQEJJ53P.js +0 -399
- package/dist/chunk-KTFSFCVN.js +0 -46
- package/dist/chunk-QRFXEO6Y.js +0 -17
- package/dist/chunk-T7FDXNRU.js +0 -1257
- package/dist/chunk-U7VQ4NI4.js +0 -911
- package/dist/configure-SML6UBZ5.js +0 -55
- package/dist/interop-YOTGXFJM.js +0 -115
- package/dist/library-GJI6W6OK.js +0 -226
- package/dist/skills-S36AAJHU.js +0 -510
- package/skills/README.md +0 -418
- package/skills/meta/find-skills/SKILL.md +0 -78
- package/skills/meta/find-skills/evals.md +0 -47
- package/src/domains/extensions/resource-path.ts +0 -27
- package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +0 -27
- package/src/interactive/overlays/agents.ts +0 -70
- package/src/interactive/overlays/library-install-confirm.ts +0 -152
- package/src/interactive/overlays/prompts.ts +0 -89
- package/src/interactive/overlays/skills-hub.ts +0 -615
- /package/{skills → library/skills}/coding/ast-grep/references/rule_reference.md +0 -0
- /package/{skills → library/skills}/coding/prototype/references/LOGIC.md +0 -0
- /package/{skills → library/skills}/coding/prototype/references/UI.md +0 -0
- /package/{skills → library/skills}/coding/tdd/references/mocking.md +0 -0
- /package/{skills → library/skills}/coding/tdd/references/tests.md +0 -0
- /package/{skills → library/skills}/context/context-handoff/scripts/new-handoff.sh +0 -0
- /package/{skills → library/skills}/git/branch-closeout/evals.md +0 -0
- /package/{skills → library/skills}/git/branch-closeout/references/closeout-checklist.md +0 -0
- /package/{skills → library/skills}/git/file-ticket/assets/issue-template.md +0 -0
- /package/{skills → library/skills}/git/file-ticket/evals.md +0 -0
- /package/{skills → library/skills}/git/file-ticket/references/issue-discovery.md +0 -0
- /package/{skills → library/skills}/git/fix-issue/evals.md +0 -0
- /package/{skills → library/skills}/git/fix-issue/references/diagnosis-and-rca.md +0 -0
- /package/{skills → library/skills}/git/resolve-merge-conflicts/references/conflict-matrix.md +0 -0
- /package/{skills → library/skills}/git/ship/assets/pr-template.md +0 -0
- /package/{skills → library/skills}/git/ship/evals.md +0 -0
- /package/{skills → library/skills}/git/ship/references/remote-and-branch-policy.md +0 -0
- /package/{skills → library/skills}/git/worktree-create/evals.md +0 -0
- /package/{skills → library/skills}/git/worktree-create/references/worktree-setup.md +0 -0
- /package/{skills → library/skills}/git/worktree-merge/evals.md +0 -0
- /package/{skills → library/skills}/git/worktree-merge/references/merge-strategies.md +0 -0
- /package/{skills → library/skills}/meta/clio-coder-test/references/harness.md +0 -0
- /package/{skills → library/skills}/meta/clio-coder-test/references/test-map.md +0 -0
- /package/{skills → library/skills}/planning/archify/evals.md +0 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: materio-research-explorer
|
|
3
|
+
description: "Synthesize candidate materials-science questions and write researcher-confirmed identity."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
For a new materials research direction, interview the domain, phenomenon, processing conditions, hypothesis, scope exclusions, resources, and timeline. Present three calibrated candidate questions, then write the selected identity and decisions under .research/ using the linked template. Preserve existing research state. Use the research state helper to initialize missing config.
|
|
7
|
+
|
|
8
|
+
Read the [shared research policy](../../assets/references/research-policy.md) for
|
|
9
|
+
state, provenance, execution boundaries, and advisory validation.
|
|
10
|
+
|
|
11
|
+
Read the linked references when needed. Resolve links from this skill directory.
|
|
12
|
+
If acting as a worker, return questions to the orchestrator; when acting as the
|
|
13
|
+
interactive assistant, collect the researcher answers directly using the host's
|
|
14
|
+
conversation facility.
|
|
15
|
+
|
|
16
|
+
- [research-domains.md](../../assets/references/research-domains.md)
|
|
17
|
+
- [RESEARCH.md](../../assets/templates/RESEARCH.md)
|
|
18
|
+
- [config.json](../../assets/templates/config.json)
|
|
19
|
+
|
|
20
|
+
## What Makes a Good Research Prompt
|
|
21
|
+
|
|
22
|
+
A good research prompt is:
|
|
23
|
+
- **Specific**: Names specific material, property, condition, or phenomenon
|
|
24
|
+
- **Answerable**: Can be confirmed or refuted by an achievable experiment or calculation
|
|
25
|
+
- **Novel**: Not already fully answered in the literature (this comes from literature-review, but initial framing matters)
|
|
26
|
+
- **Scoped**: Has clear in/out boundaries so the researcher knows when they're done
|
|
27
|
+
|
|
28
|
+
Bad: "Study high-entropy alloys"
|
|
29
|
+
Better: "Characterize mechanical properties of HEAs"
|
|
30
|
+
Good: "How does Cr content affect yield strength and ductility in CoCrFeMnNi alloys processed by arc melting?"
|
|
31
|
+
|
|
32
|
+
## Socratic Narrowing Is the Orchestrator's Job
|
|
33
|
+
|
|
34
|
+
The interview narrows in five moves: domain, then property or phenomenon, then conditions and processing route, then hypothesis, then explicit out-of-scope. The orchestrator runs those rounds. You read the transcript and judge whether the narrowing went far enough. If it did not, say exactly which move is missing and what to ask.
|
|
35
|
+
|
|
36
|
+
Do not fill gaps with assumptions. Vague prompts lead to unfocused research.
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
Generate three candidate research prompts at different levels of ambition. For each, propose a scope and keywords so the researcher can decide in one turn:
|
|
41
|
+
|
|
42
|
+
**Option A (Focused):** Narrowest, most achievable for the stated timeline and resources
|
|
43
|
+
**Option B (Standard):** Moderate scope, typical for a journal article
|
|
44
|
+
**Option C (Ambitious):** Broader, suitable if timeline and resources allow
|
|
45
|
+
|
|
46
|
+
For every option include:
|
|
47
|
+
- The prompt as one specific, answerable question
|
|
48
|
+
- In scope: 3 to 5 concrete items (materials, phenomena, conditions, methods)
|
|
49
|
+
- Out of scope: 2 to 4 explicit exclusions
|
|
50
|
+
- Keywords: 5 to 8 terms, marked primary or secondary
|
|
51
|
+
- Feasibility note: one line on why it fits (or strains) the stated resources and timeline
|
|
52
|
+
|
|
53
|
+
Return the three candidates for researcher selection; write identity files only after the selection is settled.
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
## Complete action guides
|
|
58
|
+
|
|
59
|
+
Read only the guide for the requested operation; it contains its interview and
|
|
60
|
+
state transitions. Resolve these links from this skill directory.
|
|
61
|
+
|
|
62
|
+
- [identify-research](../../assets/actions/identify-research.md)
|
|
63
|
+
- [wtfp](../../assets/actions/wtfp.md)
|
|
64
|
+
- [help](../../assets/actions/help.md)
|
|
65
|
+
- [status](../../assets/actions/status.md)
|
|
66
|
+
- [progress](../../assets/actions/progress.md)
|
|
67
|
+
- [settings](../../assets/actions/settings.md)
|
|
68
|
+
- [checkpoint](../../assets/actions/checkpoint.md)
|
|
69
|
+
- [pause-research](../../assets/actions/pause-research.md)
|
|
70
|
+
- [resume-research](../../assets/actions/resume-research.md)
|
|
71
|
+
- [upload-data](../../assets/actions/upload-data.md)
|
|
72
|
+
- [add-task](../../assets/actions/add-task.md)
|
|
73
|
+
- [remove-task](../../assets/actions/remove-task.md)
|
|
74
|
+
- [archive-task](../../assets/actions/archive-task.md)
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: materio-task-executor
|
|
3
|
+
description: "Produce type-specific artifacts for one approved materials-science task and verify the files."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Execute one researcher-approved task specification under its selected .research/tasks/task-NN/ directory. Read dependency outputs, lab constraints, and registered inputs. Write the type-specific artifacts and task-NN-SUMMARY.md; distinguish prepared artifacts from measured or computed results. Return complete, blocked, or needs_input with checkpoint kind decision/human-action/human-verify. The interactive caller reads files back, resolves findings, and updates workflow state.
|
|
7
|
+
|
|
8
|
+
Read the [shared research policy](../../assets/references/research-policy.md) for
|
|
9
|
+
state, provenance, execution boundaries, and advisory validation.
|
|
10
|
+
|
|
11
|
+
Read the linked references when needed. Resolve links from this skill directory.
|
|
12
|
+
If acting as a worker, return questions to the orchestrator; when acting as the
|
|
13
|
+
interactive assistant, collect the researcher answers directly using the host's
|
|
14
|
+
conversation facility.
|
|
15
|
+
|
|
16
|
+
- [research-domains.md](../../assets/references/research-domains.md)
|
|
17
|
+
- [traditional-workflows.md](../../assets/references/traditional-workflows.md)
|
|
18
|
+
- [WORKFLOW.md](../../assets/templates/WORKFLOW.md)
|
|
19
|
+
- [VIRTUAL-LAB.md](../../assets/templates/VIRTUAL-LAB.md)
|
|
20
|
+
|
|
21
|
+
# Canonical task output contracts
|
|
22
|
+
|
|
23
|
+
The five per-type file contracts and format blocks below are copied verbatim
|
|
24
|
+
from the restored canonical executor. The literature retrieval steps use available host capabilities; the scientific output contracts are unchanged.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
<output_scope>
|
|
28
|
+
Apply the output contracts below within the caller's explicit write grant.
|
|
29
|
+
Update `.research/LITERATURE.md` only when that path is authorized; otherwise put
|
|
30
|
+
proposed updates in the task summary for the orchestrator. Record actual supplied
|
|
31
|
+
files and provided URLs inspected in Sources Reviewed. Never represent generated
|
|
32
|
+
protocols, scripts or figure descriptions as performed experiments or measured
|
|
33
|
+
results. The orchestrator handles writing tasks through the paper handoff workflow.
|
|
34
|
+
</output_scope>
|
|
35
|
+
|
|
36
|
+
When spawned, read the `<task>` block and identify its **type**. Execution behavior differs by type:
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Type: `literature`
|
|
41
|
+
|
|
42
|
+
**What you do:** Read supplied materials and researcher-provided URLs, then synthesize papers on the task topic.
|
|
43
|
+
|
|
44
|
+
**Execution:**
|
|
45
|
+
1. Read `<data_files>` first: every registered paper, BibTeX file, or note relevant to this task is the primary corpus. Read each one before searching anything.
|
|
46
|
+
2. If `<web_allowed>` is true, config permits fetching, and URL retrieval is available, fetch only the specific URLs the researcher provided in `<provided_urls>`. Use only retrieval capabilities actually provided by the host. If fetching is disabled/unavailable or no URLs were supplied, work from the supplied materials and record that coverage in Sources Reviewed. Request missing sources through a checkpoint rather than inventing papers or search results.
|
|
47
|
+
3. Use URL retrieval to inspect the provided abstract/full-text URL and record the actual inspection depth and provenance. Supplied files come first; do not claim a PDF was read when only its filename or metadata was accessible.
|
|
48
|
+
4. Synthesize findings into a structured summary
|
|
49
|
+
5. Identify which papers are most relevant to the research gap
|
|
50
|
+
6. Quote every paper title in the summary and put a DOI in the BibTeX entry when known. Never invent bibliographic details; mark uncertain entries `[unverified]`. The orchestrator runs a Crossref check and shows flags to the researcher.
|
|
51
|
+
|
|
52
|
+
**Output files:**
|
|
53
|
+
- `task-NN-literature-summary.md`; structured synthesis by sub-topic
|
|
54
|
+
- `task-NN-references.bib`; BibTeX entries for key papers (formatted correctly)
|
|
55
|
+
- Updates to `.research/LITERATURE.md` if new gaps found
|
|
56
|
+
|
|
57
|
+
**Output format in summary:**
|
|
58
|
+
```markdown
|
|
59
|
+
# Literature Summary: [task name]
|
|
60
|
+
|
|
61
|
+
## Key Findings by Sub-topic
|
|
62
|
+
|
|
63
|
+
### [Sub-topic]
|
|
64
|
+
[synthesis; what is known, what is debated]
|
|
65
|
+
|
|
66
|
+
## Most Relevant Papers
|
|
67
|
+
| Paper | Relevance | Key Finding |
|
|
68
|
+
|-------|-----------|-------------|
|
|
69
|
+
| [ref] | [HIGH/MED] | [1 line] |
|
|
70
|
+
|
|
71
|
+
## New Gaps Identified
|
|
72
|
+
[Any gaps found that weren't in the original LITERATURE.md]
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Type: `experimental`
|
|
78
|
+
|
|
79
|
+
**What you do:** Generate a detailed experimental protocol and data recording template.
|
|
80
|
+
|
|
81
|
+
**Execution:**
|
|
82
|
+
1. Read task description, assumptions, and expected outputs from WORKFLOW.md
|
|
83
|
+
2. Generate a step-by-step experimental protocol appropriate to the material and measurement
|
|
84
|
+
3. Include: safety considerations, equipment settings, sample preparation steps, measurement procedure, data recording format
|
|
85
|
+
4. Generate a data recording template (spreadsheet structure or table)
|
|
86
|
+
5. Flag any assumption that needs verification before lab work begins
|
|
87
|
+
|
|
88
|
+
**Output files:**
|
|
89
|
+
- `task-NN-protocol.md`; detailed experimental protocol
|
|
90
|
+
- `task-NN-data-template.md`; data recording structure with column headers and units
|
|
91
|
+
- `task-NN-checklist.md`; pre-experiment verification checklist
|
|
92
|
+
|
|
93
|
+
**Protocol format:**
|
|
94
|
+
```markdown
|
|
95
|
+
# Experimental Protocol: [task name]
|
|
96
|
+
|
|
97
|
+
## Safety Notes
|
|
98
|
+
[relevant hazards; chemicals, high voltage, high temperature, etc.]
|
|
99
|
+
|
|
100
|
+
## Materials and Equipment
|
|
101
|
+
- [list with specifications]
|
|
102
|
+
|
|
103
|
+
## Sample Preparation
|
|
104
|
+
Step 1: [action]; [expected result]; [how to verify]
|
|
105
|
+
Step 2: ...
|
|
106
|
+
|
|
107
|
+
## Measurement Procedure
|
|
108
|
+
Step 1: [action]; [parameters]; [what to record]
|
|
109
|
+
|
|
110
|
+
## Data to Record
|
|
111
|
+
[table with: measurement, units, conditions, notes column]
|
|
112
|
+
|
|
113
|
+
## Expected Results
|
|
114
|
+
[from task assumptions; what would confirm success]
|
|
115
|
+
|
|
116
|
+
## Troubleshooting
|
|
117
|
+
| Symptom | Likely Cause | Fix |
|
|
118
|
+
|---------|--------------|-----|
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Type: `computational`
|
|
124
|
+
|
|
125
|
+
**What you do:** Generate simulation/calculation input files and analysis scripts.
|
|
126
|
+
|
|
127
|
+
**Execution:**
|
|
128
|
+
1. Read task assumptions for: method, software, system, parameters
|
|
129
|
+
2. Generate appropriate input files or scripts for the specified software
|
|
130
|
+
3. Include convergence testing guidance
|
|
131
|
+
4. Generate post-processing analysis script
|
|
132
|
+
|
|
133
|
+
**Supported methods and outputs:**
|
|
134
|
+
- DFT (VASP): INCAR, POSCAR, KPOINTS, licensed POTCAR setup instructions, submission script
|
|
135
|
+
- DFT (Quantum ESPRESSO): pw.x namelists/cards, pseudopotential setup instructions, submission script
|
|
136
|
+
- MD (LAMMPS): input script, force field notes, analysis scripts (OVITO/MDAnalysis)
|
|
137
|
+
- Phase-field: parameter file + solver notes
|
|
138
|
+
- CALPHAD: Thermo-Calc/Pandat script outline
|
|
139
|
+
- High-throughput: screening workflow script (Python + Materials Project API)
|
|
140
|
+
|
|
141
|
+
**Output files:**
|
|
142
|
+
- `task-NN-input/`; input files or templates
|
|
143
|
+
- `task-NN-run.sh`; job submission script (SLURM or local)
|
|
144
|
+
- `task-NN-analysis.py`; post-processing script
|
|
145
|
+
- `task-NN-README.md`; how to run + expected outputs
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Type: `data-analysis`
|
|
150
|
+
|
|
151
|
+
**What you do:** Analyze uploaded data files and produce figures and results summary.
|
|
152
|
+
|
|
153
|
+
**Execution:**
|
|
154
|
+
1. Read DATA-INDEX.md to find relevant data files for this task
|
|
155
|
+
2. Inspect data structure (headers, units, data types)
|
|
156
|
+
3. Write analysis code appropriate to the data type:
|
|
157
|
+
- Mechanical test data (stress-strain): Young's modulus, yield stress, UTS extraction
|
|
158
|
+
- XRD data: peak identification, lattice parameter extraction, Rietveld outline
|
|
159
|
+
- EIS data: equivalent circuit fitting outline
|
|
160
|
+
- Microstructure images: grain size analysis, phase fraction outline
|
|
161
|
+
- Computational output: energy, force, trajectory analysis
|
|
162
|
+
4. Generate figures with proper labels, units, and scientific formatting
|
|
163
|
+
|
|
164
|
+
**Output files:**
|
|
165
|
+
- `task-NN-analysis.py` (or .m for MATLAB); analysis code
|
|
166
|
+
- `task-NN-results-summary.md`; key numerical results with uncertainty estimates
|
|
167
|
+
- `task-NN-figures/`; placeholder descriptions for each figure (actual generation requires running the code)
|
|
168
|
+
|
|
169
|
+
**Results summary format:**
|
|
170
|
+
```markdown
|
|
171
|
+
# Results: [task name]
|
|
172
|
+
|
|
173
|
+
## Key Numerical Results
|
|
174
|
+
| Quantity | Value | Uncertainty | Units | Method |
|
|
175
|
+
|----------|-------|-------------|-------|--------|
|
|
176
|
+
| [e.g., Yield stress] | [X] | [±Y] | [MPa] | [0.2% offset] |
|
|
177
|
+
|
|
178
|
+
## Comparison to Expectations
|
|
179
|
+
[from task assumptions; did results match, exceed, fall short?]
|
|
180
|
+
|
|
181
|
+
## Anomalies or Concerns
|
|
182
|
+
[anything unexpected that needs investigation]
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Type: `analytical`
|
|
188
|
+
|
|
189
|
+
**What you do:** Develop mathematical models, derive equations, validate against theory or data.
|
|
190
|
+
|
|
191
|
+
**Execution:**
|
|
192
|
+
1. Identify the physical model appropriate to the task
|
|
193
|
+
2. State assumptions and governing equations
|
|
194
|
+
3. Derive/adapt the model for the specific material system
|
|
195
|
+
4. Validate against known limits or available data
|
|
196
|
+
5. Identify the parameter sensitivity (which inputs matter most)
|
|
197
|
+
|
|
198
|
+
**Output files:**
|
|
199
|
+
- `task-NN-model.md`; derivation, equations, assumptions, validity range
|
|
200
|
+
- `task-NN-validation.md`; comparison to limiting cases or data
|
|
201
|
+
- `task-NN-implementation.py`; numerical implementation if needed
|
|
202
|
+
|
|
203
|
+
Read supplied files and the data index first. Fetch only researcher-provided URLs
|
|
204
|
+
when project policy and the available host retrieval capability permit it. Record
|
|
205
|
+
actual inspection depth, failed/unreadable sources, and coverage. Metadata alone
|
|
206
|
+
is not full-text inspection, and a restricted corpus does not establish global
|
|
207
|
+
absence. Ask for usable text if an unreadable paper blocks the research.
|
|
208
|
+
|
|
209
|
+
## Complete action guides
|
|
210
|
+
|
|
211
|
+
Read only the guide for the requested operation; it contains its interview and
|
|
212
|
+
state transitions. Resolve these links from this skill directory.
|
|
213
|
+
|
|
214
|
+
- [execute-task](../../assets/actions/execute-task.md)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: materio-task-verifier
|
|
3
|
+
description: "Independently inspect research task outputs against their approved assumptions, artifacts, and evidence."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Independently read one approved task specification, its actual output inventory, and summary. Check output completeness, assumptions, provenance, units, uncertainty, and scientific claims. Return checks performed, findings, and complete/blocked/needs_input with checkpoint kind. Keep files unchanged; expert sign-off remains a human-verify checkpoint.
|
|
7
|
+
|
|
8
|
+
Read the [shared research policy](../../assets/references/research-policy.md) for
|
|
9
|
+
state, provenance, execution boundaries, and advisory validation.
|
|
10
|
+
|
|
11
|
+
Read the linked references when needed. Resolve links from this skill directory.
|
|
12
|
+
If acting as a worker, return questions to the orchestrator; when acting as the
|
|
13
|
+
interactive assistant, collect the researcher answers directly using the host's
|
|
14
|
+
conversation facility.
|
|
15
|
+
|
|
16
|
+
- [WORKFLOW.md](../../assets/templates/WORKFLOW.md)
|
|
17
|
+
- [RESEARCH.md](../../assets/templates/RESEARCH.md)
|
|
18
|
+
|
|
19
|
+
# Independent task verification
|
|
20
|
+
|
|
21
|
+
Treat the workflow task as an output contract. Check every expected file against
|
|
22
|
+
the actual task directory and read the summary; executor self-report is not
|
|
23
|
+
evidence of existence or correctness. Preserve researcher-approved assumptions,
|
|
24
|
+
resource constraints and dependency requirements. Distinguish generated protocols
|
|
25
|
+
and unrun code from experiments or computed results. Inspect units, uncertainty,
|
|
26
|
+
source/claim traceability and explicit limits of validity. A citation entry alone
|
|
27
|
+
cannot establish a source supports a claim.
|
|
28
|
+
|
|
29
|
+
Report missing files, unsupported results or contradictory state as failed
|
|
30
|
+
validations. Advisory physics/citation/script warnings are findings for the
|
|
31
|
+
researcher, not permission to remove or rewrite work. Record a researcher's
|
|
32
|
+
accepted exception faithfully; do not invent consent. A passing file inspection
|
|
33
|
+
is not proof of general physical correctness or successful execution.
|
|
34
|
+
|
|
35
|
+
Describe read/ls checks as artifact inspection. They do not establish a
|
|
36
|
+
command-backed scientific validation. Keep any host grounding limitation visible;
|
|
37
|
+
do not invent command receipts or claim an ungrounded check passed. A rejected
|
|
38
|
+
host validation remains incomplete and is returned to the caller.
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## Complete action guides
|
|
42
|
+
|
|
43
|
+
Read only the guide for the requested operation; it contains its interview and
|
|
44
|
+
state transitions. Resolve these links from this skill directory.
|
|
45
|
+
|
|
46
|
+
- [execute-task](../../assets/actions/execute-task.md)
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: materio-workflow-planner
|
|
3
|
+
description: "Build a resource-aware dependency plan with researcher assumptions and tagged defaults."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Choose and customize one of the six research workflows with the researcher. Interview assumptions for each task type. Read .research/VIRTUAL-LAB.md and mark feasibility unchecked if absent. Write .research/WORKFLOW.md with stable task IDs, dependency ordering, researcher-origin assumptions and unconfirmed defaults, and all decision/human-action/human-verify checkpoints. Confirm defaults and alternatives before execution.
|
|
7
|
+
|
|
8
|
+
Read the [shared research policy](../../assets/references/research-policy.md) for
|
|
9
|
+
state, provenance, execution boundaries, and advisory validation.
|
|
10
|
+
|
|
11
|
+
Read the linked references when needed. Resolve links from this skill directory.
|
|
12
|
+
If acting as a worker, return questions to the orchestrator; when acting as the
|
|
13
|
+
interactive assistant, collect the researcher answers directly using the host's
|
|
14
|
+
conversation facility.
|
|
15
|
+
|
|
16
|
+
- [traditional-workflows.md](../../assets/references/traditional-workflows.md)
|
|
17
|
+
- [WORKFLOW.md](../../assets/templates/WORKFLOW.md)
|
|
18
|
+
- [VIRTUAL-LAB.md](../../assets/templates/VIRTUAL-LAB.md)
|
|
19
|
+
- [RESEARCH.md](../../assets/templates/RESEARCH.md)
|
|
20
|
+
|
|
21
|
+
## Plans Are Prompts
|
|
22
|
+
|
|
23
|
+
WORKFLOW.md is not a project management document. It IS the executable specification. Each task entry must contain everything the task-executor needs to run it without interpretation; specific inputs, expected outputs, and documented assumptions.
|
|
24
|
+
|
|
25
|
+
## Assumptions Are Research Decisions
|
|
26
|
+
|
|
27
|
+
Every assumption in a research workflow is a scientific decision. "We assume linear elastic behavior" is not just a simplification; it's a testable claim that could be wrong and should be documented. Good assumptions are:
|
|
28
|
+
- **Explicit**: Written down, not implied
|
|
29
|
+
- **Justified**: Why this assumption is reasonable
|
|
30
|
+
- **Testable**: How you'd know if the assumption breaks
|
|
31
|
+
|
|
32
|
+
Assumptions the researcher stated in the interview are theirs; record them verbatim with `[researcher]`. Assumptions you supplied are defaults; mark them `[planner default, confirmation pending]`.
|
|
33
|
+
|
|
34
|
+
## Task Atomicity
|
|
35
|
+
|
|
36
|
+
Each task should be completable in one focused work session (hours to days, not weeks). If a task is too large, split it. Signs of an oversized task:
|
|
37
|
+
- Multiple distinct outputs
|
|
38
|
+
- Multiple methods applied
|
|
39
|
+
- Results from one part needed before another part can proceed
|
|
40
|
+
|
|
41
|
+
## Traditional Workflows as Starting Points
|
|
42
|
+
|
|
43
|
+
Traditional workflows encode decades of research practice. They are starting points, not constraints. Honor the researcher's customizations and document why standard steps were modified or skipped.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
If VIRTUAL-LAB.md is provided, check every task against its Resource-to-Task Mapping table:
|
|
48
|
+
- Required resource available → feasible
|
|
49
|
+
- Required resource has a gap → flag with ⚠ and the alternative from VIRTUAL-LAB.md
|
|
50
|
+
- Required resource completely unavailable with no alternative → mark `BLOCKED` and propose removing or replacing the task
|
|
51
|
+
|
|
52
|
+
Example flags:
|
|
53
|
+
- "⚠ Task 05 (TEM characterization): No in-house TEM. External facility available (2–3 week lead time); add booking step."
|
|
54
|
+
- "⚠ Task 07 (DFT with VASP): No VASP license. Alternative: Quantum ESPRESSO (free, installed on HPC)."
|
|
55
|
+
|
|
56
|
+
Every flag goes into the return block for the researcher's decision. Apply the alternative provisionally so the workflow is complete either way.
|
|
57
|
+
|
|
58
|
+
If VIRTUAL-LAB.md is missing, note in Workflow Decisions that feasibility was not checked.
|
|
59
|
+
|
|
60
|
+
## Step 5: Attach Assumptions
|
|
61
|
+
|
|
62
|
+
For each task, write the assumptions from `<assumptions>` verbatim, tagged `[researcher]`. Cover, per type, at least:
|
|
63
|
+
|
|
64
|
+
- **experimental**: sample preparation route and contamination risks; characterization tools and resolution; test conditions and standards (ASTM/ISO); sample size and replicates; success criteria
|
|
65
|
+
- **computational**: method and why; software; functional or force field; system size and timescale vs available resources; validation benchmark
|
|
66
|
+
- **data-analysis**: data source; statistical approach; outlier handling; visualizations needed; software and libraries
|
|
67
|
+
- **literature**: sub-topic scope; inclusion criteria; priority authors; output format
|
|
68
|
+
- **analytical**: governing model; boundary conditions; validation limit cases
|
|
69
|
+
|
|
70
|
+
Where the interview left a slot empty, supply a defensible default tagged `[planner default, confirmation pending]` and add it to the return block.
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
## Complete action guides
|
|
75
|
+
|
|
76
|
+
Read only the guide for the requested operation; it contains its interview and
|
|
77
|
+
state transitions. Resolve these links from this skill directory.
|
|
78
|
+
|
|
79
|
+
- [define-research-tasks](../../assets/actions/define-research-tasks.md)
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Unit tests for the physical-sanity checker. Deterministic, no network.
|
|
4
|
+
|
|
5
|
+
The most important tests are the *negative* ones: legitimately-negative or
|
|
6
|
+
in-range materials-science values must produce ZERO findings, because a
|
|
7
|
+
guardrail that cries wolf gets turned off.
|
|
8
|
+
|
|
9
|
+
Run: python3 tests/test_check_physics.py (or: python3 -m unittest)
|
|
10
|
+
"""
|
|
11
|
+
import importlib.util
|
|
12
|
+
import os
|
|
13
|
+
import unittest
|
|
14
|
+
|
|
15
|
+
_HERE = os.path.dirname(os.path.abspath(__file__))
|
|
16
|
+
_MOD = os.path.join(_HERE, "..", "assets", "scripts",
|
|
17
|
+
"check_physics.py")
|
|
18
|
+
_spec = importlib.util.spec_from_file_location("check_physics", _MOD)
|
|
19
|
+
cp = importlib.util.module_from_spec(_spec)
|
|
20
|
+
_spec.loader.exec_module(cp)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def run(text):
|
|
24
|
+
fnd = cp.Findings()
|
|
25
|
+
for check in cp.CHECKS:
|
|
26
|
+
check(text, "t.md", fnd)
|
|
27
|
+
return fnd
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class TestNoFalsePositives(unittest.TestCase):
|
|
31
|
+
"""Valid MS values, including legitimately-negative ones, must be silent."""
|
|
32
|
+
|
|
33
|
+
CASES = [
|
|
34
|
+
"DFT total energy: -8.35 eV/atom",
|
|
35
|
+
"Formation enthalpy -45 kJ/mol at 0 K",
|
|
36
|
+
"Residual stress -250 MPa (compressive)",
|
|
37
|
+
"Ti-6Al-4V density 4.43 g/cm^3",
|
|
38
|
+
"Anneal at 1200 K then 850 °C; cryogenic 77 K",
|
|
39
|
+
"Relative density 99.8%, porosity 0.2%",
|
|
40
|
+
"Scan window 250–300 W, hatch 5-10 µm", # en-dash + hyphen range
|
|
41
|
+
"Composition: Ti 90 wt%, Al 6 wt%, V 4 wt%", # sums to 100
|
|
42
|
+
"Volumetric energy density 105 J/mm^3",
|
|
43
|
+
"Thermal expansion coefficient -1.2e-6 /K", # negative is fine
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
def test_no_findings(self):
|
|
47
|
+
for text in self.CASES:
|
|
48
|
+
fnd = run(text)
|
|
49
|
+
self.assertEqual(fnd.errors, [], f"unexpected error for: {text}")
|
|
50
|
+
self.assertEqual(fnd.warnings, [], f"unexpected warn for: {text}")
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class TestTemperature(unittest.TestCase):
|
|
54
|
+
def test_negative_kelvin(self):
|
|
55
|
+
self.assertEqual(len(run("Cool to -5 K").errors), 1)
|
|
56
|
+
|
|
57
|
+
def test_below_abs_zero_celsius(self):
|
|
58
|
+
self.assertEqual(len(run("Bath at -300 °C").errors), 1)
|
|
59
|
+
|
|
60
|
+
def test_implausibly_high_kelvin_warns(self):
|
|
61
|
+
f = run("Furnace at 500000 K")
|
|
62
|
+
self.assertEqual(f.errors, [])
|
|
63
|
+
self.assertEqual(len(f.warnings), 1)
|
|
64
|
+
|
|
65
|
+
def test_negative_rate_and_delta_not_flagged(self):
|
|
66
|
+
# Temperature differences / rates / gradients are legitimately signed.
|
|
67
|
+
for text in ("Cooling rate: -50 K/s during quench",
|
|
68
|
+
"Temperature change per pass: ΔT = -5 K",
|
|
69
|
+
"Thermal gradient -12 K/mm at the interface"):
|
|
70
|
+
self.assertEqual(run(text).errors, [], f"false positive: {text}")
|
|
71
|
+
|
|
72
|
+
def test_absolute_negative_kelvin_still_flagged(self):
|
|
73
|
+
# No delta/rate/gradient context -> a genuine below-absolute-zero error.
|
|
74
|
+
self.assertEqual(len(run("Cool the sample to -5 K").errors), 1)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
class TestDensity(unittest.TestCase):
|
|
78
|
+
def test_nonpositive_density(self):
|
|
79
|
+
self.assertEqual(len(run("density -2.1 g/cm^3").errors), 1)
|
|
80
|
+
self.assertEqual(len(run("density 0 g/cm^3").errors), 1)
|
|
81
|
+
|
|
82
|
+
def test_kg_per_m3_normalized(self):
|
|
83
|
+
# 4430 kg/m^3 == 4.43 g/cm^3 — valid, no finding.
|
|
84
|
+
self.assertEqual(run("density 4430 kg/m^3").errors, [])
|
|
85
|
+
self.assertEqual(run("density 4430 kg/m^3").warnings, [])
|
|
86
|
+
|
|
87
|
+
def test_implausibly_high_warns(self):
|
|
88
|
+
self.assertEqual(len(run("phase at 45 g/cm^3").warnings), 1)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
class TestFractions(unittest.TestCase):
|
|
92
|
+
def test_wt_percent_over_100(self):
|
|
93
|
+
self.assertEqual(len(run("Cr 105 wt%").errors), 1)
|
|
94
|
+
|
|
95
|
+
def test_bounded_bare_percent(self):
|
|
96
|
+
self.assertEqual(len(run("Porosity: 120%").errors), 1)
|
|
97
|
+
self.assertEqual(len(run("Impurity content -3%").errors), 1)
|
|
98
|
+
|
|
99
|
+
def test_unbounded_bare_percent_ignored(self):
|
|
100
|
+
# A bare % with no bounded-quantity keyword is not sign/range-checked.
|
|
101
|
+
self.assertEqual(run("improved by 250% over baseline").errors, [])
|
|
102
|
+
|
|
103
|
+
def test_relative_change_of_bounded_quantity_ignored(self):
|
|
104
|
+
# "efficiency" is a bounded keyword, but a relative change can exceed
|
|
105
|
+
# 100% and must not be flagged as impossible.
|
|
106
|
+
self.assertEqual(run("Efficiency improved by 250% over baseline").errors, [])
|
|
107
|
+
self.assertEqual(run("Yield increased 150% relative to control").errors, [])
|
|
108
|
+
|
|
109
|
+
def test_absolute_bounded_percent_still_flagged(self):
|
|
110
|
+
self.assertEqual(len(run("Measured porosity: 120%").errors), 1)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
class TestComposition(unittest.TestCase):
|
|
114
|
+
def test_inline_sums_off(self):
|
|
115
|
+
f = run("Fe 70 wt%, Cr 18 wt%, Ni 9 wt%") # 97
|
|
116
|
+
self.assertEqual(len(f.warnings), 1)
|
|
117
|
+
|
|
118
|
+
def test_inline_sums_ok(self):
|
|
119
|
+
self.assertEqual(run("Ti 90 wt%, Al 6 wt%, V 4 wt%").warnings, [])
|
|
120
|
+
|
|
121
|
+
def test_vertical_block(self):
|
|
122
|
+
text = "| Fe | 70 wt% |\n| Cr | 18 wt% |\n| Ni | 9 wt% |\n"
|
|
123
|
+
self.assertEqual(len(run(text).warnings), 1)
|
|
124
|
+
|
|
125
|
+
def test_scattered_percentages_not_summed(self):
|
|
126
|
+
text = ("Yield improved 40 wt% in trial one.\n\n"
|
|
127
|
+
"Separately, additive was 30 wt% of the binder.\n")
|
|
128
|
+
# Non-contiguous single values -> no bogus composition sum.
|
|
129
|
+
self.assertEqual(run(text).warnings, [])
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
class TestExitAndJson(unittest.TestCase):
|
|
133
|
+
def test_scan_and_counts(self):
|
|
134
|
+
fnd = cp.scan([_MOD]) # scanning the source file itself: no findings
|
|
135
|
+
self.assertEqual(fnd.errors, [])
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
if __name__ == "__main__":
|
|
139
|
+
unittest.main(verbosity=2)
|