From fb5f1c29bfa5cca64a8a7d29868cfb3b26f57b37 Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 14 Jul 2026 10:56:52 +0000 Subject: [PATCH] Make .SchLib parameter updation first-class (schlib_write.py): standalone trigger + workflow note --- SKILL.md | 19 ++++++++++++++----- assets/CHANGELOG.xlsx | Bin 5530 -> 5533 bytes 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/SKILL.md b/SKILL.md index 5159e39..1d3f5bd 100644 --- a/SKILL.md +++ b/SKILL.md @@ -11,11 +11,15 @@ description: >- Library/Footprint columns, assembles a part folder (xlsx, datasheet, symbol, footprint) and pushes it to the library repo under its Class. Can also UPDATE a part already in the library (revise its values, symbol, footprint, or datasheet) instead of hard-stopping on a duplicate. - Every Description it writes follows Vecmocon's strict Altium Description Format. Use WHENEVER - the user uploads a component datasheet, builds a library entry, adds a parameter to a type - template, updates/revises/corrects an existing part, or pushes a part to Gitea. ALWAYS trigger - on "\datasheet", "\library", or "\library-manager", or any component-library / - datasheet-extraction / library-update task. + Can also WRITE Vecmocon's mandatory SOP parameters directly into an Altium symbol (.SchLib) + file - filling Value, Manufacturer, Manufacturer Part, Process, Operating Temperature, + Tolerance, RoHS, Datasheet, etc. and removing the Ultra-Librarian default params - via a + pure-Python OLE rewrite. Every Description it writes follows Vecmocon's strict Altium + Description Format. Use WHENEVER the user uploads a component datasheet, builds a library + entry, adds a parameter to a type template, updates/revises/corrects an existing part, wants + to fill/write/update parameters in a .SchLib symbol file, or pushes a part to Gitea. ALWAYS + trigger on "\datasheet", "\library", "\library-manager", or "\schlib", or any + component-library / datasheet-extraction / library-update / schlib-parameter task. --- # Library Manager @@ -320,6 +324,11 @@ Temperature`, `ROHS`, `Datasheet`, `Process`, `Vecmocon Part Code`, and the two fields — with the **Comment** set to the MPN. The skill can stamp these onto the symbol from the datasheet. +This runs **as its own task too**, not only inside new-part creation: whenever the user hands +over one or more `.SchLib` files and wants their parameters filled/updated (e.g. "\schlib", "add +these parameters to this symbol", "update the schlib"), read the datasheet/specs for each part, +build its `params.json`, and run `scripts/schlib_write.py` per file — same steps as below. + The skill writes these **directly into the `.SchLib` in pure Python** with `scripts/schlib_write.py` (it rebuilds the OLE around the enlarged `Data` stream, preserving every other byte, and strips the Ultra-Librarian `Manufacturer_Name` / `Manufacturer_Part_Number` diff --git a/assets/CHANGELOG.xlsx b/assets/CHANGELOG.xlsx index 888a6a81821450b3e75acb57bc6fa676dafdbd3d..b79d8baae33ba0da012a08c86fcddb1fe8b1473d 100644 GIT binary patch delta 1626 zcmY+E2Tap>6vtbT4mubeNSP-xi&XItL1AX>C;Ir9g|QsO%xt+eK@=&MZ(g0|_Hi%`Jd)H74L!*kK%UJb6 z{dQ@Sz9J>(R!Zq%PZ!osFt1ec)>!@Ca+s~Z@g~R@Gtr!O~{&Dv;OjUuer#hW@@Bvu9_A|-Zp_v5wMiP zkQD*rjik<*fyL}+x}>S3(?N1Wc=8kHqXX4PN^I6mUUgA;yEp2h%v8CQ-%SLnIdUH% zu>%fk@J&y)NKN4_fNdZ!sV&Ti!l!^0%*@zZSG%B3h7SYth9oh>o zrm))=5X+<4%>#2i<7zVnFU(_K0jbT z+Js&=6~`l?L|dnYzwEkv|4Bi0B=C@`ZXY*i%$&Y=nsJs5Pz9fR2M3{f{7Mf~EmzaitO9u4_I@>OEe*|3^1Oe8&g> zB<-O5)gl2UMN2jxa)2y5T*NE@w{yYYikLje0Z&<$K9k2ugP7&I?tgNHbnD?!7k!-_ zk@ov2^J5U*wY%>|nD9sl{eyQT$ zv>&gF9o7*H)GdUKoqee>uekPStX!a9z$z-U*;pq65p{iUhCy8^BjhHwq0RPAVLs*j zy)h!>m9lZ}Ih4pSj}K< z^x|r}9dQ{}hiS9AwO6w64>)VA&?K$GUThRlu*e$3cI|!#=u9*wI=SEIs7#%YP%w8P zP0VQ9OmJ(200Sr>R>~eR4Mci<&{#-5qL*qpo>PXpdZih^G zSL3}~7yAjLNG<+)Nzl6e!VS2cMMOZ)7d|~THoTK~97A1df|i7IHGRfYNWnqOHHzU( z!0>9~+1*wvh|P1CUb~1KS9UdFO$G!aDFFh+0Ry()MX!UnMLs>UZCuB3AZ)T`;-bSN z@r?)OzQf+m&$Qxmn~i(`5gX7)rsDaGU3r+S(X^+oEicYjb~}*ChjOgRfDn0#v2@0$ z&ohA_-?lhAuI|$lUvGg9FMOMaI;)=+tl3hZo#0z-RMP#Fo>xNWU#k}~=50IFoDh35 zS3F#0O8;#3n(wrFQ4W-kCJI1fzi7)LnrznXn4r_x78_};8rwdMNe#Q4;i^^x{ufD_M~yLw%cu(5ua)n z>pV3>ug6j9Prean?Qut&X!xb`zZ0wyx!*#4(y|{{!ClwiFB4l%o_-5-qwbuUw@en) zI0=$C?w0ICv%MO@*(qKzVL37L02*DXsM5Ho@?T$pZuGc}Bur`)0>F|E=qQay5vJ_? zHy*=S{hPeNeas%IrURo6o&-dgZCab@b4V5h+KP}oNnmdlGmZ$5u=+m#-yH~q+7w7S z6I?8rilUN2!+xfo4>gIpNcC_5%V1?UlV3!>ce_fxMk2*XRxi>1Q%rCxP>Ll;|0Bez hgP#KvSWPLwaq3_KpocS*!chrq05qH)#0evv{0q^$*+KvS delta 1667 zcmY*a3pmqj82``O*v6=B)g+SSR-v_ssE*usL~}^ZMnw*yC6wFdOp(R#$Bqs)xx6m2S)8%~6^L_90e&6r;-uL^x@ALcej4m4~yE;QxU;zM7 z0z5s^l?4b-k5S4sM|Svh`YTO_z@^?q`2r2r-(zvoexDl`m4tC{ASuwz{pnOhW z9#lQn$;X=rlvr#DYzK;7zR1qA z@D07i1*F}m{@elub&aK$B*$SAEaj$?TX)@oa^8IFqjIx|AmjS8L_AGzXfAQw(RJt8 zz_z|M-zb5~IjNX}?13vSv4XxRH3O}bh+Ax!?#O>F!q=%EnQq^tcs4v(9P#w^ZOJag zwV=G`pHMUX`Oms#uLstR6xR{Jd?iPR(BO*75bfMc*lzx+Vb#j#<|qzzdp662ge>&6 zLT`(zzY$+ytP+ABZZ0yV=iDr=2?M3U8vEmATbRS#3Kmw zpov`?!EK>ULTutd+@KrEA>-t|FMvTYbCJyVf^H~-2r+ywvI9%qwM5h7A@_01wX0xy zwq;=+F)ECevEVdB=OoPD0aFPzKkdW3Pl4O?OlG z7s`D1jHgRR-v(O9OeN^3q}Ve&1;TBU1$eV<_R4Bl%_9xxOy5Hc;(lbGr}oo>|5V;} zmf@hjh}Eul;kWR}s?+^#r4Hl-(acA!*^j);FVr2R7z3A1tFGp{xtUPK*;xk6zh{r| z%W%e?aHL5&wC-m@kLfw{AN7ig29K>sHR9&>u_U>gyiO|F_wdViglNw|8ZSs{j99A zEm%dK-H6w7Wl3^&AkiFYHlzBsSJnD$hZTkK@DoCeoEP~PbAKE4oc zw=eL?x)cs6LaoHcgHjSn3Pw+t*)*rNpOI$2QXfUB4b}ZhW+%Sj-MWWe{aNciy~Cqa zhwCK}7@dd?NjZIiLyZ#?;!2|G6SOs|O@^m?YVCPdAF{3^?nn1SJ&8g6r`VNi?h*J4 zm6=l}^o54M@cHwwZ|yGc_E8GY5*s_K000-&Kt5`(e%9u2@;=;DZFHn)K*z58%m@C^ zN!zlC3zyBjdp(^hudx1nW_TDJWr6z2oYh4P(*jIxf7)GAOO@Y4u`PvSPqX$0Ta=G5 zL`Mxf4koH2MN{Kqjl-{5jppd^t4#$e$Mn(yG+P?;&!^CEuY%fZUB$K3eaGJOq6!96 ziec-TWAsbr4^8$P%mr$CcRF@X)Zh6&9gM{%8g6JIySTQ9Wf8C#Q+uxA<3@>X-7o2a85=80mDbkZgdYTv`+L7I zMH}Lrq$AOdxS&R_hKbyr2U1t8r>55~wpy@nFN7UV%fC^LAkDYUShjf4nn1Bi=Fv%u z6rKQIb*Y4-o5v>ZS|5;~N{-dfk97f8q93Xa)K97Y$ST-@9#D`=NxiBsL~g;&E8i`- zs8vqOt|w;qci9DVF*~)E3Xwy})lq{3K&~DDVB`Y*bub}A;5cUEGG