From 14b6579c1ed1c6668a3fb066435a0c68965cf397 Mon Sep 17 00:00:00 2001 From: Cyrus Cui Date: Sat, 16 May 2026 23:18:03 +0800 Subject: [PATCH 1/2] refactor(marketplace): drop skills/strict, adopt v2.1.143 auto-discovery Claude Code v2.1.142 fixed the false "path escapes plugin directory" error for marketplace entries declaring "skills": ["./"] (anthropics/claude-code#57570, which had broken /plugin install kami@kami on v2.1.136-v2.1.141; tracked locally as tw93/Kami#19, now closed). v2.1.143 then added automatic skill discovery: a plugin with a root-level SKILL.md and no skills/ subdirectory is surfaced as a skill directly, making the explicit "skills": ["./"] and "strict": false fields redundant. Drop both fields from the marketplace entry, advertise the /plugin marketplace path in README.md and llms.txt, and declare the minimum Claude Code version (v2.1.143+) so users on older releases fall back to the npx skills path. --- .claude-plugin/marketplace.json | 4 +--- README.md | 7 ++++++- llms.txt | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 9133391..88c08f2 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -11,9 +11,7 @@ "description": "Typeset professional documents: resumes, one-pagers, white papers, letters, portfolios, slide decks. Warm parchment, ink-blue accent, serif-led hierarchy.", "category": "documents", "source": "./", - "homepage": "https://github.com/tw93/kami", - "skills": ["./"], - "strict": false + "homepage": "https://github.com/tw93/kami" } ] } diff --git a/README.md b/README.md index 0c9ec76..5dd9606 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,12 @@ The landing-page template in action: three products, one constraint set. npx skills add tw93/kami -a claude-code -g -y ``` -Note: Claude Code 2.1.136-2.1.138 currently rejects root skill paths during marketplace install. Use the `npx skills` command above until the upstream path validation regression is fixed. +**Claude Code plugin marketplace** (requires Claude Code v2.1.143+) + +```bash +/plugin marketplace add tw93/kami +/plugin install kami@kami +``` **Generic agents** (Codex, OpenCode, Pi, and other tools that read from `~/.agents/`) diff --git a/llms.txt b/llms.txt index 812a1a1..af3feea 100644 --- a/llms.txt +++ b/llms.txt @@ -17,7 +17,7 @@ Kami is a layout design system for the AI era. Give Claude (or any LLM) a brief, ## Install - Claude Code: `npx skills add tw93/kami -a claude-code -g -y` -- Claude Code plugin marketplace: temporarily affected in Claude Code 2.1.136-2.1.138; prefer the `npx skills` command above until upstream fixes root skill path validation +- Claude Code plugin marketplace (v2.1.143+): `/plugin marketplace add tw93/kami && /plugin install kami@kami` - Generic agents: `npx skills add tw93/kami -a '*' -g -y` - Claude Desktop: download `kami.zip` from GitHub Releases and upload it in Skills settings From 3cbaa537b9c3fb76a003c64cb36b666832ebe2a8 Mon Sep 17 00:00:00 2001 From: Tw93 Date: Fri, 22 May 2026 21:42:01 +0800 Subject: [PATCH 2/2] fix: correct Claude marketplace version guidance --- README.md | 2 +- dist/kami.zip | Bin 12262316 -> 12262208 bytes llms.txt | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5dd9606..5a62087 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ The landing-page template in action: three products, one constraint set. npx skills add tw93/kami -a claude-code -g -y ``` -**Claude Code plugin marketplace** (requires Claude Code v2.1.143+) +**Claude Code plugin marketplace** (requires Claude Code v2.1.142+) ```bash /plugin marketplace add tw93/kami diff --git a/dist/kami.zip b/dist/kami.zip index 529445386f21f37acbb06c2ea9854941333be1e2..3fc811d89a7c8ee44190707f6a1ffb0d2b0c7349 100644 GIT binary patch delta 8957 zcmZYFcRW__|2Xh_x$V989wB>=jO?8e*?VP%Y&Y4f$T)~Z6tXjN-$qK&5Gk7q4ZD;r ze6RF-_v!uq{qf{+z0T`g=Q`Iq9_OfSU&VXawu;AKqK`z;z+f-}7-?Obt#ca{6(bx5 zTZU&d2x6YwQh1~6D7-_$h+%Nl7Kopu`kILQJr*OG`9bvPz6*ItQMKxR0*v(vS(?Fg z0`EBrH_H9jsTXRe<54pT{QkMYN1J9^*)2Kp-ln&313>FT<%lF=~0(~EPqP8 zpgUr5!XH^Oia#vARN!CV`r z{vrCoD;jF%!S#~Ye2*FHSJ~g(O}0!))uuT&Cdbe%nvLY4NgP4o&uB|JnMPU261?uS zmRD}QGH~kJY6@*SxAJ9GoDM!aUw9tBB2;(U#A=(qor~e35NCnsj3SF8pMhrB%FTS0 zx@U5MSlS+yv75eg(vuNh<0_Md%5*)_oyE6V_G8MG8XzhMhmqBb5+ROnc7od1x?%t8 zO|H7OoNMq?_+LRE0{461!f@oT;5tJ5PmmAkgntrDBjWfcnA1eGeG;o7X8$L4f0#H! zmy4GRFR^3GL+_eu@r0k1d!}hJB_Y=nIJv}?c^b+r7=#Ax48b&a^u;P8yWF5V4 zb^0@{>2B(Gv@4;h%Dww2uP^N6k*}cGA9a0l(6wptMA>OKJ!9wL!nV+S>_+FIE%b9n)b=E~)t?+%jEw;#p|B?i8VE z7&Y^!LPthDIwh|Pbx;VGPtcQA(Zt|@WZZ{jMc z70izCZg~j-qDaN!)4Z{ zjPVwv%ay8A^Qunq4^wpRPDti&agdDES9zSmOVy=j)L7!VBD5uaQ2ysfANW(B2=qnSft$hM8^w-9V*+Dd}Y)SNz#-JMwm7$L)q^_}31?!Z<(_7@{aV)}E~uajGwUr9dD;HGT#5f{cdnM# z(#3|1kqaY*y8)>*`SxW&*m3>oUIE2@PtLB%AcJJ2vu^L`i0P758uz)BJgGSXquJ=x zTMxgd-d35f5Tp1chH20<9JC1VKe9`_R2J+!&P?(HXOv!~IWh8H{ZNTJ)Yv@3Y{`Y_ zou#qBg_o0al1c`tYCm@zp46>4`1C|N`4>G~esj6K^lEx)Q)>T{_3@tfF>5&`nf{l1 zem-ep%FHQheH%@%+>Eg_Bv2CD8IK6N?6AieA#7cf-iZJCo0uDB@Ni#rL#HfkegAP0 zxvvG~wJ$hjpVsL@FL(~=&!r=4a>I2YWqL%Jk(16uS$uzVQt5lM*}EZh9kCOW^n%U^ z&Y7s)nl_4_o$=SNmW8y{L~75(y6+yo307_LMyVbq-#%xP{Cwle=K2&1+wf-^_xIYYMVE$tc)fTUr2k~Y_0*5D zgUJ0KXn&zRGS(tex6gv&>A{hUCe|lTHhOMCUa^OT48>TPxeUbxZN3;K?9S0t@7Cihn;s|v z>2GXm7$rx z`OC>u%Zu@oUz*Ndn|&>kQgOb$qOM~P-RgWO zkcA(SI{C5!%UW#aY%P2Nephp^-|gqk#Phjlma0b;(=QNkeLt4!5wK-3V82SYiaQ~afit8c4y4P5Kl$k7Ofh$hNSuk zZTu`uBA6#^YeW-L@XSoX9 z30t@^PXl4wPU0ql6u!kaH+=NB&FYc<`bY(GXz7S`aTj)ok-1_T@#X0JGCb_jqL25ICg;G&A zqGi}Oa-sq5H=nkY5UG~5a9R!Iv0nQqy2Kw@L-vhKr~i=hrrFSyVa>|a@ch+pZ#pmM z6OlG)|r^Yx)Oc*wcWK)Kj+!)eoOSzcKc}ZcpHa0e@vj;3QpE<_UG$14$cc{fDO#nz4q=y8pW^OdxvAm4r(zY zjmB4Rx%w~MxI%8X>ie_1y<>8^vvccnL*&YCD5;Il@%rIxkL^UvPS?AqHd)|lRM~#? z^=J9J{po_{$gR)Y+OlF{2PHk~$L~IuM%?Hb+_5=c*j9Ad855-ws-=xsvGhM&Yi~bZ zQ!I*cd^7k0(={ln+7rQCx-HY)CldXJr2x0}#kj3!w@9$}kX!NV>;(3b(-+y&?1&qs zJ2FSZ)1ATJ>?%aS$2g~ag42Lee|saTKvtO~pI zt+(s2T#S|5G_3NRGh8QYo~Bu@_kPvI_7@6a9D^v@w*zX``~}r_Trb8K+2}lt^qJ;F zp?DU>ZgV%64BsD6NLdq$RaYp_$LFQBcEr;ow!P!SHNADKa7kDN#dz73ULI{#h!UaX zdel$G8*N0|hgNP(DyM%a=jTITQyu36m%XS|sg9XbTNKNZ%hoE-ER!*KbUHWYm~cXy z|IFJC!dAbnpxiYntE+Z`T>?(o1!DOQvstf;5@yuiQoZ#Qe(9Vd^BmnYLPV6o^G%?T z7ao?!UX?HwD$l*A6ZmMCsxA3>qk@}&YJ+Q7()qj6TLU*s`@>Zks16B#DqD41+3RZ4 zajTeNyqoPmr7RrE+>EP-Iq?}@x0YRFkRNURbjG*I=$;tUlN#YG9iDou~^Pq`HYqJEzyZJ9L0M#IJF1urN4m^VmrQE^ak zs5`%hAAf(9lffpsPjQ*`+{4@52M@n}4CT`L@VM7Y-&*2vOg!(8M9aD}5=U?6`meD$ zd~$5Ym}~XoQyiQTNHCxzi*dIsJoG9RS9}9L|TNa`!tDkde34r%oY!ya3 z?@1h!Pml(>R&m!XymC^1M-Y`Z=RPBU#Y6il=KOw$!_lq)8@sZ%+cOuG)*Zrcml^|G|G7=6Wnr}YLN4C#Qv#yJtqk5EW zwkeOndsa;IB8iJTTqecnxuee`M$eBuxg}Q`4yGn=C#Bp@xEnHdRD#{HnTk2WrGjhh!hFmoLi zlt!d?(g!jr*5Q@Fk0a8_#sp_k^2<3x#&j4i=Ol9mx7zYl%^{U57gSm0R?$dS!Ylse zDM~i-LLC@$#_6K8dZH=@G9B9V%;%)0CBt#>b*XuY?dpgEI!T>6yBN`h@nO<5SSht#nS87@)A3B)2(^2<+sE|_bS%*J#CNs%3Yoc@CKCL@Z+H3W z+pn7U78foUeYfyV)Zzc2bHz5Cg!qYDjY;m<_j^|QjR%QD6t5;S^yv##E$*qv(wmMw zGvjR1qcBZ(=O~P#6H_&R5Juk|MV;O(#QZ2{0^s0j6`!InC-6QFwD@7S`Cg|1aq$y{0Sqv@d zr`)AA&ZT#WUcSytmhvsnNo}Wk#PZf^CsxFX5AMWq`0m1B%{E$_Aq}m%@?4dlqacam z&%v6849@XCpP;N7Zo8&;qVbqIYO>h8UX}hRZb3WMMi&*C@rD-p9EYCSNt0W@G?6v* za8qC`+v@@O3${s*AEfhQxvK$!G#VJcY}p@=KgvDqh*MEd>k2N|oqg-C=zMdX5YCn& zWHi6+gWSK<%ar`!^vb?WaetxgeG|T{n_YdkkY8 zEta}x6fv<50UlE$2`B~yRl4s&J~p)`@0v{J^OjdZ*3m*dFKQ%9)^EXYb*3&RGo?re#E z&^|2|;duUK1$Dqx=_fO($gwyreyMg_9`bnU8~h!um5<>wtatM_!^cl(vVa^Q4=4bNfD)h#oB>n- zRX`0;2hIW-fF_^?XahQcE}#eK0|tO0U<4QgCcrts6fgsR^``}J9%U<23! zc7Q$L05}3pfHU9%xB_l~JKzC$0$zYOa1rnUd;vee9|!;fflELT5DbI>mw`|q3N?Sp@~#TdW$X=Pd`?f z1ZnX8+{ox%#jSPMCx=_yyo$b4j*smVaMXL*KXmaCMp4f29z}$?9xS*0j4Q>d0*UrjGiD-0 z&k(ExJ;Jx=IMLH!SUyo+?krJgG*_$NN}j_K^EfF#V7e!w7h;yNRxdGShSD|X`^#5n zK78}YBs5@2&%S0$A-o>FW5rv|SC5t}LA)Bg>gd+=1|@lv>_={CS^9ak2Sb?jT>L^# zh3o98wBd-0&VzWf<6Wq)0{%_q6p{oqdxhk6x1Z5Ur4q@&X-Hz)(g?2`k#*XSu+?|e3~U~6y|XZt?VH*m;yzSX+;)DE zLEoSB68g3dpNr9U@~BFFSHV;}Tvxq;{9Ge*mFtlH^CLOK(7kbNm6?nDqu1BUG~*E= zai@>SYlp)6u%Sw^y*_8fKbbe1Qq_ux6fT+%@jmU)WycQ6en=BqmP!1M8NAicNx}VY zS43bQ?x;&R{Zjp6Ht(6N{nt+t#w6aUg$T9TJeq0^rD%U@?bqmjmz(1wfp_Ce{JzdB zQ9Ut>WOZwT3%7b3EBkuoe){Zm%AGPYDpgs?9ZT01W=jhHj=HMlZb13*Ff)p0MqYj_ z88P;lV-I7vyCiCi(aUvfGQ@P-HUEtCQ1-SWFWK{+lFsdw75h$%$>L>6c=a)4&G9*M zAayolj?4IJ;OM}YHDz2!ZD}Bh?n$KkC<6 zY_HpkcbuF*O}{&Ee$Y+D{>OFM?d(ciV_RzYD7UnI0;`-!}6VkH*6`|8`QAHq$gn`V=Vul zaFj82i1T+i5X<`~91(~WAU_FL#$rYOgr{P$4XBfFM&e(UU=y*|iB7`CSy;h8*|AyJ z_1`xWcn|yg^Ukl9RNuq$u%2WO5Bych(Ezp)?aXzoSJ)^%vVVVtgS@t|a!BwU z4(i3jv9N=!%~o@ABPIiUup0oVVGQ6W3e@;6|N(D)@ncxa)+L}h@W+J|>|H^?zcR-_fpv@hu)JeY3 zF349`fWgihs99)e{(t#dWH=NQxr=3jheG+gSP{v8eee>1!3h6#CxYrQn5m|khT)%@ zz)pVB9XWmGRHT1*R~RI*hc$$kK(TvRPXx9Uird3-Ld5%6O*lJrZXfG`m_S0z2UteP z7==PZllxdzxE928fOUZTKoP%wp`fV)khVVuO&?%6AeWz5O{B&hdT8bV%MLvUCHQHG z;t=bE;MsvF53x*8<{`*fBjSP#h`HFHABR{~qyDIDRe>N?6;7yX56cBn(Be>e%s3`wjIIhatEs*wDv+3m3OAGvN{AtUXb_Hbfipqk2%IyLI9>(vj#uG@ za0qa4CIdP|;GE$3kOLANoWH38sgf_S!gC-CG|mRD3pJr}9tboS#7T^!hEC(-Ob`QtzY9nB zI8vw-AE$?Cllv1fM=WapF08n=lR!ZP;BbWNp9nSdi2yVb~S2sKii0zy&v+J_xK7HaIKPK!!6VNiuu@^YU|b3p?%Y1UZu9PD2XhI3{>AWI>KIMI5$3)#SKy zh*w{rpWrvV2{NLU^4_Uo(49kX@K)zRnkD@RJc=r?%<@mtf@eE?Rh|< zR5*cuAL#{0kPkdNAT_TJG4x;i4kS(u?py#ep~hW6j#YF(4wW5@&=YDf6ZIi94bBdk zx7Pu&?RT(4i8Ns7_R&y34bB734T;i%d8q=W)8ecV11iuLTAbKPBbexL%q)azSXhwD zC9i6fWad1VIcYMaT1RGU$gxKg1!9xoO~Qy-2#IC+x%Y>1_k9afO&xrH8J2+PDbmF zAx=LG?D1G;7>x2?6;ngxj5x+W%{aMxJw`AlW7n{dLl&0)?=d;Kr!)ASFd|m)!14a? z1827e>Sg?E@}6A!#)bS>`FJo`73qI3Z3%HQ{rA$gOyJUTudq<>D=f|5mxdadz;vL5 chM2&5nwW(+nQ=yN4Jd#aCxc$t#DZD)e@Be_r2qf` delta 9180 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 p+