Documentación · Historia en git

km knowledge

Análisis de propiedad del código

Analiza los patrones de propiedad del código con git blame (mapas de conocimiento). Se basa en el método de Adam Thornhill (“Your Code as a Crime Scene”, capítulos 8 y 9).

km knowledge [path]

Identifica el riesgo de bus factor y la concentración del conocimiento por archivo. Los archivos generados (archivos lock, JS minificado, etc.) se excluyen automáticamente.

Niveles de riesgo

RiesgoCondiciónSignificado
CRITICAL1 persona es dueña de más del 80%Alto riesgo de bus factor
HIGH1 persona es dueña del 60-80%Concentración significativa
MEDIUM2-3 personas son dueñas de más del 80% entre todasConcentración moderada
LOWBien distribuidoPropiedad sana

Detección de pérdida de conocimiento

Usa --since para definir qué es “actividad reciente”. Si el dueño principal de un archivo no tiene commits en ese período, el archivo se marca con riesgo de pérdida de conocimiento. Usa --risk-only para mostrar solo esos archivos.

Opciones:

FlagDescripción
--format {table,json,short,terse}Formato de salida (por defecto: table)
--include-testsIncluye los archivos de test en el análisis (excluidos por defecto)
--top NMuestra solo los N primeros archivos (por defecto: 20)
--sort-by METRICOrdena por concentration, diffusion o risk (por defecto: concentration)
--since DURATIONDefine la ventana de actividad reciente para la pérdida de conocimiento (p. ej. 6m, 1y, 30d)
--risk-onlyMuestra solo los archivos con riesgo de pérdida de conocimiento
--summaryAgrupa por autor: archivos de los que es dueño, líneas, lenguajes, peor riesgo
--bus-factorMuestra el bus factor del proyecto (el mínimo de colaboradores que cubren el 80% del código)
--author NAMEMuestra solo los archivos cuyo dueño es este autor (busca la subcadena sin distinguir mayúsculas)

Ejemplo de salida:

Knowledge Map — Code Ownership
──────────────────────────────────────────────────────────────────────────────
 File                       Language  Lines  Owner         Own%  Contrib  Risk
──────────────────────────────────────────────────────────────────────────────
 src/loc/counter.rs             Rust    731  E. Diaz        94%        2  CRITICAL
 src/main.rs                    Rust    241  E. Diaz        78%        3  HIGH
 src/walk.rs                    Rust    145  E. Diaz        55%        5  MEDIUM
──────────────────────────────────────────────────────────────────────────────

Files with knowledge loss risk (primary owner inactive): 1
  src/legacy.rs (Former Dev)

Usa --bus-factor para calcular cuántos colaboradores te puedes permitir perder:

$ km knowledge --bus-factor
Project Bus Factor: 2

 Losing 2 key contributors would put 80% of the project's knowledge at risk.
 Risk: HIGH — two people hold critical knowledge

──────────────────────────────────────────────
 Rank  Author        Lines    Share  Cumulative
──────────────────────────────────────────────
    1  E. Diaz        8420   68.12%     68.12%
    2  A. Torres      1490   12.06%     80.18%  ← 80% threshold
    3  R. Soto         940    7.61%     87.79%
──────────────────────────────────────────────