docs: Plan P2603.01 Automatización Zoom y actualizaciones P2601.09

This commit is contained in:
Ricardo Monla
2026-03-31 18:03:21 -03:00
parent 160da47f96
commit 1fd213173e
72 changed files with 19694 additions and 460 deletions
@@ -0,0 +1,51 @@
# frozen_string_literal: true
require_relative '../core/help_formatter'
require_relative 'proy/generador'
module ADN
class SubcomandoProy
def initialize(args, logger)
@args = args
@logger = logger
end
def ejecutar
if @args.empty?
mostrar_ayuda
return
end
accion = @args.shift
case accion
when 'nuevo'
tipo = @args.shift
GeneradorProy.nuevo(tipo)
when 'ayuda', 'help', '-h', '--help'
mostrar_ayuda
else
puts "✗ Acción desconocida: #{accion}"
mostrar_ayuda
exit 1
end
end
private
def mostrar_ayuda
puts ADN::HelpFormatter.generar_help(
titulo: "Gestión de Proyectos",
descripcion: "Creación de estructuras basadas en plantillas",
uso: "./adn/tools/run proy nuevo [tipo]",
opciones: [
{ names: ['nuevo [plan|subplan|mejora|incidente|tarea]'], desc: "Crear estructura desde plantilla" }
],
ejemplos: [
{ cmd: "./adn/tools/run proy nuevo plan", desc: "Crear un plan nuevo" },
{ cmd: "./adn/tools/run proy nuevo mejora", desc: "Crear mejora" }
]
)
end
end
end
@@ -0,0 +1,20 @@
# frozen_string_literal: true
require_relative 'plantillas'
module ADN
class GeneradorProy
def self.nuevo(tipo)
unless Plantillas.existe?(tipo)
puts "✗ Tipo inválido: #{tipo}"
return
end
contenido = Plantillas.obtener(tipo)
nombre_archivo = "nuevo_#{tipo}.md"
File.write(nombre_archivo, contenido)
puts "✓ Archivo generado: #{nombre_archivo}"
end
end
end
@@ -0,0 +1,85 @@
# frozen_string_literal: true
module ADN
module Plantillas
def self.existe?(tipo)
plantillas.key?(tipo)
end
def self.obtener(tipo)
plantillas[tipo]
end
def self.plantillas
{
"plan" => template_plan,
"subplan" => template_subplan,
"mejora" => template_mejora,
"incidente" => template_incidente,
"tarea" => template_tarea
}
end
def self.template_plan
<<~MD
# [Código] - Plan
## Objetivo
...
## Fases
- [ ] Tarea
MD
end
def self.template_subplan
<<~MD
# [Código] - Subplan Técnico
## Contexto Técnico
...
## Procedimiento
...
MD
end
def self.template_mejora
<<~MD
# [Código] - Mejora
## Objetivo
...
## Implementación
...
MD
end
def self.template_incidente
<<~MD
# [Código] - Incidente
## Descripción
...
## Resolución
...
MD
end
def self.template_tarea
<<~MD
# [Código] - Tarea
## Descripción
...
## Estado
MD
end
end
end
@@ -0,0 +1,26 @@
# frozen_string_literal: true
module ADN
module HelpFormatter
def self.generar_help(titulo:, descripcion:, uso:, opciones:, ejemplos:)
output = []
output << titulo
output << "-" * titulo.length
output << descripcion
output << ""
output << "Uso:"
output << " #{uso}"
output << ""
output << "Opciones:"
opciones.each do |opt|
output << " #{opt[:names].join(', ')} - #{opt[:desc]}"
end
output << ""
output << "Ejemplos:"
ejemplos.each do |ej|
output << " #{ej[:cmd]} - #{ej[:desc]}"
end
output.join("\n")
end
end
end