prueba de proyecto
This commit is contained in:
10
.claude/settings.local.json
Normal file
10
.claude/settings.local.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(git add:*)",
|
||||
"Bash(git commit:*)",
|
||||
"Bash(python3:*)",
|
||||
"Bash(python:*)"
|
||||
]
|
||||
}
|
||||
}
|
||||
21
CLAUDE.md
Normal file
21
CLAUDE.md
Normal file
@@ -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 <noreply@anthropic.com>
|
||||
246
backlog/mvp-1.md
Normal file
246
backlog/mvp-1.md
Normal file
@@ -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/<slug>/
|
||||
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 <slug>
|
||||
- tracker start <slug>
|
||||
- tracker note <text>
|
||||
- tracker stop <slug>
|
||||
- tracker change <slug>
|
||||
- tracker next <slug>
|
||||
- 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 <slug>
|
||||
- muestra estado actual, contexto, último resumen, bloqueos, próximos pasos y última actividad
|
||||
|
||||
4. start <slug>
|
||||
- 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 <text>
|
||||
- agrega nota a la sesión activa
|
||||
- soporta tipos: work, change, blocker, decision, idea, reference
|
||||
|
||||
6. stop <slug>
|
||||
- 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 <slug>
|
||||
- añade una entrada manual al CHANGELOG.md
|
||||
|
||||
8. next <slug>
|
||||
- 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:
|
||||
<!-- AUTOGEN:STATUS_START -->
|
||||
...
|
||||
<!-- AUTOGEN:STATUS_END -->
|
||||
|
||||
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
|
||||
4
projects/mi-proyecto/CHANGELOG.md
Normal file
4
projects/mi-proyecto/CHANGELOG.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# Changelog
|
||||
|
||||
_Project changes_
|
||||
|
||||
50
projects/mi-proyecto/LOG.md
Normal file
50
projects/mi-proyecto/LOG.md
Normal file
@@ -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.
|
||||
|
||||
50
projects/mi-proyecto/README.md
Normal file
50
projects/mi-proyecto/README.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# mi-proyecto
|
||||
|
||||
_No description_
|
||||
|
||||
## Objective
|
||||
|
||||
_TODO: Define objective_
|
||||
|
||||
## Status
|
||||
|
||||
**Current Status:** inbox
|
||||
|
||||
<!-- AUTOGEN:STATUS_START -->
|
||||
Status: inbox
|
||||
<!-- AUTOGEN:STATUS_END -->
|
||||
|
||||
## 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_
|
||||
|
||||
<!-- AUTOGEN:NEXT_STEPS_START -->
|
||||
- Definir próximos pasos
|
||||
- Definir próximos pasos
|
||||
<!-- AUTOGEN:NEXT_STEPS_END -->
|
||||
|
||||
## Recent Sessions
|
||||
|
||||
<!-- AUTOGEN:SESSIONS_START -->
|
||||
- 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....
|
||||
<!-- AUTOGEN:SESSIONS_END -->
|
||||
|
||||
_Last updated: 2026-03-24_
|
||||
20
projects/mi-proyecto/TASKS.md
Normal file
20
projects/mi-proyecto/TASKS.md
Normal file
@@ -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
|
||||
12
projects/mi-proyecto/meta/project.yaml
Normal file
12
projects/mi-proyecto/meta/project.yaml
Normal file
@@ -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
|
||||
28
projects/mi-proyecto/sessions/2026-03-24_2340.md
Normal file
28
projects/mi-proyecto/sessions/2026-03-24_2340.md
Normal file
@@ -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
|
||||
28
projects/mi-proyecto/sessions/2026-03-25_0009.md
Normal file
28
projects/mi-proyecto/sessions/2026-03-25_0009.md
Normal file
@@ -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
|
||||
@@ -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": []
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
85
resumen/2026-03-24-1245-resumen.md
Normal file
85
resumen/2026-03-24-1245-resumen.md
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user