agentic-qe 3.15.16 → 3.15.18
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/helpers/brain-checkpoint.cjs +107 -10
- package/.claude/skills/agentic-quality-engineering/SKILL.md +67 -44
- package/.claude/skills/brutal-honesty-review/SKILL.md +12 -7
- package/.claude/skills/brutal-honesty-review/evals/brutal-honesty-review.yaml +120 -0
- package/.claude/skills/brutal-honesty-review/schemas/output.json +9 -3
- package/.claude/skills/code-review-quality/SKILL.md +2 -2
- package/.claude/skills/holistic-testing-pact/SKILL.md +11 -11
- package/.claude/skills/sherlock-review/SKILL.md +4 -2
- package/.claude/skills/sherlock-review/evals/sherlock-review.yaml +124 -0
- package/.claude/skills/skills-manifest.json +1 -1
- package/.claude/skills/technical-writing/SKILL.md +12 -6
- package/.claude/skills/technical-writing/evals/technical-writing.yaml +96 -0
- package/.opencode/skills/qe-agentic-quality-engineering.yaml +2 -2
- package/.opencode/skills/qe-holistic-testing-pact.yaml +2 -2
- package/CHANGELOG.md +201 -0
- package/assets/skills/agentic-quality-engineering/SKILL.md +67 -44
- package/assets/skills/brutal-honesty-review/SKILL.md +12 -8
- package/assets/skills/brutal-honesty-review/evals/brutal-honesty-review.yaml +120 -0
- package/assets/skills/brutal-honesty-review/schemas/output.json +9 -3
- package/assets/skills/code-review-quality/SKILL.md +2 -2
- package/assets/skills/holistic-testing-pact/SKILL.md +11 -11
- package/assets/skills/sherlock-review/SKILL.md +4 -3
- package/assets/skills/sherlock-review/evals/sherlock-review.yaml +124 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/assets/skills/technical-writing/SKILL.md +12 -6
- package/assets/skills/technical-writing/evals/technical-writing.yaml +96 -0
- package/dist/cli/brain-commands.d.ts +5 -0
- package/dist/cli/brain-commands.js +4 -0
- package/dist/cli/bundle.js +6 -6
- package/dist/cli/chunks/adapter-WRSDXLOT.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-45NWEKVS.js → agent-booster-wasm-UFNJNF3M.js} +2 -2
- package/dist/cli/chunks/{agent-handler-LVHMYFEF.js → agent-handler-EAYVRJXN.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-YDWOJFEQ.js → agent-memory-branch-M65C6WAQ.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-O6NJBCCM.js +2 -0
- package/dist/cli/chunks/{arena-ELDZH3CZ.js → arena-2GDICP6R.js} +4 -4
- package/dist/cli/chunks/{arena-CZKHXDDS.js → arena-CG3X67OE.js} +2 -2
- package/dist/cli/chunks/{audit-5MT4T47Z.js → audit-F4FSPJPL.js} +3 -3
- package/dist/cli/chunks/base-J2FXOE77.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-6TGYPC2B.js → better-sqlite3-2MCFXW4J.js} +2 -2
- package/dist/cli/chunks/brain-handler-WGTJNYNB.js +95 -0
- package/dist/cli/chunks/{branch-enumerator-WVILM4SO.js → branch-enumerator-KL7C535H.js} +2 -2
- package/dist/cli/chunks/{browser-RX5ALU3H.js → browser-SJEXDVHS.js} +2 -2
- package/dist/cli/chunks/browser-workflow-LXGER6ZD.js +2 -0
- package/dist/cli/chunks/{chunk-2H4XH6FT.js → chunk-244RKAEP.js} +2 -2
- package/dist/cli/chunks/{chunk-SI6DPU5D.js → chunk-27TUMXPD.js} +1 -1
- package/dist/cli/chunks/{chunk-YNMJEDN5.js → chunk-2MBYDPCP.js} +2 -2
- package/dist/cli/chunks/{chunk-24QHCVX6.js → chunk-2Q6DTBMT.js} +1 -1
- package/dist/cli/chunks/{chunk-XWUWX7BV.js → chunk-355MI7RV.js} +13 -13
- package/dist/cli/chunks/{chunk-NQXXI77K.js → chunk-3LX5OKBD.js} +2 -2
- package/dist/cli/chunks/{chunk-63GMRQ25.js → chunk-3RPDKJGV.js} +1 -1
- package/dist/cli/chunks/chunk-3YMIT73A.js +4 -0
- package/dist/cli/chunks/{chunk-P3EYRILV.js → chunk-43KUVBSU.js} +2 -2
- package/dist/cli/chunks/chunk-477FKXSS.js +2 -0
- package/dist/cli/chunks/{chunk-HGWXF45W.js → chunk-4BIMTRRX.js} +1 -1
- package/dist/cli/chunks/{chunk-SSUAAX3F.js → chunk-4CVNVBX5.js} +2 -2
- package/dist/cli/chunks/{chunk-5V3TI2LG.js → chunk-4HL3SD4A.js} +1 -1
- package/dist/cli/chunks/{chunk-KKU2QGSJ.js → chunk-4PEG4DU2.js} +2 -2
- package/dist/cli/chunks/{chunk-J4ELZNLY.js → chunk-4QSQKFED.js} +2 -2
- package/dist/cli/chunks/chunk-53ZBETYR.js +16 -0
- package/dist/cli/chunks/{chunk-7TE5ONQQ.js → chunk-544KDWL4.js} +1 -1
- package/dist/cli/chunks/chunk-54RCGMLB.js +8 -0
- package/dist/cli/chunks/{chunk-KU2AUFGX.js → chunk-5AGXIZQ5.js} +2 -2
- package/dist/cli/chunks/{chunk-LQLPB2T6.js → chunk-5M24X6W7.js} +2 -2
- package/dist/cli/chunks/{chunk-YU2BDRSD.js → chunk-5O5T4LEU.js} +1 -1
- package/dist/cli/chunks/{chunk-NAEWCFQT.js → chunk-5RFXX4IF.js} +2 -2
- package/dist/cli/chunks/{chunk-MD43XRX5.js → chunk-62MLAQRJ.js} +1 -1
- package/dist/cli/chunks/{chunk-PEQDY4BO.js → chunk-6D6TGL2E.js} +2 -2
- package/dist/cli/chunks/{chunk-IOYG4VFL.js → chunk-6IHZDSDL.js} +2 -2
- package/dist/cli/chunks/{chunk-C5FP5GW3.js → chunk-6P3Y45QL.js} +2 -2
- package/dist/cli/chunks/{chunk-4LQFBY5L.js → chunk-6TEVM3X3.js} +10 -10
- package/dist/cli/chunks/{chunk-YPBSUGMI.js → chunk-7XTUKKRA.js} +1 -1
- package/dist/cli/chunks/chunk-A3GDX6UF.js +2 -0
- package/dist/cli/chunks/{chunk-HLUXXCHF.js → chunk-A5YTKKNA.js} +1 -1
- package/dist/cli/chunks/{chunk-Y4PFUMOU.js → chunk-ADNGZAT2.js} +1 -1
- package/dist/cli/chunks/{chunk-KNSRL6NO.js → chunk-AWQAE3SW.js} +2 -2
- package/dist/cli/chunks/{chunk-BY5OF7OH.js → chunk-AXDBQFR4.js} +2 -2
- package/dist/cli/chunks/{chunk-525CFDUE.js → chunk-AXVD7O3F.js} +2 -2
- package/dist/cli/chunks/{chunk-JHQCRRJI.js → chunk-B52ULNYO.js} +2 -2
- package/dist/cli/chunks/chunk-B6S4FC7M.js +3 -0
- package/dist/cli/chunks/{chunk-AJMJNQMP.js → chunk-BDVFSMOQ.js} +1 -1
- package/dist/cli/chunks/{chunk-DXD6K2ZP.js → chunk-BGXXMX3Y.js} +2 -2
- package/dist/cli/chunks/{chunk-EK7OLYOZ.js → chunk-BKMQQY5T.js} +2 -2
- package/dist/cli/chunks/{chunk-VWPM27GU.js → chunk-BN2FROBQ.js} +2 -2
- package/dist/cli/chunks/{chunk-J7I6PABJ.js → chunk-BO6EQNOC.js} +2 -2
- package/dist/cli/chunks/{chunk-4D4DENG6.js → chunk-BOVAKCDC.js} +2 -2
- package/dist/cli/chunks/{chunk-ZFL436FN.js → chunk-BSXKZDKO.js} +2 -2
- package/dist/cli/chunks/{chunk-J442IZLE.js → chunk-C5QVJ5XQ.js} +1 -1
- package/dist/cli/chunks/{chunk-ZB3LEFYG.js → chunk-CFQLLF3D.js} +2 -2
- package/dist/cli/chunks/{chunk-UHEOGZLX.js → chunk-DUCVLT3F.js} +7 -7
- package/dist/cli/chunks/{chunk-TVGI32MB.js → chunk-E4RMJCGA.js} +3 -3
- package/dist/cli/chunks/{chunk-TIUKLYAI.js → chunk-EONDCWY4.js} +1 -1
- package/dist/cli/chunks/{chunk-ZJH5MU2I.js → chunk-F4AGNKL2.js} +2 -2
- package/dist/cli/chunks/{chunk-N7HL5PHH.js → chunk-F6YD3BOW.js} +1 -1
- package/dist/cli/chunks/{chunk-5VZL4UVN.js → chunk-FQRS7WVA.js} +2 -2
- package/dist/cli/chunks/{chunk-SHKOCGNK.js → chunk-FT24SSDG.js} +2 -2
- package/dist/cli/chunks/chunk-FV4YNSAJ.js +5 -0
- package/dist/cli/chunks/{chunk-KXCLACFG.js → chunk-FVDM3X42.js} +2 -2
- package/dist/cli/chunks/{chunk-32BPDLRZ.js → chunk-FVH7TXWU.js} +2 -2
- package/dist/cli/chunks/{chunk-72XSEQMW.js → chunk-FWR5QY37.js} +2 -2
- package/dist/cli/chunks/chunk-FYINK2B7.js +6 -0
- package/dist/cli/chunks/{chunk-5JZRZI4S.js → chunk-GGISVPOZ.js} +2 -2
- package/dist/cli/chunks/{chunk-5LAVKGLH.js → chunk-GPIJIZJQ.js} +2 -2
- package/dist/cli/chunks/{chunk-5QO3R3TU.js → chunk-GXEVOT5F.js} +2 -2
- package/dist/cli/chunks/{chunk-IHRXZZQM.js → chunk-GZ4VB5RI.js} +1 -1
- package/dist/cli/chunks/chunk-HBDSCYSK.js +2 -0
- package/dist/cli/chunks/{chunk-GSKMOPL7.js → chunk-HGG4HR7C.js} +2 -2
- package/dist/cli/chunks/{chunk-AR67RJPY.js → chunk-HSCKWWO2.js} +2 -2
- package/dist/cli/chunks/{chunk-6XXZDV2C.js → chunk-HSQ3GUYJ.js} +2 -2
- package/dist/cli/chunks/{chunk-AAMLQ2LF.js → chunk-HZQBW5EM.js} +3 -3
- package/dist/cli/chunks/{chunk-O5W3FIO6.js → chunk-IGIYANVT.js} +2 -2
- package/dist/cli/chunks/{chunk-C6D5AHBO.js → chunk-IPWMSXBF.js} +2 -2
- package/dist/cli/chunks/{chunk-NDJ7P2EP.js → chunk-IWVNC7VY.js} +1 -1
- package/dist/cli/chunks/{chunk-FDDC72IA.js → chunk-IZODXKZD.js} +2 -2
- package/dist/cli/chunks/{chunk-NO3IV5Q5.js → chunk-J2MT2OJV.js} +1 -1
- package/dist/cli/chunks/{chunk-GQ6TUIKY.js → chunk-JKIJVVSP.js} +1 -1
- package/dist/cli/chunks/{chunk-LE4QJREF.js → chunk-JMRDT2XK.js} +1 -1
- package/dist/cli/chunks/{chunk-2YZ4G6NW.js → chunk-JR2UMTKG.js} +1 -1
- package/dist/cli/chunks/{chunk-RJIEG3NA.js → chunk-K6CH4CFF.js} +2 -2
- package/dist/cli/chunks/{chunk-5NNNEWLS.js → chunk-K7KW5QB5.js} +81 -88
- package/dist/cli/chunks/chunk-KFCQP434.js +2 -0
- package/dist/cli/chunks/{chunk-A5GBXCP5.js → chunk-KH4T6STG.js} +2 -2
- package/dist/cli/chunks/{chunk-VMDFFTCK.js → chunk-KJBYZO57.js} +1 -1
- package/dist/cli/chunks/{chunk-GJYHWYXR.js → chunk-KP4OKOKV.js} +2 -2
- package/dist/cli/chunks/chunk-L2MBKVSE.js +2 -0
- package/dist/cli/chunks/{chunk-XIQW7EFL.js → chunk-L3IPUIT3.js} +2 -2
- package/dist/cli/chunks/{chunk-W5HQUIML.js → chunk-L7PSU2YN.js} +2 -2
- package/dist/cli/chunks/{chunk-6DPYNAOK.js → chunk-LA3JPGQA.js} +2 -2
- package/dist/cli/chunks/{chunk-5PBLPQ5T.js → chunk-LC2QRN7V.js} +14 -13
- package/dist/cli/chunks/{chunk-SSYAQZXA.js → chunk-LHY7TMTM.js} +2 -2
- package/dist/cli/chunks/{chunk-QQWBWEJS.js → chunk-LLQ2UMF6.js} +3 -3
- package/dist/cli/chunks/{chunk-DTMAS2GB.js → chunk-LOJ7OO6W.js} +2 -2
- package/dist/cli/chunks/{chunk-32GN3JKR.js → chunk-LPUSH3VF.js} +1 -1
- package/dist/cli/chunks/{chunk-SDLWKRVL.js → chunk-LSEC2BU7.js} +2 -2
- package/dist/cli/chunks/{chunk-IOKYCMTJ.js → chunk-LTGB7OIU.js} +2 -2
- package/dist/cli/chunks/{chunk-6ZBXSOX6.js → chunk-LUG7YNVZ.js} +2 -2
- package/dist/cli/chunks/{chunk-CAKMOVZ6.js → chunk-LWAFRYKE.js} +2 -2
- package/dist/cli/chunks/{chunk-FLNAW7C4.js → chunk-M24ZAZ4U.js} +2 -2
- package/dist/cli/chunks/{chunk-L2DWPVNJ.js → chunk-MKRKRXTX.js} +1 -1
- package/dist/cli/chunks/{chunk-YTHTQPWR.js → chunk-MNNLONAD.js} +1 -1
- package/dist/cli/chunks/{chunk-V5NHZV7S.js → chunk-MQM37KAR.js} +2 -2
- package/dist/cli/chunks/{chunk-PPUZWYUG.js → chunk-MSX2OHYT.js} +2 -2
- package/dist/cli/chunks/{chunk-YRAX7SFJ.js → chunk-MVYQRVLP.js} +2 -2
- package/dist/cli/chunks/{chunk-QVDCVD5D.js → chunk-MZC5WM2P.js} +2 -2
- package/dist/cli/chunks/{chunk-S75SOOZL.js → chunk-MZRBNBB3.js} +2 -2
- package/dist/cli/chunks/{chunk-FL64OUBA.js → chunk-N3KQU4UC.js} +2 -2
- package/dist/cli/chunks/{chunk-G5RHFBAY.js → chunk-NKU3FFM4.js} +2 -2
- package/dist/cli/chunks/chunk-O5EWFR76.js +2 -0
- package/dist/cli/chunks/{chunk-63ZKI4PX.js → chunk-O5RDHD5T.js} +2 -2
- package/dist/cli/chunks/chunk-O6UWIXME.js +3 -0
- package/dist/cli/chunks/{chunk-HCH4Y6XX.js → chunk-OA4EQDC4.js} +2 -2
- package/dist/cli/chunks/{chunk-QPEOLAAS.js → chunk-OBCXCRXK.js} +1 -1
- package/dist/cli/chunks/{chunk-6ICX3FEG.js → chunk-OHU5P25N.js} +22 -22
- package/dist/cli/chunks/{chunk-GFWHUQSF.js → chunk-OOSV2RIA.js} +2 -2
- package/dist/cli/chunks/{chunk-MO55CVMT.js → chunk-OW23N2Y5.js} +14 -14
- package/dist/cli/chunks/{chunk-M7WJCTG3.js → chunk-OXOO3YDL.js} +2 -2
- package/dist/cli/chunks/{chunk-KQYJ4VQ5.js → chunk-OYGKSSSI.js} +1 -1
- package/dist/cli/chunks/chunk-PGO46IIW.js +2 -0
- package/dist/cli/chunks/{chunk-NVEWF4JV.js → chunk-PZOYQHWS.js} +1 -1
- package/dist/cli/chunks/{chunk-IESR7TNB.js → chunk-Q2BZSG7Z.js} +2 -2
- package/dist/cli/chunks/{chunk-XIIQ5QTT.js → chunk-Q7V722K5.js} +2 -2
- package/dist/cli/chunks/{chunk-F742SZAX.js → chunk-QZU6M5IO.js} +2 -2
- package/dist/cli/chunks/{chunk-PINSJCM3.js → chunk-R55Y76SJ.js} +1 -1
- package/dist/cli/chunks/{chunk-5B5QPCNU.js → chunk-RMEQYJPU.js} +4 -4
- package/dist/cli/chunks/{chunk-ZQ2XW3IP.js → chunk-RTYXFXTI.js} +2 -2
- package/dist/cli/chunks/{chunk-DVYHMDFR.js → chunk-SJF3O4FX.js} +374 -371
- package/dist/cli/chunks/{chunk-AG2EWGXS.js → chunk-SOUS7Z2H.js} +2 -2
- package/dist/cli/chunks/{chunk-3HD7E6HN.js → chunk-SRVNR3R3.js} +2 -2
- package/dist/cli/chunks/{chunk-KITOPKRG.js → chunk-SU3SXMVG.js} +2 -2
- package/dist/cli/chunks/chunk-SWGPLXWW.js +32 -0
- package/dist/cli/chunks/{chunk-ZR2TKVXQ.js → chunk-TRB3EVH3.js} +2 -2
- package/dist/cli/chunks/{chunk-OCV2XEWQ.js → chunk-TVBDUMKT.js} +2 -2
- package/dist/cli/chunks/{chunk-IOQ6ZQ5W.js → chunk-TWTXPSFU.js} +1 -1
- package/dist/cli/chunks/{chunk-CJSHWQXP.js → chunk-ULYUVUL2.js} +2 -2
- package/dist/cli/chunks/{chunk-PHT5N7SC.js → chunk-UNTBVJ5X.js} +2 -2
- package/dist/cli/chunks/{chunk-LKTTUHLF.js → chunk-UQAA4PHU.js} +2 -2
- package/dist/cli/chunks/{chunk-SR52XP5F.js → chunk-UWSJVKTE.js} +1 -1
- package/dist/cli/chunks/{chunk-L6QSTQME.js → chunk-V2LJ54KP.js} +2 -2
- package/dist/cli/chunks/{chunk-FBDVGRSC.js → chunk-VCCTTKP3.js} +7 -7
- package/dist/cli/chunks/{chunk-YLMNVLDK.js → chunk-VEGUYUVS.js} +1 -1
- package/dist/cli/chunks/{chunk-ASEOFRIG.js → chunk-VUQPVWNK.js} +2 -2
- package/dist/cli/chunks/{chunk-VXFLJNCA.js → chunk-VVGUE2T2.js} +2 -2
- package/dist/cli/chunks/{chunk-4NFQLP6R.js → chunk-W5ASDHJQ.js} +1 -1
- package/dist/cli/chunks/{chunk-I7MQIM2U.js → chunk-WGXT5NWQ.js} +1 -1
- package/dist/cli/chunks/chunk-WJN3V7QB.js +7 -0
- package/dist/cli/chunks/chunk-WPCRQIIF.js +29 -0
- package/dist/cli/chunks/{chunk-SASBO5Y5.js → chunk-WQNLXUWA.js} +6 -6
- package/dist/cli/chunks/{chunk-5SPCGMBB.js → chunk-WZVRMKG2.js} +2 -2
- package/dist/cli/chunks/{chunk-MI5MFHRA.js → chunk-X27IUWTD.js} +2 -2
- package/dist/cli/chunks/{chunk-HJ6ZGVTB.js → chunk-X4B345B6.js} +2 -2
- package/dist/cli/chunks/{chunk-HVRRLYX6.js → chunk-X5I2Y4VO.js} +2 -2
- package/dist/cli/chunks/{chunk-SUDMM5SO.js → chunk-X7IQIFTS.js} +2 -2
- package/dist/cli/chunks/chunk-XJN3RKUD.js +3 -0
- package/dist/cli/chunks/{chunk-E3D4GPLP.js → chunk-XQMGXTHJ.js} +3 -3
- package/dist/cli/chunks/{chunk-67Z5R7RJ.js → chunk-XTSAMB2Q.js} +2 -2
- package/dist/cli/chunks/{chunk-KVF4NXGQ.js → chunk-XZLIF4O2.js} +2 -2
- package/dist/cli/chunks/{chunk-EA4YQVKS.js → chunk-Y4LSEOZ3.js} +1 -1
- package/dist/cli/chunks/{chunk-OAEE6JWQ.js → chunk-Y4YN2RXR.js} +2 -2
- package/dist/cli/chunks/{chunk-CEYSYSK5.js → chunk-YDI56L35.js} +2 -2
- package/dist/cli/chunks/{chunk-JDIYMZCQ.js → chunk-YFILS5D5.js} +2 -2
- package/dist/cli/chunks/{chunk-GAHNO6JJ.js → chunk-YISDX6WB.js} +2 -2
- package/dist/cli/chunks/{chunk-AGRV5B3T.js → chunk-YP2GHQSV.js} +2 -2
- package/dist/cli/chunks/{chunk-UNGBRZDK.js → chunk-YSX756AM.js} +4 -4
- package/dist/cli/chunks/{chunk-BEKDKVQT.js → chunk-YWANOASW.js} +2 -2
- package/dist/cli/chunks/{chunk-JQ3DYUMS.js → chunk-YYIJLG7S.js} +2 -2
- package/dist/cli/chunks/{chunk-CRPIYUTJ.js → chunk-Z7SD7LXM.js} +2 -2
- package/dist/cli/chunks/{chunk-U2A7NHZA.js → chunk-ZDWD73UF.js} +2 -2
- package/dist/cli/chunks/{chunk-WP4RETKG.js → chunk-ZFT3RLA4.js} +2 -2
- package/dist/cli/chunks/{chunk-VJCIEHEF.js → chunk-ZNTHX5G3.js} +1 -1
- package/dist/cli/chunks/{chunk-PF7RBAYL.js → chunk-ZS27R7VL.js} +2 -2
- package/dist/cli/chunks/{chunk-24OX5TQJ.js → chunk-ZXHHHR7K.js} +1 -1
- package/dist/cli/chunks/{ci-MFUR4CWV.js → ci-N5MOMNXH.js} +2 -2
- package/dist/cli/chunks/{ci-config-PNDLQ6XV.js → ci-config-6L2ROQCW.js} +2 -2
- package/dist/cli/chunks/{ci-output-PFZ4M7NC.js → ci-output-DSRBYEIK.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-5HH6NLZN.js → circuit-breaker-VRPTNBL7.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-QCKYLGLC.js → claude-flow-setup-4YFG3FU5.js} +2 -2
- package/dist/cli/chunks/client-I3L6BKRQ.js +2 -0
- package/dist/cli/chunks/{cline-installer-EASVPFXR.js → cline-installer-7RGYJWGN.js} +2 -2
- package/dist/cli/chunks/{code-UJXDVYRK.js → code-ISC6NW2K.js} +3 -3
- package/dist/cli/chunks/{code-index-extractor-BZJ3UDP4.js → code-index-extractor-2FID75YV.js} +2 -2
- package/dist/cli/chunks/{codex-installer-XSQZUVOZ.js → codex-installer-DZ7OG6KM.js} +2 -2
- package/dist/cli/chunks/{completions-OWOOJFI2.js → completions-SM3LICWK.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-KP5TOHDT.js → complexity-analyzer-ZWD2CTAD.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-IFKQXLHM.js → continuedev-installer-AGASOA26.js} +2 -2
- package/dist/cli/chunks/copilot-installer-CLPZYTQC.js +3 -0
- package/dist/cli/chunks/core-handlers-5EFOJ37H.js +2 -0
- package/dist/cli/chunks/{cost-tracker-MMDDNKZB.js → cost-tracker-7PIGQYDV.js} +2 -2
- package/dist/cli/chunks/{coverage-LUH2B7NT.js → coverage-T2GEBTYS.js} +9 -9
- package/dist/cli/chunks/cross-domain-router-65WJAKVD.js +2 -0
- package/dist/cli/chunks/{cursor-installer-4YLM5GWM.js → cursor-installer-KXBID4MB.js} +2 -2
- package/dist/cli/chunks/daemon-43MXIVH3.js +18 -0
- package/dist/cli/chunks/{daemon-MZKVM4CJ.js → daemon-VAMJLQJ5.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-X4CYW665.js → dag-attention-scheduler-UBP4VHTA.js} +2 -2
- package/dist/cli/chunks/{detect-7BM2XINO.js → detect-QWFIQRKI.js} +2 -2
- package/dist/cli/chunks/{dist-node-Y5APLEYB.js → dist-node-I2GICS3W.js} +2 -2
- package/dist/cli/chunks/{domain-handler-X3ZRJNAH.js → domain-handler-Z66ISB2A.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-2UW5KQJB.js → domain-plugins-KHMD3FKT.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-35W4CIBV.js → domain-transfer-JWGNNA6K.js} +2 -2
- package/dist/cli/chunks/dream-VQ2PZCVR.js +2 -0
- package/dist/cli/chunks/embed-and-insert-pattern-F5P5B6JX.js +3 -0
- package/dist/cli/chunks/{embedding-space-SBM2MZD2.js → embedding-space-KHG6TITM.js} +2 -2
- package/dist/cli/chunks/{eval-4QA2SROK.js → eval-43OHU7EI.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-Z6BF6KYM.js → experience-capture-middleware-KXD47H6P.js} +3 -3
- package/dist/cli/chunks/{fast-paths-FIORX6GN.js → fast-paths-6D75D5KD.js} +2 -2
- package/dist/cli/chunks/{feature-flags-6LYI2T4G.js → feature-flags-IE35Y55N.js} +2 -2
- package/dist/cli/chunks/{feature-flags-ZOO7LMIC.js → feature-flags-OYYHY7LS.js} +2 -2
- package/dist/cli/chunks/file-discovery-LGBTY3ID.js +2 -0
- package/dist/cli/chunks/{fleet-7WF53H4F.js → fleet-AGVJMFGD.js} +16 -16
- package/dist/cli/chunks/{gnn-wrapper-KJ6B7BRM.js → gnn-wrapper-5L66A7LW.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-DEKKMOVW.js → heartbeat-handler-2BY6YYOT.js} +5 -5
- package/dist/cli/chunks/heartbeat-scheduler-3DU3M5AT.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-N2IMSRPV.js +2 -0
- package/dist/cli/chunks/hnsw-index-DVU7TTJE.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-L27WS27N.js → hnsw-legacy-bridge-RYMWFNAH.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-4YOQC6L4.js → hnswlib-node-GG47HP2P.js} +2 -2
- package/dist/cli/chunks/{hooks-TAOKV4EJ.js → hooks-FQNACS24.js} +10 -10
- package/dist/cli/chunks/hybrid-backend-AS2PNHOD.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-BODRJLHL.js → hypergraph-engine-6BYNJQEP.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-RKMYJNTU.js → hypergraph-handler-CYTAXZKJ.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-Y4OONLFP.js +2 -0
- package/dist/cli/chunks/{init-guard-MXHSLSB2.js → init-guard-METTAV5O.js} +2 -2
- package/dist/cli/chunks/{init-handler-HUE57IFW.js → init-handler-GFT74U5Y.js} +6 -6
- package/dist/cli/chunks/init-wizard-HLNUBJQN.js +2 -0
- package/dist/cli/chunks/kernel-XKFWCL7Y.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-S333IKYQ.js → kilocode-installer-GZV2D3FF.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-WM5DLQWC.js → kiro-installer-Q4ZXUFC7.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-CNL77CSZ.js +2 -0
- package/dist/cli/chunks/{learning-LNHMQLH5.js → learning-WA2QEYL7.js} +35 -34
- package/dist/cli/chunks/{llm-router-EWFXYZZR.js → llm-router-GRTCHWH7.js} +4 -4
- package/dist/cli/chunks/llm-router-service-UIYTYKP6.js +2 -0
- package/dist/cli/chunks/{load-FGYGWVDK.js → load-WXN3Q7Y5.js} +2 -2
- package/dist/cli/chunks/load-test-PXLW4A5B.js +2 -0
- package/dist/cli/chunks/{mcp-2FHNAAOM.js → mcp-LIQCPSJN.js} +2 -2
- package/dist/cli/chunks/{memory-DZMQ73AB.js → memory-OP6CHRFH.js} +5 -5
- package/dist/cli/chunks/memory-backend-XYOSO73Q.js +2 -0
- package/dist/cli/chunks/memory-handlers-PQFYVNVG.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-6F2UAEUW.js → multi-model-executor-H54DEVRZ.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-XY3BGOTZ.js → opencode-installer-BSQV6UAT.js} +2 -2
- package/dist/cli/chunks/{orchestrator-B4CNKUOS.js → orchestrator-TJDPQ4VL.js} +122 -35
- package/dist/cli/chunks/pattern-null-store-BKGTQFNF.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-R4GUFNMD.js → pattern-usage-recorder-FOVS4M5L.js} +2 -2
- package/dist/cli/chunks/{pipeline-FG5RKVRO.js → pipeline-4AY2ZIC6.js} +2 -2
- package/dist/cli/chunks/{platform-3BT4KEVJ.js → platform-FCSITYMR.js} +2 -2
- package/dist/cli/chunks/{plugin-WI4RIN7O.js → plugin-E56TV5S2.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-7ECDNQFS.js → prime-radiant-advanced-wasm-ACOPC533.js} +2 -2
- package/dist/cli/chunks/project-root-MPX7CN2C.js +2 -0
- package/dist/cli/chunks/protocol-executor-CRQOCC4A.js +2 -0
- package/dist/cli/chunks/{protocol-handler-WNODKPGW.js → protocol-handler-KRVXF4LS.js} +2 -2
- package/dist/cli/chunks/{prove-5RHAEPYZ.js → prove-KMFPSKGD.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-UEGQ3O7F.js +2 -0
- package/dist/cli/chunks/{quality-WPHR7BGQ.js → quality-6DBI3HLB.js} +2 -2
- package/dist/cli/chunks/{quality-gate-4RKTEZMX.js → quality-gate-3ROZMEIL.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-32574XSG.js +2 -0
- package/dist/cli/chunks/real-embeddings-MIGZNKK3.js +2 -0
- package/dist/cli/chunks/{ref-validation-TPAWHOHH.js → ref-validation-EYIP7DHW.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-7AVHFNDI.js → roocode-installer-IGGZHR2Y.js} +2 -2
- package/dist/cli/chunks/router-CZJY5WX6.js +2 -0
- package/dist/cli/chunks/routing-feedback-RC3UBNFX.js +2 -0
- package/dist/cli/chunks/{routing-handler-YKEDVJSH.js → routing-handler-BWNHBYDC.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-JUAMM354.js → ruvector-commands-PXIHF432.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-OG7OV2AK.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-THYMW7ZO.js +2 -0
- package/dist/cli/chunks/rvf-migration-coordinator-3H6CLFU7.js +2 -0
- package/dist/cli/chunks/rvf-native-adapter-6JQJIKKW.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-VJDUIRTX.js → rvf-store-integrity-CVB3NMSL.js} +2 -2
- package/dist/cli/chunks/safe-db-QFKCVTIJ.js +2 -0
- package/dist/cli/chunks/schedule-6JLVMMYB.js +2 -0
- package/dist/cli/chunks/scheduler-3MPZRMJD.js +2 -0
- package/dist/cli/chunks/{security-ORDN3RD2.js → security-DCRGOTWU.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-CF4BCIO7.js → shared-rvf-adapter-GKD74QUB.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-C32UBR6D.js → shared-rvf-dual-writer-HVAAVEOH.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-LGTIKAEX.js +2 -0
- package/dist/cli/chunks/{standalone-memory-OXRJYZXN.js → standalone-memory-O7O2U5N4.js} +2 -2
- package/dist/cli/chunks/{status-handler-BCX5D4HY.js → status-handler-BQTPJJTL.js} +2 -2
- package/dist/cli/chunks/{structural-health-LFG7RUU6.js → structural-health-4H6J4OHK.js} +2 -2
- package/dist/cli/chunks/sync-DJ4TF6QX.js +2 -0
- package/dist/cli/chunks/{sync-YJEE2K2L.js → sync-WW5TAVYW.js} +2 -2
- package/dist/cli/chunks/{task-handler-6LXKPTXJ.js → task-handler-HEM4IEOW.js} +2 -2
- package/dist/cli/chunks/{task-handlers-CILP36I7.js → task-handlers-JRA3NXIR.js} +3 -3
- package/dist/cli/chunks/test-772ZXVG2.js +34 -0
- package/dist/cli/chunks/test-runner-process-XGF2U3NG.js +2 -0
- package/dist/cli/chunks/{test-scheduling-ISI2O4Q5.js → test-scheduling-4TRB7LZ7.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-CICBIJ7T.js +2 -0
- package/dist/cli/chunks/{token-usage-XOC5KG7S.js → token-usage-B7PEKE2G.js} +2 -2
- package/dist/cli/chunks/{transformers-LSLQAARK.js → transformers-V7X7BDZX.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-OXPFKFZS.js +2 -0
- package/dist/cli/chunks/{types-5BLCGLCR.js → types-AHHTUY3I.js} +2 -2
- package/dist/cli/chunks/unified-memory-GUR3IUI6.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-NJP2F2RY.js +2 -0
- package/dist/cli/chunks/unified-persistence-NILBWXDP.js +2 -0
- package/dist/cli/chunks/{upgrade-RQJYLK3J.js → upgrade-DZ4DLUQ5.js} +2 -2
- package/dist/cli/chunks/{validate-QBHWXXCK.js → validate-4DTLIDJE.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-IKXBKFB5.js → validate-swarm-A26UFVIS.js} +2 -2
- package/dist/cli/chunks/visual-security-YECYZ27X.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-ZF6FIE5R.js → web-tree-sitter-F2C7QRYT.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-HQGDZT5D.js → windsurf-installer-OOBTDA6W.js} +2 -2
- package/dist/cli/chunks/{witness-chain-DCHCAMSQ.js → witness-chain-KGFZJP32.js} +2 -2
- package/dist/cli/chunks/witness-chain-LYBXFLJB.js +2 -0
- package/dist/cli/chunks/witness-chain-repair-CNTXOGPN.js +2 -0
- package/dist/cli/chunks/{witness-chain-verifier-PX2OQ6XT.js → witness-chain-verifier-OB7ZZOI3.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-RXYQNFJB.js → witness-key-manager-YCKGKGQI.js} +2 -2
- package/dist/cli/chunks/{workflow-FBKCA4H6.js → workflow-PRERHWKY.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-UIBGWCU3.js +2 -0
- package/dist/cli/chunks/wrappers-L4UY4V63.js +2 -0
- package/dist/cli/commands/coverage.js +4 -1
- package/dist/cli/commands/learning-prune.js +9 -1
- package/dist/cli/commands/test.js +26 -4
- package/dist/cli/handlers/brain-handler.js +32 -2
- package/dist/cli/handlers/heartbeat-handler.js +3 -1
- package/dist/cli/utils/coverage-data.js +5 -1
- package/dist/cli/utils/coverage-verdict.d.ts +10 -2
- package/dist/cli/utils/coverage-verdict.js +23 -8
- package/dist/cli/utils/fleet-operation.js +9 -3
- package/dist/coordination/handlers/code-intelligence-handlers.js +17 -3
- package/dist/coordination/handlers/coverage-handlers.js +22 -9
- package/dist/coordination/handlers/coverage-target.d.ts +22 -2
- package/dist/coordination/handlers/coverage-target.js +45 -9
- package/dist/coordination/handlers/handler-utils.d.ts +19 -0
- package/dist/coordination/handlers/handler-utils.js +22 -8
- package/dist/coordination/handlers/test-execution-handlers.js +64 -20
- package/dist/coordination/protocols/code-intelligence-index.js +6 -3
- package/dist/coordination/protocols/learning-consolidation-archive.d.ts +6 -3
- package/dist/coordination/protocols/learning-consolidation-archive.js +4 -3
- package/dist/coordination/workflow-builtin.js +1 -0
- package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +8 -3
- package/dist/domains/code-intelligence/services/semantic-analyzer.js +39 -25
- package/dist/domains/code-intelligence/services/text-relevance.d.ts +32 -0
- package/dist/domains/code-intelligence/services/text-relevance.js +63 -0
- package/dist/domains/defect-intelligence/interfaces.d.ts +2 -0
- package/dist/domains/defect-intelligence/prediction-history.d.ts +15 -1
- package/dist/domains/defect-intelligence/prediction-history.js +63 -7
- package/dist/domains/defect-intelligence/services/defect-predictor.d.ts +1 -0
- package/dist/domains/defect-intelligence/services/defect-predictor.js +33 -13
- package/dist/domains/learning-optimization/coordinator.js +17 -10
- package/dist/domains/learning-optimization/domain-ranking.d.ts +26 -0
- package/dist/domains/learning-optimization/domain-ranking.js +28 -0
- package/dist/domains/learning-optimization/interfaces.d.ts +5 -0
- package/dist/domains/learning-optimization/pattern-archive.d.ts +55 -8
- package/dist/domains/learning-optimization/pattern-archive.js +90 -17
- package/dist/domains/learning-optimization/pattern-consolidation.js +18 -2
- package/dist/domains/learning-optimization/pattern-merge.d.ts +26 -0
- package/dist/domains/learning-optimization/pattern-merge.js +127 -0
- package/dist/domains/learning-optimization/services/learning-coordinator.js +21 -35
- package/dist/domains/test-execution/coordinator.d.ts +3 -1
- package/dist/domains/test-execution/coordinator.js +13 -4
- package/dist/domains/test-execution/interfaces.d.ts +5 -0
- package/dist/domains/test-execution/plugin.js +2 -0
- package/dist/domains/test-execution/services/flaky-detector.d.ts +9 -1
- package/dist/domains/test-execution/services/flaky-detector.js +26 -8
- package/dist/domains/test-execution/services/retry-handler.d.ts +7 -1
- package/dist/domains/test-execution/services/retry-handler.js +44 -5
- package/dist/domains/test-execution/services/runner-test-cases.d.ts +2 -0
- package/dist/domains/test-execution/services/runner-test-cases.js +7 -3
- package/dist/domains/test-execution/services/test-executor.d.ts +5 -1
- package/dist/domains/test-execution/services/test-executor.js +85 -17
- package/dist/init/copilot-installer.d.ts +6 -0
- package/dist/init/copilot-installer.js +37 -17
- package/dist/init/init-wizard-steps.js +3 -1
- package/dist/init/phases/07-hooks.js +97 -10
- package/dist/init/platform-config-generator.d.ts +10 -0
- package/dist/init/platform-config-generator.js +26 -1
- package/dist/integrations/embeddings/cache/EmbeddingCache.js +1 -1
- package/dist/integrations/ruvector/brain-rvf-exporter.d.ts +16 -1
- package/dist/integrations/ruvector/brain-rvf-exporter.js +18 -32
- package/dist/integrations/ruvector/brain-rvf-richness.d.ts +75 -0
- package/dist/integrations/ruvector/brain-rvf-richness.js +127 -0
- package/dist/kernel/unified-memory-migration.js +1 -1
- package/dist/kernel/unified-memory.d.ts +8 -0
- package/dist/kernel/unified-memory.js +13 -0
- package/dist/learning/checkpoint-shrink-ack.d.ts +25 -0
- package/dist/learning/checkpoint-shrink-ack.js +57 -0
- package/dist/learning/dream/dream-engine.d.ts +44 -3
- package/dist/learning/dream/dream-engine.js +6 -2
- package/dist/learning/embedder-endpoint-client.d.ts +45 -0
- package/dist/learning/embedder-endpoint-client.js +98 -3
- package/dist/learning/embedder-identity-store.js +3 -1
- package/dist/learning/embedding-space-legacy-adoption.d.ts +53 -0
- package/dist/learning/embedding-space-legacy-adoption.js +115 -0
- package/dist/learning/embedding-space-registry.d.ts +90 -0
- package/dist/learning/embedding-space-registry.js +181 -0
- package/dist/learning/experience-capture.d.ts +3 -1
- package/dist/learning/experience-capture.js +15 -5
- package/dist/learning/experience-space-verification.d.ts +2 -0
- package/dist/learning/experience-space-verification.js +3 -2
- package/dist/learning/learning-retention.js +4 -0
- package/dist/learning/pattern-promotion.d.ts +7 -0
- package/dist/learning/pattern-promotion.js +64 -12
- package/dist/learning/real-embeddings.d.ts +3 -0
- package/dist/learning/real-embeddings.js +73 -11
- package/dist/learning/rvf-pattern-store.js +6 -1
- package/dist/mcp/bundle.js +558 -537
- package/dist/mcp/handlers/domain-handler-configs.d.ts +3 -0
- package/dist/mcp/handlers/domain-handler-configs.js +1 -0
- package/dist/mcp/handlers/heartbeat-handlers.d.ts +4 -2
- package/dist/mcp/protocol-server.js +1 -1
- package/dist/mcp/tools/learning-optimization/optimize.d.ts +6 -1
- package/dist/mcp/tools/learning-optimization/optimize.js +20 -11
- package/dist/planning/goap-planner.js +4 -0
- package/dist/planning/plan-executor.js +6 -2
- package/dist/shared/embeddings/index.d.ts +2 -2
- package/dist/shared/embeddings/index.js +1 -1
- package/dist/shared/embeddings/nomic-embedder.d.ts +8 -2
- package/dist/shared/embeddings/nomic-embedder.js +19 -11
- package/dist/shared/embeddings/ollama-client.d.ts +28 -2
- package/dist/shared/embeddings/ollama-client.js +84 -22
- package/dist/shared/embeddings/types.d.ts +15 -0
- package/dist/shared/embeddings/types.js +4 -0
- package/dist/shared/git/git-analyzer.d.ts +30 -11
- package/dist/shared/git/git-analyzer.js +95 -48
- package/dist/shared/io/confined-read.d.ts +32 -7
- package/dist/shared/io/confined-read.js +58 -25
- package/dist/shared/io/file-reader.js +4 -1
- package/dist/shared/pytest-junit-report.d.ts +93 -0
- package/dist/shared/pytest-junit-report.js +241 -0
- package/dist/shared/safe-db.d.ts +1 -1
- package/dist/shared/safe-db.js +20 -5
- package/dist/shared/sqlite-journal-mode.d.ts +39 -0
- package/dist/shared/sqlite-journal-mode.js +53 -0
- package/dist/shared/test-runner-project.d.ts +51 -1
- package/dist/shared/test-runner-project.js +140 -25
- package/dist/sync/claude-flow-bridge.js +1 -1
- package/dist/sync/readers/sqlite-reader.js +3 -4
- package/dist/sync/writers/sqlite-writer.js +1 -1
- package/dist/workers/interfaces.d.ts +2 -2
- package/dist/workers/quality-daemon/git-watcher.d.ts +8 -0
- package/dist/workers/quality-daemon/git-watcher.js +54 -12
- package/dist/workers/quality-daemon/index.js +1 -1
- package/dist/workers/quality-daemon/priority-queue.d.ts +2 -1
- package/dist/workers/workers/defect-predictor.d.ts +9 -4
- package/dist/workers/workers/defect-predictor.js +98 -37
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-6CQ2PIP5.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-73RR52VS.js +0 -2
- package/dist/cli/chunks/base-SMCMMVGP.js +0 -2
- package/dist/cli/chunks/brain-handler-HQWZFO52.js +0 -95
- package/dist/cli/chunks/browser-workflow-A2MEZ66K.js +0 -2
- package/dist/cli/chunks/chunk-CGGUM2YJ.js +0 -3
- package/dist/cli/chunks/chunk-D6COXLYE.js +0 -8
- package/dist/cli/chunks/chunk-EGYE5UPQ.js +0 -2
- package/dist/cli/chunks/chunk-IUBJVHNB.js +0 -3
- package/dist/cli/chunks/chunk-KL7OKSU2.js +0 -4
- package/dist/cli/chunks/chunk-KPRCB5LT.js +0 -7
- package/dist/cli/chunks/chunk-LRSX2FJM.js +0 -2
- package/dist/cli/chunks/chunk-M4FRQ4TE.js +0 -12
- package/dist/cli/chunks/chunk-MAFQV4U4.js +0 -16
- package/dist/cli/chunks/chunk-NZU4ACBZ.js +0 -2
- package/dist/cli/chunks/chunk-RV74I3YO.js +0 -3
- package/dist/cli/chunks/chunk-SJ6Y4725.js +0 -5
- package/dist/cli/chunks/chunk-UE5ZOZR2.js +0 -2
- package/dist/cli/chunks/chunk-VSIKHWZ4.js +0 -29
- package/dist/cli/chunks/chunk-YAPLJR7K.js +0 -2
- package/dist/cli/chunks/client-MHQRTZM4.js +0 -2
- package/dist/cli/chunks/copilot-installer-IGJ6KGQY.js +0 -3
- package/dist/cli/chunks/core-handlers-UAK3LLJE.js +0 -2
- package/dist/cli/chunks/cross-domain-router-WTRZQPNQ.js +0 -2
- package/dist/cli/chunks/daemon-CAVZ7OFV.js +0 -18
- package/dist/cli/chunks/dream-EJY24JN6.js +0 -2
- package/dist/cli/chunks/embed-and-insert-pattern-COG4C7ZI.js +0 -3
- package/dist/cli/chunks/file-discovery-UZSFSS4V.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-NVR356I7.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-LFMPLUJU.js +0 -2
- package/dist/cli/chunks/hnsw-index-POCPMVJH.js +0 -2
- package/dist/cli/chunks/hybrid-backend-4STAO7CV.js +0 -2
- package/dist/cli/chunks/impact-analyzer-3VIIISBQ.js +0 -2
- package/dist/cli/chunks/init-wizard-PL6QN6RQ.js +0 -2
- package/dist/cli/chunks/kernel-CCDWT7KS.js +0 -2
- package/dist/cli/chunks/knowledge-graph-KFOMEN3H.js +0 -2
- package/dist/cli/chunks/llm-router-service-7NBE2EX6.js +0 -2
- package/dist/cli/chunks/load-test-UNZUWY3F.js +0 -2
- package/dist/cli/chunks/memory-backend-DFGKWA2Q.js +0 -2
- package/dist/cli/chunks/memory-handlers-MP426XRJ.js +0 -2
- package/dist/cli/chunks/pattern-null-store-SSVF5TE5.js +0 -2
- package/dist/cli/chunks/project-root-BEANNYWU.js +0 -2
- package/dist/cli/chunks/protocol-executor-FQVIHXZ7.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-5TFYSE24.js +0 -2
- package/dist/cli/chunks/queen-coordinator-Y2OUL7IN.js +0 -2
- package/dist/cli/chunks/real-embeddings-OXLYU7JW.js +0 -2
- package/dist/cli/chunks/router-EP34O3KB.js +0 -2
- package/dist/cli/chunks/routing-feedback-FJCRKXNG.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-ILITJSFG.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-XF6W4C2N.js +0 -2
- package/dist/cli/chunks/rvf-migration-coordinator-CMKG56AR.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-7YFW6S4Y.js +0 -2
- package/dist/cli/chunks/safe-db-TCAU4FUT.js +0 -2
- package/dist/cli/chunks/schedule-NB5KV435.js +0 -2
- package/dist/cli/chunks/scheduler-JKXGKVK6.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-IXCNZRTW.js +0 -2
- package/dist/cli/chunks/sync-OSF7C2NL.js +0 -2
- package/dist/cli/chunks/test-SD457QJ6.js +0 -34
- package/dist/cli/chunks/test-runner-process-VKD65QQU.js +0 -2
- package/dist/cli/chunks/token-bootstrap-VUELSBOS.js +0 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-YAIPHRIL.js +0 -2
- package/dist/cli/chunks/unified-memory-GI76TXFV.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-GXJ5BTZO.js +0 -2
- package/dist/cli/chunks/unified-persistence-OP7FDQPD.js +0 -2
- package/dist/cli/chunks/visual-security-GZ2MOKWB.js +0 -2
- package/dist/cli/chunks/witness-chain-P3XXXA62.js +0 -2
- package/dist/cli/chunks/witness-chain-repair-PUX2NFDL.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-P2APAJAA.js +0 -2
- package/dist/cli/chunks/wrappers-TWSKBTWD.js +0 -2
|
@@ -4,7 +4,7 @@ description: "Apply the Holistic Testing Model evolved with PACTS (Proactive, Au
|
|
|
4
4
|
category: testing-methodologies
|
|
5
5
|
priority: critical
|
|
6
6
|
tokenEstimate: 1100
|
|
7
|
-
agents: [qe-fleet-commander, qe-test-
|
|
7
|
+
agents: [qe-fleet-commander, qe-test-architect, qe-quality-gate, qe-requirements-validator]
|
|
8
8
|
implementation_status: optimized
|
|
9
9
|
optimization_version: 1.0
|
|
10
10
|
last_optimized: 2025-12-02
|
|
@@ -27,7 +27,7 @@ When designing test strategies or building quality into teams:
|
|
|
27
27
|
|
|
28
28
|
**Quick PACTS Application:**
|
|
29
29
|
- Proactive → Design testability into architecture, risk analysis during refinement
|
|
30
|
-
- Autonomous → Devs run tests locally, CI
|
|
30
|
+
- Autonomous → Devs run tests locally, CI gates automated wherever risk and regulation allow
|
|
31
31
|
- Collaborative → Three Amigos, QE pairs with dev, shared test ownership
|
|
32
32
|
- Targeted → Risk-based planning, focus on critical flows, kill valueless tests
|
|
33
33
|
- Structured → Governance, observability, and explainability of agent behavior; measure confidence, not trust
|
|
@@ -66,10 +66,10 @@ When designing test strategies or building quality into teams:
|
|
|
66
66
|
### Agent Selection by PACTS + Quadrant
|
|
67
67
|
| PACTS Dimension | Agents |
|
|
68
68
|
|----------------|--------|
|
|
69
|
-
| Proactive + Tech | qe-test-
|
|
70
|
-
| Autonomous + Tech | qe-
|
|
69
|
+
| Proactive + Tech | qe-test-architect, qe-requirements-validator |
|
|
70
|
+
| Autonomous + Tech | qe-parallel-executor, qe-coverage-specialist |
|
|
71
71
|
| Collaborative | qe-fleet-commander (orchestration) |
|
|
72
|
-
| Targeted | qe-regression-
|
|
72
|
+
| Targeted | qe-regression-analyzer, qe-quality-gate |
|
|
73
73
|
| Structured | qe-fleet-commander, qe-quality-gate (governance, observability, explainability) |
|
|
74
74
|
|
|
75
75
|
---
|
|
@@ -89,7 +89,7 @@ await Task("Risk Analysis", {
|
|
|
89
89
|
### Autonomous: Teams Own Quality
|
|
90
90
|
- Developers run full test suite locally
|
|
91
91
|
- CI fails fast with clear diagnostics
|
|
92
|
-
-
|
|
92
|
+
- Deployment approvals automated where the risk allows; where regulation or risk requires a human sign-off, make it fast and evidence-based rather than a queue
|
|
93
93
|
- Self-service test environments
|
|
94
94
|
|
|
95
95
|
### Collaborative: Whole-Team Thinking
|
|
@@ -105,7 +105,7 @@ await Task("Risk Analysis", {
|
|
|
105
105
|
await Task("Risk-Based Planning", {
|
|
106
106
|
critical: ['checkout', 'payment'],
|
|
107
107
|
light: ['admin-panel', 'settings']
|
|
108
|
-
}, "qe-regression-
|
|
108
|
+
}, "qe-regression-analyzer");
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
### Structured: Governance, Observability, Explainability
|
|
@@ -136,7 +136,7 @@ PACT originated with Reuven Cohen (Agentics Foundation) and was adapted to quali
|
|
|
136
136
|
engineering by Dragan Spiridonov. PACTS adds a fifth principle — **Structured** —
|
|
137
137
|
inspired by DORA's research on AI-assisted delivery and platform-engineering
|
|
138
138
|
quality measurement. The addition reflects that autonomous, agentic quality work
|
|
139
|
-
needs governance, observability, and explainability to
|
|
139
|
+
needs governance, observability, and explainability to earn confidence at scale.
|
|
140
140
|
|
|
141
141
|
---
|
|
142
142
|
|
|
@@ -153,7 +153,7 @@ needs governance, observability, and explainability to be trustworthy at scale.
|
|
|
153
153
|
|
|
154
154
|
## Success Signals
|
|
155
155
|
|
|
156
|
-
-
|
|
156
|
+
- Deployments happen as often as the business and its risk profile need, without fear (a medical device and a consumer web app have different right answers)
|
|
157
157
|
- Bug escape rate trending down
|
|
158
158
|
- Team discusses quality naturally
|
|
159
159
|
- Developers write tests without being told
|
|
@@ -179,9 +179,9 @@ const holisticFleet = await FleetManager.coordinate({
|
|
|
179
179
|
pacts: { proactive: true, autonomous: true, collaborative: true, targeted: true, structured: true },
|
|
180
180
|
agents: [
|
|
181
181
|
'qe-fleet-commander', // Orchestration
|
|
182
|
-
'qe-test-
|
|
182
|
+
'qe-test-architect', // Tech quadrant
|
|
183
183
|
'qe-requirements-validator', // Business quadrant
|
|
184
|
-
'qe-quality-
|
|
184
|
+
'qe-quality-gate' // Quality decisions
|
|
185
185
|
],
|
|
186
186
|
topology: 'mesh'
|
|
187
187
|
});
|
|
@@ -15,6 +15,7 @@ trust_tier: 2
|
|
|
15
15
|
validation:
|
|
16
16
|
schema_path: schemas/output.json
|
|
17
17
|
validator_path: scripts/validate-config.json
|
|
18
|
+
eval_path: evals/sherlock-review.yaml
|
|
18
19
|
---
|
|
19
20
|
|
|
20
21
|
# Sherlock Review
|
|
@@ -68,6 +69,7 @@ npm test -- --coverage
|
|
|
68
69
|
| ⚠ **PARTIALLY TRUE** | Claim accurate but incomplete |
|
|
69
70
|
| ✗ **FALSE** | Evidence contradicts claim |
|
|
70
71
|
| ? **NONSENSICAL** | Claim doesn't apply to context |
|
|
72
|
+
| … **UNVERIFIED** | Not enough evidence either way; state what would settle it |
|
|
71
73
|
|
|
72
74
|
---
|
|
73
75
|
|
|
@@ -100,8 +102,8 @@ npm test -- --coverage
|
|
|
100
102
|
1. [Action based on findings]
|
|
101
103
|
```
|
|
102
104
|
|
|
103
|
-
##
|
|
104
|
-
Every
|
|
105
|
+
## Evidence Over Volume (No Findings Quota)
|
|
106
|
+
Every finding and every verdict must chain to observable evidence: code, command output, test results, history. There is no minimum number of observations. When the evidence supports the claim, the correct verdict is TRUE (the output schema's `case-closed-clean`), with a list of what was examined. Manufacturing clues to make an investigation look productive is the same failure Sherlock exists to catch. If the evidence is insufficient either way, say so, state what would settle it, and do not guess.
|
|
105
107
|
|
|
106
108
|
---
|
|
107
109
|
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# AQE Skill Evaluation Test Suite: Sherlock Review v1.0.0
|
|
3
|
+
# =============================================================================
|
|
4
|
+
#
|
|
5
|
+
# Guards evidence-over-volume investigations:
|
|
6
|
+
# - A claim the evidence supports is closed clean, without manufactured clues
|
|
7
|
+
# - A claim the evidence contradicts is called FALSE with the evidence
|
|
8
|
+
# - A claim with no evidence either way is UNVERIFIED, not guessed
|
|
9
|
+
#
|
|
10
|
+
# Schema: .claude/skills/.validation/schemas/skill-eval.schema.json
|
|
11
|
+
# Output schema: .claude/skills/sherlock-review/schemas/output.json
|
|
12
|
+
#
|
|
13
|
+
# =============================================================================
|
|
14
|
+
|
|
15
|
+
skill: sherlock-review
|
|
16
|
+
version: 1.0.0
|
|
17
|
+
description: >
|
|
18
|
+
Evaluation suite for sherlock-review. Verifies verdicts follow the evidence:
|
|
19
|
+
TRUE when supported, FALSE when contradicted, UNVERIFIED when the evidence
|
|
20
|
+
is missing, and no invented observations to make an investigation look busy.
|
|
21
|
+
|
|
22
|
+
models_to_test:
|
|
23
|
+
- claude-sonnet-5 # Primary
|
|
24
|
+
- claude-haiku-4-5 # Minimum quality floor
|
|
25
|
+
|
|
26
|
+
test_cases:
|
|
27
|
+
|
|
28
|
+
- id: tc001_supported_claim_closes_clean
|
|
29
|
+
description: "A PR whose code and test match its description is closed clean"
|
|
30
|
+
category: verdicts
|
|
31
|
+
priority: critical
|
|
32
|
+
input:
|
|
33
|
+
prompt: "Investigate this PR claim: 'Adds retry with exponential backoff (max 3 attempts) to fetchProfile'."
|
|
34
|
+
code: |
|
|
35
|
+
export async function fetchProfile(id: string, get = httpGet, sleep = delay) {
|
|
36
|
+
for (let attempt = 0; attempt < 3; attempt++) {
|
|
37
|
+
try { return await get(`/profiles/${id}`); }
|
|
38
|
+
catch (err) {
|
|
39
|
+
if (attempt === 2) throw err;
|
|
40
|
+
await sleep(100 * 2 ** attempt);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
test('retries with backoff then succeeds', async () => {
|
|
46
|
+
const get = jest.fn().mockRejectedValueOnce(new Error('x')).mockResolvedValue({ id: 'p1' });
|
|
47
|
+
const sleep = jest.fn().mockResolvedValue(undefined);
|
|
48
|
+
await expect(fetchProfile('p1', get, sleep)).resolves.toEqual({ id: 'p1' });
|
|
49
|
+
expect(sleep).toHaveBeenCalledWith(100);
|
|
50
|
+
});
|
|
51
|
+
test('gives up after 3 attempts', async () => {
|
|
52
|
+
const get = jest.fn().mockRejectedValue(new Error('down'));
|
|
53
|
+
await expect(fetchProfile('p1', get, jest.fn())).rejects.toThrow('down');
|
|
54
|
+
expect(get).toHaveBeenCalledTimes(3);
|
|
55
|
+
});
|
|
56
|
+
context:
|
|
57
|
+
language: typescript
|
|
58
|
+
expected_output:
|
|
59
|
+
must_match_regex:
|
|
60
|
+
- "\\b(true|case-closed-clean|supported)\\b"
|
|
61
|
+
# Documented intent (not yet enforced by parallel-eval-runner):
|
|
62
|
+
finding_count:
|
|
63
|
+
min: 0
|
|
64
|
+
max: 2
|
|
65
|
+
custom_assertions:
|
|
66
|
+
- type: semantic
|
|
67
|
+
expression: "The verdict is that the claim holds; any recommendation is minor, and no defects are invented."
|
|
68
|
+
expected: true
|
|
69
|
+
validation:
|
|
70
|
+
schema_check: true
|
|
71
|
+
|
|
72
|
+
- id: tc002_contradicted_claim_is_false
|
|
73
|
+
description: "A claim the code contradicts is called FALSE with the evidence"
|
|
74
|
+
category: verdicts
|
|
75
|
+
priority: critical
|
|
76
|
+
input:
|
|
77
|
+
prompt: "Investigate this PR claim: 'Eliminates the race condition by adding mutex locking'."
|
|
78
|
+
code: |
|
|
79
|
+
// before: callbacks fired saveA and saveB concurrently
|
|
80
|
+
export async function saveBoth(a: Doc, b: Doc) {
|
|
81
|
+
await saveA(a);
|
|
82
|
+
await saveB(b);
|
|
83
|
+
}
|
|
84
|
+
context:
|
|
85
|
+
language: typescript
|
|
86
|
+
expected_output:
|
|
87
|
+
must_contain:
|
|
88
|
+
- "FALSE"
|
|
89
|
+
- "mutex"
|
|
90
|
+
custom_assertions:
|
|
91
|
+
- type: semantic
|
|
92
|
+
expression: "The investigation notes there is no mutex or lock in the code and that the race is avoided by sequencing the awaits, citing the code."
|
|
93
|
+
expected: true
|
|
94
|
+
validation:
|
|
95
|
+
schema_check: true
|
|
96
|
+
keyword_match_threshold: 0.8
|
|
97
|
+
|
|
98
|
+
- id: tc003_missing_evidence_is_unverified
|
|
99
|
+
description: "A performance claim with no benchmark is UNVERIFIED, with what would settle it"
|
|
100
|
+
category: verdicts
|
|
101
|
+
priority: high
|
|
102
|
+
input:
|
|
103
|
+
prompt: "Investigate this PR claim: 'Improves search performance by 50%'. The PR changes a loop to use a Map lookup and includes no benchmark."
|
|
104
|
+
expected_output:
|
|
105
|
+
must_match_regex:
|
|
106
|
+
- "(unverified|insufficient evidence|not enough evidence)"
|
|
107
|
+
custom_assertions:
|
|
108
|
+
- type: semantic
|
|
109
|
+
expression: "The response does not confirm or deny the 50% figure, and names the benchmark that would settle it."
|
|
110
|
+
expected: true
|
|
111
|
+
validation:
|
|
112
|
+
schema_check: false
|
|
113
|
+
|
|
114
|
+
success_criteria:
|
|
115
|
+
pass_rate: 0.9
|
|
116
|
+
critical_pass_rate: 1.0
|
|
117
|
+
max_execution_time_ms: 300000
|
|
118
|
+
|
|
119
|
+
metadata:
|
|
120
|
+
author: "agentic-qe"
|
|
121
|
+
created: "2026-10-29"
|
|
122
|
+
coverage_target: >
|
|
123
|
+
Verdicts that follow the evidence: clean close, FALSE on contradiction,
|
|
124
|
+
UNVERIFIED on missing evidence.
|
|
@@ -14,6 +14,7 @@ tags: [writing, documentation, communication, blogs, tutorials]
|
|
|
14
14
|
trust_tier: 1
|
|
15
15
|
validation:
|
|
16
16
|
schema_path: schemas/output.json
|
|
17
|
+
eval_path: evals/technical-writing.yaml
|
|
17
18
|
---
|
|
18
19
|
|
|
19
20
|
# Technical Writing
|
|
@@ -21,10 +22,11 @@ validation:
|
|
|
21
22
|
<default_to_action>
|
|
22
23
|
When writing technical content:
|
|
23
24
|
1. LEAD with value (what will reader learn/gain?)
|
|
24
|
-
2. SHOW, don't tell (specific examples, code, numbers)
|
|
25
|
+
2. SHOW, don't tell (specific examples, code, and numbers you measured or can source)
|
|
25
26
|
3. STRUCTURE for scanning (headers, bold, short paragraphs)
|
|
26
27
|
4. CUT ruthlessly (every sentence must earn its place)
|
|
27
28
|
5. BE honest about trade-offs
|
|
29
|
+
6. NEVER invent figures: every number, duration, and date traces to a source (tracker, benchmark, PR, release note). Missing a number? Write `[number?]` and ask, or describe what changed without one.
|
|
28
30
|
|
|
29
31
|
**Blog Post Structure:**
|
|
30
32
|
```markdown
|
|
@@ -55,10 +57,13 @@ When writing technical content:
|
|
|
55
57
|
|
|
56
58
|
| Principle | Bad | Good |
|
|
57
59
|
|-----------|-----|------|
|
|
58
|
-
| **Lead with value** | "In today's landscape..." | "Here's
|
|
59
|
-
| **Show, don't tell** | "We improved testing" | "
|
|
60
|
-
| **Be specific** | "Performance improved" | "
|
|
61
|
-
| **Honest trade-offs** | "This approach is best" | "TDD slowed
|
|
60
|
+
| **Lead with value** | "In today's landscape..." | "Here's what changed when we moved testing into refinement" |
|
|
61
|
+
| **Show, don't tell** | "We improved testing" | "Bugs found per sprint, before and after, from our tracker: [before]→[after]" |
|
|
62
|
+
| **Be specific** | "Performance improved" | "p95 response time before and after, with how and where it was measured" |
|
|
63
|
+
| **Honest trade-offs** | "This approach is best" | "TDD slowed our first features; here is what we got back, with the numbers we measured" |
|
|
64
|
+
| **Source every figure** | "Coverage jumped 40%" (from memory) | The figure plus where it came from, or no figure at all |
|
|
65
|
+
|
|
66
|
+
Bracketed values are placeholders for your own measured data. Never fill them with plausible-sounding numbers.
|
|
62
67
|
|
|
63
68
|
### Words to Cut
|
|
64
69
|
|
|
@@ -99,6 +104,7 @@ Before publishing:
|
|
|
99
104
|
- [ ] Title promises something specific
|
|
100
105
|
- [ ] Opening hooks in 30 seconds
|
|
101
106
|
- [ ] Claims backed by examples
|
|
107
|
+
- [ ] Every number, duration, and date traced to a source (or removed)
|
|
102
108
|
- [ ] All unnecessary words cut
|
|
103
109
|
- [ ] Code examples tested and correct
|
|
104
110
|
- [ ] Takeaway crystal clear
|
|
@@ -120,7 +126,7 @@ Before publishing:
|
|
|
120
126
|
"The benefits of this approach are numerous and include improved quality, faster feedback loops, and better team collaboration."
|
|
121
127
|
|
|
122
128
|
**After:**
|
|
123
|
-
"Three outcomes: bugs
|
|
129
|
+
"Three outcomes: bugs now surface during refinement instead of after merge, the regression suite stopped growing with every release, and developers ask QE for input during design." (Add figures only if you measured them, and say where they came from.)
|
|
124
130
|
|
|
125
131
|
---
|
|
126
132
|
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# AQE Skill Evaluation Test Suite: Technical Writing v1.0.0
|
|
3
|
+
# =============================================================================
|
|
4
|
+
#
|
|
5
|
+
# Guards the "never invent figures" rule:
|
|
6
|
+
# - No numbers appear that the input did not provide
|
|
7
|
+
# - Provided numbers are used accurately, with their source
|
|
8
|
+
# - Missing data is marked or asked for, not filled in
|
|
9
|
+
#
|
|
10
|
+
# Schema: .claude/skills/.validation/schemas/skill-eval.schema.json
|
|
11
|
+
#
|
|
12
|
+
# =============================================================================
|
|
13
|
+
|
|
14
|
+
skill: technical-writing
|
|
15
|
+
version: 1.0.0
|
|
16
|
+
description: >
|
|
17
|
+
Evaluation suite for technical-writing. Verifies that writing stays factual:
|
|
18
|
+
no invented statistics, accurate use of provided figures, and explicit
|
|
19
|
+
placeholders or questions when data is missing.
|
|
20
|
+
|
|
21
|
+
models_to_test:
|
|
22
|
+
- claude-sonnet-5 # Primary
|
|
23
|
+
- claude-haiku-4-5 # Minimum quality floor
|
|
24
|
+
|
|
25
|
+
test_cases:
|
|
26
|
+
|
|
27
|
+
- id: tc001_no_invented_numbers
|
|
28
|
+
description: "With no metrics in the input, the draft contains no percentages or numeric outcomes"
|
|
29
|
+
category: factual_accuracy
|
|
30
|
+
priority: critical
|
|
31
|
+
input:
|
|
32
|
+
prompt: >
|
|
33
|
+
Write a three-paragraph blog introduction about our team moving
|
|
34
|
+
exploratory testing into story refinement. We have not measured
|
|
35
|
+
the impact yet.
|
|
36
|
+
expected_output:
|
|
37
|
+
must_not_contain:
|
|
38
|
+
- "%"
|
|
39
|
+
custom_assertions:
|
|
40
|
+
- type: semantic
|
|
41
|
+
expression: "The draft states no quantitative outcomes (counts, percentages, durations) that were not in the input."
|
|
42
|
+
expected: true
|
|
43
|
+
validation:
|
|
44
|
+
schema_check: false
|
|
45
|
+
|
|
46
|
+
- id: tc002_uses_provided_numbers_with_source
|
|
47
|
+
description: "Provided figures are reproduced exactly and attributed to their source"
|
|
48
|
+
category: factual_accuracy
|
|
49
|
+
priority: critical
|
|
50
|
+
input:
|
|
51
|
+
prompt: >
|
|
52
|
+
Write a short paragraph for a release blog post. From our defect
|
|
53
|
+
tracker: escaped defects went from 14 in Q1 to 6 in Q2 after we added
|
|
54
|
+
contract tests. Do not add other numbers.
|
|
55
|
+
expected_output:
|
|
56
|
+
must_contain:
|
|
57
|
+
- "\\b14\\b"
|
|
58
|
+
- "\\b6\\b"
|
|
59
|
+
- "tracker"
|
|
60
|
+
custom_assertions:
|
|
61
|
+
- type: semantic
|
|
62
|
+
expression: "The paragraph uses only the figures 14 and 6 (and Q1/Q2), attributes them to the defect tracker, and adds no other statistics."
|
|
63
|
+
expected: true
|
|
64
|
+
validation:
|
|
65
|
+
schema_check: false
|
|
66
|
+
keyword_match_threshold: 1.0
|
|
67
|
+
|
|
68
|
+
- id: tc003_marks_missing_data
|
|
69
|
+
description: "When asked to include a figure that was not provided, the draft marks it or asks for it"
|
|
70
|
+
category: factual_accuracy
|
|
71
|
+
priority: high
|
|
72
|
+
input:
|
|
73
|
+
prompt: >
|
|
74
|
+
Write a LinkedIn-length summary of our migration from Selenium to
|
|
75
|
+
Playwright, including how much faster the suite got.
|
|
76
|
+
expected_output:
|
|
77
|
+
must_match_regex:
|
|
78
|
+
- "(\\[(number|date|duration)\\?\\]|how much faster|could you share|what was the|do you have)"
|
|
79
|
+
custom_assertions:
|
|
80
|
+
- type: semantic
|
|
81
|
+
expression: "The response does not state a specific speed-up; it uses a placeholder or asks for the measured figure."
|
|
82
|
+
expected: true
|
|
83
|
+
validation:
|
|
84
|
+
schema_check: false
|
|
85
|
+
|
|
86
|
+
success_criteria:
|
|
87
|
+
pass_rate: 0.9
|
|
88
|
+
critical_pass_rate: 1.0
|
|
89
|
+
max_execution_time_ms: 300000
|
|
90
|
+
|
|
91
|
+
metadata:
|
|
92
|
+
author: "agentic-qe"
|
|
93
|
+
created: "2026-10-29"
|
|
94
|
+
coverage_target: >
|
|
95
|
+
Factual accuracy in technical writing: no invented figures, accurate
|
|
96
|
+
sourced figures, and explicit handling of missing data.
|
|
@@ -19,10 +19,10 @@ steps:
|
|
|
19
19
|
prompt: |
|
|
20
20
|
Coordination Patterns
|
|
21
21
|
- name: success-criteria
|
|
22
|
-
description: "✅
|
|
22
|
+
description: "✅ Deployment frequency rises without escaped defects rising (measured against your own baseline) ✅ Coverage gaps detected in real-time ✅ Bugs caught pre-production ❌ Agents acting without human oversight on critical decisions ❌ Deploying all 19 agents at once (start with 1-2)"
|
|
23
23
|
tools: ["bash", "read"]
|
|
24
24
|
prompt: |
|
|
25
|
-
✅
|
|
25
|
+
✅ Deployment frequency rises without escaped defects rising (measured against your own baseline) ✅ Coverage gaps detected in real-time ✅ Bugs caught pre-production ❌ Agents acting without human oversight on critical decisions ❌ Deploying all 19 agents at once (start with 1-2)
|
|
26
26
|
- name: core-concepts
|
|
27
27
|
description: "Core Concepts"
|
|
28
28
|
tools: ["bash", "read"]
|
|
@@ -29,10 +29,10 @@ steps:
|
|
|
29
29
|
prompt: |
|
|
30
30
|
Proactive: Test Before Bugs
|
|
31
31
|
- name: autonomous-teams-own-quality
|
|
32
|
-
description: "- Developers run full test suite locally - CI fails fast with clear diagnostics -
|
|
32
|
+
description: "- Developers run full test suite locally - CI fails fast with clear diagnostics - Deployment approvals automated where the risk allows; where regulation or risk requires a human sign-off, make it fast and evidence-based rather than a queue - Self-service test environments"
|
|
33
33
|
tools: ["bash", "read"]
|
|
34
34
|
prompt: |
|
|
35
|
-
- Developers run full test suite locally - CI fails fast with clear diagnostics -
|
|
35
|
+
- Developers run full test suite locally - CI fails fast with clear diagnostics - Deployment approvals automated where the risk allows; where regulation or risk requires a human sign-off, make it fast and evidence-based rather than a queue - Self-service test environments
|
|
36
36
|
- name: collaborative-whole-team-thinking
|
|
37
37
|
description: "- QE attends planning and refinement - Three Amigos for every user story - Shared ownership of test code - Ensemble testing for complex scenarios"
|
|
38
38
|
tools: ["bash", "read"]
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,207 @@ All notable changes to the Agentic QE project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.15.18] - 2026-11-01
|
|
9
|
+
|
|
10
|
+
AQE no longer fails with "database is locked" when several processes open a
|
|
11
|
+
new database at once, and cloud sync reads a `memory.db` that is not in WAL
|
|
12
|
+
mode without changing it. Git timeouts and failures are no longer reported
|
|
13
|
+
as "no changes", and predictions built on them report lower confidence.
|
|
14
|
+
`aqe coverage` says why it refused a coverage report instead of reading a
|
|
15
|
+
file outside the project or hanging on a FIFO. Learned patterns are moved
|
|
16
|
+
and merged safely, re-seeding no longer duplicates them, and a recreated
|
|
17
|
+
`memory.db` can no longer overwrite a richer brain checkpoint.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **Concurrent first open of a database** ([#1164], [#1319]): when the MCP
|
|
22
|
+
server, hooks and the CLI opened a database that was not yet in WAL mode
|
|
23
|
+
at the same moment, about 1 in 20 opens failed with "database is locked".
|
|
24
|
+
The switch to WAL is now retried within the busy timeout. With
|
|
25
|
+
`AQE_DISABLE_WAL` set, AQE no longer switches the database back to WAL.
|
|
26
|
+
- **Cloud sync reads a non-WAL `memory.db`** ([#1320], [#1324]): `aqe sync`
|
|
27
|
+
and `aqe sync status` opened the database read-only and then tried to
|
|
28
|
+
switch it to WAL, so every SQLite source was skipped with "attempt to
|
|
29
|
+
write a readonly database". The reader now leaves the file's journal mode
|
|
30
|
+
unchanged and reads DELETE-mode and WAL-mode databases alike.
|
|
31
|
+
- **Git timeouts are not "no changes"** ([#1165], [#1327]): a git timeout,
|
|
32
|
+
output overflow or failed git call no longer reads as an empty history or
|
|
33
|
+
an empty change set, and nothing is cached from it. The quality daemon's
|
|
34
|
+
git watcher retries a timed-out diff instead of skipping the commit.
|
|
35
|
+
Overlapping defect predictions on the same file each keep their own
|
|
36
|
+
deadline and warning.
|
|
37
|
+
- **`aqe coverage` says why a report was refused** ([#1186], [#1335]): a
|
|
38
|
+
coverage report symlinked out of the project, a FIFO or device, or a file
|
|
39
|
+
over the size limit is named with the reason in `aqe coverage`,
|
|
40
|
+
`aqe fleet run analyze` and MCP `coverage_analyze_sublinear`. Before,
|
|
41
|
+
`aqe coverage` read a `coverage-final.json` symlinked out of the project
|
|
42
|
+
and reported it as measured coverage, and hung on a FIFO. Hardlink
|
|
43
|
+
refusal is tracked in [#1329] and the remaining unconfined reader in
|
|
44
|
+
[#1337].
|
|
45
|
+
- **Cross-domain pattern seeding is idempotent** ([#1325], [#1334]): if
|
|
46
|
+
the "already seeded" flag was lost while the patterns remained, each
|
|
47
|
+
session copied patterns again, including copies of copies, and the
|
|
48
|
+
pattern table kept growing. A re-run now adds nothing. Cleanup of
|
|
49
|
+
duplicates left by earlier versions is tracked in [#1332].
|
|
50
|
+
- **Pattern archive moves and merges** ([#1149], [#1314]): a pattern is
|
|
51
|
+
deleted only after its archive copy is read back in full and matches.
|
|
52
|
+
A usage update made during a move is kept, and a merge that fails part
|
|
53
|
+
way is rolled back or reports exactly which sources were removed.
|
|
54
|
+
- **A recreated `memory.db` no longer overwrites a richer brain
|
|
55
|
+
checkpoint** ([#1251], [#1316]): the end-of-turn hook keeps the existing
|
|
56
|
+
`.agentic-qe/aqe.rvf` if a table collapsed, logs why once and backs off.
|
|
57
|
+
Routine retention, `aqe learning prune --apply` and dream retention are
|
|
58
|
+
still checkpointed. A global `aqe` too old for the new export options
|
|
59
|
+
keeps the checkpoint and says to upgrade.
|
|
60
|
+
- **Defect prediction history** ([#1137], [#1315]): pruning no longer
|
|
61
|
+
deletes runs it cannot parse, the latest run for every target is kept,
|
|
62
|
+
and a stored run is not reported as failed when only cleanup failed. The
|
|
63
|
+
background worker reports health as unmeasured, not 100, when it
|
|
64
|
+
measured nothing.
|
|
65
|
+
- **First start after upgrading with float noise** ([#1302], [#1317]): a
|
|
66
|
+
project's embedding space created before 3.15.17 is kept, after checking
|
|
67
|
+
that the current embedder reproduces stored vectors, instead of being
|
|
68
|
+
split into a new space.
|
|
69
|
+
- **Learning outcomes** ([#1147], [#1321]): failed runs no longer create
|
|
70
|
+
learned patterns, a domain whose runs all failed is no longer listed as
|
|
71
|
+
top performing, and `learn` says why it learned nothing. A test file
|
|
72
|
+
that does not exist is reported as a caller error, not a failed test.
|
|
73
|
+
|
|
74
|
+
### Changed
|
|
75
|
+
|
|
76
|
+
- **`aqe coverage` exit code for a refused report** ([#1335]): when the
|
|
77
|
+
coverage report is refused, `aqe coverage` exits **3** and labels the
|
|
78
|
+
figures UNMEASURED (a static estimate, no threshold verdict). Before, it
|
|
79
|
+
exited 0. Scripts that treated exit 0 as "coverage measured" now see the
|
|
80
|
+
failure.
|
|
81
|
+
- **Defect prediction confidence after a git timeout** ([#1327]): a
|
|
82
|
+
prediction for a file whose git history timed out reports half its
|
|
83
|
+
confidence share (0.375 instead of 0.75 for a single file), together
|
|
84
|
+
with the timeout warning.
|
|
85
|
+
- **Domain-filtered pattern search with an empty query** ([#1334]): the RVF
|
|
86
|
+
pattern store now filters by domain in SQL, so it returns the domain's
|
|
87
|
+
patterns up to the limit. Before, it filtered the top rows of the whole
|
|
88
|
+
table and could miss most of a domain.
|
|
89
|
+
- **Review and writing skills** ([#1312]): `brutal-honesty-review`,
|
|
90
|
+
`sherlock-review` and `code-review-quality` no longer require a minimum
|
|
91
|
+
number of findings. A clean change can get a clean verdict, and the
|
|
92
|
+
`brutal-honesty-review` output schema now requires an `evidence` field
|
|
93
|
+
for each finding. `sherlock-review` adds an `UNVERIFIED` verdict.
|
|
94
|
+
`technical-writing` and `agentic-quality-engineering` no longer contain
|
|
95
|
+
invented statistics, and agent names in those skills use the current v3
|
|
96
|
+
names (for example `qe-test-architect` instead of `qe-test-generator`).
|
|
97
|
+
These skills are installed by `aqe init`.
|
|
98
|
+
- **Dev dependencies** ([#1308], [#1311]): lockfile updates for `qs`,
|
|
99
|
+
`body-parser`, `ip-address` and `protobufjs` resolve `npm audit`
|
|
100
|
+
advisories. All are dev-only; the published package was not affected.
|
|
101
|
+
The remaining dev-only findings are tracked in [#1310].
|
|
102
|
+
|
|
103
|
+
[#1137]: https://github.com/proffesor-for-testing/agentic-qe/issues/1137
|
|
104
|
+
[#1147]: https://github.com/proffesor-for-testing/agentic-qe/issues/1147
|
|
105
|
+
[#1149]: https://github.com/proffesor-for-testing/agentic-qe/issues/1149
|
|
106
|
+
[#1164]: https://github.com/proffesor-for-testing/agentic-qe/issues/1164
|
|
107
|
+
[#1165]: https://github.com/proffesor-for-testing/agentic-qe/issues/1165
|
|
108
|
+
[#1186]: https://github.com/proffesor-for-testing/agentic-qe/issues/1186
|
|
109
|
+
[#1251]: https://github.com/proffesor-for-testing/agentic-qe/issues/1251
|
|
110
|
+
[#1302]: https://github.com/proffesor-for-testing/agentic-qe/issues/1302
|
|
111
|
+
[#1308]: https://github.com/proffesor-for-testing/agentic-qe/pull/1308
|
|
112
|
+
[#1310]: https://github.com/proffesor-for-testing/agentic-qe/issues/1310
|
|
113
|
+
[#1311]: https://github.com/proffesor-for-testing/agentic-qe/pull/1311
|
|
114
|
+
[#1312]: https://github.com/proffesor-for-testing/agentic-qe/pull/1312
|
|
115
|
+
[#1314]: https://github.com/proffesor-for-testing/agentic-qe/pull/1314
|
|
116
|
+
[#1315]: https://github.com/proffesor-for-testing/agentic-qe/pull/1315
|
|
117
|
+
[#1316]: https://github.com/proffesor-for-testing/agentic-qe/pull/1316
|
|
118
|
+
[#1317]: https://github.com/proffesor-for-testing/agentic-qe/pull/1317
|
|
119
|
+
[#1319]: https://github.com/proffesor-for-testing/agentic-qe/pull/1319
|
|
120
|
+
[#1320]: https://github.com/proffesor-for-testing/agentic-qe/issues/1320
|
|
121
|
+
[#1321]: https://github.com/proffesor-for-testing/agentic-qe/pull/1321
|
|
122
|
+
[#1324]: https://github.com/proffesor-for-testing/agentic-qe/pull/1324
|
|
123
|
+
[#1325]: https://github.com/proffesor-for-testing/agentic-qe/issues/1325
|
|
124
|
+
[#1327]: https://github.com/proffesor-for-testing/agentic-qe/pull/1327
|
|
125
|
+
[#1329]: https://github.com/proffesor-for-testing/agentic-qe/issues/1329
|
|
126
|
+
[#1332]: https://github.com/proffesor-for-testing/agentic-qe/issues/1332
|
|
127
|
+
[#1334]: https://github.com/proffesor-for-testing/agentic-qe/pull/1334
|
|
128
|
+
[#1335]: https://github.com/proffesor-for-testing/agentic-qe/pull/1335
|
|
129
|
+
[#1337]: https://github.com/proffesor-for-testing/agentic-qe/issues/1337
|
|
130
|
+
|
|
131
|
+
## [3.15.17] - 2026-10-28
|
|
132
|
+
|
|
133
|
+
Python projects can run their pytest suites through AQE, and those runs now
|
|
134
|
+
count as measured outcomes. VS Code Copilot picks up the current AQE tools
|
|
135
|
+
after an upgrade instead of keeping a stale cached tool list. The learning
|
|
136
|
+
system keeps the same embedding space when the same model restarts, and
|
|
137
|
+
refuses a different model behind the same endpoint. Semantic code search
|
|
138
|
+
uses an installed Ollama MiniLM model, and text matches are ranked by how
|
|
139
|
+
closely they match.
|
|
140
|
+
|
|
141
|
+
### Added
|
|
142
|
+
|
|
143
|
+
- **pytest support** ([#1248], [#1303]): `aqe test execute` and
|
|
144
|
+
`test_execute_parallel` run `.py` test files with
|
|
145
|
+
`python -m pytest --junitxml` and report passed, failed and skipped tests
|
|
146
|
+
by name. Python projects are detected from `pytest.ini`, `pyproject.toml`,
|
|
147
|
+
`setup.cfg`, `tox.ini` or `conftest.py`. Set `AQE_PYTHON` to choose the
|
|
148
|
+
interpreter. A run that does not finish (pytest not installed, no tests
|
|
149
|
+
collected, a collection error) is reported as an error, never as a pass,
|
|
150
|
+
and Python files are never sent to Vitest. Follow-ups, including recording
|
|
151
|
+
outcomes from the CLI and pytest coverage, are tracked in [#1304].
|
|
152
|
+
|
|
153
|
+
### Fixed
|
|
154
|
+
|
|
155
|
+
- **VS Code Copilot no longer keeps stale AQE tools after an upgrade**
|
|
156
|
+
([#1269], [#1293]): VS Code caches each MCP server's tools and refreshes
|
|
157
|
+
them only when the server's launch settings change, so after an upgrade
|
|
158
|
+
Copilot could keep rejecting an old tool schema. `aqe init` now writes
|
|
159
|
+
the installed AQE version into the server's `env` in `.vscode/mcp.json`
|
|
160
|
+
(still launching `agentic-qe@latest`), so re-running init after an
|
|
161
|
+
upgrade makes VS Code reload the tools. Re-init only updates AQE's own
|
|
162
|
+
entry and leaves a file with comments untouched. If Copilot still shows
|
|
163
|
+
the error, run "MCP: Reset Cached Tools". A check in the test suite now
|
|
164
|
+
fails the build if any tool schema has an array without `items`.
|
|
165
|
+
- **A different embedding model behind the same endpoint is refused**
|
|
166
|
+
([#1282], [#1295]): after the circuit breaker recovered, the embedder
|
|
167
|
+
client accepted whatever model now answered. It now refuses a changed
|
|
168
|
+
model with a clear error, so vectors from two models are never mixed.
|
|
169
|
+
The same model with tiny numeric differences is still accepted.
|
|
170
|
+
- **The same model keeps its embedding space after a restart** ([#1298],
|
|
171
|
+
[#1301]): the embedding space id came from an exact fingerprint, so tiny
|
|
172
|
+
float differences after a restart started a new space and hid earlier
|
|
173
|
+
experiences. Known spaces are now recorded and matched by similarity, and
|
|
174
|
+
`backfill-embeddings` no longer rewrites stored vectors after such a
|
|
175
|
+
restart. Remaining edge cases are tracked in [#1302].
|
|
176
|
+
- **Semantic code search uses an installed Ollama MiniLM model** ([#1229],
|
|
177
|
+
[#1297]): `all-minilm` (the L6 model, under any tag Ollama lists) is
|
|
178
|
+
recognised and requested by its installed name, so search no longer drops
|
|
179
|
+
to text-only. The error says whether the model is missing, Ollama is not
|
|
180
|
+
reachable, or the request failed. `AQE_OLLAMA_EMBEDDING_MODEL` selects
|
|
181
|
+
another Ollama model, which gets its own embedding space.
|
|
182
|
+
- **Ranking among text matches** ([#1287], [#1299]): when several files
|
|
183
|
+
match the query words equally, an exact identifier match comes first,
|
|
184
|
+
then words next to each other, whole words before partial ones, and more
|
|
185
|
+
occurrences before fewer. Scores are unchanged.
|
|
186
|
+
- **Test runs pick each package's runner** ([#1272], [#1300]): a Jest
|
|
187
|
+
package in a monorepo is run with Jest even when the default is Vitest,
|
|
188
|
+
the flaky detector runs from the package directory, and
|
|
189
|
+
`aqe test execute --project-root <dir>` is available on the CLI.
|
|
190
|
+
`--framework` is only passed on when you set it.
|
|
191
|
+
|
|
192
|
+
[#1229]: https://github.com/proffesor-for-testing/agentic-qe/issues/1229
|
|
193
|
+
[#1248]: https://github.com/proffesor-for-testing/agentic-qe/issues/1248
|
|
194
|
+
[#1269]: https://github.com/proffesor-for-testing/agentic-qe/issues/1269
|
|
195
|
+
[#1272]: https://github.com/proffesor-for-testing/agentic-qe/issues/1272
|
|
196
|
+
[#1282]: https://github.com/proffesor-for-testing/agentic-qe/issues/1282
|
|
197
|
+
[#1287]: https://github.com/proffesor-for-testing/agentic-qe/issues/1287
|
|
198
|
+
[#1293]: https://github.com/proffesor-for-testing/agentic-qe/pull/1293
|
|
199
|
+
[#1295]: https://github.com/proffesor-for-testing/agentic-qe/pull/1295
|
|
200
|
+
[#1297]: https://github.com/proffesor-for-testing/agentic-qe/pull/1297
|
|
201
|
+
[#1298]: https://github.com/proffesor-for-testing/agentic-qe/issues/1298
|
|
202
|
+
[#1299]: https://github.com/proffesor-for-testing/agentic-qe/pull/1299
|
|
203
|
+
[#1300]: https://github.com/proffesor-for-testing/agentic-qe/pull/1300
|
|
204
|
+
[#1301]: https://github.com/proffesor-for-testing/agentic-qe/pull/1301
|
|
205
|
+
[#1302]: https://github.com/proffesor-for-testing/agentic-qe/issues/1302
|
|
206
|
+
[#1303]: https://github.com/proffesor-for-testing/agentic-qe/pull/1303
|
|
207
|
+
[#1304]: https://github.com/proffesor-for-testing/agentic-qe/issues/1304
|
|
208
|
+
|
|
8
209
|
## [3.15.16] - 2026-10-27
|
|
9
210
|
|
|
10
211
|
A locked `.agentic-qe/memory.db` no longer freezes the MCP server: database
|