Files
Maven/internal/router/task_phrases.json
claude 87d176153a router: stage 0 claims the task marker before the model renames it (V-467)
Spoken capture was dead. "добавь в задачи купить молоко" routed act, so the
gate found no allowlisted fn and asked "Что сделать?", and the list stayed
empty. Capture rides the note intent by design (#130, no eighth intent), and
nothing under actionNote was reached any more. The model also rewrote the
payload on the way — "купить молоко" came back as "сделать покупку молока",
and a task must read as the words he said.

TaskCaptureGrammar answers it at stage 0, the same place the agenda rules
went. It matches any utterance and lets ParseTaskCapture refuse, so the
marker list stays data. Three phrasings he used are added to that list:
"запиши в список дел" and the two next to it were missing.

The other deterministic matchers were checked for the same exposure. They
are all question-shaped — money, habit, feed, day plan, task list, calendar —
and a question lands on query, which is where they already sit. Capture was
the only imperative among them, which is why only it was taken.

ru-note-006 is the fixture case. The classifier alone cannot pass it, and the
hash baseline drops by that one case; the daemon answers it at stage 0.
2026-08-04 03:12:47 +04:00

63 lines
2.2 KiB
JSON

{
"_comment": [
"The task capture and task-listing vocabulary. Embedded by task_phrases.go.",
"",
"These are lexicon, not logic: which words mean 'put this on the list' is a",
"fact about how he speaks, and it changes as he uses the thing. Keeping them",
"in Go meant every new phrasing was a source diff.",
"",
"capture_prefixes must be LEADING phrases. 'добавь в задачи купить молоко' is",
"a capture; 'я не добавил молоко в список' is him talking, and only position",
"tells them apart. There is deliberately no 'надо'/'нужно' entry: 'надо бы",
"поспать' is a mood, not a task, and guessing would fill the list with them.",
"",
"urgency markers carry the weight he stated out loud. Two rungs only:",
"'срочно' is a deadline he has not named and 'важно' is a preference. A third",
"shade would be a distinction he never makes.",
"",
"list_nouns are the nouns that make a question be about the list.",
"list_shortcut_nouns are the subset that stand alone as a whole utterance",
"('задачи'), which the longer nouns do not ('дел')."
],
"capture_prefixes": [
"добавь в задачи",
"добавь в тудушки",
"добавь в список задач",
"добавь в список дел",
"добавь в список",
"добавь задачу",
"запиши в задачи",
"запиши в список дел",
"запиши в список задач",
"запиши в список",
"запиши задачу",
"новая задача",
"поставь задачу",
"в задачи",
"add a task",
"add task",
"add to my tasks",
"add to tasks",
"new task"
],
"urgency_markers": [
{ "word": "срочно", "weight": 3 },
{ "word": "urgent", "weight": 3 },
{ "word": "важно", "weight": 2 },
{ "word": "important", "weight": 2 }
],
"list_nouns": [
"задачи",
"задачах",
"задач",
"задачам",
"дела",
"делах",
"дел",
"tasks",
"todo",
"todos"
],
"list_shortcut_nouns": ["задачи", "задач", "tasks"]
}