SECCIÓN 06

Re-review — verificar fixes

Después de aplicar un fix a un issue encontrado por ixtli review, usa re-review para verificar que el problema quedó resuelto correctamente y que no se introdujeron nuevos issues.

ixtli guarda automáticamente la última sesión de review en .ixtli/last_session.json, por lo que no necesitas recordar IDs manualmente.

Modo interactivo — para desarrolladores

ixtli re-review src/api/auth.py

Muestra los issues del último review para ese archivo y permite seleccionar cuáles corregiste:

  Issues from last review for src/api/auth.py:

  ┌─────────────────────────────────────────────────────────────┐
  │ #  Severity  Line  Issue                                    │
  ├─────────────────────────────────────────────────────────────┤
  │ 1  critical  42    SQL Injection via unsanitized user_id    │
  │ 2  high      87    Hardcoded SECRET_KEY                     │
  └─────────────────────────────────────────────────────────────┘

  Which issues did you fix? (comma-separated numbers, or 'all'): 1,2

  SQL Injection via unsanitized user_id
    Describe your fix (optional): Changed to parameterized queries

  Hardcoded SECRET_KEY
    Describe your fix (optional): Moved to os.environ

  Submitting re-review for src/api/auth.py...

  All selected issues verified as resolved.

Con descripción directa

ixtli re-review src/api/auth.py --fix "Switched to parameterized queries"

Envía todos los issues del último review para ese archivo marcados con esa descripción de fix.

Para un issue específico

ixtli re-review src/api/auth.py --fix "Parameterized queries" --issue-id abc123

Modo programático — para scripts y agentes

ixtli re-review src/api/auth.py --json \
  --resolved-json '[
    {
      "issue_id": "abc123",
      "issue": "SQL Injection via unsanitized user_id",
      "code_evidence": "cursor.execute(\"SELECT * FROM users WHERE id = \" + user_id)",
      "fix_applied": "Changed to parameterized queries"
    }
  ]'

El flag --resolved-json salta el modo interactivo completamente.

Output del re-review

ixtli re-review src/api/auth.py --json ...
{
  "status": "completed",
  "resolved": ["SQL Injection via unsanitized user_id"],
  "still_present": [],
  "new_issues": [],
  "summary": "1 issue resolved. Code is clean."
}

Si el fix no fue suficiente:

{
  "status": "completed",
  "resolved": [],
  "still_present": ["SQL Injection via unsanitized user_id"],
  "new_issues": [
    {
      "severity": "medium",
      "issue": "Input is now sanitized but missing length validation"
    }
  ],
  "summary": "Issue persists. Input validation is incomplete."
}

Todas las opciones

FlagDescripción
FILEArchivo a re-revisar (requerido)
--fix, -fDescripción del fix en una línea
--issue-idID específico del issue a verificar
--session-idID de la sesión de review original
--resolved-jsonArray JSON de issues resueltos (salta modo interactivo)
--jsonOutput en JSON

Exit codes:

CódigoSignificado
0Todos los issues seleccionados verificados como resueltos
1Algún issue sigue presente o se introdujeron nuevos
2Error de ejecución
Review de códigoHistorial de reviews e issues