nandi/oripublic Fork 0
7895c1d1c9bb1048807dc04f7246dc456c47e025
Commits
Clone
git clone https://git.rickub.com/nandi/ori.git
git clone ssh://git@rickub.com/nandi/ori.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

forked from bots-garden/ori

🛟 Updated. f5c963a · on 7895c1d1c9bb1048807dc04f7246dc456c47e025 · k33g · yesterday
2026-09-18-ticket-0005-format.md · 22 lines · 1.4 KBmarkdown
Blame HistoryOpen raw

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
# 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)

```bash
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.