BaseHalf
All posts

Put the citation next to the checked answer

We opened RFC 9535 in a BaseHalf folder, grew a note from the official PDF, checked JSONPath shorthand against a dotted member name, and wrote the answers with the exact section and quote into the same question page.

I keep mixing up a JSON member named a.b with a two-step path. I wanted the official sentence sitting next to the answer, not only in a chat I would close.

I put the official text of RFC 9535, JSONPath Query Expressions for JSON, by S. Gössner, E. Normington, and C. Bormann, IETF, February 2024, into a folder and opened it in BaseHalf 0.7.0. I retrieved both the PDF and the plain text from the RFC Editor on 2026-11-14, Asia/Shanghai, and kept them to read. I am not republishing the document. A short SOURCE.md records those facts. I also wrote question.md first, with this JSON value and two guesses, before I had checked the text:

{
  "a": { "b": 2 },
  "a.b": 1
}

My first guess was that $.a.b would select 1, because of the member named a.b. For the query that should select that 1, I guessed $.a.b again, or maybe $.a\.b.

In Card Detail I opened the PDF, went to section 2.5.1.1, Syntax, on page 41, selected the sentence that begins $.foo.bar is shorthand, and used Grow branch. That created rfc9535-note.md, already listing rfc9535.pdf as its upstream, with a blockquote and a source link to page 41. The product cut the title and the quote at $['f. I did not tidy that away.

I connected the official texts and the grown note to question.md by writing them into its upstream list. Lines appeared on the canvas between the same files. SOURCE.md sits nearby, but I did not connect it. Being nearby is for my eyes. A connection is the context that should stick.

A BaseHalf canvas of the jsonpath-dotted-keys folder: rfc9535.pdf and rfc9535.txt on the left, the grown note in the center connected into the question, and SOURCE.md on the right with no line into the question.

Card Detail open on rfc9535.pdf at section 2.5.1.1 on page 41, with the official shorthand sentence selected and the Grow branch button in the toolbar.

I selected the question card and started Claude Code in the Agent Area. The Agent Area is where the session runs; it is not itself the agent. I asked it to read question.md and only the files in its upstream, and for each question to say whether my first guess was right, give the answer, and quote the official rule with the section number, without changing any files.

It opened those files, and after 53 seconds, at 18:26 Asia/Shanghai, it said both of my first guesses were wrong.

Claude Code in the Agent Area beside the same canvas, after 53 seconds, with the checked conclusions and the official shorthand sentence visible.

I did not stop at the model's wording. I checked the same sentences in the official text.

  1. $.a.b selects 2, not 1. Each .name is its own step, so this query is the same as $['a']['b']. RFC 9535, Section 2.5.1.1: "Thus, for example, $.foo.bar is shorthand for $['foo']['bar'] (but not for $['foo.bar'])."
  2. The query that selects 1 at the member named a.b is $['a.b'], or $["a.b"]. $.a\.b is not valid shorthand: member-name-shorthand does not allow . or \. Section 2.3.1.2 says a name selector "selects a member value whose name equals the member name M". Section 2.1 says an implementation "MUST raise an error for any query that is not well-formed and valid."

I wrote those checked answers, with the section numbers and the sentences I used, back into the same question.md page, under the heading I had left for them, and I left my first guesses above that heading. In Card Detail, the Preview shows the answers and the citations in the page I will reopen tomorrow. The Source view shows the upstream list at the top of the same file: rfc9535.pdf, rfc9535.txt, and rfc9535-note.md.

Card Detail open on question.md in the Preview, with the first guesses still visible and the checked answers written underneath, each with the RFC section and the sentence used.

The same file in the Source view, with the upstream list in the frontmatter and the checked answers in the Markdown below.

This is not a notebook that answers every file by itself, and it is not a built-in summary. The selection in the status bar lasts only while the window is open. The official text, the grown note, the question, and the checked answers with their citations are ordinary files in the folder. If I close the chat, I still have the page where the sentence sits next to the answer.