scrum-skills 0.3.4 → 0.3.6

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.
Files changed (33) hide show
  1. package/.agents/skills/scrum-planning/references/schema.md +3 -2
  2. package/.agents/skills/scrum-sprint/SKILL.md +1 -0
  3. package/README.md +3 -3
  4. package/assets/board/200.html +1 -1
  5. package/assets/board/404.html +1 -1
  6. package/assets/board/_nuxt/D5AHQ-N9.js +3 -0
  7. package/assets/board/_nuxt/D_ct-Stz.js +1 -1
  8. package/assets/board/_nuxt/{BU8vdZUs.js → Dh0tYNMD.js} +61 -50
  9. package/assets/board/_nuxt/NtgBvUDk.js +1 -0
  10. package/assets/board/_nuxt/builds/latest.json +1 -1
  11. package/assets/board/_nuxt/builds/meta/36a46dc2-c9fd-444c-a454-4487435c77b9.json +1 -0
  12. package/assets/board/_nuxt/{entry.BBv-sBnP.css → entry.Birf8F5Z.css} +1 -1
  13. package/assets/board/_nuxt/last-change._l3ydJ-o.css +1 -0
  14. package/assets/board/_nuxt/milestones.Bp6jmeAm.css +1 -0
  15. package/assets/board/burndown/index.html +1 -1
  16. package/assets/board/diagrams/index.html +1 -1
  17. package/assets/board/epics/index.html +1 -1
  18. package/assets/board/gantt/index.html +1 -1
  19. package/assets/board/index.html +1 -1
  20. package/assets/board/last-change/index.html +1 -1
  21. package/assets/board/milestones/index.html +1 -1
  22. package/assets/board/tests/index.html +1 -1
  23. package/bin/scrum-skills.mjs +0 -0
  24. package/docs/ai-assistant-guide.md +2 -1
  25. package/package.json +41 -42
  26. package/tools/ai.mjs +46 -2
  27. package/tools/serve.mjs +3 -1
  28. package/tools/validate.mjs +4 -2
  29. package/assets/board/_nuxt/Dmg78zOY.js +0 -3
  30. package/assets/board/_nuxt/Utb4TVOl.js +0 -1
  31. package/assets/board/_nuxt/builds/meta/08bebe14-0f1b-4d2a-8de4-e84e122d10e9.json +0 -1
  32. package/assets/board/_nuxt/last-change.1Su4GrCN.css +0 -1
  33. package/assets/board/_nuxt/milestones.U0xKCsEo.css +0 -1
@@ -0,0 +1 @@
1
+ import{a as e,i as t,o as n,r as ee,s as r}from"#entry";import{t as te}from"./DJM7u8P3.js";import{t as i}from"./CI0scS-N.js";import{At as a,K as o,S as s,U as c,Xt as l,Yt as u,b as d,d as f,f as p,i as m,lt as ne,m as h,p as g,qt as _,u as v,v as re,y}from"./BxuBMtk_.js";var b={class:`kpis`},ie={class:`v`},ae={class:`v`},oe={class:`v`},se={class:`v`},x={class:`v`},S={class:`card tl-wrap`},C={class:`card-hd tl-hd`},w={class:`h2`},T={class:`timeline`},E={key:0,class:`tl-today`},D={class:`tl-item`},O={class:`when`},k={class:`when-date mono`},A={class:`when-year`},j={class:`axis`},M={class:`node-top`},N={class:`tag tag-ghost`},P={key:0,class:`tag tag-neutral mono`},F={class:`node-title`},I={class:`criteria`},L={class:`nums`},R={class:`dim`},z={class:`mpct`},B={class:`mss`},ce={class:`st-id mono`},V={class:`st-title`},H={class:`st-state dim`},U={class:`st-pts dim`},W={key:0,class:`tl-today`},G=t(s({__name:`milestones`,setup(t){let{milestones:s,milestoneProgress:G,now:K,md:le,MS_LABEL:ue,MS_COLOR:de,KIND_LABEL:fe,KIND_ICON:pe,STATE_DOT:me,STATE_LABEL:he,diffDays:q}=r(),J=v(()=>[...s.value].sort((e,t)=>e.due<t.due?-1:+(e.due>t.due))),Y=e=>q(K,e),X=e=>{let t=G(e);return t.total?Math.round(t.done/t.total*100):0},Z=e=>e===`mvp`?`mint`:e===`release`?`lilac`:`ink`,ge=e=>({reached:`ok`,"at-risk":`risk`,planned:`plan`,missed:`miss`,cancelled:`off`})[e]??`plan`,_e=[`日`,`一`,`二`,`三`,`四`,`五`,`六`],ve=e=>`周${_e[new Date(`${e}T00:00:00Z`).getUTCDay()]}`,ye=e=>{let t=Y(e);return t>0?`还剩 ${t} 天`:t===0?`今天到期`:`已过 ${-t} 天`},Q=v(()=>{let e=J.value.findIndex(e=>e.due>=K);return e<0?J.value.length:e}),$=v(()=>({mvp:s.value.filter(e=>e.kind===`mvp`).length,release:s.value.filter(e=>e.kind===`release`).length,checkpoint:s.value.filter(e=>e.kind===`checkpoint`).length,risk:s.value.filter(e=>e.status===`at-risk`||e.status===`missed`).length,reached:s.value.filter(e=>e.status===`reached`).length}));return(t,r)=>{let v=ee,K=te,q=i;return c(),h(`div`,null,[f(`div`,b,[f(`div`,{class:_([`kpi`,(`cardToneClass`in t?t.cardToneClass:a(n))(0)])},[d(v,{tone:(`cardTone`in t?t.cardTone:a(e))(0),size:`sm`},null,8,[`tone`]),r[1]||=f(`p`,{class:`k`},`MVP 节点`,-1),f(`p`,ie,[y(l(a($).mvp),1),r[0]||=f(`small`,null,`个`,-1)])],2),f(`div`,{class:_([`kpi`,(`cardToneClass`in t?t.cardToneClass:a(n))(1)])},[d(v,{tone:(`cardTone`in t?t.cardTone:a(e))(1),size:`sm`},null,8,[`tone`]),r[3]||=f(`p`,{class:`k`},`发布节点`,-1),f(`p`,ae,[y(l(a($).release),1),r[2]||=f(`small`,null,`个`,-1)])],2),f(`div`,{class:_([`kpi`,(`cardToneClass`in t?t.cardToneClass:a(n))(2)])},[d(v,{tone:(`cardTone`in t?t.cardTone:a(e))(2),size:`sm`},null,8,[`tone`]),r[5]||=f(`p`,{class:`k`},`检查点`,-1),f(`p`,oe,[y(l(a($).checkpoint),1),r[4]||=f(`small`,null,`个`,-1)])],2),f(`div`,{class:_([`kpi`,(`cardToneClass`in t?t.cardToneClass:a(n))(3)])},[d(v,{tone:(`cardTone`in t?t.cardTone:a(e))(3),size:`sm`},null,8,[`tone`]),r[6]||=f(`p`,{class:`k`},`已达成`,-1),f(`p`,se,[y(l(a($).reached),1),f(`small`,null,`/ `+l(a(s).length),1)])],2),f(`div`,{class:_([`kpi`,(`cardToneClass`in t?t.cardToneClass:a(n))(4)])},[d(v,{tone:(`cardTone`in t?t.cardTone:a(e))(4),size:`sm`},null,8,[`tone`]),r[8]||=f(`p`,{class:`k`},`有风险 / 错过`,-1),f(`p`,x,[y(l(a($).risk),1),r[7]||=f(`small`,null,`个`,-1)])],2)]),f(`div`,S,[f(`div`,C,[f(`h2`,w,[d(K,{name:`i-lucide-git-commit-vertical`,class:`size-3.5`}),r[9]||=y(`时间线`,-1)]),r[10]||=re(`<span class="dim tip" data-v-9d6ec75b>按到期日从早到晚 · 节点达成口径是「挂的故事全部完成」</span><div class="legend" data-v-9d6ec75b><span class="lg" data-v-9d6ec75b><i class="sw mint" data-v-9d6ec75b></i>MVP</span><span class="lg" data-v-9d6ec75b><i class="sw lilac" data-v-9d6ec75b></i>发布</span><span class="lg" data-v-9d6ec75b><i class="sw white" data-v-9d6ec75b></i>检查点</span><i class="sep" data-v-9d6ec75b></i><span class="lg" data-v-9d6ec75b><i class="dot ok" data-v-9d6ec75b></i>已达成</span><span class="lg" data-v-9d6ec75b><i class="dot risk" data-v-9d6ec75b></i>有风险</span><span class="lg" data-v-9d6ec75b><i class="dot plan" data-v-9d6ec75b></i>计划中</span></div>`,2)]),f(`div`,T,[(c(!0),h(m,null,o(a(J),(e,t)=>(c(),h(m,{key:e.id},[t===a(Q)?(c(),h(`div`,E,[...r[11]||=[f(`span`,{class:`today-when`},`今天`,-1),f(`span`,{class:`today-axis`},[f(`i`)],-1),f(`span`,{class:`today-line`},null,-1)]])):g(``,!0),f(`article`,D,[f(`div`,O,[f(`p`,k,l(a(le)(e.due)),1),f(`p`,A,l(ve(e.due)),1)]),f(`div`,j,[f(`span`,{class:_([`dot-lg`,ge(e.status)])},[e.status===`reached`?(c(),p(K,{key:0,name:`i-lucide-check`,class:`size-2.5`})):e.status===`cancelled`?(c(),p(K,{key:1,name:`i-lucide-x`,class:`size-2.5`})):g(``,!0)],2)]),f(`div`,{class:_([`node`,`node-${Z(e.kind)}`])},[d(v,{tone:Z(e.kind),size:`xl`,min:3,max:5},null,8,[`tone`]),f(`div`,M,[f(`span`,N,l(e.id),1),f(`span`,{class:_([`tag`,`tag-${a(de)[e.status]}`])},l(a(ue)[e.status]),3),f(`span`,{class:_([`tag`,e.kind===`mvp`?`tag-mint`:e.kind===`release`?`tag-primary`:`tag-neutral`])},[d(K,{name:a(pe)[e.kind],class:`size-3`},null,8,[`name`]),y(l(a(fe)[e.kind]),1)],2),e.sprintId?(c(),h(`span`,P,l(e.sprintId),1)):g(``,!0),f(`span`,{class:_([`days`,{over:e.status!==`cancelled`&&Y(e.due)<0,soon:e.status!==`cancelled`&&Y(e.due)>=0&&Y(e.due)<=7}])},l(e.status===`cancelled`?`不再跟踪`:ye(e.due)),3)]),f(`h3`,F,l(e.title),1),f(`p`,I,l(e.criteria),1),f(`div`,L,[f(`span`,null,[f(`b`,null,l(a(G)(e).done)+`/`+l(a(G)(e).total),1),r[12]||=y(` 个故事`,-1)]),a(G)(e).cancelled?(c(),h(m,{key:0},[r[13]||=f(`span`,{class:`dim`},`·`,-1),f(`span`,R,l(a(G)(e).cancelled)+` 个已取消`,1)],64)):g(``,!0),r[14]||=f(`span`,{class:`dim`},`·`,-1),f(`span`,null,l(a(G)(e).points)+` 点`,1),f(`span`,z,l(X(e))+`%`,1)]),f(`div`,{class:_([`bar`,e.kind===`checkpoint`?``:Z(e.kind)])},[f(`i`,{style:u({width:X(e)+`%`})},null,4)],2),f(`ul`,B,[(c(!0),h(m,null,o(a(G)(e).list,e=>(c(),h(`li`,{key:e.id},[d(q,{to:`/story/${e.id}`,class:`srow`},{default:ne(()=>[f(`i`,{class:`sdot`,style:u({background:a(me)[e.status]})},null,4),f(`span`,ce,l(e.id),1),f(`span`,V,l(e.title),1),f(`span`,H,l(a(he)[e.status]),1),f(`span`,U,l(e.points),1)]),_:2},1032,[`to`])]))),128))])],2)])],64))),128)),a(Q)===a(J).length?(c(),h(`div`,W,[...r[15]||=[f(`span`,{class:`today-when`},`今天`,-1),f(`span`,{class:`today-axis`},[f(`i`)],-1),f(`span`,{class:`today-line`},null,-1)]])):g(``,!0)])])])}}}),[[`__scopeId`,`data-v-9d6ec75b`]]);export{G as default};
@@ -1 +1 @@
1
- {"id":"08bebe14-0f1b-4d2a-8de4-e84e122d10e9","timestamp":1793514373522}
1
+ {"id":"36a46dc2-c9fd-444c-a454-4487435c77b9","timestamp":1794057688952}
@@ -0,0 +1 @@
1
+ {"id":"36a46dc2-c9fd-444c-a454-4487435c77b9","timestamp":1794057688952,"prerendered":[]}