gitoriaLog in with ident

antcolony

All repositories: gitoria

ReadmeCodePull requestsReleasesTicketsSettings
Commita6af7883a6af7883tracker: worker box sees calendar.worldapi.org (login to copy)mrea6af7883/templates/report.schema.json

4.8 KB

  1. {
  2. "$comment": "The worker report (docs/scheduler-agent.md §4) as JSON Schema — handed to `claude -p --json-schema` by `./colony work`. Keep in step with lib/report.hl validate(), which stays the authority (it also checks ticket/session against the session). Only keywords known to work with claude --json-schema are used (no maxLength / pattern / maxItems); report.hl enforces the limits (mission 027: result ≤ 120 characters, test 2–4 steps ≤ 90 characters, questions of ≤ 3 lines, decided one line ≤ 120) and a refused report gets ONE fix step.",
  3. "type": "object",
  4. "additionalProperties": false,
  5. "required": [
  6. "ticket",
  7. "session",
  8. "result",
  9. "complete",
  10. "test",
  11. "done",
  12. "verified",
  13. "open",
  14. "issues",
  15. "questions",
  16. "decided",
  17. "running",
  18. "refused"
  19. ],
  20. "properties": {
  21. "ticket": {
  22. "type": "string",
  23. "pattern": "^[^#]+#[1-9][0-9]*$",
  24. "description": "<project>#<number>, exactly as given in the brief"
  25. },
  26. "session": {
  27. "type": "string",
  28. "minLength": 1,
  29. "description": "the session id given in the brief"
  30. },
  31. "result": {
  32. "type": "string",
  33. "minLength": 1,
  34. "description": "ONE plain sentence for the creator, one line, at most 120 characters: what is built (not 'live' — you do not deploy)"
  35. },
  36. "complete": {
  37. "type": "boolean",
  38. "description": "true ONLY if the ticket's goal is reached AND what the creator should test is really in place (copied into the app, not only a work copy); else false (half done: the next worker continues — say in `open` what is missing and where the unfinished work is)"
  39. },
  40. "test": {
  41. "type": "array",
  42. "items": {
  43. "type": "string",
  44. "minLength": 1
  45. },
  46. "description": "2–4 short steps (one line, at most 90 characters each), shown as a numbered list, for the creator on the LIVE site named in the brief (or, without one, the real result) — never a work copy (.scratch) or a local address"
  47. },
  48. "done": {
  49. "type": "array",
  50. "items": {
  51. "type": "string",
  52. "minLength": 1
  53. },
  54. "description": "what was done (Markdown)"
  55. },
  56. "verified": {
  57. "type": "array",
  58. "description": "every claim with the command you ran and the output you observed",
  59. "items": {
  60. "type": "object",
  61. "additionalProperties": false,
  62. "required": [
  63. "claim",
  64. "command",
  65. "output"
  66. ],
  67. "properties": {
  68. "claim": {
  69. "type": "string",
  70. "minLength": 1
  71. },
  72. "command": {
  73. "type": "string",
  74. "minLength": 1
  75. },
  76. "output": {
  77. "type": "string",
  78. "minLength": 1
  79. }
  80. }
  81. }
  82. },
  83. "open": {
  84. "type": "array",
  85. "items": {
  86. "type": "string",
  87. "minLength": 1
  88. },
  89. "description": "what is not done / not verified"
  90. },
  91. "issues": {
  92. "type": "array",
  93. "description": "findings in ANOTHER project",
  94. "items": {
  95. "type": "object",
  96. "additionalProperties": false,
  97. "required": [
  98. "project",
  99. "subject",
  100. "repro",
  101. "observed",
  102. "expected",
  103. "blocks"
  104. ],
  105. "properties": {
  106. "project": {
  107. "type": "string",
  108. "minLength": 1
  109. },
  110. "subject": {
  111. "type": "string",
  112. "minLength": 1
  113. },
  114. "repro": {
  115. "type": "string",
  116. "minLength": 1
  117. },
  118. "observed": {
  119. "type": "string",
  120. "minLength": 1
  121. },
  122. "expected": {
  123. "type": "string",
  124. "minLength": 1
  125. },
  126. "blocks": {
  127. "type": "boolean"
  128. }
  129. }
  130. }
  131. },
  132. "questions": {
  133. "type": "array",
  134. "items": {
  135. "type": "object",
  136. "additionalProperties": false,
  137. "required": ["title", "text"],
  138. "properties": {
  139. "title": { "type": "string", "minLength": 1, "description": "the short subject of the question's ticket, one line, at most 80 characters, plain words (e.g. 'how long should an ident login last?')" },
  140. "text": { "type": "string", "minLength": 1, "description": "the question, then the options; at most 3 short lines (≤ 300 characters)" }
  141. }
  142. },
  143. "description": "at most 3, only what changes what gets built; each { title, text }"
  144. },
  145. "decided": {
  146. "type": "array",
  147. "items": {
  148. "type": "string",
  149. "minLength": 1
  150. },
  151. "description": "small choices you made yourself (one line each, at most 120 characters) — shown to the creator as one line \"Decided: …\""
  152. },
  153. "running": {
  154. "type": "array",
  155. "description": "what you leave running",
  156. "items": {
  157. "type": "object",
  158. "additionalProperties": false,
  159. "required": [
  160. "what",
  161. "url",
  162. "pid",
  163. "log"
  164. ],
  165. "properties": {
  166. "what": {
  167. "type": "string",
  168. "minLength": 1
  169. },
  170. "url": {
  171. "type": "string"
  172. },
  173. "pid": {
  174. "type": "number"
  175. },
  176. "log": {
  177. "type": "string"
  178. }
  179. }
  180. }
  181. },
  182. "refused": {
  183. "type": "array",
  184. "items": {
  185. "type": "string",
  186. "minLength": 1
  187. },
  188. "description": "actions the permission system refused, not retried"
  189. }
  190. }
  191. }

Branches

Latest commits

  • a6af7883tracker: worker box sees calendar.worldapi.org (login to copy)mre
  • c613d26btemplates: bridges to external components (login.js for ident's selector) are allowed (creator 2026-09-27)mre
  • 9062978ctracker: worker box sees /media/STORAGE/projects/old-tracker read-only (tracker#2 source data)mre
  • 7f9660eeState of 2026-09-27, before the move to gitoriamre