docs: dod_evidence_schema templates + READMEs (issue 0114)
- docs/templates/issue.md and docs/templates/flow.md include the optional dod_evidence_schema: block with realistic example items. - dev/issues/README.md and dev/flows/README.md document the schema, kinds by example, validation rules and the fn doctor dod entrypoint. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,48 @@
|
||||
|
||||
> **Frontmatter YAML** es la fuente de verdad desde 2026-05-17 (issue 0100).
|
||||
> Cada `.md` empieza con bloque `---` con `id`, `title`, `status`, `type`, `domain`, `scope`, `priority`, `depends`, `blocks`, `related`, `created`, `updated`, `tags`.
|
||||
|
||||
## DoD evidence schema (issue 0114, opcional)
|
||||
|
||||
Cualquier issue puede declarar en su frontmatter un bloque `dod_evidence_schema:` que enumera **evidencias concretas** capturables al cerrar. Es la version maquinable del bloque humano `## Definition of Done`: lista de items con id unico, `kind` cerrado, `expected` libre y `required` bool. Auditable con `fn doctor dod` (sale humana y `--json`).
|
||||
|
||||
```yaml
|
||||
dod_evidence_schema:
|
||||
- id: surface_1_board_drag
|
||||
kind: screenshot
|
||||
expected: "kanban_cpp board con card en columna Doing (agent)"
|
||||
required: true
|
||||
- id: backend_health
|
||||
kind: cmd
|
||||
expected: "curl -fsS http://localhost:8403/api/health == 200"
|
||||
required: true
|
||||
- id: timeline_entry
|
||||
kind: url
|
||||
expected: "http://localhost:8486/api/runs?app=kanban_cpp devuelve >=1 run"
|
||||
required: false
|
||||
- id: agent_log
|
||||
kind: log
|
||||
expected: "agent_runs/<run_id>/agent.log contiene 'workflow done'"
|
||||
required: true
|
||||
```
|
||||
|
||||
Reglas:
|
||||
- `kind` ∈ {`screenshot`, `log`, `url`, `cmd`}. Otro valor rechaza el item.
|
||||
- `id` unico por issue (los duplicados se reportan).
|
||||
- `expected` no vacio (descripcion observable de la evidencia).
|
||||
- `required` bool (default `true` si se omite).
|
||||
|
||||
Ejemplos por kind:
|
||||
|
||||
| kind | que pones en `expected` |
|
||||
|---|---|
|
||||
| `screenshot` | "frame de la UI X mostrando estado Y" — capturable manual o por test visual |
|
||||
| `log` | "fichero <path> contiene linea con texto Z" — grep-eable |
|
||||
| `url` | "GET <url> devuelve 200 y body con campo W" — curl-eable |
|
||||
| `cmd` | comando que debe terminar con exit 0 (o assert explicito) |
|
||||
|
||||
Plantilla canonica: `docs/templates/issue.md`. Validador: `fn doctor dod` + `audit_dod_schema_go_infra`.
|
||||
|
||||
> Para listar/filtrar: `/issue list --domain trading --status pendiente` (cuando `dev_console` exista — issue 0101).
|
||||
>
|
||||
> Dominios canonicos: `meta cpp-stack kanban trading gamedev osint data-ingest registry-quality notify imagegen apps-infra dev-ux deploy frontend mcp browser telemetry docs`.
|
||||
|
||||
Reference in New Issue
Block a user