f20bc770f5
- skills/gitea-deploy/: new skill for Gitea deployment automation - tools/: shared utility scripts - skills/sdlc/SKILL.md: add Foreground Service Rule for long-running processes (background start + readiness polling pattern)
1 line
12 KiB
XML
1 line
12 KiB
XML
<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="679px" preserveAspectRatio="none" style="width:895px;height:679px;background:#FAFAFA;" version="1.1" viewBox="0 0 895 679" width="895px" zoomAndPan="magnify"><defs/><g><rect fill="#FAFAFA" height="679" style="stroke:none;stroke-width:1.0;" width="895" x="0" y="0"/><!--cluster gitea-deploy Skill--><g id="cluster_gitea-deploy Skill"><path d="M157.5,144.5 L292.5,144.5 A3.75,3.75 0 0 1 295,147 L302,166.7969 L458.5,166.7969 A2.5,2.5 0 0 1 461,169.2969 L461,246 A2.5,2.5 0 0 1 458.5,248.5 L157.5,248.5 A2.5,2.5 0 0 1 155,246 L155,147 A2.5,2.5 0 0 1 157.5,144.5 " fill="none" style="stroke:#000000;stroke-width:1.5;"/><line style="stroke:#000000;stroke-width:1.5;" x1="155" x2="302" y1="166.7969" y2="166.7969"/><text fill="#000000" font-family="Arial" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="134" x="159" y="159.4951">gitea-deploy Skill</text></g><!--cluster Local Machine--><g id="cluster_Local Machine"><path d="M387.5,297.5 L499.5,297.5 A3.75,3.75 0 0 1 502,300 L509,319.7969 L653.5,319.7969 A2.5,2.5 0 0 1 656,322.2969 L656,399 A2.5,2.5 0 0 1 653.5,401.5 L387.5,401.5 A2.5,2.5 0 0 1 385,399 L385,300 A2.5,2.5 0 0 1 387.5,297.5 " fill="none" style="stroke:#000000;stroke-width:1.5;"/><line style="stroke:#000000;stroke-width:1.5;" x1="385" x2="509" y1="319.7969" y2="319.7969"/><text fill="#000000" font-family="Arial" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="111" x="389" y="312.4951">Local Machine</text></g><!--cluster VPS--><g id="cluster_VPS"><path d="M8.5,306 L40.5,306 A3.75,3.75 0 0 1 43,308.5 L50,328.2969 L358.5,328.2969 A2.5,2.5 0 0 1 361,330.7969 L361,670 A2.5,2.5 0 0 1 358.5,672.5 L8.5,672.5 A2.5,2.5 0 0 1 6,670 L6,308.5 A2.5,2.5 0 0 1 8.5,306 " fill="none" style="stroke:#000000;stroke-width:1.5;"/><line style="stroke:#000000;stroke-width:1.5;" x1="6" x2="50" y1="328.2969" y2="328.2969"/><text fill="#000000" font-family="Arial" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="31" x="10" y="320.9951">VPS</text></g><!--entity SKILL--><g id="elem_SKILL"><rect fill="#F1F1F1" height="52.5938" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="111" x="334.5" y="179.5"/><text fill="#000000" font-family="Arial" font-size="14" lengthAdjust="spacing" textLength="61" x="344.5" y="202.4951">SKILL.md</text><text fill="#000000" font-family="Arial" font-size="14" lengthAdjust="spacing" textLength="91" x="344.5" y="218.792">(instructions)</text></g><!--entity EVALS--><g id="elem_EVALS"><rect fill="#F1F1F1" height="36.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="128" x="171" y="188"/><text fill="#000000" font-family="Arial" font-size="14" lengthAdjust="spacing" textLength="108" x="181" y="210.9951">evals/evals.json</text></g><!--entity REPO--><g id="elem_REPO"><rect fill="#F1F1F1" height="52.5938" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="78" x="401" y="332.5"/><text fill="#000000" font-family="Arial" font-size="14" lengthAdjust="spacing" textLength="53" x="411" y="355.4951">git repo</text><text fill="#000000" font-family="Arial" font-size="14" lengthAdjust="spacing" textLength="58" x="411" y="371.792">(project)</text></g><!--entity KEY--><g id="elem_KEY"><rect fill="#F1F1F1" height="36.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="126" x="514" y="341"/><text fill="#000000" font-family="Arial" font-size="14" lengthAdjust="spacing" textLength="106" x="524" y="363.9951">SSH private key</text></g><!--entity DOCKER--><g id="elem_DOCKER"><rect fill="#F1F1F1" height="36.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="122" x="22" y="341"/><text fill="#000000" font-family="Arial" font-size="14" lengthAdjust="spacing" textLength="102" x="32" y="363.9951">Docker Engine</text></g><!--entity COMPOSE--><g id="elem_COMPOSE"><rect fill="#F1F1F1" height="36.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="165" x="179.5" y="341"/><text fill="#000000" font-family="Arial" font-size="14" lengthAdjust="spacing" textLength="145" x="189.5" y="363.9951">docker-compose.yml</text></g><!--entity DATA--><g id="elem_DATA"><path d="M208,604.5 C208,594.5 260,594.5 260,594.5 C260,594.5 312,594.5 312,604.5 L312,646.0938 C312,656.0938 260,656.0938 260,656.0938 C260,656.0938 208,656.0938 208,646.0938 L208,604.5 " fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><path d="M208,604.5 C208,614.5 260,614.5 260,614.5 C260,614.5 312,614.5 312,604.5 " fill="none" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="Arial" font-size="14" lengthAdjust="spacing" textLength="72" x="218" y="631.4951">Gitea Data</text><text fill="#000000" font-family="Arial" font-size="14" lengthAdjust="spacing" textLength="84" x="218" y="647.792">(/gitea/data)</text></g><!--entity GITEA--><g id="elem_GITEA"><rect fill="#F1F1F1" height="52.5938" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="127" x="206.5" y="464.5"/><text fill="#000000" font-family="Arial" font-size="14" lengthAdjust="spacing" textLength="107" x="216.5" y="487.4951">Gitea Container</text><text fill="#000000" font-family="Arial" font-size="14" lengthAdjust="spacing" textLength="82" x="216.5" y="503.792">(:3000, :22)</text></g><!--entity Developer--><g id="elem_Developer"><ellipse cx="390" cy="14" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><path d="M390,22 L390,49 M377,30 L403,30 M390,49 L377,64 M390,49 L403,64 " fill="none" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="Arial" font-size="14" lengthAdjust="spacing" textLength="71" x="354.5" y="78.4951">Developer</text></g><!--link Developer to SKILL--><g id="link_Developer_SKILL"><path d="M354.42,69.02 C336.49,84.65 320.07,106.12 328,128.5 C334.79,147.68 344.5489,161.1893 357.4489,174.8393 " fill="none" id="Developer-to-SKILL" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="361.57,179.2,358.2954,169.9114,358.1357,175.566,352.4811,175.4063,361.57,179.2" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="13" lengthAdjust="spacing" textLength="76" x="329" y="124.5669">triggers skill</text></g><!--link SKILL to Developer--><g id="link_SKILL_Developer"><path d="M400.53,179.37 C406.97,160.67 413.38,134.66 410,111.5 C408.56,101.65 407.6849,96.9956 404.8549,87.3856 " fill="none" id="SKILL-to-Developer" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="403.16,81.63,401.8653,91.3934,404.5725,86.4264,409.5395,89.1335,403.16,81.63" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="13" lengthAdjust="spacing" textLength="82" x="411" y="124.5669">reports URLs</text></g><!--link SKILL to KEY--><g id="link_SKILL_KEY"><path d="M445.78,217.46 C476.32,225.71 512.94,240.05 538,264.5 C559.53,285.5 568.4579,314.3 572.8379,335 " fill="none" id="SKILL-to-KEY" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="574.08,340.87,576.1303,331.2369,573.0449,335.9783,568.3035,332.893,574.08,340.87" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="13" lengthAdjust="spacing" textLength="116" x="551" y="277.5669">uses for SSH auth</text></g><!--link SKILL to DOCKER--><g id="link_SKILL_DOCKER"><path d="M360.4,232.53 C347.85,241.83 332.55,251.32 317,256.5 C281.12,268.45 180.03,246.08 147,264.5 C116.94,281.27 100.3196,313.2377 91.3896,335.3177 " fill="none" id="SKILL-to-DOCKER" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="89.14,340.88,96.2226,334.0363,91.0147,336.2447,88.8062,331.0368,89.14,340.88" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="13" lengthAdjust="spacing" textLength="108" x="148" y="277.5669">installs if missing</text></g><!--link SKILL to COMPOSE--><g id="link_SKILL_COMPOSE"><path d="M358.19,232.67 C345.94,241.42 331.42,250.5 317,256.5 C299.86,263.63 288.84,251.09 276,264.5 C256.48,284.9 256.1968,314.1279 258.5568,335.0279 " fill="none" id="SKILL-to-COMPOSE" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="259.23,340.99,262.1949,331.598,258.669,336.0216,254.2454,332.4957,259.23,340.99" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="13" lengthAdjust="spacing" textLength="97" x="277" y="277.5669">uploads & runs</text></g><!--link COMPOSE to GITEA--><g id="link_COMPOSE_GITEA"><path d="M263.06,377.26 C264.43,399.5 266.4506,432.3714 268.0406,458.1514 " fill="none" id="COMPOSE-to-GITEA" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="268.41,464.14,271.8484,454.9108,268.1022,459.1495,263.8636,455.4033,268.41,464.14" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="13" lengthAdjust="spacing" textLength="101" x="267" y="430.5669">starts container</text></g><!--link GITEA to DATA--><g id="link_GITEA_DATA"><path d="M268.07,517.55 C266.41,539.51 264.4717,565.227 262.7217,588.407 " fill="none" id="GITEA-to-DATA" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="262.27,594.39,266.9362,585.7167,262.6464,589.4042,258.9589,585.1144,262.27,594.39" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="13" lengthAdjust="spacing" textLength="83" x="266" y="560.5669">persists data</text></g><!--link SKILL to GITEA--><g id="link_SKILL_GITEA"><path d="M445.52,210.05 C520.33,215.45 647.44,229.63 676,264.5 C702.71,297.12 831.72,224.65 656,409.5 C612.55,455.21 437.6674,476.2995 339.7074,484.8295 " fill="none" id="SKILL-to-GITEA" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="333.73,485.35,343.0431,488.5542,338.7112,484.9163,342.3491,480.5843,333.73,485.35" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="13" lengthAdjust="spacing" textLength="140" x="747" y="363.5669">initializes via REST API</text></g><!--link SKILL to REPO--><g id="link_SKILL_REPO"><path d="M384.75,232.73 C382.8,247.35 382.1,265.81 387,281.5 C392.83,300.16 401.2271,313.5966 412.4271,327.5066 " fill="none" id="SKILL-to-REPO" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="416.19,332.18,413.6612,322.6613,413.0542,328.2855,407.4301,327.6785,416.19,332.18" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="13" lengthAdjust="spacing" textLength="145" x="388" y="277.5669">git remote add + push</text></g><!--link REPO to GITEA--><g id="link_REPO_GITEA"><path d="M421.15,385.56 C408.89,401.01 391.91,420.37 374,434.5 C359.7,445.78 348.0783,453.1332 332.0783,461.5632 " fill="none" id="REPO-to-GITEA" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="326.77,464.36,336.597,463.7037,331.1936,462.0293,332.8679,456.6259,326.77,464.36" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="13" lengthAdjust="spacing" textLength="93" x="393" y="430.5669">git push (SSH)</text></g><!--SRC=[PP9TQzim58RlzIiE6OoMBXzqTxaOcDZjGj8bn5bXi9jJMt7Ko9BHaGFPs7xxZkGsTLOCnjRxwBpdYmxADEYmXiBMZJNI-DoVj0Gd2u-cqbBG6Idb3bljxwpntx2Ma3Y5kgS_ON6ed6rDERFQElXmbuH7Y8O5h2GCAkKb3alPQ7k2_A2q7i1l0M_cCCWNy-LoL9S_pPKov5rRU6KDNGy02Q9uoSiZQXh7z-YPh8bSzfWiS_6dvxoq1Mfum6AlZ7ndodbnnOrbqyRPPwwzyzjawzL_wULVeN7gY5x2GPuYjSX-N7WzhlDt3gaj3j91PghepxVIrMoHRIwfCbB3U49oTAfrH6UhX_KgpvWjqUCJ4flSXrP2ol-SzDznxEmuo5tcQR9DBcDt5sOyFEGK7D-QVfvC9fzWUdlRtRcVRxCaL8A5v_6byYYrRQGJulm9m-6NRWem1UzKLKb7G66IeZiE03U4vPOamOu3XPvXw_SzeYkUeJ1Zr9f0xQ1MHCfKFUoby12CLmPBWe_WMaFYLGXGJ9iH3kGySSal5OfEY7RS3IQu05B4JEXJp-OrWZBAyqghNvpuKI6FFzz2ifxtqB0HJ7OBKrlU0YnBk86cfRs8OZzWm882Lzo3wtxzvuPEu-A5nBzlblGF]--></g></svg> |