CLI é a superfície. Kanban drenado, Cycle Time intacto, MCP fora.
Métricas drenadas do git log no working tree. Cada commit feat: conta como card entregue. Cycle Time = minutos entre feat commits dentro de uma sessão ativa. Backlog v0.10.0 zerado: 9 done, 6 dropped (MCP-scope), 2 deferred (smoke + baseline).
17 must-ship → 9 done · 6 dropped · 2 deferred. WIP = 0. Versão sai com escopo cristalizado — em vez de carregar 8 items MCP-only que não tinham consumidor, deletamos a superfície e mergeamos o que sobrou.
27 intervalos feat-to-feat. Cauda direita pesada de gaps inter-burst (~2d, ~4d), agora extendida pelo gap May 22 → May 27 (5 dias). Em sessão ativa, p50 fica abaixo de 4 min — Gabriel ship rapid-fire, depois para frio.
Tempo entre primeiro feat: commit de uma versão e o tag correspondente. Cada barra = uma versão. v0.10.0 = 0 commits intervindo (tag aplicada no próprio cut commit) → LT efetivo zero, mas reflete decisão de cut, não trabalho típico.
10 000 futuros simulados. Mesma cadência observada: P(active day) = 3/9 ≈ 0.33 (atualizado pelo gap), throughput por active day amostrado de [3, 5, 19]. Backlog: 7 nice-to-have items (cleanup perf bug, N-snapshot growth, pattern classifier, path-based exclusion, .diskyignore, schedule install, disky watch).
3 active days no histórico. Distribuição extremamente bursty — quando ativo, ship muito; quando idle, zero. Padrão saudável pra projeto solo de fim de semana; questão pra v1.0.0 será aumentar P(active) ou cadência por sessão.
| Active day | All commits | Feats |
|---|---|---|
| 2026-05-15 (v0.1.0) | 6 | 3 |
| 2026-05-17 (v0.6→v0.7) | 12 | 5 |
| 2026-05-22 (v0.7→v0.9) | 35 | 19 |
| 2026-05-27 (v0.10.0) | 2 | 1* |
*v0.10.0 commit conta como feat (BREAKING — remoção de surface). Outro commit = docs.
Sequência S→M→L, value-first. Grupo A = receita rust-vs-giants (build size). Grupo B = skill v2 (UX agentic). Grupo C = nice-to-have da punch-list. Receitas externas (não-rust) vêm antes — ROI grande, custo baixo.
| # | Item | Grupo | Est feats | Est days* |
|---|---|---|---|---|
| 1 | Receita rust-vs-giants — sccache + CARGO_HOME global no CONTRIBUTING.md | build | 1 | 0.2 |
| 2 | Skill /disky v2 — fluxo triage → propose → confirm → apply via AskUserQuestion | skill | 2 | 0.8 |
| 3 | metrics/baseline.json reseed em máquina limpa | infra | 1 | 0.2 |
| 4 | Cleanup perf bug (79–250s → <1s) — materialized view ou column-store hint | perf | 1 | 0.6 |
| 5 | .diskyignore loader — extends ALWAYS_SKIP_SUBSTRINGS runtime | quality | 1 | 0.3 |
| 6 | N-snapshot growth — OLS sobre N snapshots, não só 2 | query | 1 | 0.5 |
| 7 | Pattern classifier (log-shaped / burst / stable / declining) | query | 1 | 0.5 |
* one active day per unit. Calendar days multiply by ~3 dado P(active)=0.33.
Durante o grill paralelizamos notebooklm source add pra ver se valia ingerir 204 URLs do spec MCP. Achado vira patch pro bili knowledge new.
| Conc | n | Wall | Rate | Falhas | Speedup |
|---|---|---|---|---|---|
| 1 (seq) | — | ~3-4s/url | 0.28/s | 0 | 1.0× |
| 5 | 10 | 14.6s | 0.69/s | 0 | 2.5× |
| 10 | 20 | 17.2s | 1.16/s | 0 | 4.1× |
| 20 | 40 | 23.1s | 1.73/s | 0 | 6.2× |
asyncio.Semaphore(10) no bili knowledge new. 204 URLs vai de ~13min → ~3min. Zero rate-limit até P=20. Sweet spot P=10.Notebook MCP criado: 0e703189-34a8-42f6-88fe-acb2bada1852 · 236 sources ready · não usado nesta cut (defer earn-back).
git push origin main v0.10.0 — sua decisão (não autônomo, afeta GitHub)~/.claude-pessoal/.claude.json + ~/.claude-mukutu/.claude.json — remover entry mcpServers.diskycargo install --path . --force — reinstala binário sem disky-mcp mortotarget/ por projeto