a3f75d61ec
Reorganizacion de dev/issues en subcarpetas (completed/, cpp/, gamedev/, kanban/, trading/, imagegen/, matrix/) y cambios acumulados en cmd/fn/pyrunner, .claude/commands y settings. Trabajo de otro LLM/sesion, commiteado a peticion del usuario para desbloquear el working tree. Excluido logs/ardour_mcp_server.log (ruido).
2.5 KiB
2.5 KiB
id, title, status, type, domain, scope, priority, depends, blocks, related, tags, flow, created, updated
| id | title | status | type | domain | scope | priority | depends | blocks | related | tags | flow | created | updated | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0130a | Funciones registry: parser MD + scan dirs + writer + watcher | pendiente | infra |
|
registry-only | alta |
|
|
|
0130 | 2026-05-22 | 2026-05-22 |
0130a — Funciones registry para kanban_cpp v2
Status: pendiente
Por que
El backend de kanban_cpp v2 necesita parsear/escribir frontmatter YAML de los .md de dev/issues/ y dev/flows/. Estas piezas son reusables (cualquier app del registry puede operar sobre issues/flows), asi que viven en el registry, no en el backend de la app.
Funciones a crear (delegar a fn-constructor en paralelo)
| ID | Firma | Pureza |
|---|---|---|
parse_issue_md_go_infra |
(path string) (Issue, []byte body, error) |
impure (FS) |
write_issue_md_go_infra |
(path string, issue Issue, body []byte) error |
impure (FS) |
scan_issues_dir_go_infra |
(root string) ([]Issue, error) |
impure (FS) |
scan_flows_dir_go_infra |
(root string) ([]Flow, error) |
impure (FS) |
watch_dir_fsnotify_go_infra |
(ctx, root) (<-chan FsEvent, error) |
impure (FS, async) |
Tipos:
Issue_go_infra— struct con campos del frontmatter (id, title, status, type, domain, scope, priority, depends, blocks, related, flow, tags, created, updated, file_path, mtime_ns).Flow_go_infra— struct equivalente para flows.FsEvent_go_infra—{path, op}conop in {create, write, remove, rename}.
Notas de implementacion
- Usar
gopkg.in/yaml.v3para parsing (preserva orden de keys viayaml.Node). - Writer DEBE preservar:
- Orden de campos del frontmatter original.
- Body MD intacto (todo lo que va despues del segundo
---). - Comentarios YAML (libre, best-effort).
parse_issue_mddebe ser tolerante: si falta un campo opcional, default empty.watch_dir_fsnotifyrecursivo, debounce 200ms.
DoD
- 5 pares
.go+.mdenfunctions/infra/. - Tests unitarios:
- parse → write → parse round-trip preserva struct.
- scan_issues_dir devuelve >=90 issues actuales.
- watcher detecta creacion + modificacion + borrado.
fn indexregistra los 5 IDs + 3 tipos.fn doctor uses-functionslimpio.
Anti-scope
NO incluye en esta tanda:
- Markdown rendering del body (eso lo hace el frontend si quiere).
- Validacion contra TAXONOMY (existe
fn doctor issues). - CRUD de issues nuevos (write_issue cubre el caso, pero crear file = scope del backend).