gl-life-claude-zen 1.3.2 → 1.3.4
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/README.md +57 -25
- package/bin/create-gl-life-claude.js +4 -5
- package/dist/hooks/auto-format.js +1 -1
- package/dist/hooks/check-pending-reviews.js +2 -0
- package/dist/hooks/complete-task.js +1 -1
- package/dist/hooks/detect-pending-reviews.js +2 -0
- package/dist/hooks/enforce-hard-requirements.js +2 -0
- package/dist/hooks/enforce-migration-workflow.js +1 -1
- package/dist/hooks/enforce-structured-development.js +1 -1
- package/dist/hooks/enforce-test-pyramid.js +1 -1
- package/dist/hooks/init-task-tracker.js +1 -1
- package/dist/hooks/performance-cache.js +2 -0
- package/dist/hooks/prevent-read-bypass.js +2 -0
- package/dist/hooks/start-task.js +1 -1
- package/dist/hooks/task-status.js +1 -1
- package/dist/hooks/validate-component-contract.js +2 -0
- package/dist/hooks/validate-database-changes.js +1 -1
- package/dist/hooks/validate-e2e-coverage.js +1 -1
- package/dist/hooks/validate-git-workflow.js +1 -1
- package/dist/hooks/validate-integration-site.js +1 -1
- package/dist/hooks/validate-migration-impact.js +1 -1
- package/dist/hooks/validate-task-completion.js +1 -1
- package/dist/hooks/validate-test-quality.js +1 -1
- package/dist/hooks/validate-test-results.js +1 -1
- package/dist/hooks/validate-ui-integration.js +1 -1
- package/dist/hooks/validate-ui-runtime.js +2 -0
- package/dist/hooks/validate-ui-syntax.js +2 -0
- package/dist/hooks/validate-ui-visual-native.js +2 -0
- package/dist/hooks/validate-ui-visual.js +2 -0
- package/dist/hooks/validate-visual-regression.js +2 -0
- package/dist/scripts/help.js +1 -1
- package/dist/scripts/plan-amend.js +1 -1
- package/dist/scripts/plan-create.js +1 -1
- package/dist/scripts/plan-generate.js +2 -0
- package/dist/scripts/plan-help.js +1 -1
- package/dist/scripts/plan-init.js +1 -1
- package/dist/scripts/plan-manager.js +1 -1
- package/dist/scripts/pre-publish-checklist.js +2 -0
- package/dist/scripts/production-test.js +2 -0
- package/dist/scripts/profile-hooks.js +2 -0
- package/dist/scripts/setup-git-hooks.js +1 -1
- package/dist/scripts/task-done.js +1 -1
- package/dist/scripts/task-merge.js +1 -1
- package/dist/scripts/task-next.js +1 -1
- package/dist/scripts/task-start.js +1 -1
- package/dist/scripts/task-status.js +1 -1
- package/dist/scripts/verify-hooks.js +2 -0
- package/package.json +1 -1
- package/templates/.claude/settings.json +55 -1
- package/templates/package.json +1 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var
|
|
2
|
+
function _0x15a3(){var _0x2d693b=['29585YoZmgQ','When\x20done,\x20run:\x20npm\x20run\x20task:done\x20','search','\x0aYou\x20can\x20now\x20work\x20on\x20this\x20task.','stdio','inherit','Hook\x20not\x20found:\x20','error','7PxWyrx','apply','ixmtU','1848HGEsHS','log','node\x20\x22','\x0a❌\x20Failed\x20to\x20start\x20task\x20','pOdfB','.\x20Checked:\x0a\x20\x20-\x20','\x0a✅\x20Task\x20','argv','4368464XBQkHm','(((.+)+)+)+$','existsSync','691209iKpFTO','748stOWKi','hooks','exit','\x20\x20\x20Or:\x20npm\x20run\x20task:start\x20TASK-001','DBilW','🚀\x20Starting\x20task:\x20','\x0aUsage:\x20node\x20scripts/task-start.js\x20TASK-001','start-task.js','ytJcW','\x0a\x20\x20-\x20','toString','589940UzUuJi','86916bqhhrT','4696UYZdpd','child_process','join','102uaoAQF','366580CduxoS','NpMME','Dynamic\x20require\x20of\x20\x22','70vheDIM','❌\x20Error:\x20Task\x20ID\x20is\x20required'];_0x15a3=function(){return _0x2d693b;};return _0x15a3();}var _0x1ee2c0=_0xb521;(function(_0xc7c193,_0x303a34){var _0x3458f5=_0xb521,_0x30b3c3=_0xc7c193();while(!![]){try{var _0x26ce2e=-parseInt(_0x3458f5(0x190))/0x1+-parseInt(_0x3458f5(0x196))/0x2+parseInt(_0x3458f5(0x1a6))/0x3*(parseInt(_0x3458f5(0x192))/0x4)+-parseInt(_0x3458f5(0x19b))/0x5*(parseInt(_0x3458f5(0x195))/0x6)+-parseInt(_0x3458f5(0x1a3))/0x7*(-parseInt(_0x3458f5(0x1ae))/0x8)+-parseInt(_0x3458f5(0x1b1))/0x9*(-parseInt(_0x3458f5(0x199))/0xa)+parseInt(_0x3458f5(0x1b2))/0xb*(-parseInt(_0x3458f5(0x191))/0xc);if(_0x26ce2e===_0x303a34)break;else _0x30b3c3['push'](_0x30b3c3['shift']());}catch(_0xd322d4){_0x30b3c3['push'](_0x30b3c3['shift']());}}}(_0x15a3,0x6b8ba));var _0x4baac8=(function(){var _0x5c167d=!![];return function(_0x1b31fd,_0x2ed812){var _0x3a8edd=_0x5c167d?function(){if(_0x2ed812){var _0x20109e=_0x2ed812['apply'](_0x1b31fd,arguments);return _0x2ed812=null,_0x20109e;}}:function(){};return _0x5c167d=![],_0x3a8edd;};}()),_0x5a21ce=_0x4baac8(this,function(){var _0x1f368b=_0xb521,_0x368c09={};_0x368c09['RBuMs']=_0x1f368b(0x1af);var _0xae8f79=_0x368c09;return _0x5a21ce['toString']()['search'](_0xae8f79['RBuMs'])[_0x1f368b(0x18f)]()['constructor'](_0x5a21ce)[_0x1f368b(0x19d)](_0xae8f79['RBuMs']);});_0x5a21ce();function _0xb521(_0x3cd213,_0x17fa98){_0x3cd213=_0x3cd213-0x186;var _0x5c55a0=_0x15a3();var _0x5a21ce=_0x5c55a0[_0x3cd213];return _0x5a21ce;}var e=(_0x5b65b3=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x5b65b3,{'get':(_0x590881,_0x4c9bbd)=>(typeof require<'u'?require:_0x590881)[_0x4c9bbd]}):_0x5b65b3)(function(_0x55b801){var _0x11fcc5=_0xb521,_0x53b5b0={'sUcyL':function(_0x5506cf,_0x1e1217){return _0x5506cf<_0x1e1217;},'ytJcW':function(_0x5a59c9,_0x4d8e99){return _0x5a59c9(_0x4d8e99);},'pOdfB':function(_0x3d0a5b,_0x26c2b3){return _0x3d0a5b+_0x26c2b3;},'NpMME':function(_0x26ba90,_0x51e725){return _0x26ba90+_0x51e725;},'RLCCd':_0x11fcc5(0x198)};if(_0x53b5b0['sUcyL'](typeof require,'u'))return require[_0x11fcc5(0x1a4)](this,arguments);throw _0x53b5b0[_0x11fcc5(0x18d)](Error,_0x53b5b0[_0x11fcc5(0x1aa)](_0x53b5b0[_0x11fcc5(0x197)](_0x53b5b0['RLCCd'],_0x55b801),'\x22\x20is\x20not\x20supported'));}),{execSync:a}=e(_0x1ee2c0(0x193)),t=e('path'),c=e('fs'),n=process[_0x1ee2c0(0x1ad)][0x2];n||(console[_0x1ee2c0(0x1a2)](_0x1ee2c0(0x19a)),console[_0x1ee2c0(0x1a2)](_0x1ee2c0(0x18b)),console[_0x1ee2c0(0x1a2)](_0x1ee2c0(0x188)),process[_0x1ee2c0(0x187)](0x1));var i=_0x26dce6=>{var _0x2af303=_0x1ee2c0,_0x13623a={};_0x13623a['ixmtU']='hooks',_0x13623a[_0x2af303(0x189)]='.claude';var _0x184405=_0x13623a;let _0x12ddfa=t['join'](__dirname,'..',_0x184405[_0x2af303(0x1a5)],_0x26dce6);if(c[_0x2af303(0x1b0)](_0x12ddfa))return _0x12ddfa;let _0x541db4=t[_0x2af303(0x194)](__dirname,'..',_0x184405[_0x2af303(0x189)],_0x2af303(0x186),_0x26dce6);if(c[_0x2af303(0x1b0)](_0x541db4))return _0x541db4;throw new Error(_0x2af303(0x1a1)+_0x26dce6+_0x2af303(0x1ab)+_0x12ddfa+_0x2af303(0x18e)+_0x541db4);},d=i(_0x1ee2c0(0x18c));console[_0x1ee2c0(0x1a7)](_0x1ee2c0(0x18a)+n+'\x0a');try{var _0xd1c05f={};_0xd1c05f[_0x1ee2c0(0x19f)]=_0x1ee2c0(0x1a0),(a(_0x1ee2c0(0x1a8)+d+'\x22\x20'+n,_0xd1c05f),console[_0x1ee2c0(0x1a7)](_0x1ee2c0(0x1ac)+n+'\x20is\x20now\x20active!'),console['log'](_0x1ee2c0(0x19e)),console[_0x1ee2c0(0x1a7)](_0x1ee2c0(0x19c)+n));}catch{console[_0x1ee2c0(0x1a2)](_0x1ee2c0(0x1a9)+n),process['exit'](0x1);}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var
|
|
2
|
+
var _0x4e126f=_0x5b5a;(function(_0x3eb733,_0x24531a){var _0x29efc6=_0x5b5a,_0x5baf4e=_0x3eb733();while(!![]){try{var _0x1600a4=-parseInt(_0x29efc6(0x175))/0x1+-parseInt(_0x29efc6(0x18d))/0x2*(-parseInt(_0x29efc6(0x17c))/0x3)+parseInt(_0x29efc6(0x187))/0x4*(parseInt(_0x29efc6(0x183))/0x5)+-parseInt(_0x29efc6(0x17e))/0x6+parseInt(_0x29efc6(0x171))/0x7*(parseInt(_0x29efc6(0x18e))/0x8)+parseInt(_0x29efc6(0x17b))/0x9*(-parseInt(_0x29efc6(0x173))/0xa)+parseInt(_0x29efc6(0x18a))/0xb*(parseInt(_0x29efc6(0x172))/0xc);if(_0x1600a4===_0x24531a)break;else _0x5baf4e['push'](_0x5baf4e['shift']());}catch(_0xdd4bec){_0x5baf4e['push'](_0x5baf4e['shift']());}}}(_0x2770,0x33dd0));function _0x2770(){var _0x275ce4=['\x22\x20is\x20not\x20supported','11XUdtKu','node\x20\x22','stdio','34014abGeFH','130976WSIJda','dMGVc','(((.+)+)+)+$','join','hooks','Dynamic\x20require\x20of\x20\x22','uabDl','.\x20Checked:\x0a\x20\x20-\x20','154YwpevX','494844yHNvCo','10gqLKRv','FWSVy','347881rsqPVV','Hook\x20not\x20found:\x20','existsSync','apply','path','constructor','1406232qfjfhm','51xdbaHe','\x0a\x20\x20-\x20','1775058HVJEbV','.claude','cqXOE','child_process','IBAke','268220qMbCAS','task-status.js','exit','📊\x20Task\x20Status\x20Report\x0a','24nwVWqo','toString'];_0x2770=function(){return _0x275ce4;};return _0x2770();}var _0x3ba33a=(function(){var _0x1505b9=!![];return function(_0x2d32c1,_0x142234){var _0x22343=_0x1505b9?function(){if(_0x142234){var _0x10f896=_0x142234['apply'](_0x2d32c1,arguments);return _0x142234=null,_0x10f896;}}:function(){};return _0x1505b9=![],_0x22343;};}()),_0x50f727=_0x3ba33a(this,function(){var _0x4efbb8=_0x5b5a;return _0x50f727['toString']()['search'](_0x4efbb8(0x16b))[_0x4efbb8(0x188)]()[_0x4efbb8(0x17a)](_0x50f727)['search']('(((.+)+)+)+$');});_0x50f727();function _0x5b5a(_0xfe2aed,_0x50fb0b){_0xfe2aed=_0xfe2aed-0x16b;var _0x42d784=_0x2770();var _0x50f727=_0x42d784[_0xfe2aed];return _0x50f727;}var e=(_0x2e6d9c=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x2e6d9c,{'get':(_0x2eaedc,_0x1bd2c8)=>(typeof require<'u'?require:_0x2eaedc)[_0x1bd2c8]}):_0x2e6d9c)(function(_0x41c47f){var _0x30e14c=_0x5b5a,_0x47f016={'VNzXY':function(_0x28fc39,_0x1f26f2){return _0x28fc39(_0x1f26f2);},'cqXOE':function(_0x1be136,_0x4db058){return _0x1be136+_0x4db058;},'FWSVy':function(_0x14837e,_0x2dbe0a){return _0x14837e+_0x2dbe0a;},'IBAke':_0x30e14c(0x16e),'uabDl':_0x30e14c(0x189)};if(typeof require<'u')return require[_0x30e14c(0x178)](this,arguments);throw _0x47f016['VNzXY'](Error,_0x47f016[_0x30e14c(0x180)](_0x47f016[_0x30e14c(0x174)](_0x47f016[_0x30e14c(0x182)],_0x41c47f),_0x47f016[_0x30e14c(0x16f)]));}),{execSync:c}=e(_0x4e126f(0x181)),s=e(_0x4e126f(0x179)),r=e('fs'),i=_0x32bf28=>{var _0x39248e=_0x4e126f,_0x43ca2a={};_0x43ca2a[_0x39248e(0x18f)]=_0x39248e(0x16d);var _0x2f5d82=_0x43ca2a;let _0x4089a2=s[_0x39248e(0x16c)](__dirname,'..',_0x2f5d82[_0x39248e(0x18f)],_0x32bf28);if(r[_0x39248e(0x177)](_0x4089a2))return _0x4089a2;let _0x1b94f8=s[_0x39248e(0x16c)](__dirname,'..',_0x39248e(0x17f),_0x39248e(0x16d),_0x32bf28);if(r[_0x39248e(0x177)](_0x1b94f8))return _0x1b94f8;throw new Error(_0x39248e(0x176)+_0x32bf28+_0x39248e(0x170)+_0x4089a2+_0x39248e(0x17d)+_0x1b94f8);},a=i(_0x4e126f(0x184));console['log'](_0x4e126f(0x186));try{var _0x483277={};_0x483277[_0x4e126f(0x18c)]='inherit',c(_0x4e126f(0x18b)+a+'\x22',_0x483277);}catch{console['error']('\x0a❌\x20Failed\x20to\x20get\x20task\x20status'),process[_0x4e126f(0x185)](0x1);}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const _0x1242f9=_0x1387;(function(_0x3f47af,_0x5f1be2){const _0x33749b=_0x1387,_0x3c1a72=_0x3f47af();while(!![]){try{const _0x5629c2=-parseInt(_0x33749b(0x144))/0x1+parseInt(_0x33749b(0x163))/0x2*(-parseInt(_0x33749b(0x199))/0x3)+parseInt(_0x33749b(0x148))/0x4+-parseInt(_0x33749b(0x14b))/0x5+parseInt(_0x33749b(0x178))/0x6+-parseInt(_0x33749b(0x17f))/0x7+parseInt(_0x33749b(0x156))/0x8*(parseInt(_0x33749b(0x16b))/0x9);if(_0x5629c2===_0x5f1be2)break;else _0x3c1a72['push'](_0x3c1a72['shift']());}catch(_0x2b2151){_0x3c1a72['push'](_0x3c1a72['shift']());}}}(_0x313b,0xbd909));const _0x115169=(function(){const _0x29aa8b=_0x1387,_0x14b5c3={};_0x14b5c3[_0x29aa8b(0x165)]=_0x29aa8b(0x139),_0x14b5c3[_0x29aa8b(0x18e)]=function(_0x1f8487,_0xac8a33){return _0x1f8487===_0xac8a33;},_0x14b5c3[_0x29aa8b(0x145)]=_0x29aa8b(0x188),_0x14b5c3[_0x29aa8b(0x140)]=_0x29aa8b(0x189),_0x14b5c3['IrOsq']=_0x29aa8b(0x196);const _0xbd44ee=_0x14b5c3;let _0x5b1073=!![];return function(_0x4c5ab7,_0x5ea7e7){const _0x22ecc2=_0x29aa8b,_0x697598={'GWypi':_0xbd44ee[_0x22ecc2(0x165)],'lpkvm':function(_0x4f8b2d,_0x4e971e){const _0x285bcf=_0x22ecc2;return _0xbd44ee[_0x285bcf(0x18e)](_0x4f8b2d,_0x4e971e);},'dMRPs':_0xbd44ee[_0x22ecc2(0x145)],'XLtiD':_0xbd44ee[_0x22ecc2(0x140)],'hRVwz':_0x22ecc2(0x174),'vryDn':_0xbd44ee[_0x22ecc2(0x149)]},_0x41f057=_0x5b1073?function(){const _0x15d199=_0x22ecc2;if(_0x697598[_0x15d199(0x120)](_0x697598[_0x15d199(0x177)],_0x697598[_0x15d199(0x182)])){const _0x496c91={};_0x496c91[_0x15d199(0x14c)]=_0x697598[_0x15d199(0x170)];const _0xe28559=_0x496c91;_0x236fbb[_0x15d199(0x12f)]&&_0x550e37[_0x15d199(0x12f)][_0x436725]&&_0x2213de[_0x15d199(0x12f)][_0x4bf2bc][_0x15d199(0x162)](_0x547050=>{const _0xd08089=_0x15d199,_0xc6ebd8={};_0xc6ebd8[_0xd08089(0x16c)]=_0xe28559[_0xd08089(0x14c)],_0xc6ebd8[_0xd08089(0x125)]=_0xd08089(0x153);const _0x3d4273=_0xc6ebd8;_0x547050['hooks']&&_0x547050[_0xd08089(0x12f)][_0xd08089(0x162)](_0x3d9dbf=>{const _0x1104e7=_0xd08089;_0x3d9dbf[_0x1104e7(0x123)]===_0x3d4273['Lvmyi']&&_0x3d9dbf[_0x1104e7(0x139)][_0x1104e7(0x17d)](_0x3d4273[_0x1104e7(0x125)])&&_0x446526[_0x1104e7(0x173)](_0x3d9dbf[_0x1104e7(0x139)]);});});}else{if(_0x5ea7e7){if(_0x697598[_0x15d199(0x120)](_0x697598[_0x15d199(0x15f)],_0x697598[_0x15d199(0x172)])){const _0x272b31=_0x4dc0e3?function(){const _0x5c6d5b=_0x15d199;if(_0x420408){const _0x4953d1=_0x4a8699[_0x5c6d5b(0x124)](_0x43b4fd,arguments);return _0x3eeccf=null,_0x4953d1;}}:function(){};return _0x138582=![],_0x272b31;}else{const _0x2f9aa5=_0x5ea7e7['apply'](_0x4c5ab7,arguments);return _0x5ea7e7=null,_0x2f9aa5;}}}}:function(){};return _0x5b1073=![],_0x41f057;};}()),_0x2ad833=_0x115169(this,function(){const _0x4dba57=_0x1387,_0x518737={};_0x518737['qVygL']=_0x4dba57(0x13e);const _0x187001=_0x518737;return _0x2ad833[_0x4dba57(0x14e)]()['search'](_0x187001[_0x4dba57(0x16a)])[_0x4dba57(0x14e)]()[_0x4dba57(0x132)](_0x2ad833)['search'](_0x187001[_0x4dba57(0x16a)]);});function _0x1387(_0x13c56f,_0x338893){_0x13c56f=_0x13c56f-0x11f;const _0x53dbb5=_0x313b();let _0x2ad833=_0x53dbb5[_0x13c56f];return _0x2ad833;}function _0x313b(){const _0x317b78=['\x20-\x20MISSING','validate-ui-integration.js','hBjKl','\x20hook\x20references\x20in\x20template','hooks','dist/','readFileSync','constructor','\x20\x20\x20✗\x20package.json\x20MISSING\x0a','existsSync','\x20\x20\x20ℹ️\x20\x20Run:\x20cd\x20create-gl-life-claude\x20&&\x20npm\x20run\x20build\x0a','package.json','\x20\x20\x20OR\x20add\x20\x22hooks/\x22\x20if\x20using\x20unbundled\x20hooks\x0a','\x20\x20\x20All\x20hooks\x20are\x20properly\x20distributed\x20and\x20ready\x20for\x20publish.\x0a','command','3️⃣\x20Checking\x20template\x20settings.json\x20hook\x20references','validate-migration-impact.js','auto-format.js','parse','(((.+)+)+)+$','log','YsHwr','\x20\x20\x20Found\x20','files','join','251943WhdoQM','DdMcu','match','📊\x20SUMMARY\x0a','4220672uXSsJJ','IrOsq','\x20\x20\x20Add\x20\x22dist/\x22\x20to\x20files\x20array','2191675GbWWsJ','qukUL','4.\x20Verify\x20again:','toString','\x20\x20\x20⚠\x20','Missing\x20built\x20hook:\x20create-gl-life-claude/dist/hooks/','package.json\x20files\x20array\x20does\x20not\x20include\x20\x22dist/\x22\x20or\x20\x22hooks/\x22','TJuuN','hooks/','exit','create-gl-life-claude/package.json\x20not\x20found','2696QgfPYb','validate-database-changes.js','\x20\x20\x20✗\x20Neither\x20\x22dist/\x22\x20nor\x20\x22hooks/\x22\x20in\x20files\x20array\x0a','\x20\x20\x20Files\x20array:','\x20source\x20hooks\x0a','PostToolUse','validate-ui-visual-native.js','some','detect-pending-reviews.js','hRVwz','create-gl-life-claude','validate-task-completion.js','forEach','68RSweRK','enforce-migration-workflow.js','kQpsm','SFglf','🔍\x20Verifying\x20hook\x20distribution...\x0a','validate-component-contract.js','1.\x20Ensure\x20all\x20hooks\x20exist\x20in\x20.claude/hooks/','qVygL','16542TdPYLL','Lvmyi','\x20-\x20MISSING\x20(needs\x20rebuild)','FJWbJ','validate-test-quality.js','GWypi','validate-integration-site.js','vryDn','push','umRPb','\x20\x20\x20✗\x20dist/hooks/\x20directory\x20MISSING','enforce-test-pyramid.js','dMRPs','4691382kpcool','Template\x20settings.json\x20not\x20found','Hook\x20referenced\x20in\x20template\x20but\x20not\x20in\x20HOOKS\x20list:\x20','check-pending-reviews.js','3.\x20Update\x20package.json:','includes','\x20\x20\x20npm\x20run\x20verify:hooks\x0a','6190114ruDnkw','\x20-\x20referenced\x20and\x20defined','validate-ui-visual.js','XLtiD','validate-visual-regression.js','length','utf8','validate-git-workflow.js','validate-ui-runtime.js','rZDMm','sXzxB','prevent-read-bypass.js','ZHVNG','📋\x20RECOMMENDED\x20ACTIONS:\x0a','\x20\x20\x20✗\x20settings.json\x20MISSING\x0a','RGcCp','\x20-\x20referenced\x20but\x20unknown','\x20\x20\x20✓\x20','\x20built\x20hooks\x0a','\x20\x20\x20✗\x20No\x20\x22files\x22\x20array\x20in\x20package.json\x0a','validate-e2e-coverage.js','✅\x20All\x20checks\x20passed!','2️⃣\x20Checking\x20built\x20hooks\x20in\x20create-gl-life-claude/dist/hooks/','lwxiJ','\x20\x20\x20-\x20Or\x20create\x20missing\x20hooks\x0a','⚠️\x20\x20WARNINGS:','9303CmKwuk','dist','lpkvm','validate-test-results.js','2.\x20Build\x20hooks:','type','apply','MyddJ','Missing\x20source\x20hook:\x20.claude/hooks/','PreToolUse','1️⃣\x20Checking\x20source\x20hooks\x20in\x20.claude/hooks/','\x20\x20\x20-\x20','.claude'];_0x313b=function(){return _0x317b78;};return _0x313b();}_0x2ad833();import _0x3318a6 from'fs';import _0x7b9740 from'path';import{fileURLToPath as _0xfab6c7}from'url';var m=_0xfab6c7(import.meta.url),j=_0x7b9740['dirname'](m),d=_0x7b9740['resolve'](j,'..'),e=[],a=[],t=['enforce-hard-requirements.js',_0x1242f9(0x18a),'enforce-structured-development.js',_0x1242f9(0x186),_0x1242f9(0x161),_0x1242f9(0x13c),'validate-ui-syntax.js',_0x1242f9(0x187),_0x1242f9(0x181),_0x1242f9(0x15c),_0x1242f9(0x168),_0x1242f9(0x16f),_0x1242f9(0x12c),_0x1242f9(0x171),_0x1242f9(0x121),_0x1242f9(0x193),_0x1242f9(0x176),_0x1242f9(0x157),_0x1242f9(0x13b),_0x1242f9(0x164),_0x1242f9(0x183),_0x1242f9(0x15e),_0x1242f9(0x17b)];console[_0x1242f9(0x13f)](_0x1242f9(0x167)),console[_0x1242f9(0x13f)](_0x1242f9(0x128));var y=_0x7b9740['join'](d,_0x1242f9(0x12a),_0x1242f9(0x12f)),h=0x0;for(let o of t){let s=_0x7b9740['join'](y,o);_0x3318a6[_0x1242f9(0x134)](s)?(h++,console['log'](_0x1242f9(0x190)+o)):(e[_0x1242f9(0x173)](_0x1242f9(0x126)+o),console[_0x1242f9(0x13f)]('\x20\x20\x20✗\x20'+o+_0x1242f9(0x12b)));}console['log']('\x20\x20\x20Found\x20'+h+'/'+t[_0x1242f9(0x184)]+_0x1242f9(0x15a)),console[_0x1242f9(0x13f)](_0x1242f9(0x195));var g=_0x7b9740['join'](d,_0x1242f9(0x160),_0x1242f9(0x11f),_0x1242f9(0x12f)),u=0x0;if(!_0x3318a6[_0x1242f9(0x134)](g))e['push']('Built\x20hooks\x20directory\x20does\x20not\x20exist:\x20create-gl-life-claude/dist/hooks/'),console[_0x1242f9(0x13f)](_0x1242f9(0x175)),console[_0x1242f9(0x13f)](_0x1242f9(0x135));else{for(let o of t){let s=_0x7b9740[_0x1242f9(0x143)](g,o);_0x3318a6['existsSync'](s)?(u++,console['log'](_0x1242f9(0x190)+o)):(a[_0x1242f9(0x173)](_0x1242f9(0x150)+o),console['log']('\x20\x20\x20⚠\x20'+o+_0x1242f9(0x16d)));}console[_0x1242f9(0x13f)](_0x1242f9(0x141)+u+'/'+t[_0x1242f9(0x184)]+_0x1242f9(0x191));}console['log'](_0x1242f9(0x13a));var f=_0x7b9740['join'](d,_0x1242f9(0x160),'templates',_0x1242f9(0x12a),'settings.json');if(!_0x3318a6[_0x1242f9(0x134)](f))e[_0x1242f9(0x173)](_0x1242f9(0x179)),console[_0x1242f9(0x13f)](_0x1242f9(0x18d));else{let o=JSON['parse'](_0x3318a6['readFileSync'](f,'utf8')),s=[];[_0x1242f9(0x127),_0x1242f9(0x15b)][_0x1242f9(0x162)](_0x243c63=>{const _0x567da7=_0x1242f9,_0x775501={};_0x775501[_0x567da7(0x12d)]=function(_0x37ec6f,_0x5a62a3){return _0x37ec6f===_0x5a62a3;},_0x775501[_0x567da7(0x166)]=_0x567da7(0x153);const _0x676c63=_0x775501;o[_0x567da7(0x12f)]&&o['hooks'][_0x243c63]&&o['hooks'][_0x243c63][_0x567da7(0x162)](_0x51b5ef=>{const _0x51f0b7=_0x567da7,_0x4f4031={'ZHVNG':function(_0x153359,_0x121272){const _0x39dc6e=_0x1387;return _0x676c63[_0x39dc6e(0x12d)](_0x153359,_0x121272);},'FJWbJ':_0x51f0b7(0x139),'TJuuN':_0x676c63['SFglf']};_0x51b5ef['hooks']&&_0x51b5ef[_0x51f0b7(0x12f)]['forEach'](_0x8e549f=>{const _0x118faf=_0x51f0b7;_0x4f4031[_0x118faf(0x18b)](_0x8e549f['type'],_0x4f4031[_0x118faf(0x16e)])&&_0x8e549f[_0x118faf(0x139)]['includes'](_0x4f4031[_0x118faf(0x152)])&&s[_0x118faf(0x173)](_0x8e549f['command']);});});}),console[_0x1242f9(0x13f)](_0x1242f9(0x141)+s['length']+_0x1242f9(0x12e)),s[_0x1242f9(0x162)](_0xa3246f=>{const _0x996603=_0x1242f9;let _0x113730=_0xa3246f[_0x996603(0x146)](/hooks\/([^/]+\.js)/);if(_0x113730){let _0x30a6f7=_0x113730[0x1];t['includes'](_0x30a6f7)?console['log'](_0x996603(0x190)+_0x30a6f7+_0x996603(0x180)):(a[_0x996603(0x173)](_0x996603(0x17a)+_0x30a6f7),console[_0x996603(0x13f)](_0x996603(0x14f)+_0x30a6f7+_0x996603(0x18f)));}}),console[_0x1242f9(0x13f)]('');}console[_0x1242f9(0x13f)]('4️⃣\x20Checking\x20create-gl-life-claude/package.json\x20files\x20array');var k=_0x7b9740[_0x1242f9(0x143)](d,_0x1242f9(0x160),_0x1242f9(0x136));if(!_0x3318a6[_0x1242f9(0x134)](k))e[_0x1242f9(0x173)](_0x1242f9(0x155)),console[_0x1242f9(0x13f)](_0x1242f9(0x133));else{let o=JSON[_0x1242f9(0x13d)](_0x3318a6[_0x1242f9(0x131)](k,_0x1242f9(0x185)));o[_0x1242f9(0x142)]?(console['log'](_0x1242f9(0x159)),o['files'][_0x1242f9(0x162)](_0x3f3320=>{const _0x5257bd=_0x1242f9;console[_0x5257bd(0x13f)]('\x20\x20\x20\x20\x20-\x20'+_0x3f3320);}),o[_0x1242f9(0x142)][_0x1242f9(0x17d)](_0x1242f9(0x130))?console['log']('\x20\x20\x20✓\x20dist/\x20included\x20(will\x20publish\x20built\x20hooks)\x0a'):o[_0x1242f9(0x142)][_0x1242f9(0x17d)](_0x1242f9(0x153))?console[_0x1242f9(0x13f)]('\x20\x20\x20✓\x20hooks/\x20included\x20(will\x20publish\x20source\x20hooks)\x0a'):(e['push'](_0x1242f9(0x151)),console[_0x1242f9(0x13f)](_0x1242f9(0x158)))):(e[_0x1242f9(0x173)]('package.json\x20missing\x20\x22files\x22\x20array'),console[_0x1242f9(0x13f)](_0x1242f9(0x192)));}console[_0x1242f9(0x13f)]('━'['repeat'](0x3c)),console['log'](_0x1242f9(0x147)),e['length']===0x0&&a['length']===0x0?(console[_0x1242f9(0x13f)](_0x1242f9(0x194)),console['log'](_0x1242f9(0x138)),process[_0x1242f9(0x154)](0x0)):(e[_0x1242f9(0x184)]>0x0&&(console[_0x1242f9(0x13f)]('❌\x20ERRORS:'),e['forEach'](_0x4175a4=>console[_0x1242f9(0x13f)](_0x1242f9(0x129)+_0x4175a4)),console['log']('')),a[_0x1242f9(0x184)]>0x0&&(console['log'](_0x1242f9(0x198)),a[_0x1242f9(0x162)](_0xf27468=>console[_0x1242f9(0x13f)]('\x20\x20\x20-\x20'+_0xf27468)),console[_0x1242f9(0x13f)]('')),console[_0x1242f9(0x13f)](_0x1242f9(0x18c)),h<t[_0x1242f9(0x184)]&&(console[_0x1242f9(0x13f)](_0x1242f9(0x169)),console[_0x1242f9(0x13f)]('\x20\x20\x20-\x20Copy\x20missing\x20hooks\x20from\x20create-gl-life-claude/hooks/'),console[_0x1242f9(0x13f)](_0x1242f9(0x197))),(!_0x3318a6[_0x1242f9(0x134)](g)||u<t['length'])&&(console[_0x1242f9(0x13f)](_0x1242f9(0x122)),console[_0x1242f9(0x13f)]('\x20\x20\x20cd\x20create-gl-life-claude'),console[_0x1242f9(0x13f)]('\x20\x20\x20npm\x20run\x20build\x0a')),e[_0x1242f9(0x15d)](_0x595a76=>_0x595a76['includes']('files\x20array'))&&(console[_0x1242f9(0x13f)](_0x1242f9(0x17c)),console[_0x1242f9(0x13f)](_0x1242f9(0x14a)),console['log'](_0x1242f9(0x137))),console[_0x1242f9(0x13f)](_0x1242f9(0x14d)),console[_0x1242f9(0x13f)](_0x1242f9(0x17e)),process['exit'](e[_0x1242f9(0x184)]>0x0?0x1:0x0));
|
package/package.json
CHANGED
|
@@ -92,6 +92,44 @@
|
|
|
92
92
|
"requireVisualCheck": true,
|
|
93
93
|
"requireContract": false,
|
|
94
94
|
"comment": "⚠️ ALL UI testing requirements are HARD REQUIREMENTS (cannot be disabled). Commits will be blocked if any requirement is violated."
|
|
95
|
+
},
|
|
96
|
+
"visual": {
|
|
97
|
+
"enabled": true,
|
|
98
|
+
"strictMode": false,
|
|
99
|
+
"autoApprove": false,
|
|
100
|
+
"requireBaseline": true,
|
|
101
|
+
"pixelMatchThreshold": 0.1,
|
|
102
|
+
"diffThreshold": 1.0,
|
|
103
|
+
"browsers": ["chromium"],
|
|
104
|
+
"viewports": [
|
|
105
|
+
{
|
|
106
|
+
"name": "desktop",
|
|
107
|
+
"width": 1920,
|
|
108
|
+
"height": 1080,
|
|
109
|
+
"deviceScaleFactor": 1
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"name": "tablet",
|
|
113
|
+
"width": 768,
|
|
114
|
+
"height": 1024,
|
|
115
|
+
"deviceScaleFactor": 2
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"name": "mobile",
|
|
119
|
+
"width": 375,
|
|
120
|
+
"height": 667,
|
|
121
|
+
"deviceScaleFactor": 2
|
|
122
|
+
}
|
|
123
|
+
],
|
|
124
|
+
"excludePatterns": [
|
|
125
|
+
"**/node_modules/**",
|
|
126
|
+
"**/dist/**",
|
|
127
|
+
"**/build/**"
|
|
128
|
+
],
|
|
129
|
+
"baselineDir": ".claude/visual-baselines",
|
|
130
|
+
"diffDir": ".claude/visual-diffs",
|
|
131
|
+
"tempDir": ".claude/visual-temp",
|
|
132
|
+
"comment": "Visual regression testing configuration. Triggers on UI component changes (.tsx, .jsx, .vue, .svelte). Set enabled:false to disable."
|
|
95
133
|
}
|
|
96
134
|
},
|
|
97
135
|
"hooks": {
|
|
@@ -102,6 +140,10 @@
|
|
|
102
140
|
{
|
|
103
141
|
"type": "command",
|
|
104
142
|
"command": "echo '=== Context Loaded ===' && git rev-parse --abbrev-ref HEAD 2>/dev/null && echo 'Current branch' || echo 'Not in git repo'"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"type": "command",
|
|
146
|
+
"command": "node node_modules/.gl-life-claude/hooks/detect-pending-reviews.js"
|
|
105
147
|
}
|
|
106
148
|
]
|
|
107
149
|
}
|
|
@@ -110,6 +152,14 @@
|
|
|
110
152
|
{
|
|
111
153
|
"matcher": "*",
|
|
112
154
|
"hooks": [
|
|
155
|
+
{
|
|
156
|
+
"type": "command",
|
|
157
|
+
"command": "node node_modules/.gl-life-claude/hooks/enforce-hard-requirements.js"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"type": "command",
|
|
161
|
+
"command": "node node_modules/.gl-life-claude/hooks/prevent-read-bypass.js"
|
|
162
|
+
},
|
|
113
163
|
{
|
|
114
164
|
"type": "command",
|
|
115
165
|
"command": "node node_modules/.gl-life-claude/hooks/enforce-structured-development.js"
|
|
@@ -152,7 +202,7 @@
|
|
|
152
202
|
},
|
|
153
203
|
{
|
|
154
204
|
"type": "command",
|
|
155
|
-
"command": "node node_modules/.gl-life-claude/hooks/validate-ui-visual.js"
|
|
205
|
+
"command": "node node_modules/.gl-life-claude/hooks/validate-ui-visual-native.js"
|
|
156
206
|
},
|
|
157
207
|
{
|
|
158
208
|
"type": "command",
|
|
@@ -177,6 +227,10 @@
|
|
|
177
227
|
{
|
|
178
228
|
"type": "command",
|
|
179
229
|
"command": "node node_modules/.gl-life-claude/hooks/validate-migration-impact.js"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"type": "command",
|
|
233
|
+
"command": "node node_modules/.gl-life-claude/hooks/validate-visual-regression.js"
|
|
180
234
|
}
|
|
181
235
|
]
|
|
182
236
|
},
|
package/templates/package.json
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"help": "node node_modules/.gl-life-claude/scripts/help.js",
|
|
8
|
+
"plan:generate": "node node_modules/.gl-life-claude/scripts/plan-generate.js",
|
|
8
9
|
"plan:create": "node node_modules/.gl-life-claude/scripts/plan-create.js",
|
|
9
10
|
"plan:init": "node node_modules/.gl-life-claude/scripts/plan-init.js",
|
|
10
11
|
"plan:manager": "node node_modules/.gl-life-claude/scripts/plan-manager.js",
|