Skip to content

The aligner's open questions have a queue - #754

Merged
WaylandYang merged 3 commits into
devfrom
feat/the-aligners-open-questions-have-a-queue
Sep 18, 2026
Merged

WaylandYang merged 3 commits into
devfrom
feat/the-aligners-open-questions-have-a-queue

Conversation

@WaylandYang

Copy link
Copy Markdown
Contributor

The "Alignment" queue of #725, for the signature half of decision 3 of 0044: what the aligner's two votes could not settle goes to a person, and a person's answer is final.

What lands

A queue in Review. A new rail entry, Alignment, lists two kinds of card, oldest first:

  • a phrase signature the phrase binder left undecided (A phrase binds to a property #751): the phrase, the classes at both ends (or "a value"), how many statements sit under it, the three example statements recorded at decision time, and the two votes. The person picks a property from the base's ontology (attributes for a value signature, relations otherwise) and, for a relation, the direction (as written / reversed), or says none fits;
  • a kind word the kind-word binder left undecided (A kind word binds to a class #741): the word, its spellings, example names, the phrases those things take part in, the count, and the two votes. The person picks a class or says none fits.

The select is preset to whatever a vote proposed, so the common case is one click. The rail badge and the overview card count both kinds together.

Two endpoints. POST /kbs/{id}/review/alignment/phrases/{binding_id} writes the signature's binding as a person's decision (decided_by = 'person', which the agent never overwrites) and recomputes the typed graph at once, returning how many rows were added, merged or retired (shown as a toast). POST /kbs/{id}/review/alignment/kind-words/{kind_word} writes the kind word's binding, applies or removes the class on its entities, and queues a phrase-alignment run, since the signatures of every statement those entities take part in just changed. Both audit.

Store. alignment_queue::list assembles the cards from phrase_bindings, type_bindings and the kind-word signature query, with no model call; phrase_bindings::signature_of reads a binding back as the signature its decision needs; ReviewCounts.alignment and ReviewWaiting.alignment join the seven queues' counts and "oldest waiting since".

Checked

Built and type-checked (pnpm build, style guard clean: the selects are the design system's SearchSelect), 63 web tests pass, workspace clippy clean. On the e2e base of #751 (10 undecided: 1 phrase, 9 kind words): the queue lists them with their votes; binding "release" to Document removed the card, took the badge from 10 to 9, typed the entity, wrote the binding as the person's, and queued phrase alignment, which ran.

UI change: waits for a look before merging. A dev server on http://localhost:5174 (this branch, proxied to the e2e API on 8331) shows the queue on the base "batch review".

Not in this change

Implication rules in the queue (the other half of #725's Alignment row); the ontology-proposals queue; "none fits" feeding a proposal for a new property; showing the statements' quotes on a phrase card (the examples are the rendered statements; the quotes would need the chunk).

🤖 Generated with Claude Code

WaylandYang and others added 3 commits September 18, 2026 13:28
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
@WaylandYang
WaylandYang force-pushed the feat/the-aligners-open-questions-have-a-queue branch from f36e7dd to c296bd3 Compare September 18, 2026 05:29
@WaylandYang
WaylandYang merged commit 2c8dba4 into dev Sep 18, 2026
4 checks passed
@WaylandYang
WaylandYang deleted the feat/the-aligners-open-questions-have-a-queue branch September 18, 2026 05:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant