From a3dcdb85771cb4d0261cc390a62a7a80136ba11c Mon Sep 17 00:00:00 2001 From: Daniel Arroyo Date: Wed, 25 Mar 2026 00:29:33 -0300 Subject: [PATCH] prueba de proyecto --- .claude/settings.local.json | 10 + CLAUDE.md | 21 ++ backlog/mvp-1.md | 246 ++++++++++++++++++ projects/mi-proyecto/CHANGELOG.md | 4 + projects/mi-proyecto/LOG.md | 50 ++++ projects/mi-proyecto/README.md | 50 ++++ projects/mi-proyecto/TASKS.md | 20 ++ projects/mi-proyecto/meta/project.yaml | 12 + .../mi-proyecto/sessions/2026-03-24_2340.md | 28 ++ .../mi-proyecto/sessions/2026-03-25_0009.md | 28 ++ .../5f6b1f86-7ce1-4079-b886-9885cff9cca5.json | 18 ++ .../6103e2ec-e40c-4a0b-8672-cd4db18ca487.json | 24 ++ resumen/2026-03-24-1245-resumen.md | 85 ++++++ 13 files changed, 596 insertions(+) create mode 100644 .claude/settings.local.json create mode 100644 CLAUDE.md create mode 100644 backlog/mvp-1.md create mode 100644 projects/mi-proyecto/CHANGELOG.md create mode 100644 projects/mi-proyecto/LOG.md create mode 100644 projects/mi-proyecto/README.md create mode 100644 projects/mi-proyecto/TASKS.md create mode 100644 projects/mi-proyecto/meta/project.yaml create mode 100644 projects/mi-proyecto/sessions/2026-03-24_2340.md create mode 100644 projects/mi-proyecto/sessions/2026-03-25_0009.md create mode 100644 projects/mi-proyecto/sessions/5f6b1f86-7ce1-4079-b886-9885cff9cca5.json create mode 100644 projects/mi-proyecto/sessions/6103e2ec-e40c-4a0b-8672-cd4db18ca487.json create mode 100644 resumen/2026-03-24-1245-resumen.md diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..2dc5f7f --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,10 @@ +{ + "permissions": { + "allow": [ + "Bash(git add:*)", + "Bash(git commit:*)", + "Bash(python3:*)", + "Bash(python:*)" + ] + } +} diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..7134a3a --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,21 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +This is a personal tracker project. The codebase is currently empty (initial commit only) — no build configuration, tests, or source files exist yet. + +## Development Commands + +Commands will be added once the project has a build system and test setup. + +## Resumen + +- Cuando te pida realizar un resumen del proyecto debes crear un archivo con el siguiente formato de nombre yyyy-mm-dd-HHMM-resumen.md en la carpeta resumen. +- Si no existe crea una carpeta resumen en la raiz del proyecto. +- Crearemos resumenes de forma incremental y el primero debe contener todo lo existente hasta el momento. +- El archivo debe ser creado con el horario local. + +## Commit +- evitar agregar lo siguiente: Co-Authored-By: Claude Opus 4.6 diff --git a/backlog/mvp-1.md b/backlog/mvp-1.md new file mode 100644 index 0000000..cdccc3d --- /dev/null +++ b/backlog/mvp-1.md @@ -0,0 +1,246 @@ +Construye un MVP v1 de un sistema local de seguimiento de proyectos personales. + +Objetivo: +Crear una herramienta CLI que opere sobre archivos Markdown y YAML para ayudar a seguir proyectos personales con foco en continuidad entre sesiones. El sistema combina Kanban liviano, documentación viva, changelog y bitácora técnica por sesiones. + +Restricciones obligatorias: +- usar persistencia en archivos legibles +- Markdown como formato principal +- YAML/JSON simple para metadatos +- sin base de datos +- sin interfaz web +- sin dependencias cloud +- todo debe seguir siendo usable manualmente aunque la CLI no exista +- una sola sesión activa a la vez en v1 +- LOG.md append-only +- README.md solo puede modificarse en secciones autogeneradas delimitadas por marcadores AUTOGEN + +Stack preferido: +- Python 3.11+ +- Typer +- Jinja2 +- PyYAML +- GitPython opcional + +Estructura del repositorio esperada: +- README.md principal +- pyproject.toml +- tracker.yaml +- paquete tracker/ con cli, services, models, storage, utils y templates +- carpeta projects/ +- carpeta tests/ +- carpeta examples/ + +Cada proyecto debe generarse así: +projects// + README.md + LOG.md + CHANGELOG.md + TASKS.md + sessions/ + docs/ + assets/ + meta/project.yaml + +Comandos mínimos a implementar: +- tracker init-project +- tracker list +- tracker show +- tracker start +- tracker note +- tracker stop +- tracker change +- tracker next +- tracker review + +Comportamiento requerido: + +1. init-project +- crea estructura de carpetas +- genera README.md, LOG.md, CHANGELOG.md, TASKS.md y meta/project.yaml desde plantillas +- acepta name, type, tags, repo-path y description + +2. list +- muestra nombre, slug, estado, última sesión y próximo paso si existe + +3. show +- muestra estado actual, contexto, último resumen, bloqueos, próximos pasos y última actividad + +4. start +- valida que no exista otra sesión activa +- registra hora de inicio +- crea sesión activa en un archivo tipo .active_session.json +- puede aceptar objective +- muestra contexto reciente + +5. note +- agrega nota a la sesión activa +- soporta tipos: work, change, blocker, decision, idea, reference + +6. stop +- registra fin +- calcula duración +- consolida notas +- genera resumen heurístico +- sugiere próximos pasos +- crea archivo detallado en sessions/YYYY-MM-DD_HHMM.md +- actualiza LOG.md +- actualiza README.md en bloques AUTOGEN +- opcionalmente actualiza CHANGELOG.md +- limpia sesión activa + +7. change +- añade una entrada manual al CHANGELOG.md + +8. next +- sugiere próximos pasos por reglas simples, sin IA obligatoria + +9. review +- muestra proyectos activos, últimas sesiones, bloqueos abiertos y proyectos sin actividad reciente + +Modelo mínimo: + +Proyecto: +- id +- name +- slug +- description +- type +- status +- tags +- root_path +- repo_path +- created_at +- updated_at +- last_session_at + +Sesión: +- id +- project_slug +- started_at +- ended_at +- duration_minutes +- objective +- summary +- work_done +- changes +- decisions +- blockers +- next_steps +- references +- raw_notes + +Cambio: +- date +- type +- title +- impact +- references + +Valores sugeridos de type: +- code +- homelab +- automation +- agent +- research +- misc + +Valores sugeridos de status: +- inbox +- next +- active +- blocked +- waiting +- done +- archived + +README.md del proyecto debe incluir: +- nombre +- descripción +- objetivo +- estado actual +- contexto actual +- stack / herramientas +- arquitectura breve +- decisiones técnicas +- riesgos / bloqueos +- próximos pasos +- últimas sesiones + +Usa bloques delimitados, por ejemplo: + +... + + +LOG.md debe ser append-only y usar entradas como: +## 2026-03-23 10:00–11:20 +**Objetivo** +... +**Trabajo realizado** +- ... +**Cambios relevantes** +- ... +**Bloqueos** +- ... +**Decisiones** +- ... +**Próximos pasos** +- ... +**Resumen** +... + +CHANGELOG.md debe registrar solo cambios relevantes: +- code +- infra +- config +- docs +- automation +- decision + +TASKS.md debe tener secciones: +- Inbox +- Próximo +- En curso +- Bloqueado +- En espera +- Hecho + +Heurísticas mínimas: +- si hay bloqueos abiertos, priorizar destrabar +- si hubo cambios sin validación, sugerir validar +- si hubo trabajo parcial, sugerir cerrar el hilo abierto +- si no hubo avances, sugerir redefinir objetivo +- si hubo commits recientes no documentados, sugerir registrarlos + +Integración Git: +- opcional +- leer commits recientes si repo_path existe +- no hacer commit, push ni cambios de ramas + +Requisitos de calidad: +- código modular +- mensajes de error claros +- paths multiplataforma +- UTF-8 +- tests básicos del flujo principal + +Entregables: +- estructura completa del repositorio +- CLI funcional +- plantillas base +- README principal +- ejemplos de uso +- tests básicos +- proyecto demo + +Prioriza claridad, mantenibilidad y bajo acoplamiento. + +Además: +- implementa primero la estructura y los comandos base +- evita sobreingeniería +- usa funciones pequeñas y testeables +- separa claramente CLI, lógica de dominio y persistencia +- no escondas datos importantes en formatos opacos +- añade ejemplos de salida de comandos +- incluye un proyecto demo ya generado +- incluye tests del flujo init-project → start → note → stop → show \ No newline at end of file diff --git a/projects/mi-proyecto/CHANGELOG.md b/projects/mi-proyecto/CHANGELOG.md new file mode 100644 index 0000000..2ee802a --- /dev/null +++ b/projects/mi-proyecto/CHANGELOG.md @@ -0,0 +1,4 @@ +# Changelog + +_Project changes_ + diff --git a/projects/mi-proyecto/LOG.md b/projects/mi-proyecto/LOG.md new file mode 100644 index 0000000..0215496 --- /dev/null +++ b/projects/mi-proyecto/LOG.md @@ -0,0 +1,50 @@ +# Log + +_Project activity log_ + +## 2026-03-24 23:40–00:07 + +**Objetivo** +No especificado + +**Trabajo realizado** +- Sin trabajo registrado + +**Cambios relevantes** +- Sin cambios + +**Bloqueos** +- Sin bloqueos + +**Decisiones** +- Sin decisiones + +**Próximos pasos** +- Definir próximos pasos + +**Resumen** +Session de 27 minutos sin progreso registrado. + +## 2026-03-25 00:09–00:13 + +**Objetivo** +No especificado + +**Trabajo realizado** +- Sin trabajo registrado + +**Cambios relevantes** +- Sin cambios + +**Bloqueos** +- Sin bloqueos + +**Decisiones** +- Sin decisiones + +**Próximos pasos** +- Definir próximos pasos + +**Resumen** +Session de 3 minutos sin progreso registrado. + diff --git a/projects/mi-proyecto/README.md b/projects/mi-proyecto/README.md new file mode 100644 index 0000000..891e002 --- /dev/null +++ b/projects/mi-proyecto/README.md @@ -0,0 +1,50 @@ +# mi-proyecto + +_No description_ + +## Objective + +_TODO: Define objective_ + +## Status + +**Current Status:** inbox + + +Status: inbox + + +## Context + +_Current context and background_ + +## Stack / Tools + +- _Tool 1_ +- _Tool 2_ + +## Architecture + +_Brief architecture description_ + +## Technical Decisions + +_No decisions recorded yet_ + +## Risks / Blockers + +_No blockers_ + + +- Definir próximos pasos +- Definir próximos pasos + + +## Recent Sessions + + +- 2026-03-24 23:40 (27 min): Session de 27 minutos sin progreso registrado.... +- 2026-03-25 00:09 (3 min): Session de 3 minutos sin progreso registrado.... + + +_Last updated: 2026-03-24_ diff --git a/projects/mi-proyecto/TASKS.md b/projects/mi-proyecto/TASKS.md new file mode 100644 index 0000000..e5099f1 --- /dev/null +++ b/projects/mi-proyecto/TASKS.md @@ -0,0 +1,20 @@ +# Tasks + +## Inbox +- + +## Próximo +- [ ] Test task 1 + +## En curso +- + +## Bloqueado +- + +## En espera +- + +## Hecho +- [x] Test task 2 +- [x] New test task diff --git a/projects/mi-proyecto/meta/project.yaml b/projects/mi-proyecto/meta/project.yaml new file mode 100644 index 0000000..b7be3eb --- /dev/null +++ b/projects/mi-proyecto/meta/project.yaml @@ -0,0 +1,12 @@ +id: d7443ae2-9d23-4dc9-85c2-50437d6ab993 +name: mi-proyecto +slug: mi-proyecto +description: '' +type: misc +status: inbox +tags: [] +root_path: projects/mi-proyecto +repo_path: null +created_at: '2026-03-24T23:39:35.125241' +updated_at: '2026-03-24T23:39:35.125246' +last_session_at: null diff --git a/projects/mi-proyecto/sessions/2026-03-24_2340.md b/projects/mi-proyecto/sessions/2026-03-24_2340.md new file mode 100644 index 0000000..07ddb21 --- /dev/null +++ b/projects/mi-proyecto/sessions/2026-03-24_2340.md @@ -0,0 +1,28 @@ +# Sesion: 2026-03-24 23:40–00:07 + +## Objetivo +No especificado + +## Notas +- Sin notas + +## Trabajo realizado +- Sin trabajo realizado + +## Cambios +- Sin cambios + +## Decisiones +- Sin decisiones + +## Bloqueos +- Sin bloqueos + +## Proximos pasos +- Definir próximos pasos + +## Referencias +- Sin referencias + +## Duracion +27 minutos diff --git a/projects/mi-proyecto/sessions/2026-03-25_0009.md b/projects/mi-proyecto/sessions/2026-03-25_0009.md new file mode 100644 index 0000000..4038d81 --- /dev/null +++ b/projects/mi-proyecto/sessions/2026-03-25_0009.md @@ -0,0 +1,28 @@ +# Sesion: 2026-03-25 00:09–00:13 + +## Objetivo +No especificado + +## Notas +- [idea] prueba de idea + +## Trabajo realizado +- Sin trabajo realizado + +## Cambios +- Sin cambios + +## Decisiones +- Sin decisiones + +## Bloqueos +- Sin bloqueos + +## Proximos pasos +- Definir próximos pasos + +## Referencias +- Sin referencias + +## Duracion +3 minutos diff --git a/projects/mi-proyecto/sessions/5f6b1f86-7ce1-4079-b886-9885cff9cca5.json b/projects/mi-proyecto/sessions/5f6b1f86-7ce1-4079-b886-9885cff9cca5.json new file mode 100644 index 0000000..d04d959 --- /dev/null +++ b/projects/mi-proyecto/sessions/5f6b1f86-7ce1-4079-b886-9885cff9cca5.json @@ -0,0 +1,18 @@ +{ + "id": "5f6b1f86-7ce1-4079-b886-9885cff9cca5", + "project_slug": "mi-proyecto", + "started_at": "2026-03-24T23:40:18.747800", + "ended_at": "2026-03-25T00:07:23.886040", + "duration_minutes": 27, + "objective": "", + "summary": "Session de 27 minutos sin progreso registrado.", + "work_done": [], + "changes": [], + "decisions": [], + "blockers": [], + "next_steps": [ + "Definir próximos pasos" + ], + "references": [], + "raw_notes": [] +} \ No newline at end of file diff --git a/projects/mi-proyecto/sessions/6103e2ec-e40c-4a0b-8672-cd4db18ca487.json b/projects/mi-proyecto/sessions/6103e2ec-e40c-4a0b-8672-cd4db18ca487.json new file mode 100644 index 0000000..f801a0b --- /dev/null +++ b/projects/mi-proyecto/sessions/6103e2ec-e40c-4a0b-8672-cd4db18ca487.json @@ -0,0 +1,24 @@ +{ + "id": "6103e2ec-e40c-4a0b-8672-cd4db18ca487", + "project_slug": "mi-proyecto", + "started_at": "2026-03-25T00:09:38.396081", + "ended_at": "2026-03-25T00:13:11.888662", + "duration_minutes": 3, + "objective": "", + "summary": "Session de 3 minutos sin progreso registrado.", + "work_done": [], + "changes": [], + "decisions": [], + "blockers": [], + "next_steps": [ + "Definir próximos pasos" + ], + "references": [], + "raw_notes": [ + { + "type": "idea", + "text": "prueba de idea", + "created_at": "2026-03-25T00:11:32.741023" + } + ] +} \ No newline at end of file diff --git a/resumen/2026-03-24-1245-resumen.md b/resumen/2026-03-24-1245-resumen.md new file mode 100644 index 0000000..9651827 --- /dev/null +++ b/resumen/2026-03-24-1245-resumen.md @@ -0,0 +1,85 @@ +# Resumen del Proyecto: Personal Tracker CLI + +## Fecha: 2026-03-24 12:45 + +## Descripción General + +**Personal Tracker** es una herramienta CLI para seguimiento de proyectos personales, enfocada en la continuidad entre sesiones de trabajo. Utiliza archivos Markdown y YAML como persistencia, sin base de datos ni dependencias cloud. + +## Rama Actual + +- **develop** + +## Stack Tecnológico + +- Python 3.11+ +- Typer (CLI) +- PyYAML (metadatos) +- Jinja2 (plantillas) +- Pydantic (modelos) +- GitPython (opcional) + +## Estructura del Proyecto + +``` +tracker/ +├── cli/ # Comandos CLI (Typer) +├── models/ # Modelos de datos (Pydantic) +├── services/ # Lógica de negocio +├── storage/ # Persistencia archivos +├── utils/ # Utilidades +└── templates/ # Plantillas Jinja2 + +projects/ # Proyectos creados +tests/ # 72 tests +examples/demo-project/ # Proyecto demo +backlog/ # Requisitos (MVP-1.md) +``` + +## Comandos Implementados + +| Comando | Descripción | +|---------|-------------| +| `init-project` | Crear nuevo proyecto | +| `list` | Listar proyectos | +| `show` | Ver detalles | +| `start` | Iniciar sesión | +| `note` | Agregar nota | +| `stop` | Finalizar sesión | +| `change` | Agregar al changelog | +| `next` | Sugerir próximos pasos | +| `review` | Vista general | + +## Commits en Rama develop + +1. `525996f` - Initial commit +2. `4547c49` - Implement storage layer +3. `b0c65a0` - Implement core services +4. `88a474a` - Implement CLI commands +5. `40a33d7` - Implement project templates +6. `b36b603` - Complete CLI commands +7. `4e67062` - Add demo project +8. `2735562` - Add comprehensive tests +9. `4d99213` - Update README with MVP-1 documentation +10. `b4593c6` - Add detailed installation guide +11. `cc52360` - Fix pyproject.toml package discovery + +## Instalación + +```bash +pip install -e . +``` + +## Tests + +```bash +pytest tests/ -v +# 72 tests implementados +``` + +## Estado Actual + +- MVP-1 implementado y funcional +- CLI operativa con todos los comandos +- Tests cubiertos +- Documentación completa en README.md