From bdb7d434df43eaed2e55a9e4988c166d84bbb01e Mon Sep 17 00:00:00 2001 From: alwkala Date: Wed, 2 Sep 2026 00:03:08 +0300 Subject: [PATCH] docs: standardize 8-language documentation, badges and organization footers --- dist/tidyfactor-php.skill | Bin 550976 -> 551586 bytes dist/tidyfactor-php/bin/add-skill.js | 46 +++++++++++++++++++++++---- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/dist/tidyfactor-php.skill b/dist/tidyfactor-php.skill index 78de7c785d82b26ce2642696f5cd35e31d82b713..6a4f8e6c2a82ada5ad45b41c30996331ed624760 100644 GIT binary patch delta 2007 zcmaKtX;f3!7RSR)FoysVl^JCS4JeopMh!MknUqOE0VM)qmO-l`Ac8<(*@$f)eT+R6 z9D13R!4|<#5JjpCK@bE75Fd!3AQ%FofLMGt3Gc1tmv=tgeSZJ_Kl|);?^^pd_vjTq z)>CwM!4s5m;uVCWWGYgqSn!kZ>VqIoMI1Nz+UQBai~aEil2Aw$hg1PiAj1Y&kgPp&s#62=uzddsWej=^iOU<2?yJh)0V}dI3;Wfm6%H5q`CLdTq z_?|uz$ED5mSfd9x=9SCYS_muo( zurtOkSM;>v+~=gwXO#~51~ppqE!{mjPA<_#M^DAjyJmhmqoG~QGOz2(d_z7R*{czo zHai}wSEU*)pgZ@4>%X>CbhodiN7vRY&W|mASmKUXOlswSygbJv2Grs&cqivwZkgDC%uNb`f`eb&?vF@;8A4UA za=s_+kJ@@~I1?Z&ae2eP_wE?_K5y7C=jV5&Iw^e1 z7JdIpT-PNhWA+b;B_5Ryk;#J-xW91=o{HRGNDtLi8e(z6_))3=aUHl@7t`PXruK6C zJhz&!UDTt8HfgofQ?4pe@)OVN)qKC0RQ|k@xh)1pd-Rk3(pG-7G+}2HTiqT_=lpO* z6v=t3c_<@4YBJm;qu`$o-%j30ML$0z||^(V4k5#89Y)ES+0n&6S2} zY($kF%iCD7$^boldh~Rhazb9g;j>%0-34(&%e9x;LbsF3Gj79_I%ZU>{n{_z%FP2cD;qC0if(!eH-((xNSd&i_cQnw?j&qvYsvWFI9-&8~=9gx; zlYFP{ckyiFI^B-r?e9F3iDZkhE}Q0o0EZRpQh&9*)<;FV?i8%Zxrb0lpZQT&h{H1C zIRrgWqKRa~Ly0u;hF^ygwfPc>#Rgh%)*GlvNS+O(PE0nFD5u!KO0ub7155FS|B4NM zN7jBl!XWAk_96W!ob?4P#JLDE{D7`5=KgAQO6RJ0j*@X-Y|4vZU?5PXxx2_9%DDf{ z+^zZd}6SO2s7zm!~Z>^^4}AZOGw2;xXvD^LOBjF!m}`1M2WiapqM(ZNpi{% zasUlU{6o?X9O3{o#H&FH2L8Ytxqe3q+$JJ`@&3RFL7SyYqd(^TwN(nT0T`roO2NH@ zCLGHGUBiWnpI^ zR%vNo>QW5CE@CZ1n;_tbFGK*$Gyp0P4FVR3yd2aG25L|k1Q^JtwPJ9@BdV*Glwe?v zpWU=doxy;C7wE6jh7jz7KiMoHZMZQEC_oVh5MaJBAY*?h>AIOJq^FfRuwA9Z zBfu07?N_Pw2(Z8(+$|v;abwtv*aIEIz%C@n5&nopeCa*_16_eS92aM`J>j}=uw~5_ IAAoiJA2L4|HUIzs delta 1376 zcmZ9Lc~BEq9LG1iz`m9shd?-#CQuH6aNi6d;gCX#K^Q;|6OKT_Aq+%0Jg8%XwTP5f z`@q(6A5~Mz3=moo=*S=h3Wz906e=wx9ibv+S}fXjH%U8#?~nccKHvA9-*4aB-!|T7 z3{Ek$I1!kdK0>aJ@V(Vq=9WZARt#PtkG`KQLL6CI}L3C6#Q_|C!h1tTK9EYsJW6@(r=bd!= zp4#=u1G}DZ{xtNnwBgjBYy3@OL%p0dClVZ5zFp2U8VP8=b2_=dIVt?ZRWEPwaj&oI zwo!jsT*$L)i?SHOAG{kwjaMc$Yp|>L4=rq+XmMXGEh{eF(v)%s-gEJvNoYEI_WHcX zEz_rTn>qJx@ZfRRXCAsSA&i`G@$hZy{4HzSb2oBMdT)CLKlI6&NZUMkm$4^HI-K8@ zBokgWko(c_(J!8V)74TLNpE@Etw=6eut=0N7ql)sLBl7kM@uWM?B7_yQ(3tZm({}; z>E4s@*D}|NpF7433mYm|Zf-YstzO{4N19%(6TzY*YtJz?nr@`=?n)pt(dk+1uQDF@ z?L^M|kN+5tY%W`|+CI{#xwNPC6g9zn8{h^Wb(e?VO0M{ut+o;QL-6#O+|ZsQyh~y1 z#lQU6O(Uzu!@}~~{P8xu4n(x|Cd+;B^rt5!XxaBwkGdZoHg^A|Bz!sOMTMP(h^@9t z^|$D(XAhlk*S5RDoYwR4F!iPM#t+3WCECduaX&p{SQL-=QnIR6eBN)WtvXS>H+HJf z+>YDMzL?y%zQl{VUY&h2WBJ~|f%wqCuksonB!62pKjSH*#YqO#_nFvJdnBckv9sl` zv^f|tW01)OCen=te2_xU3hZve9Tmw+6V4RKND}xO-L-SfAjSoeXh9u}<^n&KydFn#`MG%oC60N=`31*?{33_k zbWQ{X)kprH{~d#`RLQ?U2l*#3v;jt?0z)Y00xF$oxx=bQx)h7F7B@hB9-uQ`cNzR= zQWR`&z+n`NsF=+Iw%9yD3C%bi_L3xQSM2G-7d*g3O*)jV{ZoJo`nyyKAEW?R^xa!Z zxJT{;^pik?W~sm#^&BE03^f~7IyzGc`>QD>yd;4&3!T%z0hIEXj5JuC2At4FxzaJ0 z2HeoGH6?J@aR8a=z!rrYN+mCy=r_Nmf^A}3Jq_rznW~7H0h}-aLq#tw2>YoF!Y;B>Ndp;#{eqo} z=njAi4Ks;X6gj}^OrQ^AGl4fMaVCL-vOSgJf;ZR&)dhsD))zVpz&jKUbP@m~_=$ix z&~yN)(cprBxIlLn)D?mVbTddP9upFG21DRAA=r;0p#YYJ0RxC;5w(KZ&>;&1p?y)X OFbnL{xDyYEFa0n55bqEG diff --git a/dist/tidyfactor-php/bin/add-skill.js b/dist/tidyfactor-php/bin/add-skill.js index c8c5ad7..31d985a 100644 --- a/dist/tidyfactor-php/bin/add-skill.js +++ b/dist/tidyfactor-php/bin/add-skill.js @@ -1,25 +1,42 @@ #!/usr/bin/env node /** - * bin/add-skill.js — CLI installer wrapper for tidyfactor-php + * bin/add-skill.js — Multi-Agent Skill Installer Wrapper for tidyfactor-php + * Supports Trae, Cursor, Windsurf, Antigravity, GitHub Copilot, RooCode, OpenCode, KiloCode, Warp, and Universal. + * + * @license Apache-2.0 */ const fs = require('fs'); const path = require('path'); +const os = require('os'); const targetDir = process.cwd(); const skillSource = path.resolve(__dirname, '..'); -const agentSkillsDir = path.join(targetDir, '.agents', 'skills', 'tidyfactor-php'); +const skillName = 'tidyfactor-php'; -fs.mkdirSync(agentSkillsDir, { recursive: true }); +const AGENT_MAP = [ + { name: 'Trae AI IDE', dir: path.join(targetDir, '.trae', 'skills', skillName), test: path.join(targetDir, '.trae') }, + { name: 'Cursor IDE', dir: path.join(targetDir, '.cursor', 'skills', skillName), test: path.join(targetDir, '.cursor') }, + { name: 'Windsurf Cascade', dir: path.join(targetDir, '.windsurf', 'skills', skillName), test: path.join(targetDir, '.windsurf') }, + { name: 'GitHub Copilot', dir: path.join(targetDir, '.github', 'prompts', skillName), test: path.join(targetDir, '.github') }, + { name: 'RooCode', dir: path.join(targetDir, '.roo', 'skills', skillName), test: path.join(targetDir, '.roo') }, + { name: 'OpenCode / Zen', dir: path.join(targetDir, '.opencode', 'skills', skillName), test: path.join(targetDir, '.opencode') }, + { name: 'KiloCode', dir: path.join(targetDir, '.kilocode', 'skills', skillName), test: path.join(targetDir, '.kilocode') }, + { name: 'Warp Terminal', dir: path.join(targetDir, '.warp', 'skills', skillName), test: path.join(targetDir, '.warp') }, + { name: 'Kiro Spec IDE', dir: path.join(targetDir, '.kiro', 'skills', skillName), test: path.join(targetDir, '.kiro') }, + { name: 'Claude Code', dir: path.join(targetDir, '.claude', 'skills', skillName), test: path.join(targetDir, '.claude') }, + { name: 'Zed AI Agent', dir: path.join(targetDir, '.zed', 'skills', skillName), test: path.join(targetDir, '.zed') }, + { name: 'Google Antigravity/Gemini', dir: path.join(targetDir, '.agents', 'skills', skillName), test: path.join(targetDir, '.agents') }, +]; function copyRecursive(src, dest) { + fs.mkdirSync(dest, { recursive: true }); const entries = fs.readdirSync(src, { withFileTypes: true }); for (const entry of entries) { const srcPath = path.join(src, entry.name); const destPath = path.join(dest, entry.name); if (['.git', 'node_modules', 'dist'].includes(entry.name)) continue; if (entry.isDirectory()) { - fs.mkdirSync(destPath, { recursive: true }); copyRecursive(srcPath, destPath); } else { fs.copyFileSync(srcPath, destPath); @@ -27,5 +44,22 @@ function copyRecursive(src, dest) { } } -copyRecursive(skillSource, agentSkillsDir); -console.log('✓ Successfully injected tidyfactor-php skill into .agents/skills/tidyfactor-php'); +// Determine installation targets +let mountedTargets = []; + +for (const agent of AGENT_MAP) { + if (fs.existsSync(agent.test)) { + copyRecursive(skillSource, agent.dir); + mountedTargets.push(agent.name + ' (' + path.relative(targetDir, agent.dir) + ')'); + } +} + +// Always ensure universal fallback in .agents/skills/ +const defaultDir = path.join(targetDir, '.agents', 'skills', skillName); +copyRecursive(skillSource, defaultDir); +if (!mountedTargets.some(t => t.includes('.agents'))) { + mountedTargets.push('Universal Default (.agents/skills/' + skillName + ')'); +} + +console.log('✨ Successfully injected ' + skillName + ' into:'); +mountedTargets.forEach(t => console.log(' • ' + t));