{"_id":"@agile-team/wl-skills-test","_rev":"10-277cef4f9ce73cf1d0faf16835679b1d","name":"@agile-team/wl-skills-test","dist-tags":{"latest":"0.25.0"},"versions":{"0.3.2":{"name":"@agile-team/wl-skills-test","version":"0.3.2","keywords":["ai","skills","testing","playwright","jmeter","copilot","cursor","windsurf","claude","agents","qa","automation"],"author":{"name":"AGILE TEAM"},"license":"UNLICENSED","_id":"@agile-team/wl-skills-test@0.3.2","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"homepage":"https://github.com/ChenyCHENYU/wl-skills-test#readme","bin":{"wl-skills-test":"bin/wl-skills-test.js"},"dist":{"shasum":"2337b42310dae9c6d5f14482b0f323dfc147542a","tarball":"https://registry.npmjs.org/@agile-team/wl-skills-test/-/wl-skills-test-0.3.2.tgz","fileCount":67,"integrity":"sha512-RS8mskFJABO+VObz+gc42al3KvwHBOkKAwZojRTZ6DwNMjTooSWhBaVzXJrohN+Nvkn3ex5twVE+nUgPO4s5CA==","signatures":[{"sig":"MEYCIQDZBywkVfOxTZw5TN5PqOyWj8iodGomjgLPLDrdonpUkgIhAN511TzkdZpHt3wfBk0NmWQ3YkiIDsi85P++qgH7Ushe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":319728},"main":"./lib/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"59e525ebcef5f755cc0ffafea52b16d8fadfc8f9","scripts":{"test":"node --test test/*.test.js","verify":"node --test test/*.test.js","prepublishOnly":"node --test test/*.test.js"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"11.13.0","description":"测试工程 AI 技能包 — 11 条规范、12 个 Skill、7 个 MCP、契约驱动生成，与 design/kit/ui/bd 协作形成设计→开发→测试闭环","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wl-skills-test_0.3.2_1785862948288_0.100504544602382","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@agile-team/wl-skills-test","version":"0.4.0","keywords":["ai","skills","testing","playwright","jmeter","copilot","cursor","windsurf","claude","agents","qa","automation"],"author":{"name":"AGILE TEAM"},"license":"UNLICENSED","_id":"@agile-team/wl-skills-test@0.4.0","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"homepage":"https://github.com/ChenyCHENYU/wl-skills-test#readme","bin":{"wl-skills-test":"bin/wl-skills-test.js"},"dist":{"shasum":"86450ae84dbb0abbb14c13ca4b692d66a38e06c2","tarball":"https://registry.npmjs.org/@agile-team/wl-skills-test/-/wl-skills-test-0.4.0.tgz","fileCount":69,"integrity":"sha512-jD4ywXtOotd+stS96+lMs6XyQS4OjhYuvmUEP0Xv6FaXJY3KMz5Hve+xXbv6ZHDZuNjlavkRXyg+yen0rQWOxg==","signatures":[{"sig":"MEUCIGAieXWIzSbG0ZJgLt9LKi2T69bSk/AQCOX1/KTkLay2AiEAo0uDWkaLARYqlQiAoSrj+6BZadcWOy88oi9hzO4WAB8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349087},"main":"./lib/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"d9f753705d643aa8c2b4128f3aebe1ee1de7720d","scripts":{"test":"node --test test/*.test.js","verify":"node --test test/*.test.js","prepublishOnly":"node --test test/*.test.js"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"11.13.0","description":"测试工程 AI 技能包 — 11 条规范、12 个 Skill、7 个 MCP、契约驱动生成，与 design/kit/ui/bd 协作形成设计→开发→测试闭环","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wl-skills-test_0.4.0_1785863780987_0.2808803807604101","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@agile-team/wl-skills-test","version":"0.5.0","keywords":["ai","skills","testing","playwright","jmeter","copilot","cursor","windsurf","claude","agents","qa","automation"],"author":{"name":"AGILE TEAM"},"license":"UNLICENSED","_id":"@agile-team/wl-skills-test@0.5.0","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"homepage":"https://github.com/ChenyCHENYU/wl-skills-test#readme","bin":{"wl-skills-test":"bin/wl-skills-test.js"},"dist":{"shasum":"c7ed64d4a1ff7c29621954b852f0a976f78b53fb","tarball":"https://registry.npmjs.org/@agile-team/wl-skills-test/-/wl-skills-test-0.5.0.tgz","fileCount":70,"integrity":"sha512-y8i+2VwCc0yzr8hR29DE3sXsjjQ+9mhcY84Ykx4gMZHqT14pyafk3Mq/9I+IUSPREJXW3A5MoRYxBDPHFFvETg==","signatures":[{"sig":"MEYCIQDfkjd73ouAYPv+Xqzhi3gTwsssqGaSub2+T7fNCPilxQIhAJMUUmmBJxJStq2x4Nxi2ZRog5uH+GxemXYC3BfR/BRC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":368916},"main":"./lib/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"d8c033798e81a62eb6d8cbc15e258fc3696ea3fc","scripts":{"test":"node --test test/*.test.js","verify":"node --test test/*.test.js","prepublishOnly":"node --test test/*.test.js"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"11.13.0","description":"测试工程 AI 技能包 — 11 条规范、12 个 Skill、7 个 MCP、契约驱动生成，与 design/kit/ui/bd 协作形成设计→开发→测试闭环","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wl-skills-test_0.5.0_1785864977679_0.8034604319774983","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@agile-team/wl-skills-test","version":"0.6.0","keywords":["ai","skills","testing","playwright","jmeter","copilot","cursor","windsurf","claude","agents","qa","automation"],"author":{"name":"AGILE TEAM"},"license":"UNLICENSED","_id":"@agile-team/wl-skills-test@0.6.0","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"homepage":"https://github.com/ChenyCHENYU/wl-skills-test#readme","bin":{"wl-skills-test":"bin/wl-skills-test.js"},"dist":{"shasum":"2a5567a4fe63a09e303254c69e52031a35a4ade9","tarball":"https://registry.npmjs.org/@agile-team/wl-skills-test/-/wl-skills-test-0.6.0.tgz","fileCount":72,"integrity":"sha512-rgbCQRQngByJ4LHWFhBVQazQQ4AMoq+TmQZQUZzkWuhFt7f1+MW1NnVP7fJ9ca+sY5vsdVrlj7nM56+wxcOhHw==","signatures":[{"sig":"MEUCIQCdxcoZA8QFKIY2xQe8/T2GeuzZHkZof3uGuc6LAJIslQIgMv16gN7fDBKwa7ETpdwQdjlDPRWBHYXl2zyI0uYVxkY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":438202},"main":"./lib/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"1b6fe3181a13d2a2284e1b7ce217001c7a00b2bc","scripts":{"test":"node --test test/*.test.js","verify":"node --test test/*.test.js","prepublishOnly":"node --test test/*.test.js"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"11.13.0","description":"测试工程 AI 技能包 — 11 条规范、12 个 Skill、13 个 MCP 工具、契约驱动生成、E2E 三轮策略脚手架，与 design/kit/ui/bd 协作形成设计→开发→测试闭环","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wl-skills-test_0.6.0_1786730763490_0.3505282053166019","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@agile-team/wl-skills-test","version":"0.7.0","keywords":["ai","skills","testing","playwright","jmeter","copilot","cursor","windsurf","claude","agents","qa","automation"],"author":{"name":"AGILE TEAM"},"license":"UNLICENSED","_id":"@agile-team/wl-skills-test@0.7.0","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"homepage":"https://github.com/ChenyCHENYU/wl-skills-test#readme","bin":{"wl-skills-test":"bin/wl-skills-test.js"},"dist":{"shasum":"b2e90b85502b225023c0469b60913f3462a83d48","tarball":"https://registry.npmjs.org/@agile-team/wl-skills-test/-/wl-skills-test-0.7.0.tgz","fileCount":75,"integrity":"sha512-IOtSDsgFNxfnxS7s/IGIJ2DQG5swzCsHe74DhGVxbjK619pbcn6JPvzxg4sLUed2pRErnRD6AVvwPLbCRmiVwA==","signatures":[{"sig":"MEQCIQDhAz9BgsYTVfvt5Jq8tKsZAPSHnieXbfvKlq4bH2fuyAIffGiP2iyZ/vGKbSuLWayMx/CGQozThcU2ZGLvt8ZJYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":486952},"main":"./lib/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"51ce6b8691cc9bb4b48b7b81c8d6dd0c815ad3ea","scripts":{"test":"node --test test/*.test.js","verify":"node --test test/*.test.js","prepublishOnly":"node --test test/*.test.js"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"11.13.0","description":"测试工程 AI 技能包 — 11 条规范、12 个 Skill、14 个 MCP 工具、契约驱动生成、E2E 三轮策略（批量页面+登录态自动化）、报告聚合与性能基线对比","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wl-skills-test_0.7.0_1786765385759_0.6907318427508935","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@agile-team/wl-skills-test","version":"0.8.0","keywords":["ai","skills","testing","playwright","jmeter","copilot","cursor","windsurf","claude","agents","qa","automation"],"author":{"name":"AGILE TEAM"},"license":"UNLICENSED","_id":"@agile-team/wl-skills-test@0.8.0","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"homepage":"https://github.com/ChenyCHENYU/wl-skills-test#readme","bin":{"wl-skills-test":"bin/wl-skills-test.js"},"dist":{"shasum":"e661cac8afb025e51bd1b94ee0f7984f62daed66","tarball":"https://registry.npmjs.org/@agile-team/wl-skills-test/-/wl-skills-test-0.8.0.tgz","fileCount":77,"integrity":"sha512-XI9rTrFsjFZGChmvLI1TmqgrLsl1W4HyWFLTCIJXwvW24FU8SBubnhgMhY9zcEwps7B9Qeb/dTfGbk5QoQUY7A==","signatures":[{"sig":"MEYCIQDuAEN0/T5PEQ2qNGJ+lQ1/vqCIB1EM8tEZmo2y82bomgIhAJwic252a+ElyO/H+8fFAcOCAF/oVRE9znNd+j569tzV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":535115},"main":"./lib/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"2800a70f492a74341dc076d99cb6d52139f72413","scripts":{"test":"node --test test/*.test.js","verify":"node --test test/*.test.js","prepublishOnly":"node --test test/*.test.js"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"11.13.0","description":"测试工程 AI 技能包 — 11 条规范、12 个 Skill、15 个 MCP 工具、契约驱动生成、深度 E2E 工程（7 层 project+归属清单强校验+路由映射+UI 契约拦截+隔离机制）、报告聚合与性能基线","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wl-skills-test_0.8.0_1786767874369_0.4981669178179329","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@agile-team/wl-skills-test","version":"0.9.0","keywords":["ai","skills","testing","playwright","jmeter","copilot","cursor","windsurf","claude","agents","qa","automation"],"author":{"name":"AGILE TEAM"},"license":"UNLICENSED","_id":"@agile-team/wl-skills-test@0.9.0","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"homepage":"https://github.com/ChenyCHENYU/wl-skills-test#readme","bin":{"wl-skills-test":"bin/wl-skills-test.js"},"dist":{"shasum":"3c0a62806f7cc2d69f181ef5848c1c38a3616209","tarball":"https://registry.npmjs.org/@agile-team/wl-skills-test/-/wl-skills-test-0.9.0.tgz","fileCount":77,"integrity":"sha512-6KUp2pZ8iRsJC1g6NiHn/2PJT7c2DJrHDX0fNTdLi5K4GlxUzK3Kl/wl4KYQtQYqVE9oCaaa7Zq+Mm1SpLuGaw==","signatures":[{"sig":"MEUCID2HQ89a5ISCjThAxoPEiymwPVHgVX3/jNubyIoq0ITmAiEA3r1Qbgc6Zu2kv2tJQ70+EVILWBwI++LYlpHBIILq9SM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":564205},"main":"./lib/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"325b4558bb30e63f2731809b3c701b585fa92b52","scripts":{"test":"node --test test/*.test.js","verify":"node --test test/*.test.js","prepublishOnly":"node --test test/*.test.js"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"11.13.0","description":"测试工程 AI 技能包 — 11 条规范、12 个 Skill、15 个 MCP 工具、深度接口测试（DAG+四层断言+契约漂移）、深度 E2E 工程、报告聚合与性能基线","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wl-skills-test_0.9.0_1786778371461_0.010141367663401013","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@agile-team/wl-skills-test","version":"0.10.0","keywords":["ai","skills","testing","playwright","jmeter","copilot","cursor","windsurf","claude","agents","qa","automation"],"author":{"name":"AGILE TEAM"},"license":"UNLICENSED","_id":"@agile-team/wl-skills-test@0.10.0","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"homepage":"https://github.com/ChenyCHENYU/wl-skills-test#readme","bin":{"wl-skills-test":"bin/wl-skills-test.js"},"dist":{"shasum":"49c1052830b19996208f938335e80d4f45df2554","tarball":"https://registry.npmjs.org/@agile-team/wl-skills-test/-/wl-skills-test-0.10.0.tgz","fileCount":81,"integrity":"sha512-V13B0lJKP4NlfFNvZa0mq2orcG1Q7iNAc+whNc1PtBcGz2Wu5XtX5wGmMhaE2cdMlbvALh70I2DkRCmn1IUHSA==","signatures":[{"sig":"MEQCIFQ9ZGLRB4Cj+8J+LaW+Ru4P/ZqFHvzKhnFD+cUDWvX8AiAJohCBas2xvL7m1FLLDV12PICz9Uv3keet39vYoBGyRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":608199},"main":"./lib/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"65a9195eda5e53517e119b0da307befe09c43d38","scripts":{"test":"node --test test/*.test.js","verify":"node --test test/*.test.js","prepublishOnly":"node --test test/*.test.js"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"11.13.0","description":"测试工程 AI 技能包 — 11 条规范、12 个 Skill、17 个 MCP 工具、深度接口测试、深度 E2E 工程（选择器适配+工位模板+沙箱模拟跑）、字典同步、质量门聚合","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wl-skills-test_0.10.0_1786788680771_0.19914137341959237","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@agile-team/wl-skills-test","version":"0.11.0","keywords":["ai","skills","testing","playwright","jmeter","copilot","cursor","windsurf","claude","agents","qa","automation"],"author":{"name":"AGILE TEAM"},"license":"UNLICENSED","_id":"@agile-team/wl-skills-test@0.11.0","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"homepage":"https://github.com/ChenyCHENYU/wl-skills-test#readme","bin":{"wl-skills-test":"bin/wl-skills-test.js"},"dist":{"shasum":"c0b6ed4562c8a580945b2659d69f0aca2be85819","tarball":"https://registry.npmjs.org/@agile-team/wl-skills-test/-/wl-skills-test-0.11.0.tgz","fileCount":83,"integrity":"sha512-P3gkCKNmuKEwvHy+LYi6ElE00/v3lKpmYCFh2ieOk2k+Q1y9XjxVihVrT8G4lKqmrO2zK+0i4iU018gkq7WtFw==","signatures":[{"sig":"MEYCIQCXKogGgngcSniLcBbq4/ZX9pvCCxGAeMSZNYHnH3P0EwIhANOYQzOB1u+qJANZBfo6xZlat36WMqC6mx1kufWQKmcn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":640611},"main":"./lib/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"c00f345faae22b90581d37489120394c3f122255","scripts":{"test":"node --test test/*.test.js","verify":"node --test test/*.test.js","prepublishOnly":"node --test test/*.test.js"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"11.13.0","description":"测试工程 AI 技能包 — 11 条规范、12 个 Skill、17 个 MCP 工具、深度接口/E2E/性能测试、细粒度用例生成、test-reports 统一报告体系（自动发现+历史趋势）","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/wl-skills-test_0.11.0_1786799275817_0.0067604922404544965","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@agile-team/wl-skills-test","version":"0.25.0","description":"测试工程 AI 技能包 — 11 条规范、12 个 Skill、17 个 MCP 工具、深度接口/E2E/性能测试、细粒度用例生成、test-reports 统一报告体系（自动发现+历史趋势）","type":"module","main":"./lib/index.js","bin":{"wl-skills-test":"bin/wl-skills-test.js"},"scripts":{"test":"node --test test/*.test.js","verify":"node --test test/*.test.js","prepublishOnly":"node --test test/*.test.js"},"keywords":["ai","skills","testing","playwright","jmeter","copilot","cursor","windsurf","claude","agents","qa","automation"],"author":{"name":"AGILE TEAM"},"license":"UNLICENSED","homepage":"https://github.com/ChenyCHENYU/wl-skills-test#readme","publishConfig":{"access":"public"},"engines":{"node":">=20.0.0"},"gitHead":"6c3a01a6e42803e18fb09919e0e38de0c816525b","_id":"@agile-team/wl-skills-test@0.25.0","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-WIcfCjLENjCrwDMz/nvYTUNcewZFI5W9x70ZMZe3XNegMQze/eBD4U1wKEOLeKuzTQUzxmrEsFLwjoc2RCDHrA==","shasum":"787fb9b89cac8200bb1d914afe81d6b00d94b81a","tarball":"https://registry.npmjs.org/@agile-team/wl-skills-test/-/wl-skills-test-0.25.0.tgz","fileCount":110,"unpackedSize":820800,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDK2BIRFOOvYlh/Zlyk47KxZblkqlb6M9MTZmh9WIMzAQIgaPtIZwA5RecUroRf6B4ZhLSmeItySi9RiuG54He970A="}]},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"directories":{},"maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wl-skills-test_0.25.0_1789565715937_0.046221721671648064"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-04T17:02:28.069Z","modified":"2026-09-16T13:35:16.290Z","0.3.2":"2026-08-04T17:02:28.458Z","0.4.0":"2026-08-04T17:16:21.160Z","0.5.0":"2026-08-04T17:36:17.825Z","0.6.0":"2026-08-14T18:06:03.690Z","0.7.0":"2026-08-15T03:43:05.925Z","0.8.0":"2026-08-15T04:24:34.509Z","0.9.0":"2026-08-15T07:19:31.626Z","0.10.0":"2026-08-15T10:11:20.902Z","0.11.0":"2026-08-15T13:07:55.962Z","0.25.0":"2026-09-16T13:35:16.111Z"},"author":{"name":"AGILE TEAM"},"license":"UNLICENSED","homepage":"https://github.com/ChenyCHENYU/wl-skills-test#readme","keywords":["ai","skills","testing","playwright","jmeter","copilot","cursor","windsurf","claude","agents","qa","automation"],"description":"测试工程 AI 技能包 — 11 条规范、12 个 Skill、17 个 MCP 工具、深度接口/E2E/性能测试、细粒度用例生成、test-reports 统一报告体系（自动发现+历史趋势）","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"readme":"# @agile-team/wl-skills-test\n\n<p align=\"center\">\n  <strong>测试工程 AI 技能包</strong><br>\n  11 条测试规范 · 13 个 AI Skill · 19 个 MCP 工具 · 契约驱动生成 · 深度 E2E 工程 · 报告聚合 · 性能基线\n</p>\n\n<p align=\"center\">\n  <img src=\"https://img.shields.io/badge/version-0.25.0-blue.svg\" />\n  <img src=\"https://img.shields.io/badge/node-%3E%3D20-green.svg\" />\n  <img src=\"https://img.shields.io/badge/standards-11-orange.svg\" />\n  <img src=\"https://img.shields.io/badge/skills-13-purple.svg\" />\n  <img src=\"https://img.shields.io/badge/MCP-19-teal.svg\" />\n  <img src=\"https://img.shields.io/badge/audit-T1--T25-red.svg\" />\n  <img src=\"https://img.shields.io/badge/API-%E5%9B%9B%E5%B1%82%E6%96%AD%E8%A8%80-yellow.svg\" />\n  <img src=\"https://img.shields.io/badge/tests-268%20pass-brightgreen.svg\" />\n</p>\n\n---\n\n## 🎯 这是什么\n\n把测试团队沉淀的**流程规范、用例设计方法、自动化脚本生成、性能测试和质量门禁**，注入到 AI 编辑器（Copilot / Cursor / Windsurf / Claude Code / Kiro / Trae / Qoder / 通用 Agents），让 AI 从需求文档 → 测试方案 → 用例 → 自动化脚本 → 质量评估**全流程辅助**。\n\n### 🔄 五包闭环\n\n```\ndesign ──→ kit ──→ ui ──→ bd ──→ test\n产品设计   前端    样式    后端    测试验证\n  │         │               │       ↑\n需求文档  page-spec     contract  消费上游契约\n         api.md                   → 生成用例\n                                  → 自动化脚本\n                                  → 质量评估\n```\n\n> **独立可用**：不依赖其他包也能从需求文档独立工作。联动只是增强（从契约自动生成用例），不是前置条件。\n\n---\n\n## 📦 安装\n\n```bash\n# 全量安装到当前项目（11 规范 + 12 Skill + 模板 + 9 编辑器配置）\nnpx @agile-team/wl-skills-test\n\n# 预览将写入哪些文件\nnpx @agile-team/wl-skills-test --dry-run\n\n# 增量更新\nnpx @agile-team/wl-skills-test update\n\n# 环境体检\nnpx @agile-team/wl-skills-test doctor\n\n# 审计测试代码（T1-T12 确定性规则）\nnpx @agile-team/wl-skills-test audit --target ./tests/\n\n# 自动修复测试代码反模式\nnpx @agile-team/wl-skills-test fix --target ./tests/\n\n# 深度接口测试（DAG 编排 + 四层断言 + 负例 + 契约漂移 + 零污染）\nnpx @agile-team/wl-skills-test run-api --contract ./wl-contract.json --base-url http://localhost:8080\n\n# 执行 Playwright 自动化测试\nnpx @agile-team/wl-skills-test run-playwright --test-dir ./tests/\n\n# 执行 JMeter 性能测试（-Jthreads 运行时生效）\nnpx @agile-team/wl-skills-test run-jmeter --jmx ./perf-test.jmx --threads 200\n\n# 性能基线对比（劣化即非零退出，CI 卡门）\nnpx @agile-team/wl-skills-test perf-compare --current ./jmeter-results/result.jtl --baseline ./baseline/result.jtl\n\n# 生成深度 E2E 工程脚手架（7 层 project + 归属清单强校验 + 路由映射 + UI 契约拦截 + 隔离机制）\nnpx @agile-team/wl-skills-test run-gen --contract ./page-spec.json --type e2e --output ./e2e\nnpx @agile-team/wl-skills-test run-gen --contract ./src/views --type e2e --routes ./routes.sit.json  # 目录批量 + 显式路由映射\n\n# E2E 工程强校验（归属闭环/安全标记/隔离声明，CI 卡门）\nnpx @agile-team/wl-skills-test e2e-check --target ./e2e\n\n# 聚合各执行结果生成测试报告（对齐规范 10，含上线判定）\nnpx @agile-team/wl-skills-test report --api smoke.json --playwright playwright-result.json --defects defects.json --cases 150\n```\n\n安装后，AI 编辑器自动识别 `.github/skills/` 下的 13 个 Skill 和 `.github/standards/` 下的 11 条规范。\n\n---\n\n## 🧪 13 个 AI Skill\n\n### 功能测试链（9 个）\n\n| 步骤 | Skill | 触发词 | 产出 |\n|:----:|-------|--------|------|\n| ① | **test-plan-generator** | 生成测试方案 | 测试方案.md（7 章标准化） |\n| ② | **test-scenario-analyzer** | 分析业务场景 | 业务场景清单（10 类全覆盖） |\n| ③ | **test-case-generator** | 生成测试用例 | 功能+流程用例（P0~P3） |\n| ④ | **test-case-reviewer** | 评审测试用例 | 5 维评审报告 |\n| ⑤ | **smoke-test-selector** | 筛选冒烟用例 | 冒烟套件（≤8/15/25） |\n| ⑥ | **smoke-test-executor** | 执行冒烟测试 | 冒烟执行报告 |\n| ⑦ | **test-script-generator** | Playwright 脚本 | .spec.js + auth.json |\n| ⑧ | **universal-test-rules** | 自动化规则 | 通用测试规范基座 |\n| ⑨ | **test-quality-analyzer** | 质量评估 / DI 分析 | 质量报告（DI 指数 + 上线判定） |\n\n### 性能测试链（3 个）\n\n| 步骤 | Skill | 触发词 | 产出 |\n|:----:|-------|--------|------|\n| ⑩ | **perf-plan-generator** | 性能测试方案 | 性能方案（三场景+SLA） |\n| ⑪ | **perf-script-generator** | JMeter 脚本 | .jmx + CSV + .bat |\n| ⑫ | **perf-report-analyzer** | 分析性能报告 | 性能报告（瓶颈诊断） |\n\n```\n需求文档 ──→ ①方案 ──→ ②场景 ──→ ③用例 ──→ ④评审\n                                              ↓\n                                    ⑤冒烟套件 ──→ ⑥冒烟执行\n                                              ↓\n                                    ⑦Playwright ──→ ⑧规则基座\n                                              ↓\n                                    ⑨DI 质量评估 ──→ 上线判定\n\nAPI 文档 ──→ ⑩性能方案 ──→ ⑪JMeter 脚本 ──→ ⑫性能报告\n```\n\n---\n\n## 📋 11 条测试规范\n\n| # | 规范 | 核心约束 |\n|---|------|---------|\n| 01 | 测试流程 | 需求评审→测试点→工作量→用例→评审→冒烟→执行→封版→上线 |\n| 02 | 用例设计 | P0~P3 四级，1天50条，每功能点≥10条 |\n| 03 | 设计方法 | 场景法/边界值/等价类/错误推测/状态迁移 |\n| 04 | 测试策略 | 功能+系统+探索性，5 维度（功能/界面/权限/数据/兼容） |\n| 05 | 冒烟测试 | 转测门槛 95%，套件 ≤8/15/25 |\n| 06 | 自动化 | Playwright + Element Plus，两阶段（数据闭环+全按钮覆盖） |\n| 07 | 性能测试 | JMeter 5.6.3，三场景，P99<500ms，11 条 XML 强制规则 |\n| 08 | 质量门禁 | DI=致命×10+严重×3+一般×1+轻微×0.1，密度<0.3 |\n| 09 | 缺陷管理 | 录入规范、分级、回归规则 |\n| 10 | 测试报告 | 报告模板、上线验证 ≤1.5h |\n| 11 | 数据安全 | 脱敏、不碰生产、AT_ 前缀 |\n\n---\n\n## 🔌 契约驱动（run-gen）\n\n从 kit/bd 的机器契约**自动生成**测试资产：\n\n```bash\n# 生成测试用例（支持三种契约格式）\nnpx @agile-team/wl-skills-test run-gen --contract ./wl-contract.json\n\n# 生成 Playwright 脚本\nnpx @agile-team/wl-skills-test run-gen --contract ./page-spec.json --type playwright\n\n# 生成 JMeter jmx（200 并发）\nnpx @agile-team/wl-skills-test run-gen --contract ./wl-contract.json --type jmeter --threads 200\n```\n\n| 契约来源 | 格式 | 自动生成 |\n|---------|------|---------|\n| kit | `wl-api-contract.json` | CRUD 用例矩阵 + 权限 + 必填校验 |\n| bd | `wl-contract.json` | 5 标准操作 + customOperations + 必填 |\n| kit | `page-spec.json` | 页面 CRUD 推断 + Playwright 选择器 |\n\n> **生成即合规**：所有生成物均通过自家 T1-T20 审计（含 CSV 参数化、SLA 断言、`__P` 属性化线程参数），由 `test/self-consistency.test.js` 回归保证。\n\n---\n\n## 📊 test-reports 统一报告体系（v0.11.0）\n\n安装包的项目里，**每个维度的测试都自动产出报告到 `test-reports/`**，并支持陆续迭代的趋势追踪：\n\n| 命令 | 产出 |\n|------|------|\n| `run-api` | `api-报告.md`（四层断言/负例/权限/漂移/零污染章节）+ `api-result.json` |\n| `run-playwright` | `e2e-报告.md`（解析 Playwright 原生 results.json，含失败明细）+ `playwright-result.json` |\n| `run-jmeter` | `perf-报告.md`（P50/95/99 SLA 判定）+ `perf-result.json` |\n| `audit` | `audit-报告.md`（T1-T25 规则分布+文件明细+修复入口）+ `audit-result.json` |\n| `perf-compare` | `perf-compare-报告.md`（基线劣化判定） |\n| `report`（不传参数） | **自动发现**上述结果 → `测试报告.md`（规范 10 + 上线判定）+ `index.md`（索引） |\n| `report --trend` | 追加**最近 5 次汇总趋势表**（history.jsonl 数据源，跨迭代追踪质量） |\n\n```\ntest-reports/\n├── api-报告.md / api-result.json        # 接口维度\n├── e2e-报告.md / playwright-result.json  # UI 维度\n├── perf-报告.md / perf-result.json       # 性能维度\n├── audit-报告.md / audit-result.json     # 审计维度\n├── 测试报告.md / index.md                # 汇总 + 索引\n└── history.jsonl                          # 运行历史（趋势数据源）\n```\n\n## 🧩 细粒度用例生成（v0.11.0）\n\n```bash\nnpx @agile-team/wl-skills-test run-gen --contract ./wl-contract.json --granularity field\nnpx @agile-team/wl-skills-test run-gen --contract ./wl-contract.json --granularity field --json cases.json   # v0.24.0 结构化输出\n```\n\n> **v0.24.0 JSON 化统一**：`run-gen / diff / perf-compare` 均支持 `--json <path>` 结构化产物；\n> `report --plan-input` 聚合\"写测试计划的一次性数据\"（本次判定/质量分/维度覆盖/审计/性能/趋势）到\n> `test-reports/plan-input.json`——计划由 AI 写，数据由工具给全。MCP 四个大结果工具全部默认紧凑输出。\n\n基线矩阵（CRUD/权限/必填）之上，**颗粒度到字段**：必填置空、超长、数值 min/max 边界、非数值类型、\n非法枚举、XSS/SQL 注入特殊字符、前后空格；操作级：重复提交、不存在主键、重复删除、无权限（每个写操作）、\n分页边界、组合查询收敛。每条含优先级/前置/步骤/预期，且标注 **dimension ↔ run-api DAG 执行映射**\n（大部分负例/权限/重复/分页用例由 run-api 自动执行闭环）。\n\n---\n\n## 🔬 沙箱模拟跑（v0.10.0，零污染验证）\n\n```bash\nnode node_modules/@agile-team/wl-skills-test/scripts/simulate-e2e.mjs\n```\n\n**只读消费真实 page-spec + 路由映射，生成与执行全在临时沙箱 + 进程内 mock 前后端**（结束即删，源项目零写入）：\n真实 32 页 steel 形态 → `--ui steel` 生成 → 语法/e2e-check 校验 → 沙箱安装 playwright → mock 前端\n（steel-list-panel HTML）+ mock API（jh4j 信封）→ 真实浏览器逐页执行 ROUND1 五硬门（复用生成的\nmonitor/selectors/pages 资产）→ 32/32 全绿。环境不具备（无 Chrome/源项目）时优雅跳过，CI 安全。\n\n**UI 适配层**：`run-gen --type e2e --ui element-plus|steel|ant-design`，选择器集中 `support/selectors.js`\n（换组件库只改一个文件）；`E2E_CHANNEL=chrome` 用系统浏览器免下载。\n\n**工位页模板**：page-spec 声明 `features.workstation: true` 生成 `workstation.spec.js`——查看态禁用断言、\n进阶查询回填（拦截模拟计划行）、save/submit 契约（拦截 + 断言炉号），全部 page.route 零污染。\n**子表页签**：`subTables` 自动生成逐页签渲染用例。\n\n---\n\n## 🧪 深度接口测试（v0.9.0）\n\n```bash\nnpx @agile-team/wl-skills-test run-api --contract ./wl-contract.json \\\n  --base-url http://sit.example.com --token \"$TOKEN\" \\\n  --token-no-perm \"$NO_PERM_TOKEN\" --dict-file ./dict.json\n```\n\n**执行链路（DAG，前置失败级联 skip 并标注原因）**：\n\n```\n列表冒烟 → 新增 → 写后读回比对 → 更新 → 详情 → 负例(必填缺失/类型错误/超长越界)\n→ 重复提交(拒绝或幂等) → 权限拒绝(读探针/写探针) → 分页边界 → 清理 → 零污染复查\n```\n\n**每步四层断言**：\n\n| 层 | 断言内容 | 防什么 |\n|----|---------|--------|\n| L1 | 成功信封（HTTP + 契约 successCode） | 接口挂了/业务失败 |\n| L2 | 结构（records/total/契约字段存在且类型匹配） | 响应结构漂移 |\n| L3 | 数据正确性（写后读回逐字段比对、清理后无残留） | 假成功（成功码但没写对/没写进去） |\n| L4 | 负例与安全（必填/类型/超长必须被拒、重复提交、权限拒绝） | 后端校验缺口、越权 |\n\n**契约漂移检测**：响应实际字段 vs 契约 models 全量 diff（契约声明但缺失 / 响应未声明 / 类型不符）——后端改了字段而契约没跟上，第一时间报出。\n\n**精准性保障**：网络错误/超时记 error 绝不判为\"被拒绝\"（负例不会因连不上而假通过）；负例用独立业务键（与正例的重复校验互不掩盖）；意外成功的负例自动登记清理（零污染兜底）；每步报文快照留证可回溯。\n\n**参数**：`--token-no-perm`（无权限账号，启用权限验证）· `--dict-file`（枚举字段真实合法值）· `--lenient-coercion`（后端隐式转换记 warn）· `--perm-write-probe`（写操作权限探针）· `--json`（供 quality-gate/report 消费）\n\n---\n\n## 🎭 深度 E2E 工程（v0.6 引入，v0.7 落地，v0.8 做深——全面对齐并超越 wl-ui-produce 实战）\n\n```bash\n# 单页面（page-spec / 契约）\nnpx @agile-team/wl-skills-test run-gen --contract ./page-spec.json --type e2e --output ./e2e\n\n# 批量：目录递归扫描 + 显式路由映射（真实项目 32 页面 + 真实路由验证通过）\nnpx @agile-team/wl-skills-test run-gen --contract ./src/views --type e2e --routes ./e2e/fixtures/routes.sit.json\n```\n\n生成 17 个文件，**7 层 project 编排**（A/B/C 风险分层 + 工程强校验）：\n\n```\ne2e/\n├── playwright.config.js          # 加载即执行 assertE2ESpecCatalog 强校验（防假闭环）\n├── package.json                  # npm run e2e / e2e:auth / e2e:detail / e2e:ui-contract / e2e:round2 / e2e:cleanup\n├── fixtures/\n│   ├── pages.js                  # 页面清单（routeSource 标记 spec/map/derived，derived 需人工核对）\n│   └── suites.js                 # 用例归属清单 + 加载期强校验\n├── support/                      # environment（门禁+登录配置）/ network-monitor（五硬门+证据附件）\n│                                 # / run-ledger / api-probe / cleanup\n└── tests/\n    ├── auth-setup.spec.js        # 登录双模式：默认人工（验证码/SSO/MFA），配账号自动填\n    ├── round1-readonly.spec.js   # A组 冒烟（表格/空态 + 业务响应监控 + 写请求检测 + 证据附件）\n    ├── round1-detail.spec.js     # A组 深度（列头渲染/搜索收敛/重置恢复/字典翻译，SIT无数据优雅skip）\n    ├── ui-contract.spec.js       # 拦截模拟（page.route 断言端点+payload 契约，不落库，任何环境可跑）\n    ├── round2-write.spec.js      # B组 受控写入（UI级含test-fill钩子/API级，账本+真实落库校验+零污染）\n    ├── quarantine.spec.js        # 高风险隔离（test.skip B组 + 隔离准则声明，解除需移出清单）\n    └── cleanup.spec.js           # 按账本恢复清理\n```\n\n**超越 wl-ui-produce 之处**：生成器路线（对方 32 页全手写 ~2 万行）+ 工程强校验模板化 + `e2e-check` 可对任意 e2e 工程独立执行 + 审计规则 T21-T25 固化同样约束 + 测试填充器标准（`test-fill-standard.md`，`data-testid=\"wl-test-fill\"`）。\n\n**工程强校验清单**（config 加载即 fail / `e2e-check` CI 卡门）：未归类 spec / 重复归属 / 清单有但文件缺失 / `test.only` / 写入组缺安全标记（requireWriteApproval、new RunLedger、finally、cleanupLedger）/ 截断 Bearer 前缀 / 隔离声明漂移 / UI 契约缺 `page.route`。\n\n**五道硬门（防假通过）**：\n\n| # | 硬门 | 防什么 |\n|---|------|--------|\n| 1 | 必须观察到至少一个业务接口响应 | 防\"只看元素不看接口\"的假通过 |\n| 2 | HTTP≥400 / 业务码≠成功码 / console error / pageerror 即失败 | 防链路级问题漏检 |\n| 3 | 只读套件观察到写请求即失败 | 防冒烟偷偷改数据 |\n| 4 | 跳转登录页 = 失败不是 skip | 防覆盖率虚高 |\n| 5 | 新增必须返回真实主键 | 没主键就无法零污染清理 |\n\n方法论详见安装后的 `.github/skills/exec/test-script-generator/references/e2e-rounds-pattern.md`（含\"测试到什么程度、用例写到什么程度\"的硬标准）。\n\n---\n\n## 🔧 17 个 MCP 工具\n\n| 工具 | 用途 |\n|------|------|\n| `wls_test_standards` | 查询测试规范（按编号或名称） |\n| `wls_test_contract_read` | 读取 kit/bd 契约，提取可测试资源 |\n| `wls_test_case_generate` | 按契约+需求生成测试用例 |\n| `wls_test_smoke_select` | 从全量用例筛选冒烟套件 |\n| `wls_test_env_check` | 校验测试环境连通性 |\n| `wls_test_quality_analyze` | DI 缺陷指数质量评估 + 上线判定 |\n| `wls_test_jmeter_validate` | 校验 JMeter jmx 有效性 |\n| `wls_test_audit` | 审计测试代码（T1-T25 确定性规则） |\n| `wls_test_fix` | 自动修复反模式（默认预览，`confirm:true` 才写盘） |\n| `wls_test_run_api` | 执行 API 接口测试（契约驱动发请求） |\n| `wls_test_run_playwright` | 执行 Playwright 自动化测试 |\n| `wls_test_run_jmeter` | 执行 JMeter 性能测试 |\n| `wls_test_e2e_generate` | 生成深度 E2E 工程脚手架（单页/目录批量/routes 映射） |\n| `wls_test_report_generate` | 聚合执行结果生成测试报告（含上线判定） |\n| `wls_test_e2e_check` | E2E 工程强校验（归属闭环/安全标记/隔离声明） |\n| `wls_test_dict_sync` | 同步系统字典到 dict.json（三形态自动识别） |\n| `wls_test_gate` | 质量门聚合（审计+E2E+冒烟+DI+性能一条命令卡门） |\n\n另将 11 条测试规范以 **MCP resources** 只读资源暴露（`wl-test://standards/*.md`），AI 编辑器按需读取。\n\nMCP server 通过 stdio 运行（零依赖 JSON-RPC）：\n\n```bash\n# 直接启动 MCP server\nnode node_modules/@agile-team/wl-skills-test/mcp/index.js\n\n# 或通过 CLI\nnpx @agile-team/wl-skills-test --mcp\n```\n\n---\n\n## 🎖️ DI 质量门（CI 集成）\n\n```bash\n# CI 中运行质量门（退出码 0=通过 / 1=阻断；参数支持 --x=v 与 --x v 两种风格）\nnode node_modules/@agile-team/wl-skills-test/scripts/quality-gate.js \\\n  --defects defects.json --cases 150 \\\n  --audit-dir ./tests/ \\\n  --smoke-result smoke-result.json\n```\n\n上线判定 4 指标：\n\n| # | 指标 | 阈值 |\n|---|------|------|\n| 1 | DI 密度 | < 0.3 |\n| 2 | 致命缺陷关闭率 | 100% |\n| 3 | 严重缺陷关闭率 | 100% |\n| 4 | 最差模块缺陷收敛 | ≤20% |\n\n---\n\n## 📁 包结构\n\n```\nwl-skills-test/\n├── bin/wl-skills-test.js          # CLI 入口（init/update/doctor/validate/run-gen/audit/fix/run-api/run-playwright/run-jmeter/perf-compare/e2e-check/dict-sync/gate/report/clean/--mcp）\n├── lib/\n│   ├── index.js                   # 命令注册表 + run() 路由（薄层）\n│   ├── cli/                       # CLI 分层（v0.12.0 拆分）\n│   │   ├── args.js                # 参数解析（布尔归一）\n│   │   ├── installer.js           # init/update/clean（占位符版本比对）\n│   │   ├── system.js              # doctor/validate\n│   │   ├── webhook.js             # 质量门/报告结论推送\n│   │   └── commands/              # generation / execution / quality / reports\n│   ├── shared/                    # 共享基础层（单一事实源）\n│   │   ├── utils.js               # readJsonFile(BOM/fail-closed)/writeTextFile/escapeMdCell\n│   │   ├── types.js               # 契约字段类型分类器（生成/执行同口径）\n│   │   └── thresholds.js          # 质量阈值常量（95%/DI 0.3/收敛 ≤20% 等）\n│   ├── report/dimensions.js       # 报告维度注册表（新增维度 = 注册一个对象）\n│   ├── contract-consumer.js       # 契约消费（kit/bd/page-spec 三格式 + 路由推导 + toolbar 操作推断）\n│   ├── test-codegen.js            # 用例生成 + DI（含模块收敛）+ 冒烟 + Markdown\n│   ├── case-fine-gen.js           # 细粒度用例（FG 内容哈希稳定 ID + dimension 映射）\n│   ├── test-data-factory.js       # 测试数据工厂（枚举/约束/类型/字段名语义）\n│   ├── playwright-generator.js    # Playwright 脚本生成\n│   ├── jmeter-generator.js        # JMeter jmx 生成（CSV 参数化 + SLA 断言 + __P 属性化）\n│   ├── e2e-generator.js           # E2E 三轮策略脚手架（批量 + 登录态 + UI/API 双模式 round2 + UI 适配层）\n│   ├── api-executor.js            # API 执行器（逐字段负例 + 重试/并行 + 真实主键替换 + 零污染清理）\n│   ├── executors.js               # Playwright/JMeter 执行器（异步 spawn 防注入 + jtl 流式解析）\n│   ├── test-audit.js              # T1-T25 审计引擎（规则表驱动，T26+ 加一个对象）\n│   ├── perf-compare.js            # 性能基线对比（劣化判定，基线缺失/为零不漏判）\n│   ├── report-generator.js        # 测试报告聚合（维度注册表 + fail-closed + mtime 自动发现）\n│   ├── report-dimensions.js       # 各维度报告渲染 + history.jsonl（容错读取）\n│   ├── gate.js                    # 质量门聚合（含模块收敛，与 quality-gate 同口径）\n│   ├── write-guard.js             # 安全写链（哈希确认 + 字节级备份回滚 + 重复目标拒绝）\n│   ├── plan-hash.js               # 计划哈希（键序/路径/顺序归一化）\n│   └── templates/                 # 输出模板（5 个）\n├── mcp/\n│   ├── index.js                   # stdio MCP server（零依赖 JSON-RPC，parity 启动校验 + required 参数校验）\n│   ├── server.js                  # MCP server 工厂（同校验）\n│   ├── registry.js                # 工具注册表（assertRegistryParity/validateToolInput）\n│   └── tools/handlers.js          # 工具实现（与 CLI 共享 lib/，fix 写入带 root 约束）\n├── scripts/\n│   └── quality-gate.js            # DI 质量门 CI 脚本（复用 calculateDI 单一实现，fail-closed）\n├── files/                         # 安装到用户项目的内容\n│   ├── .github/standards/         # 11 条规范\n│   ├── .github/skills/            # 13 个 Skill（6 组，含 test-onboarding 接入引导）\n│   ├── .mcp.json                  # MCP 配置\n│   └── 9 个编辑器适配文件\n├── .github/workflows/ci.yml       # 包自身 CI（双 OS × Node 20/22 + npm pack 校验 + 自动发布）\n├── docs/                          # 架构设计 + 分析文档\n└── test/                          # 209 个测试（单元 + CLI 集成 + 自一致性 + MCP stdio + 引擎/生成器回归）\n```\n\n---\n\n## 📊 能力总览\n\n| 维度 | 数量 | 说明 |\n|------|:----:|------|\n| 测试规范 | 11 | 对齐在线 QC 流程规范（另以 MCP resources 只读暴露） |\n| AI Skill | 12 | 功能链 9 + 性能链 3 |\n| MCP 工具 | 17 | wls_test_* 前缀，全部实现并有测试（含 stdio round-trip + resources） |\n| 审计规则 | 25 | T1-T25 确定性扫描器（T3/T4 块级精确解析 + T21-T25 E2E 工程约束） |\n| 自动修复 | 6 | F1-F6（v-deep/beforeEach/waitForTimeout/硬编码/afterEach/测试名） |\n| 执行器 | 3 | run-api（HTTP）/ run-playwright / run-jmeter + jtl 解析 |\n| 契约格式 | 3 | wl-api-contract / wl-contract / page-spec（含目录批量） |\n| E2E 脚手架 | 17 文件 | 7 层 project + 归属清单强校验 + 路由映射 + UI 契约拦截 + 隔离机制 + 登录双模式 |\n| 数据工厂 | 1 模块 | 枚举/约束/类型/字段名语义驱动的合法测试值 |\n| 性能基线 | 1 命令 | perf-compare 劣化判定（CI 非零退出） |\n| 报告聚合 | 1 命令 | report 对齐规范 10 模板 + 上线判定 |\n| 输出模板 | 5 | 测试方案/自测清单/Playwright/质量报告/JMeter |\n| 单元+集成测试 | 268 | 全部通过（含 mock 后端集成/沙箱模拟跑/CLI/MCP stdio/e2e-check/报告体系/引擎与生成器回归） |\n| 编辑器适配 | 9 | Copilot/Cursor/Windsurf/Claude/Kiro/Trae/Cline/AGENTS/Qoder |\n\n---\n\n## 📐 工程能力闭环矩阵\n\n> 对标 kit（R1-R16 审计 + safe-fix + validate 卡门）、bd（B1-B29 审计 + safe-fix + J1-J8 质量门）、ui（R001-R039 扫描 + fix + check 卡门）三包的成熟模式。\n\n### 测试全生命周期能力覆盖\n\n| 阶段 | 能力 | 状态 | 覆盖程度 | 说明 |\n|:----:|------|:----:|:--------:|------|\n| **规划** | 测试方案生成 | ✅ | 完整 | test-plan-generator + 7 章模板 |\n| | 业务场景分析 | ✅ | 完整 | test-scenario-analyzer，10 类场景 |\n| **设计** | 测试用例生成 | ✅ | 完整 | 契约驱动矩阵 + P0~P3 分级 + Skill |\n| | 用例评审 | ⚠️ | 部分 | test-case-reviewer Skill（AI 驱动），无确定性规则引擎 |\n| | 冒烟套件筛选 | ✅ | 完整 | 定量算法（≤8/15/25）+ Skill |\n| **执行** | 冒烟执行 | ✅ | 完整 | smoke-test-executor Skill + run-api 实际发 HTTP 请求（真实主键 + 零污染清理） |\n| | E2E 工程脚手架 | ✅ | 完整 | run-gen --type e2e 三轮策略（只读冒烟/受控写入/恢复清理） |\n| | Playwright 脚本生成 | ✅ | 完整 | 从 page-spec/契约生成选择器+数据闭环 |\n| | JMeter 脚本生成 | ✅ | 完整 | 从契约 operations 生成，CSV 参数化 + SLA 断言 + __P 属性化 |\n| | API 接口测试执行 | ✅ | 完整 | run-api 深度测试：DAG 编排 + 四层断言（成功码/结构/写后读回/负例安全）+ 契约漂移 + 零污染 |\n| | Playwright 执行 | ✅ | 完整 | run-playwright 调用 `playwright test` + 解析结果 |\n| | JMeter 执行 | ✅ | 完整 | run-jmeter 调用 `jmeter -n -t` + 解析 jtl（P50/P95/P99/错误率） |\n| **审计** | 测试代码规范审计 | ✅ | 完整 | T1-T20 确定性扫描器（Playwright/JMeter/用例，跳过 node_modules，容错单文件） |\n| | 测试脚本质量检查 | ✅ | 完整 | T6-T18 覆盖 JMeter 全 11 条 XML 强制规则 |\n| | 用例覆盖率校验 | ✅ | 完整 | T19（数量 < 10 条/功能点）+ T20（异常场景缺失） |\n| **修复** | 测试代码自动修复 | ✅ | 完整 | F1-F6（v-deep/beforeEach/waitForTimeout/硬编码URL/afterEach/测试名） |\n| | 脚本反模式修复 | ✅ | 完整 | T2 硬编码检测 + T12 硬等待替换 + F4-F6 |\n| **质量门** | DI 缺陷指数卡门 | ✅ | 完整 | quality-gate.js 4 指标全部实现 + CI 集成 |\n| | 冒烟通过率卡门 | ✅ | 完整 | quality-gate --smoke-result 支持 |\n| | 测试覆盖率卡门 | ✅ | 完整 | audit T19/T20 + quality-gate --audit-dir |\n| | 测试代码审计卡门 | ✅ | 完整 | quality-gate --audit-dir CI 阻断 |\n| **报告** | 质量报告生成 | ✅ | 完整 | DI 报告 + 质量报告模板 |\n| | 测试报告生成 | ✅ | 完整 | run-api 自动产出 md+json 报告（json 供质量门消费） |\n| **工程** | 自检/体检 | ✅ | 完整 | doctor 命令 |\n| | 文件校验 | ✅ | 完整 | validate 命令 |\n| | 安全写链 | ✅ | 完整 | write-guard + hash + 回滚（库级能力，供程序化写入调用） |\n| | 契约消费 | ✅ | 完整 | 3 格式自动检测 |\n| | 版本占位符 | ✅ | 完整 | init 动态替换 |\n\n### 与其他 wl-skills 包能力对标\n\n| 能力维度 | kit (前端) | bd (后端) | ui (样式) | **test (测试)** | 差距 |\n|---------|:----------:|:--------:|:--------:|:--------------:|:----:|\n| 规范审计引擎 | R1-R16 (AST) | B1-B29 | R001-R039 (39条) | **T1-T20** | ✅ 已补齐 |\n| 自动修复 | safe-fix (F1-F5) | code-fix-be (B3/B5) | fix (12条) | **F1-F6** | ✅ 已补齐 |\n| 质量门对象 | 源码本身 | 源码本身 | 源码本身 | **外部 DI + 内部审计** | ✅ 已增强 |\n| MCP 工具数 | 23 | 16 | 10 | **17** | 🟡 可继续扩展 |\n| 确定性 vs AI 驱动 | 确定性 | 确定性 | 确定性 | **确定性+AI** | ✅ 已补齐 |\n| 执行能力 | ❌ | ❌ | ❌ | **API/UI/性能执行 ✅** | ✅ 领先 |\n\n### 核心差距与优先级\n\n| # | 缺失能力 | 影响程度 | 优先级 | 说明 |\n|---|---------|:--------:|:------:|------|\n| ~~1~~ | ~~测试代码审计引擎~~ | ~~🔴 致命~~ | ~~P0~~ | ✅ v0.4.0 T1-T12 |\n| ~~2~~ | ~~测试代码自动修复~~ | ~~🔴 致命~~ | ~~P0~~ | ✅ v0.4.0 F1-F3 |\n| ~~3~~ | ~~API 接口测试执行~~ | ~~🟡 高~~ | ~~P1~~ | ✅ v0.4.0 run-api |\n| ~~4~~ | ~~质量门第 4 指标~~ | ~~🟢 中~~ | ~~P2~~ | ✅ v0.5.0 模块收敛 ≤20% |\n| ~~5~~ | ~~Playwright 执行~~ | ~~🟢 中~~ | ~~P2~~ | ✅ v0.5.0 run-playwright |\n| ~~6~~ | ~~JMeter 执行~~ | ~~🟢 中~~ | ~~P2~~ | ✅ v0.5.0 run-jmeter |\n| ~~7~~ | ~~用例覆盖率校验~~ | ~~🟢 中~~ | ~~P2~~ | ✅ v0.5.0 T19/T20 |\n| ~~8~~ | ~~JMeter 全规则校验~~ | ~~🟢 中~~ | ~~P2~~ | ✅ v0.5.0 T13-T18 |\n| ~~9~~ | ~~自动修复 F4-F6~~ | ~~🟢 中~~ | ~~P2~~ | ✅ v0.5.0 硬编码/afterEach/测试名 |\n| ~~10~~ | ~~审计接入 CI 卡门~~ | ~~🟡 高~~ | ~~P1~~ | ✅ v0.5.0 quality-gate --audit-dir |\n\n> **全部缺口已清零**。v0.5.0 实现了完整的工程能力闭环：规范审计（T1-T20）→ 自动修复（F1-F6）→ 执行（API/Playwright/JMeter）→ 质量门（4 指标 + 审计卡门）→ 报告。\n\n---\n\n## 🛠️ 技术栈\n\n| 类别 | 基线 |\n|------|------|\n| 前端自动化 | Playwright + TypeScript |\n| UI 框架 | Element Plus + Vue 3（脚本生成目标） |\n| 性能测试 | JMeter 5.6.3 + ServerAgent |\n| 后端测试目标 | Java 8 / Spring Boot 2 / jh4j-cloud 3 |\n| Node.js | >= 20 |\n| 依赖 | 零运行时依赖（纯 Node 内置模块） |\n\n---\n\n## 📖 文档\n\n- [架构设计](./docs/architecture.md) — 包结构、五包协作、技能流水线\n- [分析文档](./docs/analysis.md) — testing-skills-0723 迁移决策\n- [CHANGELOG](./CHANGELOG.md) — 版本变更记录\n\n---\n\n## 📝 版本历程\n\n| 版本 | 核心 |\n|------|------|\n| v0.1.0 | 工程骨架 + 11 规范 + 12 技能迁移 |\n| v0.2.0 | 契约消费 + MCP 骨架 + 质量门 CI |\n| v0.2.1 | ESM 修复（全命令可用）+ 回滚实现 |\n| v0.3.0 | 自动化生成（Playwright+JMeter）+ 编辑器适配 |\n| v0.3.1 | P0/P1 审计修复（MCP stdio + bd/page-spec 矩阵 + route-evals） |\n| v0.3.2 | arg parser 强化 + 版本占位符 + npm 发布 |\n| v0.4.0 | 审计引擎 T1-T12 + 自动修复 F1-F3 + API 执行器 |\n| v0.5.0 | 全部缺口清零：T1-T20 + F1-F6 + Playwright/JMeter 执行 + 质量门 4 指标 |\n| v0.6.0 | 精准健壮修复（6 P0 + 全量 P1）+ E2E 三轮策略固化 + 测试 90 个 |\n| v0.7.0 | 落地增强：批量 E2E（32 页面实测）+ 登录态自动化 + T3/T4 块级精确化 + 数据工厂 + 报告聚合 + 性能基线 + MCP resources + CI |\n| v0.8.0 | 做深：7 层 project 编排 + 归属清单强校验（e2e-check）+ 路由映射 + 逐页深用例 + UI 契约拦截 + 隔离机制 + 证据附件 + 测试填充标准 + T21-T25 |\n| v0.9.0 | 接口测试做扎实：DAG 编排 + 四层断言 + 负例执行 + 契约漂移检测 + 权限双账号 + 网络错误防假通过 |\n| v0.10.0 | 真实落地闭环：选择器适配层 + 沙箱模拟跑（零污染验证）+ 工位模板 + 子表页签 + 字典同步 + 质量门聚合 + webhook |\n| v0.11.0 | 报告体系闭环：test-reports/ 统一产出 + 自动发现 + 历史趋势 + 索引；细粒度用例生成（字段级边界/非法值/安全，与 run-api DAG 执行映射） |\n| v0.11.1 | 精准性止血：report fail-closed / 权限探针死代码 / 主键精确匹配 / e2e-check 假通过 / MCP stdio 污染 / `--flag=true` 失效 + 退出码统一 + 门禁布尔化 |\n| v0.12.0 | 架构地基：lib/shared 共享层（阈值/类型分类器/工具）+ CLI 分层拆分（lib/cli/）+ 报告维度注册表 + MCP parity/required 校验 |\n| v0.13.0 | 引擎层：jtl 流式解析（直方图分位数）+ run-api 幂等读重试 + 负例/权限并行 + 执行器异步化防注入 + 审计规则表驱动（T13/T14/T18 精准化） |\n| v0.14.0 | 生成器精准化：FG 内容哈希稳定 ID + 基线↔细粒度去重 + 逐字段负例（上限 8）+ dimensionCoverage 追溯 + UI 适配层补漏（校验/自定义注入/泄漏修复）+ 路由归一 |\n| **v0.15.0** | **收口：write-guard 字节级回滚并接线 CLI/MCP 写路径（fix 带 root 约束）+ plan-hash 归一化 + 文档口径与代码一致（工具数/结构/测试数单一事实源）** |\n\n---\n\nCopyright © 2026 AGILE TEAM · All Rights Reserved\n","readmeFilename":"README.md"}