ship

package
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 27, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package ship implements the exit gate of §6.5: the eight deterministic steps a task must pass before devclean opens a PR. Every check is pure code; no model is involved in verification (§6.5, reglas del equipo).

Los pasos corren en orden y la compuerta se detiene en el primero que falla: sin PR, con la razón exacta.

Index

Constants

View Source
const DefaultTimeout = 5 * time.Minute

DefaultTimeout is the fallback for the bisectable step's test run.

Variables

This section is empty.

Functions

This section is empty.

Types

type Hallazgo

type Hallazgo struct {
	Tipo    string `json:"tipo"`
	Archivo string `json:"archivo,omitempty"`
	Detalle string `json:"detalle,omitempty"`
}

Hallazgo es algo que un escáner marcó en el diff.

type Opciones

type Opciones struct {
	Root     string
	Room     room.Room
	Task     task.Task
	Config   config.Config
	Modelo   string        // del último intento, para el trailer Agent:
	Base     string        // rama base sobre la que rebasear
	Timeout  time.Duration // timeout del paso bisectable
	DryRun   bool          // corre todo menos abrir el PR
	Progreso func(Paso)    // llamado tras cada paso, para el TUI; nil = silencio
}

Opciones carries the exit gate's dependencies.

type Paso

type Paso struct {
	Nombre  string `json:"nombre"`
	OK      bool   `json:"ok"`
	Detalle string `json:"detalle,omitempty"`
}

Paso is the result of one exit-gate step, in order.

type Resultado

type Resultado struct {
	ID       string `json:"id"`
	Pasos    []Paso `json:"pasos"`
	Aprobado bool   `json:"aprobado"`
	PR       string `json:"pr,omitempty"`

	// Resumen para las métricas, aunque la esclusa frene antes.
	LineasMas   int  `json:"lineas_mas,omitempty"`
	LineasMenos int  `json:"lineas_menos,omitempty"`
	Ruido       int  `json:"ruido,omitempty"`
	Conflicto   bool `json:"conflicto,omitempty"`
}

Resultado is the outcome of the exit gate on one task.

func Run

func Run(ctx context.Context, o Opciones) Resultado

Run executes the eight steps in order and returns the gate result. The first failing step stops the gate (la compuerta se frena ahí).

func (Resultado) PrimerMotivo

func (r Resultado) PrimerMotivo() string

PrimerMotivo returns the detail of the first failed step.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL