plan

package
v0.3.2 Latest Latest
Warning

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

Go to latest
Published: Aug 28, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package plan implementa al planificador (§5, §8.2): convierte una petición en lenguaje natural en contratos de tarea. El contrato lo redacta un modelo; devclean solo parsea, muestra y aprueba. Nunca lo escribe a mano el usuario (§6.1).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Prompt

func Prompt(frase string, c Contexto) string

Prompt arma la instrucción para el planificador: una frase entra, un array JSON de contratos sale. El contexto del repo se inyecta para que el modelo use el lenguaje y el comando de pruebas reales.

Types

type Borrador

type Borrador struct {
	Titulo      string   `json:"titulo"`
	Porque      string   `json:"porque"`
	ListoCuando string   `json:"listo_cuando"`
	TocarSolo   []string `json:"tocar_solo"`
	NoTocar     []string `json:"no_tocar"`
	DependeDe   []string `json:"depende_de"`
	Expone      []string `json:"expone"`
	Usa         []string `json:"usa"`
	Riesgos     string   `json:"riesgos"`
	Peso        string   `json:"peso"`
}

Borrador es una tarea propuesta por el planificador, antes de asignarle id y version.

func Generar

func Generar(ctx context.Context, g Generador, c Contexto, frase string) ([]Borrador, error)

Generar pide el plan y lo parsea.

func Parse

func Parse(texto string) ([]Borrador, error)

Parse extrae la lista de borradores de la respuesta del modelo, tolerando vallas markdown y texto alrededor. Un borrador sin titulo ni listo_cuando se rechaza: un plan sin criterio de "listo" no es un plan.

type Contexto added in v0.2.1

type Contexto struct {
	Lenguaje     string   // go, node, python, rust, "" si no se detecta
	EsVacio      bool     // repo sin código fuente todavía
	Pruebas      string   // comando de pruebas detectado ("" si no hay)
	Stack        string   // stack elegido por el humano ("" si lo decide el modelo)
	Requisitos   string   // requisitos extra que dijo el humano, en texto libre
	Constitucion string   // contenido de .devclean/constitution.md (§6.11), "" si no existe
	Vedadas      []string // globs que tocar_solo nunca puede incluir (zonas prohibidas + rutas de prueba)
}

Contexto es lo que devclean sabe del repositorio al momento de planear. Se lo pasa al modelo para que no adivine el stack ni invente comandos que no existen en el proyecto (§8.2).

type Generador

type Generador interface {
	Generar(ctx context.Context, prompt string) (string, error)
}

Generador pide texto a un modelo. El comando lo adapta desde el ejecutor; aquí solo importa la interfaz mínima.

Jump to

Keyboard shortcuts

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