forked from bots-garden/ori
2026-09-18 — Ticket 0005 task format
Done
.tickets/issues/0005-create-a-native-ui-to-connect-the-webapp.yaml tasks rewritten from a hand-made text/done shape to IssueSpec's task schema. Verified with IssueSpec's own parser (all 15 tickets parse). Ticket stays open: task 8 (launch the window with the GUI toolchain and confirm the iframe embed) is still open — see summary.md "Not yet established".
How to validate a ticket file (recipe)
cat > /tmp/v.mjs <<'EOF2'
import { parseIssueDocument } from '/Users/k33g/CodeBerg/issuespec/src/core/yaml.ts';
import { readFileSync } from 'node:fs';
const f = process.argv[2]; try { const r = parseIssueDocument(readFileSync(f,'utf8'), f); console.log('OK', r.tasks.length, 'tasks'); } catch (e) { console.log('INVALID:', e.message); process.exitCode = 1; }
EOF2
(cd ~/CodeBerg/issuespec && npx --no-install esbuild /tmp/v.mjs --bundle --platform=node --format=cjs --outfile=/tmp/v.cjs)
for f in .tickets/issues/*.yaml; do printf '%s: ' "$f"; node /tmp/v.cjs "$f"; done
--format=esm fails ("Dynamic require of process") because of the yaml package; use cjs.
Trap
When closing a ticket's checklist by hand, copy the shape from a tool-written task (e.g. ticket 0001) — priority is always written (none), closedAt only while state: closed. Reference: ~/CodeBerg/issuespec/docs/en/reference/ticket-files.md § Task.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|