Skip to main content

prioritize

Applies MoSCoW (bucket) + RICE-adapted (intra-bucket ranking) to Linear issues of a product pillar, traceable to its PIBER+IDCF sub-spike and the latest vision audit. Use when the user asks to "prioritize issues", "priorizar el pillar", "aplicar MoSCoW", "rank the backlog", "RICE scoring", "/prioritize", or wants a data-backed decision on what to work on next within a pillar. Do NOT trigger for: generic backlog ranking without pillar context (use spike-recommend or implement-advisor instead), issue creation, or PR review.

설치로 이동

소스 정보

저장소
DojoCodingLabs/make-no-mistakes-toolkit
최근 소스 활동
2026년 5월 6일 02:07
감지된 SKILL.md 언어
다국어 혼합
스타
3
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
10 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
prioritize
description
Applies MoSCoW (bucket) + RICE-adapted (intra-bucket ranking) to Linear issues of a product pillar, traceable to its PIBER+IDCF sub-spike and the latest vision audit. Use when the user asks to "prioritize issues", "priorizar el pillar", "aplicar MoSCoW", "rank the backlog", "RICE scoring", "/prioritize", or wants a data-backed decision on what to work on next within a pillar. Do NOT trigger for: generic backlog ranking without pillar context (use spike-recommend or implement-advisor instead), issue creation, or PR review.
# /prioritize -- MoSCoW + RICE traceable to product vision Skill que aplica **MoSCoW** (bucket) + **RICE-adaptado** (ranking) a los issues de un pillar, justificando cada veredicto contra el sub-spike PIBER+IDCF declarado en Linear y el vision audit mas reciente (si existe). El output es: 1. Un report markdown en `<codebase>/audits/<pillar>/priority-<YYYY-MM-DD>.md`. 2. Descripcion de cada issue en Linear con un footer autogenerado (delimiter HTML, idempotente). 3. Un comment snapshot en el sub-spike del pillar (APP-101 para mobile, BACK-101 para backend, etc.). ## Anti-trigger Esta skill NO se activa cuando: - El usuario quiere priorizar sin contexto de pillar (usar `spike-recommend` o triaging manual). - El usuario quiere crear o editar issues individuales (usar MCP directo). - El input es un PR, branch, o commit (el input es un pillar-slug). ## Config resolution Lee `linear-setup.json` en la raiz del cwd. Schema esperado: ```json { "team": { "key": "APP" }, "projects": { ... legacy mapping ... }, "pillars": { "<slug>": { "project": "<Linear project name>", "spike": "<Linear issue ID>", "codebase": "<path relative to cwd or absolute>" } } } ``` - Si el archivo no existe: error claro, sugerir `/make-no-mistakes:linear-projects-setup`. - Si `pillars.<slug>` no existe: modo interactivo (ver `commands/prioritize.md`). - Si la config tiene pillars pero falta campo (`project`, `spike`, o `codebase`): pedir el faltante, ofrecer guardar. ## Flujo principal ### Paso A: Fetching paralelo Dispatch 3 subagents via Agent tool con `run_in_background: true`: **Subagent 1 -- fetch-issues**: ``` description: "Fetch issues del project <project-name>" subagent_type: "general-purpose" prompt: "Usar mcp__linear-server__list_issues para retornar todos los issues del project '<project-name>' que esten en estado Backlog, Todo, o In Progress. Si --issue-ids fue pasado, filtrar solo a esos. Output: JSON array con {id, identifier, title, description, labels, state, priority, size_label, estimate} por issue. Responder en bajo 200 palabras de explicacion + JSON." ``` **Subagent 2 -- fetch-spike**: ``` description: "Fetch y parse sub-spike PIBER+IDCF <spike-id>" subagent_type: "general-purpose" prompt: "Usar mcp__linear-server__get_issue con id=<spike-id>. Parsear el markdown buscando secciones: ## P, ## I, ## B, ## E, ## R, ## D -- Design Theses (marcar theses con ⚠️ como killshot), ## C -- Capabilities (tabla con build/buy/partner + priority), ## F -- Features (P0, P1, P2, P3), y Anti-patterns si existe. Output: JSON estructurado con estos campos + texto raw del spike por si la parsing falla. Responder en bajo 300 palabras + JSON." ``` **Subagent 3 -- load-audit**: ``` description: "Load most recent vision audit para <pillar-slug> en <codebase>" subagent_type: "general-purpose" prompt: "Glob pattern '<codebase>/audits/<pillar-slug>/vision-audit-*.md'. Si no hay matches, responder {audit: null, reason: 'no audit found'}. Si hay matches, elegir el de fecha mas reciente (YYYY-MM-DD en el filename). Read ese archivo. Parsear el scorecard table, Design Theses table (status OK/PARTIAL/MISSING/DRIFT), Capabilities table, Features por tier, Anti-patterns violations, y top 5 recommendations. Output: JSON estructurado + path del archivo cargado. Responder en bajo 250 palabras + JSON." ``` Esperar a los 3 antes de proceder al Paso B. Si subagent-1 o 2 fallan -> exit 2 con mensaje claro. Si subagent-3 falla (o retorna null) -> continuar con `audit = null` y Confidence default 0.8. ### Paso B: MoSCoW bucket assignment Para cada issue retornado por subagent-1, aplicar las reglas de `references/scoring-rules.md` en orden. Primera regla que matchea gana. Output intermedio: cada issue etiquetado con: - `bucket`: MUST | SHOULD | COULD | WONT | UNCLASSIFIED | DECOMPOSE - `matched_rules`: array de nombres de reglas que aplicaron - `cited_thesis` / `cited_feature` / `cited_capability` / `cited_antipattern`: referencias al spike - `audit_status`: si el audit existe y matchea (OK/PARTIAL/MISSING/DRIFT/VIOLATION/null) **UNCLASSIFIED fallback**: si ninguna regla matchea, dispatch un subagent sync (no background) con el prompt de `references/prompts/llm-fallback-bucket.md`, pasando el issue + sections relevantes del spike. Si el subagent retorna confidence < 0.6 -> mantener UNCLASSIFIED. Si >= 0.6 -> asignar el bucket retornado + anotar `matched_rules: ["llm-fallback"]` + `llm_rationale: <response>`. **DECOMPOSE**: issues con `size_label == "XL"` van a DECOMPOSE directamente, sin pasar por otras reglas. No reciben RICE score. Aparecen en seccion separada del report. ### Paso C: RICE intra-bucket ranking Para cada bucket (MUST, SHOULD, COULD, WONT), si tiene >3 issues: 1. Calcular RICE por issue: `(Reach × Impact × Confidence) / Size`. 2. Variables: - **Reach**: inferir del spike (`every user` = 9, `pillar users` = 3, `admin-only` = 1). Default 3. - **Impact**: `0` (no thesis avanzada), `1` (1 match), `2` (2+ matches), `3` (killshot ⚠️ match). - **Confidence**: audit lookup. `PARTIAL` -> 1.0, `DRIFT` -> 0.8, `MISSING` -> 0.5. Sin audit o ambiguo -> 0.8. - **Size**: XS=1, S=2, M=4, L=8. (XL ya esta en DECOMPOSE.) Sin label -> M=4 + flag `low-confidence-estimate`. 3. Ranking desc. Empates por `issue.identifier` lexicografico asc. Si un bucket tiene ≤3 issues, mantener orden natural (spike-derived) sin rankear. Ver `references/frameworks/moscow-rice.md` para detalle de edge cases. ### Paso D: Confidence flags Marcar cada issue con flag `low-confidence-estimate` si: - `size_label` missing -> Size default=M. - `description.length < 100` -> Reach/Impact inferidos solo del titulo. - `--no-audit` fue pasado pero el audit existe -> Confidence default=0.8. - Subagent-2 parse warnings presentes (ambiguity en spike sections). El flag se muestra como "⚠" en el report al lado del RICE score. NO bloquea el ranking. ### Paso E: Composicion de artifacts Generar 3 artifacts en paralelo (via Agent tool subagents para I/O pesado) o secuencial si mas simple: **Artifact 1 -- Priority report markdown**: - Write a `<codebase>/audits/<pillar>/priority-<YYYY-MM-DD>.md`. - Si el directorio no existe, crear con `mkdir -p`. - Si ya existe un archivo con la misma fecha -> append sufijo `-2`, `-3`, etc. - Template: ver `references/linear-mutations.md` seccion "Priority report template". **Artifact 2 -- Description footer per issue**: - Solo si `--dry-run=false`. - Para cada issue scoreado, leer la description actual via `mcp__linear-server__get_issue`. - Aplicar la regla de reemplazo idempotente de `references/linear-mutations.md` seccion "Delimiter convention". - Escribir la description actualizada via `mcp__linear-server__save_issue`. - Log success/fail por issue. Fallas NO abortan el batch -- se reportan al final. **Artifact 3 -- Snapshot comment en sub-spike**: - Solo si `--dry-run=false`. - Target: `pillars.<slug>.spike` (ej: APP-101 para mobile). - NO editar comment anterior. Siempre agregar uno nuevo con fecha. - Si existe comment previo con patron matching, agregar link al bottom del nuevo comment. - Usar `mcp__linear-server__save_comment` con el body del template (ver `references/linear-mutations.md` seccion "Sub-spike comment template"). ### Paso F: Resumen al usuario Al final de la ejecucion (independiente de dry-run): ``` Priority snapshot generado para <pillar>: Must: N issues (top: ALT-XXX, RICE=X.X) Should: N issues Could: N issues Won't: N issues Unclassified: N issues (needs human review) Decompose: N issues (XL-sized, suggest /spike-recommend) Report: <path al priority-*.md> <If !dry-run:> Descriptions updated: N/M issues (<failure count> failures) Sub-spike comment: <link to comment> <If dry-run:> Mutations proposed but NOT applied. Run without --dry-run to apply. Next steps: - Review top Musts en el report. - Corre `/make-no-mistakes:spike-recommend <issue-id>` para el top-3 Must. - Corre `/make-no-mistakes:implement <issue-id>` una vez el brief este listo. ``` ## Error handling Ver `references/scoring-rules.md` y `references/linear-mutations.md` para detalle por caso. Tabla resumen: | Escenario | Accion | |-----------|--------| | linear-setup.json no existe | Exit 1 con sugerencia `/linear-projects-setup`. | | pillars.<slug> no existe | Modo interactivo. | | MCP linear-server no disponible | Exit 1 con mensaje setup. | | Subagent fetch-issues falla | Exit 2, no tocar Linear. | | Subagent fetch-spike falla | Exit 2, no tocar Linear. | | Subagent load-audit falla | Warn + continuar con audit=null. | | Spike sin IDCF parseable | Warn + MoSCoW puro sin theses matching. | | Issue sin Size label | Default=M + flag low-confidence-estimate. | | --target=labels + labels missing | Exit 1, sugerir pedir a admin + usar --target=description. | | Description update falla para 1+ issue | Continuar batch, reportar fallas al final. Exit 3 si >0% fallas. | | Dry-run + mutations en output | "Proposed" en titulo del report + skip Artifacts 2-3. | ## Reglas de oro 1. **Deterministico first, LLM second**: las reglas de MoSCoW se aplican primero. LLM solo para UNCLASSIFIED residual. 2. **Citar siempre**: cada bucket assignment cita el match (thesis #, feature tier, anti-pattern, audit status). 3. **Idempotencia en Linear**: correr 2 veces debe dar el mismo resultado. Description footer se reemplaza, no se stackea. Sub-spike comment es nuevo cada run (no edit del anterior). 4. **Coexistencia de snapshots**: el report NO sobreescribe el anterior. Git version-controla. 5. **No time estimates**: nunca decir "2 sprints", "1 mes". Sequential ordering con milestones conceptuales. 6. **Respetar config**: si `linear-setup.json` no declara un pillar, pedir al usuario, ofrecer guardar. Nunca inventar. 7. **Low-confidence transparente**: si faltan datos, marcar flag, no adivinar sin avisar. ## Interaccion con el usuario - Confirmar args al inicio si algo es ambiguo (pillar sin config, codebase no existe, MCP no disponible). - Mostrar progreso: "Fetching issues + spike + audit en paralelo...", "Aplicando reglas MoSCoW a N issues...", "Calculando RICE en bucket Must...". - Al final, mostrar el resumen del Paso F. - Preguntar si hay mutations fallidas: "Queres reintentar los N issues que fallaron?". ## Fallbacks Si el codebase del pillar no tiene `audits/<pillar>/`: - Crear el directorio antes de escribir el report. - Mencionar en el executive summary del report: "primer priority snapshot, no hay historial previo". Si el pillar tiene mas de 200 issues: - Advertir al usuario: "200+ issues detectados, esto puede tomar un rato. Considera filtrar con --issue-ids o cerrar issues obsoletos primero." - Proceder igual. ## Referencias - `references/scoring-rules.md` -- tabla deterministica MUST/SHOULD/COULD/WONT. - `references/frameworks/moscow-rice.md` -- v1 impl (formula RICE, edge cases). - `references/frameworks/{rice,moscow,ice,wsjf,kano}.md` -- v2 stubs. - `references/linear-mutations.md` -- delimiter convention + templates. - `references/prompts/llm-fallback-bucket.md` -- LLM prompt para UNCLASSIFIED fallback. Ver tambien el spec completo: `docs/superpowers/specs/2026-04-21-prioritize-command-design.md`.
GitHub에서 보기