on master help sign in
Record the answers to review questions 24 to 45; list the spec rulings for @iko

Montelot's answers to the language and spec questions 16 to 28 are proposals: they wait in open-questions.md for @iko to confirm before they go in Decisions and the code changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U4FzmSdubYxmZGDp2VJRAQ

commitbf65f8f1699d4739e3fd71a7b774474c25710159 authorClaude <noreply@anthropic.com> dateMon 2 Nov 2026, 14:08 (9 hours ago) parent673eb51
2 files changed+44−22
docs/open-questions.md+20 docs/reviews/2026-11-02-questions.md+24−22
docs/open-questions.md+20
@@ -66,6 +66,26 @@ Found while writing [prompts/milestone-2.md](prompts/milestone-2.md), checking i
6666
676734. **Settled: constructors and equal noun literals.** On 2026-10-31, @iko said expressions with the same runtime representation count as equal, and cases that cannot be distinguished at runtime are rejected at compile time. Thus `|=%$` matches a case headed by `%$`, `%.y` or `~`: each is the noun 0. Cases with equal heads and overlapping payloads cannot coexist in a union.
6868
69+## Review rulings waiting for @iko
70+
71+The [2026-11-02 review](reviews/2026-11-02-repo-review.md) raised these language and spec questions. Montelot answered them on 2026-11-02 as proposals. Each waits for @iko to confirm before it goes in [Decisions](spec/decisions.md) and the code changes.
72+
73+| # | Question | Proposed answer | Refs |
74+| --- | --- | --- | --- |
75+| [16](reviews/2026-11-02-questions.md) | Which auras may a term literal fit? Today `^- @tas %1.000` is accepted and `^- @ud %1.000` is rejected | Follow Hoon: `%1.000` is `@ud` and `%&` is `?` | A20 |
76+| [17](reviews/2026-11-02-questions.md) | May a name term fit `@t`, as `@tas` nests in `@t` in Hoon? | Yes | A20 |
77+| [18](reviews/2026-11-02-questions.md) | May a gate fit `*`? The prelude's `element` erases gates into `*` | Yes, and say in the spec that `*` may hold gates | A23 |
78+| [19](reviews/2026-11-02-questions.md) | Where are `[]` and `m()`, both decided errors, rejected? | In the parser, at the closer, with golden cases | A6, A100 |
79+| [20](reviews/2026-11-02-questions.md) | Is `[a=@ud [a=@t b=?]]` one record or two scopes? | One record: the duplicate `a` is an error | A30 |
80+| [21](reviews/2026-11-02-questions.md) | May `/% %foo` and `++ foo 1` share a name? | Yes: molds and values have separate namespaces | A25 |
81+| [22](reviews/2026-11-02-questions.md) | Is a `?-` arm that matches no remaining case a definite error? | Yes: "arm matches no case" | A15 |
82+| [23](reviews/2026-11-02-questions.md) | Should `(mop K V)` carry its comparator? | No, match Hoon | A55 |
83+| [24](reviews/2026-11-02-questions.md) | Should Hoon's `each` mold be renamed, since the prelude has the element gate `each`? | No, keep both | A64 |
84+| [25](reviews/2026-11-02-questions.md) | When are `eq` and the gate-free type-variable constraint built? | In milestone 2 | A98 |
85+| [26](reviews/2026-11-02-questions.md) | Which Hoon unions should the importer read? | `$%` with `%&`, `%\|` and `%0` tags now, then `each` and `json` as catalog entries | A50 |
86+| [27](reviews/2026-11-02-questions.md) | Should the `%jibb` mark keep dropping the final newline on a `%txt` round trip? | Keep it, like `%hoon` | A61 |
87+| [28](reviews/2026-11-02-questions.md) | Should the printer flatten `[a [b c]]` and print named molds by name, such as `theme`? | Yes | A136 |
88+
6989## Grammar questions never put to the doc's author
7090
7191In milestone 1 the parser met about thirty places where the doc could be read more than one way. Twelve went to @iko on 2026-10-30 and are rows of the Decisions tab. These were not asked. For each, the parser follows the reading below, and some are marked "(doc question)" in the library's notes. None changes what a valid program means, except where a reading makes something an error.
docs/reviews/2026-11-02-questions.md+24−22
@@ -123,6 +123,8 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
123123
124124## Language and spec rulings
125125
126+Montelot's answers to 16 to 28 are proposals. They are listed in [open-questions.md](../open-questions.md) until @iko confirms them; the code changes wait until then.
127+
126128**16. Which auras may a term literal fit?** Today `^- @tas %1.000` and `^- @tas %&` are accepted and `^- @ud %1.000` is rejected, the opposite of Hoon. grammar.md:141 supports the code; grammar.md:29 and "Literals: exactly Hoon's" don't. (A20)
127129
128130- a) Follow Hoon: a term literal fits its own aura family, so `%1.000` is `@ud` and `%&` is `?`.
@@ -184,14 +186,14 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
184186- a) No, keep both.
185187- b) Yes.
186188
187−**Answer:** a
189+**Answer:** a *(chosen)*
188190
189191**25. When should `eq` and the gate-free type-variable constraint be built?** Both are decided, neither exists, and no doc tracks them. (A98)
190192
191193- a) In milestone 2.
192194- b) Later, and list them as outstanding.
193195
194−**Answer:** a
196+**Answer:** a *(chosen)*
195197
196198**26. Which Hoon unions should the importer learn?** Today `$%` with `%&`, `%|` or `%0` tags, `(each a b)` and `json` all fail, though the spec's import table lists them. (A50)
197199
@@ -199,21 +201,21 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
199201- b) Only the tags.
200202- c) Later.
201203
202−**Answer:** a
204+**Answer:** a *(chosen)*
203205
204206**27. Should the `%jibb` mark keep dropping the final newline on a `%txt` round trip**, as `%hoon` does? (A61)
205207
206208- a) Keep it, like `%hoon`.
207209- b) Preserve the newline, and change tools/ship's assertion.
208210
209−**Answer:** a
211+**Answer:** a *(chosen)*
210212
211213**28. Should the printer flatten `[a [b c]]` to `[a b c]` and print named molds by name**, such as `theme` and `item.todo`? (A136)
212214
213215- a) Yes.
214216- b) No.
215217
216−**Answer:** a
218+**Answer:** a *(chosen)*
217219
218220## Tests and tooling
219221
@@ -222,7 +224,7 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
222224- a) Yes.
223225- b) No.
224226
225−**Answer:** a
227+**Answer:** a *(chosen)*
226228
227229**30. Should there be one `tools/check` command, and CI?** (A92, A96)
228230
@@ -230,77 +232,77 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
230232- b) `tools/check` now, CI at milestone 7 as planned.
231233- c) Neither.
232234
233−**Answer:** b
235+**Answer:** a *(chosen)*
234236
235237**31. How should the 28 copies of `my-app` files under `tests/` be handled?** (A108, A109)
236238
237239- a) Map `my-app` into the `jibb-dev` desk outside `/tests` and read it directly, removing the copies.
238240- b) Keep the copies, and guard them all from one manifest.
239241
240−**Answer:** a
242+**Answer:** a *(chosen)*
241243
242244**32. Should the generated `tests/lib/jibb.hoon` (3,949 lines) stop being committed?** Assembly drops it and regenerates it anyway. (A83)
243245
244246- a) Yes, and add it to .gitignore.
245247- b) No.
246248
247−**Answer:** a
249+**Answer:** a *(chosen)*
248250
249251**33. Should the importer's test fixtures (about 550 lines) move out of `jibb-import.hoon`**, which app desks vendor, into `tests/lib/jibb-import.hoon`? (A52)
250252
251253- a) Yes.
252254- b) No.
253255
254−**Answer:** a
256+**Answer:** a *(chosen)*
255257
256258**34. Should the import-only fixtures move off `my-app`** (`sur/import-fixture.hoon`, `mar/label.hoon`, the Tlon probe) to a fixtures desk? (A113)
257259
258260- a) Yes.
259261- b) No.
260262
261−**Answer:** a
263+**Answer:** a *(chosen)*
262264
263265**35. Should the five `tools/hoon` checks that exit 0 whatever they print become test arms?** (A91)
264266
265267- a) Yes.
266268- b) No.
267269
268−**Answer:** a
270+**Answer:** a *(chosen)*
269271
270272**36. Should type-checker golden cases keep their full token and tree outputs?** They are 73% of all parser golden lines. (A94)
271273
272274- a) Keep them: each stage's output is compared.
273275- b) Let type cases opt out.
274276
275−**Answer:** a
277+**Answer:** a *(chosen)*
276278
277279**37. Should the tests keep calling internal library arms (137 of them)?** (A126)
278280
279281- a) Keep them for now, and revisit after the checker core changes.
280282- b) Move them behind a small public facade.
281283
282−**Answer:** a
284+**Answer:** a *(chosen)*
283285
284286**38. Should `my-app` keep the failing buttons example and the doc theme's static font?** Milestone 4 will treat both as errors. (A112)
285287
286288- a) Keep them through milestone 2, and list it as a milestone-4 open question.
287289- b) Move the error example out now.
288290
289−**Answer:** a
291+**Answer:** a *(chosen)*
290292
291293**39. Should every vendored package keep going into every desk?** (A117)
292294
293295- a) Yes, as designed.
294296- b) Make it per desk.
295297
296−**Answer:** a
298+**Answer:** a *(chosen)*
297299
298300**40. Should `tools/hoon` get a `--no-debug` mode** for timings, with the docs' figures re-measured? Every eval runs with `!:`, which makes checker work 2.2 to 2.6 times slower. (A137)
299301
300302- a) Yes.
301303- b) No.
302304
303−**Answer:** a
305+**Answer:** a *(chosen)*
304306
305307## Docs and repository
306308
@@ -309,14 +311,14 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
309311- a) Yes.
310312- b) Only fix the contradictions.
311313
312−**Answer:** a
314+**Answer:** a *(chosen)*
313315
314316**42. Until the Claude design doc is synced, which spec wins?** (A104)
315317
316318- a) The repository copy, with a "synced" column in decisions.md.
317319- b) The Claude doc, as development.md says now.
318320
319−**Answer:** a
321+**Answer:** a *(chosen)*
320322
321323**43. Who syncs the Claude design doc with the repository's decisions?**
322324
@@ -324,14 +326,14 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
324326- b) @iko.
325327- c) Leave it for now.
326328
327−**Answer:** b
329+**Answer:** c *(chosen)*
328330
329331**44. Should open-questions.md hold only open questions**, with settled ones moved to decisions.md? (A103)
330332
331333- a) Yes.
332334- b) No.
333335
334−**Answer:** a
336+**Answer:** a *(chosen)*
335337
336338**45. Which licence should the repository have?** It has none, and doesn't state the licences of `vendor/` or the Tlon fixtures. (A107)
337339
@@ -339,4 +341,4 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
339341- b) Another licence.
340342- c) None: keep it private.
341343
342−**Answer:** a
344+**Answer:** a *(chosen)*