skills-manager-cli 2026.8.26 → 2026.9.5

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.
@@ -0,0 +1 @@
1
+ *,:before,:after{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb)}:before,:after{--un-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*,:before,:after,::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.log-overlay{z-index:450;background-color:color-mix(in srgb,var(--bg) 45%,transparent);position:fixed;inset:0}.log-panel{z-index:451;border-left-width:1px;border-color:var(--line);background-color:var(--bg);--un-shadow:-12px 0 32px var(--un-shadow-color,#0000001f);width:min(420px,92vw);box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);padding:20px 22px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.sheet-overlay{z-index:500;background-color:color-mix(in srgb,var(--bg) 55%,transparent);--un-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);position:fixed;inset:0}.sheet-place{z-index:501;--un-translate-x:-50%;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));position:fixed;top:8vh;left:50%}.agent-list{max-height:46vh;margin-top:6px;margin-bottom:6px;overflow-y:auto}.picker-error{color:var(--danger);margin-top:8px;margin-bottom:8px;font-size:13px}.picker-hint{color:var(--fg3);margin-top:8px;margin-bottom:8px;font-size:13px}.agent-heading{color:var(--fg3);letter-spacing:.08em;text-transform:uppercase;margin-top:12px;margin-bottom:6px;font-size:12px;font-weight:600}.confirm-skills{color:var(--fg3);margin-top:8px;font-size:13px}.existing-mark{color:var(--warn);margin-left:6px;font-size:12px;font-style:normal}.family{margin-bottom:4px}.field-input{border-bottom-width:1px;border-color:var(--line);outline-offset:2px;background-color:#0000;border-style:none;outline:2px solid #0000;width:100%;margin-bottom:10px;padding:7px 2px;font-size:14px}.picker-count{color:var(--fg3);margin-right:auto;font-size:13px}.scope-row{gap:18px;margin-bottom:10px;font-size:14px;display:flex}.sheet-foot{border-top-width:1px;border-color:var(--line2);align-items:center;gap:14px;margin-top:16px;padding-top:12px;display:flex}.sheet-head{align-items:baseline;gap:10px;min-width:0;margin-bottom:12px;display:flex}.sheet-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-right:auto;font-size:17px;font-weight:600;overflow:hidden}.agent-id{min-width:130px}.sheet{border-width:1px;border-color:var(--line);background-color:var(--bg);--un-shadow:0 18px 48px var(--un-shadow-color,#00000024);width:760px;max-width:100%;box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);border-radius:12px;padding:20px 22px 18px}.sheet-wide{flex-direction:column;width:min(92vw,1080px);max-width:100%;height:calc(92vh - 24px);display:flex}.agent-row{cursor:pointer;align-items:baseline;gap:10px;padding:5px 2px;font-size:13.5px;display:flex}.sheet-close{color:var(--fg3);flex-shrink:0;font-size:13px}.agent-row-invalid{cursor:default;color:var(--fg3)}.primary-btn:disabled{cursor:default;opacity:.45}.agent-label{text-overflow:ellipsis;white-space:nowrap;color:var(--fg2);overflow:hidden}.tab{color:var(--fg2);border-color:#0000;border-bottom-width:2px;padding-bottom:3px}.tab-on{border-color:var(--accent);color:var(--fg);font-weight:600}.primary-btn{background-color:var(--accent);--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity));border-radius:8px;padding:7px 16px;font-size:13.5px;font-weight:600}.quick-btn{color:var(--fg3);padding:0;font-size:12.5px}.confirm-body{color:var(--fg2);font-size:14px;line-height:1.6}.text-btn{color:var(--fg2);font-size:13.5px}.quick-btn:hover{color:var(--accent)}.sheet-close:hover,.text-btn:hover{color:var(--fg)}.field-input::placeholder{color:var(--fg3)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.pointer-events-auto,.group:hover .group-hover\:pointer-events-auto,.focus-within\:pointer-events-auto:focus-within{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.bottom-\[24px\]{bottom:24px}.bottom-\[84px\]{bottom:84px}.left-1\/2{left:50%}.right-0{right:0}.top-1\/2{top:50%}.z-\[400\]{z-index:400}.z-\[601\]{z-index:601}.z-\[650\]{z-index:650}.grid{display:grid}.mx-\[0\.25rem\]{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-\[8px\]{margin-top:8px;margin-bottom:8px}.mb-\[0\.5rem\]{margin-bottom:.5rem}.mb-\[12px\]{margin-bottom:12px}.mb-\[18px\]{margin-bottom:18px}.mb-\[2px\]{margin-bottom:2px}.mb-\[6px\]{margin-bottom:6px}.mb-\[8px\]{margin-bottom:8px}.ml-\[0\.5rem\]{margin-left:.5rem}.ml-\[12px\]{margin-left:12px}.ml-\[2px\]{margin-left:2px}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.mt-\[-4px\]{margin-top:-4px}.mt-\[10px\]{margin-top:10px}.mt-\[12px\]{margin-top:12px}.mt-\[2px\]{margin-top:2px}.mt-\[3px\]{margin-top:3px}.mt-\[6px\]{margin-top:6px}.inline{display:inline}.block{display:block}.hidden,.group:hover .group-hover\:hidden{display:none}.size-\[12px\]{width:12px;height:12px}.size-\[15px\]{width:15px;height:15px}.h2{height:.5rem}.max-h-\[240px\]{max-height:240px}.max-h-\[280px\]{max-height:280px}.max-h-\[300px\]{max-height:300px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[84vh\]{max-height:84vh}.max-w-\[22rem\]{max-width:22rem}.max-w-\[720px\]{max-width:720px}.max-w-\[min\(560px\,calc\(100vw-48px\)\)\]{max-width:min(560px,100vw - 48px)}.min-h-\[200px\]{min-height:200px}.min-h-\[300px\]{min-height:300px}.min-h-0{min-height:0}.min-w-\[120px\]{min-width:120px}.min-w-\[180px\]{min-width:180px}.min-w-0{min-width:0}.w-\[22px\]{width:22px}.w-\[240px\]{width:240px}.w-\[min\(22rem\,100\%\)\]{width:min(22rem,100%)}.w-\[var\(--reka-combobox-trigger-width\)\]{width:var(--reka-combobox-trigger-width)}.w-full{width:100%}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.-translate-x-1\/2{--un-translate-x:-50%;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.-translate-y-1\/2{--un-translate-y:-50%;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-default,.disabled\:cursor-default:disabled{cursor:default}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.items-baseline{align-items:baseline}.self-center{align-self:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-\[0\.5rem\]{gap:.5rem}.gap-\[0\.75rem\]{gap:.75rem}.gap-\[10px\]{gap:10px}.gap-\[12px\]{gap:12px}.gap-\[14px\]{gap:14px}.gap-\[16px\]{gap:16px}.gap-\[1rem\]{gap:1rem}.gap-\[8px\]{gap:8px}.gap-x-\[18px\]{column-gap:18px}.gap-y-\[4px\]{row-gap:4px}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.border{border-width:1px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-fg3{border-color:var(--fg3)}.border-line{border-color:var(--line)}.border-line2{border-color:var(--line2)}.data-\[state\=checked\]\:border-accent[data-state=checked],.focus\:border-accent:focus{border-color:var(--accent)}.border-t-transparent{border-top-color:#0000}.rounded-\[10px\]{border-radius:10px}.rounded-\[12px\]{border-radius:12px}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.rounded-\[7px\]{border-radius:7px}.rounded-\[8px\]{border-radius:8px}.rounded-full{border-radius:9999px}.border-none{border-style:none}.bg-bg{background-color:var(--bg)}.bg-danger{background-color:var(--danger)}.bg-fg{background-color:var(--fg)}.bg-line2,.data-\[highlighted\]\:bg-line2[data-highlighted]{background-color:var(--line2)}.bg-transparent{background-color:#0000}.data-\[state\=checked\]\:bg-accent[data-state=checked]{background-color:var(--accent)}.hover\:bg-fg3\/25:hover{background-color:var(--fg3)}.hover\:bg-line:hover{background-color:var(--line)}.hover\:bg-line2:hover{background-color:var(--line2)}.hover\:enabled\:bg-fg3\/25:enabled:hover{background-color:var(--fg3)}.p-\[12px\]{padding:12px}.p-\[1rem\]{padding:1rem}.p-\[6px\]{padding:6px}.p-0{padding:0}.px,.px-\[1rem\]{padding-left:1rem;padding-right:1rem}.px-\[0\.75rem\]{padding-left:.75rem;padding-right:.75rem}.px-\[0\.8rem\]{padding-left:.8rem;padding-right:.8rem}.px-\[10px\]{padding-left:10px;padding-right:10px}.px-\[12px\]{padding-left:12px;padding-right:12px}.px-\[14px\]{padding-left:14px;padding-right:14px}.px-\[16px\]{padding-left:16px;padding-right:16px}.px-\[20px\]{padding-left:20px;padding-right:20px}.px-\[24px\]{padding-left:24px;padding-right:24px}.px-\[2px\]{padding-left:2px;padding-right:2px}.px-\[4px\]{padding-left:4px;padding-right:4px}.py-\[0\.4rem\]{padding-top:.4rem;padding-bottom:.4rem}.py-\[0\.5rem\]{padding-top:.5rem;padding-bottom:.5rem}.py-\[0\.75rem\]{padding-top:.75rem;padding-bottom:.75rem}.py-\[10px\]{padding-top:10px;padding-bottom:10px}.py-\[13px\]{padding-top:13px;padding-bottom:13px}.py-\[1rem\]{padding-top:1rem;padding-bottom:1rem}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.py-\[3px\]{padding-top:3px;padding-bottom:3px}.py-\[48px\]{padding-top:48px;padding-bottom:48px}.py-\[4px\]{padding-top:4px;padding-bottom:4px}.py-\[5px\]{padding-top:5px;padding-bottom:5px}.py-\[6px\]{padding-top:6px;padding-bottom:6px}.py-\[7px\]{padding-top:7px;padding-bottom:7px}.py-\[8px\]{padding-top:8px;padding-bottom:8px}.pb-\[10px\]{padding-bottom:10px}.pb-\[16px\]{padding-bottom:16px}.pb-\[1rem\]{padding-bottom:1rem}.pb-\[28px\]{padding-bottom:28px}.pb-\[2px\]{padding-bottom:2px}.pb-\[80px\]{padding-bottom:80px}.pl-\[1\.2rem\]{padding-left:1.2rem}.pl-\[2px\]{padding-left:2px}.pr-\[2px\]{padding-right:2px}.pt-\[56px\]{padding-top:56px}.pt-\[6px\]{padding-top:6px}.pt-\[8px\]{padding-top:8px}.text-center{text-align:center}.text-left{text-align:left}.align-bottom{vertical-align:bottom}.text-\[0\.75rem\]{font-size:.75rem}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.875rem\]{font-size:.875rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14\.5px\]{font-size:14.5px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[22px\]{font-size:22px}.data-\[placeholder\]\:text-fg3[data-placeholder],.text-fg3{color:var(--fg3)}.data-\[state\=checked\]\:text-accent[data-state=checked],.text-accent{color:var(--accent)}.text-bg{color:var(--bg)}.text-danger{color:var(--danger)}.text-fg{color:var(--fg)}.text-fg2{color:var(--fg2)}.text-ok{color:var(--ok)}.text-warn{color:var(--warn)}.hover\:text-accent:hover{color:var(--accent)}.hover\:text-fg:hover{color:var(--fg)}.hover\:text-fg2:hover{color:var(--fg2)}.placeholder\:text-fg3::placeholder{color:var(--fg3)}.text-inherit{color:inherit}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-\[1\.65\]{line-height:1.65}.leading-none{line-height:1}.tracking-\[-0\.01em\]{letter-spacing:-.01em}.tracking-\[0\.08em\]{letter-spacing:.08em}.uppercase{text-transform:uppercase}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.underline,.hover\:underline:hover{text-decoration-line:underline}.no-underline{text-decoration:none}.opacity-0{opacity:0}.opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.opacity-60{opacity:.6}.focus-within\:opacity-100:focus-within{opacity:1}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.shadow-\[0_10px_28px_rgba\(0\,0\,0\,0\.14\)\]{--un-shadow:0 10px 28px var(--un-shadow-color,#00000024);box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.shadow-\[0_12px_32px_rgba\(0\,0\,0\,0\.25\)\]{--un-shadow:0 12px 32px var(--un-shadow-color,#00000040);box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.shadow-\[0_4px_12px_rgba\(0\,0\,0\,0\.15\)\]{--un-shadow:0 4px 12px var(--un-shadow-color,#00000026);box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.shadow-\[0_8px_24px_rgba\(0\,0\,0\,0\.12\)\]{--un-shadow:0 8px 24px var(--un-shadow-color,#0000001f);box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.shadow-\[0_8px_24px_rgba\(0\,0\,0\,0\.14\)\]{--un-shadow:0 8px 24px var(--un-shadow-color,#00000024);box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}:root{--bg:#fafafa;--fg:#18181b;--fg2:#71717a;--fg3:#a1a1aa;--line:#e4e4e7;--line2:#f4f4f5;--accent:#2563eb;--warn:#d97706;--danger:#dc2626;--ok:#16a34a;font-size:15px}:root[data-theme=dark]{--bg:#101013;--fg:#ededef;--fg2:#9d9da7;--fg3:#63636e;--line:#26262c;--line2:#1d1d22;--accent:#3b82f6;--warn:#f59e0b;--danger:#ef4444;--ok:#22c55e}html{scrollbar-gutter:stable}body{background:var(--bg);color:var(--fg);font-family:-apple-system,PingFang SC,Segoe UI,sans-serif}button{cursor:pointer}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace}.preview-md{max-width:78ch;color:var(--fg);padding:6px 2px 28px;font-size:14.5px;line-height:1.75}.preview-md h1,.preview-md h2,.preview-md h3,.preview-md h4{margin:1.5em 0 .5em;font-weight:600;line-height:1.3}.preview-md h1{font-size:1.5em}.preview-md h2{font-size:1.28em}.preview-md h3{font-size:1.12em}.preview-md h4{font-size:1em}.preview-md h1:first-child,.preview-md h2:first-child,.preview-md h3:first-child{margin-top:.2em}.preview-md p{margin:.6em 0}.preview-md a{color:var(--accent)}.preview-md code{background:var(--line2);border-radius:5px;padding:1.5px 5px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.88em}.preview-md pre{margin:.9em 0;overflow-x:auto}.preview-md pre code{background:0 0;padding:0;font-size:13px;line-height:1.65}.preview-md ul,.preview-md ol{margin:.6em 0;padding-left:1.5em}.preview-md ul{list-style:outside}.preview-md ol{list-style:decimal}.preview-md li{margin:.25em 0}.preview-md blockquote{border-left:3px solid var(--line);color:var(--fg2);margin:.9em 0;padding:.1em 0 .1em 14px}.preview-md hr{border:none;border-top:1px solid var(--line);margin:1.6em 0}.preview-md table{border-collapse:collapse;margin:.9em 0;font-size:.95em}.preview-md th,.preview-md td{border:1px solid var(--line);text-align:left;padding:5px 10px}.preview-md img{max-width:100%}.preview-md .shiki,.preview-md .shiki span,.preview-code .shiki,.preview-code .shiki span{color:var(--shiki-light);background-color:var(--shiki-light-bg)}[data-theme=dark] .preview-md .shiki,[data-theme=dark] .preview-md .shiki span,[data-theme=dark] .preview-code .shiki,[data-theme=dark] .preview-code .shiki span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}.preview-md .shiki,.preview-code .shiki{border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.65}
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>技能库 · Skills Manager</title>
7
- <script type="module" crossorigin src="/assets/index-B43GPIpA.js"></script>
8
- <link rel="stylesheet" crossorigin href="/assets/index-CzbkHV2A.css">
7
+ <script type="module" crossorigin src="/assets/index-BtkWyamF.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-DbZ7PRHg.css">
9
9
  </head>
10
10
  <body>
11
11
  <div id="app"></div>
package/docs/CLI.md CHANGED
@@ -31,8 +31,11 @@ skills-manager distribute --to user --skill my-skill --agent claude-code --agent
31
31
  skills-manager distribute --to project --project ./repo --skill my-skill --agent cursor --mode copy
32
32
  skills-manager undistribute --to user --skill my-skill --agent claude-code
33
33
  skills-manager redistribute --outdated
34
+ skills-manager redistribute --refresh --to project --project ./repo
35
+ skills-manager status
34
36
  skills-manager init --dry-run
35
37
  skills-manager init --agent claude-code --agent cursor
38
+ skills-manager init --prefer claude-code ~/.agents/skills hub
36
39
  skills-manager init --resolve my-skill=cursor --resolve other-skill=hub
37
40
  skills-manager backup list
38
41
  skills-manager backup restore my-skill
@@ -43,9 +46,19 @@ skills-manager rebuild-collections
43
46
 
44
47
  Distribute targets any catalog agent id (`--agent`, repeatable). Omitting `--agent` applies to the detected set on this machine. User scope defaults to `--mode symlink`, project scope to `--mode copy`; one mode per apply.
45
48
 
49
+ ### Stale copy targets and auto-refresh (ADR-0008)
50
+
51
+ `copy`-mode targets drift from the hub when skill content changes; symlink targets always proxy the live hub tree and never go stale. Staleness is fingerprint-only, and refreshing replaces the whole managed subtree (files local to a managed copy target are not preserved — the hub is the single authority).
52
+
53
+ - `add` / `update` **cascade**: after the hub write succeeds, every stale copy target of the touched skills is refreshed automatically; per-entry failures are recorded on the index entry and never block siblings.
54
+ - `skills-manager status` prints `outdated: N, errored: M`, lists refresh errors with their runtime paths, and points at the fix command.
55
+ - `skills-manager redistribute --refresh` (alias of `--outdated`) refreshes every stale copy target, optionally filtered by `--to` / `--project`; it prints `Refreshed N, errored M.`
56
+ - `add` / `update` print a one-line trailing reminder when other stale targets remain.
57
+ - The dashboard shows a stale badge with a count and a one-click refresh button per skill row.
58
+
46
59
  ### init (reverse import)
47
60
 
48
- `init` is the reverse of distribute: it scans the **global runtime directories of detected catalog agents** (`~/.claude/skills`, `~/.cursor/skills`, …), imports discovered skills into the hub, and turns each origin into a managed symlink back to `skills/<name>/` (the original is moved to `<home>/.backups/` first; backups expire after 30 days). Imported entries are stamped `imported: true` with no source — Skills Manager never guesses provenance. The CLI is non-interactive: clashing skills (same name in several runtimes, or in both hub and runtime) are skipped and reported with a suggested `--resolve <skill>=<agent-id|hub>` re-run; the winning copy enters the hub and **all** clashing origins symlink to it. `doctor` lists imported skills without a managed source; `edit <skill> --source-url <url>` supplies the upstream and enables normal update management. See [ADR-0006](adr/0006-init-reverse-import-symlinks.md).
61
+ `init` is the reverse of distribute: it scans the **global runtime directories of detected catalog agents** (`~/.claude/skills`, `~/.cursor/skills`, …), imports discovered skills into the hub, and turns each origin into a managed symlink back to `skills/<name>/` (the original is moved to `<home>/.backups/` first; backups expire after 30 days). Imported entries are stamped `imported: true` with no source — Skills Manager never guesses provenance. The CLI is non-interactive: clashing skills are skipped unless this run declares a **conflict priority** (`--prefer <runtime-dir|agent-id|hub...>`) or a per-skill `--resolve`. The first `--prefer` source that actually holds a copy wins; `--resolve` overrides it for that skill. Identical full trees are one entity, not a clash. Prefer items must be `hub` or a directory scanned this run. The dashboard import sheet is the same list. See [ADR-0006](adr/0006-init-reverse-import-symlinks.md) and [ADR-0009](adr/0009-init-conflict-priority.md).
49
62
 
50
63
  ## Agent catalog snapshot
51
64
 
package/package.json CHANGED
@@ -1,8 +1,16 @@
1
1
  {
2
2
  "name": "skills-manager-cli",
3
- "version": "2026.8.26",
3
+ "version": "2026.9.5",
4
4
  "packageManager": "pnpm@10.33.0",
5
5
  "description": "Local-first CLI and dashboard for managing agent, Claude, and Codex skills",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/shenysun/skills-manager.git"
9
+ },
10
+ "homepage": "https://github.com/shenysun/skills-manager#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/shenysun/skills-manager/issues"
13
+ },
6
14
  "scripts": {
7
15
  "skills-manager": "tsx src/cli.ts",
8
16
  "build": "pnpm run clean && tsc -p tsconfig.json && node scripts/copy-catalog-snapshot.mjs && vite build --config dashboard-web/vite.config.ts",
@@ -15,9 +23,19 @@
15
23
  "catalog:extract": "tsx scripts/extract-agent-catalog.ts",
16
24
  "release": "node scripts/release.mjs"
17
25
  },
18
- "keywords": [],
19
- "author": "",
20
- "license": "ISC",
26
+ "keywords": [
27
+ "skills",
28
+ "agent",
29
+ "agents",
30
+ "claude",
31
+ "claude-code",
32
+ "codex",
33
+ "cursor",
34
+ "cli",
35
+ "dashboard"
36
+ ],
37
+ "author": "shenysun <shenysun@163.com>",
38
+ "license": "MIT",
21
39
  "type": "module",
22
40
  "dependencies": {
23
41
  "@fastify/static": "^10.1.2",
@@ -33,9 +51,12 @@
33
51
  "devDependencies": {
34
52
  "@types/markdown-it": "^14.2.0",
35
53
  "@types/node": "^26.1.2",
54
+ "@unocss/reset": "^66.10.0",
36
55
  "@vitejs/plugin-vue": "^6.0.8",
56
+ "reka-ui": "^2.10.4",
37
57
  "tsx": "^4.23.7",
38
58
  "typescript": "^7.0.2",
59
+ "unocss": "^66.10.0",
39
60
  "vite": "^8.2.0",
40
61
  "vitest": "^4.1.11"
41
62
  },