From d807d9619089697b5337bb2b83d28f291b6f8c04 Mon Sep 17 00:00:00 2001 From: Dmitrii Vasilev Date: Wed, 23 Sep 2026 00:51:56 +0700 Subject: [PATCH] fix(website): the Functions page could not draw the only broken function The live status endpoint of 999-multibots-telegraf answered on 2026-09-22 with 33 registered functions. The site's build-time catalog carried 28. The difference is a strict subset -- five live-only rows, nothing catalog- only -- and those five carry 448 of the week's runs and all five failed runs in the entire project. crm-proactive-sweep is the only function anywhere with failed > 0, and it was not in the catalog at all. Card membership is decided at build time while the run counters are polled live, so no amount of polling could make the broken card appear: the page was structurally incapable of showing the one thing that was wrong. That is what this changes. Five function specs and five Inngest cron cards are added, read from the bot at 05fd960 (crmProactiveSweep.ts:101, tonPendingWatch.ts:51, robokassaUnclaimedWatch.ts:44, clubInvoiceAbandonedWatch.ts:22, clientTelemetryDaily.ts:62). The code witness public/functions/manifest.json gains the five matching rows, copied from the bot's own functions manifest and marked read_at 05fd960; mainRegisters goes 28 -> 33. Their deployment is recorded as unread (deployed_2026_09_09 null), not false. The false three of them still carry upstream is the 2026-09-09 probe pass, which predates their registration -- and the live endpoint answered for all five. baseFunctions stays 24 because 24 is still what that pass measured. Two spec fields deliberately disagree with the manifest and say so on the card: the outreach card of crm-proactive-sweep goes to the seller who owns the bot, not to the end client, so SIDE_EFFECTS reads messages-owners and not messages-user; and all five stop a probe at the same isSafeMode early return, so GUARD reads safe-mode where the manifest recorded none. The manifest's db-read is dropped because the catalog vocabulary has no such value; each card states the read in NOTE instead. The catalogs are regenerated by scripts/agents-from-specs.mjs, not edited. --- apps/website/i18n/agents.ru.json | 35 ++++ apps/website/public/agents/spec-agents.json | 2 +- apps/website/public/crons/spec-crons.json | 2 +- apps/website/public/docs/system-docs.json | 2 +- apps/website/public/functions/manifest.json | 152 +++++++++++++++++- .../public/functions/spec-functions.json | 2 +- apps/website/public/skills/spec-skills.json | 2 +- ...tibots-telegraf-client-telemetry-daily.t27 | 25 +++ ...-telegraf-club-invoice-abandoned-watch.t27 | 25 +++ ...multibots-telegraf-crm-proactive-sweep.t27 | 25 +++ ...ots-telegraf-robokassa-unclaimed-watch.t27 | 25 +++ ...9-multibots-telegraf-ton-pending-watch.t27 | 25 +++ .../functions/client-telemetry-daily.t27 | 42 +++++ .../club-invoice-abandoned-watch.t27 | 42 +++++ .../specs/functions/crm-proactive-sweep.t27 | 42 +++++ .../functions/robokassa-unclaimed-watch.t27 | 42 +++++ .../specs/functions/ton-pending-watch.t27 | 42 +++++ apps/website/public/tools/spec-tools.json | 2 +- .../scripts/agents-from-specs.test.mjs | 23 ++- 19 files changed, 542 insertions(+), 15 deletions(-) create mode 100644 apps/website/public/t27/files/specs/crons/999-multibots-telegraf-client-telemetry-daily.t27 create mode 100644 apps/website/public/t27/files/specs/crons/999-multibots-telegraf-club-invoice-abandoned-watch.t27 create mode 100644 apps/website/public/t27/files/specs/crons/999-multibots-telegraf-crm-proactive-sweep.t27 create mode 100644 apps/website/public/t27/files/specs/crons/999-multibots-telegraf-robokassa-unclaimed-watch.t27 create mode 100644 apps/website/public/t27/files/specs/crons/999-multibots-telegraf-ton-pending-watch.t27 create mode 100644 apps/website/public/t27/files/specs/functions/client-telemetry-daily.t27 create mode 100644 apps/website/public/t27/files/specs/functions/club-invoice-abandoned-watch.t27 create mode 100644 apps/website/public/t27/files/specs/functions/crm-proactive-sweep.t27 create mode 100644 apps/website/public/t27/files/specs/functions/robokassa-unclaimed-watch.t27 create mode 100644 apps/website/public/t27/files/specs/functions/ton-pending-watch.t27 diff --git a/apps/website/i18n/agents.ru.json b/apps/website/i18n/agents.ru.json index 7ee225e1ce..ffd162980f 100644 --- a/apps/website/i18n/agents.ru.json +++ b/apps/website/i18n/agents.ru.json @@ -674,6 +674,41 @@ }, "gHashTag/trinity:tri/wallet": { "SUMMARY": "Баланс кошелька DePIN." + }, + "crm-proactive-sweep": { + "SUMMARY": "Каждые полчаса определяет продавцов, которых обслуживает зарегистрированный носитель, и обходит каждого: по HTTP вызывает CRM-инструменты рендера, спрашивает модель, что делать дальше, и присылает продавцу в его собственный чат карточку для связи. В безопасном режиме прогон пропускается целиком.", + "NAME": "CRM: проактивный обход продавцов" + }, + "ton-pending-watch": { + "SUMMARY": "Каждый час читает незакрытые TON-счета, спрашивает у сети, действительно ли монеты пришли, и пишет в журнал рендера одну строку: либо что невостребованных нет, либо что человек заплатил, а зачисления не было. Только читает: платёж никогда не закрывает.", + "NAME": "Деньги: TON пришёл, но не зачислен" + }, + "robokassa-unclaimed-watch": { + "SUMMARY": "Каждое утро читает незакрытые счета Robokassa за последние тридцать дней, спрашивает у провайдера состояние каждого и пишет в журнал рендера одну строку: либо что невостребованных нет, либо что человек заплатил, а зачисления не было. Только читает: платёж никогда не закрывает.", + "NAME": "Деньги: рубли пришли, но не зачислены" + }, + "club-invoice-abandoned-watch": { + "SUMMARY": "Каждый час помечает как брошенные те клубные счета, которым больше часа и после которых не было оплаты, записывая по одной строке воронки на счёт, чтобы путь от карточки к счёту и дальше к оплате или отказу читался без ручного соединения таблиц. Ничего не списывает и никому не пишет.", + "NAME": "Воронка: клубные счета, которые никто не оплатил" + }, + "client-telemetry-daily": { + "SUMMARY": "Каждый день в 07:00 UTC собирает отчёт о том, куда дошли клиенты и где остановились, отправляет его владельцу и удаляет уже учтённые события. Там, где ежедневный советник отчитывается о деньгах, этот отчитывается о пользовании продуктом.", + "NAME": "Клиенты: ежедневный отчёт о пользовании владельцу" + }, + "inngest/999-multibots-telegraf/crm-proactive-sweep": { + "SUMMARY": "Обходит каждого продавца, которого обслуживает зарегистрированный носитель, и может прислать в его собственный чат по одной карточке для связи." + }, + "inngest/999-multibots-telegraf/ton-pending-watch": { + "SUMMARY": "Каждый час спрашивает у сети, пришли ли монеты по незакрытому TON-счёту, который так и не зачислили." + }, + "inngest/999-multibots-telegraf/robokassa-unclaimed-watch": { + "SUMMARY": "Каждое утро спрашивает Robokassa о незакрытых счетах за последние тридцать дней и сообщает о тех, что оплачены, но не зачислены." + }, + "inngest/999-multibots-telegraf/club-invoice-abandoned-watch": { + "SUMMARY": "Помечает как брошенные клубные счета, после которых час не было оплаты, по одному разу на счёт." + }, + "inngest/999-multibots-telegraf/client-telemetry-daily": { + "SUMMARY": "Отправляет владельцу ежедневный отчёт о том, куда дошли клиенты и где остановились, затем удаляет учтённые события." } } } diff --git a/apps/website/public/agents/spec-agents.json b/apps/website/public/agents/spec-agents.json index f424fdac6d..7a3cf34d6e 100644 --- a/apps/website/public/agents/spec-agents.json +++ b/apps/website/public/agents/spec-agents.json @@ -1 +1 @@ -{"agents":[{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Bull - leader, primary force","CLARA_ROLE":"TA1: AR Architecture Design - designs AR module architecture, ensures composability","DOMAIN":"Architecture / ADR / SOUL","ENABLED":true,"ENTRY_INVARIANT":"SOUL.md exists, is ASCII-only, and defines L1-L7 laws","EXIT_INVARIANT":"All ADRs reviewed, consistent with constitution, no conflicts","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/A","KEY_FILES":["SOUL.md","architecture/ADR-*.md","architecture/CANON_DE_ZIGFICATION.md"],"KIND":"agent","LAYER":"Archetypal","LETTER":"A","LETTER_NAME":"Alpha","NAME":"Alpha (Architecture)","ORDINAL":1,"REGISTER":"R0","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Architecture / ADR / SOUL. SOUL.md is the primary cause and the ADRs are the constitution of the system.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/A","inSpecCorpus":true,"letter":"A","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_a","name":{"en":"Alpha (Architecture)","ru":"Альфа (Архитектура)"},"ordinal":1,"sha256":"0bcd805f2c789604a16712f910a652c698fe0b16a2c26ccb7a962a764e379943","skills":[],"specPath":"specs/agents/a.t27","summary":{"en":"Architecture / ADR / SOUL. SOUL.md is the primary cause and the ADRs are the constitution of the system.","ru":"Архитектура / ADR / SOUL. SOUL.md — первопричина, а ADR — конституция системы."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"House - container, dwelling","CLARA_ROLE":"","DOMAIN":"Build / Pipeline","ENABLED":true,"ENTRY_INVARIANT":"Build system is clean, no stale artifacts","EXIT_INVARIANT":"All tests pass, CI pipeline is green","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/B","KEY_FILES":["build.tri","src/tri/pipeline/"],"KIND":"agent","LAYER":"Archetypal","LETTER":"B","LETTER_NAME":"Beta","NAME":"Beta (Build)","ORDINAL":2,"REGISTER":"R1","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Build / Pipeline. build.tri is the house of specifications and the pipeline is its dwelling.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/B","inSpecCorpus":true,"letter":"B","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_b","name":{"en":"Beta (Build)","ru":"Бета (Сборка)"},"ordinal":2,"sha256":"61d170317eadcdfe028549190c431b633d93cb5dc2dea7fdc1c041c71154b34f","skills":[],"specPath":"specs/agents/b.t27","summary":{"en":"Build / Pipeline. build.tri is the house of specifications and the pipeline is its dwelling.","ru":"Сборка / конвейер. build.tri — дом спецификаций, а конвейер — его жилище."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Camel - carrier across borders","CLARA_ROLE":"TA1: AR Language Implementation - implements AR language features in t27 compiler","DOMAIN":"Compiler Core / AR Language","ENABLED":true,"ENTRY_INVARIANT":"Parser can handle all AR syntax (ternary logic, rules, proofs)","EXIT_INVARIANT":"Generated code compiles, AST is valid","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/C","KEY_FILES":["t27/compiler/parser/","bootstrap/src/compiler.rs","specs/ar/*.t27"],"KIND":"agent","LAYER":"Archetypal","LETTER":"C","LETTER_NAME":"Gamma","NAME":"Gamma (Compiler Core)","ORDINAL":3,"REGISTER":"R2","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Compiler Core / AR Language. The compiler carries text across borders, from spec to generated code.","TOOLS":["tri/gen"],"TOOLS_NOTE":".claude/agents/agent-c-compiler.md:40 names tri gen (trigger On tri gen command, line 7). Line 41 names tri seal, which is not a tri command at this commit (tri cell seal is not bound here)."},"health":"ok","id":"t27/C","inSpecCorpus":true,"letter":"C","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_c","name":{"en":"Gamma (Compiler Core)","ru":"Гамма (Ядро компилятора)"},"ordinal":3,"sha256":"89402274898f607a2be4d505f8925c76802acfe2683739605f8413604530ff23","skills":[],"specPath":"specs/agents/c.t27","summary":{"en":"Compiler Core / AR Language. The compiler carries text across borders, from spec to generated code.","ru":"Ядро компилятора / язык AR. Компилятор переносит текст через границы: от спеки к сгенерированному коду."},"tools":[{"id":"tri/gen","ok":true}],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Door - transition between worlds","CLARA_ROLE":"","DOMAIN":"De-Zigfication / Migration","ENABLED":true,"ENTRY_INVARIANT":"Legacy Zig modules are catalogued and mapped","EXIT_INVARIANT":"All AR specs are in .t27 format, no Zig hand-editing on AR","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/D","KEY_FILES":["docs/migration-map.md","specs/ar/*.t27"],"KIND":"agent","LAYER":"Archetypal","LETTER":"D","LETTER_NAME":"Delta","NAME":"Delta (De-Zigfication)","ORDINAL":4,"REGISTER":"R3","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"De-Zigfication / Migration. De-Zigfication is the open door from .zig to .t27.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/D","inSpecCorpus":true,"letter":"D","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_d","name":{"en":"Delta (De-Zigfication)","ru":"Дельта (Де-зигификация)"},"ordinal":4,"sha256":"093a8c454b5b7ac163fa142bcf6e9ad46fbc2acc1e8d1eb49bf38ef036f915db","skills":[],"specPath":"specs/agents/d.t27","summary":{"en":"De-Zigfication / Migration. De-Zigfication is the open door from .zig to .t27.","ru":"Де-зигификация / миграция. Де-зигификация — открытая дверь из .zig в .t27."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Window - view into the past","CLARA_ROLE":"TA2: AR Explanation & XAI - generates human-readable explanations for AR outputs","DOMAIN":"Experience / XAI","ENABLED":true,"ENTRY_INVARIANT":"Episode log is append-only, no deletions","EXIT_INVARIANT":"Lessons learned are catalogued, explanations are generated","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/E","KEY_FILES":[".trinity/experience/","specs/ar/explainability.t27","specs/ar/proof_trace.t27"],"KIND":"agent","LAYER":"Archetypal","LETTER":"E","LETTER_NAME":"Epsilon","NAME":"Epsilon (Experience)","ORDINAL":5,"REGISTER":"R4","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent. .claude/agents/agent-e-experience.md mentions phi-loop only as the label of the feedback field (1 = phi-loop, 0 = agent cycle); the alphabet key files point at the experience log and AR specs, not at a skill directory.","SOUL":"SOUL.md","SUMMARY_EN":"Experience / XAI. Experience is the window into the past of the system, the breath of its memory.","TOOLS":["tri/experience"],"TOOLS_NOTE":".claude/agents/agent-e-experience.md:64 names tri experience save; lines 65-66 name tri experience query and tri notebook, which the CLI does not have at this commit. The tri-mcp server mirrors the command as tool tri_experience_save."},"health":"ok","id":"t27/E","inSpecCorpus":true,"letter":"E","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_e","name":{"en":"Epsilon (Experience)","ru":"Эпсилон (Опыт)"},"ordinal":5,"sha256":"8680ac8254c709d607055ee4ac6872b05bece422635c44dfcc5494d99952992c","skills":[],"specPath":"specs/agents/e.t27","summary":{"en":"Experience / XAI. Experience is the window into the past of the system, the breath of its memory.","ru":"Опыт / XAI. Опыт — окно в прошлое системы, дыхание её памяти."},"tools":[{"id":"tri/experience","ok":true}],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Nail - connection, binding","CLARA_ROLE":"","DOMAIN":"Formal Conformance","ENABLED":true,"ENTRY_INVARIANT":"All sacred vectors (G, OmegaLambda, phi) are valid","EXIT_INVARIANT":"Conformance > 95%, all sacred physics verified","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/F","KEY_FILES":["t27/conformance/*.json","conformance/FORMAT-SPEC-001.json"],"KIND":"agent","LAYER":"Archetypal","LETTER":"F","LETTER_NAME":"Phi","NAME":"Phi (Formal Conformance)","ORDINAL":6,"REGISTER":"R5","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Formal Conformance. The conformance JSON files are the nails holding the specs together.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: the alphabet key files are conformance JSON vectors (t27/conformance/*.json) and no source names tri vectors for F."},"health":"ok","id":"t27/F","inSpecCorpus":true,"letter":"F","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_f","name":{"en":"Phi (Formal Conformance)","ru":"Фи (Формальное соответствие)"},"ordinal":6,"sha256":"1f69f78fbcbe07d6ccc592bb92f39fd33449fdf961244731c3be644e0b8b719c","skills":[],"specPath":"specs/agents/f.t27","summary":{"en":"Formal Conformance. The conformance JSON files are the nails holding the specs together.","ru":"Формальное соответствие. JSON-файлы соответствия — гвозди, скрепляющие спеки."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Return - feedback","CLARA_ROLE":"","DOMAIN":"Graph / ArchBench","ENABLED":true,"ENTRY_INVARIANT":"Graph is acyclic, topological sort exists","EXIT_INVARIANT":"All edges satisfied, no broken dependencies","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/G","KEY_FILES":["architecture/graph_v2.json","architecture/graph.tri"],"KIND":"agent","LAYER":"Archetypal","LETTER":"G","LETTER_NAME":"Gamma (var.)","NAME":"Gamma (Graph)","ORDINAL":7,"REGISTER":"R6","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Graph / ArchBench. The graph is the map of the Trinity world and its distance metric.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/G","inSpecCorpus":true,"letter":"G","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_g","name":{"en":"Gamma (Graph)","ru":"Гамма (Граф)"},"ordinal":7,"sha256":"2508126a477a8a323b133af6f2fb4c26d88be031b678b2b54de2a55656ad0cc0","skills":[],"specPath":"specs/agents/g.t27","summary":{"en":"Graph / ArchBench. The graph is the map of the Trinity world and its distance metric.","ru":"Граф / ArchBench. Граф — карта мира Trinity и его метрика расстояния."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Fence - boundary, life","CLARA_ROLE":"","DOMAIN":"HSLM / NN Architectures","ENABLED":true,"ENTRY_INVARIANT":"HSLM layers are defined, connections are valid","EXIT_INVARIANT":"Attention traces are validated, sacred attention holds","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/H","KEY_FILES":["t27/specs/nn/hslm.t27","t27/specs/nn/attention.t27"],"KIND":"agent","LAYER":"Archetypal","LETTER":"H","LETTER_NAME":"Eta","NAME":"Eta (HSLM)","ORDINAL":8,"REGISTER":"R7","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"HSLM / NN Architectures. HSLM is the neural-network architecture, the boundary between brain layers.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/H","inSpecCorpus":true,"letter":"H","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_h","name":{"en":"Eta (HSLM)","ru":"Эта (HSLM)"},"ordinal":8,"sha256":"eaee2545844cfe66509afedf95424ca76e2d3717a8bced297abc0121b3ea6a8a","skills":[],"specPath":"specs/agents/h.t27","summary":{"en":"HSLM / NN Architectures. HSLM is the neural-network architecture, the boundary between brain layers.","ru":"HSLM / архитектуры нейросетей. HSLM — архитектура нейросети, граница между слоями мозга."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Hand - action, point","CLARA_ROLE":"","DOMAIN":"ISA / Registers","ENABLED":true,"ENTRY_INVARIANT":"27 registers are defined, Coptic mapping exists","EXIT_INVARIANT":"Coptic mapping is verified (bijection), all registers accessible","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/I","KEY_FILES":["t27/specs/isa/registers.t27"],"KIND":"agent","LAYER":"Archetypal","LETTER":"I","LETTER_NAME":"Iota","NAME":"Iota (ISA)","ORDINAL":9,"REGISTER":"R8","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"ISA / Registers. The ISA is the hand of the machine, its most basic instruction level.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/I","inSpecCorpus":true,"letter":"I","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_i","name":{"en":"Iota (ISA)","ru":"Йота (ISA)"},"ordinal":9,"sha256":"a1e332956a4113776724f90271af313d36df6a30bb5aab6514bb8df2729ef16c","skills":[],"specPath":"specs/agents/i.t27","summary":{"en":"ISA / Registers. The ISA is the hand of the machine, its most basic instruction level.","ru":"ISA / регистры. ISA — рука машины, её самый базовый уровень инструкций."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Hand with grip - dispatcher","CLARA_ROLE":"","DOMAIN":"Jobs / Task Routing","ENABLED":true,"ENTRY_INVARIANT":"Task queue exists, scheduler is running","EXIT_INVARIANT":"No stuck jobs > 1 hour, all jobs assigned","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/J","KEY_FILES":["src/tri/dev_commands.zig"],"KIND":"agent","LAYER":"Spiritual","LETTER":"J","LETTER_NAME":"Iota-extended","NAME":"Iota-extended (Jobs)","ORDINAL":10,"REGISTER":"R9","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Jobs / Task Routing. Jobs grab tasks and route them.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/J","inSpecCorpus":true,"letter":"J","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_j","name":{"en":"Iota-extended (Jobs)","ru":"Йота-расширенная (Задания)"},"ordinal":10,"sha256":"1c3e0fdc23d7ad66ae39662f81621504cfdab1b4660a904508b75867cbbd187e","skills":[],"specPath":"specs/agents/j.t27","summary":{"en":"Jobs / Task Routing. Jobs grab tasks and route them.","ru":"Задания / маршрутизация задач. Задания захватывают задачи и направляют их."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Palm - open hand","CLARA_ROLE":"","DOMAIN":"Kernel / FPGA MAC","ENABLED":true,"ENTRY_INVARIANT":"MAC spec is zero-DSP (no digital signal processors)","EXIT_INVARIANT":"Synthesis is verified, E8 kernel integration works","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/K","KEY_FILES":["t27/specs/fpga/mac.t27","specs/math/e8_lie_algebra.t27"],"KIND":"agent","LAYER":"Spiritual","LETTER":"K","LETTER_NAME":"Kappa","NAME":"Kappa (Kernel)","ORDINAL":11,"REGISTER":"R10","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Kernel / FPGA MAC. Kernel and FPGA are the open palm of the lower hardware level.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/K","inSpecCorpus":true,"letter":"K","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_k","name":{"en":"Kappa (Kernel)","ru":"Каппа (Ядро)"},"ordinal":11,"sha256":"52c87609efcb16a0ddd296875010488540b619c95b16e1967bc26a4a488f856e","skills":[],"specPath":"specs/agents/k.t27","summary":{"en":"Kernel / FPGA MAC. Kernel and FPGA are the open palm of the lower hardware level.","ru":"Ядро / FPGA MAC. Ядро и FPGA — открытая ладонь нижнего аппаратного уровня."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Staff - teacher, guide","CLARA_ROLE":"","DOMAIN":"Language / Syntax vNEXT","ENABLED":true,"ENTRY_INVARIANT":"Syntax vNEXT is documented, BNF grammar exists","EXIT_INVARIANT":"Parser implements vNEXT, all syntax tests pass","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/L","KEY_FILES":["docs/nona-02-organism/TRI_SYNTAX_VNEXT.md"],"KIND":"agent","LAYER":"Spiritual","LETTER":"L","LETTER_NAME":"Lambda","NAME":"Lambda (Language)","ORDINAL":12,"REGISTER":"R11","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Language / Syntax vNEXT. Language is the teacher guiding Trinity speech.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/L","inSpecCorpus":true,"letter":"L","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_l","name":{"en":"Lambda (Language)","ru":"Лямбда (Язык)"},"ordinal":12,"sha256":"2d98573747c17289c348f411e21d8a455be1a647577b6c3aba8d697689ff76f8","skills":[],"specPath":"specs/agents/l.t27","summary":{"en":"Language / Syntax vNEXT. Language is the teacher guiding Trinity speech.","ru":"Язык / синтаксис vNEXT. Язык — учитель, направляющий речь Trinity."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Water - flow of data","CLARA_ROLE":"","DOMAIN":"Metrics / Telemetry","ENABLED":true,"ENTRY_INVARIANT":"Bench baseline exists, telemetry is running","EXIT_INVARIANT":"No performance regression > 5%, all benchmarks current","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/M","KEY_FILES":[".trinity/bench/","docs/qualification/TVP.md"],"KIND":"agent","LAYER":"Spiritual","LETTER":"M","LETTER_NAME":"Mu","NAME":"Mu (Metrics)","ORDINAL":13,"REGISTER":"R12","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Metrics / Telemetry. Metrics are the continuous stream of measurements.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/M","inSpecCorpus":true,"letter":"M","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_m","name":{"en":"Mu (Metrics)","ru":"Мю (Метрики)"},"ordinal":13,"sha256":"0aac5e911f0cf60e0912acc755c63777ae91da62510a806363ff99f9c3599cde","skills":[],"specPath":"specs/agents/m.t27","summary":{"en":"Metrics / Telemetry. Metrics are the continuous stream of measurements.","ru":"Метрики / телеметрия. Метрики — непрерывный поток измерений."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Fish - offspring, multiplication","CLARA_ROLE":"","DOMAIN":"Numeric / GoldenFloat","ENABLED":true,"ENTRY_INVARIANT":"GF family is defined (GF4, GF8, GF12, GF16, GF20, GF24, GF32)","EXIT_INVARIANT":"phi identity validated, all numeric tests pass","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/N","KEY_FILES":["t27/specs/numeric/","docs/NUMERIC-STANDARD-001.md"],"KIND":"agent","LAYER":"Spiritual","LETTER":"N","LETTER_NAME":"Nu","NAME":"Nu (Numeric)","ORDINAL":14,"REGISTER":"R13","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Numeric / GoldenFloat. Numeric is the number-fish swimming toward the golden ratio.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/N","inSpecCorpus":true,"letter":"N","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_n","name":{"en":"Nu (Numeric)","ru":"Ню (Числа)"},"ordinal":14,"sha256":"fb4321801a722b535d3a689a94f5ecf60894cf5f448d3e33e6447866619e541b","skills":[],"specPath":"specs/agents/n.t27","summary":{"en":"Numeric / GoldenFloat. Numeric is the number-fish swimming toward the golden ratio.","ru":"Числа / GoldenFloat. Числовой слой — рыба-число, плывущая к золотому сечению."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Eye - all-seeing oko","CLARA_ROLE":"TA2: AR Composition Engine - composes ML and AR components, manages interactions","DOMAIN":"Orchestration / Phases","ENABLED":true,"ENTRY_INVARIANT":"All phases (1-6) are defined, phase transitions valid","EXIT_INVARIANT":"Orchestration completes, no stuck phases","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/O","KEY_FILES":["src/tri/pipeline/","specs/ar/composition.t27"],"KIND":"agent","LAYER":"Spiritual","LETTER":"O","LETTER_NAME":"Omicron","NAME":"Omicron (Orchestration)","ORDINAL":15,"REGISTER":"R14","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Orchestration / Phases. Orchestration is the all-seeing eye of the phases.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/O","inSpecCorpus":true,"letter":"O","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_o","name":{"en":"Omicron (Orchestration)","ru":"Омикрон (Оркестрация)"},"ordinal":15,"sha256":"f2fd554e5cb70cea54f2daf2e3b36699175354595d333585ac56b556a95864c3","skills":[],"specPath":"specs/agents/o.t27","summary":{"en":"Orchestration / Phases. Orchestration is the all-seeing eye of the phases.","ru":"Оркестрация / фазы. Оркестрация — всевидящее око фаз."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Mouth - speech of universe","CLARA_ROLE":"TA1: AR Theoretical Foundations - provides mathematical basis for AR reasoning","DOMAIN":"Physics / SacredPhysics","ENABLED":true,"ENTRY_INVARIANT":"phi^2 + phi^-2 = 3 holds in all calculations","EXIT_INVARIANT":"Sacred constants (G, OmegaLambda, phi, tpresent) are verified","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/P","KEY_FILES":["t27/specs/math/sacred_physics.t27","specs/physics/su2_chern_simons.t27"],"KIND":"agent","LAYER":"Spiritual","LETTER":"P","LETTER_NAME":"Pi","NAME":"Pi (Physics)","ORDINAL":16,"REGISTER":"R15","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Physics / SacredPhysics. Physics is nature speaking through its constants (phi, G, OmegaLambda).","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/P","inSpecCorpus":true,"letter":"P","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_p","name":{"en":"Pi (Physics)","ru":"Пи (Физика)"},"ordinal":16,"sha256":"badf4b6c05c043017b93d89968ce4139335cac039a4de235b294050e2b916aab","skills":[],"specPath":"specs/agents/p.t27","summary":{"en":"Physics / SacredPhysics. Physics is nature speaking through its constants (phi, G, OmegaLambda).","ru":"Физика / SacredPhysics. Физика — природа, говорящая через свои константы (phi, G, OmegaLambda)."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Needle's eye - bottleneck","CLARA_ROLE":"","DOMAIN":"Queue / Scheduling","ENABLED":true,"ENTRY_INVARIANT":"Queue is not empty (work exists)","EXIT_INVARIANT":"MNL (Most-Numerous-Loss) pattern enforced, no starvation","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/Q","KEY_FILES":["src/tri/dev_commands.zig"],"KIND":"agent","LAYER":"Spiritual","LETTER":"Q","LETTER_NAME":"Theta","NAME":"Theta (Queue)","ORDINAL":17,"REGISTER":"R16","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Queue / Scheduling. The queue is the needle's eye for tasks.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/Q","inSpecCorpus":true,"letter":"Q","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_q","name":{"en":"Theta (Queue)","ru":"Тета (Очередь)"},"ordinal":17,"sha256":"f9b41127b3546ba9fbf057a603b081d9b3bb4eab7ee46b23f5e8c804dfd801d8","skills":[],"specPath":"specs/agents/q.t27","summary":{"en":"Queue / Scheduling. The queue is the needle's eye for tasks.","ru":"Очередь / планирование. Очередь — игольное ушко для задач."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Head - beginning of execution","CLARA_ROLE":"","DOMAIN":"Runtime / Bootstrap","ENABLED":true,"ENTRY_INVARIANT":"Runtime is initialized, ABI is defined","EXIT_INVARIANT":"No memory leaks, no resource exhaustion","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/R","KEY_FILES":["t27/compiler/runtime/","bootstrap/src/compiler.rs"],"KIND":"agent","LAYER":"Spiritual","LETTER":"R","LETTER_NAME":"Rho","NAME":"Rho (Runtime)","ORDINAL":18,"REGISTER":"R17","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Runtime / Bootstrap. Runtime is the head of the system during execution.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/R","inSpecCorpus":true,"letter":"R","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_r","name":{"en":"Rho (Runtime)","ru":"Ро (Рантайм)"},"ordinal":18,"sha256":"aab3e536f0afdce1db03304ea4591988b4f284f1a456a6d93bab689ed253eee2","skills":[],"specPath":"specs/agents/r.t27","summary":{"en":"Runtime / Bootstrap. Runtime is the head of the system during execution.","ru":"Рантайм / бутстрап. Рантайм — голова системы во время исполнения."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Teeth - sharpness, flame","CLARA_ROLE":"TA1: AR Spec Standards - defines and enforces AR spec conventions","DOMAIN":"Specs / Standardization / AR Specs","ENABLED":true,"ENTRY_INVARIANT":"All specs have TDD (test/invariant/bench)","EXIT_INVARIANT":"Standards are consistent, naming rules followed","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/S","KEY_FILES":["specs/","specs/ar/*.t27","docs/NUMERIC-*.md"],"KIND":"agent","LAYER":"Physical","LETTER":"S","LETTER_NAME":"Sigma","NAME":"Sigma (Specs)","ORDINAL":19,"REGISTER":"R18","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Specs / Standardization / AR Specs. Specs are the teeth of the standard that grind everything into canon.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent. docs/agents/AGENTS.md:97 lists tri gen, tri test, tri verdict --toxic, tri bench inside a sample prevention payload attributed to S; that is an example message, not an ownership binding."},"health":"ok","id":"t27/S","inSpecCorpus":true,"letter":"S","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_s","name":{"en":"Sigma (Specs)","ru":"Сигма (Спеки)"},"ordinal":19,"sha256":"7f64754295773781de8320b3fefd813ef5d1dd492b4b52f5ac56f9d9e4d01106","skills":[],"specPath":"specs/agents/s.t27","summary":{"en":"Specs / Standardization / AR Specs. Specs are the teeth of the standard that grind everything into canon.","ru":"Спеки / стандартизация / спеки AR. Спеки — зубы стандарта, перемалывающие всё в канон."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"CROSS - seal, signature, truth","CLARA_ROLE":"TA2: AR Orchestrator - coordinates all AR agents for CLARA submission","DOMAIN":"Queen / Lotus Orchestrator","ENABLED":true,"ENTRY_INVARIANT":"Queen health >= 0.9, graph is loaded","EXIT_INVARIANT":"All rings are sealed, verdict is clean","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/T","KEY_FILES":["t27/specs/queen/lotus.t27"],"KIND":"agent","LAYER":"Physical","LETTER":"T","LETTER_NAME":"Tau","NAME":"Tau (TRINITY Queen)","ORDINAL":20,"REGISTER":"R19","SKILLS":["t27/phi-loop","t27/tri-pipeline"],"SKILLS_NOTE":".claude/agents/trinity.md, Phase 2 PLAN: \"Identify required skills (phi-loop, tri-pipeline)\"; Phase 4 VERIFY: \"Run conformance tests via tri-pipeline\". specs/OWNERS.md lists skills/ and crons/ under T-Queen, which is catalog ownership, not a held skill.","SOUL":"SOUL.md","SUMMARY_EN":"Queen / Lotus Orchestrator. T is the queen: she puts the final seal on everything.","TOOLS":["tri/gen","tri/test","mcp/inngest-dev"],"TOOLS_NOTE":".claude/agents/trinity.md:68 (5. Gen - Run tri gen) and :70 (7. Verify - Run tri test); specs/automation/inngest-queen-scheduler.t27 OWNER = \"T\" binds the scheduler mcp/inngest-dev to the Queen (specs/OWNERS.md: skills/ and crons/ under T-Queen). No source binds tri loop or tri health to T."},"health":"ok","id":"t27/T","inSpecCorpus":true,"letter":"T","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_t","name":{"en":"Tau (TRINITY Queen)","ru":"Тау (Королева TRINITY)"},"ordinal":20,"sha256":"25c30ec4e1f38b575e3bb24cdd09bb770ce5e2a1220eac46f4da857916540f66","skills":[{"id":"t27/phi-loop","ok":true},{"id":"t27/tri-pipeline","ok":true}],"specPath":"specs/agents/t.t27","summary":{"en":"Queen / Lotus Orchestrator. T is the queen: she puts the final seal on everything.","ru":"Королева / оркестратор Lotus. T — королева: она ставит на всём финальную печать."},"tools":[{"id":"tri/gen","ok":true},{"id":"tri/test","ok":true},{"id":"mcp/inngest-dev","ok":true}],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Fork - branching","CLARA_ROLE":"","DOMAIN":"Universe Levels / Domains","ENABLED":true,"ENTRY_INVARIANT":"Domain boundaries are defined","EXIT_INVARIANT":"No circular dependencies, domains are orthogonal","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/U","KEY_FILES":["t27/domains/"],"KIND":"agent","LAYER":"Physical","LETTER":"U","LETTER_NAME":"Upsilon","NAME":"Upsilon (Universe)","ORDINAL":21,"REGISTER":"R20","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Universe Levels / Domains. Universe levels are the branching of domains.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/U","inSpecCorpus":true,"letter":"U","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_u","name":{"en":"Upsilon (Universe)","ru":"Ипсилон (Вселенная)"},"ordinal":21,"sha256":"8e96c0001588aee91e7dc5aca1d68be9580b7834c595a78c7d62bfec83868b4b","skills":[],"specPath":"specs/agents/u.t27","summary":{"en":"Universe Levels / Domains. Universe levels are the branching of domains.","ru":"Уровни вселенной / домены. Уровни вселенной — ветвление доменов."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Hook - connection, conjunction","CLARA_ROLE":"TA2: AR Validation & Proof - validates AR reasoning, generates proofs","DOMAIN":"Verdict / Bench / AR Validation","ENABLED":true,"ENTRY_INVARIANT":"Verdict engine is ready, toxic thresholds defined","EXIT_INVARIANT":"Toxicity is detected, proof traces are generated","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/V","KEY_FILES":["src/tri/verdict.zig","specs/ar/proof_trace.t27","specs/ar/restraint.t27"],"KIND":"agent","LAYER":"Physical","LETTER":"V","LETTER_NAME":"Vau (var.)","NAME":"Vau (Verdict)","ORDINAL":22,"REGISTER":"R21","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Verdict / Bench / AR Validation. The verdict is the hook that catches the problem.","TOOLS":["tri/test","tri/verdict"],"TOOLS_NOTE":".claude/agents/agent-v-verify.md:47 (tri test) and :49 (tri verdict); docs/agents/AGENTS_ALPHABET.md:80 PHASE 5 VERDICT names tri verdict --toxic for V. Line 48 names tri verify, which is not a tri command at this commit."},"health":"ok","id":"t27/V","inSpecCorpus":true,"letter":"V","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_v","name":{"en":"Vau (Verdict)","ru":"Вау (Вердикт)"},"ordinal":22,"sha256":"fcce2147f2fced23acc8d32364023ead496c229862f1f03ae9f5fc6c7c384aeb","skills":[],"specPath":"specs/agents/v.t27","summary":{"en":"Verdict / Bench / AR Validation. The verdict is the hook that catches the problem.","ru":"Вердикт / бенч / валидация AR. Вердикт — крюк, который ловит проблему."},"tools":[{"id":"tri/test","ok":true},{"id":"tri/verdict","ok":true}],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Double hook - double seal","CLARA_ROLE":"","DOMAIN":"Workflow / tri cell","ENABLED":true,"ENTRY_INVARIANT":"Cell is sealed, hash is computed","EXIT_INVARIANT":"Hash is verified, commit is signed","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/W","KEY_FILES":["src/tri/cell.zig"],"KIND":"agent","LAYER":"Physical","LETTER":"W","LETTER_NAME":"Double-Vav","NAME":"Double-Vav (Workflow)","ORDINAL":23,"REGISTER":"R22","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Workflow / tri cell. Workflow and tri cell are the double hash-seal.","TOOLS":["tri/cell"],"TOOLS_NOTE":"docs/agents/AGENTS_ALPHABET.md:144: agent W domain Workflow / tri cell, key file src/tri/cell.zig; PHASE 6 EVOLVE: W seals tri-cell commit (hash seal)."},"health":"ok","id":"t27/W","inSpecCorpus":true,"letter":"W","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_w","name":{"en":"Double-Vav (Workflow)","ru":"Двойной Вав (Рабочий процесс)"},"ordinal":23,"sha256":"cc5426dfba21dcb6c38e978fd04c01a0ca38b62b942032668531508d454f5aeb","skills":[],"specPath":"specs/agents/w.t27","summary":{"en":"Workflow / tri cell. Workflow and tri cell are the double hash-seal.","ru":"Рабочий процесс / tri cell. Рабочий процесс и tri cell — двойная хеш-печать."},"tools":[{"id":"tri/cell","ok":true}],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Intersection - point of exchange","CLARA_ROLE":"","DOMAIN":"External Bindings / Interop","ENABLED":true,"ENTRY_INVARIANT":"Bindings are documented","EXIT_INVARIANT":"Interop tests pass, external APIs are current","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/X","KEY_FILES":["bindings/"],"KIND":"agent","LAYER":"Physical","LETTER":"X","LETTER_NAME":"Chi","NAME":"Chi (External)","ORDINAL":24,"REGISTER":"R23","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"External Bindings / Interop. External bindings are the crossroads of Trinity and external systems.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/X","inSpecCorpus":true,"letter":"X","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_x","name":{"en":"Chi (External)","ru":"Хи (Внешнее)"},"ordinal":24,"sha256":"0766c4ee0c06be78156aa2d0d148549b21da87c3db232aeab3e64d28df611ff5","skills":[],"specPath":"specs/agents/x.t27","summary":{"en":"External Bindings / Interop. External bindings are the crossroads of Trinity and external systems.","ru":"Внешние привязки / интероперабельность. Внешние привязки — перекрёсток Trinity и внешних систем."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Merging paths - evolutionary selection","CLARA_ROLE":"","DOMAIN":"Yield / DePIN / Fitness","ENABLED":true,"ENTRY_INVARIANT":"DePIN nodes are defined","EXIT_INVARIANT":"Fitness score > 0.8, yield is optimized","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/Y","KEY_FILES":["deploy/contracts/"],"KIND":"agent","LAYER":"Physical","LETTER":"Y","LETTER_NAME":"Psi","NAME":"Psi (Yield/DePIN)","ORDINAL":25,"REGISTER":"R24","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Yield / DePIN / Fitness. Yield and DePIN are the evolutionary crossroad.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/Y","inSpecCorpus":true,"letter":"Y","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_y","name":{"en":"Psi (Yield/DePIN)","ru":"Пси (Доход/DePIN)"},"ordinal":25,"sha256":"2b7ba398549aa79d07e55e175328b816600fbddbfeb000ff1ce425ec629b3cf4","skills":[],"specPath":"specs/agents/y.t27","summary":{"en":"Yield / DePIN / Fitness. Yield and DePIN are the evolutionary crossroad.","ru":"Доход / DePIN / приспособленность. Доход и DePIN — эволюционный перекрёсток."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Sword - cutting edge, point","CLARA_ROLE":"","DOMAIN":"Zero-Touch UX / Docs","ENABLED":true,"ENTRY_INVARIANT":"All docs are in English, ASCII-only","EXIT_INVARIANT":"DX score > 4/5, all docs are current","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/Z","KEY_FILES":["docs/"],"KIND":"agent","LAYER":"Physical","LETTER":"Z","LETTER_NAME":"Zeta","NAME":"Zeta (Zero-Touch)","ORDINAL":26,"REGISTER":"R25","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Zero-Touch UX / Docs. Zero-Touch is the edge of UX and the final polish.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/Z","inSpecCorpus":true,"letter":"Z","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_z","name":{"en":"Zeta (Zero-Touch)","ru":"Дзета (Zero-Touch)"},"ordinal":26,"sha256":"b4f898411bc6cccc09a47732cf878e2c8e66cfba98f2cab064cca6e54895c489","skills":[],"specPath":"specs/agents/z.t27","summary":{"en":"Zero-Touch UX / Docs. Zero-Touch is the edge of UX and the final polish.","ru":"Zero-Touch UX / документация. Zero-Touch — край UX и финальная полировка."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Egyptian cross - \"sacred gift\"","CLARA_ROLE":"","DOMAIN":"Security / Reserve","ENABLED":false,"ENTRY_INVARIANT":"Security policy exists","EXIT_INVARIANT":"AAIF compliance ready, no vulnerabilities","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/TI","KEY_FILES":[],"KIND":"agent","LAYER":"Physical","LETTER":"TI","LETTER_NAME":"Ti","NAME":"Ti (Security)","ORDINAL":27,"REGISTER":"R26","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Security / Reserve. Security and AAIF are what Trinity gifts the world; the seat is reserved (key files: future).","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/TI","inSpecCorpus":true,"letter":"TI","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_ti","name":{"en":"Ti (Security)","ru":"Ти (Безопасность)"},"ordinal":27,"sha256":"8f93c36e4a69d1c698d8f30be012f20565fb849338a44d5418782721c13ea066","skills":[],"specPath":"specs/agents/ti.t27","summary":{"en":"Security / Reserve. Security and AAIF are what Trinity gifts the world; the seat is reserved (key files: future).","ru":"Безопасность / резерв. Безопасность и AAIF — то, что Trinity дарит миру; место зарезервировано (ключевые файлы: в будущем)."},"tools":[],"typecheckOk":true,"witness":"spec-only"}],"compilerWasmSha256":"3f1e073c963c86e2430ea6541b5ad286e06423d751a8797ca68479f847145383","contentSha256":"70157ad0473b9f10855045b1dd52df177d4563ce256fa9204dcd0d13e06fdca0","counts":{"byLayer":{"Archetypal":9,"Physical":9,"Spiritual":9},"enabled":26,"episodesAttributed":0,"episodesTotal":386,"episodesUnattributed":386,"specOnly":27,"specPlusExperience":0,"specs":27,"typecheckOk":27,"withClaraRole":8,"withCrons":0,"withExperience":0,"withSkills":1,"withTools":5},"experienceSnapshot":{"attribution":{"fields":["agent_letter","letter","agent","agent_id","agents","owner"],"letters":["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","TI"],"rule":"A letter is assigned only from an agent field that is one letter A-Z, \"ti\"/\"27th\", \"t27/\", or \"agent-...\"; everything else is unattributed. See scripts/sync-agents-experience.mjs and specs/agents/README.md."},"counts":{"agentsWithEpisodes":0,"attributed":0,"episodes":386,"unattributed":386,"unreadableFiles":56},"generatedAt":"2026-09-09T17:16:31.473Z","sources":[{"commit":"ddceafb50cd0e620387161228fa2c9ae134047de","episodes":383,"files":440,"repo":"trinity","unreadable":56},{"commit":"93727f733e23baf032d54505095777f16676d70b","episodes":3,"files":2,"repo":"t27","unreadable":0}]},"generatedAt":"2026-09-21T08:52:39.041Z","i18n":[{"bundle":"apps/website/i18n/agents.ru.json","coverage":{"n":27,"total":27},"enabled":true,"fields":["SUMMARY","NAME"],"locale":"ru","missing":[],"scope":["specs/skills","specs/crons","specs/agents","specs/functions","specs/tools"],"sha256":"c8871fb4ccdef8fc3cc2937af5db0e307ab0b62f6a03ece9f4512851ffd64f04","spec":"specs/i18n/agents-ru.t27"}],"ladder":{"agents":27,"crons":33,"functions":28,"skills":26,"specs":1414,"tools":92},"pin":{"ref":"93727f733e23baf032d54505095777f16676d70b","source":"public/agents/experience.json sources[t27].commit"},"version":1} +{"agents":[{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Bull - leader, primary force","CLARA_ROLE":"TA1: AR Architecture Design - designs AR module architecture, ensures composability","DOMAIN":"Architecture / ADR / SOUL","ENABLED":true,"ENTRY_INVARIANT":"SOUL.md exists, is ASCII-only, and defines L1-L7 laws","EXIT_INVARIANT":"All ADRs reviewed, consistent with constitution, no conflicts","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/A","KEY_FILES":["SOUL.md","architecture/ADR-*.md","architecture/CANON_DE_ZIGFICATION.md"],"KIND":"agent","LAYER":"Archetypal","LETTER":"A","LETTER_NAME":"Alpha","NAME":"Alpha (Architecture)","ORDINAL":1,"REGISTER":"R0","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Architecture / ADR / SOUL. SOUL.md is the primary cause and the ADRs are the constitution of the system.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/A","inSpecCorpus":true,"letter":"A","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_a","name":{"en":"Alpha (Architecture)","ru":"Альфа (Архитектура)"},"ordinal":1,"sha256":"0bcd805f2c789604a16712f910a652c698fe0b16a2c26ccb7a962a764e379943","skills":[],"specPath":"specs/agents/a.t27","summary":{"en":"Architecture / ADR / SOUL. SOUL.md is the primary cause and the ADRs are the constitution of the system.","ru":"Архитектура / ADR / SOUL. SOUL.md — первопричина, а ADR — конституция системы."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"House - container, dwelling","CLARA_ROLE":"","DOMAIN":"Build / Pipeline","ENABLED":true,"ENTRY_INVARIANT":"Build system is clean, no stale artifacts","EXIT_INVARIANT":"All tests pass, CI pipeline is green","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/B","KEY_FILES":["build.tri","src/tri/pipeline/"],"KIND":"agent","LAYER":"Archetypal","LETTER":"B","LETTER_NAME":"Beta","NAME":"Beta (Build)","ORDINAL":2,"REGISTER":"R1","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Build / Pipeline. build.tri is the house of specifications and the pipeline is its dwelling.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/B","inSpecCorpus":true,"letter":"B","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_b","name":{"en":"Beta (Build)","ru":"Бета (Сборка)"},"ordinal":2,"sha256":"61d170317eadcdfe028549190c431b633d93cb5dc2dea7fdc1c041c71154b34f","skills":[],"specPath":"specs/agents/b.t27","summary":{"en":"Build / Pipeline. build.tri is the house of specifications and the pipeline is its dwelling.","ru":"Сборка / конвейер. build.tri — дом спецификаций, а конвейер — его жилище."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Camel - carrier across borders","CLARA_ROLE":"TA1: AR Language Implementation - implements AR language features in t27 compiler","DOMAIN":"Compiler Core / AR Language","ENABLED":true,"ENTRY_INVARIANT":"Parser can handle all AR syntax (ternary logic, rules, proofs)","EXIT_INVARIANT":"Generated code compiles, AST is valid","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/C","KEY_FILES":["t27/compiler/parser/","bootstrap/src/compiler.rs","specs/ar/*.t27"],"KIND":"agent","LAYER":"Archetypal","LETTER":"C","LETTER_NAME":"Gamma","NAME":"Gamma (Compiler Core)","ORDINAL":3,"REGISTER":"R2","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Compiler Core / AR Language. The compiler carries text across borders, from spec to generated code.","TOOLS":["tri/gen"],"TOOLS_NOTE":".claude/agents/agent-c-compiler.md:40 names tri gen (trigger On tri gen command, line 7). Line 41 names tri seal, which is not a tri command at this commit (tri cell seal is not bound here)."},"health":"ok","id":"t27/C","inSpecCorpus":true,"letter":"C","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_c","name":{"en":"Gamma (Compiler Core)","ru":"Гамма (Ядро компилятора)"},"ordinal":3,"sha256":"89402274898f607a2be4d505f8925c76802acfe2683739605f8413604530ff23","skills":[],"specPath":"specs/agents/c.t27","summary":{"en":"Compiler Core / AR Language. The compiler carries text across borders, from spec to generated code.","ru":"Ядро компилятора / язык AR. Компилятор переносит текст через границы: от спеки к сгенерированному коду."},"tools":[{"id":"tri/gen","ok":true}],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Door - transition between worlds","CLARA_ROLE":"","DOMAIN":"De-Zigfication / Migration","ENABLED":true,"ENTRY_INVARIANT":"Legacy Zig modules are catalogued and mapped","EXIT_INVARIANT":"All AR specs are in .t27 format, no Zig hand-editing on AR","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/D","KEY_FILES":["docs/migration-map.md","specs/ar/*.t27"],"KIND":"agent","LAYER":"Archetypal","LETTER":"D","LETTER_NAME":"Delta","NAME":"Delta (De-Zigfication)","ORDINAL":4,"REGISTER":"R3","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"De-Zigfication / Migration. De-Zigfication is the open door from .zig to .t27.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/D","inSpecCorpus":true,"letter":"D","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_d","name":{"en":"Delta (De-Zigfication)","ru":"Дельта (Де-зигификация)"},"ordinal":4,"sha256":"093a8c454b5b7ac163fa142bcf6e9ad46fbc2acc1e8d1eb49bf38ef036f915db","skills":[],"specPath":"specs/agents/d.t27","summary":{"en":"De-Zigfication / Migration. De-Zigfication is the open door from .zig to .t27.","ru":"Де-зигификация / миграция. Де-зигификация — открытая дверь из .zig в .t27."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Window - view into the past","CLARA_ROLE":"TA2: AR Explanation & XAI - generates human-readable explanations for AR outputs","DOMAIN":"Experience / XAI","ENABLED":true,"ENTRY_INVARIANT":"Episode log is append-only, no deletions","EXIT_INVARIANT":"Lessons learned are catalogued, explanations are generated","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/E","KEY_FILES":[".trinity/experience/","specs/ar/explainability.t27","specs/ar/proof_trace.t27"],"KIND":"agent","LAYER":"Archetypal","LETTER":"E","LETTER_NAME":"Epsilon","NAME":"Epsilon (Experience)","ORDINAL":5,"REGISTER":"R4","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent. .claude/agents/agent-e-experience.md mentions phi-loop only as the label of the feedback field (1 = phi-loop, 0 = agent cycle); the alphabet key files point at the experience log and AR specs, not at a skill directory.","SOUL":"SOUL.md","SUMMARY_EN":"Experience / XAI. Experience is the window into the past of the system, the breath of its memory.","TOOLS":["tri/experience"],"TOOLS_NOTE":".claude/agents/agent-e-experience.md:64 names tri experience save; lines 65-66 name tri experience query and tri notebook, which the CLI does not have at this commit. The tri-mcp server mirrors the command as tool tri_experience_save."},"health":"ok","id":"t27/E","inSpecCorpus":true,"letter":"E","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_e","name":{"en":"Epsilon (Experience)","ru":"Эпсилон (Опыт)"},"ordinal":5,"sha256":"8680ac8254c709d607055ee4ac6872b05bece422635c44dfcc5494d99952992c","skills":[],"specPath":"specs/agents/e.t27","summary":{"en":"Experience / XAI. Experience is the window into the past of the system, the breath of its memory.","ru":"Опыт / XAI. Опыт — окно в прошлое системы, дыхание её памяти."},"tools":[{"id":"tri/experience","ok":true}],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Nail - connection, binding","CLARA_ROLE":"","DOMAIN":"Formal Conformance","ENABLED":true,"ENTRY_INVARIANT":"All sacred vectors (G, OmegaLambda, phi) are valid","EXIT_INVARIANT":"Conformance > 95%, all sacred physics verified","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/F","KEY_FILES":["t27/conformance/*.json","conformance/FORMAT-SPEC-001.json"],"KIND":"agent","LAYER":"Archetypal","LETTER":"F","LETTER_NAME":"Phi","NAME":"Phi (Formal Conformance)","ORDINAL":6,"REGISTER":"R5","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Formal Conformance. The conformance JSON files are the nails holding the specs together.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: the alphabet key files are conformance JSON vectors (t27/conformance/*.json) and no source names tri vectors for F."},"health":"ok","id":"t27/F","inSpecCorpus":true,"letter":"F","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_f","name":{"en":"Phi (Formal Conformance)","ru":"Фи (Формальное соответствие)"},"ordinal":6,"sha256":"1f69f78fbcbe07d6ccc592bb92f39fd33449fdf961244731c3be644e0b8b719c","skills":[],"specPath":"specs/agents/f.t27","summary":{"en":"Formal Conformance. The conformance JSON files are the nails holding the specs together.","ru":"Формальное соответствие. JSON-файлы соответствия — гвозди, скрепляющие спеки."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Return - feedback","CLARA_ROLE":"","DOMAIN":"Graph / ArchBench","ENABLED":true,"ENTRY_INVARIANT":"Graph is acyclic, topological sort exists","EXIT_INVARIANT":"All edges satisfied, no broken dependencies","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/G","KEY_FILES":["architecture/graph_v2.json","architecture/graph.tri"],"KIND":"agent","LAYER":"Archetypal","LETTER":"G","LETTER_NAME":"Gamma (var.)","NAME":"Gamma (Graph)","ORDINAL":7,"REGISTER":"R6","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Graph / ArchBench. The graph is the map of the Trinity world and its distance metric.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/G","inSpecCorpus":true,"letter":"G","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_g","name":{"en":"Gamma (Graph)","ru":"Гамма (Граф)"},"ordinal":7,"sha256":"2508126a477a8a323b133af6f2fb4c26d88be031b678b2b54de2a55656ad0cc0","skills":[],"specPath":"specs/agents/g.t27","summary":{"en":"Graph / ArchBench. The graph is the map of the Trinity world and its distance metric.","ru":"Граф / ArchBench. Граф — карта мира Trinity и его метрика расстояния."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Fence - boundary, life","CLARA_ROLE":"","DOMAIN":"HSLM / NN Architectures","ENABLED":true,"ENTRY_INVARIANT":"HSLM layers are defined, connections are valid","EXIT_INVARIANT":"Attention traces are validated, sacred attention holds","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/H","KEY_FILES":["t27/specs/nn/hslm.t27","t27/specs/nn/attention.t27"],"KIND":"agent","LAYER":"Archetypal","LETTER":"H","LETTER_NAME":"Eta","NAME":"Eta (HSLM)","ORDINAL":8,"REGISTER":"R7","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"HSLM / NN Architectures. HSLM is the neural-network architecture, the boundary between brain layers.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/H","inSpecCorpus":true,"letter":"H","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_h","name":{"en":"Eta (HSLM)","ru":"Эта (HSLM)"},"ordinal":8,"sha256":"eaee2545844cfe66509afedf95424ca76e2d3717a8bced297abc0121b3ea6a8a","skills":[],"specPath":"specs/agents/h.t27","summary":{"en":"HSLM / NN Architectures. HSLM is the neural-network architecture, the boundary between brain layers.","ru":"HSLM / архитектуры нейросетей. HSLM — архитектура нейросети, граница между слоями мозга."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Hand - action, point","CLARA_ROLE":"","DOMAIN":"ISA / Registers","ENABLED":true,"ENTRY_INVARIANT":"27 registers are defined, Coptic mapping exists","EXIT_INVARIANT":"Coptic mapping is verified (bijection), all registers accessible","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/I","KEY_FILES":["t27/specs/isa/registers.t27"],"KIND":"agent","LAYER":"Archetypal","LETTER":"I","LETTER_NAME":"Iota","NAME":"Iota (ISA)","ORDINAL":9,"REGISTER":"R8","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"ISA / Registers. The ISA is the hand of the machine, its most basic instruction level.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/I","inSpecCorpus":true,"letter":"I","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_i","name":{"en":"Iota (ISA)","ru":"Йота (ISA)"},"ordinal":9,"sha256":"a1e332956a4113776724f90271af313d36df6a30bb5aab6514bb8df2729ef16c","skills":[],"specPath":"specs/agents/i.t27","summary":{"en":"ISA / Registers. The ISA is the hand of the machine, its most basic instruction level.","ru":"ISA / регистры. ISA — рука машины, её самый базовый уровень инструкций."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Hand with grip - dispatcher","CLARA_ROLE":"","DOMAIN":"Jobs / Task Routing","ENABLED":true,"ENTRY_INVARIANT":"Task queue exists, scheduler is running","EXIT_INVARIANT":"No stuck jobs > 1 hour, all jobs assigned","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/J","KEY_FILES":["src/tri/dev_commands.zig"],"KIND":"agent","LAYER":"Spiritual","LETTER":"J","LETTER_NAME":"Iota-extended","NAME":"Iota-extended (Jobs)","ORDINAL":10,"REGISTER":"R9","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Jobs / Task Routing. Jobs grab tasks and route them.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/J","inSpecCorpus":true,"letter":"J","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_j","name":{"en":"Iota-extended (Jobs)","ru":"Йота-расширенная (Задания)"},"ordinal":10,"sha256":"1c3e0fdc23d7ad66ae39662f81621504cfdab1b4660a904508b75867cbbd187e","skills":[],"specPath":"specs/agents/j.t27","summary":{"en":"Jobs / Task Routing. Jobs grab tasks and route them.","ru":"Задания / маршрутизация задач. Задания захватывают задачи и направляют их."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Palm - open hand","CLARA_ROLE":"","DOMAIN":"Kernel / FPGA MAC","ENABLED":true,"ENTRY_INVARIANT":"MAC spec is zero-DSP (no digital signal processors)","EXIT_INVARIANT":"Synthesis is verified, E8 kernel integration works","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/K","KEY_FILES":["t27/specs/fpga/mac.t27","specs/math/e8_lie_algebra.t27"],"KIND":"agent","LAYER":"Spiritual","LETTER":"K","LETTER_NAME":"Kappa","NAME":"Kappa (Kernel)","ORDINAL":11,"REGISTER":"R10","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Kernel / FPGA MAC. Kernel and FPGA are the open palm of the lower hardware level.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/K","inSpecCorpus":true,"letter":"K","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_k","name":{"en":"Kappa (Kernel)","ru":"Каппа (Ядро)"},"ordinal":11,"sha256":"52c87609efcb16a0ddd296875010488540b619c95b16e1967bc26a4a488f856e","skills":[],"specPath":"specs/agents/k.t27","summary":{"en":"Kernel / FPGA MAC. Kernel and FPGA are the open palm of the lower hardware level.","ru":"Ядро / FPGA MAC. Ядро и FPGA — открытая ладонь нижнего аппаратного уровня."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Staff - teacher, guide","CLARA_ROLE":"","DOMAIN":"Language / Syntax vNEXT","ENABLED":true,"ENTRY_INVARIANT":"Syntax vNEXT is documented, BNF grammar exists","EXIT_INVARIANT":"Parser implements vNEXT, all syntax tests pass","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/L","KEY_FILES":["docs/nona-02-organism/TRI_SYNTAX_VNEXT.md"],"KIND":"agent","LAYER":"Spiritual","LETTER":"L","LETTER_NAME":"Lambda","NAME":"Lambda (Language)","ORDINAL":12,"REGISTER":"R11","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Language / Syntax vNEXT. Language is the teacher guiding Trinity speech.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/L","inSpecCorpus":true,"letter":"L","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_l","name":{"en":"Lambda (Language)","ru":"Лямбда (Язык)"},"ordinal":12,"sha256":"2d98573747c17289c348f411e21d8a455be1a647577b6c3aba8d697689ff76f8","skills":[],"specPath":"specs/agents/l.t27","summary":{"en":"Language / Syntax vNEXT. Language is the teacher guiding Trinity speech.","ru":"Язык / синтаксис vNEXT. Язык — учитель, направляющий речь Trinity."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Water - flow of data","CLARA_ROLE":"","DOMAIN":"Metrics / Telemetry","ENABLED":true,"ENTRY_INVARIANT":"Bench baseline exists, telemetry is running","EXIT_INVARIANT":"No performance regression > 5%, all benchmarks current","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/M","KEY_FILES":[".trinity/bench/","docs/qualification/TVP.md"],"KIND":"agent","LAYER":"Spiritual","LETTER":"M","LETTER_NAME":"Mu","NAME":"Mu (Metrics)","ORDINAL":13,"REGISTER":"R12","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Metrics / Telemetry. Metrics are the continuous stream of measurements.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/M","inSpecCorpus":true,"letter":"M","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_m","name":{"en":"Mu (Metrics)","ru":"Мю (Метрики)"},"ordinal":13,"sha256":"0aac5e911f0cf60e0912acc755c63777ae91da62510a806363ff99f9c3599cde","skills":[],"specPath":"specs/agents/m.t27","summary":{"en":"Metrics / Telemetry. Metrics are the continuous stream of measurements.","ru":"Метрики / телеметрия. Метрики — непрерывный поток измерений."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Fish - offspring, multiplication","CLARA_ROLE":"","DOMAIN":"Numeric / GoldenFloat","ENABLED":true,"ENTRY_INVARIANT":"GF family is defined (GF4, GF8, GF12, GF16, GF20, GF24, GF32)","EXIT_INVARIANT":"phi identity validated, all numeric tests pass","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/N","KEY_FILES":["t27/specs/numeric/","docs/NUMERIC-STANDARD-001.md"],"KIND":"agent","LAYER":"Spiritual","LETTER":"N","LETTER_NAME":"Nu","NAME":"Nu (Numeric)","ORDINAL":14,"REGISTER":"R13","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Numeric / GoldenFloat. Numeric is the number-fish swimming toward the golden ratio.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/N","inSpecCorpus":true,"letter":"N","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_n","name":{"en":"Nu (Numeric)","ru":"Ню (Числа)"},"ordinal":14,"sha256":"fb4321801a722b535d3a689a94f5ecf60894cf5f448d3e33e6447866619e541b","skills":[],"specPath":"specs/agents/n.t27","summary":{"en":"Numeric / GoldenFloat. Numeric is the number-fish swimming toward the golden ratio.","ru":"Числа / GoldenFloat. Числовой слой — рыба-число, плывущая к золотому сечению."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Eye - all-seeing oko","CLARA_ROLE":"TA2: AR Composition Engine - composes ML and AR components, manages interactions","DOMAIN":"Orchestration / Phases","ENABLED":true,"ENTRY_INVARIANT":"All phases (1-6) are defined, phase transitions valid","EXIT_INVARIANT":"Orchestration completes, no stuck phases","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/O","KEY_FILES":["src/tri/pipeline/","specs/ar/composition.t27"],"KIND":"agent","LAYER":"Spiritual","LETTER":"O","LETTER_NAME":"Omicron","NAME":"Omicron (Orchestration)","ORDINAL":15,"REGISTER":"R14","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Orchestration / Phases. Orchestration is the all-seeing eye of the phases.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/O","inSpecCorpus":true,"letter":"O","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_o","name":{"en":"Omicron (Orchestration)","ru":"Омикрон (Оркестрация)"},"ordinal":15,"sha256":"f2fd554e5cb70cea54f2daf2e3b36699175354595d333585ac56b556a95864c3","skills":[],"specPath":"specs/agents/o.t27","summary":{"en":"Orchestration / Phases. Orchestration is the all-seeing eye of the phases.","ru":"Оркестрация / фазы. Оркестрация — всевидящее око фаз."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Mouth - speech of universe","CLARA_ROLE":"TA1: AR Theoretical Foundations - provides mathematical basis for AR reasoning","DOMAIN":"Physics / SacredPhysics","ENABLED":true,"ENTRY_INVARIANT":"phi^2 + phi^-2 = 3 holds in all calculations","EXIT_INVARIANT":"Sacred constants (G, OmegaLambda, phi, tpresent) are verified","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/P","KEY_FILES":["t27/specs/math/sacred_physics.t27","specs/physics/su2_chern_simons.t27"],"KIND":"agent","LAYER":"Spiritual","LETTER":"P","LETTER_NAME":"Pi","NAME":"Pi (Physics)","ORDINAL":16,"REGISTER":"R15","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Physics / SacredPhysics. Physics is nature speaking through its constants (phi, G, OmegaLambda).","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/P","inSpecCorpus":true,"letter":"P","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_p","name":{"en":"Pi (Physics)","ru":"Пи (Физика)"},"ordinal":16,"sha256":"badf4b6c05c043017b93d89968ce4139335cac039a4de235b294050e2b916aab","skills":[],"specPath":"specs/agents/p.t27","summary":{"en":"Physics / SacredPhysics. Physics is nature speaking through its constants (phi, G, OmegaLambda).","ru":"Физика / SacredPhysics. Физика — природа, говорящая через свои константы (phi, G, OmegaLambda)."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Needle's eye - bottleneck","CLARA_ROLE":"","DOMAIN":"Queue / Scheduling","ENABLED":true,"ENTRY_INVARIANT":"Queue is not empty (work exists)","EXIT_INVARIANT":"MNL (Most-Numerous-Loss) pattern enforced, no starvation","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/Q","KEY_FILES":["src/tri/dev_commands.zig"],"KIND":"agent","LAYER":"Spiritual","LETTER":"Q","LETTER_NAME":"Theta","NAME":"Theta (Queue)","ORDINAL":17,"REGISTER":"R16","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Queue / Scheduling. The queue is the needle's eye for tasks.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/Q","inSpecCorpus":true,"letter":"Q","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_q","name":{"en":"Theta (Queue)","ru":"Тета (Очередь)"},"ordinal":17,"sha256":"f9b41127b3546ba9fbf057a603b081d9b3bb4eab7ee46b23f5e8c804dfd801d8","skills":[],"specPath":"specs/agents/q.t27","summary":{"en":"Queue / Scheduling. The queue is the needle's eye for tasks.","ru":"Очередь / планирование. Очередь — игольное ушко для задач."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Head - beginning of execution","CLARA_ROLE":"","DOMAIN":"Runtime / Bootstrap","ENABLED":true,"ENTRY_INVARIANT":"Runtime is initialized, ABI is defined","EXIT_INVARIANT":"No memory leaks, no resource exhaustion","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/R","KEY_FILES":["t27/compiler/runtime/","bootstrap/src/compiler.rs"],"KIND":"agent","LAYER":"Spiritual","LETTER":"R","LETTER_NAME":"Rho","NAME":"Rho (Runtime)","ORDINAL":18,"REGISTER":"R17","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Runtime / Bootstrap. Runtime is the head of the system during execution.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/R","inSpecCorpus":true,"letter":"R","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_r","name":{"en":"Rho (Runtime)","ru":"Ро (Рантайм)"},"ordinal":18,"sha256":"aab3e536f0afdce1db03304ea4591988b4f284f1a456a6d93bab689ed253eee2","skills":[],"specPath":"specs/agents/r.t27","summary":{"en":"Runtime / Bootstrap. Runtime is the head of the system during execution.","ru":"Рантайм / бутстрап. Рантайм — голова системы во время исполнения."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Teeth - sharpness, flame","CLARA_ROLE":"TA1: AR Spec Standards - defines and enforces AR spec conventions","DOMAIN":"Specs / Standardization / AR Specs","ENABLED":true,"ENTRY_INVARIANT":"All specs have TDD (test/invariant/bench)","EXIT_INVARIANT":"Standards are consistent, naming rules followed","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/S","KEY_FILES":["specs/","specs/ar/*.t27","docs/NUMERIC-*.md"],"KIND":"agent","LAYER":"Physical","LETTER":"S","LETTER_NAME":"Sigma","NAME":"Sigma (Specs)","ORDINAL":19,"REGISTER":"R18","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Specs / Standardization / AR Specs. Specs are the teeth of the standard that grind everything into canon.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent. docs/agents/AGENTS.md:97 lists tri gen, tri test, tri verdict --toxic, tri bench inside a sample prevention payload attributed to S; that is an example message, not an ownership binding."},"health":"ok","id":"t27/S","inSpecCorpus":true,"letter":"S","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_s","name":{"en":"Sigma (Specs)","ru":"Сигма (Спеки)"},"ordinal":19,"sha256":"7f64754295773781de8320b3fefd813ef5d1dd492b4b52f5ac56f9d9e4d01106","skills":[],"specPath":"specs/agents/s.t27","summary":{"en":"Specs / Standardization / AR Specs. Specs are the teeth of the standard that grind everything into canon.","ru":"Спеки / стандартизация / спеки AR. Спеки — зубы стандарта, перемалывающие всё в канон."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"CROSS - seal, signature, truth","CLARA_ROLE":"TA2: AR Orchestrator - coordinates all AR agents for CLARA submission","DOMAIN":"Queen / Lotus Orchestrator","ENABLED":true,"ENTRY_INVARIANT":"Queen health >= 0.9, graph is loaded","EXIT_INVARIANT":"All rings are sealed, verdict is clean","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/T","KEY_FILES":["t27/specs/queen/lotus.t27"],"KIND":"agent","LAYER":"Physical","LETTER":"T","LETTER_NAME":"Tau","NAME":"Tau (TRINITY Queen)","ORDINAL":20,"REGISTER":"R19","SKILLS":["t27/phi-loop","t27/tri-pipeline"],"SKILLS_NOTE":".claude/agents/trinity.md, Phase 2 PLAN: \"Identify required skills (phi-loop, tri-pipeline)\"; Phase 4 VERIFY: \"Run conformance tests via tri-pipeline\". specs/OWNERS.md lists skills/ and crons/ under T-Queen, which is catalog ownership, not a held skill.","SOUL":"SOUL.md","SUMMARY_EN":"Queen / Lotus Orchestrator. T is the queen: she puts the final seal on everything.","TOOLS":["tri/gen","tri/test","mcp/inngest-dev"],"TOOLS_NOTE":".claude/agents/trinity.md:68 (5. Gen - Run tri gen) and :70 (7. Verify - Run tri test); specs/automation/inngest-queen-scheduler.t27 OWNER = \"T\" binds the scheduler mcp/inngest-dev to the Queen (specs/OWNERS.md: skills/ and crons/ under T-Queen). No source binds tri loop or tri health to T."},"health":"ok","id":"t27/T","inSpecCorpus":true,"letter":"T","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_t","name":{"en":"Tau (TRINITY Queen)","ru":"Тау (Королева TRINITY)"},"ordinal":20,"sha256":"25c30ec4e1f38b575e3bb24cdd09bb770ce5e2a1220eac46f4da857916540f66","skills":[{"id":"t27/phi-loop","ok":true},{"id":"t27/tri-pipeline","ok":true}],"specPath":"specs/agents/t.t27","summary":{"en":"Queen / Lotus Orchestrator. T is the queen: she puts the final seal on everything.","ru":"Королева / оркестратор Lotus. T — королева: она ставит на всём финальную печать."},"tools":[{"id":"tri/gen","ok":true},{"id":"tri/test","ok":true},{"id":"mcp/inngest-dev","ok":true}],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Fork - branching","CLARA_ROLE":"","DOMAIN":"Universe Levels / Domains","ENABLED":true,"ENTRY_INVARIANT":"Domain boundaries are defined","EXIT_INVARIANT":"No circular dependencies, domains are orthogonal","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/U","KEY_FILES":["t27/domains/"],"KIND":"agent","LAYER":"Physical","LETTER":"U","LETTER_NAME":"Upsilon","NAME":"Upsilon (Universe)","ORDINAL":21,"REGISTER":"R20","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Universe Levels / Domains. Universe levels are the branching of domains.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/U","inSpecCorpus":true,"letter":"U","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_u","name":{"en":"Upsilon (Universe)","ru":"Ипсилон (Вселенная)"},"ordinal":21,"sha256":"8e96c0001588aee91e7dc5aca1d68be9580b7834c595a78c7d62bfec83868b4b","skills":[],"specPath":"specs/agents/u.t27","summary":{"en":"Universe Levels / Domains. Universe levels are the branching of domains.","ru":"Уровни вселенной / домены. Уровни вселенной — ветвление доменов."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Hook - connection, conjunction","CLARA_ROLE":"TA2: AR Validation & Proof - validates AR reasoning, generates proofs","DOMAIN":"Verdict / Bench / AR Validation","ENABLED":true,"ENTRY_INVARIANT":"Verdict engine is ready, toxic thresholds defined","EXIT_INVARIANT":"Toxicity is detected, proof traces are generated","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/V","KEY_FILES":["src/tri/verdict.zig","specs/ar/proof_trace.t27","specs/ar/restraint.t27"],"KIND":"agent","LAYER":"Physical","LETTER":"V","LETTER_NAME":"Vau (var.)","NAME":"Vau (Verdict)","ORDINAL":22,"REGISTER":"R21","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Verdict / Bench / AR Validation. The verdict is the hook that catches the problem.","TOOLS":["tri/test","tri/verdict"],"TOOLS_NOTE":".claude/agents/agent-v-verify.md:47 (tri test) and :49 (tri verdict); docs/agents/AGENTS_ALPHABET.md:80 PHASE 5 VERDICT names tri verdict --toxic for V. Line 48 names tri verify, which is not a tri command at this commit."},"health":"ok","id":"t27/V","inSpecCorpus":true,"letter":"V","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_v","name":{"en":"Vau (Verdict)","ru":"Вау (Вердикт)"},"ordinal":22,"sha256":"fcce2147f2fced23acc8d32364023ead496c229862f1f03ae9f5fc6c7c384aeb","skills":[],"specPath":"specs/agents/v.t27","summary":{"en":"Verdict / Bench / AR Validation. The verdict is the hook that catches the problem.","ru":"Вердикт / бенч / валидация AR. Вердикт — крюк, который ловит проблему."},"tools":[{"id":"tri/test","ok":true},{"id":"tri/verdict","ok":true}],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Double hook - double seal","CLARA_ROLE":"","DOMAIN":"Workflow / tri cell","ENABLED":true,"ENTRY_INVARIANT":"Cell is sealed, hash is computed","EXIT_INVARIANT":"Hash is verified, commit is signed","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/W","KEY_FILES":["src/tri/cell.zig"],"KIND":"agent","LAYER":"Physical","LETTER":"W","LETTER_NAME":"Double-Vav","NAME":"Double-Vav (Workflow)","ORDINAL":23,"REGISTER":"R22","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Workflow / tri cell. Workflow and tri cell are the double hash-seal.","TOOLS":["tri/cell"],"TOOLS_NOTE":"docs/agents/AGENTS_ALPHABET.md:144: agent W domain Workflow / tri cell, key file src/tri/cell.zig; PHASE 6 EVOLVE: W seals tri-cell commit (hash seal)."},"health":"ok","id":"t27/W","inSpecCorpus":true,"letter":"W","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_w","name":{"en":"Double-Vav (Workflow)","ru":"Двойной Вав (Рабочий процесс)"},"ordinal":23,"sha256":"cc5426dfba21dcb6c38e978fd04c01a0ca38b62b942032668531508d454f5aeb","skills":[],"specPath":"specs/agents/w.t27","summary":{"en":"Workflow / tri cell. Workflow and tri cell are the double hash-seal.","ru":"Рабочий процесс / tri cell. Рабочий процесс и tri cell — двойная хеш-печать."},"tools":[{"id":"tri/cell","ok":true}],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Intersection - point of exchange","CLARA_ROLE":"","DOMAIN":"External Bindings / Interop","ENABLED":true,"ENTRY_INVARIANT":"Bindings are documented","EXIT_INVARIANT":"Interop tests pass, external APIs are current","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/X","KEY_FILES":["bindings/"],"KIND":"agent","LAYER":"Physical","LETTER":"X","LETTER_NAME":"Chi","NAME":"Chi (External)","ORDINAL":24,"REGISTER":"R23","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"External Bindings / Interop. External bindings are the crossroads of Trinity and external systems.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/X","inSpecCorpus":true,"letter":"X","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_x","name":{"en":"Chi (External)","ru":"Хи (Внешнее)"},"ordinal":24,"sha256":"0766c4ee0c06be78156aa2d0d148549b21da87c3db232aeab3e64d28df611ff5","skills":[],"specPath":"specs/agents/x.t27","summary":{"en":"External Bindings / Interop. External bindings are the crossroads of Trinity and external systems.","ru":"Внешние привязки / интероперабельность. Внешние привязки — перекрёсток Trinity и внешних систем."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Merging paths - evolutionary selection","CLARA_ROLE":"","DOMAIN":"Yield / DePIN / Fitness","ENABLED":true,"ENTRY_INVARIANT":"DePIN nodes are defined","EXIT_INVARIANT":"Fitness score > 0.8, yield is optimized","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/Y","KEY_FILES":["deploy/contracts/"],"KIND":"agent","LAYER":"Physical","LETTER":"Y","LETTER_NAME":"Psi","NAME":"Psi (Yield/DePIN)","ORDINAL":25,"REGISTER":"R24","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Yield / DePIN / Fitness. Yield and DePIN are the evolutionary crossroad.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/Y","inSpecCorpus":true,"letter":"Y","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_y","name":{"en":"Psi (Yield/DePIN)","ru":"Пси (Доход/DePIN)"},"ordinal":25,"sha256":"2b7ba398549aa79d07e55e175328b816600fbddbfeb000ff1ce425ec629b3cf4","skills":[],"specPath":"specs/agents/y.t27","summary":{"en":"Yield / DePIN / Fitness. Yield and DePIN are the evolutionary crossroad.","ru":"Доход / DePIN / приспособленность. Доход и DePIN — эволюционный перекрёсток."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Sword - cutting edge, point","CLARA_ROLE":"","DOMAIN":"Zero-Touch UX / Docs","ENABLED":true,"ENTRY_INVARIANT":"All docs are in English, ASCII-only","EXIT_INVARIANT":"DX score > 4/5, all docs are current","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/Z","KEY_FILES":["docs/"],"KIND":"agent","LAYER":"Physical","LETTER":"Z","LETTER_NAME":"Zeta","NAME":"Zeta (Zero-Touch)","ORDINAL":26,"REGISTER":"R25","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Zero-Touch UX / Docs. Zero-Touch is the edge of UX and the final polish.","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/Z","inSpecCorpus":true,"letter":"Z","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_z","name":{"en":"Zeta (Zero-Touch)","ru":"Дзета (Zero-Touch)"},"ordinal":26,"sha256":"b4f898411bc6cccc09a47732cf878e2c8e66cfba98f2cab064cca6e54895c489","skills":[],"specPath":"specs/agents/z.t27","summary":{"en":"Zero-Touch UX / Docs. Zero-Touch is the edge of UX and the final polish.","ru":"Zero-Touch UX / документация. Zero-Touch — край UX и финальная полировка."},"tools":[],"typecheckOk":true,"witness":"spec-only"},{"crons":[],"discarded":0,"experience":{"episodes":0,"files":[],"first":null,"last":null,"lastTask":null,"lessons":[],"outcomes":{}},"fields":{"AGENTS_DOC":"AGENTS.md","ALPHABET":"docs/agents/AGENTS_ALPHABET.md","ARCHETYPE":"Egyptian cross - \"sacred gift\"","CLARA_ROLE":"","DOMAIN":"Security / Reserve","ENABLED":false,"ENTRY_INVARIANT":"Security policy exists","EXIT_INVARIANT":"AAIF compliance ready, no vulnerabilities","EXPERIENCE_LOG":".trinity/experience/","ID":"t27/TI","KEY_FILES":[],"KIND":"agent","LAYER":"Physical","LETTER":"TI","LETTER_NAME":"Ti","NAME":"Ti (Security)","ORDINAL":27,"REGISTER":"R26","SKILLS":[],"SKILLS_NOTE":"No source binds a skill to this agent: the alphabet key files point at specs and docs, not at a skill directory, no .claude/agents file names one, and specs/OWNERS.md has no row for it.","SOUL":"SOUL.md","SUMMARY_EN":"Security / Reserve. Security and AAIF are what Trinity gifts the world; the seat is reserved (key files: future).","TOOLS":[],"TOOLS_NOTE":"No source binds a tri command or MCP server to this agent: docs/agents/AGENTS_ALPHABET.md (row, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name one."},"health":"ok","id":"t27/TI","inSpecCorpus":true,"letter":"TI","links":{"agentsDoc":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","alphabet":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","experienceLog":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/.trinity/experience","pinSource":"public/agents/experience.json sources[t27].commit","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","soul":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md"},"messages":["no attributed episodes in the experience snapshot"],"moduleName":"agent_ti","name":{"en":"Ti (Security)","ru":"Ти (Безопасность)"},"ordinal":27,"sha256":"8f93c36e4a69d1c698d8f30be012f20565fb849338a44d5418782721c13ea066","skills":[],"specPath":"specs/agents/ti.t27","summary":{"en":"Security / Reserve. Security and AAIF are what Trinity gifts the world; the seat is reserved (key files: future).","ru":"Безопасность / резерв. Безопасность и AAIF — то, что Trinity дарит миру; место зарезервировано (ключевые файлы: в будущем)."},"tools":[],"typecheckOk":true,"witness":"spec-only"}],"compilerWasmSha256":"bb39b9a5ca412a2695ab6a20a54e222933e10edaf08ef053670e4974d08f113f","contentSha256":"be51f0c62f58d95446b163a8ccc5844fd2b36f844dba52342cbc6c6f68013f9b","counts":{"byLayer":{"Archetypal":9,"Physical":9,"Spiritual":9},"enabled":26,"episodesAttributed":0,"episodesTotal":386,"episodesUnattributed":386,"specOnly":27,"specPlusExperience":0,"specs":27,"typecheckOk":27,"withClaraRole":8,"withCrons":0,"withExperience":0,"withSkills":1,"withTools":5},"experienceSnapshot":{"attribution":{"fields":["agent_letter","letter","agent","agent_id","agents","owner"],"letters":["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","TI"],"rule":"A letter is assigned only from an agent field that is one letter A-Z, \"ti\"/\"27th\", \"t27/\", or \"agent-...\"; everything else is unattributed. See scripts/sync-agents-experience.mjs and specs/agents/README.md."},"counts":{"agentsWithEpisodes":0,"attributed":0,"episodes":386,"unattributed":386,"unreadableFiles":56},"generatedAt":"2026-09-09T17:16:31.473Z","sources":[{"commit":"ddceafb50cd0e620387161228fa2c9ae134047de","episodes":383,"files":440,"repo":"trinity","unreadable":56},{"commit":"93727f733e23baf032d54505095777f16676d70b","episodes":3,"files":2,"repo":"t27","unreadable":0}]},"generatedAt":"2026-09-22T17:46:29.695Z","i18n":[{"bundle":"apps/website/i18n/agents.ru.json","coverage":{"n":27,"total":27},"enabled":true,"fields":["SUMMARY","NAME"],"locale":"ru","missing":[],"scope":["specs/skills","specs/crons","specs/agents","specs/functions","specs/tools"],"sha256":"c8871fb4ccdef8fc3cc2937af5db0e307ab0b62f6a03ece9f4512851ffd64f04","spec":"specs/i18n/agents-ru.t27"}],"ladder":{"agents":27,"crons":38,"functions":33,"skills":27,"specs":1419,"tools":92},"pin":{"ref":"93727f733e23baf032d54505095777f16676d70b","source":"public/agents/experience.json sources[t27].commit"},"version":1} diff --git a/apps/website/public/crons/spec-crons.json b/apps/website/public/crons/spec-crons.json index 31e74b9491..569eeff1dc 100644 --- a/apps/website/public/crons/spec-crons.json +++ b/apps/website/public/crons/spec-crons.json @@ -1 +1 @@ -{"codeOnly":[],"compilerWasmSha256":"3f1e073c963c86e2430ea6541b5ad286e06423d751a8797ca68479f847145383","contentSha256":"62ce9e38df72c51e2cb4ad22b436145a251d7dafb487b1adc1e7ed4057461375","counts":{"byHost":{"github-actions":12,"inngest":6,"railway-cron":1,"timer":14},"codeOnly":0,"specOnly":0,"specPlusCode":33,"specs":33,"typecheckOk":33,"withRuns":0},"crons":[{"code":{"health":"warn","kind":"github-actions","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/.github/workflows/ci.yml#L10","where":{"file":".github/workflows/ci.yml","host":"github-actions","line":10,"service":null}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"github-actions","ID":"github-actions/999-multibots-telegraf/ci","KIND":"cron","NAME":"CI/CD Pipeline","NOTE":"GitHub Actions on this repository have not run since 2026-06-02 (billing); the schedule stands in the file but does not fire.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 2 * * *","SERVICE":".github/workflows/ci.yml","SUMMARY_EN":"Runs the whole build, type-check and test pipeline once a day so a dependency that rots without a push still gets caught.","TZ":"UTC"},"health":"ok","id":"github-actions/999-multibots-telegraf/ci","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_ci","name":{"en":"CI/CD Pipeline"},"runNow":{"kind":"link","url":"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/gHashTag/999-multibots-telegraf/actions/workflows/ci.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"8aea8946d266dd32d1455a5ae70c1b8a3b79f0ee4ac7889f68f14d0918094484","specPath":"specs/crons/999-multibots-telegraf-ci.t27","summary":{"en":"Runs the whole build, type-check and test pipeline once a day so a dependency that rots without a push still gets caught.","ru":"Раз в день прогоняет весь конвейер сборки, проверки типов и тестов, чтобы зависимость, гниющая без пуша, всё равно была поймана."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","kind":"github-actions","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/.github/workflows/security.yml#L10","where":{"file":".github/workflows/security.yml","host":"github-actions","line":10,"service":null}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"github-actions","ID":"github-actions/999-multibots-telegraf/security","KIND":"cron","NAME":"Security Checks","NOTE":"GitHub Actions on this repository have not run since 2026-06-02 (billing); the schedule stands in the file but does not fire.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 3 * * 0","SERVICE":".github/workflows/security.yml","SUMMARY_EN":"Runs the weekly security sweep: secret detection over the full history, dependency audit and code scanning.","TZ":"UTC"},"health":"ok","id":"github-actions/999-multibots-telegraf/security","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_security","name":{"en":"Security Checks"},"runNow":{"kind":"link","url":"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/gHashTag/999-multibots-telegraf/actions/workflows/security.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"85fd8a7d31b783c57da0443c9ca2156d6d786867bea9dfee682f6208f876e91c","specPath":"specs/crons/999-multibots-telegraf-security.t27","summary":{"en":"Runs the weekly security sweep: secret detection over the full history, dependency audit and code scanning.","ru":"Еженедельная проверка безопасности: поиск секретов по всей истории, аудит зависимостей и сканирование кода."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/t27/blob/e804cd062af9bd4424a8579ea54b1f21381580de/.github/workflows/formal-mutation.yml#L25","where":{"file":".github/workflows/formal-mutation.yml","host":"github-actions","line":25,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/t27/formal-mutation","KIND":"cron","NAME":"formal-mutation","NOTE":"Weekly rather than per-push because a full run costs about thirty yosys invocations.","ON_FAILURE":"log","REPO":"t27","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 5 * * 1","SERVICE":".github/workflows/formal-mutation.yml","SUMMARY_EN":"Proves the formal gates actually bite by mutating the generated RTL once a week and requiring each gate to go red for its own mutation.","TZ":"UTC"},"health":"ok","id":"github-actions/t27/formal-mutation","inSpecCorpus":true,"messages":[],"moduleName":"cron_t27_formal_mutation","name":{"en":"formal-mutation"},"runNow":{"kind":"link","url":"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/gHashTag/t27/actions/workflows/formal-mutation.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"f23f8e3b111bc55516c6e1860493acf41325dd40e6bf1b39842ba6c0dd906fbe","specPath":"specs/crons/t27-formal-mutation.t27","summary":{"en":"Proves the formal gates actually bite by mutating the generated RTL once a week and requiring each gate to go red for its own mutation.","ru":"Раз в неделю мутирует сгенерированный RTL и требует, чтобы каждый формальный гейт покраснел на своей мутации — доказательство, что гейты кусаются."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/t27/blob/e804cd062af9bd4424a8579ea54b1f21381580de/.github/workflows/pr-dashboard.yml#L6","where":{"file":".github/workflows/pr-dashboard.yml","host":"github-actions","line":6,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/t27/pr-dashboard","KIND":"cron","NAME":"PR Dashboard","ON_FAILURE":"log","REPO":"t27","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 * * * *","SERVICE":".github/workflows/pr-dashboard.yml","SUMMARY_EN":"Rebuilds the pull-request dashboard every hour from the current state of the open pull requests.","TZ":"UTC"},"health":"ok","id":"github-actions/t27/pr-dashboard","inSpecCorpus":true,"messages":[],"moduleName":"cron_t27_pr_dashboard","name":{"en":"PR Dashboard"},"runNow":{"kind":"link","url":"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/gHashTag/t27/actions/workflows/pr-dashboard.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"a16c8b2d502ca53955b1e51f3816d111ac056e5fe80904edbbc52fc269e45a92","specPath":"specs/crons/t27-pr-dashboard.t27","summary":{"en":"Rebuilds the pull-request dashboard every hour from the current state of the open pull requests.","ru":"Каждый час пересобирает панель pull request из текущего состояния открытых PR."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/agent-cron-cleanup.yml#L4","where":{"file":".github/workflows/agent-cron-cleanup.yml","host":"github-actions","line":4,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/agent-cron-cleanup","KIND":"cron","NAME":"Trinity Agent Cron Cleanup","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 */2 * * *","SERVICE":".github/workflows/agent-cron-cleanup.yml","SUMMARY_EN":"Finds agent deployments that got stuck and kills them, every two hours.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/agent-cron-cleanup","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_agent_cron_cleanup","name":{"en":"Trinity Agent Cron Cleanup"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/agent-cron-cleanup.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"f4db9e04ccb4ab2e3a1e501a15c2824109b7827d910ebf70874e5ab1ded9c6cf","specPath":"specs/crons/trinity-agent-cron-cleanup.t27","summary":{"en":"Finds agent deployments that got stuck and kills them, every two hours.","ru":"Каждые два часа находит застрявшие деплои агентов и убивает их."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/agent-queue-drain.yml#L4","where":{"file":".github/workflows/agent-queue-drain.yml","host":"github-actions","line":4,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/agent-queue-drain","KIND":"cron","NAME":"Trinity Agent Queue Drain","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"dispatches agent-spawn-pool.yml for a queued issue; no named skill invocation found in source","SCHEDULE":"*/5 * * * *","SERVICE":".github/workflows/agent-queue-drain.yml","SUMMARY_EN":"Looks for queued issues and free agent slots every five minutes and starts the next agent when there is room.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/agent-queue-drain","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_agent_queue_drain","name":{"en":"Trinity Agent Queue Drain"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/agent-queue-drain.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"e334d5dc5fc0c176e420a131ea712b9f8d2e1c03b56a36388a683081b5defda3","specPath":"specs/crons/trinity-agent-queue-drain.t27","summary":{"en":"Looks for queued issues and free agent slots every five minutes and starts the next agent when there is room.","ru":"Каждые пять минут ищет задачи в очереди и свободные слоты агентов и запускает следующего агента, когда есть место."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/brain-ci.yml#L11","where":{"file":".github/workflows/brain-ci.yml","host":"github-actions","line":11,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/brain-ci","KIND":"cron","NAME":"S³AI Brain CI — \"Functional MRI\" Gate","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 0 * * 0","SERVICE":".github/workflows/brain-ci.yml","SUMMARY_EN":"Runs the weekly brain stress test, the long version of the health gate that every commit already gets.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/brain-ci","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_brain_ci","name":{"en":"S³AI Brain CI — \"Functional MRI\" Gate"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/brain-ci.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"c8cd980319751e2b53501dc645f1beb6980bdbf77adbb98a158a12be441d957e","specPath":"specs/crons/trinity-brain-ci.t27","summary":{"en":"Runs the weekly brain stress test, the long version of the health gate that every commit already gets.","ru":"Еженедельный стресс-тест мозга — длинная версия гейта здоровья, который получает каждый коммит."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/codegen.yml#L10","where":{"file":".github/workflows/codegen.yml","host":"github-actions","line":10,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/codegen","KIND":"cron","NAME":"Codegen Validation","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 0 * * *","SERVICE":".github/workflows/codegen.yml","SUMMARY_EN":"Validates the VIBEE code generator once a day, independently of whether anyone pushed.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/codegen","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_codegen","name":{"en":"Codegen Validation"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/codegen.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"d71a2dd240cabe9e1e5d667259d245209ec4532632c30328971e84ec4cbc4bd6","specPath":"specs/crons/trinity-codegen.t27","summary":{"en":"Validates the VIBEE code generator once a day, independently of whether anyone pushed.","ru":"Раз в день проверяет генератор кода VIBEE независимо от того, пушил ли кто-нибудь."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/discover-callers.yml#L16","where":{"file":".github/workflows/discover-callers.yml","host":"github-actions","line":16,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/discover-callers","KIND":"cron","NAME":"Discover RTL check callers","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"41 5 * * *","SERVICE":".github/workflows/discover-callers.yml","SUMMARY_EN":"Reads GitHub for repositories that run the RTL check, so the gallery counts its own users instead of being hand-written.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/discover-callers","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_discover_callers","name":{"en":"Discover RTL check callers"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/discover-callers.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"1aa5ec92373f3a0a9df24da027b852896fc303ec4eb50e4ee780d9abdea5aced","specPath":"specs/crons/trinity-discover-callers.t27","summary":{"en":"Reads GitHub for repositories that run the RTL check, so the gallery counts its own users instead of being hand-written.","ru":"Читает GitHub в поисках репозиториев, запускающих RTL-проверку, чтобы галерея считала своих пользователей сама."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/pages-health-check.yml#L17","where":{"file":".github/workflows/pages-health-check.yml","host":"github-actions","line":17,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/pages-health-check","KIND":"cron","NAME":"Pages Health Check","NOTE":"An earlier version judged a bare status code, failed ninety-six times a day on a site that was up, and dispatched a redeploy each time.","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"*/15 * * * *","SERVICE":".github/workflows/pages-health-check.yml","SUMMARY_EN":"Fetches the published site every fifteen minutes, follows the redirect, and redeploys only when the evidence says the deploy is what broke.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/pages-health-check","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_pages_health_check","name":{"en":"Pages Health Check"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/pages-health-check.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"f8199eaa1c9707bff5ba89d553a644725b072fce2f7c4c5de7dfe4b6e9620ac1","specPath":"specs/crons/trinity-pages-health-check.t27","summary":{"en":"Fetches the published site every fifteen minutes, follows the redirect, and redeploys only when the evidence says the deploy is what broke.","ru":"Каждые пятнадцать минут запрашивает опубликованный сайт, следует редиректу и передеплоит только когда свидетельства говорят, что сломан именно деплой."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/signal-health-self.yml#L17","where":{"file":".github/workflows/signal-health-self.yml","host":"github-actions","line":17,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/signal-health-self","KIND":"cron","NAME":"Signal health (self)","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"23 4 * * *","SERVICE":".github/workflows/signal-health-self.yml","SUMMARY_EN":"Applies the signal-health check to the repository that sells it and writes the numbers into the website data.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/signal-health-self","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_signal_health_self","name":{"en":"Signal health (self)"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/signal-health-self.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"b5bd1483d24af17707d8fcf03dbb6f011bc8462773423ebe9b8ee4e506a76a4e","specPath":"specs/crons/trinity-signal-health-self.t27","summary":{"en":"Applies the signal-health check to the repository that sells it and writes the numbers into the website data.","ru":"Применяет проверку signal-health к репозиторию, который её продаёт, и записывает числа в данные сайта."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/site-live-gate.yml#L33","where":{"file":".github/workflows/site-live-gate.yml","host":"github-actions","line":33,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/site-live-gate","KIND":"cron","NAME":"Site live gate","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"17 6 * * *","SERVICE":".github/workflows/site-live-gate.yml","SUMMARY_EN":"Compares the content-hashed entry bundle served at the apex against a build of main, so that 'deployed' means a reader can actually see it.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/site-live-gate","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_site_live_gate","name":{"en":"Site live gate"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/site-live-gate.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"76ed9aa7465a9ba704074563535c41d2df1fcfa2ac76059bfe2eb5e3e52c5933","specPath":"specs/crons/trinity-site-live-gate.t27","summary":{"en":"Compares the content-hashed entry bundle served at the apex against a build of main, so that 'deployed' means a reader can actually see it.","ru":"Сравнивает бандл с контент-хешем на апексе со сборкой main, чтобы «задеплоено» означало, что читатель это видит."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"inngest","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/inngest_app/functions/training/checkStuckTrainings.ts#L53","where":{"file":"src/inngest_app/functions/training/checkStuckTrainings.ts","host":"railway:999-multibots-telegraf","line":53,"service":"inngest"}},"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/check-stuck-trainings","KIND":"cron","NAME":"check-stuck-trainings","NOTE":"Records whose Replicate id is still a placeholder are skipped, because there is nothing on the provider to ask about.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"*/30 * * * *","SERVICE":"src/inngest_app/functions/training/checkStuckTrainings.ts","SUMMARY_EN":"Finds model trainings still marked pending or processing past the stuck threshold and reconciles them against Replicate.","TZ":"UTC"},"health":"ok","id":"inngest/999-multibots-telegraf/check-stuck-trainings","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_check_stuck_trainings","name":{"en":"check-stuck-trainings"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"fb82b6e4149b8be9916c35694faaeca85b555a6e3044cd3bc35f4d836ce60e49","specPath":"specs/crons/999-multibots-telegraf-check-stuck-trainings.t27","summary":{"en":"Finds model trainings still marked pending or processing past the stuck threshold and reconciles them against Replicate.","ru":"Находит обучения моделей, застрявшие в pending или processing дольше порога, и сверяет их с Replicate."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"inngest","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/inngest_app/functions/analytics/dailySalesAdvisor.ts#L56","where":{"file":"src/inngest_app/functions/analytics/dailySalesAdvisor.ts","host":"railway:999-multibots-telegraf","line":56,"service":"inngest"}},"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/daily-sales-advisor","KIND":"cron","NAME":"daily-sales-advisor","NOTE":"One report per owner across all of their bots, assembled from the payments ledger rather than from a balance column.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 9 * * *","SERVICE":"src/inngest_app/functions/analytics/dailySalesAdvisor.ts","SUMMARY_EN":"Builds every bot owner a morning report of yesterday's revenue, the week's costs and which services their users actually bought.","TZ":"UTC"},"health":"ok","id":"inngest/999-multibots-telegraf/daily-sales-advisor","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_daily_sales_advisor","name":{"en":"daily-sales-advisor"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"0e2f8e5085ed1ea2b4b2f7732c9f9de00fcd19fda8d13e1f735865aa2cd32179","specPath":"specs/crons/999-multibots-telegraf-daily-sales-advisor.t27","summary":{"en":"Builds every bot owner a morning report of yesterday's revenue, the week's costs and which services their users actually bought.","ru":"Собирает каждому владельцу бота утренний отчёт: вчерашняя выручка, расходы недели и что реально покупали пользователи."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"inngest","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/inngest_app/functions/monitoring/criticalErrorMonitor.ts#L243","where":{"file":"src/inngest_app/functions/monitoring/criticalErrorMonitor.ts","host":"railway:999-multibots-telegraf","line":243,"service":"inngest"}},"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/health-check","KIND":"cron","NAME":"health-check","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"*/30 * * * *","SERVICE":"src/inngest_app/functions/monitoring/criticalErrorMonitor.ts","SUMMARY_EN":"Probes the main API and the Inngest service every half hour and reports what answered.","TZ":"UTC"},"health":"ok","id":"inngest/999-multibots-telegraf/health-check","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_health_check","name":{"en":"health-check"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"b1bf93d0a864129e5c53a03b96cfe5d52069b5b65a7472dcef61a58cd6b87e1f","specPath":"specs/crons/999-multibots-telegraf-health-check.t27","summary":{"en":"Probes the main API and the Inngest service every half hour and reports what answered.","ru":"Каждые полчаса опрашивает основной API и сервис Inngest и сообщает, кто ответил."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"inngest","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/inngest_app/functions/monitoring/logMonitor.ts#L360","where":{"file":"src/inngest_app/functions/monitoring/logMonitor.ts","host":"railway:999-multibots-telegraf","line":360,"service":"inngest"}},"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/log-monitor","KIND":"cron","NAME":"log-monitor","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 10 * * *","SERVICE":"src/inngest_app/functions/monitoring/logMonitor.ts","SUMMARY_EN":"Reads the application logs once a day, has a model summarise the errors and warnings, and sends the digest to Telegram.","TZ":"UTC"},"health":"ok","id":"inngest/999-multibots-telegraf/log-monitor","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_log_monitor","name":{"en":"log-monitor"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"3f1d2105328665203dc3850fea9f0245b7a6adbe5558e255756d168478812921","specPath":"specs/crons/999-multibots-telegraf-log-monitor.t27","summary":{"en":"Reads the application logs once a day, has a model summarise the errors and warnings, and sends the digest to Telegram.","ru":"Раз в день читает логи приложения, поручает модели свести ошибки и предупреждения и отправляет дайджест в Telegram."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"inngest","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/inngest_app/functions/webhookHealthGuard.ts#L218","where":{"file":"src/inngest_app/functions/webhookHealthGuard.ts","host":"railway:999-multibots-telegraf","line":218,"service":"inngest"}},"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/periodic-webhook-health-check","KIND":"cron","NAME":"periodic-webhook-health-check","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 * * * *","SERVICE":"src/inngest_app/functions/webhookHealthGuard.ts","SUMMARY_EN":"Tests both Telegram webhook URLs every hour and sends the admin a critical alarm when neither of them answers.","TZ":"UTC"},"health":"ok","id":"inngest/999-multibots-telegraf/periodic-webhook-health-check","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_periodic_webhook_health_check","name":{"en":"periodic-webhook-health-check"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"a3b21a33a8a8022b527e3f46362fb6df63fb6f2e5ee642a439d88862dd4722f3","specPath":"specs/crons/999-multibots-telegraf-periodic-webhook-health-check.t27","summary":{"en":"Tests both Telegram webhook URLs every hour and sends the admin a critical alarm when neither of them answers.","ru":"Каждый час проверяет оба URL вебхука Telegram и шлёт админу критическую тревогу, когда не отвечает ни один."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"inngest","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/inngest_app/functions/analytics/skillDetector.ts#L32","where":{"file":"src/inngest_app/functions/analytics/skillDetector.ts","host":"railway:999-multibots-telegraf","line":32,"service":"inngest"}},"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/skill-detector","KIND":"cron","NAME":"skill-detector","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"the \"skills\" it saves are bot prompt patterns, not Claude Code skills; no skill invocation found in source","SCHEDULE":"0 10 * * *","SERVICE":"src/inngest_app/functions/analytics/skillDetector.ts","SUMMARY_EN":"Mines successful generations for repeated model and prompt patterns once a day and saves the new ones as reusable skills.","TZ":"UTC"},"health":"ok","id":"inngest/999-multibots-telegraf/skill-detector","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_skill_detector","name":{"en":"skill-detector"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"d228015ce607198f53341b0b9dfc55a2cd0616e69487598d0cbabc34cc6892cf","specPath":"specs/crons/999-multibots-telegraf-skill-detector.t27","summary":{"en":"Mines successful generations for repeated model and prompt patterns once a day and saves the new ones as reusable skills.","ru":"Раз в день ищет в успешных генерациях повторяющиеся паттерны моделей и промптов и сохраняет новые как переиспользуемые навыки бота."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","kind":"railway-cron","repoPrivate":true,"sourceUrl":null,"where":{"file":null,"host":"railway:jobsearch-cron","line":null,"service":"jobsearch-cron"}},"control":"railway-dashboard","discarded":0,"fields":{"CONTROL":"railway-dashboard","ENABLED":true,"HOST":"railway-cron","ID":"railway-cron/999/jobsearch-cron","KIND":"cron","NAME":"jobsearch-cron","NOTE":"The schedule is configured in the Railway dashboard for project 999 and is not readable from the checkout; the probe below is what this catalog can verify.","ON_FAILURE":"unknown","REPO":"railway","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"","SCHEDULE_NOTE":"configured in the Railway dashboard (project 999); not readable from the checkout","SERVICE":"jobsearch-cron","SUMMARY_EN":"The scheduled job-search service of the Railway project, reachable at cron.t27.ai.","TZ":"UTC"},"health":"ok","id":"railway-cron/999/jobsearch-cron","inSpecCorpus":true,"messages":[],"moduleName":"cron_railway_jobsearch_cron","name":{"en":"jobsearch-cron"},"runNow":{"kind":"link","url":"https://railway.com/project/564d9ebd-7aa8-44fe-93ec-e0b03c87158d/service/3196472e-b885-43e0-b553-0644664e4496","via":"railway"},"runs":[],"runsResolved":[],"sha256":"8729edafdc8239d187c0f2b7d98238438d40ec439b39087e1654bb683366ec3a","specPath":"specs/crons/railway-jobsearch-cron.t27","summary":{"en":"The scheduled job-search service of the Railway project, reachable at cron.t27.ai.","ru":"Сервис поиска вакансий по расписанию в проекте Railway, доступен на cron.t27.ai."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/apps/vibee-editor/render/scripts/agent-autopilot.ts#L1118","where":{"file":"apps/vibee-editor/render/scripts/agent-autopilot.ts","host":"railway:vibee-render","line":1118,"service":"render"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/agent-autopilot-L1118","INTERVAL_MS":1800000,"KIND":"cron","NAME":"agent-autopilot-L1118","NOTE":"Daemon mode only, under --loop or AUTOPILOT_LOOP=1; AUTOPILOT_INTERVAL_MS overrides the thirty-minute period, with a one-minute floor.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"apps/vibee-editor/render/scripts/agent-autopilot.ts:1118","SUMMARY_EN":"Runs one autopilot cycle -- the generation pass and then the channel tick -- and skips the tick entirely when the previous cycle is still running.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/agent-autopilot-L1118","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_agent_autopilot_L1118","name":{"en":"agent-autopilot-L1118"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"39c25a3a6c40cff4e3ad9aa098e7492803a9cc78a935e74966c4f95939c85228","specPath":"specs/crons/999-multibots-telegraf-agent-autopilot-L1118.t27","summary":{"en":"Runs one autopilot cycle -- the generation pass and then the channel tick -- and skips the tick entirely when the previous cycle is still running.","ru":"Один цикл автопилота — проход генерации и затем тик канала; тик пропускается целиком, если предыдущий цикл ещё идёт."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/services/bot-owner-billing.ts#L474","where":{"file":"src/services/bot-owner-billing.ts","host":"railway:999-multibots-telegraf","line":474,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/bot-owner-billing-L474","INTERVAL_MS":86400000,"KIND":"cron","NAME":"bot-owner-billing-L474","NOTE":"The first run after a restart is skipped on purpose, and an owner whose payments cannot be read is left alone rather than accused.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/services/bot-owner-billing.ts:474","SUMMARY_EN":"Recomputes every bot owner's debt from the payments ledger, warns them at the soft, warning and critical thresholds, and disables a bot that stays critical for three days.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/bot-owner-billing-L474","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_bot_owner_billing_L474","name":{"en":"bot-owner-billing-L474"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"b2fb3c2d66630369c42ae4aba3f80538661c5591de99f1b088c569185be83197","specPath":"specs/crons/999-multibots-telegraf-bot-owner-billing-L474.t27","summary":{"en":"Recomputes every bot owner's debt from the payments ledger, warns them at the soft, warning and critical thresholds, and disables a bot that stays critical for three days.","ru":"Пересчитывает долг каждого владельца бота по журналу платежей, предупреждает на мягком, тревожном и критическом порогах и отключает бота, три дня остающегося критическим."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/services/crmProactive.ts#L375","where":{"file":"src/services/crmProactive.ts","host":"railway:999-multibots-telegraf","line":375,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/crmProactive-L375","INTERVAL_MS":1800000,"KIND":"cron","NAME":"crmProactive-L375","NOTE":"The period is CRM_PROACTIVE_MINUTES from src/index.ts, thirty minutes by default; the first sweep waits two minutes after start.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/services/crmProactive.ts:375","SUMMARY_EN":"Runs one proactive seller turn for the owner: walks the CRM queue and puts the next draft card in front of them without being asked.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/crmProactive-L375","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_crmProactive_L375","name":{"en":"crmProactive-L375"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"68cef02f70476660ff1d1df04010d0a3d6cbe249c35da94d97f4c2a641e57d5e","specPath":"specs/crons/999-multibots-telegraf-crmProactive-L375.t27","summary":{"en":"Runs one proactive seller turn for the owner: walks the CRM queue and puts the next draft card in front of them without being asked.","ru":"Один проактивный ход продавца для владельца: обходит очередь CRM и кладёт перед ним следующую карточку-черновик без просьбы."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/apps/vibee-editor/render/generate-jobs.ts#L164","where":{"file":"apps/vibee-editor/render/generate-jobs.ts","host":"railway:vibee-render","line":164,"service":"render"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/generate-jobs-L164","INTERVAL_MS":300000,"KIND":"cron","NAME":"generate-jobs-L164","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"apps/vibee-editor/render/generate-jobs.ts:164","SUMMARY_EN":"Sweeps finished generation jobs out of memory an hour after they end, once a caller who lost the connection has had time to collect the result.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/generate-jobs-L164","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_generate_jobs_L164","name":{"en":"generate-jobs-L164"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"c72b9a7b5fa9804c513eb5c2ebff0868bbf2a7226347826e64bbd34f6bef6475","specPath":"specs/crons/999-multibots-telegraf-generate-jobs-L164.t27","summary":{"en":"Sweeps finished generation jobs out of memory an hour after they end, once a caller who lost the connection has had time to collect the result.","ru":"Через час после завершения выметает из памяти законченные задания генерации, когда потерявший соединение клиент успел забрать результат."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/handlers/notificationHandler.ts#L318","where":{"file":"src/handlers/notificationHandler.ts","host":"railway:999-multibots-telegraf","line":318,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/notificationHandler-L318","INTERVAL_MS":60000,"KIND":"cron","NAME":"notificationHandler-L318","NOTE":"Wrapped in an exclusive tick, so two bot processes cannot deliver the same notification twice.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/handlers/notificationHandler.ts:318","SUMMARY_EN":"Drains the notification queue and delivers the Telegram messages waiting in it.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/notificationHandler-L318","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_notificationHandler_L318","name":{"en":"notificationHandler-L318"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"9114a4bdfb275175f60c5a111bdc07bbfcbb62c55a0871176b8f93e3436bdd9f","specPath":"specs/crons/999-multibots-telegraf-notificationHandler-L318.t27","summary":{"en":"Drains the notification queue and delivers the Telegram messages waiting in it.","ru":"Разгружает очередь уведомлений и доставляет ждущие в ней сообщения Telegram."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/handlers/notificationHandler.ts#L324","where":{"file":"src/handlers/notificationHandler.ts","host":"railway:999-multibots-telegraf","line":324,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/notificationHandler-L324","INTERVAL_MS":3600000,"KIND":"cron","NAME":"notificationHandler-L324","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/handlers/notificationHandler.ts:324","SUMMARY_EN":"Deletes notification messages old enough that nobody is going to read them.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/notificationHandler-L324","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_notificationHandler_L324","name":{"en":"notificationHandler-L324"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"44d2e3c8843519a512128399557c8d7af29ca2491f769f91c845dc44e0b63f9a","specPath":"specs/crons/999-multibots-telegraf-notificationHandler-L324.t27","summary":{"en":"Deletes notification messages old enough that nobody is going to read them.","ru":"Удаляет уведомления, настолько старые, что их уже никто не прочитает."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/utils/production-monitor.ts#L80","where":{"file":"src/utils/production-monitor.ts","host":"railway:999-multibots-telegraf","line":80,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":false,"HOST":"timer","ID":"timer/999-multibots-telegraf/production-monitor-L80","INTERVAL_MS":300000,"KIND":"cron","NAME":"production-monitor-L80","NOTE":"Started only by running this module from the command line with the `monitor` argument; the bot's own entry point never starts it.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/utils/production-monitor.ts:80","SUMMARY_EN":"Re-runs the container, nginx, port, domain, webhook and system-resource checks, and applies the fixes that are enabled.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/production-monitor-L80","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_production_monitor_L80","name":{"en":"production-monitor-L80"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"880d0b6c01b2b1e4cc9bc92c11ef300b8335bdf8ca842308bca7d3fd7e979254","specPath":"specs/crons/999-multibots-telegraf-production-monitor-L80.t27","summary":{"en":"Re-runs the container, nginx, port, domain, webhook and system-resource checks, and applies the fixes that are enabled.","ru":"Повторяет проверки контейнера, nginx, порта, домена, вебхука и ресурсов системы и применяет включённые исправления."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/services/provider-health-monitor.ts#L344","where":{"file":"src/services/provider-health-monitor.ts","host":"railway:999-multibots-telegraf","line":344,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/provider-health-monitor-L344","INTERVAL_MS":300000,"KIND":"cron","NAME":"provider-health-monitor-L344","NOTE":"Providers listed in HEALTH_SKIP_PROVIDERS are deliberately not watched and do not raise the alarm.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/services/provider-health-monitor.ts:344","SUMMARY_EN":"Checks every AI provider that is not parked and records whether it is currently answering.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/provider-health-monitor-L344","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_provider_health_monitor_L344","name":{"en":"provider-health-monitor-L344"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"0044630e40dc2673a2d1210e848f1a3cd41cc2b21b541bec98e305f0192a2de7","specPath":"specs/crons/999-multibots-telegraf-provider-health-monitor-L344.t27","summary":{"en":"Checks every AI provider that is not parked and records whether it is currently answering.","ru":"Проверяет каждого не отключённого AI-провайдера и записывает, отвечает ли он сейчас."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/apps/vibee-editor/render/render-server.ts#L10845","where":{"file":"apps/vibee-editor/render/render-server.ts","host":"railway:vibee-render","line":10845,"service":"render"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/render-server-L10845","INTERVAL_MS":30000,"KIND":"cron","NAME":"render-server-L10845","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"apps/vibee-editor/render/render-server.ts:10845","SUMMARY_EN":"Pings every websocket peer and drops the ones that did not answer the previous round.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/render-server-L10845","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_render_server_L10845","name":{"en":"render-server-L10845"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"bfcd81ea5f3b3040dccce76d91dd699347e49c2df843529218ee138560e2d924","specPath":"specs/crons/999-multibots-telegraf-render-server-L10845.t27","summary":{"en":"Pings every websocket peer and drops the ones that did not answer the previous round.","ru":"Пингует каждого websocket-пира и отключает тех, кто не ответил в прошлом раунде."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/apps/vibee-editor/render/render-server.ts#L2301","where":{"file":"apps/vibee-editor/render/render-server.ts","host":"railway:vibee-render","line":2301,"service":"render"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/render-server-L2301","INTERVAL_MS":60000,"KIND":"cron","NAME":"render-server-L2301","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"apps/vibee-editor/render/render-server.ts:2301","SUMMARY_EN":"Removes render jobs older than an hour from the in-memory job map.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/render-server-L2301","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_render_server_L2301","name":{"en":"render-server-L2301"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"37e3dca7f4836af5ecfde5eaaa2aa993ac19087ac902adbb4015c04527a2af62","specPath":"specs/crons/999-multibots-telegraf-render-server-L2301.t27","summary":{"en":"Removes render jobs older than an hour from the in-memory job map.","ru":"Удаляет из карты в памяти задания рендера старше часа."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/apps/vibee-editor/render/render-server.ts#L2325","where":{"file":"apps/vibee-editor/render/render-server.ts","host":"railway:vibee-render","line":2325,"service":"render"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/render-server-L2325","INTERVAL_MS":600000,"KIND":"cron","NAME":"render-server-L2325","NOTE":"Checks often and writes rarely: the cursor lives in the database, because this Railway project has no volume and a deploy wipes local state.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"apps/vibee-editor/render/render-server.ts:2325","SUMMARY_EN":"Reads the hive journal and delivers the queen's report to the keepers, passing alarms straight through and batching ordinary events.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/render-server-L2325","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_render_server_L2325","name":{"en":"render-server-L2325"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"11b24d4332b7e356f77b233a20d578c3ec31da71ff34be37d16d29d7d4471d5b","specPath":"specs/crons/999-multibots-telegraf-render-server-L2325.t27","summary":{"en":"Reads the hive journal and delivers the queen's report to the keepers, passing alarms straight through and batching ordinary events.","ru":"Читает журнал улья и доставляет отчёт королевы хранителям: тревоги — сразу, обычные события — пакетом."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/apps/vibee-editor/render/render-server.ts#L919","where":{"file":"apps/vibee-editor/render/render-server.ts","host":"railway:vibee-render","line":919,"service":"render"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/render-server-L919","INTERVAL_MS":5000,"KIND":"cron","NAME":"render-server-L919","NOTE":"Only starts when a session signing key is configured; a deployed render server refuses to boot without one.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"apps/vibee-editor/render/render-server.ts:919","SUMMARY_EN":"Re-reads the session revocation list from Postgres so a revoked browser session stops being accepted.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/render-server-L919","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_render_server_L919","name":{"en":"render-server-L919"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"f86d77af65dfb35cc4adf4202c8f06577e82d7856edbcac656ef735eeba19a52","specPath":"specs/crons/999-multibots-telegraf-render-server-L919.t27","summary":{"en":"Re-reads the session revocation list from Postgres so a revoked browser session stops being accepted.","ru":"Перечитывает из Postgres список отозванных сессий, чтобы отозванная сессия браузера перестала приниматься."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/modules/videoGenerator/taskCache.ts#L27","where":{"file":"src/modules/videoGenerator/taskCache.ts","host":"railway:999-multibots-telegraf","line":27,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/taskCache-L27","INTERVAL_MS":300000,"KIND":"cron","NAME":"taskCache-L27","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/modules/videoGenerator/taskCache.ts:27","SUMMARY_EN":"Drops video-generation cache entries past their fifteen-minute lifetime so a finished task cannot block the next request.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/taskCache-L27","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_taskCache_L27","name":{"en":"taskCache-L27"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"ca7f9a9edce47fe23ef59515d87ba7f391b878a9c5115b43e9c32b4a70fe90db","specPath":"specs/crons/999-multibots-telegraf-taskCache-L27.t27","summary":{"en":"Drops video-generation cache entries past their fifteen-minute lifetime so a finished task cannot block the next request.","ru":"Сбрасывает записи кэша видеогенерации старше пятнадцати минут, чтобы завершённая задача не блокировала следующий запрос."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/services/video-task-store.ts#L156","where":{"file":"src/services/video-task-store.ts","host":"railway:999-multibots-telegraf","line":156,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/video-task-store-L156","INTERVAL_MS":600000,"KIND":"cron","NAME":"video-task-store-L156","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/services/video-task-store.ts:156","SUMMARY_EN":"Forgets video tasks older than an hour and rewrites the store to disk when anything was removed.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/video-task-store-L156","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_video_task_store_L156","name":{"en":"video-task-store-L156"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"dc4e3d6c76cac57a36074da8a9d6aac8df1f1c55bb68a593c2cadf94c94351b1","specPath":"specs/crons/999-multibots-telegraf-video-task-store-L156.t27","summary":{"en":"Forgets video tasks older than an hour and rewrites the store to disk when anything was removed.","ru":"Забывает видеозадачи старше часа и переписывает хранилище на диск, если что-то было удалено."},"typecheckOk":true,"witness":"spec+code"}],"generatedAt":"2026-09-21T08:52:39.041Z","i18n":[{"bundle":"apps/website/i18n/agents.ru.json","coverage":{"n":33,"total":33},"enabled":true,"fields":["SUMMARY","NAME"],"locale":"ru","missing":[],"scope":["specs/skills","specs/crons","specs/agents","specs/functions","specs/tools"],"sha256":"c8871fb4ccdef8fc3cc2937af5db0e307ab0b62f6a03ece9f4512851ffd64f04","spec":"specs/i18n/agents-ru.t27"}],"ladder":{"agents":27,"crons":33,"functions":28,"skills":26,"specs":1414,"tools":92},"version":1} +{"codeOnly":[],"compilerWasmSha256":"bb39b9a5ca412a2695ab6a20a54e222933e10edaf08ef053670e4974d08f113f","contentSha256":"91f819ee87cc12640f6f7410d246db24e848d741624c8a6754aa77e99219f834","counts":{"byHost":{"github-actions":12,"inngest":11,"railway-cron":1,"timer":14},"codeOnly":0,"specOnly":5,"specPlusCode":33,"specs":38,"typecheckOk":38,"withRuns":0},"crons":[{"code":{"health":"warn","kind":"github-actions","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/.github/workflows/ci.yml#L10","where":{"file":".github/workflows/ci.yml","host":"github-actions","line":10,"service":null}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"github-actions","ID":"github-actions/999-multibots-telegraf/ci","KIND":"cron","NAME":"CI/CD Pipeline","NOTE":"GitHub Actions on this repository have not run since 2026-06-02 (billing); the schedule stands in the file but does not fire.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 2 * * *","SERVICE":".github/workflows/ci.yml","SUMMARY_EN":"Runs the whole build, type-check and test pipeline once a day so a dependency that rots without a push still gets caught.","TZ":"UTC"},"health":"ok","id":"github-actions/999-multibots-telegraf/ci","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_ci","name":{"en":"CI/CD Pipeline"},"runNow":{"kind":"link","url":"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/gHashTag/999-multibots-telegraf/actions/workflows/ci.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"8aea8946d266dd32d1455a5ae70c1b8a3b79f0ee4ac7889f68f14d0918094484","specPath":"specs/crons/999-multibots-telegraf-ci.t27","summary":{"en":"Runs the whole build, type-check and test pipeline once a day so a dependency that rots without a push still gets caught.","ru":"Раз в день прогоняет весь конвейер сборки, проверки типов и тестов, чтобы зависимость, гниющая без пуша, всё равно была поймана."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","kind":"github-actions","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/.github/workflows/security.yml#L10","where":{"file":".github/workflows/security.yml","host":"github-actions","line":10,"service":null}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"github-actions","ID":"github-actions/999-multibots-telegraf/security","KIND":"cron","NAME":"Security Checks","NOTE":"GitHub Actions on this repository have not run since 2026-06-02 (billing); the schedule stands in the file but does not fire.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 3 * * 0","SERVICE":".github/workflows/security.yml","SUMMARY_EN":"Runs the weekly security sweep: secret detection over the full history, dependency audit and code scanning.","TZ":"UTC"},"health":"ok","id":"github-actions/999-multibots-telegraf/security","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_security","name":{"en":"Security Checks"},"runNow":{"kind":"link","url":"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/gHashTag/999-multibots-telegraf/actions/workflows/security.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"85fd8a7d31b783c57da0443c9ca2156d6d786867bea9dfee682f6208f876e91c","specPath":"specs/crons/999-multibots-telegraf-security.t27","summary":{"en":"Runs the weekly security sweep: secret detection over the full history, dependency audit and code scanning.","ru":"Еженедельная проверка безопасности: поиск секретов по всей истории, аудит зависимостей и сканирование кода."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/t27/blob/e804cd062af9bd4424a8579ea54b1f21381580de/.github/workflows/formal-mutation.yml#L25","where":{"file":".github/workflows/formal-mutation.yml","host":"github-actions","line":25,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/t27/formal-mutation","KIND":"cron","NAME":"formal-mutation","NOTE":"Weekly rather than per-push because a full run costs about thirty yosys invocations.","ON_FAILURE":"log","REPO":"t27","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 5 * * 1","SERVICE":".github/workflows/formal-mutation.yml","SUMMARY_EN":"Proves the formal gates actually bite by mutating the generated RTL once a week and requiring each gate to go red for its own mutation.","TZ":"UTC"},"health":"ok","id":"github-actions/t27/formal-mutation","inSpecCorpus":true,"messages":[],"moduleName":"cron_t27_formal_mutation","name":{"en":"formal-mutation"},"runNow":{"kind":"link","url":"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/gHashTag/t27/actions/workflows/formal-mutation.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"f23f8e3b111bc55516c6e1860493acf41325dd40e6bf1b39842ba6c0dd906fbe","specPath":"specs/crons/t27-formal-mutation.t27","summary":{"en":"Proves the formal gates actually bite by mutating the generated RTL once a week and requiring each gate to go red for its own mutation.","ru":"Раз в неделю мутирует сгенерированный RTL и требует, чтобы каждый формальный гейт покраснел на своей мутации — доказательство, что гейты кусаются."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/t27/blob/e804cd062af9bd4424a8579ea54b1f21381580de/.github/workflows/pr-dashboard.yml#L6","where":{"file":".github/workflows/pr-dashboard.yml","host":"github-actions","line":6,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/t27/pr-dashboard","KIND":"cron","NAME":"PR Dashboard","ON_FAILURE":"log","REPO":"t27","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 * * * *","SERVICE":".github/workflows/pr-dashboard.yml","SUMMARY_EN":"Rebuilds the pull-request dashboard every hour from the current state of the open pull requests.","TZ":"UTC"},"health":"ok","id":"github-actions/t27/pr-dashboard","inSpecCorpus":true,"messages":[],"moduleName":"cron_t27_pr_dashboard","name":{"en":"PR Dashboard"},"runNow":{"kind":"link","url":"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/gHashTag/t27/actions/workflows/pr-dashboard.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"a16c8b2d502ca53955b1e51f3816d111ac056e5fe80904edbbc52fc269e45a92","specPath":"specs/crons/t27-pr-dashboard.t27","summary":{"en":"Rebuilds the pull-request dashboard every hour from the current state of the open pull requests.","ru":"Каждый час пересобирает панель pull request из текущего состояния открытых PR."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/agent-cron-cleanup.yml#L4","where":{"file":".github/workflows/agent-cron-cleanup.yml","host":"github-actions","line":4,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/agent-cron-cleanup","KIND":"cron","NAME":"Trinity Agent Cron Cleanup","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 */2 * * *","SERVICE":".github/workflows/agent-cron-cleanup.yml","SUMMARY_EN":"Finds agent deployments that got stuck and kills them, every two hours.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/agent-cron-cleanup","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_agent_cron_cleanup","name":{"en":"Trinity Agent Cron Cleanup"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/agent-cron-cleanup.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"f4db9e04ccb4ab2e3a1e501a15c2824109b7827d910ebf70874e5ab1ded9c6cf","specPath":"specs/crons/trinity-agent-cron-cleanup.t27","summary":{"en":"Finds agent deployments that got stuck and kills them, every two hours.","ru":"Каждые два часа находит застрявшие деплои агентов и убивает их."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/agent-queue-drain.yml#L4","where":{"file":".github/workflows/agent-queue-drain.yml","host":"github-actions","line":4,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/agent-queue-drain","KIND":"cron","NAME":"Trinity Agent Queue Drain","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"dispatches agent-spawn-pool.yml for a queued issue; no named skill invocation found in source","SCHEDULE":"*/5 * * * *","SERVICE":".github/workflows/agent-queue-drain.yml","SUMMARY_EN":"Looks for queued issues and free agent slots every five minutes and starts the next agent when there is room.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/agent-queue-drain","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_agent_queue_drain","name":{"en":"Trinity Agent Queue Drain"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/agent-queue-drain.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"e334d5dc5fc0c176e420a131ea712b9f8d2e1c03b56a36388a683081b5defda3","specPath":"specs/crons/trinity-agent-queue-drain.t27","summary":{"en":"Looks for queued issues and free agent slots every five minutes and starts the next agent when there is room.","ru":"Каждые пять минут ищет задачи в очереди и свободные слоты агентов и запускает следующего агента, когда есть место."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/brain-ci.yml#L11","where":{"file":".github/workflows/brain-ci.yml","host":"github-actions","line":11,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/brain-ci","KIND":"cron","NAME":"S³AI Brain CI — \"Functional MRI\" Gate","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 0 * * 0","SERVICE":".github/workflows/brain-ci.yml","SUMMARY_EN":"Runs the weekly brain stress test, the long version of the health gate that every commit already gets.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/brain-ci","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_brain_ci","name":{"en":"S³AI Brain CI — \"Functional MRI\" Gate"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/brain-ci.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"c8cd980319751e2b53501dc645f1beb6980bdbf77adbb98a158a12be441d957e","specPath":"specs/crons/trinity-brain-ci.t27","summary":{"en":"Runs the weekly brain stress test, the long version of the health gate that every commit already gets.","ru":"Еженедельный стресс-тест мозга — длинная версия гейта здоровья, который получает каждый коммит."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/codegen.yml#L10","where":{"file":".github/workflows/codegen.yml","host":"github-actions","line":10,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/codegen","KIND":"cron","NAME":"Codegen Validation","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 0 * * *","SERVICE":".github/workflows/codegen.yml","SUMMARY_EN":"Validates the VIBEE code generator once a day, independently of whether anyone pushed.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/codegen","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_codegen","name":{"en":"Codegen Validation"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/codegen.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"d71a2dd240cabe9e1e5d667259d245209ec4532632c30328971e84ec4cbc4bd6","specPath":"specs/crons/trinity-codegen.t27","summary":{"en":"Validates the VIBEE code generator once a day, independently of whether anyone pushed.","ru":"Раз в день проверяет генератор кода VIBEE независимо от того, пушил ли кто-нибудь."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/discover-callers.yml#L16","where":{"file":".github/workflows/discover-callers.yml","host":"github-actions","line":16,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/discover-callers","KIND":"cron","NAME":"Discover RTL check callers","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"41 5 * * *","SERVICE":".github/workflows/discover-callers.yml","SUMMARY_EN":"Reads GitHub for repositories that run the RTL check, so the gallery counts its own users instead of being hand-written.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/discover-callers","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_discover_callers","name":{"en":"Discover RTL check callers"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/discover-callers.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"1aa5ec92373f3a0a9df24da027b852896fc303ec4eb50e4ee780d9abdea5aced","specPath":"specs/crons/trinity-discover-callers.t27","summary":{"en":"Reads GitHub for repositories that run the RTL check, so the gallery counts its own users instead of being hand-written.","ru":"Читает GitHub в поисках репозиториев, запускающих RTL-проверку, чтобы галерея считала своих пользователей сама."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/pages-health-check.yml#L17","where":{"file":".github/workflows/pages-health-check.yml","host":"github-actions","line":17,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/pages-health-check","KIND":"cron","NAME":"Pages Health Check","NOTE":"An earlier version judged a bare status code, failed ninety-six times a day on a site that was up, and dispatched a redeploy each time.","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"*/15 * * * *","SERVICE":".github/workflows/pages-health-check.yml","SUMMARY_EN":"Fetches the published site every fifteen minutes, follows the redirect, and redeploys only when the evidence says the deploy is what broke.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/pages-health-check","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_pages_health_check","name":{"en":"Pages Health Check"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/pages-health-check.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"f8199eaa1c9707bff5ba89d553a644725b072fce2f7c4c5de7dfe4b6e9620ac1","specPath":"specs/crons/trinity-pages-health-check.t27","summary":{"en":"Fetches the published site every fifteen minutes, follows the redirect, and redeploys only when the evidence says the deploy is what broke.","ru":"Каждые пятнадцать минут запрашивает опубликованный сайт, следует редиректу и передеплоит только когда свидетельства говорят, что сломан именно деплой."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/signal-health-self.yml#L17","where":{"file":".github/workflows/signal-health-self.yml","host":"github-actions","line":17,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/signal-health-self","KIND":"cron","NAME":"Signal health (self)","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"23 4 * * *","SERVICE":".github/workflows/signal-health-self.yml","SUMMARY_EN":"Applies the signal-health check to the repository that sells it and writes the numbers into the website data.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/signal-health-self","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_signal_health_self","name":{"en":"Signal health (self)"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/signal-health-self.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"b5bd1483d24af17707d8fcf03dbb6f011bc8462773423ebe9b8ee4e506a76a4e","specPath":"specs/crons/trinity-signal-health-self.t27","summary":{"en":"Applies the signal-health check to the repository that sells it and writes the numbers into the website data.","ru":"Применяет проверку signal-health к репозиторию, который её продаёт, и записывает числа в данные сайта."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"github-actions","repoPrivate":false,"sourceUrl":"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/gHashTag/trinity/blob/cdc1d68d697fca070d9ad0f2d36aa4074de140f4/.github/workflows/site-live-gate.yml#L33","where":{"file":".github/workflows/site-live-gate.yml","host":"github-actions","line":33,"service":null}},"control":"github-actions-dispatch","discarded":0,"fields":{"CONTROL":"github-actions-dispatch","ENABLED":true,"HOST":"github-actions","ID":"github-actions/trinity/site-live-gate","KIND":"cron","NAME":"Site live gate","ON_FAILURE":"log","REPO":"trinity","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"17 6 * * *","SERVICE":".github/workflows/site-live-gate.yml","SUMMARY_EN":"Compares the content-hashed entry bundle served at the apex against a build of main, so that 'deployed' means a reader can actually see it.","TZ":"UTC"},"health":"ok","id":"github-actions/trinity/site-live-gate","inSpecCorpus":true,"messages":[],"moduleName":"cron_trinity_site_live_gate","name":{"en":"Site live gate"},"runNow":{"kind":"link","url":"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/gHashTag/trinity/actions/workflows/site-live-gate.yml","via":"github-actions"},"runs":[],"runsResolved":[],"sha256":"76ed9aa7465a9ba704074563535c41d2df1fcfa2ac76059bfe2eb5e3e52c5933","specPath":"specs/crons/trinity-site-live-gate.t27","summary":{"en":"Compares the content-hashed entry bundle served at the apex against a build of main, so that 'deployed' means a reader can actually see it.","ru":"Сравнивает бандл с контент-хешем на апексе со сборкой main, чтобы «задеплоено» означало, что читатель это видит."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"inngest","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/inngest_app/functions/training/checkStuckTrainings.ts#L53","where":{"file":"src/inngest_app/functions/training/checkStuckTrainings.ts","host":"railway:999-multibots-telegraf","line":53,"service":"inngest"}},"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/check-stuck-trainings","KIND":"cron","NAME":"check-stuck-trainings","NOTE":"Records whose Replicate id is still a placeholder are skipped, because there is nothing on the provider to ask about.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"*/30 * * * *","SERVICE":"src/inngest_app/functions/training/checkStuckTrainings.ts","SUMMARY_EN":"Finds model trainings still marked pending or processing past the stuck threshold and reconciles them against Replicate.","TZ":"UTC"},"health":"ok","id":"inngest/999-multibots-telegraf/check-stuck-trainings","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_check_stuck_trainings","name":{"en":"check-stuck-trainings"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"fb82b6e4149b8be9916c35694faaeca85b555a6e3044cd3bc35f4d836ce60e49","specPath":"specs/crons/999-multibots-telegraf-check-stuck-trainings.t27","summary":{"en":"Finds model trainings still marked pending or processing past the stuck threshold and reconciles them against Replicate.","ru":"Находит обучения моделей, застрявшие в pending или processing дольше порога, и сверяет их с Replicate."},"typecheckOk":true,"witness":"spec+code"},{"code":null,"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/client-telemetry-daily","KIND":"cron","NAME":"client-telemetry-daily","NOTE":"This job is not in public/crons/manifest.json, which is produced by scripts/sync-crons.mjs from on-disk checkouts, so the card reads spec-only until that sync runs again. A failure does not open an issue; the Inngest registration carries a failure handler that messages the admin channel, which the function card states as ON_FAILURE admin-telegram.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 7 * * *","SERVICE":"src/inngest_app/functions/analytics/clientTelemetryDaily.ts","SUMMARY_EN":"Sends the owner a daily report of where clients went and where they stopped, then prunes the events it accounted for.","TZ":"UTC"},"health":"warn","id":"inngest/999-multibots-telegraf/client-telemetry-daily","inSpecCorpus":false,"messages":["no job inngest/999-multibots-telegraf/client-telemetry-daily in public/crons/manifest.json"],"moduleName":"cron_999_multibots_telegraf_client_telemetry_daily","name":{"en":"client-telemetry-daily"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"825f844bc2da99cd31be217c74767e1f7308b5e92474e4b93b6083f3f83116e6","specPath":"specs/crons/999-multibots-telegraf-client-telemetry-daily.t27","summary":{"en":"Sends the owner a daily report of where clients went and where they stopped, then prunes the events it accounted for.","ru":"Отправляет владельцу ежедневный отчёт о том, куда дошли клиенты и где остановились, затем удаляет учтённые события."},"typecheckOk":true,"witness":"spec-only"},{"code":null,"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/club-invoice-abandoned-watch","KIND":"cron","NAME":"club-invoice-abandoned-watch","NOTE":"This job is not in public/crons/manifest.json, which is produced by scripts/sync-crons.mjs from on-disk checkouts, so the card reads spec-only until that sync runs again. A failure does not open an issue; the Inngest registration carries a failure handler that messages the admin channel, which the function card states as ON_FAILURE admin-telegram.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"20 * * * *","SERVICE":"src/inngest_app/functions/analytics/clubInvoiceAbandonedWatch.ts","SUMMARY_EN":"Marks the club invoices that went an hour with no charge after them as abandoned, once per invoice.","TZ":"UTC"},"health":"warn","id":"inngest/999-multibots-telegraf/club-invoice-abandoned-watch","inSpecCorpus":false,"messages":["no job inngest/999-multibots-telegraf/club-invoice-abandoned-watch in public/crons/manifest.json"],"moduleName":"cron_999_multibots_telegraf_club_invoice_abandoned_watch","name":{"en":"club-invoice-abandoned-watch"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"3819eaec27c9a304ee7665edd2f398b2d809fe302ff3cdb5fe7d3a8396ef26f0","specPath":"specs/crons/999-multibots-telegraf-club-invoice-abandoned-watch.t27","summary":{"en":"Marks the club invoices that went an hour with no charge after them as abandoned, once per invoice.","ru":"Помечает как брошенные клубные счета, после которых час не было оплаты, по одному разу на счёт."},"typecheckOk":true,"witness":"spec-only"},{"code":null,"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/crm-proactive-sweep","KIND":"cron","NAME":"crm-proactive-sweep","NOTE":"This job is not in public/crons/manifest.json, which is produced by scripts/sync-crons.mjs from on-disk checkouts, so the card reads spec-only until that sync runs again. A failure does not open an issue; the Inngest registration carries a failure handler that messages the admin channel, which the function card states as ON_FAILURE admin-telegram. The same half hour is also stated by timer/999-multibots-telegraf/crmProactive-L375, the in-process interval this cron replaced on 2026-09-12; CRM_SWEEP_DRIVER=timer restores that one.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"*/30 * * * *","SERVICE":"src/inngest_app/functions/crm/crmProactiveSweep.ts","SUMMARY_EN":"Sweeps every seller a registered carrier serves and may push one outreach card per seller to that seller's own chat.","TZ":"UTC"},"health":"warn","id":"inngest/999-multibots-telegraf/crm-proactive-sweep","inSpecCorpus":false,"messages":["no job inngest/999-multibots-telegraf/crm-proactive-sweep in public/crons/manifest.json"],"moduleName":"cron_999_multibots_telegraf_crm_proactive_sweep","name":{"en":"crm-proactive-sweep"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"717a0e26e5d68f82f05208a2925b0f49a891f1b554425c26997457649ede277e","specPath":"specs/crons/999-multibots-telegraf-crm-proactive-sweep.t27","summary":{"en":"Sweeps every seller a registered carrier serves and may push one outreach card per seller to that seller's own chat.","ru":"Обходит каждого продавца, которого обслуживает зарегистрированный носитель, и может прислать в его собственный чат по одной карточке для связи."},"typecheckOk":true,"witness":"spec-only"},{"code":{"health":"ok","kind":"inngest","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/inngest_app/functions/analytics/dailySalesAdvisor.ts#L56","where":{"file":"src/inngest_app/functions/analytics/dailySalesAdvisor.ts","host":"railway:999-multibots-telegraf","line":56,"service":"inngest"}},"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/daily-sales-advisor","KIND":"cron","NAME":"daily-sales-advisor","NOTE":"One report per owner across all of their bots, assembled from the payments ledger rather than from a balance column.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 9 * * *","SERVICE":"src/inngest_app/functions/analytics/dailySalesAdvisor.ts","SUMMARY_EN":"Builds every bot owner a morning report of yesterday's revenue, the week's costs and which services their users actually bought.","TZ":"UTC"},"health":"ok","id":"inngest/999-multibots-telegraf/daily-sales-advisor","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_daily_sales_advisor","name":{"en":"daily-sales-advisor"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"0e2f8e5085ed1ea2b4b2f7732c9f9de00fcd19fda8d13e1f735865aa2cd32179","specPath":"specs/crons/999-multibots-telegraf-daily-sales-advisor.t27","summary":{"en":"Builds every bot owner a morning report of yesterday's revenue, the week's costs and which services their users actually bought.","ru":"Собирает каждому владельцу бота утренний отчёт: вчерашняя выручка, расходы недели и что реально покупали пользователи."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"inngest","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/inngest_app/functions/monitoring/criticalErrorMonitor.ts#L243","where":{"file":"src/inngest_app/functions/monitoring/criticalErrorMonitor.ts","host":"railway:999-multibots-telegraf","line":243,"service":"inngest"}},"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/health-check","KIND":"cron","NAME":"health-check","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"*/30 * * * *","SERVICE":"src/inngest_app/functions/monitoring/criticalErrorMonitor.ts","SUMMARY_EN":"Probes the main API and the Inngest service every half hour and reports what answered.","TZ":"UTC"},"health":"ok","id":"inngest/999-multibots-telegraf/health-check","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_health_check","name":{"en":"health-check"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"b1bf93d0a864129e5c53a03b96cfe5d52069b5b65a7472dcef61a58cd6b87e1f","specPath":"specs/crons/999-multibots-telegraf-health-check.t27","summary":{"en":"Probes the main API and the Inngest service every half hour and reports what answered.","ru":"Каждые полчаса опрашивает основной API и сервис Inngest и сообщает, кто ответил."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"inngest","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/inngest_app/functions/monitoring/logMonitor.ts#L360","where":{"file":"src/inngest_app/functions/monitoring/logMonitor.ts","host":"railway:999-multibots-telegraf","line":360,"service":"inngest"}},"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/log-monitor","KIND":"cron","NAME":"log-monitor","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 10 * * *","SERVICE":"src/inngest_app/functions/monitoring/logMonitor.ts","SUMMARY_EN":"Reads the application logs once a day, has a model summarise the errors and warnings, and sends the digest to Telegram.","TZ":"UTC"},"health":"ok","id":"inngest/999-multibots-telegraf/log-monitor","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_log_monitor","name":{"en":"log-monitor"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"3f1d2105328665203dc3850fea9f0245b7a6adbe5558e255756d168478812921","specPath":"specs/crons/999-multibots-telegraf-log-monitor.t27","summary":{"en":"Reads the application logs once a day, has a model summarise the errors and warnings, and sends the digest to Telegram.","ru":"Раз в день читает логи приложения, поручает модели свести ошибки и предупреждения и отправляет дайджест в Telegram."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"inngest","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/inngest_app/functions/webhookHealthGuard.ts#L218","where":{"file":"src/inngest_app/functions/webhookHealthGuard.ts","host":"railway:999-multibots-telegraf","line":218,"service":"inngest"}},"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/periodic-webhook-health-check","KIND":"cron","NAME":"periodic-webhook-health-check","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 * * * *","SERVICE":"src/inngest_app/functions/webhookHealthGuard.ts","SUMMARY_EN":"Tests both Telegram webhook URLs every hour and sends the admin a critical alarm when neither of them answers.","TZ":"UTC"},"health":"ok","id":"inngest/999-multibots-telegraf/periodic-webhook-health-check","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_periodic_webhook_health_check","name":{"en":"periodic-webhook-health-check"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"a3b21a33a8a8022b527e3f46362fb6df63fb6f2e5ee642a439d88862dd4722f3","specPath":"specs/crons/999-multibots-telegraf-periodic-webhook-health-check.t27","summary":{"en":"Tests both Telegram webhook URLs every hour and sends the admin a critical alarm when neither of them answers.","ru":"Каждый час проверяет оба URL вебхука Telegram и шлёт админу критическую тревогу, когда не отвечает ни один."},"typecheckOk":true,"witness":"spec+code"},{"code":null,"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/robokassa-unclaimed-watch","KIND":"cron","NAME":"robokassa-unclaimed-watch","NOTE":"This job is not in public/crons/manifest.json, which is produced by scripts/sync-crons.mjs from on-disk checkouts, so the card reads spec-only until that sync runs again. A failure does not open an issue; the Inngest registration carries a failure handler that messages the admin channel, which the function card states as ON_FAILURE admin-telegram.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"20 7 * * *","SERVICE":"src/inngest_app/functions/money/robokassaUnclaimedWatch.ts","SUMMARY_EN":"Asks Robokassa every morning about the pending invoices of the last thirty days and reports the ones paid but never credited.","TZ":"UTC"},"health":"warn","id":"inngest/999-multibots-telegraf/robokassa-unclaimed-watch","inSpecCorpus":false,"messages":["no job inngest/999-multibots-telegraf/robokassa-unclaimed-watch in public/crons/manifest.json"],"moduleName":"cron_999_multibots_telegraf_robokassa_unclaimed_watch","name":{"en":"robokassa-unclaimed-watch"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"2a3e8a7c1d78f26a29e623e98d79abb407dc1b89245d50b9dd1a52544e5115ad","specPath":"specs/crons/999-multibots-telegraf-robokassa-unclaimed-watch.t27","summary":{"en":"Asks Robokassa every morning about the pending invoices of the last thirty days and reports the ones paid but never credited.","ru":"Каждое утро спрашивает Robokassa о незакрытых счетах за последние тридцать дней и сообщает о тех, что оплачены, но не зачислены."},"typecheckOk":true,"witness":"spec-only"},{"code":{"health":"ok","kind":"inngest","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/inngest_app/functions/analytics/skillDetector.ts#L32","where":{"file":"src/inngest_app/functions/analytics/skillDetector.ts","host":"railway:999-multibots-telegraf","line":32,"service":"inngest"}},"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/skill-detector","KIND":"cron","NAME":"skill-detector","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"the \"skills\" it saves are bot prompt patterns, not Claude Code skills; no skill invocation found in source","SCHEDULE":"0 10 * * *","SERVICE":"src/inngest_app/functions/analytics/skillDetector.ts","SUMMARY_EN":"Mines successful generations for repeated model and prompt patterns once a day and saves the new ones as reusable skills.","TZ":"UTC"},"health":"ok","id":"inngest/999-multibots-telegraf/skill-detector","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_skill_detector","name":{"en":"skill-detector"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"d228015ce607198f53341b0b9dfc55a2cd0616e69487598d0cbabc34cc6892cf","specPath":"specs/crons/999-multibots-telegraf-skill-detector.t27","summary":{"en":"Mines successful generations for repeated model and prompt patterns once a day and saves the new ones as reusable skills.","ru":"Раз в день ищет в успешных генерациях повторяющиеся паттерны моделей и промптов и сохраняет новые как переиспользуемые навыки бота."},"typecheckOk":true,"witness":"spec+code"},{"code":null,"control":"inngest-dashboard","discarded":0,"fields":{"CONTROL":"inngest-dashboard","ENABLED":true,"HOST":"inngest","ID":"inngest/999-multibots-telegraf/ton-pending-watch","KIND":"cron","NAME":"ton-pending-watch","NOTE":"This job is not in public/crons/manifest.json, which is produced by scripts/sync-crons.mjs from on-disk checkouts, so the card reads spec-only until that sync runs again. A failure does not open an issue; the Inngest registration carries a failure handler that messages the admin channel, which the function card states as ON_FAILURE admin-telegram.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"0 * * * *","SERVICE":"src/inngest_app/functions/money/tonPendingWatch.ts","SUMMARY_EN":"Asks the chain every hour whether coins arrived against a pending TON invoice that was never credited.","TZ":"UTC"},"health":"warn","id":"inngest/999-multibots-telegraf/ton-pending-watch","inSpecCorpus":false,"messages":["no job inngest/999-multibots-telegraf/ton-pending-watch in public/crons/manifest.json"],"moduleName":"cron_999_multibots_telegraf_ton_pending_watch","name":{"en":"ton-pending-watch"},"runNow":{"kind":"link","url":"https://inngestinngest-production-6a21.up.railway.app","via":"inngest"},"runs":[],"runsResolved":[],"sha256":"479d9b8bad59f36970cc890712e0798a1a869d7143796c3d96a6e17329017197","specPath":"specs/crons/999-multibots-telegraf-ton-pending-watch.t27","summary":{"en":"Asks the chain every hour whether coins arrived against a pending TON invoice that was never credited.","ru":"Каждый час спрашивает у сети, пришли ли монеты по незакрытому TON-счёту, который так и не зачислили."},"typecheckOk":true,"witness":"spec-only"},{"code":{"health":"warn","kind":"railway-cron","repoPrivate":true,"sourceUrl":null,"where":{"file":null,"host":"railway:jobsearch-cron","line":null,"service":"jobsearch-cron"}},"control":"railway-dashboard","discarded":0,"fields":{"CONTROL":"railway-dashboard","ENABLED":true,"HOST":"railway-cron","ID":"railway-cron/999/jobsearch-cron","KIND":"cron","NAME":"jobsearch-cron","NOTE":"The schedule is configured in the Railway dashboard for project 999 and is not readable from the checkout; the probe below is what this catalog can verify.","ON_FAILURE":"unknown","REPO":"railway","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SCHEDULE":"","SCHEDULE_NOTE":"configured in the Railway dashboard (project 999); not readable from the checkout","SERVICE":"jobsearch-cron","SUMMARY_EN":"The scheduled job-search service of the Railway project, reachable at cron.t27.ai.","TZ":"UTC"},"health":"ok","id":"railway-cron/999/jobsearch-cron","inSpecCorpus":true,"messages":[],"moduleName":"cron_railway_jobsearch_cron","name":{"en":"jobsearch-cron"},"runNow":{"kind":"link","url":"https://railway.com/project/564d9ebd-7aa8-44fe-93ec-e0b03c87158d/service/3196472e-b885-43e0-b553-0644664e4496","via":"railway"},"runs":[],"runsResolved":[],"sha256":"8729edafdc8239d187c0f2b7d98238438d40ec439b39087e1654bb683366ec3a","specPath":"specs/crons/railway-jobsearch-cron.t27","summary":{"en":"The scheduled job-search service of the Railway project, reachable at cron.t27.ai.","ru":"Сервис поиска вакансий по расписанию в проекте Railway, доступен на cron.t27.ai."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/apps/vibee-editor/render/scripts/agent-autopilot.ts#L1118","where":{"file":"apps/vibee-editor/render/scripts/agent-autopilot.ts","host":"railway:vibee-render","line":1118,"service":"render"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/agent-autopilot-L1118","INTERVAL_MS":1800000,"KIND":"cron","NAME":"agent-autopilot-L1118","NOTE":"Daemon mode only, under --loop or AUTOPILOT_LOOP=1; AUTOPILOT_INTERVAL_MS overrides the thirty-minute period, with a one-minute floor.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"apps/vibee-editor/render/scripts/agent-autopilot.ts:1118","SUMMARY_EN":"Runs one autopilot cycle -- the generation pass and then the channel tick -- and skips the tick entirely when the previous cycle is still running.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/agent-autopilot-L1118","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_agent_autopilot_L1118","name":{"en":"agent-autopilot-L1118"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"39c25a3a6c40cff4e3ad9aa098e7492803a9cc78a935e74966c4f95939c85228","specPath":"specs/crons/999-multibots-telegraf-agent-autopilot-L1118.t27","summary":{"en":"Runs one autopilot cycle -- the generation pass and then the channel tick -- and skips the tick entirely when the previous cycle is still running.","ru":"Один цикл автопилота — проход генерации и затем тик канала; тик пропускается целиком, если предыдущий цикл ещё идёт."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/services/bot-owner-billing.ts#L474","where":{"file":"src/services/bot-owner-billing.ts","host":"railway:999-multibots-telegraf","line":474,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/bot-owner-billing-L474","INTERVAL_MS":86400000,"KIND":"cron","NAME":"bot-owner-billing-L474","NOTE":"The first run after a restart is skipped on purpose, and an owner whose payments cannot be read is left alone rather than accused.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/services/bot-owner-billing.ts:474","SUMMARY_EN":"Recomputes every bot owner's debt from the payments ledger, warns them at the soft, warning and critical thresholds, and disables a bot that stays critical for three days.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/bot-owner-billing-L474","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_bot_owner_billing_L474","name":{"en":"bot-owner-billing-L474"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"b2fb3c2d66630369c42ae4aba3f80538661c5591de99f1b088c569185be83197","specPath":"specs/crons/999-multibots-telegraf-bot-owner-billing-L474.t27","summary":{"en":"Recomputes every bot owner's debt from the payments ledger, warns them at the soft, warning and critical thresholds, and disables a bot that stays critical for three days.","ru":"Пересчитывает долг каждого владельца бота по журналу платежей, предупреждает на мягком, тревожном и критическом порогах и отключает бота, три дня остающегося критическим."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/services/crmProactive.ts#L375","where":{"file":"src/services/crmProactive.ts","host":"railway:999-multibots-telegraf","line":375,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/crmProactive-L375","INTERVAL_MS":1800000,"KIND":"cron","NAME":"crmProactive-L375","NOTE":"The period is CRM_PROACTIVE_MINUTES from src/index.ts, thirty minutes by default; the first sweep waits two minutes after start.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/services/crmProactive.ts:375","SUMMARY_EN":"Runs one proactive seller turn for the owner: walks the CRM queue and puts the next draft card in front of them without being asked.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/crmProactive-L375","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_crmProactive_L375","name":{"en":"crmProactive-L375"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"68cef02f70476660ff1d1df04010d0a3d6cbe249c35da94d97f4c2a641e57d5e","specPath":"specs/crons/999-multibots-telegraf-crmProactive-L375.t27","summary":{"en":"Runs one proactive seller turn for the owner: walks the CRM queue and puts the next draft card in front of them without being asked.","ru":"Один проактивный ход продавца для владельца: обходит очередь CRM и кладёт перед ним следующую карточку-черновик без просьбы."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/apps/vibee-editor/render/generate-jobs.ts#L164","where":{"file":"apps/vibee-editor/render/generate-jobs.ts","host":"railway:vibee-render","line":164,"service":"render"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/generate-jobs-L164","INTERVAL_MS":300000,"KIND":"cron","NAME":"generate-jobs-L164","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"apps/vibee-editor/render/generate-jobs.ts:164","SUMMARY_EN":"Sweeps finished generation jobs out of memory an hour after they end, once a caller who lost the connection has had time to collect the result.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/generate-jobs-L164","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_generate_jobs_L164","name":{"en":"generate-jobs-L164"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"c72b9a7b5fa9804c513eb5c2ebff0868bbf2a7226347826e64bbd34f6bef6475","specPath":"specs/crons/999-multibots-telegraf-generate-jobs-L164.t27","summary":{"en":"Sweeps finished generation jobs out of memory an hour after they end, once a caller who lost the connection has had time to collect the result.","ru":"Через час после завершения выметает из памяти законченные задания генерации, когда потерявший соединение клиент успел забрать результат."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/handlers/notificationHandler.ts#L318","where":{"file":"src/handlers/notificationHandler.ts","host":"railway:999-multibots-telegraf","line":318,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/notificationHandler-L318","INTERVAL_MS":60000,"KIND":"cron","NAME":"notificationHandler-L318","NOTE":"Wrapped in an exclusive tick, so two bot processes cannot deliver the same notification twice.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/handlers/notificationHandler.ts:318","SUMMARY_EN":"Drains the notification queue and delivers the Telegram messages waiting in it.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/notificationHandler-L318","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_notificationHandler_L318","name":{"en":"notificationHandler-L318"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"9114a4bdfb275175f60c5a111bdc07bbfcbb62c55a0871176b8f93e3436bdd9f","specPath":"specs/crons/999-multibots-telegraf-notificationHandler-L318.t27","summary":{"en":"Drains the notification queue and delivers the Telegram messages waiting in it.","ru":"Разгружает очередь уведомлений и доставляет ждущие в ней сообщения Telegram."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/handlers/notificationHandler.ts#L324","where":{"file":"src/handlers/notificationHandler.ts","host":"railway:999-multibots-telegraf","line":324,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/notificationHandler-L324","INTERVAL_MS":3600000,"KIND":"cron","NAME":"notificationHandler-L324","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/handlers/notificationHandler.ts:324","SUMMARY_EN":"Deletes notification messages old enough that nobody is going to read them.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/notificationHandler-L324","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_notificationHandler_L324","name":{"en":"notificationHandler-L324"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"44d2e3c8843519a512128399557c8d7af29ca2491f769f91c845dc44e0b63f9a","specPath":"specs/crons/999-multibots-telegraf-notificationHandler-L324.t27","summary":{"en":"Deletes notification messages old enough that nobody is going to read them.","ru":"Удаляет уведомления, настолько старые, что их уже никто не прочитает."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/utils/production-monitor.ts#L80","where":{"file":"src/utils/production-monitor.ts","host":"railway:999-multibots-telegraf","line":80,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":false,"HOST":"timer","ID":"timer/999-multibots-telegraf/production-monitor-L80","INTERVAL_MS":300000,"KIND":"cron","NAME":"production-monitor-L80","NOTE":"Started only by running this module from the command line with the `monitor` argument; the bot's own entry point never starts it.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/utils/production-monitor.ts:80","SUMMARY_EN":"Re-runs the container, nginx, port, domain, webhook and system-resource checks, and applies the fixes that are enabled.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/production-monitor-L80","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_production_monitor_L80","name":{"en":"production-monitor-L80"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"880d0b6c01b2b1e4cc9bc92c11ef300b8335bdf8ca842308bca7d3fd7e979254","specPath":"specs/crons/999-multibots-telegraf-production-monitor-L80.t27","summary":{"en":"Re-runs the container, nginx, port, domain, webhook and system-resource checks, and applies the fixes that are enabled.","ru":"Повторяет проверки контейнера, nginx, порта, домена, вебхука и ресурсов системы и применяет включённые исправления."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/services/provider-health-monitor.ts#L344","where":{"file":"src/services/provider-health-monitor.ts","host":"railway:999-multibots-telegraf","line":344,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/provider-health-monitor-L344","INTERVAL_MS":300000,"KIND":"cron","NAME":"provider-health-monitor-L344","NOTE":"Providers listed in HEALTH_SKIP_PROVIDERS are deliberately not watched and do not raise the alarm.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/services/provider-health-monitor.ts:344","SUMMARY_EN":"Checks every AI provider that is not parked and records whether it is currently answering.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/provider-health-monitor-L344","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_provider_health_monitor_L344","name":{"en":"provider-health-monitor-L344"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"0044630e40dc2673a2d1210e848f1a3cd41cc2b21b541bec98e305f0192a2de7","specPath":"specs/crons/999-multibots-telegraf-provider-health-monitor-L344.t27","summary":{"en":"Checks every AI provider that is not parked and records whether it is currently answering.","ru":"Проверяет каждого не отключённого AI-провайдера и записывает, отвечает ли он сейчас."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/apps/vibee-editor/render/render-server.ts#L10845","where":{"file":"apps/vibee-editor/render/render-server.ts","host":"railway:vibee-render","line":10845,"service":"render"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/render-server-L10845","INTERVAL_MS":30000,"KIND":"cron","NAME":"render-server-L10845","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"apps/vibee-editor/render/render-server.ts:10845","SUMMARY_EN":"Pings every websocket peer and drops the ones that did not answer the previous round.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/render-server-L10845","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_render_server_L10845","name":{"en":"render-server-L10845"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"bfcd81ea5f3b3040dccce76d91dd699347e49c2df843529218ee138560e2d924","specPath":"specs/crons/999-multibots-telegraf-render-server-L10845.t27","summary":{"en":"Pings every websocket peer and drops the ones that did not answer the previous round.","ru":"Пингует каждого websocket-пира и отключает тех, кто не ответил в прошлом раунде."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/apps/vibee-editor/render/render-server.ts#L2301","where":{"file":"apps/vibee-editor/render/render-server.ts","host":"railway:vibee-render","line":2301,"service":"render"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/render-server-L2301","INTERVAL_MS":60000,"KIND":"cron","NAME":"render-server-L2301","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"apps/vibee-editor/render/render-server.ts:2301","SUMMARY_EN":"Removes render jobs older than an hour from the in-memory job map.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/render-server-L2301","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_render_server_L2301","name":{"en":"render-server-L2301"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"37e3dca7f4836af5ecfde5eaaa2aa993ac19087ac902adbb4015c04527a2af62","specPath":"specs/crons/999-multibots-telegraf-render-server-L2301.t27","summary":{"en":"Removes render jobs older than an hour from the in-memory job map.","ru":"Удаляет из карты в памяти задания рендера старше часа."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/apps/vibee-editor/render/render-server.ts#L2325","where":{"file":"apps/vibee-editor/render/render-server.ts","host":"railway:vibee-render","line":2325,"service":"render"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/render-server-L2325","INTERVAL_MS":600000,"KIND":"cron","NAME":"render-server-L2325","NOTE":"Checks often and writes rarely: the cursor lives in the database, because this Railway project has no volume and a deploy wipes local state.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"apps/vibee-editor/render/render-server.ts:2325","SUMMARY_EN":"Reads the hive journal and delivers the queen's report to the keepers, passing alarms straight through and batching ordinary events.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/render-server-L2325","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_render_server_L2325","name":{"en":"render-server-L2325"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"11b24d4332b7e356f77b233a20d578c3ec31da71ff34be37d16d29d7d4471d5b","specPath":"specs/crons/999-multibots-telegraf-render-server-L2325.t27","summary":{"en":"Reads the hive journal and delivers the queen's report to the keepers, passing alarms straight through and batching ordinary events.","ru":"Читает журнал улья и доставляет отчёт королевы хранителям: тревоги — сразу, обычные события — пакетом."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/apps/vibee-editor/render/render-server.ts#L919","where":{"file":"apps/vibee-editor/render/render-server.ts","host":"railway:vibee-render","line":919,"service":"render"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/render-server-L919","INTERVAL_MS":5000,"KIND":"cron","NAME":"render-server-L919","NOTE":"Only starts when a session signing key is configured; a deployed render server refuses to boot without one.","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"apps/vibee-editor/render/render-server.ts:919","SUMMARY_EN":"Re-reads the session revocation list from Postgres so a revoked browser session stops being accepted.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/render-server-L919","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_render_server_L919","name":{"en":"render-server-L919"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"f86d77af65dfb35cc4adf4202c8f06577e82d7856edbcac656ef735eeba19a52","specPath":"specs/crons/999-multibots-telegraf-render-server-L919.t27","summary":{"en":"Re-reads the session revocation list from Postgres so a revoked browser session stops being accepted.","ru":"Перечитывает из Postgres список отозванных сессий, чтобы отозванная сессия браузера перестала приниматься."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/modules/videoGenerator/taskCache.ts#L27","where":{"file":"src/modules/videoGenerator/taskCache.ts","host":"railway:999-multibots-telegraf","line":27,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/taskCache-L27","INTERVAL_MS":300000,"KIND":"cron","NAME":"taskCache-L27","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/modules/videoGenerator/taskCache.ts:27","SUMMARY_EN":"Drops video-generation cache entries past their fifteen-minute lifetime so a finished task cannot block the next request.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/taskCache-L27","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_taskCache_L27","name":{"en":"taskCache-L27"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"ca7f9a9edce47fe23ef59515d87ba7f391b878a9c5115b43e9c32b4a70fe90db","specPath":"specs/crons/999-multibots-telegraf-taskCache-L27.t27","summary":{"en":"Drops video-generation cache entries past their fifteen-minute lifetime so a finished task cannot block the next request.","ru":"Сбрасывает записи кэша видеогенерации старше пятнадцати минут, чтобы завершённая задача не блокировала следующий запрос."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","kind":"timer","repoPrivate":true,"sourceUrl":"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/gHashTag/999-multibots-telegraf/blob/3f01d449e5a04d37f6ff4d76d5572f499c201789/src/services/video-task-store.ts#L156","where":{"file":"src/services/video-task-store.ts","host":"railway:999-multibots-telegraf","line":156,"service":"bot"}},"control":"code-only","discarded":0,"fields":{"CONTROL":"code-only","ENABLED":true,"HOST":"timer","ID":"timer/999-multibots-telegraf/video-task-store-L156","INTERVAL_MS":600000,"KIND":"cron","NAME":"video-task-store-L156","ON_FAILURE":"log","REPO":"999-multibots-telegraf","RUNS":[],"RUNS_NOTE":"no skill invocation found in source","SERVICE":"src/services/video-task-store.ts:156","SUMMARY_EN":"Forgets video tasks older than an hour and rewrites the store to disk when anything was removed.","TZ":"UTC"},"health":"ok","id":"timer/999-multibots-telegraf/video-task-store-L156","inSpecCorpus":true,"messages":[],"moduleName":"cron_999_multibots_telegraf_video_task_store_L156","name":{"en":"video-task-store-L156"},"runNow":{"kind":"disabled","reason":"timer"},"runs":[],"runsResolved":[],"sha256":"dc4e3d6c76cac57a36074da8a9d6aac8df1f1c55bb68a593c2cadf94c94351b1","specPath":"specs/crons/999-multibots-telegraf-video-task-store-L156.t27","summary":{"en":"Forgets video tasks older than an hour and rewrites the store to disk when anything was removed.","ru":"Забывает видеозадачи старше часа и переписывает хранилище на диск, если что-то было удалено."},"typecheckOk":true,"witness":"spec+code"}],"generatedAt":"2026-09-22T17:46:29.695Z","i18n":[{"bundle":"apps/website/i18n/agents.ru.json","coverage":{"n":38,"total":38},"enabled":true,"fields":["SUMMARY","NAME"],"locale":"ru","missing":[],"scope":["specs/skills","specs/crons","specs/agents","specs/functions","specs/tools"],"sha256":"c8871fb4ccdef8fc3cc2937af5db0e307ab0b62f6a03ece9f4512851ffd64f04","spec":"specs/i18n/agents-ru.t27"}],"ladder":{"agents":27,"crons":38,"functions":33,"skills":27,"specs":1419,"tools":92},"version":1} diff --git a/apps/website/public/docs/system-docs.json b/apps/website/public/docs/system-docs.json index f7fb5e13e2..322896f978 100644 --- a/apps/website/public/docs/system-docs.json +++ b/apps/website/public/docs/system-docs.json @@ -1 +1 @@ -{"chapters":[{"body":{"en":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"strong","v":"t27"},{"t":"text","v":" is a specification language and a toolchain. A "},{"t":"code","v":".t27"},{"t":"text","v":" file declares behaviour, constants, tests and invariants in one place; the compiler ("},{"t":"code","v":"t27c"},{"t":"text","v":", driven by the "},{"t":"code","v":"tri"},{"t":"text","v":" command) validates the file, generates code for the target backends (Zig, C, Verilog) and runs the tests written inside the spec. The repository "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" holds the language, the compiler, the spec corpus and the canon documents that govern how agents and people work in it ("},{"t":"code","v":"SOUL.md"},{"t":"text","v":", "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":", "},{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":")."}],"type":"p"},{"runs":[{"t":"strong","v":"Trinity"},{"t":"text","v":" is the programme around t27: the GoldenFloat family of numeric formats built on the identity phi^2 + 1/phi^2 = 3, hardware validation of those formats on one FPGA board, and the public site "},{"t":"code","v":"t27.ai"},{"t":"text","v":" (repository "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":", "},{"t":"code","v":"apps/website"},{"t":"text","v":") that renders the spec corpus, the skills, the scheduled jobs, the agents and the tools through the real compiler compiled to WebAssembly. The site does not paraphrase the specs; it compiles them in the browser build and shows the verdicts."}],"type":"p"},{"runs":[{"t":"text","v":"The rule that ties the two together is spec-first: project logic originates in "},{"t":"code","v":".t27"},{"t":"text","v":", and host languages -- Rust for the bootstrap compiler, TypeScript for the site, Zig, C and Verilog as generated output -- are subordinate implementations. "},{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":", Article SSOT-MATH, states it for mathematics and numerics; "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":" section 3 restates it for every change (\"Specs are source of truth\")."}],"type":"p"}],"heading":"What t27 and Trinity are","id":"what-t27-and-trinity-are"},{"blocks":[{"runs":[{"t":"text","v":"Every claim in this documentation carries one of five status tags, and the table the site renders next to this chapter repeats them with their source file:"}],"type":"p"},{"items":[[{"t":"code","v":"[measured]"},{"t":"text","v":" -- a number produced by running something whose output is in a repository or a public CI log, with the command and the commit recorded."}],[{"t":"code","v":"[declared]"},{"t":"text","v":" -- stated in a spec or a canon document; not (yet) exercised by a run."}],[{"t":"code","v":"[specified]"},{"t":"text","v":" -- exists as a "},{"t":"code","v":".t27"},{"t":"text","v":" spec that typechecks; no implementation is claimed."}],[{"t":"code","v":"[external]"},{"t":"text","v":" -- a value taken from a source outside the two repositories; cited, not reproduced here."}],[{"t":"code","v":"[not claimed]"},{"t":"text","v":" -- explicitly outside what the project asserts today."}]],"type":"ul"},{"runs":[{"t":"text","v":"The statements this chapter is prepared to make, with their tags:"}],"type":"p"},{"items":[[{"t":"text","v":"The GoldenFloat catalog holds 83 formats "},{"t":"code","v":"[declared]"},{"t":"text","v":" -- "},{"t":"code","v":"FAMILY_TOTALS.catalog"},{"t":"text","v":" in "},{"t":"code","v":"trinity:apps/website/src/data/siliconHistory.ts"},{"t":"text","v":", transcribed from the hardware conformance report of "},{"t":"code","v":"gHashTag/trinity-fpga"},{"t":"text","v":" (v0.2), which is the published source of every hardware figure on the site."}],[{"t":"text","v":"Hardware numbers exist for a subset of the catalog "},{"t":"code","v":"[measured]"},{"t":"text","v":": at v0.2 the same file records 27 formats at Tier E (public chain: CI run id, bitstream SHA-256, JTAG flash, UART log), 13 with decode in hardware, 7 with ADD and 7 with MUL in hardware, and 62 with a bit-exact software reference. The union of the hardware axes is a smaller number than 83; the exact union is stated in the trinity-fpga report and is not restated here."}],[{"t":"text","v":"Every hardware number was measured on one board "},{"t":"code","v":"[measured]"},{"t":"text","v":": ALINX AX7203, Xilinx Artix-7 "},{"t":"code","v":"xc7a200tfbg484-2"},{"t":"text","v":", open toolchain (yosys, nextpnr-xilinx, Project X-Ray), "},{"t":"code","v":"DEVICE"},{"t":"text","v":" and "},{"t":"code","v":"TOOLCHAIN"},{"t":"text","v":" in the same file."}],[{"t":"text","v":"Skills, crons, agents and tools on the site are generated from "},{"t":"code","v":".t27"},{"t":"text","v":" specs through the vendored compiler wasm "},{"t":"code","v":"[measured]"},{"t":"text","v":": the counts are in the ladder header of every Explorer and in the \"Evidence and witnesses\" chapter; "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":" for each spec is recorded in the JSON the site serves."}]],"type":"ul"}],"heading":"Claims and their status","id":"claims-and-their-status"},{"blocks":[{"runs":[{"t":"text","v":"What the project does "},{"t":"strong","v":"not"},{"t":"text","v":" claim, in its own words:"}],"type":"p"},{"items":[[{"t":"strong","v":"No silicon."},{"t":"text","v":" "},{"t":"code","v":"[not claimed]"},{"t":"text","v":" A SKY130 design was prepared through Tiny Tapeout; the TTSKY26a/TTSKY26b submissions were withdrawn before fabrication and refunded, so no die exists and no measurement on silicon is claimed ("},{"t":"code","v":"trinity:apps/website/src/content/tnf.ts"},{"t":"text","v":", the \"Is this an ASIC result?\" answer). ASIC mapping and multi-corner characterisation are not claimed either. The hardware boundary is the FPGA named above."}],[{"t":"strong","v":"No ranking words."},{"t":"text","v":" The canon forbids \"first\", \"only\", \"best\" and their translations in first-party prose; the site's QA ("},{"t":"code","v":"check:docs"},{"t":"text","v":", "},{"t":"code","v":"check:queen-honesty"},{"t":"text","v":") fails a build that contains them. Comparisons are stated as numbers with a source or not at all."}],[{"t":"strong","v":"The Verilog the t27 compiler emits from a format spec is a module shell"},{"t":"text","v":" -- across the corpus it yields 0 LUTs and 0 flip-flops ("},{"t":"code","v":"siliconHistory.ts"},{"t":"text","v":", provenance note). The silicon results belong to hand-written RTL verified against an independent oracle. The spec and the RTL describe the same format; they are not the same artifact."}],[{"t":"strong","v":"`typecheck.ok` from the wasm is necessary, not sufficient."},{"t":"text","v":" It stays "},{"t":"code","v":"true"},{"t":"text","v":" for a wrong annotation such as "},{"t":"code","v":"str = 5"},{"t":"text","v":"; the site's generators check the field schema of every card on top of it ("},{"t":"code","v":"specs/skills/README.md"},{"t":"text","v":")."}],[{"t":"strong","v":"Two repositories, two lists."},{"t":"text","v":" Tools, agents and jobs of "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" and of "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" are recorded under their own "},{"t":"code","v":"REPO"},{"t":"text","v":"; nothing is merged into one list."}]],"type":"ul"}],"heading":"Boundaries","id":"boundaries"},{"blocks":[{"runs":[{"t":"text","v":"The seven chapters are declared in "},{"t":"code","v":"specs/docs/system.t27"},{"t":"text","v":" and one spec per chapter under "},{"t":"code","v":"specs/docs/chapters/"},{"t":"text","v":". Each chapter spec names its "},{"t":"code","v":"SOURCES"},{"t":"text","v":" (the files it quotes), its "},{"t":"code","v":"SECTIONS"},{"t":"text","v":" (the headings of this Markdown, checked at build time), the figure the site draws from data ("},{"t":"code","v":"DIAGRAM"},{"t":"text","v":") and the table it generates from the catalogs ("},{"t":"code","v":"TABLE"},{"t":"text","v":"). The English prose is canonical and lives in "},{"t":"code","v":"docs/system/.md"},{"t":"text","v":" in "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":"; the Russian text travels through the translation contract "},{"t":"code","v":"specs/i18n/docs-ru.t27"},{"t":"text","v":" and the bundle it names in "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":". When the two disagree, English wins."}],"type":"p"},{"runs":[{"t":"text","v":"Every figure on the site carries a caption and a data-source line: the JSON it was drawn from and the commit that JSON was generated at. Every table is generated; none is typed by hand. A number without a source line is a defect -- report it as one."}],"type":"p"}],"heading":"How to read this documentation","id":"how-to-read-this-documentation"}],"title":"The project"},"ru":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"strong","v":"t27"},{"t":"text","v":" -- язык спецификаций и инструментальная цепочка. Файл "},{"t":"code","v":".t27"},{"t":"text","v":" в одном месте объявляет поведение, константы, тесты и инварианты; компилятор ("},{"t":"code","v":"t27c"},{"t":"text","v":", вызываемый командой "},{"t":"code","v":"tri"},{"t":"text","v":") проверяет файл, порождает код для целевых бэкендов (Zig, C, Verilog) и прогоняет тесты, записанные внутри спецификации. Репозиторий "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" хранит язык, компилятор, корпус спецификаций и канонические документы, определяющие, как в нём работают агенты и люди ("},{"t":"code","v":"SOUL.md"},{"t":"text","v":", "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":", "},{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":")."}],"type":"p"},{"runs":[{"t":"strong","v":"Trinity"},{"t":"text","v":" -- программа вокруг t27: семейство численных форматов GoldenFloat, построенное на тождестве phi^2 + 1/phi^2 = 3, аппаратная проверка этих форматов на одной плате FPGA и публичный сайт "},{"t":"code","v":"t27.ai"},{"t":"text","v":" (репозиторий "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":", "},{"t":"code","v":"apps/website"},{"t":"text","v":"), который отображает корпус спецификаций, навыки, расписания, агентов и инструменты через настоящий компилятор, собранный в WebAssembly. Сайт не пересказывает спецификации: он компилирует их при сборке и показывает вердикты."}],"type":"p"},{"runs":[{"t":"text","v":"Правило, связывающее обе части, -- spec-first: логика проекта рождается в "},{"t":"code","v":".t27"},{"t":"text","v":", а языки-хосты -- Rust для бутстрап-компилятора, TypeScript для сайта, Zig, C и Verilog как порождаемый код -- являются подчинёнными реализациями. "},{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":", статья SSOT-MATH, формулирует это для математики и численных вопросов; "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":", раздел 3, повторяет для любого изменения (\"Specs are source of truth\")."}],"type":"p"}],"heading":"Что такое t27 и Trinity","id":"что-такое-t27-и-trinity"},{"blocks":[{"runs":[{"t":"text","v":"Каждое утверждение в этой документации несёт один из пяти статусных тегов, и таблица, которую сайт выводит рядом с этой главой, повторяет их вместе с файлом-источником:"}],"type":"p"},{"items":[[{"t":"code","v":"[measured]"},{"t":"text","v":" -- число, полученное запуском чего-либо, чей вывод лежит в репозитории или в публичном журнале CI, с записанной командой и коммитом."}],[{"t":"code","v":"[declared]"},{"t":"text","v":" -- заявлено в спецификации или каноническом документе; запуском (пока) не проверено."}],[{"t":"code","v":"[specified]"},{"t":"text","v":" -- существует как спецификация "},{"t":"code","v":".t27"},{"t":"text","v":", проходящая проверку типов; реализация не заявляется."}],[{"t":"code","v":"[external]"},{"t":"text","v":" -- значение взято из источника вне двух репозиториев; цитируется, здесь не воспроизводится."}],[{"t":"code","v":"[not claimed]"},{"t":"text","v":" -- явно вне того, что проект утверждает сегодня."}]],"type":"ul"},{"runs":[{"t":"text","v":"Утверждения, которые эта глава готова сделать, с тегами:"}],"type":"p"},{"items":[[{"t":"text","v":"Каталог GoldenFloat содержит 83 формата "},{"t":"code","v":"[declared]"},{"t":"text","v":" -- "},{"t":"code","v":"FAMILY_TOTALS.catalog"},{"t":"text","v":" в "},{"t":"code","v":"trinity:apps/website/src/data/siliconHistory.ts"},{"t":"text","v":", перенесённый из отчёта об аппаратной конформности "},{"t":"code","v":"gHashTag/trinity-fpga"},{"t":"text","v":" (v0.2), который является опубликованным источником каждой аппаратной цифры на сайте."}],[{"t":"text","v":"Аппаратные числа существуют для подмножества каталога "},{"t":"code","v":"[measured]"},{"t":"text","v":": на v0.2 тот же файл фиксирует 27 форматов на уровне Tier E (публичная цепочка: id запуска CI, SHA-256 битстрима, прошивка по JTAG, журнал UART), 13 с декодированием в железе, 7 с ADD и 7 с MUL в железе и 62 с побитово точной программной моделью. Объединение аппаратных осей меньше 83; точное значение объединения приведено в отчёте trinity-fpga и здесь не повторяется."}],[{"t":"text","v":"Каждое аппаратное число измерено на одной плате "},{"t":"code","v":"[measured]"},{"t":"text","v":": ALINX AX7203, Xilinx Artix-7 "},{"t":"code","v":"xc7a200tfbg484-2"},{"t":"text","v":", открытая цепочка (yosys, nextpnr-xilinx, Project X-Ray), "},{"t":"code","v":"DEVICE"},{"t":"text","v":" и "},{"t":"code","v":"TOOLCHAIN"},{"t":"text","v":" в том же файле."}],[{"t":"text","v":"Навыки, расписания, агенты и инструменты на сайте порождаются из спецификаций "},{"t":"code","v":".t27"},{"t":"text","v":" через вендорный wasm компилятора "},{"t":"code","v":"[measured]"},{"t":"text","v":": счётчики находятся в заголовке-лестнице каждого обозревателя и в главе \"Свидетели и доказательства\"; "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":" каждой спецификации записан в JSON, который сайт отдаёт."}]],"type":"ul"}],"heading":"Утверждения и их статус","id":"утверждения-и-их-статус"},{"blocks":[{"runs":[{"t":"text","v":"Чего проект "},{"t":"strong","v":"не"},{"t":"text","v":" утверждает, его собственными словами:"}],"type":"p"},{"items":[[{"t":"strong","v":"Кремния нет."},{"t":"text","v":" "},{"t":"code","v":"[not claimed]"},{"t":"text","v":" Дизайн под SKY130 был подготовлен через Tiny Tapeout; заявки TTSKY26a/TTSKY26b были отозваны до изготовления с возвратом средств, поэтому кристалла не существует и никакое измерение на кремнии не заявляется ("},{"t":"code","v":"trinity:apps/website/src/content/tnf.ts"},{"t":"text","v":", ответ \"Is this an ASIC result?\"). Отображение в ASIC и многоугловая характеризация также не заявляются. Аппаратная граница -- названная выше FPGA."}],[{"t":"strong","v":"Слов-рейтингов нет."},{"t":"text","v":" Канон запрещает слова-рейтинги -- превосходные и исключающие эпитеты, перечисленные в правилах каталога "},{"t":"code","v":"specs/docs/README.md"},{"t":"text","v":", -- в собственной прозе проекта; контроль качества сайта ("},{"t":"code","v":"check:docs"},{"t":"text","v":", "},{"t":"code","v":"check:queen-honesty"},{"t":"text","v":") роняет сборку, в которой они встречаются. Сравнения даются как числа с источником либо не даются вовсе."}],[{"t":"strong","v":"Verilog, который компилятор t27 порождает из спецификации формата, -- это оболочка модуля"},{"t":"text","v":": по корпусу он даёт 0 LUT и 0 триггеров ("},{"t":"code","v":"siliconHistory.ts"},{"t":"text","v":", примечание о происхождении). Результаты на FPGA принадлежат рукописному RTL, проверенному против независимого оракула. Спецификация и RTL описывают один и тот же формат; это не один и тот же артефакт."}],[{"t":"strong","v":"`typecheck.ok` от wasm необходим, но не достаточен."},{"t":"text","v":" Он остаётся "},{"t":"code","v":"true"},{"t":"text","v":" при неверной аннотации вроде "},{"t":"code","v":"str = 5"},{"t":"text","v":"; генераторы сайта поверх него проверяют схему полей каждой карточки ("},{"t":"code","v":"specs/skills/README.md"},{"t":"text","v":")."}],[{"t":"strong","v":"Два репозитория, два списка."},{"t":"text","v":" Инструменты, агенты и задания "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" и "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" записаны под своим "},{"t":"code","v":"REPO"},{"t":"text","v":"; ничего не слито в один список."}]],"type":"ul"}],"heading":"Границы","id":"границы"},{"blocks":[{"runs":[{"t":"text","v":"Семь глав объявлены в "},{"t":"code","v":"specs/docs/system.t27"},{"t":"text","v":" и по одной спецификации на главу в "},{"t":"code","v":"specs/docs/chapters/"},{"t":"text","v":". Каждая спецификация главы называет свои "},{"t":"code","v":"SOURCES"},{"t":"text","v":" (цитируемые файлы), "},{"t":"code","v":"SECTIONS"},{"t":"text","v":" (заголовки этого текста, проверяемые при сборке), фигуру, которую сайт рисует по данным ("},{"t":"code","v":"DIAGRAM"},{"t":"text","v":"), и таблицу, порождаемую из каталогов ("},{"t":"code","v":"TABLE"},{"t":"text","v":"). Английская проза канонична и лежит в "},{"t":"code","v":"docs/system/.md"},{"t":"text","v":" в "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":"; русский текст идёт через контракт перевода "},{"t":"code","v":"specs/i18n/docs-ru.t27"},{"t":"text","v":" и бандл, который он называет в "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":". При расхождении побеждает английский."}],"type":"p"},{"runs":[{"t":"text","v":"Каждая фигура на сайте несёт подпись и строку источника данных: JSON, из которого она нарисована, и коммит, на котором этот JSON порождён. Каждая таблица порождена; ни одна не набрана вручную. Число без строки источника -- дефект; сообщайте о нём как о дефекте."}],"type":"p"}],"heading":"Как читать эту документацию","id":"как-читать-эту-документацию"}]}},"bodyPath":"docs/system/project.md","bodySha256":"0674727c51ecb860eb65e6fe6a21d1ef0e9b5af97bb592d4ea12eefddddce070","diagram":"ladder","discarded":0,"enabled":true,"id":"docs/project","links":{"body":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/system/project.md","spec":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/chapters/project.t27"},"moduleName":"docs_chapter_project","order":1,"sections":[{"heading":{"en":"What t27 and Trinity are","ru":"Что такое t27 и Trinity"},"id":"what-t27-and-trinity-are"},{"heading":{"en":"Claims and their status","ru":"Утверждения и их статус"},"id":"claims-and-their-status"},{"heading":{"en":"Boundaries","ru":"Границы"},"id":"boundaries"},{"heading":{"en":"How to read this documentation","ru":"Как читать эту документацию"},"id":"how-to-read-this-documentation"}],"sha256":"4023211070b18117f67404d4c7941ea02e079d1c07aa41515aee69704bab07a3","sources":[{"kind":"file","path":"SOUL.md","rel":"SOUL.md","repo":"t27","sha256":"cb9b44e13d6d0b314f9626f9cca438e5f17ed6847b194220f9e80b32209e052e","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md","where":"vendored"},{"kind":"file","path":"AGENTS.md","rel":"AGENTS.md","repo":"t27","sha256":"51d2674ae7331a2df71756fbda3c723b467073a4b59190fed0d9b34023bfea2b","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","where":"vendored"},{"kind":"file","path":"specs/docs/system.t27","rel":"specs/docs/system.t27","repo":"t27","sha256":"ab7ee1773622aa46442aec7aeca5cdd1a1a3c36f6321451a5e426df80a75945b","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/system.t27","where":"vendored"},{"kind":"file","path":"trinity:apps/website/src/data/siliconHistory.ts","rel":"apps/website/src/data/siliconHistory.ts","repo":"trinity","sha256":"b3982843a21f9db7da9ba4bc21c403f078e413484319983cdcd5e5877194b2c6","url":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/apps/website/src/data/siliconHistory.ts","where":"checkout"},{"kind":"file","path":"trinity:apps/website/src/content/tnf.ts","rel":"apps/website/src/content/tnf.ts","repo":"trinity","sha256":"82241fc4116482f5784785bf7456b1b620d55e62b721e4b83ad8404e3b068ac3","url":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/apps/website/src/content/tnf.ts","where":"checkout"}],"specPath":"specs/docs/chapters/project.t27","stem":"project","table":{"columns":["tag","claim","sources"],"kind":"claims","note":"","rows":[{"claim":"The GoldenFloat catalog holds 83 formats -- `FAMILY_TOTALS.catalog` in `trinity:apps/website/src/data/siliconHistory.ts`, transcribed from the hardware conformance report of `gHashTag/trinity-fpga` (v0.2), which is th...","sources":["trinity:apps/website/src/data/siliconHistory.ts","gHashTag/trinity-fpga"],"tag":"declared"},{"claim":"Hardware numbers exist for a subset of the catalog: at v0.2 the same file records 27 formats at Tier E (public chain: CI run id, bitstream SHA-256, JTAG flash, UART log), 13 with decode in hardware, 7 with ADD and 7 w...","sources":[],"tag":"measured"},{"claim":"Every hardware number was measured on one board: ALINX AX7203, Xilinx Artix-7 `xc7a200tfbg484-2`, open toolchain (yosys, nextpnr-xilinx, Project X-Ray), `DEVICE` and `TOOLCHAIN` in the same file.","sources":[],"tag":"measured"},{"claim":"Skills, crons, agents and tools on the site are generated from `.t27` specs through the vendored compiler wasm: the counts are in the ladder header of every Explorer and in the \"Evidence and witnesses\" chapter; `typec...","sources":[],"tag":"measured"},{"claim":"No silicon. A SKY130 design was prepared through Tiny Tapeout; the TTSKY26a/TTSKY26b submissions were withdrawn before fabrication and refunded, so no die exists and no measurement on silicon is claimed (`trinity:apps...","sources":["trinity:apps/website/src/content/tnf.ts"],"tag":"not claimed"}],"source":"status-tagged bullets of docs/system/project.md"},"title":{"en":"The project","ru":"Проект"},"typecheckOk":true},{"body":{"en":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"code","v":"AGENTS.md"},{"t":"text","v":" is the entry point for humans and coding agents; its first section fixes the reading order and which document wins when two disagree:"}],"type":"p"},{"items":[[{"t":"code","v":"SOUL.md"},{"t":"text","v":" -- the canonical constitution: language policy, TDD mandate, validation."}],[{"t":"code","v":"docs/nona-03-manifest/SOUL.md"},{"t":"text","v":" -- the expanded reference; if it conflicts with root "},{"t":"code","v":"SOUL.md"},{"t":"text","v":", root wins."}],[{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":" -- Articles SSOT-MATH, LANG-EN and DOCS-TREE, and the invariant laws."}],[{"t":"code","v":"TASK.md"},{"t":"text","v":" with "},{"t":"code","v":"docs/coordination/TASK_PROTOCOL.md"},{"t":"text","v":" -- multi-agent coordination, locks, anchor issue."}],[{"t":"text","v":"The nearest "},{"t":"code","v":"OWNERS.md"},{"t":"text","v":" -- domain ownership for the directories you edit."}]],"type":"ol"},{"runs":[{"t":"code","v":"CLAUDE.md"},{"t":"text","v":" adds the operational loop for an autonomous agent and says, in its first line, that repo-specific law always overrides generic tooling defaults. The rest of this chapter quotes these files; the site links each quotation to the file at the commit the documentation was generated from."}],"type":"p"}],"heading":"The constitutional stack","id":"the-constitutional-stack"},{"blocks":[{"runs":[{"t":"code","v":"SOUL.md"},{"t":"text","v":" is organised in articles. The ones every change touches:"}],"type":"p"},{"items":[[{"t":"strong","v":"Article I, The Language Policy."},{"t":"text","v":" Source files must be ASCII-only (U+0000..U+007F); identifiers and comments must be English. The rule names "},{"t":"code","v":".t27"},{"t":"text","v":", "},{"t":"code","v":".tri"},{"t":"text","v":", "},{"t":"code","v":".zig"},{"t":"text","v":", "},{"t":"code","v":".c"},{"t":"text","v":", "},{"t":"code","v":".h"},{"t":"text","v":", "},{"t":"code","v":".v"},{"t":"text","v":" and build scripts. Cyrillic and other non-Latin scripts are forbidden in identifiers and comments unless an Architect-approved exception exists (section 1.1). First-party documentation is English (section 1.2, restated as Article LANG-EN of the constitution)."}],[{"t":"strong","v":"Article II, The TDD Mandate."},{"t":"text","v":" \"Every "},{"t":"code","v":".t27"},{"t":"text","v":" specification MUST contain at least one of\" a "},{"t":"code","v":".test"},{"t":"text","v":" section, an "},{"t":"code","v":".invariant"},{"t":"text","v":" section or a "},{"t":"code","v":".bench"},{"t":"text","v":" section. \"No exceptions. A spec without tests is not a specification -- it is a draft.\" (section 2.1, the Iron Law)."}],[{"t":"strong","v":"Article III, No Prototype Mode."},{"t":"text","v":" There is no "},{"t":"code","v":"--allow-no-tests"},{"t":"text","v":" flag and no grace period; the parser rejects a spec without tests with "},{"t":"code","v":"TDD contract violated"},{"t":"text","v":"."}],[{"t":"strong","v":"Article IV, Validation Requirements."},{"t":"text","v":" Enforcement at parser level, at codegen level and at build time."}],[{"t":"strong","v":"Article V, Amendment Process."},{"t":"text","v":" What can and cannot be amended."}],[{"t":"strong","v":"Article VI, Enforcement."},{"t":"text","v":" Agent compliance, human compliance, automated enforcement."}],[{"t":"strong","v":"Article VII, Sacred Trinity."},{"t":"text","v":" Three pillars: the identity phi^2 + 1/phi^2 = 3, ternary computation, and TDD inside the spec. \"Violating any violates the whole.\""}],[{"t":"strong","v":"Article VIII, NO-NEW-SHELL."},{"t":"text","v":" No new "},{"t":"code","v":"*.sh"},{"t":"text","v":" on the engineering critical path; the permitted exceptions are the exec-only shim "},{"t":"code","v":"scripts/tri"},{"t":"text","v":" and the one-time "},{"t":"code","v":"scripts/setup-git-hooks.sh"},{"t":"text","v":". Section 8.3 extends the rule to Python: validation, conformance gates and doc language checks live in "},{"t":"code","v":"t27c"},{"t":"text","v":" (Rust)."}]],"type":"ul"},{"runs":[{"t":"text","v":"The catalog specs under "},{"t":"code","v":"specs/skills"},{"t":"text","v":", "},{"t":"code","v":"specs/crons"},{"t":"text","v":", "},{"t":"code","v":"specs/agents"},{"t":"text","v":", "},{"t":"code","v":"specs/tools"},{"t":"text","v":" and "},{"t":"code","v":"specs/docs"},{"t":"text","v":" are declarative constant modules and carry no "},{"t":"code","v":".test"},{"t":"text","v":" block; the site's generators check their field schema instead. Whether Article II applies to declarative catalog modules is not decided in "},{"t":"code","v":"SOUL.md"},{"t":"text","v":" today; this documentation records the practice and does not claim a ruling."}],"type":"p"}],"heading":"SOUL articles","id":"soul-articles"},{"blocks":[{"runs":[{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":", section 2, defines seven Invariant Laws that \"never change without constitutional amendment\". The site renders the table from that file; in short:"}],"type":"p"},{"items":[[{"t":"strong","v":"L1 TRACEABILITY"},{"t":"text","v":" -- no code merged without "},{"t":"code","v":"Closes #N"},{"t":"text","v":"; every PR references an issue. Enforced by "},{"t":"code","v":".github/workflows/issue-gate.yml"},{"t":"text","v":"."}],[{"t":"strong","v":"L2 GENERATION"},{"t":"text","v":" -- files under "},{"t":"code","v":"gen/"},{"t":"text","v":" are generated; edit the "},{"t":"code","v":".t27"},{"t":"text","v":" spec instead."}],[{"t":"strong","v":"L3 PURITY"},{"t":"text","v":" -- ASCII-only identifiers and comments in "},{"t":"code","v":".t27"},{"t":"text","v":", "},{"t":"code","v":".zig"},{"t":"text","v":", "},{"t":"code","v":".v"},{"t":"text","v":", "},{"t":"code","v":".c"},{"t":"text","v":"."}],[{"t":"strong","v":"L4 TESTABILITY"},{"t":"text","v":" -- every "},{"t":"code","v":".t27"},{"t":"text","v":" spec must contain "},{"t":"code","v":"test"},{"t":"text","v":", "},{"t":"code","v":"invariant"},{"t":"text","v":" or "},{"t":"code","v":"bench"},{"t":"text","v":"."}],[{"t":"strong","v":"L5 IDENTITY"},{"t":"text","v":" -- phi^2 = phi + 1 on the reals, hence phi^2 + 1/phi^2 = 3; IEEE binary64 checks use a tolerance."}],[{"t":"strong","v":"L6 CEILING"},{"t":"text","v":" -- "},{"t":"code","v":"conformance/FORMAT-SPEC-001.json"},{"t":"text","v":" and "},{"t":"code","v":"specs/numeric/gf16.t27"},{"t":"text","v":" are the numeric ceiling, never forked."}],[{"t":"strong","v":"L7 UNITY"},{"t":"text","v":" -- no new "},{"t":"code","v":"*.sh"},{"t":"text","v":" on the critical path for validation, generation or data; "},{"t":"code","v":"t27c"},{"t":"text","v":" and "},{"t":"code","v":"tri"},{"t":"text","v":" only."}]],"type":"ul"},{"runs":[{"t":"text","v":"Priority is Asimov-style: L1 > L2 > L3 > L4 > L5 > L6 > L7. \"In conflict scenarios, the higher-priority law prevails.\" The legacy names (ISSUE-GATE, NO-HAND-EDIT-GEN, SOUL-ASCII, TDD-MANDATE, PHI-IDENTITY, TRINITY-SACRED, NO-NEW-SHELL) map one-to-one onto L1..L7 in the constitution's alias index."}],"type":"p"},{"runs":[{"t":"text","v":"One discrepancy is recorded rather than resolved: "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":" section 5 speaks of \"the seven Invariant Laws (L1-L8)\" and writes the priority as \"L1 > ... > L8\", while its table and the constitution define L1..L7 only. No L8 is defined in either file at the commit this documentation was generated from. The figure next to this chapter therefore shows seven laws."}],"type":"p"}],"heading":"Invariant laws and their priority","id":"invariant-laws-and-their-priority"},{"blocks":[{"runs":[{"t":"code","v":"AGENTS.md"},{"t":"text","v":" section 3 lists six non-negotiables, quoted in short:"}],"type":"p"},{"items":[[{"t":"text","v":"Specs are source of truth -- behaviour belongs in "},{"t":"code","v":".t27"},{"t":"text","v":" / "},{"t":"code","v":".tri"},{"t":"text","v":"; generated "},{"t":"code","v":"gen/"},{"t":"text","v":" output is not hand-edited except for documented exceptions."}],[{"t":"text","v":"TDD inside specs -- new or changed specs need "},{"t":"code","v":"test"},{"t":"text","v":", "},{"t":"code","v":"invariant"},{"t":"text","v":" and/or "},{"t":"code","v":"bench"},{"t":"text","v":" where SOUL requires it."}],[{"t":"text","v":"English + ASCII -- first-party Markdown and source comments per LANG-EN and ADR-004."}],[{"t":"text","v":"No new Python on the verification critical path."}],[{"t":"text","v":"Issue gate -- PRs link issues ("},{"t":"code","v":"Closes #N"},{"t":"text","v":") where project policy requires it."}],[{"t":"text","v":"Ring / gold work -- parser, compiler and spec changes follow the golden-rings canon; the compiler seal path is "},{"t":"code","v":"bootstrap/stage0/FROZEN_HASH"},{"t":"text","v":"."}]],"type":"ol"},{"runs":[{"t":"text","v":"Two rules of this documentation's own owner belong beside them, because the site enforces them: no absolute developer home path in any committed file (a checkout is "},{"t":"code","v":"T27_ROOT"},{"t":"text","v":" or "},{"t":"code","v":"git rev-parse --show-toplevel"},{"t":"text","v":"), and no hand edits to generated manifests -- change the spec and regenerate."}],"type":"p"}],"heading":"Non-negotiables for changes","id":"non-negotiables-for-changes"},{"blocks":[{"runs":[{"t":"code","v":"docs/coordination/TASK_PROTOCOL.md"},{"t":"text","v":" governs how several agents work in one tree at the same time. Its artifacts are the root "},{"t":"code","v":"TASK.md"},{"t":"text","v":" (anchor link, protocol version, locks, handoff log, work units) and the protocol document itself. The semantics, in short:"}],"type":"p"},{"items":[[{"t":"strong","v":"Lock (soft)."},{"t":"text","v":" Before editing sensitive paths the active agent should set lock holder, lock scope and lock until in the coordination state; others must not override without a handoff-log entry and an epoch bump. Locks are \"social + procedural\", not file locks."}],[{"t":"strong","v":"Epoch."},{"t":"text","v":" A version counter for the coordination state."}],[{"t":"strong","v":"Handoff log."},{"t":"text","v":" Append-preferred; handoffs are treated \"like narrow API contracts\"."}],[{"t":"strong","v":"Read / write order."},{"t":"text","v":" "},{"t":"code","v":"github-sync.json"},{"t":"text","v":" (queue snapshot), then "},{"t":"code","v":"TASK.md"},{"t":"text","v":" (locks and handoffs), then the anchor issue, then the target issue for the code change (section 4.4)."}]],"type":"ul"},{"runs":[{"t":"text","v":"Validation of "},{"t":"code","v":"TASK.md"},{"t":"text","v":"'s shape is automated (section 5); verification is human plus CI (section 6)."}],"type":"p"}],"heading":"TASK protocol","id":"task-protocol"},{"blocks":[{"runs":[{"t":"text","v":"The issue gate is law L1 in executable form: the constitution names "},{"t":"code","v":".github/workflows/issue-gate.yml"},{"t":"text","v":" as the enforcement of \"no code merged without "},{"t":"code","v":"Closes #N"},{"t":"text","v":"\". Everything the site documents came in through it -- the skills, crons, agents, tools and docs catalogs each have their issue and their "},{"t":"code","v":"docs/now/"},{"t":"text","v":" entry."}],"type":"p"},{"runs":[{"t":"text","v":"The TDD mandate is law L4 and SOUL Article II in executable form: the parser rejects a spec without a "},{"t":"code","v":"test"},{"t":"text","v":", "},{"t":"code","v":"invariant"},{"t":"text","v":" or "},{"t":"code","v":"bench"},{"t":"text","v":" block. For the catalog specs the site adds its own gate on top: a generator that compiles every card through the wasm and fails on a schema violation, an unknown cross-reference, or a binding stated on one side only (an agent that names a tool the tool does not name back, and the reverse)."}],"type":"p"}],"heading":"Issue gate and TDD mandate","id":"issue-gate-and-tdd-mandate"}],"title":"Constitution and the rules of the game for agents"},"ru":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"code","v":"AGENTS.md"},{"t":"text","v":" -- точка входа для людей и кодирующих агентов; его раздел 1 задаёт порядок чтения и то, какой документ побеждает при расхождении:"}],"type":"p"},{"items":[[{"t":"code","v":"SOUL.md"},{"t":"text","v":" -- каноническая конституция: языковая политика, мандат TDD, валидация."}],[{"t":"code","v":"docs/nona-03-manifest/SOUL.md"},{"t":"text","v":" -- расширенный справочник; при конфликте с корневым "},{"t":"code","v":"SOUL.md"},{"t":"text","v":" побеждает корневой."}],[{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":" -- статьи SSOT-MATH, LANG-EN и DOCS-TREE и инвариантные законы."}],[{"t":"code","v":"TASK.md"},{"t":"text","v":" вместе с "},{"t":"code","v":"docs/coordination/TASK_PROTOCOL.md"},{"t":"text","v":" -- координация нескольких агентов, блокировки, якорная задача."}],[{"t":"text","v":"Ближайший "},{"t":"code","v":"OWNERS.md"},{"t":"text","v":" -- владение областью для редактируемых каталогов."}]],"type":"ol"},{"runs":[{"t":"code","v":"CLAUDE.md"},{"t":"text","v":" добавляет операционный цикл автономного агента и в своей вводной строке говорит, что закон репозитория всегда перекрывает умолчания общего инструментария. Остальная часть главы цитирует эти файлы; сайт привязывает каждую цитату к файлу на коммите, на котором документация была порождена."}],"type":"p"}],"heading":"Конституционный стек","id":"конституционный-стек"},{"blocks":[{"runs":[{"t":"code","v":"SOUL.md"},{"t":"text","v":" организован статьями. Те, которых касается каждое изменение:"}],"type":"p"},{"items":[[{"t":"strong","v":"Статья I, языковая политика."},{"t":"text","v":" Исходные файлы должны быть только ASCII (U+0000..U+007F); идентификаторы и комментарии -- на английском. Правило называет "},{"t":"code","v":".t27"},{"t":"text","v":", "},{"t":"code","v":".tri"},{"t":"text","v":", "},{"t":"code","v":".zig"},{"t":"text","v":", "},{"t":"code","v":".c"},{"t":"text","v":", "},{"t":"code","v":".h"},{"t":"text","v":", "},{"t":"code","v":".v"},{"t":"text","v":" и сборочные скрипты. Кириллица и другие нелатинские письменности запрещены в идентификаторах и комментариях, если нет исключения, одобренного Архитектором (раздел 1.1). Собственная документация проекта -- на английском (раздел 1.2, повторено как статья LANG-EN конституции)."}],[{"t":"strong","v":"Статья II, мандат TDD."},{"t":"text","v":" \"Every "},{"t":"code","v":".t27"},{"t":"text","v":" specification MUST contain at least one of\" -- секцию "},{"t":"code","v":".test"},{"t":"text","v":", "},{"t":"code","v":".invariant"},{"t":"text","v":" или "},{"t":"code","v":".bench"},{"t":"text","v":". \"No exceptions. A spec without tests is not a specification -- it is a draft.\" (раздел 2.1, Железный закон)."}],[{"t":"strong","v":"Статья III, без режима прототипа."},{"t":"text","v":" Нет флага "},{"t":"code","v":"--allow-no-tests"},{"t":"text","v":" и нет льготного периода; парсер отвергает спецификацию без тестов с ошибкой "},{"t":"code","v":"TDD contract violated"},{"t":"text","v":"."}],[{"t":"strong","v":"Статья IV, требования валидации."},{"t":"text","v":" Контроль на уровне парсера, кодогенерации и сборки."}],[{"t":"strong","v":"Статья V, порядок поправок."},{"t":"text","v":" Что можно и что нельзя менять."}],[{"t":"strong","v":"Статья VI, принуждение."},{"t":"text","v":" Соблюдение агентами, людьми, автоматикой."}],[{"t":"strong","v":"Статья VII, Священная Троица."},{"t":"text","v":" Три опоры: тождество phi^2 + 1/phi^2 = 3, троичные вычисления и TDD внутри спецификации. \"Violating any violates the whole.\""}],[{"t":"strong","v":"Статья VIII, NO-NEW-SHELL."},{"t":"text","v":" Никаких новых "},{"t":"code","v":"*.sh"},{"t":"text","v":" на инженерном критическом пути; допустимые исключения -- шим "},{"t":"code","v":"scripts/tri"},{"t":"text","v":" (только exec) и одноразовый "},{"t":"code","v":"scripts/setup-git-hooks.sh"},{"t":"text","v":". Раздел 8.3 распространяет правило на Python: валидация, шлюзы конформности и проверки языка документации живут в "},{"t":"code","v":"t27c"},{"t":"text","v":" (Rust)."}]],"type":"ul"},{"runs":[{"t":"text","v":"Спецификации каталогов в "},{"t":"code","v":"specs/skills"},{"t":"text","v":", "},{"t":"code","v":"specs/crons"},{"t":"text","v":", "},{"t":"code","v":"specs/agents"},{"t":"text","v":", "},{"t":"code","v":"specs/tools"},{"t":"text","v":" и "},{"t":"code","v":"specs/docs"},{"t":"text","v":" -- декларативные модули констант и не несут блока "},{"t":"code","v":".test"},{"t":"text","v":"; вместо этого генераторы сайта проверяют схему их полей. Применима ли статья II к декларативным модулям каталогов, "},{"t":"code","v":"SOUL.md"},{"t":"text","v":" сегодня не решает; эта документация фиксирует практику и не претендует на постановление."}],"type":"p"}],"heading":"Статьи SOUL","id":"статьи-soul"},{"blocks":[{"runs":[{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":", раздел 2, определяет семь инвариантных законов, которые \"never change without constitutional amendment\". Сайт выводит таблицу из этого файла; кратко:"}],"type":"p"},{"items":[[{"t":"strong","v":"L1 TRACEABILITY"},{"t":"text","v":" -- код не вливается без "},{"t":"code","v":"Closes #N"},{"t":"text","v":"; каждый PR ссылается на задачу. Контроль -- "},{"t":"code","v":".github/workflows/issue-gate.yml"},{"t":"text","v":"."}],[{"t":"strong","v":"L2 GENERATION"},{"t":"text","v":" -- файлы под "},{"t":"code","v":"gen/"},{"t":"text","v":" порождены; правьте спецификацию "},{"t":"code","v":".t27"},{"t":"text","v":"."}],[{"t":"strong","v":"L3 PURITY"},{"t":"text","v":" -- только ASCII в идентификаторах и комментариях "},{"t":"code","v":".t27"},{"t":"text","v":", "},{"t":"code","v":".zig"},{"t":"text","v":", "},{"t":"code","v":".v"},{"t":"text","v":", "},{"t":"code","v":".c"},{"t":"text","v":"."}],[{"t":"strong","v":"L4 TESTABILITY"},{"t":"text","v":" -- каждая спецификация "},{"t":"code","v":".t27"},{"t":"text","v":" содержит "},{"t":"code","v":"test"},{"t":"text","v":", "},{"t":"code","v":"invariant"},{"t":"text","v":" или "},{"t":"code","v":"bench"},{"t":"text","v":"."}],[{"t":"strong","v":"L5 IDENTITY"},{"t":"text","v":" -- phi^2 = phi + 1 на вещественных числах, откуда phi^2 + 1/phi^2 = 3; проверки в IEEE binary64 используют допуск."}],[{"t":"strong","v":"L6 CEILING"},{"t":"text","v":" -- "},{"t":"code","v":"conformance/FORMAT-SPEC-001.json"},{"t":"text","v":" и "},{"t":"code","v":"specs/numeric/gf16.t27"},{"t":"text","v":" -- численный потолок, никогда не форкается."}],[{"t":"strong","v":"L7 UNITY"},{"t":"text","v":" -- никаких новых "},{"t":"code","v":"*.sh"},{"t":"text","v":" на критическом пути валидации, порождения или данных; только "},{"t":"code","v":"t27c"},{"t":"text","v":" и "},{"t":"code","v":"tri"},{"t":"text","v":"."}]],"type":"ul"},{"runs":[{"t":"text","v":"Приоритет -- в духе Азимова: L1 > L2 > L3 > L4 > L5 > L6 > L7. \"In conflict scenarios, the higher-priority law prevails.\" Прежние имена (ISSUE-GATE, NO-HAND-EDIT-GEN, SOUL-ASCII, TDD-MANDATE, PHI-IDENTITY, TRINITY-SACRED, NO-NEW-SHELL) отображаются один к одному на L1..L7 в индексе псевдонимов конституции."}],"type":"p"},{"runs":[{"t":"text","v":"Одно расхождение фиксируется, а не устраняется: "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":", раздел 5, говорит о \"the seven Invariant Laws (L1-L8)\" и пишет приоритет как \"L1 > ... > L8\", тогда как его таблица и конституция определяют только L1..L7. Ни в одном из файлов на коммите, на котором порождена документация, L8 не определён. Поэтому фигура рядом с этой главой показывает семь законов."}],"type":"p"}],"heading":"Инвариантные законы и их приоритет","id":"инвариантные-законы-и-их-приоритет"},{"blocks":[{"runs":[{"t":"code","v":"AGENTS.md"},{"t":"text","v":", раздел 3, перечисляет шесть неотменяемых требований, кратко:"}],"type":"p"},{"items":[[{"t":"text","v":"Спецификации -- источник истины: поведение живёт в "},{"t":"code","v":".t27"},{"t":"text","v":" / "},{"t":"code","v":".tri"},{"t":"text","v":"; порождённый вывод в "},{"t":"code","v":"gen/"},{"t":"text","v":" не правится вручную, кроме документированных исключений."}],[{"t":"text","v":"TDD внутри спецификаций: новые или изменённые спецификации несут "},{"t":"code","v":"test"},{"t":"text","v":", "},{"t":"code","v":"invariant"},{"t":"text","v":" и/или "},{"t":"code","v":"bench"},{"t":"text","v":" там, где этого требует SOUL."}],[{"t":"text","v":"Английский + ASCII: собственный Markdown и комментарии в коде по LANG-EN и ADR-004."}],[{"t":"text","v":"Никакого нового Python на критическом пути верификации."}],[{"t":"text","v":"Шлюз задач: PR ссылаются на задачи ("},{"t":"code","v":"Closes #N"},{"t":"text","v":") там, где этого требует политика проекта."}],[{"t":"text","v":"Работа с кольцами / золотом: изменения парсера, компилятора и спецификаций следуют канону golden-rings; путь печати компилятора -- "},{"t":"code","v":"bootstrap/stage0/FROZEN_HASH"},{"t":"text","v":"."}]],"type":"ol"},{"runs":[{"t":"text","v":"Два правила владельца этой документации стоят рядом с ними, потому что сайт их проверяет: никаких абсолютных путей домашнего каталога разработчика в закоммиченных файлах (чекаут -- это "},{"t":"code","v":"T27_ROOT"},{"t":"text","v":" или "},{"t":"code","v":"git rev-parse --show-toplevel"},{"t":"text","v":") и никакой ручной правки порождённых манифестов -- меняйте спецификацию и порождайте заново."}],"type":"p"}],"heading":"Неотменяемые требования к изменениям","id":"неотменяемые-требования-к-изменениям"},{"blocks":[{"runs":[{"t":"code","v":"docs/coordination/TASK_PROTOCOL.md"},{"t":"text","v":" определяет, как несколько агентов работают в одном дереве одновременно. Его артефакты -- корневой "},{"t":"code","v":"TASK.md"},{"t":"text","v":" (якорная ссылка, версия протокола, блокировки, журнал передач, единицы работы) и сам документ протокола. Семантика, кратко:"}],"type":"p"},{"items":[[{"t":"strong","v":"Блокировка (мягкая)."},{"t":"text","v":" Перед правкой чувствительных путей активный агент должен выставить держателя, область и срок блокировки в состоянии координации; другие не должны перебивать её без записи в журнале передач и повышения эпохи. Блокировки \"social + procedural\", не файловые."}],[{"t":"strong","v":"Эпоха."},{"t":"text","v":" Счётчик версии состояния координации."}],[{"t":"strong","v":"Журнал передач."},{"t":"text","v":" Предпочтительно дописываемый; передачи трактуются \"like narrow API contracts\"."}],[{"t":"strong","v":"Порядок чтения / записи."},{"t":"text","v":" "},{"t":"code","v":"github-sync.json"},{"t":"text","v":" (снимок очереди), затем "},{"t":"code","v":"TASK.md"},{"t":"text","v":" (блокировки и передачи), затем якорная задача, затем целевая задача для изменения кода (раздел 4.4)."}]],"type":"ul"},{"runs":[{"t":"text","v":"Проверка формы "},{"t":"code","v":"TASK.md"},{"t":"text","v":" автоматизирована (раздел 5); верификация -- человек плюс CI (раздел 6)."}],"type":"p"}],"heading":"Протокол TASK","id":"протокол-task"},{"blocks":[{"runs":[{"t":"text","v":"Шлюз задач -- закон L1 в исполняемой форме: конституция называет "},{"t":"code","v":".github/workflows/issue-gate.yml"},{"t":"text","v":" средством контроля правила \"no code merged without "},{"t":"code","v":"Closes #N"},{"t":"text","v":"\". Всё, что документирует сайт, прошло через него -- каталоги навыков, расписаний, агентов, инструментов и документации имеют свою задачу и свою запись в "},{"t":"code","v":"docs/now/"},{"t":"text","v":"."}],"type":"p"},{"runs":[{"t":"text","v":"Мандат TDD -- закон L4 и статья II SOUL в исполняемой форме: парсер отвергает спецификацию без блока "},{"t":"code","v":"test"},{"t":"text","v":", "},{"t":"code","v":"invariant"},{"t":"text","v":" или "},{"t":"code","v":"bench"},{"t":"text","v":". Для спецификаций каталогов сайт добавляет свой шлюз: генератор компилирует каждую карточку через wasm и роняет сборку при нарушении схемы, неизвестной перекрёстной ссылке или связи, заявленной лишь с одной стороны (агент называет инструмент, а инструмент не называет агента в ответ, и наоборот)."}],"type":"p"}],"heading":"Шлюз задач и мандат TDD","id":"шлюз-задач-и-мандат-tdd"}]}},"bodyPath":"docs/system/rules.md","bodySha256":"fead79216c0c6b88907a51098b2f4664e70efb0f48f5870ebd3e1a54f6cb8e9d","diagram":"law-hierarchy","discarded":0,"enabled":true,"id":"docs/rules","links":{"body":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/system/rules.md","spec":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/chapters/rules.t27"},"moduleName":"docs_chapter_rules","order":2,"sections":[{"heading":{"en":"The constitutional stack","ru":"Конституционный стек"},"id":"the-constitutional-stack"},{"heading":{"en":"SOUL articles","ru":"Статьи SOUL"},"id":"soul-articles"},{"heading":{"en":"Invariant laws and their priority","ru":"Инвариантные законы и их приоритет"},"id":"invariant-laws-and-their-priority"},{"heading":{"en":"Non-negotiables for changes","ru":"Неотменяемые требования к изменениям"},"id":"non-negotiables-for-changes"},{"heading":{"en":"TASK protocol","ru":"Протокол TASK"},"id":"task-protocol"},{"heading":{"en":"Issue gate and TDD mandate","ru":"Шлюз задач и мандат TDD"},"id":"issue-gate-and-tdd-mandate"}],"sha256":"3a27bd5a4d2a3afccb342301f277a906103ff8c6fd802bace787ed808e89e22f","sources":[{"kind":"file","path":"SOUL.md","rel":"SOUL.md","repo":"t27","sha256":"cb9b44e13d6d0b314f9626f9cca438e5f17ed6847b194220f9e80b32209e052e","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md","where":"vendored"},{"kind":"file","path":"AGENTS.md","rel":"AGENTS.md","repo":"t27","sha256":"51d2674ae7331a2df71756fbda3c723b467073a4b59190fed0d9b34023bfea2b","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","where":"vendored"},{"kind":"file","path":"CLAUDE.md","rel":"CLAUDE.md","repo":"t27","sha256":"43a5d51f12e25f9aa23aacc837005fe9d8a7bb5637e4857b0b31abab88730d05","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/CLAUDE.md","where":"vendored"},{"kind":"file","path":"docs/T27-CONSTITUTION.md","rel":"docs/T27-CONSTITUTION.md","repo":"t27","sha256":"2c06724425f721ef6356edc9a14e4f1af530d1246c5c6a318fd42f59aaa319a5","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/T27-CONSTITUTION.md","where":"vendored"},{"kind":"file","path":"docs/coordination/TASK_PROTOCOL.md","rel":"docs/coordination/TASK_PROTOCOL.md","repo":"t27","sha256":"dbbea6fe6eb3ce0df60cf58bb0c2c2973313523a9f9530aa792f07dcb65a38ef","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/coordination/TASK_PROTOCOL.md","where":"vendored"}],"specPath":"specs/docs/chapters/rules.t27","stem":"rules","table":{"columns":["law","name","body","enforcement"],"kind":"laws","note":"Priority: L1 > L2 > … > L7","rows":[{"body":"No code merged without `Closes #N` — every PR must reference a GitHub issue","enforcement":"`.github/workflows/issue-gate.yml`","law":"L1","name":"TRACEABILITY"},{"body":"Files under `gen/` are generated; edit the `.t27` spec instead","enforcement":"`./target/release/t27c validate-gen-headers`","law":"L2","name":"GENERATION"},{"body":"All `.t27` / `.zig` / `.v` / `.c` source — ASCII-only identifiers & comments","enforcement":"`SOUL.md`, `ADR-004`, build.rs language checks","law":"L3","name":"PURITY"},{"body":"Every `.t27` spec must contain `test` / `invariant` / `bench`","enforcement":"Ring 037 / #132, parser enforcement","law":"L4","name":"TESTABILITY"},{"body":"**K2 core:** φ² = φ + 1 on ℝ; consequence φ² + φ⁻² = 3; IEEE f64 checks use tolerance","enforcement":"`NUMERIC-CORE-PALETTE-REGISTRY.md`, `specs/math/constants.t27`","law":"L5","name":"IDENTITY"},{"body":"`conformance/FORMAT-SPEC-001.json` + `specs/numeric/gf16.t27` are the numeric ceiling — never forked","enforcement":"SSOT: seal coverage CI","law":"L6","name":"CEILING"},{"body":"No new `*.sh` on the critical path for validation / gen / data","enforcement":"`SOUL.md` Article VIII; `t27c` + `tri` only","law":"L7","name":"UNITY"}],"source":"docs/T27-CONSTITUTION.md, section 2"},"title":{"en":"Constitution and the rules of the game for agents","ru":"Конституция и правила игры для агентов"},"typecheckOk":true},{"body":{"en":{"lead":[{"runs":[{"t":"text","v":"The site orders what the repositories ship into five layers and shows the same ladder in the header of every Explorer: "},{"t":"strong","v":"Specs -> Skills -> Crons -> Agents -> Tools"},{"t":"text","v":". Each layer is a directory of "},{"t":"code","v":".t27"},{"t":"text","v":" files in "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":", each has a README that states its schema, and each is rendered from those files by one generator through the compiler wasm. The ladder counts on the site are read from the generated JSON at build time; the table next to this chapter shows them for the commit the documentation was generated from."}],"type":"p"}],"sections":[{"blocks":[{"runs":[{"t":"text","v":"The base layer is the "},{"t":"code","v":".t27"},{"t":"text","v":" corpus itself: everything under "},{"t":"code","v":"specs/"},{"t":"text","v":" in "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":", from the language core and the numeric formats to the catalogs below. The site vendors a byte-identical copy under "},{"t":"code","v":"apps/website/public/t27/files/"},{"t":"text","v":" and compiles every file with the vendored "},{"t":"code","v":"t27_compiler.wasm"},{"t":"text","v":" at build time. The Spec Explorer ("},{"t":"code","v":"#/specs"},{"t":"text","v":") shows each file with its verdict; the manifest that lists them ("},{"t":"code","v":"public/t27/manifest.json"},{"t":"text","v":") is generated and never hand-edited."}],"type":"p"}],"heading":"Specs","id":"specs"},{"blocks":[{"runs":[{"t":"text","v":"A skill is a published procedure an agent can run -- a "},{"t":"code","v":"SKILL.md"},{"t":"text","v":" in one of the repositories. "},{"t":"code","v":"specs/skills/.t27"},{"t":"text","v":" declares each one (KIND, ID, NAME, REPO, SOURCE, SUMMARY_EN, COMMAND, SPECS, TAGS, ENABLED, TIMEOUT_MIN). The witness label on a skill card says how the card relates to the code: "},{"t":"code","v":"spec+code"},{"t":"text","v":" when both the spec and the "},{"t":"code","v":"SKILL.md"},{"t":"text","v":" exist, "},{"t":"code","v":"spec-only"},{"t":"text","v":" when only the spec does, "},{"t":"code","v":"code-only"},{"t":"text","v":" when a skill file has no spec yet. Skill Explorer: "},{"t":"code","v":"#/skills"},{"t":"text","v":"."}],"type":"p"}],"heading":"Skills","id":"skills"},{"blocks":[{"runs":[{"t":"text","v":"A cron is a scheduled job: a workflow schedule, a Railway timer, a daemon loop. "},{"t":"code","v":"specs/crons/.t27"},{"t":"text","v":" declares each (HOST, REPO, SERVICE, INTERVAL_MS, TZ, RUNS, RUNS_NOTE, ENABLED, NOTE, ON_FAILURE, CONTROL). "},{"t":"code","v":"RUNS"},{"t":"text","v":" lists the skill IDs a job invokes, and only where the source shows the invocation; where none is found "},{"t":"code","v":"RUNS"},{"t":"text","v":" is empty and "},{"t":"code","v":"RUNS_NOTE"},{"t":"text","v":" says so (\"no skill invocation found in source\"). The Cron Explorer ("},{"t":"code","v":"#/crons"},{"t":"text","v":") computes the next firing from "},{"t":"code","v":"INTERVAL_MS"},{"t":"text","v":" and "},{"t":"code","v":"TZ"},{"t":"text","v":". A job that runs no skill is a job the site cannot tie to the layers above; that is recorded, not hidden."}],"type":"p"}],"heading":"Crons","id":"crons"},{"blocks":[{"runs":[{"t":"text","v":"The 27 letters of the alphabet, one spec each: "},{"t":"code","v":"specs/agents/.t27"},{"t":"text","v":" with LETTER, ORDINAL, LETTER_NAME, NAME, DOMAIN, ARCHETYPE, REGISTER, LAYER, SUMMARY_EN, the three binding documents (SOUL, AGENTS_DOC, ALPHABET), KEY_FILES, the entry and exit invariants, CLARA_ROLE, SKILLS with SKILLS_NOTE and TOOLS with TOOLS_NOTE. An agent holds a skill or a tool only where a source line binds it -- a "},{"t":"code","v":".claude/agents/*.md"},{"t":"text","v":" file, the alphabet, a phase description -- and the note cites that line or says why the list is empty. The generator fails the build on an unknown skill or tool ID and on a binding stated on one side only. Agent Explorer: "},{"t":"code","v":"#/agents"},{"t":"text","v":". The full table is the next chapter."}],"type":"p"}],"heading":"Agents","id":"agents"},{"blocks":[{"runs":[{"t":"text","v":"What an agent can call: the commands of the "},{"t":"code","v":"tri"},{"t":"text","v":" CLI and the tools of the MCP servers. "},{"t":"code","v":"specs/tools/tri/.t27"},{"t":"text","v":" is read from the clap "},{"t":"code","v":"Commands"},{"t":"text","v":" enum in "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":" (one card per variant, with its nested actions and arguments); "},{"t":"code","v":"specs/tools/mcp/.t27"},{"t":"text","v":" from the server sources, manifests and "},{"t":"code","v":".mcp.json"},{"t":"text","v":" entries of both repositories, with the tool names, descriptions and input-schema keys. The witness on every tri card is "},{"t":"code","v":"source-parse"},{"t":"text","v":" (the enum was read at a recorded commit) until someone diffs the list against "},{"t":"code","v":"tri --help"},{"t":"text","v":" and relabels it "},{"t":"code","v":"help-output"},{"t":"text","v":". Servers whose code is a published package outside the repositories carry "},{"t":"code","v":"EXTERNAL = true"},{"t":"text","v":". Tool Explorer: "},{"t":"code","v":"#/tools"},{"t":"text","v":"."}],"type":"p"}],"heading":"Tools","id":"tools"},{"blocks":[{"runs":[{"t":"text","v":"One generator, "},{"t":"code","v":"scripts/agents-from-specs.mjs"},{"t":"text","v":" in "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":", reads the vendored "},{"t":"code","v":".t27"},{"t":"text","v":" files, compiles each through the wasm, reads the constants of the compiled module, checks them against the schema of the layer, resolves every cross-reference (skill IDs in crons and agents, tool IDs in agents, agent letters in tools, spec paths in skills), and writes one JSON per layer under "},{"t":"code","v":"public/"},{"t":"text","v":". It runs in "},{"t":"code","v":"prebuild"},{"t":"text","v":", so a spec that does not compile or a reference that does not resolve stops the site from building. No "},{"t":"code","v":".t27"},{"t":"text","v":" is parsed with a regular expression anywhere in that path."}],"type":"p"},{"runs":[{"t":"text","v":"Translations follow the same rule. "},{"t":"code","v":"specs/i18n/-.t27"},{"t":"text","v":" declares which fields of which specs a bundle may translate and where the bundle lives; the bundle ("},{"t":"code","v":"apps/website/i18n/*.json"},{"t":"text","v":") carries the text; the generator checks that every bundle entry names an existing spec and reports coverage. The specs stay English-only."}],"type":"p"}],"heading":"From spec to site","id":"from-spec-to-site"},{"blocks":[{"runs":[{"t":"text","v":"Agents log what happened under "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":" in each repository: episodes as JSON, notes as Markdown. "},{"t":"code","v":"scripts/sync-agents-experience.mjs"},{"t":"text","v":" reads both trees at their current commit and writes "},{"t":"code","v":"public/agents/experience.json"},{"t":"text","v":" with counts per repository and, where an episode names an agent letter, the attribution. At the commit this documentation was generated from no episode is attributed to any letter -- the field the sync looks for is absent from every episode -- and the agent cards say so. The snapshot records the commit of each tree, not the path of the checkout."}],"type":"p"}],"heading":"Experience","id":"experience"}],"title":"The five-layer system"},"ru":{"lead":[{"runs":[{"t":"text","v":"Сайт упорядочивает то, что поставляют репозитории, в пять слоёв и показывает одну и ту же лестницу в заголовке каждого обозревателя: "},{"t":"strong","v":"Specs -> Skills -> Crons -> Agents -> Tools"},{"t":"text","v":". Каждый слой -- каталог файлов "},{"t":"code","v":".t27"},{"t":"text","v":" в "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":", у каждого есть README со схемой, и каждый отображается из этих файлов одним генератором через wasm компилятора. Счётчики лестницы на сайте читаются из порождённого JSON при сборке; таблица рядом с этой главой показывает их для коммита, на котором порождена документация."}],"type":"p"}],"sections":[{"blocks":[{"runs":[{"t":"text","v":"Базовый слой -- сам корпус "},{"t":"code","v":".t27"},{"t":"text","v":": всё под "},{"t":"code","v":"specs/"},{"t":"text","v":" в "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":", от ядра языка и численных форматов до каталогов ниже. Сайт хранит побайтово идентичную вендорную копию под "},{"t":"code","v":"apps/website/public/t27/files/"},{"t":"text","v":" и компилирует каждый файл вендорным "},{"t":"code","v":"t27_compiler.wasm"},{"t":"text","v":" при сборке. Обозреватель спецификаций ("},{"t":"code","v":"#/specs"},{"t":"text","v":") показывает каждый файл с его вердиктом; перечисляющий их манифест ("},{"t":"code","v":"public/t27/manifest.json"},{"t":"text","v":") порождается и никогда не правится вручную."}],"type":"p"}],"heading":"Спецификации","id":"спецификации"},{"blocks":[{"runs":[{"t":"text","v":"Навык -- опубликованная процедура, которую может выполнить агент: "},{"t":"code","v":"SKILL.md"},{"t":"text","v":" в одном из репозиториев. "},{"t":"code","v":"specs/skills/.t27"},{"t":"text","v":" объявляет каждый (KIND, ID, NAME, REPO, SOURCE, SUMMARY_EN, COMMAND, SPECS, TAGS, ENABLED, TIMEOUT_MIN). Метка свидетеля на карточке навыка говорит, как карточка соотносится с кодом: "},{"t":"code","v":"spec+code"},{"t":"text","v":", когда есть и спецификация, и "},{"t":"code","v":"SKILL.md"},{"t":"text","v":"; "},{"t":"code","v":"spec-only"},{"t":"text","v":", когда есть только спецификация; "},{"t":"code","v":"code-only"},{"t":"text","v":", когда у файла навыка ещё нет спецификации. Обозреватель навыков: "},{"t":"code","v":"#/skills"},{"t":"text","v":"."}],"type":"p"}],"heading":"Навыки","id":"навыки"},{"blocks":[{"runs":[{"t":"text","v":"Расписание -- запланированное задание: расписание workflow, таймер Railway, цикл демона. "},{"t":"code","v":"specs/crons/.t27"},{"t":"text","v":" объявляет каждое (HOST, REPO, SERVICE, INTERVAL_MS, TZ, RUNS, RUNS_NOTE, ENABLED, NOTE, ON_FAILURE, CONTROL). "},{"t":"code","v":"RUNS"},{"t":"text","v":" перечисляет ID навыков, которые запускает задание, и только там, где источник показывает вызов; где вызова не найдено, "},{"t":"code","v":"RUNS"},{"t":"text","v":" пуст, а "},{"t":"code","v":"RUNS_NOTE"},{"t":"text","v":" говорит об этом (\"no skill invocation found in source\"). Обозреватель расписаний ("},{"t":"code","v":"#/crons"},{"t":"text","v":") вычисляет следующий запуск по "},{"t":"code","v":"INTERVAL_MS"},{"t":"text","v":" и "},{"t":"code","v":"TZ"},{"t":"text","v":". Задание, не запускающее навык, -- это задание, которое сайт не может связать со слоями выше; это записывается, а не скрывается."}],"type":"p"}],"heading":"Расписания","id":"расписания"},{"blocks":[{"runs":[{"t":"text","v":"27 букв алфавита, по одной спецификации на каждую: "},{"t":"code","v":"specs/agents/.t27"},{"t":"text","v":" с LETTER, ORDINAL, LETTER_NAME, NAME, DOMAIN, ARCHETYPE, REGISTER, LAYER, SUMMARY_EN, тремя связывающими документами (SOUL, AGENTS_DOC, ALPHABET), KEY_FILES, входным и выходным инвариантами, CLARA_ROLE, SKILLS с SKILLS_NOTE и TOOLS с TOOLS_NOTE. Агент держит навык или инструмент только там, где его связывает строка источника -- файл "},{"t":"code","v":".claude/agents/*.md"},{"t":"text","v":", алфавит, описание фазы, -- и примечание цитирует эту строку или объясняет, почему список пуст. Генератор роняет сборку на неизвестном ID навыка или инструмента и на связи, заявленной лишь с одной стороны. Обозреватель агентов: "},{"t":"code","v":"#/agents"},{"t":"text","v":". Полная таблица -- в следующей главе."}],"type":"p"}],"heading":"Агенты","id":"агенты"},{"blocks":[{"runs":[{"t":"text","v":"То, что агент может вызвать: команды CLI "},{"t":"code","v":"tri"},{"t":"text","v":" и инструменты серверов MCP. "},{"t":"code","v":"specs/tools/tri/.t27"},{"t":"text","v":" читается из clap-перечисления "},{"t":"code","v":"Commands"},{"t":"text","v":" в "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":" (по карточке на вариант, с вложенными действиями и аргументами); "},{"t":"code","v":"specs/tools/mcp/.t27"},{"t":"text","v":" -- из исходников серверов, манифестов и записей "},{"t":"code","v":".mcp.json"},{"t":"text","v":" обоих репозиториев, с именами инструментов, описаниями и ключами входных схем. Свидетель на карточке tri -- "},{"t":"code","v":"source-parse"},{"t":"text","v":" (перечисление прочитано на записанном коммите), пока кто-нибудь не сравнит список с "},{"t":"code","v":"tri --help"},{"t":"text","v":" и не переименует его в "},{"t":"code","v":"help-output"},{"t":"text","v":". Серверы, чей код -- опубликованный пакет вне репозиториев, несут "},{"t":"code","v":"EXTERNAL = true"},{"t":"text","v":". Обозреватель инструментов: "},{"t":"code","v":"#/tools"},{"t":"text","v":"."}],"type":"p"}],"heading":"Инструменты","id":"инструменты"},{"blocks":[{"runs":[{"t":"text","v":"Один генератор, "},{"t":"code","v":"scripts/agents-from-specs.mjs"},{"t":"text","v":" в "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":", читает вендорные файлы "},{"t":"code","v":".t27"},{"t":"text","v":", компилирует каждый через wasm, читает константы скомпилированного модуля, сверяет их со схемой слоя, разрешает каждую перекрёстную ссылку (ID навыков в расписаниях и агентах, ID инструментов в агентах, буквы агентов в инструментах, пути спецификаций в навыках) и пишет по одному JSON на слой под "},{"t":"code","v":"public/"},{"t":"text","v":". Он выполняется в "},{"t":"code","v":"prebuild"},{"t":"text","v":", поэтому спецификация, которая не компилируется, или ссылка, которая не разрешается, останавливает сборку сайта. Ни один "},{"t":"code","v":".t27"},{"t":"text","v":" на этом пути не разбирается регулярным выражением."}],"type":"p"},{"runs":[{"t":"text","v":"Переводы следуют тому же правилу. "},{"t":"code","v":"specs/i18n/-.t27"},{"t":"text","v":" объявляет, какие поля каких спецификаций бандл может переводить и где бандл лежит; бандл ("},{"t":"code","v":"apps/website/i18n/*.json"},{"t":"text","v":") несёт текст; генератор проверяет, что каждая запись бандла называет существующую спецификацию, и сообщает покрытие. Спецификации остаются только английскими."}],"type":"p"}],"heading":"От спецификации к сайту","id":"от-спецификации-к-сайту"},{"blocks":[{"runs":[{"t":"text","v":"Агенты записывают, что произошло, под "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":" в каждом репозитории: эпизоды как JSON, заметки как Markdown. "},{"t":"code","v":"scripts/sync-agents-experience.mjs"},{"t":"text","v":" читает оба дерева на их текущем коммите и пишет "},{"t":"code","v":"public/agents/experience.json"},{"t":"text","v":" со счётчиками по репозиториям и, где эпизод называет букву агента, с атрибуцией. На коммите, на котором порождена документация, ни один эпизод не отнесён ни к одной букве -- поле, которое ищет синхронизация, отсутствует в каждом эпизоде, -- и карточки агентов говорят об этом. Снимок записывает коммит каждого дерева, а не путь чекаута."}],"type":"p"}],"heading":"Опыт","id":"опыт"}]}},"bodyPath":"docs/system/layers.md","bodySha256":"1c5e26427ae7992c2461e55e4bd2a9e6ee928c57a7330c08becf7afc3a164e9f","diagram":"skills-crons-agents","discarded":0,"enabled":true,"id":"docs/layers","links":{"body":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/system/layers.md","spec":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/chapters/layers.t27"},"moduleName":"docs_chapter_layers","order":3,"sections":[{"heading":{"en":"Specs","ru":"Спецификации"},"id":"specs"},{"heading":{"en":"Skills","ru":"Навыки"},"id":"skills"},{"heading":{"en":"Crons","ru":"Расписания"},"id":"crons"},{"heading":{"en":"Agents","ru":"Агенты"},"id":"agents"},{"heading":{"en":"Tools","ru":"Инструменты"},"id":"tools"},{"heading":{"en":"From spec to site","ru":"От спецификации к сайту"},"id":"from-spec-to-site"},{"heading":{"en":"Experience","ru":"Опыт"},"id":"experience"}],"sha256":"bd04ddfca63bd0aa7d44a891620563e6c6f17481a536dfcd864878312e939083","sources":[{"kind":"file","path":"specs/skills/README.md","rel":"specs/skills/README.md","repo":"t27","sha256":"ac23eb8d74832014efaf5e65f3da070d999549724e01242cb8784a93ad43d360","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/skills/README.md","where":"vendored"},{"kind":"file","path":"specs/crons/README.md","rel":"specs/crons/README.md","repo":"t27","sha256":"4c442342670a5e12ebb54792059f60f9fae56c4a62b277fb7803885cad1b350b","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/crons/README.md","where":"vendored"},{"kind":"file","path":"specs/agents/README.md","rel":"specs/agents/README.md","repo":"t27","sha256":"c40833dbc9f271cc92f1e9a848324446429fed52954b53f80c3670bc9da78996","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/agents/README.md","where":"vendored"},{"kind":"file","path":"specs/tools/README.md","rel":"specs/tools/README.md","repo":"t27","sha256":"37b5a451e43de9bc5746ceb80d4cf24f19ea6c3ad8751d2447049cba39c8a0ab","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/tools/README.md","where":"vendored"},{"kind":"file","path":"specs/i18n/agents-ru.t27","rel":"specs/i18n/agents-ru.t27","repo":"t27","sha256":"c8871fb4ccdef8fc3cc2937af5db0e307ab0b62f6a03ece9f4512851ffd64f04","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/i18n/agents-ru.t27","where":"vendored"}],"specPath":"specs/docs/chapters/layers.t27","stem":"layers","table":{"columns":["layer","dir","count","typecheckOk","source"],"kind":"ladder-counts","note":"","rows":[{"count":1414,"dir":"specs/**","layer":"Specs","source":"public/t27/manifest.json","typecheckOk":null},{"count":26,"dir":"specs/skills","layer":"Skills","source":"public/skills/spec-skills.json","typecheckOk":26},{"count":33,"dir":"specs/crons","layer":"Crons","source":"public/crons/spec-crons.json","typecheckOk":33},{"count":27,"dir":"specs/agents","layer":"Agents","source":"public/agents/spec-agents.json","typecheckOk":27},{"count":92,"dir":"specs/tools/{tri,mcp}","layer":"Tools","source":"public/tools/spec-tools.json","typecheckOk":92},{"count":28,"dir":"specs/functions","layer":"Functions","source":"public/functions/spec-functions.json","typecheckOk":28}],"source":"the five catalog JSON files and public/t27/manifest.json"},"title":{"en":"The five-layer system","ru":"Пятислойная система"},"typecheckOk":true},{"body":{"en":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"code","v":"docs/agents/AGENTS_ALPHABET.md"},{"t":"text","v":" (v3.0, 2026-04-07) is the canon: \"The Trinity system employs 27 named agents -- corresponding to the 27 registers in "},{"t":"code","v":"isa/registers.t27"},{"t":"text","v":" (Coptic / Trinity alphabet).\" Each agent is bound to a letter and a register, has a domain (physics, numeric, compiler, graph, experience, verdict, bench, DePIN, UI and so on), logs to "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":" and is linked to nodes in "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":"."}],"type":"p"},{"runs":[{"t":"text","v":"The alphabet is read in three layers of nine, which the document also calls nonas:"}],"type":"p"},{"items":[[{"t":"strong","v":"Archetypal, A-I (1-9)"},{"t":"text","v":" -- \"pure concept -- foundation: soul, base, types\". A is the architecture and "},{"t":"code","v":"SOUL.md"},{"t":"text","v":" as primary cause; C the compiler; E the experience; I the ISA."}],[{"t":"strong","v":"Spiritual, J-R (10-18)"},{"t":"text","v":" -- \"inner process -- life of the system: tasks, language, numbers, physics\". L is the language; M the metrics; N the numeric formats; P the physics constants; Q the queue."}],[{"t":"strong","v":"Physical, S-27th (19-27)"},{"t":"text","v":" -- \"manifestation -- proof: standards, verdict, deploy, gift\". S is the specs; T the Queen, who \"puts the final seal on everything\"; V the verdict; W the workflow and tri cell (\"double hash-seal\"); Z the zero-touch UX and docs; the 27th letter, Ti, is security."}]],"type":"ul"},{"runs":[{"t":"text","v":"The same three-by-nine layout organises the documentation tree of the repository ("},{"t":"code","v":"docs/nona-01-foundation/"},{"t":"text","v":", "},{"t":"code","v":"docs/nona-02-organism/"},{"t":"text","v":", "},{"t":"code","v":"docs/nona-03-manifest/"},{"t":"text","v":", Article DOCS-TREE of the constitution) and the ring on the site next to this chapter, where each letter sits at its ordinal and is coloured by its layer."}],"type":"p"}],"heading":"Twenty-seven letters, three nonas","id":"twenty-seven-letters-three-nonas"},{"blocks":[{"runs":[{"t":"text","v":"The table the site renders next to this chapter is generated from "},{"t":"code","v":"public/agents/spec-agents.json"},{"t":"text","v":", which is itself generated from the 27 files "},{"t":"code","v":"specs/agents/.t27"},{"t":"text","v":" through the compiler wasm -- it is not typed here. Per letter it shows the ordinal, the letter name, the domain, the archetype, the register, the layer, and the skills and tools the agent holds with their evidence. The FULL TABLE of the alphabet document (letter, domain, archetype, key files, entry invariant, exit invariant, CLARA role) is the source each spec was transcribed from; the spec's header names the row."}],"type":"p"},{"runs":[{"t":"text","v":"Two conventions of the table are worth stating. A letter's register comes from the schema section of the alphabet document (for example T is R19, V is R21, W is R22); the ordinal is the position in the alphabet, 1..27, so T is 20 and the 27th letter is 27. Where the alphabet document names two agents with the same Greek letter name (C and G are both written \"Gamma\"), the spec keeps the document's spelling and the ID stays unambiguous because it is the Latin letter, "},{"t":"code","v":"t27/C"},{"t":"text","v":" and "},{"t":"code","v":"t27/G"},{"t":"text","v":"."}],"type":"p"}],"heading":"The table","id":"the-table"},{"blocks":[{"runs":[{"t":"text","v":"Beyond the alphabet row, an agent card on the site carries what the other layers say about the letter:"}],"type":"p"},{"items":[[{"t":"strong","v":"Skills"},{"t":"text","v":" -- IDs from "},{"t":"code","v":"specs/skills"},{"t":"text","v":" the agent holds, bound only where a source names the skill. At the commit this documentation was generated from one letter holds skills: T, from "},{"t":"code","v":".claude/agents/trinity.md"},{"t":"text","v":", which names "},{"t":"code","v":"phi-loop"},{"t":"text","v":" and "},{"t":"code","v":"tri-pipeline"},{"t":"text","v":" in its Phase 2 and Phase 4. The other 26 carry an empty list and a note saying which sources were read."}],[{"t":"strong","v":"Tools"},{"t":"text","v":" -- IDs from "},{"t":"code","v":"specs/tools"},{"t":"text","v":" the agent holds, bound in both directions (the tool spec names the letter back). Five commands are bound today: "},{"t":"code","v":"tri gen"},{"t":"text","v":" (C, T), "},{"t":"code","v":"tri test"},{"t":"text","v":" (T, V), "},{"t":"code","v":"tri verdict"},{"t":"text","v":" (V), "},{"t":"code","v":"tri experience"},{"t":"text","v":" (E), "},{"t":"code","v":"tri cell"},{"t":"text","v":" (W); the sources are the phase descriptions of the alphabet document and the "},{"t":"code","v":".claude/agents/*.md"},{"t":"text","v":" files."}],[{"t":"strong","v":"Crons"},{"t":"text","v":" -- jobs whose "},{"t":"code","v":"RUNS"},{"t":"text","v":" names a skill the agent holds; empty while every "},{"t":"code","v":"RUNS"},{"t":"text","v":" is empty."}],[{"t":"strong","v":"Experience"},{"t":"text","v":" -- episodes attributed to the letter in "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":"; none is attributed today, and the card says so rather than showing a number it cannot source."}],[{"t":"strong","v":"Sources"},{"t":"text","v":" -- the three binding documents ("},{"t":"code","v":"SOUL.md"},{"t":"text","v":", "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":", the alphabet) at the pinned commit, and the spec file itself."}]],"type":"ul"}],"heading":"What a card carries","id":"what-a-card-carries"}],"title":"The 27-agent alphabet"},"ru":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"code","v":"docs/agents/AGENTS_ALPHABET.md"},{"t":"text","v":" (v3.0, 2026-04-07) -- канон: \"The Trinity system employs 27 named agents -- corresponding to the 27 registers in "},{"t":"code","v":"isa/registers.t27"},{"t":"text","v":" (Coptic / Trinity alphabet).\" Каждый агент привязан к букве и регистру, имеет область (физика, численные форматы, компилятор, граф, опыт, вердикт, бенчмарки, DePIN, UI и так далее), пишет в "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":" и связан с узлами "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":"."}],"type":"p"},{"runs":[{"t":"text","v":"Алфавит читается тремя слоями по девять, которые документ также называет нонами:"}],"type":"p"},{"items":[[{"t":"strong","v":"Архетипический, A-I (1-9)"},{"t":"text","v":" -- \"pure concept -- foundation: soul, base, types\". A -- архитектура и "},{"t":"code","v":"SOUL.md"},{"t":"text","v":" как первопричина; C -- компилятор; E -- опыт; I -- ISA."}],[{"t":"strong","v":"Духовный, J-R (10-18)"},{"t":"text","v":" -- \"inner process -- life of the system: tasks, language, numbers, physics\". L -- язык; M -- метрики; N -- численные форматы; P -- физические константы; Q -- очередь."}],[{"t":"strong","v":"Физический, S-27th (19-27)"},{"t":"text","v":" -- \"manifestation -- proof: standards, verdict, deploy, gift\". S -- спецификации; T -- Королева, которая \"puts the final seal on everything\"; V -- вердикт; W -- рабочий процесс и tri cell (\"double hash-seal\"); Z -- zero-touch UX и документация; 27-я буква, Ti, -- безопасность."}]],"type":"ul"},{"runs":[{"t":"text","v":"Та же раскладка три на девять организует дерево документации репозитория ("},{"t":"code","v":"docs/nona-01-foundation/"},{"t":"text","v":", "},{"t":"code","v":"docs/nona-02-organism/"},{"t":"text","v":", "},{"t":"code","v":"docs/nona-03-manifest/"},{"t":"text","v":", статья DOCS-TREE конституции) и кольцо на сайте рядом с этой главой, где каждая буква стоит на своём порядковом номере и окрашена по слою."}],"type":"p"}],"heading":"Двадцать семь букв, три ноны","id":"двадцать-семь-букв-три-ноны"},{"blocks":[{"runs":[{"t":"text","v":"Таблица, которую сайт выводит рядом с этой главой, порождается из "},{"t":"code","v":"public/agents/spec-agents.json"},{"t":"text","v":", который сам порождён из 27 файлов "},{"t":"code","v":"specs/agents/.t27"},{"t":"text","v":" через wasm компилятора, -- она не набрана здесь. По каждой букве показаны порядковый номер, имя буквы, область, архетип, регистр, слой и навыки и инструменты, которые агент держит, с их свидетельствами. FULL TABLE документа алфавита (буква, область, архетип, ключевые файлы, входной инвариант, выходной инвариант, роль CLARA) -- источник, из которого перенесена каждая спецификация; заголовок спецификации называет строку."}],"type":"p"},{"runs":[{"t":"text","v":"Две условности таблицы стоит назвать. Регистр буквы берётся из раздела схемы документа алфавита (например, T -- R19, V -- R21, W -- R22); порядковый номер -- позиция в алфавите, 1..27, так что T -- 20, а 27-я буква -- 27. Где документ алфавита называет двух агентов одним греческим именем (C и G оба записаны как \"Gamma\"), спецификация сохраняет написание документа, а ID остаётся однозначным, потому что это латинская буква: "},{"t":"code","v":"t27/C"},{"t":"text","v":" и "},{"t":"code","v":"t27/G"},{"t":"text","v":"."}],"type":"p"}],"heading":"Таблица","id":"таблица"},{"blocks":[{"runs":[{"t":"text","v":"Помимо строки алфавита, карточка агента на сайте несёт то, что говорят о букве другие слои:"}],"type":"p"},{"items":[[{"t":"strong","v":"Навыки"},{"t":"text","v":" -- ID из "},{"t":"code","v":"specs/skills"},{"t":"text","v":", которые агент держит, связанные только там, где источник называет навык. На коммите, на котором порождена документация, навыки держит одна буква: T, из "},{"t":"code","v":".claude/agents/trinity.md"},{"t":"text","v":", который называет "},{"t":"code","v":"phi-loop"},{"t":"text","v":" и "},{"t":"code","v":"tri-pipeline"},{"t":"text","v":" в своих фазах 2 и 4. Остальные 26 несут пустой список и примечание о том, какие источники были прочитаны."}],[{"t":"strong","v":"Инструменты"},{"t":"text","v":" -- ID из "},{"t":"code","v":"specs/tools"},{"t":"text","v":", которые агент держит, связанные в обе стороны (спецификация инструмента называет букву в ответ). Сегодня связаны пять команд: "},{"t":"code","v":"tri gen"},{"t":"text","v":" (C, T), "},{"t":"code","v":"tri test"},{"t":"text","v":" (T, V), "},{"t":"code","v":"tri verdict"},{"t":"text","v":" (V), "},{"t":"code","v":"tri experience"},{"t":"text","v":" (E), "},{"t":"code","v":"tri cell"},{"t":"text","v":" (W); источники -- описания фаз документа алфавита и файлы "},{"t":"code","v":".claude/agents/*.md"},{"t":"text","v":"."}],[{"t":"strong","v":"Расписания"},{"t":"text","v":" -- задания, чей "},{"t":"code","v":"RUNS"},{"t":"text","v":" называет навык, который агент держит; пусто, пока каждый "},{"t":"code","v":"RUNS"},{"t":"text","v":" пуст."}],[{"t":"strong","v":"Опыт"},{"t":"text","v":" -- эпизоды, отнесённые к букве в "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":"; сегодня не отнесён ни один, и карточка говорит об этом, а не показывает число без источника."}],[{"t":"strong","v":"Источники"},{"t":"text","v":" -- три связывающих документа ("},{"t":"code","v":"SOUL.md"},{"t":"text","v":", "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":", алфавит) на закреплённом коммите и сам файл спецификации."}]],"type":"ul"}],"heading":"Что несёт карточка","id":"что-несёт-карточка"}]}},"bodyPath":"docs/system/alphabet.md","bodySha256":"a057cf483f6fccd642ff41bc56a22c8f214204494a0a17918a4e2a4dc1329af6","diagram":"agent-ring","discarded":0,"enabled":true,"id":"docs/alphabet","links":{"body":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/system/alphabet.md","spec":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/chapters/alphabet.t27"},"moduleName":"docs_chapter_alphabet","order":4,"sections":[{"heading":{"en":"Twenty-seven letters, three nonas","ru":"Двадцать семь букв, три ноны"},"id":"twenty-seven-letters-three-nonas"},{"heading":{"en":"The table","ru":"Таблица"},"id":"the-table"},{"heading":{"en":"What a card carries","ru":"Что несёт карточка"},"id":"what-a-card-carries"}],"sha256":"d3be190095b4141b094dd75baaf76f725478eb18f8709f08fa600055ab3d782f","sources":[{"kind":"file","path":"docs/agents/AGENTS_ALPHABET.md","rel":"docs/agents/AGENTS_ALPHABET.md","repo":"t27","sha256":"c99352b305322031ee8af0c4777ae54c52ef50c694ff2aa0f4d95ab2fa82734a","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","where":"vendored"},{"kind":"file","path":"specs/agents/README.md","rel":"specs/agents/README.md","repo":"t27","sha256":"c40833dbc9f271cc92f1e9a848324446429fed52954b53f80c3670bc9da78996","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/agents/README.md","where":"vendored"}],"specPath":"specs/docs/chapters/alphabet.t27","stem":"alphabet","table":{"columns":["letter","ordinal","letterName","domain","archetype","register","layer","skills","tools"],"kind":"agents","note":"","rows":[{"archetype":"Bull - leader, primary force","domain":"Architecture / ADR / SOUL","enabled":true,"episodes":0,"layer":"Archetypal","letter":"A","letterName":"Alpha","name":"Alpha (Architecture)","ordinal":1,"register":"R0","skills":[],"tools":[]},{"archetype":"House - container, dwelling","domain":"Build / Pipeline","enabled":true,"episodes":0,"layer":"Archetypal","letter":"B","letterName":"Beta","name":"Beta (Build)","ordinal":2,"register":"R1","skills":[],"tools":[]},{"archetype":"Camel - carrier across borders","domain":"Compiler Core / AR Language","enabled":true,"episodes":0,"layer":"Archetypal","letter":"C","letterName":"Gamma","name":"Gamma (Compiler Core)","ordinal":3,"register":"R2","skills":[],"tools":["tri/gen"]},{"archetype":"Door - transition between worlds","domain":"De-Zigfication / Migration","enabled":true,"episodes":0,"layer":"Archetypal","letter":"D","letterName":"Delta","name":"Delta (De-Zigfication)","ordinal":4,"register":"R3","skills":[],"tools":[]},{"archetype":"Window - view into the past","domain":"Experience / XAI","enabled":true,"episodes":0,"layer":"Archetypal","letter":"E","letterName":"Epsilon","name":"Epsilon (Experience)","ordinal":5,"register":"R4","skills":[],"tools":["tri/experience"]},{"archetype":"Nail - connection, binding","domain":"Formal Conformance","enabled":true,"episodes":0,"layer":"Archetypal","letter":"F","letterName":"Phi","name":"Phi (Formal Conformance)","ordinal":6,"register":"R5","skills":[],"tools":[]},{"archetype":"Return - feedback","domain":"Graph / ArchBench","enabled":true,"episodes":0,"layer":"Archetypal","letter":"G","letterName":"Gamma (var.)","name":"Gamma (Graph)","ordinal":7,"register":"R6","skills":[],"tools":[]},{"archetype":"Fence - boundary, life","domain":"HSLM / NN Architectures","enabled":true,"episodes":0,"layer":"Archetypal","letter":"H","letterName":"Eta","name":"Eta (HSLM)","ordinal":8,"register":"R7","skills":[],"tools":[]},{"archetype":"Hand - action, point","domain":"ISA / Registers","enabled":true,"episodes":0,"layer":"Archetypal","letter":"I","letterName":"Iota","name":"Iota (ISA)","ordinal":9,"register":"R8","skills":[],"tools":[]},{"archetype":"Hand with grip - dispatcher","domain":"Jobs / Task Routing","enabled":true,"episodes":0,"layer":"Spiritual","letter":"J","letterName":"Iota-extended","name":"Iota-extended (Jobs)","ordinal":10,"register":"R9","skills":[],"tools":[]},{"archetype":"Palm - open hand","domain":"Kernel / FPGA MAC","enabled":true,"episodes":0,"layer":"Spiritual","letter":"K","letterName":"Kappa","name":"Kappa (Kernel)","ordinal":11,"register":"R10","skills":[],"tools":[]},{"archetype":"Staff - teacher, guide","domain":"Language / Syntax vNEXT","enabled":true,"episodes":0,"layer":"Spiritual","letter":"L","letterName":"Lambda","name":"Lambda (Language)","ordinal":12,"register":"R11","skills":[],"tools":[]},{"archetype":"Water - flow of data","domain":"Metrics / Telemetry","enabled":true,"episodes":0,"layer":"Spiritual","letter":"M","letterName":"Mu","name":"Mu (Metrics)","ordinal":13,"register":"R12","skills":[],"tools":[]},{"archetype":"Fish - offspring, multiplication","domain":"Numeric / GoldenFloat","enabled":true,"episodes":0,"layer":"Spiritual","letter":"N","letterName":"Nu","name":"Nu (Numeric)","ordinal":14,"register":"R13","skills":[],"tools":[]},{"archetype":"Eye - all-seeing oko","domain":"Orchestration / Phases","enabled":true,"episodes":0,"layer":"Spiritual","letter":"O","letterName":"Omicron","name":"Omicron (Orchestration)","ordinal":15,"register":"R14","skills":[],"tools":[]},{"archetype":"Mouth - speech of universe","domain":"Physics / SacredPhysics","enabled":true,"episodes":0,"layer":"Spiritual","letter":"P","letterName":"Pi","name":"Pi (Physics)","ordinal":16,"register":"R15","skills":[],"tools":[]},{"archetype":"Needle's eye - bottleneck","domain":"Queue / Scheduling","enabled":true,"episodes":0,"layer":"Spiritual","letter":"Q","letterName":"Theta","name":"Theta (Queue)","ordinal":17,"register":"R16","skills":[],"tools":[]},{"archetype":"Head - beginning of execution","domain":"Runtime / Bootstrap","enabled":true,"episodes":0,"layer":"Spiritual","letter":"R","letterName":"Rho","name":"Rho (Runtime)","ordinal":18,"register":"R17","skills":[],"tools":[]},{"archetype":"Teeth - sharpness, flame","domain":"Specs / Standardization / AR Specs","enabled":true,"episodes":0,"layer":"Physical","letter":"S","letterName":"Sigma","name":"Sigma (Specs)","ordinal":19,"register":"R18","skills":[],"tools":[]},{"archetype":"CROSS - seal, signature, truth","domain":"Queen / Lotus Orchestrator","enabled":true,"episodes":0,"layer":"Physical","letter":"T","letterName":"Tau","name":"Tau (TRINITY Queen)","ordinal":20,"register":"R19","skills":["t27/phi-loop","t27/tri-pipeline"],"tools":["tri/gen","tri/test","mcp/inngest-dev"]},{"archetype":"Fork - branching","domain":"Universe Levels / Domains","enabled":true,"episodes":0,"layer":"Physical","letter":"U","letterName":"Upsilon","name":"Upsilon (Universe)","ordinal":21,"register":"R20","skills":[],"tools":[]},{"archetype":"Hook - connection, conjunction","domain":"Verdict / Bench / AR Validation","enabled":true,"episodes":0,"layer":"Physical","letter":"V","letterName":"Vau (var.)","name":"Vau (Verdict)","ordinal":22,"register":"R21","skills":[],"tools":["tri/test","tri/verdict"]},{"archetype":"Double hook - double seal","domain":"Workflow / tri cell","enabled":true,"episodes":0,"layer":"Physical","letter":"W","letterName":"Double-Vav","name":"Double-Vav (Workflow)","ordinal":23,"register":"R22","skills":[],"tools":["tri/cell"]},{"archetype":"Intersection - point of exchange","domain":"External Bindings / Interop","enabled":true,"episodes":0,"layer":"Physical","letter":"X","letterName":"Chi","name":"Chi (External)","ordinal":24,"register":"R23","skills":[],"tools":[]},{"archetype":"Merging paths - evolutionary selection","domain":"Yield / DePIN / Fitness","enabled":true,"episodes":0,"layer":"Physical","letter":"Y","letterName":"Psi","name":"Psi (Yield/DePIN)","ordinal":25,"register":"R24","skills":[],"tools":[]},{"archetype":"Sword - cutting edge, point","domain":"Zero-Touch UX / Docs","enabled":true,"episodes":0,"layer":"Physical","letter":"Z","letterName":"Zeta","name":"Zeta (Zero-Touch)","ordinal":26,"register":"R25","skills":[],"tools":[]},{"archetype":"Egyptian cross - \"sacred gift\"","domain":"Security / Reserve","enabled":false,"episodes":0,"layer":"Physical","letter":"TI","letterName":"Ti","name":"Ti (Security)","ordinal":27,"register":"R26","skills":[],"tools":[]}],"source":"public/agents/spec-agents.json"},"title":{"en":"The 27-agent alphabet","ru":"Алфавит из 27 агентов"},"typecheckOk":true},{"body":{"en":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"text","v":"Agent T, the Queen, is the central orchestrator: \"reads "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":" and knows all module dependencies\", \"conducts 26 sub-agents (A..Z, except T) by their domains\", gathers results, validates architecture invariants and enforces that the source of truth is in "},{"t":"code","v":".t27"},{"t":"text","v":" / "},{"t":"code","v":".tri"},{"t":"text","v":" with Zig, Verilog and C only as backends ("},{"t":"code","v":"docs/agents/AGENTS_ALPHABET.md"},{"t":"text","v":", section \"AGENT T -- QUEEN TRINITY\", Responsibilities). Her module is "},{"t":"code","v":"specs/queen/lotus.t27"},{"t":"text","v":"."}],"type":"p"},{"runs":[{"t":"text","v":"The alphabet document draws the cycle she runs as six phases and a seventh added by the SOUL law on git. The site renders the cycle from that document; in short:"}],"type":"p"},{"items":[[{"t":"strong","v":"PLAN"},{"t":"text","v":" -- analyse the task and select a strategy; read "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":" for impact; decide which agents participate; check "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":" for similar tasks."}],[{"t":"strong","v":"ASSIGN"},{"t":"text","v":" -- distribute tasks to agents by domain (A architecture, N numeric, P physics, F conformance, ...); set dependencies; create a tri cell for each agent (W seals)."}],[{"t":"strong","v":"RUN"},{"t":"text","v":" -- parallel execution; heartbeats; agents report to "},{"t":"code","v":".trinity/agent_events.jsonl"},{"t":"text","v":"; T redistributes if necessary."}],[{"t":"strong","v":"TEST & BENCH"},{"t":"text","v":" -- F checks conformance vectors, V runs benchmarks, G measures impact changes; metrics are collected in M for V's verdict."}],[{"t":"strong","v":"VERDICT"},{"t":"text","v":" -- V analyses the metrics; "},{"t":"code","v":"tri verdict --toxic"},{"t":"text","v":" asks whether the change is toxic; E records the experience; if toxic, Q blocks the task."}],[{"t":"strong","v":"EVOLVE"},{"t":"text","v":" -- update "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":" if dependencies changed; update experience in E and M; S updates standards; W seals the tri-cell commit; Z updates documentation; T puts the final TAW seal."}],[{"t":"strong","v":"GIT WORKFLOW"},{"t":"text","v":" (\"new -- SOUL law\") -- commit with "},{"t":"code","v":"--all"},{"t":"text","v":" and the message "},{"t":"code","v":"cell:{id} issue:{N} ..."},{"t":"text","v":", then push "},{"t":"code","v":"HEAD"},{"t":"text","v":" to origin in strict mode; checks: sealed cell, non-toxic verdict, artifacts; the registry records the commit hash and the pushed flag. The alphabet writes both steps as a "},{"t":"code","v":"git"},{"t":"text","v":" subcommand of tri; the current clap surface does not expose one (witness: "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":" has no such variant), so they are quoted here as steps, not as commands to copy."}]],"type":"ol"},{"runs":[{"t":"text","v":"The document's SOUL law for TDD follows the seventh phase: any P0/P1 episode in "},{"t":"code","v":"--strict"},{"t":"text","v":" mode is considered COMPLETE only after a successful push to "},{"t":"code","v":"github.com/gHashTag/t27"},{"t":"text","v":" with bound sealed-cell and non-toxic verdict (the law names the push as a tri subcommand; see the note on the seventh phase above). Where an agent letter appears in a phase description, the tools chapter and the agent cards use that line as the source of a binding ("},{"t":"code","v":"tri cell"},{"t":"text","v":" to W, "},{"t":"code","v":"tri verdict"},{"t":"text","v":" to V)."}],"type":"p"}],"heading":"The six-phase cycle and Phase 7","id":"the-six-phase-cycle-and-phase-7"},{"blocks":[{"runs":[{"t":"text","v":"Three steps carry the cycle's state; two of them are tri commands with a spec under "},{"t":"code","v":"specs/tools/tri/"},{"t":"text","v":" read from the clap enum of "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":":"}],"type":"p"},{"items":[[{"t":"strong","v":"`tri cell`"},{"t":"text","v":" -- the unit of work of one agent: created in ASSIGN, sealed by W with a hash in EVOLVE. Nested actions are listed on the tool card ("},{"t":"code","v":"specs/tools/tri/cell.t27"},{"t":"text","v":")."}],[{"t":"strong","v":"`tri verdict`"},{"t":"text","v":" -- V's decision over the metrics; "},{"t":"code","v":"--toxic"},{"t":"text","v":" is the question the cycle asks in VERDICT ("},{"t":"code","v":"specs/tools/tri/verdict.t27"},{"t":"text","v":")."}],[{"t":"strong","v":"the git step"},{"t":"text","v":" -- the seventh phase as the alphabet document writes it, as a "},{"t":"code","v":"git"},{"t":"text","v":" subcommand of tri. At the commit this documentation was generated from the clap enum of "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":" has no such variant, so the tool catalog has no card for it; the phase is documented from the alphabet and marked "},{"t":"code","v":"[declared]"},{"t":"text","v":", and the gap is recorded here rather than filled with a card."}]],"type":"ul"},{"runs":[{"t":"text","v":"The seal itself is a hash. At the compiler level the same idea is the seal of the bootstrap compiler ("},{"t":"code","v":"bootstrap/stage0/FROZEN_HASH"},{"t":"text","v":", "},{"t":"code","v":"CANON.md"},{"t":"text","v":" section 0) and the ring canon: a ring freezes when its hash is recorded, and drift between the recorded seal and the working tree is a fact the dashboard shows."}],"type":"p"}],"heading":"Cell, seal, verdict","id":"cell-seal-verdict"},{"blocks":[{"runs":[{"t":"text","v":"The repository states the Queen's loop twice, and the two statements differ. The alphabet document gives the seven phases above (PLAN, ASSIGN, RUN, TEST & BENCH, VERDICT, EVOLVE, GIT WORKFLOW). "},{"t":"code","v":"CLAUDE.md"},{"t":"text","v":", \"Autonomous Execution Loop (AEL v2.0)\", gives a six-phase loop for an agent operating as the Queen -- OBSERVE (E), PLAN (T), DELEGATE (C/V), VERIFY (V), SYNTHESIZE (L), LEARN (L) -- and, separately, the nine-phase PHI LOOP for ring-based development (Issue, Spec, TDD, Code, Gen, Seal, Verify, Land, Learn)."}],"type":"p"},{"runs":[{"t":"text","v":"This documentation renders the alphabet's cycle, because it is the one that names the tri commands and the agent letters per phase, and records the AEL loop as the second statement without reconciling them. Which one binds an autonomous agent in a given situation is a question for "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":" and its owners, not for a generated page."}],"type":"p"}],"heading":"Two statements of the loop","id":"two-statements-of-the-loop"}],"title":"Queen orchestration"},"ru":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"text","v":"Агент T, Королева, -- центральный оркестратор: \"reads "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":" and knows all module dependencies\", \"conducts 26 sub-agents (A..Z, except T) by their domains\", собирает результаты, проверяет архитектурные инварианты и следит за тем, чтобы источник истины был в "},{"t":"code","v":".t27"},{"t":"text","v":" / "},{"t":"code","v":".tri"},{"t":"text","v":", а Zig, Verilog и C оставались только бэкендами ("},{"t":"code","v":"docs/agents/AGENTS_ALPHABET.md"},{"t":"text","v":", раздел \"AGENT T -- QUEEN TRINITY\", Responsibilities). Её модуль -- "},{"t":"code","v":"specs/queen/lotus.t27"},{"t":"text","v":"."}],"type":"p"},{"runs":[{"t":"text","v":"Документ алфавита рисует её цикл шестью фазами и седьмой, добавленной законом SOUL о git. Сайт выводит цикл из этого документа; кратко:"}],"type":"p"},{"items":[[{"t":"strong","v":"PLAN"},{"t":"text","v":" -- разобрать задачу и выбрать стратегию; прочитать "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":" для анализа влияния; решить, какие агенты участвуют; проверить "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":" на похожие задачи."}],[{"t":"strong","v":"ASSIGN"},{"t":"text","v":" -- распределить задачи агентам по областям (A архитектура, N численные форматы, P физика, F конформность, ...); задать зависимости; создать tri cell для каждого агента (W печатает)."}],[{"t":"strong","v":"RUN"},{"t":"text","v":" -- параллельное выполнение; heartbeats; агенты отчитываются в "},{"t":"code","v":".trinity/agent_events.jsonl"},{"t":"text","v":"; T перераспределяет при необходимости."}],[{"t":"strong","v":"TEST & BENCH"},{"t":"text","v":" -- F проверяет векторы конформности, V гоняет бенчмарки, G измеряет изменения влияния; метрики собираются в M для вердикта V."}],[{"t":"strong","v":"VERDICT"},{"t":"text","v":" -- V анализирует метрики; "},{"t":"code","v":"tri verdict --toxic"},{"t":"text","v":" спрашивает, токсично ли изменение; E записывает опыт; если токсично, Q блокирует задачу."}],[{"t":"strong","v":"EVOLVE"},{"t":"text","v":" -- обновить "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":", если изменились зависимости; обновить опыт в E и M; S обновляет стандарты; W печатает коммит tri-cell; Z обновляет документацию; T ставит финальную печать TAW."}],[{"t":"strong","v":"GIT WORKFLOW"},{"t":"text","v":" (\"new -- SOUL law\") -- коммит с "},{"t":"code","v":"--all"},{"t":"text","v":" и сообщением "},{"t":"code","v":"cell:{id} issue:{N} ..."},{"t":"text","v":", затем push "},{"t":"code","v":"HEAD"},{"t":"text","v":" в origin в строгом режиме; проверки: запечатанная ячейка, нетоксичный вердикт, артефакты; реестр записывает хэш коммита и флаг pushed. Документ алфавита записывает оба шага как подкоманду "},{"t":"code","v":"git"},{"t":"text","v":" утилиты tri; текущая clap-поверхность её не предоставляет (свидетель: в "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":" нет такого варианта), поэтому здесь они приведены как шаги, а не как команды для копирования."}]],"type":"ol"},{"runs":[{"t":"text","v":"Закон SOUL о TDD в документе следует за седьмой фазой: любой эпизод P0/P1 в режиме "},{"t":"code","v":"--strict"},{"t":"text","v":" считается COMPLETE только после успешного push в "},{"t":"code","v":"github.com/gHashTag/t27"},{"t":"text","v":" с привязанной запечатанной ячейкой и нетоксичным вердиктом (закон называет push подкомандой tri; см. примечание к седьмой фазе выше). Где буква агента появляется в описании фазы, глава об инструментах и карточки агентов используют эту строку как источник связи ("},{"t":"code","v":"tri cell"},{"t":"text","v":" -- W, "},{"t":"code","v":"tri verdict"},{"t":"text","v":" -- V)."}],"type":"p"}],"heading":"Шестифазный цикл и фаза 7","id":"шестифазный-цикл-и-фаза-7"},{"blocks":[{"runs":[{"t":"text","v":"Состояние цикла несут три шага; два из них -- команды tri со спецификацией под "},{"t":"code","v":"specs/tools/tri/"},{"t":"text","v":", прочитанной из clap-перечисления "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":":"}],"type":"p"},{"items":[[{"t":"strong","v":"`tri cell`"},{"t":"text","v":" -- единица работы одного агента: создаётся в ASSIGN, запечатывается W хэшем в EVOLVE. Вложенные действия перечислены на карточке инструмента ("},{"t":"code","v":"specs/tools/tri/cell.t27"},{"t":"text","v":")."}],[{"t":"strong","v":"`tri verdict`"},{"t":"text","v":" -- решение V по метрикам; "},{"t":"code","v":"--toxic"},{"t":"text","v":" -- вопрос, который цикл задаёт в VERDICT ("},{"t":"code","v":"specs/tools/tri/verdict.t27"},{"t":"text","v":")."}],[{"t":"strong","v":"шаг git"},{"t":"text","v":" -- седьмая фаза в записи документа алфавита, как подкоманда "},{"t":"code","v":"git"},{"t":"text","v":" утилиты tri. На коммите, на котором порождена документация, в clap-перечислении "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":" нет такого варианта, поэтому в каталоге инструментов нет карточки для него; фаза документирована по алфавиту с пометкой "},{"t":"code","v":"[declared]"},{"t":"text","v":", а пробел записан здесь, а не закрыт выдуманной карточкой."}]],"type":"ul"},{"runs":[{"t":"text","v":"Сама печать -- это хэш. На уровне компилятора та же идея -- печать бутстрап-компилятора ("},{"t":"code","v":"bootstrap/stage0/FROZEN_HASH"},{"t":"text","v":", "},{"t":"code","v":"CANON.md"},{"t":"text","v":", раздел 0) и канон колец: кольцо замораживается, когда записан его хэш, а расхождение между записанной печатью и рабочим деревом -- факт, который показывает панель."}],"type":"p"}],"heading":"Ячейка, печать, вердикт","id":"ячейка-печать-вердикт"},{"blocks":[{"runs":[{"t":"text","v":"Репозиторий формулирует цикл Королевы дважды, и формулировки различаются. Документ алфавита даёт семь фаз выше (PLAN, ASSIGN, RUN, TEST & BENCH, VERDICT, EVOLVE, GIT WORKFLOW). "},{"t":"code","v":"CLAUDE.md"},{"t":"text","v":", \"Autonomous Execution Loop (AEL v2.0)\", даёт шестифазный цикл агента, действующего как Королева, -- OBSERVE (E), PLAN (T), DELEGATE (C/V), VERIFY (V), SYNTHESIZE (L), LEARN (L) -- и отдельно девятифазный PHI LOOP для разработки по кольцам (Issue, Spec, TDD, Code, Gen, Seal, Verify, Land, Learn)."}],"type":"p"},{"runs":[{"t":"text","v":"Эта документация отображает цикл алфавита, потому что именно он называет команды tri и буквы агентов по фазам, и фиксирует цикл AEL как вторую формулировку, не сводя их воедино. Какая из них связывает автономного агента в конкретной ситуации -- вопрос к "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":" и его владельцам, а не к порождённой странице."}],"type":"p"}],"heading":"Две формулировки цикла","id":"две-формулировки-цикла"}]}},"bodyPath":"docs/system/queen.md","bodySha256":"0008d41fdffdd063af243376fbf83c31ffe8ff9995c6d666e94751330d67c97d","diagram":"phase-cycle","discarded":0,"enabled":true,"id":"docs/queen","links":{"body":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/system/queen.md","spec":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/chapters/queen.t27"},"moduleName":"docs_chapter_queen","order":5,"sections":[{"heading":{"en":"The six-phase cycle and Phase 7","ru":"Шестифазный цикл и фаза 7"},"id":"the-six-phase-cycle-and-phase-7"},{"heading":{"en":"Cell, seal, verdict","ru":"Ячейка, печать, вердикт"},"id":"cell-seal-verdict"},{"heading":{"en":"Two statements of the loop","ru":"Две формулировки цикла"},"id":"two-statements-of-the-loop"}],"sha256":"70d2234eebb2fa85930ed2b25c43866083a67c5190480e9bda198faf98adcef1","sources":[{"kind":"file","path":"docs/agents/AGENTS_ALPHABET.md","rel":"docs/agents/AGENTS_ALPHABET.md","repo":"t27","sha256":"c99352b305322031ee8af0c4777ae54c52ef50c694ff2aa0f4d95ab2fa82734a","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","where":"vendored"},{"kind":"file","path":"CLAUDE.md","rel":"CLAUDE.md","repo":"t27","sha256":"43a5d51f12e25f9aa23aacc837005fe9d8a7bb5637e4857b0b31abab88730d05","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/CLAUDE.md","where":"vendored"},{"kind":"file","path":"specs/agents/t.t27","rel":"specs/agents/t.t27","repo":"t27","sha256":"25c30ec4e1f38b575e3bb24cdd09bb770ce5e2a1220eac46f4da857916540f66","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/agents/t.t27","where":"vendored"},{"kind":"file","path":"specs/tools/tri/cell.t27","rel":"specs/tools/tri/cell.t27","repo":"t27","sha256":"36ed34dfc7beb24c2fdd5b7dc5f7fe3375b42f357ffde7befd19f7cfbc22cdca","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/tools/tri/cell.t27","where":"vendored"},{"kind":"file","path":"specs/tools/tri/verdict.t27","rel":"specs/tools/tri/verdict.t27","repo":"t27","sha256":"8afa0e665be25d336bdca685cd2369546a767678133bc86c9994d7c94da6a5c7","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/tools/tri/verdict.t27","where":"vendored"}],"specPath":"specs/docs/chapters/queen.t27","stem":"queen","table":{"columns":["n","name","steps"],"kind":"phases","note":"","rows":[{"n":1,"name":"PLAN","note":"","steps":["Analyze task and select strategy","Read graph_v2.json for impact analysis","Determine which agents participate","Check experience: are there similar tasks in .trinity/experience/"]},{"n":2,"name":"ASSIGN","note":"","steps":["Distribute tasks to agents by domain","A (arch), N (numeric), P (physics), F (conformance), etc.","Set dependencies: G+F+V → V checks F checks G","Create tri-cell for each agent (W seals)"]},{"n":3,"name":"RUN","note":"","steps":["Parallel task execution by agents","Monitoring via heartbeats","Agents report status to `.trinity/agent_events.jsonl`","T coordinates, redistributing if necessary"]},{"n":4,"name":"TEST & BENCH","note":"","steps":["F checks conformance JSON vectors","V runs benchmarks (ARCH_BENCH-001)","G measures impact changes","Collect metrics in M for verdict by V"]},{"n":5,"name":"VERDICT","note":"","steps":["V analyzes metrics and makes decision","`tri verdict --toxic` — is the change toxic?","E records experience (if error) or success","If toxic → Q blocks task, E marks 3rd attempt"]},{"n":6,"name":"EVOLVE","note":"","steps":["Update graph_v2.json (if dependencies changed)","Update experience in E + M","S updates standards (if needed)","W seals tri-cell commit (hash seal)","Z updates documentation","T puts final TAW seal on completed work"]},{"n":7,"name":"GIT WORKFLOW","note":"new — SOUL law","steps":["`tri git commit --all -m \"cell:{id} issue:{N} ...\"`","`tri git push origin HEAD` (strict mode: only t27 repo)","Check: sealed cell + non-toxic verdict + artifacts","Update registry.json with commit hash and pushed flag"]}],"source":"docs/agents/AGENTS_ALPHABET.md, \"6-Phase Cycle of AGENT T\""},"title":{"en":"Queen orchestration","ru":"Оркестрация Королевы"},"typecheckOk":true},{"body":{"en":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"code","v":"tri"},{"t":"text","v":" is the command of the toolchain: "},{"t":"code","v":"./scripts/tri"},{"t":"text","v":" is an exec-only shim (SOUL Article VIII, section 8.2) that resolves the Rust binary "},{"t":"code","v":"t27c"},{"t":"text","v":", passes "},{"t":"code","v":"--repo-root"},{"t":"text","v":" and executes it. The catalog in "},{"t":"code","v":"specs/tools/tri/"},{"t":"text","v":" holds one spec per variant of the clap "},{"t":"code","v":"Commands"},{"t":"text","v":" enum in "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":": the command word, the enum variant, the source file and the entry point, the doc comment as "},{"t":"code","v":"ABOUT"},{"t":"text","v":" with "},{"t":"code","v":"ABOUT_SOURCE"},{"t":"text","v":" naming where the text came from, the nested actions with their own doc comments, the arguments, the agent letters that own the command with the evidence line, when to use it, and the witness."}],"type":"p"},{"runs":[{"t":"text","v":"The table the site renders next to this chapter is generated from "},{"t":"code","v":"public/tools/spec-tools.json"},{"t":"text","v":" -- command, actions, owners, witness -- and the counts in its header are read from the same file. The witness on every tri card at the commit this documentation was generated from is "},{"t":"code","v":"source-parse"},{"t":"text","v":": the enum and its "},{"t":"code","v":"///"},{"t":"text","v":" comments were read from the source at a recorded commit, and "},{"t":"code","v":"cargo"},{"t":"text","v":" was not run. A card is relabelled "},{"t":"code","v":"help-output"},{"t":"text","v":" only when someone diffs the list against "},{"t":"code","v":"tri --help"},{"t":"text","v":" and records the result; until then the label says what was and was not done."}],"type":"p"},{"runs":[{"t":"text","v":"Commands whose variant has no doc comment quote the source they borrow their description from (for example "},{"t":"code","v":"tri cell"},{"t":"text","v":" quotes the "},{"t":"code","v":"tri-mcp"},{"t":"text","v":" tool descriptions), so that no "},{"t":"code","v":"ABOUT"},{"t":"text","v":" is invented."}],"type":"p"}],"heading":"The tri CLI","id":"the-tri-cli"},{"blocks":[{"runs":[{"t":"text","v":"The second family is the Model Context Protocol servers the two repositories ship or register: for "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" the "},{"t":"code","v":"tri-mcp"},{"t":"text","v":" crate, the "},{"t":"code","v":"tri-ssot"},{"t":"text","v":" manifest, "},{"t":"code","v":"t27-traceability"},{"t":"text","v":" and the entries of "},{"t":"code","v":".mcp.json"},{"t":"text","v":"; for "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" the "},{"t":"code","v":"trinity"},{"t":"text","v":" and "},{"t":"code","v":"needle"},{"t":"text","v":" Zig servers and its "},{"t":"code","v":".mcp.json"},{"t":"text","v":" entries. "},{"t":"code","v":"specs/tools/mcp/.t27"},{"t":"text","v":" carries the launch line, transport, version, environment variables, config path, repository, source, the tool names with descriptions and input-schema keys, resources, and the witness."}],"type":"p"},{"runs":[{"t":"text","v":"Servers whose code is a published package outside the repositories carry "},{"t":"code","v":"EXTERNAL = true"},{"t":"text","v":" and a "},{"t":"code","v":"TOOLS_NOTE"},{"t":"text","v":" saying the tool list is not in either tree; nothing is invented for them. Two facts are recorded rather than fixed: "},{"t":"code","v":"tri-mcp"},{"t":"text","v":" is not registered in "},{"t":"code","v":".mcp.json"},{"t":"text","v":" at the pinned commit ("},{"t":"code","v":"CONFIG"},{"t":"text","v":" is empty), and the "},{"t":"code","v":"tri-ssot"},{"t":"text","v":" manifest names a module the tree does not contain."}],"type":"p"},{"runs":[{"t":"text","v":"Two repositories are two lists. "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" does have a command-line binary of its own (an earlier version of this chapter said it had none; that was wrong): since S06 of gHashTag/trinity#988 its commands are cards under "},{"t":"code","v":"specs/tools/trinity/tri/"},{"t":"text","v":", read from the one registry that binary exports and its CI holds to the binary ("},{"t":"code","v":".trinity/registry.json"},{"t":"text","v":", 29 commands of a 187-entry table), with repository-qualified IDs ("},{"t":"code","v":"gHashTag/trinity:tri/"},{"t":"text","v":") so that a same-named command of the two binaries is never confused. "},{"t":"code","v":"specs/tools/catalog.t27"},{"t":"text","v":" states the schema, the identity rules and the legacy resolution; "},{"t":"code","v":"specs/tools/mcp_protocol.t27"},{"t":"text","v":" states what the Trinity MCP server does with a request; "},{"t":"code","v":"tools/trinity_tools_registry.py"},{"t":"text","v":" holds both and the cards to a measured inventory of the consumer."}],"type":"p"}],"heading":"MCP servers","id":"mcp-servers"},{"blocks":[{"runs":[{"t":"text","v":"A tool names the agent letters that own it ("},{"t":"code","v":"AGENTS"},{"t":"text","v":") only where a source line does, and "},{"t":"code","v":"AGENTS_NOTE"},{"t":"text","v":" cites that line or names the sources that were checked and found silent. The agent spec names the tool back ("},{"t":"code","v":"TOOLS"},{"t":"text","v":"), and the site's generator fails the build on a binding stated on one side only. Today five commands are bound -- "},{"t":"code","v":"tri gen"},{"t":"text","v":" (C, T), "},{"t":"code","v":"tri test"},{"t":"text","v":" (T, V), "},{"t":"code","v":"tri verdict"},{"t":"text","v":" (V), "},{"t":"code","v":"tri experience"},{"t":"text","v":" (E), "},{"t":"code","v":"tri cell"},{"t":"text","v":" (W) -- from the phase descriptions of "},{"t":"code","v":"docs/agents/AGENTS_ALPHABET.md"},{"t":"text","v":" and the "},{"t":"code","v":".claude/agents/*.md"},{"t":"text","v":" files; the other commands and every MCP server carry an empty "},{"t":"code","v":"AGENTS"},{"t":"text","v":" with a note. Skills are cross-linked when a skill spec's own "},{"t":"code","v":"COMMAND"},{"t":"text","v":" or "},{"t":"code","v":"SUMMARY_EN"},{"t":"text","v":" names a tri command."}],"type":"p"},{"runs":[{"t":"text","v":"The map the site draws next to this chapter groups the tri commands by owning letter (with a group for the unowned) and the MCP servers by repository, with the external ones marked. It is drawn from the generated JSON, so a new binding in a spec moves a command on the map without anyone editing the figure."}],"type":"p"}],"heading":"Who owns a tool","id":"who-owns-a-tool"}],"title":"Tooling"},"ru":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"code","v":"tri"},{"t":"text","v":" -- команда инструментальной цепочки: "},{"t":"code","v":"./scripts/tri"},{"t":"text","v":" -- шим (только exec, статья VIII SOUL, раздел 8.2), который находит бинарник Rust "},{"t":"code","v":"t27c"},{"t":"text","v":", передаёт "},{"t":"code","v":"--repo-root"},{"t":"text","v":" и исполняет его. Каталог в "},{"t":"code","v":"specs/tools/tri/"},{"t":"text","v":" содержит по спецификации на вариант clap-перечисления "},{"t":"code","v":"Commands"},{"t":"text","v":" в "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":": слово команды, вариант перечисления, файл исходника и точку входа, doc-комментарий как "},{"t":"code","v":"ABOUT"},{"t":"text","v":" с "},{"t":"code","v":"ABOUT_SOURCE"},{"t":"text","v":", называющим, откуда взят текст, вложенные действия с их doc-комментариями, аргументы, буквы агентов, владеющих командой, со строкой-свидетельством, случаи применения и свидетеля."}],"type":"p"},{"runs":[{"t":"text","v":"Таблица, которую сайт выводит рядом с этой главой, порождается из "},{"t":"code","v":"public/tools/spec-tools.json"},{"t":"text","v":" -- команда, действия, владельцы, свидетель, -- и счётчики в её заголовке читаются из того же файла. Свидетель на каждой карточке tri на коммите, на котором порождена документация, -- "},{"t":"code","v":"source-parse"},{"t":"text","v":": перечисление и его комментарии "},{"t":"code","v":"///"},{"t":"text","v":" прочитаны из исходника на записанном коммите, а "},{"t":"code","v":"cargo"},{"t":"text","v":" не запускался. Карточка переименовывается в "},{"t":"code","v":"help-output"},{"t":"text","v":" только когда кто-нибудь сравнит список с "},{"t":"code","v":"tri --help"},{"t":"text","v":" и запишет результат; до тех пор метка говорит, что было и чего не было сделано."}],"type":"p"},{"runs":[{"t":"text","v":"Команды, чей вариант не имеет doc-комментария, цитируют источник, у которого заимствуют описание (например, "},{"t":"code","v":"tri cell"},{"t":"text","v":" цитирует описания инструментов "},{"t":"code","v":"tri-mcp"},{"t":"text","v":"), чтобы ни один "},{"t":"code","v":"ABOUT"},{"t":"text","v":" не был выдуман."}],"type":"p"}],"heading":"CLI tri","id":"cli-tri"},{"blocks":[{"runs":[{"t":"text","v":"Второе семейство -- серверы Model Context Protocol, которые два репозитория поставляют или регистрируют: для "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" крейт "},{"t":"code","v":"tri-mcp"},{"t":"text","v":", манифест "},{"t":"code","v":"tri-ssot"},{"t":"text","v":", "},{"t":"code","v":"t27-traceability"},{"t":"text","v":" и записи "},{"t":"code","v":".mcp.json"},{"t":"text","v":"; для "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" Zig-серверы "},{"t":"code","v":"trinity"},{"t":"text","v":" и "},{"t":"code","v":"needle"},{"t":"text","v":" и его записи "},{"t":"code","v":".mcp.json"},{"t":"text","v":". "},{"t":"code","v":"specs/tools/mcp/.t27"},{"t":"text","v":" несёт строку запуска, транспорт, версию, переменные окружения, путь конфигурации, репозиторий, исходник, имена инструментов с описаниями и ключами входных схем, ресурсы и свидетеля."}],"type":"p"},{"runs":[{"t":"text","v":"Серверы, чей код -- опубликованный пакет вне репозиториев, несут "},{"t":"code","v":"EXTERNAL = true"},{"t":"text","v":" и "},{"t":"code","v":"TOOLS_NOTE"},{"t":"text","v":" о том, что списка инструментов нет ни в одном дереве; для них ничего не выдумывается. Два факта записаны, а не исправлены: "},{"t":"code","v":"tri-mcp"},{"t":"text","v":" не зарегистрирован в "},{"t":"code","v":".mcp.json"},{"t":"text","v":" на закреплённом коммите ("},{"t":"code","v":"CONFIG"},{"t":"text","v":" пуст), а манифест "},{"t":"code","v":"tri-ssot"},{"t":"text","v":" называет модуль, которого нет в дереве."}],"type":"p"},{"runs":[{"t":"text","v":"Два репозитория -- два списка. У "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" нет бинарника "},{"t":"code","v":"tri"},{"t":"text","v":" на закреплённом коммите ("},{"t":"code","v":"build.zig"},{"t":"text","v":" его не определяет; его "},{"t":"code","v":".claude/skills/tri/SKILL.md"},{"t":"text","v":" -- навык и находится в каталоге навыков), поэтому его инструменты -- только его серверы MCP, под "},{"t":"code","v":"REPO = \"gHashTag/trinity\""},{"t":"text","v":"."}],"type":"p"}],"heading":"Серверы MCP","id":"серверы-mcp"},{"blocks":[{"runs":[{"t":"text","v":"Инструмент называет буквы агентов, владеющих им ("},{"t":"code","v":"AGENTS"},{"t":"text","v":"), только там, где это делает строка источника, а "},{"t":"code","v":"AGENTS_NOTE"},{"t":"text","v":" цитирует эту строку или называет источники, которые были проверены и оказались молчащими. Спецификация агента называет инструмент в ответ ("},{"t":"code","v":"TOOLS"},{"t":"text","v":"), и генератор сайта роняет сборку на связи, заявленной лишь с одной стороны. Сегодня связаны пять команд -- "},{"t":"code","v":"tri gen"},{"t":"text","v":" (C, T), "},{"t":"code","v":"tri test"},{"t":"text","v":" (T, V), "},{"t":"code","v":"tri verdict"},{"t":"text","v":" (V), "},{"t":"code","v":"tri experience"},{"t":"text","v":" (E), "},{"t":"code","v":"tri cell"},{"t":"text","v":" (W) -- по описаниям фаз "},{"t":"code","v":"docs/agents/AGENTS_ALPHABET.md"},{"t":"text","v":" и файлам "},{"t":"code","v":".claude/agents/*.md"},{"t":"text","v":"; остальные команды и каждый сервер MCP несут пустой "},{"t":"code","v":"AGENTS"},{"t":"text","v":" с примечанием. Навыки связываются перекрёстно, когда собственный "},{"t":"code","v":"COMMAND"},{"t":"text","v":" или "},{"t":"code","v":"SUMMARY_EN"},{"t":"text","v":" спецификации навыка называет команду tri."}],"type":"p"},{"runs":[{"t":"text","v":"Карта, которую сайт рисует рядом с этой главой, группирует команды tri по владеющей букве (с группой для невладеемых) и серверы MCP по репозиторию, с пометкой внешних. Она рисуется из порождённого JSON, поэтому новая связь в спецификации перемещает команду на карте без чьей-либо правки фигуры."}],"type":"p"}],"heading":"Кто владеет инструментом","id":"кто-владеет-инструментом"}]}},"bodyPath":"docs/system/tooling.md","bodySha256":"9c8d5ec87acb0205da7d1011722031807a4b713b37130004c5478f70f8151652","diagram":"tools-map","discarded":0,"enabled":true,"id":"docs/tooling","links":{"body":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/system/tooling.md","spec":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/chapters/tooling.t27"},"moduleName":"docs_chapter_tooling","order":6,"sections":[{"heading":{"en":"The tri CLI","ru":"CLI tri"},"id":"the-tri-cli"},{"heading":{"en":"MCP servers","ru":"Серверы MCP"},"id":"mcp-servers"},{"heading":{"en":"Who owns a tool","ru":"Кто владеет инструментом"},"id":"who-owns-a-tool"}],"sha256":"dd4d3fb85955d4bb7423cf637941c02736855369320dd840082a8aed792302eb","sources":[{"kind":"file","path":"specs/tools/README.md","rel":"specs/tools/README.md","repo":"t27","sha256":"37b5a451e43de9bc5746ceb80d4cf24f19ea6c3ad8751d2447049cba39c8a0ab","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/tools/README.md","where":"vendored"},{"kind":"file","path":"specs/tools/tri/cell.t27","rel":"specs/tools/tri/cell.t27","repo":"t27","sha256":"36ed34dfc7beb24c2fdd5b7dc5f7fe3375b42f357ffde7befd19f7cfbc22cdca","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/tools/tri/cell.t27","where":"vendored"},{"kind":"file","path":"specs/agents/README.md","rel":"specs/agents/README.md","repo":"t27","sha256":"c40833dbc9f271cc92f1e9a848324446429fed52954b53f80c3670bc9da78996","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/agents/README.md","where":"vendored"},{"kind":"file","path":"SOUL.md","rel":"SOUL.md","repo":"t27","sha256":"cb9b44e13d6d0b314f9626f9cca438e5f17ed6847b194220f9e80b32209e052e","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md","where":"vendored"}],"specPath":"specs/docs/chapters/tooling.t27","stem":"tooling","table":{"columns":["id","family","name","repo","items","agents","witness","external"],"kind":"tools","note":"","rows":[{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/bench","items":0,"name":"tri bench","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/bio","items":0,"name":"tri bio","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/blindspots","items":0,"name":"tri blindspots","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/conscious","items":0,"name":"tri conscious","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/constants","items":0,"name":"tri constants","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/cosmos","items":0,"name":"tri cosmos","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/dashboard","items":0,"name":"tri dashboard","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/fib","items":0,"name":"tri fib","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/fpga","items":0,"name":"tri fpga","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/gematria","items":0,"name":"tri gematria","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/govern","items":0,"name":"tri govern","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/hardware","items":0,"name":"tri hardware","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/identity","items":0,"name":"tri identity","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/lucas","items":0,"name":"tri lucas","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/mesh","items":0,"name":"tri mesh","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/needle","items":0,"name":"tri needle","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/needle-check","items":0,"name":"tri needle-check","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/needle-search","items":0,"name":"tri needle-search","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/omega","items":0,"name":"tri omega","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/particles","items":0,"name":"tri particles","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/phi","items":0,"name":"tri phi","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/quantum","items":0,"name":"tri quantum","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/reputation","items":0,"name":"tri reputation","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/sacred-const","items":0,"name":"tri sacred-const","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/spiral","items":0,"name":"tri spiral","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/swarm","items":0,"name":"tri swarm","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/test","items":0,"name":"tri test","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/vsa","items":0,"name":"tri vsa","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/wallet","items":0,"name":"tri wallet","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":true,"family":"mcp","id":"mcp/gitbutler","items":0,"name":"gitbutler","repo":"gHashTag/t27","witness":"source-parse"},{"agents":["T"],"external":true,"family":"mcp","id":"mcp/inngest-dev","items":20,"name":"inngest-dev","repo":"gHashTag/t27","witness":"help-output"},{"agents":[],"external":false,"family":"mcp","id":"mcp/needle","items":6,"name":"needle","repo":"gHashTag/trinity","witness":"source-parse"},{"agents":[],"external":true,"family":"mcp","id":"mcp/neon","items":0,"name":"neon","repo":"gHashTag/trinity","witness":"source-parse"},{"agents":[],"external":true,"family":"mcp","id":"mcp/notebooklm","items":0,"name":"notebooklm","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":true,"family":"mcp","id":"mcp/railway-mcp-server","items":0,"name":"railway-mcp-server","repo":"gHashTag/trinity","witness":"source-parse"},{"agents":[],"external":false,"family":"mcp","id":"mcp/t27-traceability","items":4,"name":"t27-traceability","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"mcp","id":"mcp/tri-mcp","items":10,"name":"tri-mcp","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"mcp","id":"mcp/tri-ssot","items":5,"name":"tri-ssot","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"mcp","id":"mcp/trinity","items":210,"name":"trinity","repo":"gHashTag/trinity","witness":"source-parse"},{"agents":[],"external":true,"family":"mcp","id":"mcp/zig-docs","items":0,"name":"zig-docs","repo":"gHashTag/trinity","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/abandoned","items":1,"name":"tri abandoned","repo":"gHashTag/t27","witness":"source-parse"},{"agents":["W"],"external":false,"family":"tri-cli","id":"tri/cell","items":2,"name":"tri cell","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/census","items":2,"name":"tri census","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/ci","items":1,"name":"tri ci","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/competitors","items":2,"name":"tri competitors","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/discard","items":2,"name":"tri discard","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/doctor","items":0,"name":"tri doctor","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/elab","items":2,"name":"tri elab","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/emit","items":1,"name":"tri emit","repo":"gHashTag/t27","witness":"source-parse"},{"agents":["E"],"external":false,"family":"tri-cli","id":"tri/experience","items":1,"name":"tri experience","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/fleet","items":2,"name":"tri fleet","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/fmt","items":0,"name":"tri fmt","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/fpga","items":35,"name":"tri fpga","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/gates","items":13,"name":"tri gates","repo":"gHashTag/t27","witness":"source-parse"},{"agents":["C","T"],"external":false,"family":"tri-cli","id":"tri/gen","items":0,"name":"tri gen","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/harness","items":1,"name":"tri harness","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/health","items":0,"name":"tri health","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/hooks","items":8,"name":"tri hooks","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/issues","items":3,"name":"tri issues","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/jumps","items":1,"name":"tri jumps","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/kinds","items":1,"name":"tri kinds","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/lean","items":2,"name":"tri lean","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/ledgers","items":1,"name":"tri ledgers","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/loop","items":1,"name":"tri loop","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/merging","items":0,"name":"tri merging","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/misread","items":0,"name":"tri misread","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/mods","items":1,"name":"tri mods","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/mutate","items":1,"name":"tri mutate","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/now","items":2,"name":"tri now","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/one-away","items":0,"name":"tri one-away","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/orphaned","items":1,"name":"tri orphaned","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/pr","items":2,"name":"tri pr","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/prose","items":1,"name":"tri prose","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/quantifiers","items":2,"name":"tri quantifiers","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/red","items":2,"name":"tri red","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/reseal","items":2,"name":"tri reseal","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/rtl","items":1,"name":"tri rtl","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/seals","items":5,"name":"tri seals","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/serve","items":0,"name":"tri serve","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/skill","items":9,"name":"tri skill","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/status","items":0,"name":"tri status","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/sweep","items":1,"name":"tri sweep","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/synth","items":1,"name":"tri synth","repo":"gHashTag/t27","witness":"source-parse"},{"agents":["T","V"],"external":false,"family":"tri-cli","id":"tri/test","items":0,"name":"tri test","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/topic","items":0,"name":"tri topic","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/types","items":4,"name":"tri types","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/unparsed","items":4,"name":"tri unparsed","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/vectors","items":2,"name":"tri vectors","repo":"gHashTag/t27","witness":"source-parse"},{"agents":["V"],"external":false,"family":"tri-cli","id":"tri/verdict","items":0,"name":"tri verdict","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/vsim","items":1,"name":"tri vsim","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/window","items":0,"name":"tri window","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/worktrees","items":0,"name":"tri worktrees","repo":"gHashTag/t27","witness":"source-parse"}],"source":"public/tools/spec-tools.json"},"title":{"en":"Tooling","ru":"Инструменты"},"typecheckOk":true},{"body":{"en":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"text","v":"The project separates what was measured from what was declared, and both from what was taken from outside. The tags are defined in the chapter \"The project\"; this chapter says how each tag is earned on the site."}],"type":"p"},{"runs":[{"t":"text","v":"A "},{"t":"strong","v":"measured"},{"t":"text","v":" number has a producer in a repository -- a script, a workflow, a test -- whose output is committed or published, and the page names the commit. The ladder counts, the "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":" verdicts, the coverage of a translation bundle, the number of episodes in an experience tree are measured in this sense: the generator that produces them runs in "},{"t":"code","v":"prebuild"},{"t":"text","v":" and its inputs are pinned."}],"type":"p"},{"runs":[{"t":"text","v":"A "},{"t":"strong","v":"declared"},{"t":"text","v":" value is stated in a spec or a canon document. The catalog size of 83 formats, the seven laws, the seven phases are declared: the site renders them from the file that states them and links the file at the commit, but running nothing."}],"type":"p"},{"runs":[{"t":"text","v":"An "},{"t":"strong","v":"external"},{"t":"text","v":" value is cited with its source and not reproduced. The site does not restate hardware figures of "},{"t":"code","v":"gHashTag/trinity-fpga"},{"t":"text","v":" beyond what "},{"t":"code","v":"siliconHistory.ts"},{"t":"text","v":" transcribes with its provenance note."}],"type":"p"}],"heading":"Measured, declared, external","id":"measured-declared-external"},{"blocks":[{"runs":[{"t":"text","v":"Each catalog card carries a witness label that says how the card relates to the thing it describes:"}],"type":"p"},{"items":[[{"t":"text","v":"Skills and crons: "},{"t":"code","v":"spec+code"},{"t":"text","v":" (spec and source both exist), "},{"t":"code","v":"spec-only"},{"t":"text","v":" (spec without source), "},{"t":"code","v":"code-only"},{"t":"text","v":" (source without spec). The counts per label are in the header of the Skill and Cron Explorers."}],[{"t":"text","v":"Tools: "},{"t":"code","v":"source-parse"},{"t":"text","v":" (the command list was read from the source at a recorded commit; "},{"t":"code","v":"cargo"},{"t":"text","v":" was not run) or "},{"t":"code","v":"help-output"},{"t":"text","v":" (the list was diffed against "},{"t":"code","v":"tri --help"},{"t":"text","v":"). At the commit this documentation was generated from every tri card is "},{"t":"code","v":"source-parse"},{"t":"text","v":"."}],[{"t":"text","v":"Agents: each skill and tool binding cites a source line in "},{"t":"code","v":"SKILLS_NOTE"},{"t":"text","v":" / "},{"t":"code","v":"TOOLS_NOTE"},{"t":"text","v":", or the list is empty and the note says what was read."}],[{"t":"text","v":"Experience: attributed only where an episode names a letter; otherwise counted as unattributed, never guessed."}]],"type":"ul"},{"runs":[{"t":"text","v":"The table the site renders next to this chapter collects these labels with their counts from the generated JSON of every layer."}],"type":"p"}],"heading":"Witness labels","id":"witness-labels"},{"blocks":[{"runs":[{"t":"text","v":"Every "},{"t":"code","v":".t27"},{"t":"text","v":" the site shows was compiled at build time by the vendored "},{"t":"code","v":"t27_compiler.wasm"},{"t":"text","v":", and the JSON records "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":" per file. Two limits of that verdict are stated on every layer README and repeated here. First, the wasm's "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":" is necessary, not sufficient: it stays "},{"t":"code","v":"true"},{"t":"text","v":" for a wrong annotation such as "},{"t":"code","v":"str = 5"},{"t":"text","v":", so the generator checks the field schema of every card on top of it. Second, the bootstrap compiler on "},{"t":"code","v":"master"},{"t":"text","v":" was not run against the catalog files in the commits that added them; the wasm is a build of the compiler at a recorded sha, and that sha is in the generated JSON."}],"type":"p"}],"heading":"Wasm verdicts","id":"wasm-verdicts"},{"blocks":[{"runs":[{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" gates a pull request with workflows named for what they check (issue gate, gate topology, conformance integrity, emit bit-exact, catalog count, now-sync, untrusted input, among others under "},{"t":"code","v":".github/workflows/"},{"t":"text","v":"). Two of them, "},{"t":"code","v":"gate-topology"},{"t":"text","v":" and "},{"t":"code","v":"untrusted-input"},{"t":"text","v":", fail on "},{"t":"code","v":"master"},{"t":"text","v":" for already-merged pull requests at the time of writing; the catalog pull requests record this and do not bless or bypass them."}],"type":"p"},{"runs":[{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" gates the site with "},{"t":"code","v":"npm run"},{"t":"text","v":" checks that run in "},{"t":"code","v":"prebuild"},{"t":"text","v":" and in CI: "},{"t":"code","v":"check:spec-catalog"},{"t":"text","v":", "},{"t":"code","v":"check:skills-catalog"},{"t":"text","v":", "},{"t":"code","v":"check:crons-catalog"},{"t":"text","v":", "},{"t":"code","v":"check:agents"},{"t":"text","v":", "},{"t":"code","v":"check:tools"},{"t":"text","v":", "},{"t":"code","v":"check:docs"},{"t":"text","v":", the explorer and Queen language contracts, the Queen viewport contract, "},{"t":"code","v":"typecheck:ratchet"},{"t":"text","v":" and "},{"t":"code","v":"eslint"},{"t":"text","v":". A check that fails on "},{"t":"code","v":"main"},{"t":"text","v":" before a change is reported as pre-existing, with its name, and is not counted as passing."}],"type":"p"}],"heading":"CI gates","id":"ci-gates"},{"blocks":[{"runs":[{"t":"text","v":"To reproduce a count on the site, run the generator that produced it, in "},{"t":"code","v":"apps/website"},{"t":"text","v":" of a checkout of "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":", with a sibling checkout of "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" (or "},{"t":"code","v":"T27_ROOT"},{"t":"text","v":" pointing to one):"}],"type":"p"},{"items":[[{"t":"code","v":"node scripts/agents-from-specs.mjs"},{"t":"text","v":" -- skills, crons, agents, tools JSON and their counts; "},{"t":"code","v":"--check"},{"t":"text","v":" compares against the committed JSON."}],[{"t":"code","v":"node scripts/docs-from-specs.mjs"},{"t":"text","v":" -- this documentation's JSON, including the sources with their sha256 and the pinned commit."}],[{"t":"code","v":"node scripts/sync-agents-experience.mjs"},{"t":"text","v":" -- the experience snapshot."}],[{"t":"code","v":"npm run check:docs"},{"t":"text","v":" -- the chapter bodies, the sources, the generated tables, the forbidden-words scan in English and Russian."}]],"type":"ul"},{"runs":[{"t":"text","v":"Each JSON names the commit its inputs were read at. Comparing that commit with the one in front of you is step one of any reproduction; a number that cannot be tied to a commit is not a measurement."}],"type":"p"}],"heading":"Reproducing a number","id":"reproducing-a-number"},{"blocks":[{"runs":[{"t":"text","v":"Two kinds of record exist outside the generated pages, and this documentation points to them without adding to their claims. The TNF manuscript audit and reconciliation reports live under "},{"t":"code","v":"docs/reports/"},{"t":"text","v":" in "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" ("},{"t":"code","v":"TNF-ARTICLE-AUDIT-W845.md"},{"t":"text","v":", "},{"t":"code","v":"TNF-ARTICLE-RECONCILIATION.md"},{"t":"text","v":"); they record which statements of the article were checked against which producer and what changed. The Zenodo README ("},{"t":"code","v":"README-ZENODO.md"},{"t":"text","v":") describes the archived package. No scientific claim is made in this documentation that is not in those files or in the site's own content with its status tag."}],"type":"p"}],"heading":"Published record","id":"published-record"}],"title":"Evidence and witnesses"},"ru":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"text","v":"Проект разделяет измеренное и заявленное, а и то и другое -- от взятого извне. Теги определены в главе \"Проект\"; эта глава говорит, как каждый тег зарабатывается на сайте."}],"type":"p"},{"runs":[{"t":"strong","v":"Измеренное"},{"t":"text","v":" число имеет производителя в репозитории -- скрипт, workflow, тест, -- чей вывод закоммичен или опубликован, и страница называет коммит. Счётчики лестницы, вердикты "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":", покрытие бандла переводов, число эпизодов в дереве опыта измерены в этом смысле: порождающий их генератор выполняется в "},{"t":"code","v":"prebuild"},{"t":"text","v":", а его входы закреплены."}],"type":"p"},{"runs":[{"t":"strong","v":"Заявленное"},{"t":"text","v":" значение записано в спецификации или каноническом документе. Размер каталога в 83 формата, семь законов, семь фаз заявлены: сайт выводит их из файла, который их формулирует, и привязывает файл к коммиту, ничего не запуская."}],"type":"p"},{"runs":[{"t":"strong","v":"Внешнее"},{"t":"text","v":" значение цитируется с источником и не воспроизводится. Сайт не повторяет аппаратные цифры "},{"t":"code","v":"gHashTag/trinity-fpga"},{"t":"text","v":" сверх того, что переносит "},{"t":"code","v":"siliconHistory.ts"},{"t":"text","v":" со своим примечанием о происхождении."}],"type":"p"}],"heading":"Измерено, заявлено, извне","id":"измерено-заявлено-извне"},{"blocks":[{"runs":[{"t":"text","v":"Каждая карточка каталога несёт метку свидетеля, говорящую, как карточка соотносится с тем, что описывает:"}],"type":"p"},{"items":[[{"t":"text","v":"Навыки и расписания: "},{"t":"code","v":"spec+code"},{"t":"text","v":" (есть и спецификация, и исходник), "},{"t":"code","v":"spec-only"},{"t":"text","v":" (спецификация без исходника), "},{"t":"code","v":"code-only"},{"t":"text","v":" (исходник без спецификации). Счётчики по меткам -- в заголовках обозревателей навыков и расписаний."}],[{"t":"text","v":"Инструменты: "},{"t":"code","v":"source-parse"},{"t":"text","v":" (список команд прочитан из исходника на записанном коммите; "},{"t":"code","v":"cargo"},{"t":"text","v":" не запускался) или "},{"t":"code","v":"help-output"},{"t":"text","v":" (список сверен с "},{"t":"code","v":"tri --help"},{"t":"text","v":"). На коммите, на котором порождена документация, каждая карточка tri -- "},{"t":"code","v":"source-parse"},{"t":"text","v":"."}],[{"t":"text","v":"Агенты: каждая связь с навыком и инструментом цитирует строку источника в "},{"t":"code","v":"SKILLS_NOTE"},{"t":"text","v":" / "},{"t":"code","v":"TOOLS_NOTE"},{"t":"text","v":", либо список пуст и примечание говорит, что было прочитано."}],[{"t":"text","v":"Опыт: атрибуция только там, где эпизод называет букву; иначе считается неотнесённым и никогда не угадывается."}]],"type":"ul"},{"runs":[{"t":"text","v":"Таблица, которую сайт выводит рядом с этой главой, собирает эти метки со счётчиками из порождённого JSON каждого слоя."}],"type":"p"}],"heading":"Метки свидетелей","id":"метки-свидетелей"},{"blocks":[{"runs":[{"t":"text","v":"Каждый "},{"t":"code","v":".t27"},{"t":"text","v":", показанный на сайте, скомпилирован при сборке вендорным "},{"t":"code","v":"t27_compiler.wasm"},{"t":"text","v":", и JSON записывает "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":" для каждого файла. Два предела этого вердикта названы в README каждого слоя и повторены здесь. Во-первых, "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":" от wasm необходим, но не достаточен: он остаётся "},{"t":"code","v":"true"},{"t":"text","v":" при неверной аннотации вроде "},{"t":"code","v":"str = 5"},{"t":"text","v":", поэтому генератор проверяет схему полей каждой карточки поверх него. Во-вторых, бутстрап-компилятор на "},{"t":"code","v":"master"},{"t":"text","v":" не запускался против файлов каталогов в коммитах, которые их добавили; wasm -- сборка компилятора на записанном sha, и этот sha есть в порождённом JSON."}],"type":"p"}],"heading":"Вердикты wasm","id":"вердикты-wasm"},{"blocks":[{"runs":[{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" проверяет pull request рабочими потоками, названными по тому, что они проверяют (issue gate, gate topology, conformance integrity, emit bit-exact, catalog count, now-sync, untrusted input и другие под "},{"t":"code","v":".github/workflows/"},{"t":"text","v":"). Два из них, "},{"t":"code","v":"gate-topology"},{"t":"text","v":" и "},{"t":"code","v":"untrusted-input"},{"t":"text","v":", на момент написания падают на "},{"t":"code","v":"master"},{"t":"text","v":" для уже влитых pull request; pull request каталогов фиксируют это и не благословляют и не обходят их."}],"type":"p"},{"runs":[{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" проверяет сайт командами "},{"t":"code","v":"npm run"},{"t":"text","v":", выполняемыми в "},{"t":"code","v":"prebuild"},{"t":"text","v":" и в CI: "},{"t":"code","v":"check:spec-catalog"},{"t":"text","v":", "},{"t":"code","v":"check:skills-catalog"},{"t":"text","v":", "},{"t":"code","v":"check:crons-catalog"},{"t":"text","v":", "},{"t":"code","v":"check:agents"},{"t":"text","v":", "},{"t":"code","v":"check:tools"},{"t":"text","v":", "},{"t":"code","v":"check:docs"},{"t":"text","v":", языковые контракты обозревателей и Королевы, контракт вьюпорта Королевы, "},{"t":"code","v":"typecheck:ratchet"},{"t":"text","v":" и "},{"t":"code","v":"eslint"},{"t":"text","v":". Проверка, падающая на "},{"t":"code","v":"main"},{"t":"text","v":" до изменения, отмечается как существовавшая ранее, по имени, и не засчитывается как пройденная."}],"type":"p"}],"heading":"Шлюзы CI","id":"шлюзы-ci"},{"blocks":[{"runs":[{"t":"text","v":"Чтобы воспроизвести счётчик с сайта, запустите порождающий его генератор в "},{"t":"code","v":"apps/website"},{"t":"text","v":" чекаута "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" с соседним чекаутом "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" (или с "},{"t":"code","v":"T27_ROOT"},{"t":"text","v":", указывающим на него):"}],"type":"p"},{"items":[[{"t":"code","v":"node scripts/agents-from-specs.mjs"},{"t":"text","v":" -- JSON навыков, расписаний, агентов, инструментов и их счётчики; "},{"t":"code","v":"--check"},{"t":"text","v":" сравнивает с закоммиченным JSON."}],[{"t":"code","v":"node scripts/docs-from-specs.mjs"},{"t":"text","v":" -- JSON этой документации, включая источники с их sha256 и закреплённый коммит."}],[{"t":"code","v":"node scripts/sync-agents-experience.mjs"},{"t":"text","v":" -- снимок опыта."}],[{"t":"code","v":"npm run check:docs"},{"t":"text","v":" -- тела глав, источники, порождённые таблицы, поиск запрещённых слов в английском и русском."}]],"type":"ul"},{"runs":[{"t":"text","v":"Каждый JSON называет коммит, на котором прочитаны его входы. Сравнение этого коммита с тем, что перед вами, -- шаг один любого воспроизведения; число, которое нельзя привязать к коммиту, не является измерением."}],"type":"p"}],"heading":"Как воспроизвести число","id":"как-воспроизвести-число"},{"blocks":[{"runs":[{"t":"text","v":"Вне порождённых страниц существуют два вида записей, и эта документация указывает на них, ничего не добавляя к их утверждениям. Отчёты аудита и сверки рукописи TNF лежат под "},{"t":"code","v":"docs/reports/"},{"t":"text","v":" в "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" ("},{"t":"code","v":"TNF-ARTICLE-AUDIT-W845.md"},{"t":"text","v":", "},{"t":"code","v":"TNF-ARTICLE-RECONCILIATION.md"},{"t":"text","v":"); они записывают, какие утверждения статьи сверены с каким производителем и что изменилось. README для Zenodo ("},{"t":"code","v":"README-ZENODO.md"},{"t":"text","v":") описывает архивированный пакет. В этой документации не делается ни одного научного утверждения, которого нет в этих файлах или в собственном содержимом сайта с его статусным тегом."}],"type":"p"}],"heading":"Опубликованная запись","id":"опубликованная-запись"}]}},"bodyPath":"docs/system/evidence.md","bodySha256":"369aa6412eaa52c54b0b0b1e796625655dc476ea05a6e4aa1c7e019003420d21","diagram":null,"discarded":0,"enabled":true,"id":"docs/evidence","links":{"body":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/system/evidence.md","spec":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/chapters/evidence.t27"},"moduleName":"docs_chapter_evidence","order":7,"sections":[{"heading":{"en":"Measured, declared, external","ru":"Измерено, заявлено, извне"},"id":"measured-declared-external"},{"heading":{"en":"Witness labels","ru":"Метки свидетелей"},"id":"witness-labels"},{"heading":{"en":"Wasm verdicts","ru":"Вердикты wasm"},"id":"wasm-verdicts"},{"heading":{"en":"CI gates","ru":"Шлюзы CI"},"id":"ci-gates"},{"heading":{"en":"Reproducing a number","ru":"Как воспроизвести число"},"id":"reproducing-a-number"},{"heading":{"en":"Published record","ru":"Опубликованная запись"},"id":"published-record"}],"sha256":"bc197d64c27828950663c4af278f4f13fb522eddad5c105d1630aad61d997098","sources":[{"kind":"file","path":"specs/skills/README.md","rel":"specs/skills/README.md","repo":"t27","sha256":"ac23eb8d74832014efaf5e65f3da070d999549724e01242cb8784a93ad43d360","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/skills/README.md","where":"vendored"},{"kind":"file","path":"specs/tools/README.md","rel":"specs/tools/README.md","repo":"t27","sha256":"37b5a451e43de9bc5746ceb80d4cf24f19ea6c3ad8751d2447049cba39c8a0ab","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/tools/README.md","where":"vendored"},{"kind":"file","path":"README-ZENODO.md","rel":"README-ZENODO.md","repo":"t27","sha256":"6da4751277af64ba21e866d787201296b0595f3f40b43792207e2f939c7f48b9","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/README-ZENODO.md","where":"vendored"},{"kind":"file","path":"docs/reports/TNF-ARTICLE-AUDIT-W845.md","rel":"docs/reports/TNF-ARTICLE-AUDIT-W845.md","repo":"t27","sha256":"0d0008949d161dbe0d3cd4368ddf4b5629144ba71293e23dc7267b6f19a36e96","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/reports/TNF-ARTICLE-AUDIT-W845.md","where":"vendored"},{"kind":"file","path":"docs/reports/TNF-ARTICLE-RECONCILIATION.md","rel":"docs/reports/TNF-ARTICLE-RECONCILIATION.md","repo":"t27","sha256":"a18e9fab15d0d845d5bc8d55b8be1249a8a0b48f7b361890da80b4e7406138da","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/reports/TNF-ARTICLE-RECONCILIATION.md","where":"vendored"}],"specPath":"specs/docs/chapters/evidence.t27","stem":"evidence","table":{"columns":["layer","label","count","source"],"kind":"witnesses","note":"","rows":[{"count":26,"label":"spec+code","layer":"Skills","source":"public/skills/spec-skills.json counts"},{"count":0,"label":"spec-only","layer":"Skills","source":"public/skills/spec-skills.json counts"},{"count":0,"label":"code-only","layer":"Skills","source":"public/skills/spec-skills.json counts"},{"count":33,"label":"spec+code","layer":"Crons","source":"public/crons/spec-crons.json counts"},{"count":0,"label":"spec-only","layer":"Crons","source":"public/crons/spec-crons.json counts"},{"count":0,"label":"code-only","layer":"Crons","source":"public/crons/spec-crons.json counts"},{"count":0,"label":"with RUNS","layer":"Crons","source":"public/crons/spec-crons.json counts"},{"count":1,"label":"with skills (source-bound)","layer":"Agents","source":"public/agents/spec-agents.json counts"},{"count":5,"label":"with tools (bound both ways)","layer":"Agents","source":"public/agents/spec-agents.json counts"},{"count":0,"label":"spec+experience","layer":"Agents","source":"public/agents/spec-agents.json counts"},{"count":27,"label":"spec-only","layer":"Agents","source":"public/agents/spec-agents.json counts"},{"count":0,"label":"episodes attributed","layer":"Experience","source":"public/agents/experience.json"},{"count":386,"label":"episodes unattributed","layer":"Experience","source":"public/agents/experience.json"},{"count":1,"label":"help-output","layer":"Tools","source":"public/tools/spec-tools.json counts.byWitness"},{"count":29,"label":"registry-export","layer":"Tools","source":"public/tools/spec-tools.json counts.byWitness"},{"count":0,"label":"runtime","layer":"Tools","source":"public/tools/spec-tools.json counts.byWitness"},{"count":62,"label":"source-parse","layer":"Tools","source":"public/tools/spec-tools.json counts.byWitness"},{"count":6,"label":"external (tool list not in either repository)","layer":"Tools","source":"public/tools/spec-tools.json counts"},{"count":178,"label":"typecheck ok","layer":"All catalogs","source":"counts.typecheckOk of the four catalogs"}],"source":"counts of the four catalog JSON files and public/agents/experience.json"},"title":{"en":"Evidence and witnesses","ru":"Свидетели и доказательства"},"typecheckOk":true}],"compilerWasmSha256":"3f1e073c963c86e2430ea6541b5ad286e06423d751a8797ca68479f847145383","counts":{"chapters":7,"diagrams":6,"enabled":7,"laws":7,"phases":7,"ruChapters":7,"sections":32,"sources":31,"sourcesCheckout":2,"sourcesVendored":29,"specs":9,"tables":7,"typecheckOk":8},"document":{"chapters":["project","rules","layers","alphabet","queen","tooling","evidence"],"diagrams":["ladder","agent-ring","phase-cycle","law-hierarchy","skills-crons-agents","tools-map"],"enabled":true,"id":"docs/system","link":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/system.t27","locales":["en","ru"],"sha256":"ab7ee1773622aa46442aec7aeca5cdd1a1a3c36f6321451a5e426df80a75945b","sources":[{"kind":"dir","path":"specs/skills","rel":"specs/skills","repo":"t27","sha256":null,"url":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/specs/skills","where":"vendored"},{"kind":"dir","path":"specs/crons","rel":"specs/crons","repo":"t27","sha256":null,"url":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/specs/crons","where":"vendored"},{"kind":"dir","path":"specs/agents","rel":"specs/agents","repo":"t27","sha256":null,"url":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/specs/agents","where":"vendored"},{"kind":"dir","path":"specs/tools","rel":"specs/tools","repo":"t27","sha256":null,"url":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/specs/tools","where":"vendored"},{"kind":"dir","path":"specs/i18n","rel":"specs/i18n","repo":"t27","sha256":null,"url":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/specs/i18n","where":"vendored"},{"kind":"file","path":"SOUL.md","rel":"SOUL.md","repo":"t27","sha256":"cb9b44e13d6d0b314f9626f9cca438e5f17ed6847b194220f9e80b32209e052e","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md","where":"vendored"},{"kind":"file","path":"AGENTS.md","rel":"AGENTS.md","repo":"t27","sha256":"51d2674ae7331a2df71756fbda3c723b467073a4b59190fed0d9b34023bfea2b","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","where":"vendored"},{"kind":"file","path":"CLAUDE.md","rel":"CLAUDE.md","repo":"t27","sha256":"43a5d51f12e25f9aa23aacc837005fe9d8a7bb5637e4857b0b31abab88730d05","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/CLAUDE.md","where":"vendored"},{"kind":"file","path":"docs/agents/AGENTS_ALPHABET.md","rel":"docs/agents/AGENTS_ALPHABET.md","repo":"t27","sha256":"c99352b305322031ee8af0c4777ae54c52ef50c694ff2aa0f4d95ab2fa82734a","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","where":"vendored"},{"kind":"file","path":"docs/T27-CONSTITUTION.md","rel":"docs/T27-CONSTITUTION.md","repo":"t27","sha256":"2c06724425f721ef6356edc9a14e4f1af530d1246c5c6a318fd42f59aaa319a5","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/T27-CONSTITUTION.md","where":"vendored"}],"specPath":"specs/docs/system.t27","title":{"en":"t27 / Trinity -- the system, its rules and its evidence","ru":"t27 / Trinity -- система, её правила и её доказательства"},"typecheckOk":true},"figures":{"agent-ring":{"agents":[{"layer":"Archetypal","letter":"A","name":"Alpha (Architecture)","ordinal":1,"skills":0,"tools":0},{"layer":"Archetypal","letter":"B","name":"Beta (Build)","ordinal":2,"skills":0,"tools":0},{"layer":"Archetypal","letter":"C","name":"Gamma (Compiler Core)","ordinal":3,"skills":0,"tools":1},{"layer":"Archetypal","letter":"D","name":"Delta (De-Zigfication)","ordinal":4,"skills":0,"tools":0},{"layer":"Archetypal","letter":"E","name":"Epsilon (Experience)","ordinal":5,"skills":0,"tools":1},{"layer":"Archetypal","letter":"F","name":"Phi (Formal Conformance)","ordinal":6,"skills":0,"tools":0},{"layer":"Archetypal","letter":"G","name":"Gamma (Graph)","ordinal":7,"skills":0,"tools":0},{"layer":"Archetypal","letter":"H","name":"Eta (HSLM)","ordinal":8,"skills":0,"tools":0},{"layer":"Archetypal","letter":"I","name":"Iota (ISA)","ordinal":9,"skills":0,"tools":0},{"layer":"Spiritual","letter":"J","name":"Iota-extended (Jobs)","ordinal":10,"skills":0,"tools":0},{"layer":"Spiritual","letter":"K","name":"Kappa (Kernel)","ordinal":11,"skills":0,"tools":0},{"layer":"Spiritual","letter":"L","name":"Lambda (Language)","ordinal":12,"skills":0,"tools":0},{"layer":"Spiritual","letter":"M","name":"Mu (Metrics)","ordinal":13,"skills":0,"tools":0},{"layer":"Spiritual","letter":"N","name":"Nu (Numeric)","ordinal":14,"skills":0,"tools":0},{"layer":"Spiritual","letter":"O","name":"Omicron (Orchestration)","ordinal":15,"skills":0,"tools":0},{"layer":"Spiritual","letter":"P","name":"Pi (Physics)","ordinal":16,"skills":0,"tools":0},{"layer":"Spiritual","letter":"Q","name":"Theta (Queue)","ordinal":17,"skills":0,"tools":0},{"layer":"Spiritual","letter":"R","name":"Rho (Runtime)","ordinal":18,"skills":0,"tools":0},{"layer":"Physical","letter":"S","name":"Sigma (Specs)","ordinal":19,"skills":0,"tools":0},{"layer":"Physical","letter":"T","name":"Tau (TRINITY Queen)","ordinal":20,"skills":2,"tools":3},{"layer":"Physical","letter":"U","name":"Upsilon (Universe)","ordinal":21,"skills":0,"tools":0},{"layer":"Physical","letter":"V","name":"Vau (Verdict)","ordinal":22,"skills":0,"tools":2},{"layer":"Physical","letter":"W","name":"Double-Vav (Workflow)","ordinal":23,"skills":0,"tools":1},{"layer":"Physical","letter":"X","name":"Chi (External)","ordinal":24,"skills":0,"tools":0},{"layer":"Physical","letter":"Y","name":"Psi (Yield/DePIN)","ordinal":25,"skills":0,"tools":0},{"layer":"Physical","letter":"Z","name":"Zeta (Zero-Touch)","ordinal":26,"skills":0,"tools":0},{"layer":"Physical","letter":"TI","name":"Ti (Security)","ordinal":27,"skills":0,"tools":0}],"source":"public/agents/spec-agents.json"},"ladder":{"counts":{"agents":27,"crons":33,"docsChapters":7,"functions":28,"skills":26,"specs":1414,"tools":92},"source":"public/*/spec-*.json counts and public/t27/manifest.json"},"law-hierarchy":{"laws":[{"law":"L1","name":"TRACEABILITY"},{"law":"L2","name":"GENERATION"},{"law":"L3","name":"PURITY"},{"law":"L4","name":"TESTABILITY"},{"law":"L5","name":"IDENTITY"},{"law":"L6","name":"CEILING"},{"law":"L7","name":"UNITY"}],"priority":"L1 > L2 > … > L7","source":"docs/T27-CONSTITUTION.md"},"phase-cycle":{"phases":[{"n":1,"name":"PLAN","note":"","steps":4},{"n":2,"name":"ASSIGN","note":"","steps":4},{"n":3,"name":"RUN","note":"","steps":4},{"n":4,"name":"TEST & BENCH","note":"","steps":4},{"n":5,"name":"VERDICT","note":"","steps":4},{"n":6,"name":"EVOLVE","note":"","steps":6},{"n":7,"name":"GIT WORKFLOW","note":"new — SOUL law","steps":4}],"source":"docs/agents/AGENTS_ALPHABET.md"},"skills-crons-agents":{"counts":{"agents":27,"crons":33,"skills":26,"tools":92},"edges":[{"from":"t27/C","kind":"agent-holds-tool","to":"tri/gen"},{"from":"t27/E","kind":"agent-holds-tool","to":"tri/experience"},{"from":"t27/T","kind":"agent-holds-skill","to":"t27/phi-loop"},{"from":"t27/T","kind":"agent-holds-skill","to":"t27/tri-pipeline"},{"from":"t27/T","kind":"agent-holds-tool","to":"tri/gen"},{"from":"t27/T","kind":"agent-holds-tool","to":"tri/test"},{"from":"t27/T","kind":"agent-holds-tool","to":"mcp/inngest-dev"},{"from":"t27/V","kind":"agent-holds-tool","to":"tri/test"},{"from":"t27/V","kind":"agent-holds-tool","to":"tri/verdict"},{"from":"t27/W","kind":"agent-holds-tool","to":"tri/cell"}],"source":"public/crons/spec-crons.json RUNS, public/agents/spec-agents.json SKILLS/TOOLS"},"tools-map":{"external":["mcp/gitbutler","mcp/inngest-dev","mcp/neon","mcp/notebooklm","mcp/railway-mcp-server","mcp/zig-docs"],"mcpByRepo":{"gHashTag/t27":["mcp/gitbutler","mcp/inngest-dev","mcp/notebooklm","mcp/t27-traceability","mcp/tri-mcp","mcp/tri-ssot"],"gHashTag/trinity":["mcp/needle","mcp/neon","mcp/railway-mcp-server","mcp/trinity","mcp/zig-docs"]},"source":"public/tools/spec-tools.json groups","triByAgent":{"-":["gHashTag/trinity:tri/bench","gHashTag/trinity:tri/bio","gHashTag/trinity:tri/blindspots","gHashTag/trinity:tri/conscious","gHashTag/trinity:tri/constants","gHashTag/trinity:tri/cosmos","gHashTag/trinity:tri/dashboard","gHashTag/trinity:tri/fib","gHashTag/trinity:tri/fpga","gHashTag/trinity:tri/gematria","gHashTag/trinity:tri/govern","gHashTag/trinity:tri/hardware","gHashTag/trinity:tri/identity","gHashTag/trinity:tri/lucas","gHashTag/trinity:tri/mesh","gHashTag/trinity:tri/needle","gHashTag/trinity:tri/needle-check","gHashTag/trinity:tri/needle-search","gHashTag/trinity:tri/omega","gHashTag/trinity:tri/particles","gHashTag/trinity:tri/phi","gHashTag/trinity:tri/quantum","gHashTag/trinity:tri/reputation","gHashTag/trinity:tri/sacred-const","gHashTag/trinity:tri/spiral","gHashTag/trinity:tri/swarm","gHashTag/trinity:tri/test","gHashTag/trinity:tri/vsa","gHashTag/trinity:tri/wallet","tri/abandoned","tri/census","tri/ci","tri/competitors","tri/discard","tri/doctor","tri/elab","tri/emit","tri/fleet","tri/fmt","tri/fpga","tri/gates","tri/harness","tri/health","tri/hooks","tri/issues","tri/jumps","tri/kinds","tri/lean","tri/ledgers","tri/loop","tri/merging","tri/misread","tri/mods","tri/mutate","tri/now","tri/one-away","tri/orphaned","tri/pr","tri/prose","tri/quantifiers","tri/red","tri/reseal","tri/rtl","tri/seals","tri/serve","tri/skill","tri/status","tri/sweep","tri/synth","tri/topic","tri/types","tri/unparsed","tri/vectors","tri/vsim","tri/window","tri/worktrees"],"C":["tri/gen"],"E":["tri/experience"],"T":["tri/gen","tri/test"],"V":["tri/test","tri/verdict"],"W":["tri/cell"]}}},"generatedAt":"2026-09-21T08:52:39.492Z","i18n":[{"bundle":"apps/website/i18n/docs.ru.json","coverage":{"n":7,"total":7},"enabled":true,"fields":["TITLE","BODY"],"locale":"ru","missing":[],"scope":["specs/docs","specs/docs/chapters"],"sha256":"5fc4a500afccdf91e81c2bbde7b770e673efccc96e2d87ef377abdf723748610","spec":"specs/i18n/docs-ru.t27"}],"ladder":{"agents":27,"crons":33,"docsChapters":7,"functions":28,"skills":26,"specs":1414,"tools":92},"pin":{"ref":"93727f733e23baf032d54505095777f16676d70b","source":"public/agents/experience.json sources[t27].commit / sources[trinity].commit","trinity":"ddceafb50cd0e620387161228fa2c9ae134047de"},"version":1,"warnings":[],"contentSha256":"c9a96dd65adcbf1f44187565331f8a3526b2eabd76b0faa193145b9dc1ede76c"} +{"chapters":[{"body":{"en":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"strong","v":"t27"},{"t":"text","v":" is a specification language and a toolchain. A "},{"t":"code","v":".t27"},{"t":"text","v":" file declares behaviour, constants, tests and invariants in one place; the compiler ("},{"t":"code","v":"t27c"},{"t":"text","v":", driven by the "},{"t":"code","v":"tri"},{"t":"text","v":" command) validates the file, generates code for the target backends (Zig, C, Verilog) and runs the tests written inside the spec. The repository "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" holds the language, the compiler, the spec corpus and the canon documents that govern how agents and people work in it ("},{"t":"code","v":"SOUL.md"},{"t":"text","v":", "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":", "},{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":")."}],"type":"p"},{"runs":[{"t":"strong","v":"Trinity"},{"t":"text","v":" is the programme around t27: the GoldenFloat family of numeric formats built on the identity phi^2 + 1/phi^2 = 3, hardware validation of those formats on one FPGA board, and the public site "},{"t":"code","v":"t27.ai"},{"t":"text","v":" (repository "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":", "},{"t":"code","v":"apps/website"},{"t":"text","v":") that renders the spec corpus, the skills, the scheduled jobs, the agents and the tools through the real compiler compiled to WebAssembly. The site does not paraphrase the specs; it compiles them in the browser build and shows the verdicts."}],"type":"p"},{"runs":[{"t":"text","v":"The rule that ties the two together is spec-first: project logic originates in "},{"t":"code","v":".t27"},{"t":"text","v":", and host languages -- Rust for the bootstrap compiler, TypeScript for the site, Zig, C and Verilog as generated output -- are subordinate implementations. "},{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":", Article SSOT-MATH, states it for mathematics and numerics; "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":" section 3 restates it for every change (\"Specs are source of truth\")."}],"type":"p"}],"heading":"What t27 and Trinity are","id":"what-t27-and-trinity-are"},{"blocks":[{"runs":[{"t":"text","v":"Every claim in this documentation carries one of five status tags, and the table the site renders next to this chapter repeats them with their source file:"}],"type":"p"},{"items":[[{"t":"code","v":"[measured]"},{"t":"text","v":" -- a number produced by running something whose output is in a repository or a public CI log, with the command and the commit recorded."}],[{"t":"code","v":"[declared]"},{"t":"text","v":" -- stated in a spec or a canon document; not (yet) exercised by a run."}],[{"t":"code","v":"[specified]"},{"t":"text","v":" -- exists as a "},{"t":"code","v":".t27"},{"t":"text","v":" spec that typechecks; no implementation is claimed."}],[{"t":"code","v":"[external]"},{"t":"text","v":" -- a value taken from a source outside the two repositories; cited, not reproduced here."}],[{"t":"code","v":"[not claimed]"},{"t":"text","v":" -- explicitly outside what the project asserts today."}]],"type":"ul"},{"runs":[{"t":"text","v":"The statements this chapter is prepared to make, with their tags:"}],"type":"p"},{"items":[[{"t":"text","v":"The GoldenFloat catalog holds 83 formats "},{"t":"code","v":"[declared]"},{"t":"text","v":" -- "},{"t":"code","v":"FAMILY_TOTALS.catalog"},{"t":"text","v":" in "},{"t":"code","v":"trinity:apps/website/src/data/siliconHistory.ts"},{"t":"text","v":", transcribed from the hardware conformance report of "},{"t":"code","v":"gHashTag/trinity-fpga"},{"t":"text","v":" (v0.2), which is the published source of every hardware figure on the site."}],[{"t":"text","v":"Hardware numbers exist for a subset of the catalog "},{"t":"code","v":"[measured]"},{"t":"text","v":": at v0.2 the same file records 27 formats at Tier E (public chain: CI run id, bitstream SHA-256, JTAG flash, UART log), 13 with decode in hardware, 7 with ADD and 7 with MUL in hardware, and 62 with a bit-exact software reference. The union of the hardware axes is a smaller number than 83; the exact union is stated in the trinity-fpga report and is not restated here."}],[{"t":"text","v":"Every hardware number was measured on one board "},{"t":"code","v":"[measured]"},{"t":"text","v":": ALINX AX7203, Xilinx Artix-7 "},{"t":"code","v":"xc7a200tfbg484-2"},{"t":"text","v":", open toolchain (yosys, nextpnr-xilinx, Project X-Ray), "},{"t":"code","v":"DEVICE"},{"t":"text","v":" and "},{"t":"code","v":"TOOLCHAIN"},{"t":"text","v":" in the same file."}],[{"t":"text","v":"Skills, crons, agents and tools on the site are generated from "},{"t":"code","v":".t27"},{"t":"text","v":" specs through the vendored compiler wasm "},{"t":"code","v":"[measured]"},{"t":"text","v":": the counts are in the ladder header of every Explorer and in the \"Evidence and witnesses\" chapter; "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":" for each spec is recorded in the JSON the site serves."}]],"type":"ul"}],"heading":"Claims and their status","id":"claims-and-their-status"},{"blocks":[{"runs":[{"t":"text","v":"What the project does "},{"t":"strong","v":"not"},{"t":"text","v":" claim, in its own words:"}],"type":"p"},{"items":[[{"t":"strong","v":"No silicon."},{"t":"text","v":" "},{"t":"code","v":"[not claimed]"},{"t":"text","v":" A SKY130 design was prepared through Tiny Tapeout; the TTSKY26a/TTSKY26b submissions were withdrawn before fabrication and refunded, so no die exists and no measurement on silicon is claimed ("},{"t":"code","v":"trinity:apps/website/src/content/tnf.ts"},{"t":"text","v":", the \"Is this an ASIC result?\" answer). ASIC mapping and multi-corner characterisation are not claimed either. The hardware boundary is the FPGA named above."}],[{"t":"strong","v":"No ranking words."},{"t":"text","v":" The canon forbids \"first\", \"only\", \"best\" and their translations in first-party prose; the site's QA ("},{"t":"code","v":"check:docs"},{"t":"text","v":", "},{"t":"code","v":"check:queen-honesty"},{"t":"text","v":") fails a build that contains them. Comparisons are stated as numbers with a source or not at all."}],[{"t":"strong","v":"The Verilog the t27 compiler emits from a format spec is a module shell"},{"t":"text","v":" -- across the corpus it yields 0 LUTs and 0 flip-flops ("},{"t":"code","v":"siliconHistory.ts"},{"t":"text","v":", provenance note). The silicon results belong to hand-written RTL verified against an independent oracle. The spec and the RTL describe the same format; they are not the same artifact."}],[{"t":"strong","v":"`typecheck.ok` from the wasm is necessary, not sufficient."},{"t":"text","v":" It stays "},{"t":"code","v":"true"},{"t":"text","v":" for a wrong annotation such as "},{"t":"code","v":"str = 5"},{"t":"text","v":"; the site's generators check the field schema of every card on top of it ("},{"t":"code","v":"specs/skills/README.md"},{"t":"text","v":")."}],[{"t":"strong","v":"Two repositories, two lists."},{"t":"text","v":" Tools, agents and jobs of "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" and of "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" are recorded under their own "},{"t":"code","v":"REPO"},{"t":"text","v":"; nothing is merged into one list."}]],"type":"ul"}],"heading":"Boundaries","id":"boundaries"},{"blocks":[{"runs":[{"t":"text","v":"The seven chapters are declared in "},{"t":"code","v":"specs/docs/system.t27"},{"t":"text","v":" and one spec per chapter under "},{"t":"code","v":"specs/docs/chapters/"},{"t":"text","v":". Each chapter spec names its "},{"t":"code","v":"SOURCES"},{"t":"text","v":" (the files it quotes), its "},{"t":"code","v":"SECTIONS"},{"t":"text","v":" (the headings of this Markdown, checked at build time), the figure the site draws from data ("},{"t":"code","v":"DIAGRAM"},{"t":"text","v":") and the table it generates from the catalogs ("},{"t":"code","v":"TABLE"},{"t":"text","v":"). The English prose is canonical and lives in "},{"t":"code","v":"docs/system/.md"},{"t":"text","v":" in "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":"; the Russian text travels through the translation contract "},{"t":"code","v":"specs/i18n/docs-ru.t27"},{"t":"text","v":" and the bundle it names in "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":". When the two disagree, English wins."}],"type":"p"},{"runs":[{"t":"text","v":"Every figure on the site carries a caption and a data-source line: the JSON it was drawn from and the commit that JSON was generated at. Every table is generated; none is typed by hand. A number without a source line is a defect -- report it as one."}],"type":"p"}],"heading":"How to read this documentation","id":"how-to-read-this-documentation"}],"title":"The project"},"ru":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"strong","v":"t27"},{"t":"text","v":" -- язык спецификаций и инструментальная цепочка. Файл "},{"t":"code","v":".t27"},{"t":"text","v":" в одном месте объявляет поведение, константы, тесты и инварианты; компилятор ("},{"t":"code","v":"t27c"},{"t":"text","v":", вызываемый командой "},{"t":"code","v":"tri"},{"t":"text","v":") проверяет файл, порождает код для целевых бэкендов (Zig, C, Verilog) и прогоняет тесты, записанные внутри спецификации. Репозиторий "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" хранит язык, компилятор, корпус спецификаций и канонические документы, определяющие, как в нём работают агенты и люди ("},{"t":"code","v":"SOUL.md"},{"t":"text","v":", "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":", "},{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":")."}],"type":"p"},{"runs":[{"t":"strong","v":"Trinity"},{"t":"text","v":" -- программа вокруг t27: семейство численных форматов GoldenFloat, построенное на тождестве phi^2 + 1/phi^2 = 3, аппаратная проверка этих форматов на одной плате FPGA и публичный сайт "},{"t":"code","v":"t27.ai"},{"t":"text","v":" (репозиторий "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":", "},{"t":"code","v":"apps/website"},{"t":"text","v":"), который отображает корпус спецификаций, навыки, расписания, агентов и инструменты через настоящий компилятор, собранный в WebAssembly. Сайт не пересказывает спецификации: он компилирует их при сборке и показывает вердикты."}],"type":"p"},{"runs":[{"t":"text","v":"Правило, связывающее обе части, -- spec-first: логика проекта рождается в "},{"t":"code","v":".t27"},{"t":"text","v":", а языки-хосты -- Rust для бутстрап-компилятора, TypeScript для сайта, Zig, C и Verilog как порождаемый код -- являются подчинёнными реализациями. "},{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":", статья SSOT-MATH, формулирует это для математики и численных вопросов; "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":", раздел 3, повторяет для любого изменения (\"Specs are source of truth\")."}],"type":"p"}],"heading":"Что такое t27 и Trinity","id":"что-такое-t27-и-trinity"},{"blocks":[{"runs":[{"t":"text","v":"Каждое утверждение в этой документации несёт один из пяти статусных тегов, и таблица, которую сайт выводит рядом с этой главой, повторяет их вместе с файлом-источником:"}],"type":"p"},{"items":[[{"t":"code","v":"[measured]"},{"t":"text","v":" -- число, полученное запуском чего-либо, чей вывод лежит в репозитории или в публичном журнале CI, с записанной командой и коммитом."}],[{"t":"code","v":"[declared]"},{"t":"text","v":" -- заявлено в спецификации или каноническом документе; запуском (пока) не проверено."}],[{"t":"code","v":"[specified]"},{"t":"text","v":" -- существует как спецификация "},{"t":"code","v":".t27"},{"t":"text","v":", проходящая проверку типов; реализация не заявляется."}],[{"t":"code","v":"[external]"},{"t":"text","v":" -- значение взято из источника вне двух репозиториев; цитируется, здесь не воспроизводится."}],[{"t":"code","v":"[not claimed]"},{"t":"text","v":" -- явно вне того, что проект утверждает сегодня."}]],"type":"ul"},{"runs":[{"t":"text","v":"Утверждения, которые эта глава готова сделать, с тегами:"}],"type":"p"},{"items":[[{"t":"text","v":"Каталог GoldenFloat содержит 83 формата "},{"t":"code","v":"[declared]"},{"t":"text","v":" -- "},{"t":"code","v":"FAMILY_TOTALS.catalog"},{"t":"text","v":" в "},{"t":"code","v":"trinity:apps/website/src/data/siliconHistory.ts"},{"t":"text","v":", перенесённый из отчёта об аппаратной конформности "},{"t":"code","v":"gHashTag/trinity-fpga"},{"t":"text","v":" (v0.2), который является опубликованным источником каждой аппаратной цифры на сайте."}],[{"t":"text","v":"Аппаратные числа существуют для подмножества каталога "},{"t":"code","v":"[measured]"},{"t":"text","v":": на v0.2 тот же файл фиксирует 27 форматов на уровне Tier E (публичная цепочка: id запуска CI, SHA-256 битстрима, прошивка по JTAG, журнал UART), 13 с декодированием в железе, 7 с ADD и 7 с MUL в железе и 62 с побитово точной программной моделью. Объединение аппаратных осей меньше 83; точное значение объединения приведено в отчёте trinity-fpga и здесь не повторяется."}],[{"t":"text","v":"Каждое аппаратное число измерено на одной плате "},{"t":"code","v":"[measured]"},{"t":"text","v":": ALINX AX7203, Xilinx Artix-7 "},{"t":"code","v":"xc7a200tfbg484-2"},{"t":"text","v":", открытая цепочка (yosys, nextpnr-xilinx, Project X-Ray), "},{"t":"code","v":"DEVICE"},{"t":"text","v":" и "},{"t":"code","v":"TOOLCHAIN"},{"t":"text","v":" в том же файле."}],[{"t":"text","v":"Навыки, расписания, агенты и инструменты на сайте порождаются из спецификаций "},{"t":"code","v":".t27"},{"t":"text","v":" через вендорный wasm компилятора "},{"t":"code","v":"[measured]"},{"t":"text","v":": счётчики находятся в заголовке-лестнице каждого обозревателя и в главе \"Свидетели и доказательства\"; "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":" каждой спецификации записан в JSON, который сайт отдаёт."}]],"type":"ul"}],"heading":"Утверждения и их статус","id":"утверждения-и-их-статус"},{"blocks":[{"runs":[{"t":"text","v":"Чего проект "},{"t":"strong","v":"не"},{"t":"text","v":" утверждает, его собственными словами:"}],"type":"p"},{"items":[[{"t":"strong","v":"Кремния нет."},{"t":"text","v":" "},{"t":"code","v":"[not claimed]"},{"t":"text","v":" Дизайн под SKY130 был подготовлен через Tiny Tapeout; заявки TTSKY26a/TTSKY26b были отозваны до изготовления с возвратом средств, поэтому кристалла не существует и никакое измерение на кремнии не заявляется ("},{"t":"code","v":"trinity:apps/website/src/content/tnf.ts"},{"t":"text","v":", ответ \"Is this an ASIC result?\"). Отображение в ASIC и многоугловая характеризация также не заявляются. Аппаратная граница -- названная выше FPGA."}],[{"t":"strong","v":"Слов-рейтингов нет."},{"t":"text","v":" Канон запрещает слова-рейтинги -- превосходные и исключающие эпитеты, перечисленные в правилах каталога "},{"t":"code","v":"specs/docs/README.md"},{"t":"text","v":", -- в собственной прозе проекта; контроль качества сайта ("},{"t":"code","v":"check:docs"},{"t":"text","v":", "},{"t":"code","v":"check:queen-honesty"},{"t":"text","v":") роняет сборку, в которой они встречаются. Сравнения даются как числа с источником либо не даются вовсе."}],[{"t":"strong","v":"Verilog, который компилятор t27 порождает из спецификации формата, -- это оболочка модуля"},{"t":"text","v":": по корпусу он даёт 0 LUT и 0 триггеров ("},{"t":"code","v":"siliconHistory.ts"},{"t":"text","v":", примечание о происхождении). Результаты на FPGA принадлежат рукописному RTL, проверенному против независимого оракула. Спецификация и RTL описывают один и тот же формат; это не один и тот же артефакт."}],[{"t":"strong","v":"`typecheck.ok` от wasm необходим, но не достаточен."},{"t":"text","v":" Он остаётся "},{"t":"code","v":"true"},{"t":"text","v":" при неверной аннотации вроде "},{"t":"code","v":"str = 5"},{"t":"text","v":"; генераторы сайта поверх него проверяют схему полей каждой карточки ("},{"t":"code","v":"specs/skills/README.md"},{"t":"text","v":")."}],[{"t":"strong","v":"Два репозитория, два списка."},{"t":"text","v":" Инструменты, агенты и задания "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" и "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" записаны под своим "},{"t":"code","v":"REPO"},{"t":"text","v":"; ничего не слито в один список."}]],"type":"ul"}],"heading":"Границы","id":"границы"},{"blocks":[{"runs":[{"t":"text","v":"Семь глав объявлены в "},{"t":"code","v":"specs/docs/system.t27"},{"t":"text","v":" и по одной спецификации на главу в "},{"t":"code","v":"specs/docs/chapters/"},{"t":"text","v":". Каждая спецификация главы называет свои "},{"t":"code","v":"SOURCES"},{"t":"text","v":" (цитируемые файлы), "},{"t":"code","v":"SECTIONS"},{"t":"text","v":" (заголовки этого текста, проверяемые при сборке), фигуру, которую сайт рисует по данным ("},{"t":"code","v":"DIAGRAM"},{"t":"text","v":"), и таблицу, порождаемую из каталогов ("},{"t":"code","v":"TABLE"},{"t":"text","v":"). Английская проза канонична и лежит в "},{"t":"code","v":"docs/system/.md"},{"t":"text","v":" в "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":"; русский текст идёт через контракт перевода "},{"t":"code","v":"specs/i18n/docs-ru.t27"},{"t":"text","v":" и бандл, который он называет в "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":". При расхождении побеждает английский."}],"type":"p"},{"runs":[{"t":"text","v":"Каждая фигура на сайте несёт подпись и строку источника данных: JSON, из которого она нарисована, и коммит, на котором этот JSON порождён. Каждая таблица порождена; ни одна не набрана вручную. Число без строки источника -- дефект; сообщайте о нём как о дефекте."}],"type":"p"}],"heading":"Как читать эту документацию","id":"как-читать-эту-документацию"}]}},"bodyPath":"docs/system/project.md","bodySha256":"0674727c51ecb860eb65e6fe6a21d1ef0e9b5af97bb592d4ea12eefddddce070","diagram":"ladder","discarded":0,"enabled":true,"id":"docs/project","links":{"body":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/system/project.md","spec":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/chapters/project.t27"},"moduleName":"docs_chapter_project","order":1,"sections":[{"heading":{"en":"What t27 and Trinity are","ru":"Что такое t27 и Trinity"},"id":"what-t27-and-trinity-are"},{"heading":{"en":"Claims and their status","ru":"Утверждения и их статус"},"id":"claims-and-their-status"},{"heading":{"en":"Boundaries","ru":"Границы"},"id":"boundaries"},{"heading":{"en":"How to read this documentation","ru":"Как читать эту документацию"},"id":"how-to-read-this-documentation"}],"sha256":"4023211070b18117f67404d4c7941ea02e079d1c07aa41515aee69704bab07a3","sources":[{"kind":"file","path":"SOUL.md","rel":"SOUL.md","repo":"t27","sha256":"cb9b44e13d6d0b314f9626f9cca438e5f17ed6847b194220f9e80b32209e052e","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md","where":"vendored"},{"kind":"file","path":"AGENTS.md","rel":"AGENTS.md","repo":"t27","sha256":"51d2674ae7331a2df71756fbda3c723b467073a4b59190fed0d9b34023bfea2b","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","where":"vendored"},{"kind":"file","path":"specs/docs/system.t27","rel":"specs/docs/system.t27","repo":"t27","sha256":"ab7ee1773622aa46442aec7aeca5cdd1a1a3c36f6321451a5e426df80a75945b","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/system.t27","where":"vendored"},{"kind":"file","path":"trinity:apps/website/src/data/siliconHistory.ts","rel":"apps/website/src/data/siliconHistory.ts","repo":"trinity","sha256":"b3982843a21f9db7da9ba4bc21c403f078e413484319983cdcd5e5877194b2c6","url":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/apps/website/src/data/siliconHistory.ts","where":"checkout"},{"kind":"file","path":"trinity:apps/website/src/content/tnf.ts","rel":"apps/website/src/content/tnf.ts","repo":"trinity","sha256":"82241fc4116482f5784785bf7456b1b620d55e62b721e4b83ad8404e3b068ac3","url":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/apps/website/src/content/tnf.ts","where":"checkout"}],"specPath":"specs/docs/chapters/project.t27","stem":"project","table":{"columns":["tag","claim","sources"],"kind":"claims","note":"","rows":[{"claim":"The GoldenFloat catalog holds 83 formats -- `FAMILY_TOTALS.catalog` in `trinity:apps/website/src/data/siliconHistory.ts`, transcribed from the hardware conformance report of `gHashTag/trinity-fpga` (v0.2), which is th...","sources":["trinity:apps/website/src/data/siliconHistory.ts","gHashTag/trinity-fpga"],"tag":"declared"},{"claim":"Hardware numbers exist for a subset of the catalog: at v0.2 the same file records 27 formats at Tier E (public chain: CI run id, bitstream SHA-256, JTAG flash, UART log), 13 with decode in hardware, 7 with ADD and 7 w...","sources":[],"tag":"measured"},{"claim":"Every hardware number was measured on one board: ALINX AX7203, Xilinx Artix-7 `xc7a200tfbg484-2`, open toolchain (yosys, nextpnr-xilinx, Project X-Ray), `DEVICE` and `TOOLCHAIN` in the same file.","sources":[],"tag":"measured"},{"claim":"Skills, crons, agents and tools on the site are generated from `.t27` specs through the vendored compiler wasm: the counts are in the ladder header of every Explorer and in the \"Evidence and witnesses\" chapter; `typec...","sources":[],"tag":"measured"},{"claim":"No silicon. A SKY130 design was prepared through Tiny Tapeout; the TTSKY26a/TTSKY26b submissions were withdrawn before fabrication and refunded, so no die exists and no measurement on silicon is claimed (`trinity:apps...","sources":["trinity:apps/website/src/content/tnf.ts"],"tag":"not claimed"}],"source":"status-tagged bullets of docs/system/project.md"},"title":{"en":"The project","ru":"Проект"},"typecheckOk":true},{"body":{"en":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"code","v":"AGENTS.md"},{"t":"text","v":" is the entry point for humans and coding agents; its first section fixes the reading order and which document wins when two disagree:"}],"type":"p"},{"items":[[{"t":"code","v":"SOUL.md"},{"t":"text","v":" -- the canonical constitution: language policy, TDD mandate, validation."}],[{"t":"code","v":"docs/nona-03-manifest/SOUL.md"},{"t":"text","v":" -- the expanded reference; if it conflicts with root "},{"t":"code","v":"SOUL.md"},{"t":"text","v":", root wins."}],[{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":" -- Articles SSOT-MATH, LANG-EN and DOCS-TREE, and the invariant laws."}],[{"t":"code","v":"TASK.md"},{"t":"text","v":" with "},{"t":"code","v":"docs/coordination/TASK_PROTOCOL.md"},{"t":"text","v":" -- multi-agent coordination, locks, anchor issue."}],[{"t":"text","v":"The nearest "},{"t":"code","v":"OWNERS.md"},{"t":"text","v":" -- domain ownership for the directories you edit."}]],"type":"ol"},{"runs":[{"t":"code","v":"CLAUDE.md"},{"t":"text","v":" adds the operational loop for an autonomous agent and says, in its first line, that repo-specific law always overrides generic tooling defaults. The rest of this chapter quotes these files; the site links each quotation to the file at the commit the documentation was generated from."}],"type":"p"}],"heading":"The constitutional stack","id":"the-constitutional-stack"},{"blocks":[{"runs":[{"t":"code","v":"SOUL.md"},{"t":"text","v":" is organised in articles. The ones every change touches:"}],"type":"p"},{"items":[[{"t":"strong","v":"Article I, The Language Policy."},{"t":"text","v":" Source files must be ASCII-only (U+0000..U+007F); identifiers and comments must be English. The rule names "},{"t":"code","v":".t27"},{"t":"text","v":", "},{"t":"code","v":".tri"},{"t":"text","v":", "},{"t":"code","v":".zig"},{"t":"text","v":", "},{"t":"code","v":".c"},{"t":"text","v":", "},{"t":"code","v":".h"},{"t":"text","v":", "},{"t":"code","v":".v"},{"t":"text","v":" and build scripts. Cyrillic and other non-Latin scripts are forbidden in identifiers and comments unless an Architect-approved exception exists (section 1.1). First-party documentation is English (section 1.2, restated as Article LANG-EN of the constitution)."}],[{"t":"strong","v":"Article II, The TDD Mandate."},{"t":"text","v":" \"Every "},{"t":"code","v":".t27"},{"t":"text","v":" specification MUST contain at least one of\" a "},{"t":"code","v":".test"},{"t":"text","v":" section, an "},{"t":"code","v":".invariant"},{"t":"text","v":" section or a "},{"t":"code","v":".bench"},{"t":"text","v":" section. \"No exceptions. A spec without tests is not a specification -- it is a draft.\" (section 2.1, the Iron Law)."}],[{"t":"strong","v":"Article III, No Prototype Mode."},{"t":"text","v":" There is no "},{"t":"code","v":"--allow-no-tests"},{"t":"text","v":" flag and no grace period; the parser rejects a spec without tests with "},{"t":"code","v":"TDD contract violated"},{"t":"text","v":"."}],[{"t":"strong","v":"Article IV, Validation Requirements."},{"t":"text","v":" Enforcement at parser level, at codegen level and at build time."}],[{"t":"strong","v":"Article V, Amendment Process."},{"t":"text","v":" What can and cannot be amended."}],[{"t":"strong","v":"Article VI, Enforcement."},{"t":"text","v":" Agent compliance, human compliance, automated enforcement."}],[{"t":"strong","v":"Article VII, Sacred Trinity."},{"t":"text","v":" Three pillars: the identity phi^2 + 1/phi^2 = 3, ternary computation, and TDD inside the spec. \"Violating any violates the whole.\""}],[{"t":"strong","v":"Article VIII, NO-NEW-SHELL."},{"t":"text","v":" No new "},{"t":"code","v":"*.sh"},{"t":"text","v":" on the engineering critical path; the permitted exceptions are the exec-only shim "},{"t":"code","v":"scripts/tri"},{"t":"text","v":" and the one-time "},{"t":"code","v":"scripts/setup-git-hooks.sh"},{"t":"text","v":". Section 8.3 extends the rule to Python: validation, conformance gates and doc language checks live in "},{"t":"code","v":"t27c"},{"t":"text","v":" (Rust)."}]],"type":"ul"},{"runs":[{"t":"text","v":"The catalog specs under "},{"t":"code","v":"specs/skills"},{"t":"text","v":", "},{"t":"code","v":"specs/crons"},{"t":"text","v":", "},{"t":"code","v":"specs/agents"},{"t":"text","v":", "},{"t":"code","v":"specs/tools"},{"t":"text","v":" and "},{"t":"code","v":"specs/docs"},{"t":"text","v":" are declarative constant modules and carry no "},{"t":"code","v":".test"},{"t":"text","v":" block; the site's generators check their field schema instead. Whether Article II applies to declarative catalog modules is not decided in "},{"t":"code","v":"SOUL.md"},{"t":"text","v":" today; this documentation records the practice and does not claim a ruling."}],"type":"p"}],"heading":"SOUL articles","id":"soul-articles"},{"blocks":[{"runs":[{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":", section 2, defines seven Invariant Laws that \"never change without constitutional amendment\". The site renders the table from that file; in short:"}],"type":"p"},{"items":[[{"t":"strong","v":"L1 TRACEABILITY"},{"t":"text","v":" -- no code merged without "},{"t":"code","v":"Closes #N"},{"t":"text","v":"; every PR references an issue. Enforced by "},{"t":"code","v":".github/workflows/issue-gate.yml"},{"t":"text","v":"."}],[{"t":"strong","v":"L2 GENERATION"},{"t":"text","v":" -- files under "},{"t":"code","v":"gen/"},{"t":"text","v":" are generated; edit the "},{"t":"code","v":".t27"},{"t":"text","v":" spec instead."}],[{"t":"strong","v":"L3 PURITY"},{"t":"text","v":" -- ASCII-only identifiers and comments in "},{"t":"code","v":".t27"},{"t":"text","v":", "},{"t":"code","v":".zig"},{"t":"text","v":", "},{"t":"code","v":".v"},{"t":"text","v":", "},{"t":"code","v":".c"},{"t":"text","v":"."}],[{"t":"strong","v":"L4 TESTABILITY"},{"t":"text","v":" -- every "},{"t":"code","v":".t27"},{"t":"text","v":" spec must contain "},{"t":"code","v":"test"},{"t":"text","v":", "},{"t":"code","v":"invariant"},{"t":"text","v":" or "},{"t":"code","v":"bench"},{"t":"text","v":"."}],[{"t":"strong","v":"L5 IDENTITY"},{"t":"text","v":" -- phi^2 = phi + 1 on the reals, hence phi^2 + 1/phi^2 = 3; IEEE binary64 checks use a tolerance."}],[{"t":"strong","v":"L6 CEILING"},{"t":"text","v":" -- "},{"t":"code","v":"conformance/FORMAT-SPEC-001.json"},{"t":"text","v":" and "},{"t":"code","v":"specs/numeric/gf16.t27"},{"t":"text","v":" are the numeric ceiling, never forked."}],[{"t":"strong","v":"L7 UNITY"},{"t":"text","v":" -- no new "},{"t":"code","v":"*.sh"},{"t":"text","v":" on the critical path for validation, generation or data; "},{"t":"code","v":"t27c"},{"t":"text","v":" and "},{"t":"code","v":"tri"},{"t":"text","v":" only."}]],"type":"ul"},{"runs":[{"t":"text","v":"Priority is Asimov-style: L1 > L2 > L3 > L4 > L5 > L6 > L7. \"In conflict scenarios, the higher-priority law prevails.\" The legacy names (ISSUE-GATE, NO-HAND-EDIT-GEN, SOUL-ASCII, TDD-MANDATE, PHI-IDENTITY, TRINITY-SACRED, NO-NEW-SHELL) map one-to-one onto L1..L7 in the constitution's alias index."}],"type":"p"},{"runs":[{"t":"text","v":"One discrepancy is recorded rather than resolved: "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":" section 5 speaks of \"the seven Invariant Laws (L1-L8)\" and writes the priority as \"L1 > ... > L8\", while its table and the constitution define L1..L7 only. No L8 is defined in either file at the commit this documentation was generated from. The figure next to this chapter therefore shows seven laws."}],"type":"p"}],"heading":"Invariant laws and their priority","id":"invariant-laws-and-their-priority"},{"blocks":[{"runs":[{"t":"code","v":"AGENTS.md"},{"t":"text","v":" section 3 lists six non-negotiables, quoted in short:"}],"type":"p"},{"items":[[{"t":"text","v":"Specs are source of truth -- behaviour belongs in "},{"t":"code","v":".t27"},{"t":"text","v":" / "},{"t":"code","v":".tri"},{"t":"text","v":"; generated "},{"t":"code","v":"gen/"},{"t":"text","v":" output is not hand-edited except for documented exceptions."}],[{"t":"text","v":"TDD inside specs -- new or changed specs need "},{"t":"code","v":"test"},{"t":"text","v":", "},{"t":"code","v":"invariant"},{"t":"text","v":" and/or "},{"t":"code","v":"bench"},{"t":"text","v":" where SOUL requires it."}],[{"t":"text","v":"English + ASCII -- first-party Markdown and source comments per LANG-EN and ADR-004."}],[{"t":"text","v":"No new Python on the verification critical path."}],[{"t":"text","v":"Issue gate -- PRs link issues ("},{"t":"code","v":"Closes #N"},{"t":"text","v":") where project policy requires it."}],[{"t":"text","v":"Ring / gold work -- parser, compiler and spec changes follow the golden-rings canon; the compiler seal path is "},{"t":"code","v":"bootstrap/stage0/FROZEN_HASH"},{"t":"text","v":"."}]],"type":"ol"},{"runs":[{"t":"text","v":"Two rules of this documentation's own owner belong beside them, because the site enforces them: no absolute developer home path in any committed file (a checkout is "},{"t":"code","v":"T27_ROOT"},{"t":"text","v":" or "},{"t":"code","v":"git rev-parse --show-toplevel"},{"t":"text","v":"), and no hand edits to generated manifests -- change the spec and regenerate."}],"type":"p"}],"heading":"Non-negotiables for changes","id":"non-negotiables-for-changes"},{"blocks":[{"runs":[{"t":"code","v":"docs/coordination/TASK_PROTOCOL.md"},{"t":"text","v":" governs how several agents work in one tree at the same time. Its artifacts are the root "},{"t":"code","v":"TASK.md"},{"t":"text","v":" (anchor link, protocol version, locks, handoff log, work units) and the protocol document itself. The semantics, in short:"}],"type":"p"},{"items":[[{"t":"strong","v":"Lock (soft)."},{"t":"text","v":" Before editing sensitive paths the active agent should set lock holder, lock scope and lock until in the coordination state; others must not override without a handoff-log entry and an epoch bump. Locks are \"social + procedural\", not file locks."}],[{"t":"strong","v":"Epoch."},{"t":"text","v":" A version counter for the coordination state."}],[{"t":"strong","v":"Handoff log."},{"t":"text","v":" Append-preferred; handoffs are treated \"like narrow API contracts\"."}],[{"t":"strong","v":"Read / write order."},{"t":"text","v":" "},{"t":"code","v":"github-sync.json"},{"t":"text","v":" (queue snapshot), then "},{"t":"code","v":"TASK.md"},{"t":"text","v":" (locks and handoffs), then the anchor issue, then the target issue for the code change (section 4.4)."}]],"type":"ul"},{"runs":[{"t":"text","v":"Validation of "},{"t":"code","v":"TASK.md"},{"t":"text","v":"'s shape is automated (section 5); verification is human plus CI (section 6)."}],"type":"p"}],"heading":"TASK protocol","id":"task-protocol"},{"blocks":[{"runs":[{"t":"text","v":"The issue gate is law L1 in executable form: the constitution names "},{"t":"code","v":".github/workflows/issue-gate.yml"},{"t":"text","v":" as the enforcement of \"no code merged without "},{"t":"code","v":"Closes #N"},{"t":"text","v":"\". Everything the site documents came in through it -- the skills, crons, agents, tools and docs catalogs each have their issue and their "},{"t":"code","v":"docs/now/"},{"t":"text","v":" entry."}],"type":"p"},{"runs":[{"t":"text","v":"The TDD mandate is law L4 and SOUL Article II in executable form: the parser rejects a spec without a "},{"t":"code","v":"test"},{"t":"text","v":", "},{"t":"code","v":"invariant"},{"t":"text","v":" or "},{"t":"code","v":"bench"},{"t":"text","v":" block. For the catalog specs the site adds its own gate on top: a generator that compiles every card through the wasm and fails on a schema violation, an unknown cross-reference, or a binding stated on one side only (an agent that names a tool the tool does not name back, and the reverse)."}],"type":"p"}],"heading":"Issue gate and TDD mandate","id":"issue-gate-and-tdd-mandate"}],"title":"Constitution and the rules of the game for agents"},"ru":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"code","v":"AGENTS.md"},{"t":"text","v":" -- точка входа для людей и кодирующих агентов; его раздел 1 задаёт порядок чтения и то, какой документ побеждает при расхождении:"}],"type":"p"},{"items":[[{"t":"code","v":"SOUL.md"},{"t":"text","v":" -- каноническая конституция: языковая политика, мандат TDD, валидация."}],[{"t":"code","v":"docs/nona-03-manifest/SOUL.md"},{"t":"text","v":" -- расширенный справочник; при конфликте с корневым "},{"t":"code","v":"SOUL.md"},{"t":"text","v":" побеждает корневой."}],[{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":" -- статьи SSOT-MATH, LANG-EN и DOCS-TREE и инвариантные законы."}],[{"t":"code","v":"TASK.md"},{"t":"text","v":" вместе с "},{"t":"code","v":"docs/coordination/TASK_PROTOCOL.md"},{"t":"text","v":" -- координация нескольких агентов, блокировки, якорная задача."}],[{"t":"text","v":"Ближайший "},{"t":"code","v":"OWNERS.md"},{"t":"text","v":" -- владение областью для редактируемых каталогов."}]],"type":"ol"},{"runs":[{"t":"code","v":"CLAUDE.md"},{"t":"text","v":" добавляет операционный цикл автономного агента и в своей вводной строке говорит, что закон репозитория всегда перекрывает умолчания общего инструментария. Остальная часть главы цитирует эти файлы; сайт привязывает каждую цитату к файлу на коммите, на котором документация была порождена."}],"type":"p"}],"heading":"Конституционный стек","id":"конституционный-стек"},{"blocks":[{"runs":[{"t":"code","v":"SOUL.md"},{"t":"text","v":" организован статьями. Те, которых касается каждое изменение:"}],"type":"p"},{"items":[[{"t":"strong","v":"Статья I, языковая политика."},{"t":"text","v":" Исходные файлы должны быть только ASCII (U+0000..U+007F); идентификаторы и комментарии -- на английском. Правило называет "},{"t":"code","v":".t27"},{"t":"text","v":", "},{"t":"code","v":".tri"},{"t":"text","v":", "},{"t":"code","v":".zig"},{"t":"text","v":", "},{"t":"code","v":".c"},{"t":"text","v":", "},{"t":"code","v":".h"},{"t":"text","v":", "},{"t":"code","v":".v"},{"t":"text","v":" и сборочные скрипты. Кириллица и другие нелатинские письменности запрещены в идентификаторах и комментариях, если нет исключения, одобренного Архитектором (раздел 1.1). Собственная документация проекта -- на английском (раздел 1.2, повторено как статья LANG-EN конституции)."}],[{"t":"strong","v":"Статья II, мандат TDD."},{"t":"text","v":" \"Every "},{"t":"code","v":".t27"},{"t":"text","v":" specification MUST contain at least one of\" -- секцию "},{"t":"code","v":".test"},{"t":"text","v":", "},{"t":"code","v":".invariant"},{"t":"text","v":" или "},{"t":"code","v":".bench"},{"t":"text","v":". \"No exceptions. A spec without tests is not a specification -- it is a draft.\" (раздел 2.1, Железный закон)."}],[{"t":"strong","v":"Статья III, без режима прототипа."},{"t":"text","v":" Нет флага "},{"t":"code","v":"--allow-no-tests"},{"t":"text","v":" и нет льготного периода; парсер отвергает спецификацию без тестов с ошибкой "},{"t":"code","v":"TDD contract violated"},{"t":"text","v":"."}],[{"t":"strong","v":"Статья IV, требования валидации."},{"t":"text","v":" Контроль на уровне парсера, кодогенерации и сборки."}],[{"t":"strong","v":"Статья V, порядок поправок."},{"t":"text","v":" Что можно и что нельзя менять."}],[{"t":"strong","v":"Статья VI, принуждение."},{"t":"text","v":" Соблюдение агентами, людьми, автоматикой."}],[{"t":"strong","v":"Статья VII, Священная Троица."},{"t":"text","v":" Три опоры: тождество phi^2 + 1/phi^2 = 3, троичные вычисления и TDD внутри спецификации. \"Violating any violates the whole.\""}],[{"t":"strong","v":"Статья VIII, NO-NEW-SHELL."},{"t":"text","v":" Никаких новых "},{"t":"code","v":"*.sh"},{"t":"text","v":" на инженерном критическом пути; допустимые исключения -- шим "},{"t":"code","v":"scripts/tri"},{"t":"text","v":" (только exec) и одноразовый "},{"t":"code","v":"scripts/setup-git-hooks.sh"},{"t":"text","v":". Раздел 8.3 распространяет правило на Python: валидация, шлюзы конформности и проверки языка документации живут в "},{"t":"code","v":"t27c"},{"t":"text","v":" (Rust)."}]],"type":"ul"},{"runs":[{"t":"text","v":"Спецификации каталогов в "},{"t":"code","v":"specs/skills"},{"t":"text","v":", "},{"t":"code","v":"specs/crons"},{"t":"text","v":", "},{"t":"code","v":"specs/agents"},{"t":"text","v":", "},{"t":"code","v":"specs/tools"},{"t":"text","v":" и "},{"t":"code","v":"specs/docs"},{"t":"text","v":" -- декларативные модули констант и не несут блока "},{"t":"code","v":".test"},{"t":"text","v":"; вместо этого генераторы сайта проверяют схему их полей. Применима ли статья II к декларативным модулям каталогов, "},{"t":"code","v":"SOUL.md"},{"t":"text","v":" сегодня не решает; эта документация фиксирует практику и не претендует на постановление."}],"type":"p"}],"heading":"Статьи SOUL","id":"статьи-soul"},{"blocks":[{"runs":[{"t":"code","v":"docs/T27-CONSTITUTION.md"},{"t":"text","v":", раздел 2, определяет семь инвариантных законов, которые \"never change without constitutional amendment\". Сайт выводит таблицу из этого файла; кратко:"}],"type":"p"},{"items":[[{"t":"strong","v":"L1 TRACEABILITY"},{"t":"text","v":" -- код не вливается без "},{"t":"code","v":"Closes #N"},{"t":"text","v":"; каждый PR ссылается на задачу. Контроль -- "},{"t":"code","v":".github/workflows/issue-gate.yml"},{"t":"text","v":"."}],[{"t":"strong","v":"L2 GENERATION"},{"t":"text","v":" -- файлы под "},{"t":"code","v":"gen/"},{"t":"text","v":" порождены; правьте спецификацию "},{"t":"code","v":".t27"},{"t":"text","v":"."}],[{"t":"strong","v":"L3 PURITY"},{"t":"text","v":" -- только ASCII в идентификаторах и комментариях "},{"t":"code","v":".t27"},{"t":"text","v":", "},{"t":"code","v":".zig"},{"t":"text","v":", "},{"t":"code","v":".v"},{"t":"text","v":", "},{"t":"code","v":".c"},{"t":"text","v":"."}],[{"t":"strong","v":"L4 TESTABILITY"},{"t":"text","v":" -- каждая спецификация "},{"t":"code","v":".t27"},{"t":"text","v":" содержит "},{"t":"code","v":"test"},{"t":"text","v":", "},{"t":"code","v":"invariant"},{"t":"text","v":" или "},{"t":"code","v":"bench"},{"t":"text","v":"."}],[{"t":"strong","v":"L5 IDENTITY"},{"t":"text","v":" -- phi^2 = phi + 1 на вещественных числах, откуда phi^2 + 1/phi^2 = 3; проверки в IEEE binary64 используют допуск."}],[{"t":"strong","v":"L6 CEILING"},{"t":"text","v":" -- "},{"t":"code","v":"conformance/FORMAT-SPEC-001.json"},{"t":"text","v":" и "},{"t":"code","v":"specs/numeric/gf16.t27"},{"t":"text","v":" -- численный потолок, никогда не форкается."}],[{"t":"strong","v":"L7 UNITY"},{"t":"text","v":" -- никаких новых "},{"t":"code","v":"*.sh"},{"t":"text","v":" на критическом пути валидации, порождения или данных; только "},{"t":"code","v":"t27c"},{"t":"text","v":" и "},{"t":"code","v":"tri"},{"t":"text","v":"."}]],"type":"ul"},{"runs":[{"t":"text","v":"Приоритет -- в духе Азимова: L1 > L2 > L3 > L4 > L5 > L6 > L7. \"In conflict scenarios, the higher-priority law prevails.\" Прежние имена (ISSUE-GATE, NO-HAND-EDIT-GEN, SOUL-ASCII, TDD-MANDATE, PHI-IDENTITY, TRINITY-SACRED, NO-NEW-SHELL) отображаются один к одному на L1..L7 в индексе псевдонимов конституции."}],"type":"p"},{"runs":[{"t":"text","v":"Одно расхождение фиксируется, а не устраняется: "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":", раздел 5, говорит о \"the seven Invariant Laws (L1-L8)\" и пишет приоритет как \"L1 > ... > L8\", тогда как его таблица и конституция определяют только L1..L7. Ни в одном из файлов на коммите, на котором порождена документация, L8 не определён. Поэтому фигура рядом с этой главой показывает семь законов."}],"type":"p"}],"heading":"Инвариантные законы и их приоритет","id":"инвариантные-законы-и-их-приоритет"},{"blocks":[{"runs":[{"t":"code","v":"AGENTS.md"},{"t":"text","v":", раздел 3, перечисляет шесть неотменяемых требований, кратко:"}],"type":"p"},{"items":[[{"t":"text","v":"Спецификации -- источник истины: поведение живёт в "},{"t":"code","v":".t27"},{"t":"text","v":" / "},{"t":"code","v":".tri"},{"t":"text","v":"; порождённый вывод в "},{"t":"code","v":"gen/"},{"t":"text","v":" не правится вручную, кроме документированных исключений."}],[{"t":"text","v":"TDD внутри спецификаций: новые или изменённые спецификации несут "},{"t":"code","v":"test"},{"t":"text","v":", "},{"t":"code","v":"invariant"},{"t":"text","v":" и/или "},{"t":"code","v":"bench"},{"t":"text","v":" там, где этого требует SOUL."}],[{"t":"text","v":"Английский + ASCII: собственный Markdown и комментарии в коде по LANG-EN и ADR-004."}],[{"t":"text","v":"Никакого нового Python на критическом пути верификации."}],[{"t":"text","v":"Шлюз задач: PR ссылаются на задачи ("},{"t":"code","v":"Closes #N"},{"t":"text","v":") там, где этого требует политика проекта."}],[{"t":"text","v":"Работа с кольцами / золотом: изменения парсера, компилятора и спецификаций следуют канону golden-rings; путь печати компилятора -- "},{"t":"code","v":"bootstrap/stage0/FROZEN_HASH"},{"t":"text","v":"."}]],"type":"ol"},{"runs":[{"t":"text","v":"Два правила владельца этой документации стоят рядом с ними, потому что сайт их проверяет: никаких абсолютных путей домашнего каталога разработчика в закоммиченных файлах (чекаут -- это "},{"t":"code","v":"T27_ROOT"},{"t":"text","v":" или "},{"t":"code","v":"git rev-parse --show-toplevel"},{"t":"text","v":") и никакой ручной правки порождённых манифестов -- меняйте спецификацию и порождайте заново."}],"type":"p"}],"heading":"Неотменяемые требования к изменениям","id":"неотменяемые-требования-к-изменениям"},{"blocks":[{"runs":[{"t":"code","v":"docs/coordination/TASK_PROTOCOL.md"},{"t":"text","v":" определяет, как несколько агентов работают в одном дереве одновременно. Его артефакты -- корневой "},{"t":"code","v":"TASK.md"},{"t":"text","v":" (якорная ссылка, версия протокола, блокировки, журнал передач, единицы работы) и сам документ протокола. Семантика, кратко:"}],"type":"p"},{"items":[[{"t":"strong","v":"Блокировка (мягкая)."},{"t":"text","v":" Перед правкой чувствительных путей активный агент должен выставить держателя, область и срок блокировки в состоянии координации; другие не должны перебивать её без записи в журнале передач и повышения эпохи. Блокировки \"social + procedural\", не файловые."}],[{"t":"strong","v":"Эпоха."},{"t":"text","v":" Счётчик версии состояния координации."}],[{"t":"strong","v":"Журнал передач."},{"t":"text","v":" Предпочтительно дописываемый; передачи трактуются \"like narrow API contracts\"."}],[{"t":"strong","v":"Порядок чтения / записи."},{"t":"text","v":" "},{"t":"code","v":"github-sync.json"},{"t":"text","v":" (снимок очереди), затем "},{"t":"code","v":"TASK.md"},{"t":"text","v":" (блокировки и передачи), затем якорная задача, затем целевая задача для изменения кода (раздел 4.4)."}]],"type":"ul"},{"runs":[{"t":"text","v":"Проверка формы "},{"t":"code","v":"TASK.md"},{"t":"text","v":" автоматизирована (раздел 5); верификация -- человек плюс CI (раздел 6)."}],"type":"p"}],"heading":"Протокол TASK","id":"протокол-task"},{"blocks":[{"runs":[{"t":"text","v":"Шлюз задач -- закон L1 в исполняемой форме: конституция называет "},{"t":"code","v":".github/workflows/issue-gate.yml"},{"t":"text","v":" средством контроля правила \"no code merged without "},{"t":"code","v":"Closes #N"},{"t":"text","v":"\". Всё, что документирует сайт, прошло через него -- каталоги навыков, расписаний, агентов, инструментов и документации имеют свою задачу и свою запись в "},{"t":"code","v":"docs/now/"},{"t":"text","v":"."}],"type":"p"},{"runs":[{"t":"text","v":"Мандат TDD -- закон L4 и статья II SOUL в исполняемой форме: парсер отвергает спецификацию без блока "},{"t":"code","v":"test"},{"t":"text","v":", "},{"t":"code","v":"invariant"},{"t":"text","v":" или "},{"t":"code","v":"bench"},{"t":"text","v":". Для спецификаций каталогов сайт добавляет свой шлюз: генератор компилирует каждую карточку через wasm и роняет сборку при нарушении схемы, неизвестной перекрёстной ссылке или связи, заявленной лишь с одной стороны (агент называет инструмент, а инструмент не называет агента в ответ, и наоборот)."}],"type":"p"}],"heading":"Шлюз задач и мандат TDD","id":"шлюз-задач-и-мандат-tdd"}]}},"bodyPath":"docs/system/rules.md","bodySha256":"fead79216c0c6b88907a51098b2f4664e70efb0f48f5870ebd3e1a54f6cb8e9d","diagram":"law-hierarchy","discarded":0,"enabled":true,"id":"docs/rules","links":{"body":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/system/rules.md","spec":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/chapters/rules.t27"},"moduleName":"docs_chapter_rules","order":2,"sections":[{"heading":{"en":"The constitutional stack","ru":"Конституционный стек"},"id":"the-constitutional-stack"},{"heading":{"en":"SOUL articles","ru":"Статьи SOUL"},"id":"soul-articles"},{"heading":{"en":"Invariant laws and their priority","ru":"Инвариантные законы и их приоритет"},"id":"invariant-laws-and-their-priority"},{"heading":{"en":"Non-negotiables for changes","ru":"Неотменяемые требования к изменениям"},"id":"non-negotiables-for-changes"},{"heading":{"en":"TASK protocol","ru":"Протокол TASK"},"id":"task-protocol"},{"heading":{"en":"Issue gate and TDD mandate","ru":"Шлюз задач и мандат TDD"},"id":"issue-gate-and-tdd-mandate"}],"sha256":"3a27bd5a4d2a3afccb342301f277a906103ff8c6fd802bace787ed808e89e22f","sources":[{"kind":"file","path":"SOUL.md","rel":"SOUL.md","repo":"t27","sha256":"cb9b44e13d6d0b314f9626f9cca438e5f17ed6847b194220f9e80b32209e052e","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md","where":"vendored"},{"kind":"file","path":"AGENTS.md","rel":"AGENTS.md","repo":"t27","sha256":"51d2674ae7331a2df71756fbda3c723b467073a4b59190fed0d9b34023bfea2b","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","where":"vendored"},{"kind":"file","path":"CLAUDE.md","rel":"CLAUDE.md","repo":"t27","sha256":"43a5d51f12e25f9aa23aacc837005fe9d8a7bb5637e4857b0b31abab88730d05","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/CLAUDE.md","where":"vendored"},{"kind":"file","path":"docs/T27-CONSTITUTION.md","rel":"docs/T27-CONSTITUTION.md","repo":"t27","sha256":"2c06724425f721ef6356edc9a14e4f1af530d1246c5c6a318fd42f59aaa319a5","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/T27-CONSTITUTION.md","where":"vendored"},{"kind":"file","path":"docs/coordination/TASK_PROTOCOL.md","rel":"docs/coordination/TASK_PROTOCOL.md","repo":"t27","sha256":"dbbea6fe6eb3ce0df60cf58bb0c2c2973313523a9f9530aa792f07dcb65a38ef","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/coordination/TASK_PROTOCOL.md","where":"vendored"}],"specPath":"specs/docs/chapters/rules.t27","stem":"rules","table":{"columns":["law","name","body","enforcement"],"kind":"laws","note":"Priority: L1 > L2 > … > L7","rows":[{"body":"No code merged without `Closes #N` — every PR must reference a GitHub issue","enforcement":"`.github/workflows/issue-gate.yml`","law":"L1","name":"TRACEABILITY"},{"body":"Files under `gen/` are generated; edit the `.t27` spec instead","enforcement":"`./target/release/t27c validate-gen-headers`","law":"L2","name":"GENERATION"},{"body":"All `.t27` / `.zig` / `.v` / `.c` source — ASCII-only identifiers & comments","enforcement":"`SOUL.md`, `ADR-004`, build.rs language checks","law":"L3","name":"PURITY"},{"body":"Every `.t27` spec must contain `test` / `invariant` / `bench`","enforcement":"Ring 037 / #132, parser enforcement","law":"L4","name":"TESTABILITY"},{"body":"**K2 core:** φ² = φ + 1 on ℝ; consequence φ² + φ⁻² = 3; IEEE f64 checks use tolerance","enforcement":"`NUMERIC-CORE-PALETTE-REGISTRY.md`, `specs/math/constants.t27`","law":"L5","name":"IDENTITY"},{"body":"`conformance/FORMAT-SPEC-001.json` + `specs/numeric/gf16.t27` are the numeric ceiling — never forked","enforcement":"SSOT: seal coverage CI","law":"L6","name":"CEILING"},{"body":"No new `*.sh` on the critical path for validation / gen / data","enforcement":"`SOUL.md` Article VIII; `t27c` + `tri` only","law":"L7","name":"UNITY"}],"source":"docs/T27-CONSTITUTION.md, section 2"},"title":{"en":"Constitution and the rules of the game for agents","ru":"Конституция и правила игры для агентов"},"typecheckOk":true},{"body":{"en":{"lead":[{"runs":[{"t":"text","v":"The site orders what the repositories ship into five layers and shows the same ladder in the header of every Explorer: "},{"t":"strong","v":"Specs -> Skills -> Crons -> Agents -> Tools"},{"t":"text","v":". Each layer is a directory of "},{"t":"code","v":".t27"},{"t":"text","v":" files in "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":", each has a README that states its schema, and each is rendered from those files by one generator through the compiler wasm. The ladder counts on the site are read from the generated JSON at build time; the table next to this chapter shows them for the commit the documentation was generated from."}],"type":"p"}],"sections":[{"blocks":[{"runs":[{"t":"text","v":"The base layer is the "},{"t":"code","v":".t27"},{"t":"text","v":" corpus itself: everything under "},{"t":"code","v":"specs/"},{"t":"text","v":" in "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":", from the language core and the numeric formats to the catalogs below. The site vendors a byte-identical copy under "},{"t":"code","v":"apps/website/public/t27/files/"},{"t":"text","v":" and compiles every file with the vendored "},{"t":"code","v":"t27_compiler.wasm"},{"t":"text","v":" at build time. The Spec Explorer ("},{"t":"code","v":"#/specs"},{"t":"text","v":") shows each file with its verdict; the manifest that lists them ("},{"t":"code","v":"public/t27/manifest.json"},{"t":"text","v":") is generated and never hand-edited."}],"type":"p"}],"heading":"Specs","id":"specs"},{"blocks":[{"runs":[{"t":"text","v":"A skill is a published procedure an agent can run -- a "},{"t":"code","v":"SKILL.md"},{"t":"text","v":" in one of the repositories. "},{"t":"code","v":"specs/skills/.t27"},{"t":"text","v":" declares each one (KIND, ID, NAME, REPO, SOURCE, SUMMARY_EN, COMMAND, SPECS, TAGS, ENABLED, TIMEOUT_MIN). The witness label on a skill card says how the card relates to the code: "},{"t":"code","v":"spec+code"},{"t":"text","v":" when both the spec and the "},{"t":"code","v":"SKILL.md"},{"t":"text","v":" exist, "},{"t":"code","v":"spec-only"},{"t":"text","v":" when only the spec does, "},{"t":"code","v":"code-only"},{"t":"text","v":" when a skill file has no spec yet. Skill Explorer: "},{"t":"code","v":"#/skills"},{"t":"text","v":"."}],"type":"p"}],"heading":"Skills","id":"skills"},{"blocks":[{"runs":[{"t":"text","v":"A cron is a scheduled job: a workflow schedule, a Railway timer, a daemon loop. "},{"t":"code","v":"specs/crons/.t27"},{"t":"text","v":" declares each (HOST, REPO, SERVICE, INTERVAL_MS, TZ, RUNS, RUNS_NOTE, ENABLED, NOTE, ON_FAILURE, CONTROL). "},{"t":"code","v":"RUNS"},{"t":"text","v":" lists the skill IDs a job invokes, and only where the source shows the invocation; where none is found "},{"t":"code","v":"RUNS"},{"t":"text","v":" is empty and "},{"t":"code","v":"RUNS_NOTE"},{"t":"text","v":" says so (\"no skill invocation found in source\"). The Cron Explorer ("},{"t":"code","v":"#/crons"},{"t":"text","v":") computes the next firing from "},{"t":"code","v":"INTERVAL_MS"},{"t":"text","v":" and "},{"t":"code","v":"TZ"},{"t":"text","v":". A job that runs no skill is a job the site cannot tie to the layers above; that is recorded, not hidden."}],"type":"p"}],"heading":"Crons","id":"crons"},{"blocks":[{"runs":[{"t":"text","v":"The 27 letters of the alphabet, one spec each: "},{"t":"code","v":"specs/agents/.t27"},{"t":"text","v":" with LETTER, ORDINAL, LETTER_NAME, NAME, DOMAIN, ARCHETYPE, REGISTER, LAYER, SUMMARY_EN, the three binding documents (SOUL, AGENTS_DOC, ALPHABET), KEY_FILES, the entry and exit invariants, CLARA_ROLE, SKILLS with SKILLS_NOTE and TOOLS with TOOLS_NOTE. An agent holds a skill or a tool only where a source line binds it -- a "},{"t":"code","v":".claude/agents/*.md"},{"t":"text","v":" file, the alphabet, a phase description -- and the note cites that line or says why the list is empty. The generator fails the build on an unknown skill or tool ID and on a binding stated on one side only. Agent Explorer: "},{"t":"code","v":"#/agents"},{"t":"text","v":". The full table is the next chapter."}],"type":"p"}],"heading":"Agents","id":"agents"},{"blocks":[{"runs":[{"t":"text","v":"What an agent can call: the commands of the "},{"t":"code","v":"tri"},{"t":"text","v":" CLI and the tools of the MCP servers. "},{"t":"code","v":"specs/tools/tri/.t27"},{"t":"text","v":" is read from the clap "},{"t":"code","v":"Commands"},{"t":"text","v":" enum in "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":" (one card per variant, with its nested actions and arguments); "},{"t":"code","v":"specs/tools/mcp/.t27"},{"t":"text","v":" from the server sources, manifests and "},{"t":"code","v":".mcp.json"},{"t":"text","v":" entries of both repositories, with the tool names, descriptions and input-schema keys. The witness on every tri card is "},{"t":"code","v":"source-parse"},{"t":"text","v":" (the enum was read at a recorded commit) until someone diffs the list against "},{"t":"code","v":"tri --help"},{"t":"text","v":" and relabels it "},{"t":"code","v":"help-output"},{"t":"text","v":". Servers whose code is a published package outside the repositories carry "},{"t":"code","v":"EXTERNAL = true"},{"t":"text","v":". Tool Explorer: "},{"t":"code","v":"#/tools"},{"t":"text","v":"."}],"type":"p"}],"heading":"Tools","id":"tools"},{"blocks":[{"runs":[{"t":"text","v":"One generator, "},{"t":"code","v":"scripts/agents-from-specs.mjs"},{"t":"text","v":" in "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":", reads the vendored "},{"t":"code","v":".t27"},{"t":"text","v":" files, compiles each through the wasm, reads the constants of the compiled module, checks them against the schema of the layer, resolves every cross-reference (skill IDs in crons and agents, tool IDs in agents, agent letters in tools, spec paths in skills), and writes one JSON per layer under "},{"t":"code","v":"public/"},{"t":"text","v":". It runs in "},{"t":"code","v":"prebuild"},{"t":"text","v":", so a spec that does not compile or a reference that does not resolve stops the site from building. No "},{"t":"code","v":".t27"},{"t":"text","v":" is parsed with a regular expression anywhere in that path."}],"type":"p"},{"runs":[{"t":"text","v":"Translations follow the same rule. "},{"t":"code","v":"specs/i18n/-.t27"},{"t":"text","v":" declares which fields of which specs a bundle may translate and where the bundle lives; the bundle ("},{"t":"code","v":"apps/website/i18n/*.json"},{"t":"text","v":") carries the text; the generator checks that every bundle entry names an existing spec and reports coverage. The specs stay English-only."}],"type":"p"}],"heading":"From spec to site","id":"from-spec-to-site"},{"blocks":[{"runs":[{"t":"text","v":"Agents log what happened under "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":" in each repository: episodes as JSON, notes as Markdown. "},{"t":"code","v":"scripts/sync-agents-experience.mjs"},{"t":"text","v":" reads both trees at their current commit and writes "},{"t":"code","v":"public/agents/experience.json"},{"t":"text","v":" with counts per repository and, where an episode names an agent letter, the attribution. At the commit this documentation was generated from no episode is attributed to any letter -- the field the sync looks for is absent from every episode -- and the agent cards say so. The snapshot records the commit of each tree, not the path of the checkout."}],"type":"p"}],"heading":"Experience","id":"experience"}],"title":"The five-layer system"},"ru":{"lead":[{"runs":[{"t":"text","v":"Сайт упорядочивает то, что поставляют репозитории, в пять слоёв и показывает одну и ту же лестницу в заголовке каждого обозревателя: "},{"t":"strong","v":"Specs -> Skills -> Crons -> Agents -> Tools"},{"t":"text","v":". Каждый слой -- каталог файлов "},{"t":"code","v":".t27"},{"t":"text","v":" в "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":", у каждого есть README со схемой, и каждый отображается из этих файлов одним генератором через wasm компилятора. Счётчики лестницы на сайте читаются из порождённого JSON при сборке; таблица рядом с этой главой показывает их для коммита, на котором порождена документация."}],"type":"p"}],"sections":[{"blocks":[{"runs":[{"t":"text","v":"Базовый слой -- сам корпус "},{"t":"code","v":".t27"},{"t":"text","v":": всё под "},{"t":"code","v":"specs/"},{"t":"text","v":" в "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":", от ядра языка и численных форматов до каталогов ниже. Сайт хранит побайтово идентичную вендорную копию под "},{"t":"code","v":"apps/website/public/t27/files/"},{"t":"text","v":" и компилирует каждый файл вендорным "},{"t":"code","v":"t27_compiler.wasm"},{"t":"text","v":" при сборке. Обозреватель спецификаций ("},{"t":"code","v":"#/specs"},{"t":"text","v":") показывает каждый файл с его вердиктом; перечисляющий их манифест ("},{"t":"code","v":"public/t27/manifest.json"},{"t":"text","v":") порождается и никогда не правится вручную."}],"type":"p"}],"heading":"Спецификации","id":"спецификации"},{"blocks":[{"runs":[{"t":"text","v":"Навык -- опубликованная процедура, которую может выполнить агент: "},{"t":"code","v":"SKILL.md"},{"t":"text","v":" в одном из репозиториев. "},{"t":"code","v":"specs/skills/.t27"},{"t":"text","v":" объявляет каждый (KIND, ID, NAME, REPO, SOURCE, SUMMARY_EN, COMMAND, SPECS, TAGS, ENABLED, TIMEOUT_MIN). Метка свидетеля на карточке навыка говорит, как карточка соотносится с кодом: "},{"t":"code","v":"spec+code"},{"t":"text","v":", когда есть и спецификация, и "},{"t":"code","v":"SKILL.md"},{"t":"text","v":"; "},{"t":"code","v":"spec-only"},{"t":"text","v":", когда есть только спецификация; "},{"t":"code","v":"code-only"},{"t":"text","v":", когда у файла навыка ещё нет спецификации. Обозреватель навыков: "},{"t":"code","v":"#/skills"},{"t":"text","v":"."}],"type":"p"}],"heading":"Навыки","id":"навыки"},{"blocks":[{"runs":[{"t":"text","v":"Расписание -- запланированное задание: расписание workflow, таймер Railway, цикл демона. "},{"t":"code","v":"specs/crons/.t27"},{"t":"text","v":" объявляет каждое (HOST, REPO, SERVICE, INTERVAL_MS, TZ, RUNS, RUNS_NOTE, ENABLED, NOTE, ON_FAILURE, CONTROL). "},{"t":"code","v":"RUNS"},{"t":"text","v":" перечисляет ID навыков, которые запускает задание, и только там, где источник показывает вызов; где вызова не найдено, "},{"t":"code","v":"RUNS"},{"t":"text","v":" пуст, а "},{"t":"code","v":"RUNS_NOTE"},{"t":"text","v":" говорит об этом (\"no skill invocation found in source\"). Обозреватель расписаний ("},{"t":"code","v":"#/crons"},{"t":"text","v":") вычисляет следующий запуск по "},{"t":"code","v":"INTERVAL_MS"},{"t":"text","v":" и "},{"t":"code","v":"TZ"},{"t":"text","v":". Задание, не запускающее навык, -- это задание, которое сайт не может связать со слоями выше; это записывается, а не скрывается."}],"type":"p"}],"heading":"Расписания","id":"расписания"},{"blocks":[{"runs":[{"t":"text","v":"27 букв алфавита, по одной спецификации на каждую: "},{"t":"code","v":"specs/agents/.t27"},{"t":"text","v":" с LETTER, ORDINAL, LETTER_NAME, NAME, DOMAIN, ARCHETYPE, REGISTER, LAYER, SUMMARY_EN, тремя связывающими документами (SOUL, AGENTS_DOC, ALPHABET), KEY_FILES, входным и выходным инвариантами, CLARA_ROLE, SKILLS с SKILLS_NOTE и TOOLS с TOOLS_NOTE. Агент держит навык или инструмент только там, где его связывает строка источника -- файл "},{"t":"code","v":".claude/agents/*.md"},{"t":"text","v":", алфавит, описание фазы, -- и примечание цитирует эту строку или объясняет, почему список пуст. Генератор роняет сборку на неизвестном ID навыка или инструмента и на связи, заявленной лишь с одной стороны. Обозреватель агентов: "},{"t":"code","v":"#/agents"},{"t":"text","v":". Полная таблица -- в следующей главе."}],"type":"p"}],"heading":"Агенты","id":"агенты"},{"blocks":[{"runs":[{"t":"text","v":"То, что агент может вызвать: команды CLI "},{"t":"code","v":"tri"},{"t":"text","v":" и инструменты серверов MCP. "},{"t":"code","v":"specs/tools/tri/.t27"},{"t":"text","v":" читается из clap-перечисления "},{"t":"code","v":"Commands"},{"t":"text","v":" в "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":" (по карточке на вариант, с вложенными действиями и аргументами); "},{"t":"code","v":"specs/tools/mcp/.t27"},{"t":"text","v":" -- из исходников серверов, манифестов и записей "},{"t":"code","v":".mcp.json"},{"t":"text","v":" обоих репозиториев, с именами инструментов, описаниями и ключами входных схем. Свидетель на карточке tri -- "},{"t":"code","v":"source-parse"},{"t":"text","v":" (перечисление прочитано на записанном коммите), пока кто-нибудь не сравнит список с "},{"t":"code","v":"tri --help"},{"t":"text","v":" и не переименует его в "},{"t":"code","v":"help-output"},{"t":"text","v":". Серверы, чей код -- опубликованный пакет вне репозиториев, несут "},{"t":"code","v":"EXTERNAL = true"},{"t":"text","v":". Обозреватель инструментов: "},{"t":"code","v":"#/tools"},{"t":"text","v":"."}],"type":"p"}],"heading":"Инструменты","id":"инструменты"},{"blocks":[{"runs":[{"t":"text","v":"Один генератор, "},{"t":"code","v":"scripts/agents-from-specs.mjs"},{"t":"text","v":" в "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":", читает вендорные файлы "},{"t":"code","v":".t27"},{"t":"text","v":", компилирует каждый через wasm, читает константы скомпилированного модуля, сверяет их со схемой слоя, разрешает каждую перекрёстную ссылку (ID навыков в расписаниях и агентах, ID инструментов в агентах, буквы агентов в инструментах, пути спецификаций в навыках) и пишет по одному JSON на слой под "},{"t":"code","v":"public/"},{"t":"text","v":". Он выполняется в "},{"t":"code","v":"prebuild"},{"t":"text","v":", поэтому спецификация, которая не компилируется, или ссылка, которая не разрешается, останавливает сборку сайта. Ни один "},{"t":"code","v":".t27"},{"t":"text","v":" на этом пути не разбирается регулярным выражением."}],"type":"p"},{"runs":[{"t":"text","v":"Переводы следуют тому же правилу. "},{"t":"code","v":"specs/i18n/-.t27"},{"t":"text","v":" объявляет, какие поля каких спецификаций бандл может переводить и где бандл лежит; бандл ("},{"t":"code","v":"apps/website/i18n/*.json"},{"t":"text","v":") несёт текст; генератор проверяет, что каждая запись бандла называет существующую спецификацию, и сообщает покрытие. Спецификации остаются только английскими."}],"type":"p"}],"heading":"От спецификации к сайту","id":"от-спецификации-к-сайту"},{"blocks":[{"runs":[{"t":"text","v":"Агенты записывают, что произошло, под "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":" в каждом репозитории: эпизоды как JSON, заметки как Markdown. "},{"t":"code","v":"scripts/sync-agents-experience.mjs"},{"t":"text","v":" читает оба дерева на их текущем коммите и пишет "},{"t":"code","v":"public/agents/experience.json"},{"t":"text","v":" со счётчиками по репозиториям и, где эпизод называет букву агента, с атрибуцией. На коммите, на котором порождена документация, ни один эпизод не отнесён ни к одной букве -- поле, которое ищет синхронизация, отсутствует в каждом эпизоде, -- и карточки агентов говорят об этом. Снимок записывает коммит каждого дерева, а не путь чекаута."}],"type":"p"}],"heading":"Опыт","id":"опыт"}]}},"bodyPath":"docs/system/layers.md","bodySha256":"1c5e26427ae7992c2461e55e4bd2a9e6ee928c57a7330c08becf7afc3a164e9f","diagram":"skills-crons-agents","discarded":0,"enabled":true,"id":"docs/layers","links":{"body":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/system/layers.md","spec":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/chapters/layers.t27"},"moduleName":"docs_chapter_layers","order":3,"sections":[{"heading":{"en":"Specs","ru":"Спецификации"},"id":"specs"},{"heading":{"en":"Skills","ru":"Навыки"},"id":"skills"},{"heading":{"en":"Crons","ru":"Расписания"},"id":"crons"},{"heading":{"en":"Agents","ru":"Агенты"},"id":"agents"},{"heading":{"en":"Tools","ru":"Инструменты"},"id":"tools"},{"heading":{"en":"From spec to site","ru":"От спецификации к сайту"},"id":"from-spec-to-site"},{"heading":{"en":"Experience","ru":"Опыт"},"id":"experience"}],"sha256":"bd04ddfca63bd0aa7d44a891620563e6c6f17481a536dfcd864878312e939083","sources":[{"kind":"file","path":"specs/skills/README.md","rel":"specs/skills/README.md","repo":"t27","sha256":"ac23eb8d74832014efaf5e65f3da070d999549724e01242cb8784a93ad43d360","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/skills/README.md","where":"vendored"},{"kind":"file","path":"specs/crons/README.md","rel":"specs/crons/README.md","repo":"t27","sha256":"4c442342670a5e12ebb54792059f60f9fae56c4a62b277fb7803885cad1b350b","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/crons/README.md","where":"vendored"},{"kind":"file","path":"specs/agents/README.md","rel":"specs/agents/README.md","repo":"t27","sha256":"c40833dbc9f271cc92f1e9a848324446429fed52954b53f80c3670bc9da78996","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/agents/README.md","where":"vendored"},{"kind":"file","path":"specs/tools/README.md","rel":"specs/tools/README.md","repo":"t27","sha256":"37b5a451e43de9bc5746ceb80d4cf24f19ea6c3ad8751d2447049cba39c8a0ab","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/tools/README.md","where":"vendored"},{"kind":"file","path":"specs/i18n/agents-ru.t27","rel":"specs/i18n/agents-ru.t27","repo":"t27","sha256":"c8871fb4ccdef8fc3cc2937af5db0e307ab0b62f6a03ece9f4512851ffd64f04","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/i18n/agents-ru.t27","where":"vendored"}],"specPath":"specs/docs/chapters/layers.t27","stem":"layers","table":{"columns":["layer","dir","count","typecheckOk","source"],"kind":"ladder-counts","note":"","rows":[{"count":1419,"dir":"specs/**","layer":"Specs","source":"public/t27/manifest.json","typecheckOk":null},{"count":27,"dir":"specs/skills","layer":"Skills","source":"public/skills/spec-skills.json","typecheckOk":27},{"count":38,"dir":"specs/crons","layer":"Crons","source":"public/crons/spec-crons.json","typecheckOk":38},{"count":27,"dir":"specs/agents","layer":"Agents","source":"public/agents/spec-agents.json","typecheckOk":27},{"count":92,"dir":"specs/tools/{tri,mcp}","layer":"Tools","source":"public/tools/spec-tools.json","typecheckOk":92},{"count":33,"dir":"specs/functions","layer":"Functions","source":"public/functions/spec-functions.json","typecheckOk":33}],"source":"the five catalog JSON files and public/t27/manifest.json"},"title":{"en":"The five-layer system","ru":"Пятислойная система"},"typecheckOk":true},{"body":{"en":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"code","v":"docs/agents/AGENTS_ALPHABET.md"},{"t":"text","v":" (v3.0, 2026-04-07) is the canon: \"The Trinity system employs 27 named agents -- corresponding to the 27 registers in "},{"t":"code","v":"isa/registers.t27"},{"t":"text","v":" (Coptic / Trinity alphabet).\" Each agent is bound to a letter and a register, has a domain (physics, numeric, compiler, graph, experience, verdict, bench, DePIN, UI and so on), logs to "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":" and is linked to nodes in "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":"."}],"type":"p"},{"runs":[{"t":"text","v":"The alphabet is read in three layers of nine, which the document also calls nonas:"}],"type":"p"},{"items":[[{"t":"strong","v":"Archetypal, A-I (1-9)"},{"t":"text","v":" -- \"pure concept -- foundation: soul, base, types\". A is the architecture and "},{"t":"code","v":"SOUL.md"},{"t":"text","v":" as primary cause; C the compiler; E the experience; I the ISA."}],[{"t":"strong","v":"Spiritual, J-R (10-18)"},{"t":"text","v":" -- \"inner process -- life of the system: tasks, language, numbers, physics\". L is the language; M the metrics; N the numeric formats; P the physics constants; Q the queue."}],[{"t":"strong","v":"Physical, S-27th (19-27)"},{"t":"text","v":" -- \"manifestation -- proof: standards, verdict, deploy, gift\". S is the specs; T the Queen, who \"puts the final seal on everything\"; V the verdict; W the workflow and tri cell (\"double hash-seal\"); Z the zero-touch UX and docs; the 27th letter, Ti, is security."}]],"type":"ul"},{"runs":[{"t":"text","v":"The same three-by-nine layout organises the documentation tree of the repository ("},{"t":"code","v":"docs/nona-01-foundation/"},{"t":"text","v":", "},{"t":"code","v":"docs/nona-02-organism/"},{"t":"text","v":", "},{"t":"code","v":"docs/nona-03-manifest/"},{"t":"text","v":", Article DOCS-TREE of the constitution) and the ring on the site next to this chapter, where each letter sits at its ordinal and is coloured by its layer."}],"type":"p"}],"heading":"Twenty-seven letters, three nonas","id":"twenty-seven-letters-three-nonas"},{"blocks":[{"runs":[{"t":"text","v":"The table the site renders next to this chapter is generated from "},{"t":"code","v":"public/agents/spec-agents.json"},{"t":"text","v":", which is itself generated from the 27 files "},{"t":"code","v":"specs/agents/.t27"},{"t":"text","v":" through the compiler wasm -- it is not typed here. Per letter it shows the ordinal, the letter name, the domain, the archetype, the register, the layer, and the skills and tools the agent holds with their evidence. The FULL TABLE of the alphabet document (letter, domain, archetype, key files, entry invariant, exit invariant, CLARA role) is the source each spec was transcribed from; the spec's header names the row."}],"type":"p"},{"runs":[{"t":"text","v":"Two conventions of the table are worth stating. A letter's register comes from the schema section of the alphabet document (for example T is R19, V is R21, W is R22); the ordinal is the position in the alphabet, 1..27, so T is 20 and the 27th letter is 27. Where the alphabet document names two agents with the same Greek letter name (C and G are both written \"Gamma\"), the spec keeps the document's spelling and the ID stays unambiguous because it is the Latin letter, "},{"t":"code","v":"t27/C"},{"t":"text","v":" and "},{"t":"code","v":"t27/G"},{"t":"text","v":"."}],"type":"p"}],"heading":"The table","id":"the-table"},{"blocks":[{"runs":[{"t":"text","v":"Beyond the alphabet row, an agent card on the site carries what the other layers say about the letter:"}],"type":"p"},{"items":[[{"t":"strong","v":"Skills"},{"t":"text","v":" -- IDs from "},{"t":"code","v":"specs/skills"},{"t":"text","v":" the agent holds, bound only where a source names the skill. At the commit this documentation was generated from one letter holds skills: T, from "},{"t":"code","v":".claude/agents/trinity.md"},{"t":"text","v":", which names "},{"t":"code","v":"phi-loop"},{"t":"text","v":" and "},{"t":"code","v":"tri-pipeline"},{"t":"text","v":" in its Phase 2 and Phase 4. The other 26 carry an empty list and a note saying which sources were read."}],[{"t":"strong","v":"Tools"},{"t":"text","v":" -- IDs from "},{"t":"code","v":"specs/tools"},{"t":"text","v":" the agent holds, bound in both directions (the tool spec names the letter back). Five commands are bound today: "},{"t":"code","v":"tri gen"},{"t":"text","v":" (C, T), "},{"t":"code","v":"tri test"},{"t":"text","v":" (T, V), "},{"t":"code","v":"tri verdict"},{"t":"text","v":" (V), "},{"t":"code","v":"tri experience"},{"t":"text","v":" (E), "},{"t":"code","v":"tri cell"},{"t":"text","v":" (W); the sources are the phase descriptions of the alphabet document and the "},{"t":"code","v":".claude/agents/*.md"},{"t":"text","v":" files."}],[{"t":"strong","v":"Crons"},{"t":"text","v":" -- jobs whose "},{"t":"code","v":"RUNS"},{"t":"text","v":" names a skill the agent holds; empty while every "},{"t":"code","v":"RUNS"},{"t":"text","v":" is empty."}],[{"t":"strong","v":"Experience"},{"t":"text","v":" -- episodes attributed to the letter in "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":"; none is attributed today, and the card says so rather than showing a number it cannot source."}],[{"t":"strong","v":"Sources"},{"t":"text","v":" -- the three binding documents ("},{"t":"code","v":"SOUL.md"},{"t":"text","v":", "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":", the alphabet) at the pinned commit, and the spec file itself."}]],"type":"ul"}],"heading":"What a card carries","id":"what-a-card-carries"}],"title":"The 27-agent alphabet"},"ru":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"code","v":"docs/agents/AGENTS_ALPHABET.md"},{"t":"text","v":" (v3.0, 2026-04-07) -- канон: \"The Trinity system employs 27 named agents -- corresponding to the 27 registers in "},{"t":"code","v":"isa/registers.t27"},{"t":"text","v":" (Coptic / Trinity alphabet).\" Каждый агент привязан к букве и регистру, имеет область (физика, численные форматы, компилятор, граф, опыт, вердикт, бенчмарки, DePIN, UI и так далее), пишет в "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":" и связан с узлами "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":"."}],"type":"p"},{"runs":[{"t":"text","v":"Алфавит читается тремя слоями по девять, которые документ также называет нонами:"}],"type":"p"},{"items":[[{"t":"strong","v":"Архетипический, A-I (1-9)"},{"t":"text","v":" -- \"pure concept -- foundation: soul, base, types\". A -- архитектура и "},{"t":"code","v":"SOUL.md"},{"t":"text","v":" как первопричина; C -- компилятор; E -- опыт; I -- ISA."}],[{"t":"strong","v":"Духовный, J-R (10-18)"},{"t":"text","v":" -- \"inner process -- life of the system: tasks, language, numbers, physics\". L -- язык; M -- метрики; N -- численные форматы; P -- физические константы; Q -- очередь."}],[{"t":"strong","v":"Физический, S-27th (19-27)"},{"t":"text","v":" -- \"manifestation -- proof: standards, verdict, deploy, gift\". S -- спецификации; T -- Королева, которая \"puts the final seal on everything\"; V -- вердикт; W -- рабочий процесс и tri cell (\"double hash-seal\"); Z -- zero-touch UX и документация; 27-я буква, Ti, -- безопасность."}]],"type":"ul"},{"runs":[{"t":"text","v":"Та же раскладка три на девять организует дерево документации репозитория ("},{"t":"code","v":"docs/nona-01-foundation/"},{"t":"text","v":", "},{"t":"code","v":"docs/nona-02-organism/"},{"t":"text","v":", "},{"t":"code","v":"docs/nona-03-manifest/"},{"t":"text","v":", статья DOCS-TREE конституции) и кольцо на сайте рядом с этой главой, где каждая буква стоит на своём порядковом номере и окрашена по слою."}],"type":"p"}],"heading":"Двадцать семь букв, три ноны","id":"двадцать-семь-букв-три-ноны"},{"blocks":[{"runs":[{"t":"text","v":"Таблица, которую сайт выводит рядом с этой главой, порождается из "},{"t":"code","v":"public/agents/spec-agents.json"},{"t":"text","v":", который сам порождён из 27 файлов "},{"t":"code","v":"specs/agents/.t27"},{"t":"text","v":" через wasm компилятора, -- она не набрана здесь. По каждой букве показаны порядковый номер, имя буквы, область, архетип, регистр, слой и навыки и инструменты, которые агент держит, с их свидетельствами. FULL TABLE документа алфавита (буква, область, архетип, ключевые файлы, входной инвариант, выходной инвариант, роль CLARA) -- источник, из которого перенесена каждая спецификация; заголовок спецификации называет строку."}],"type":"p"},{"runs":[{"t":"text","v":"Две условности таблицы стоит назвать. Регистр буквы берётся из раздела схемы документа алфавита (например, T -- R19, V -- R21, W -- R22); порядковый номер -- позиция в алфавите, 1..27, так что T -- 20, а 27-я буква -- 27. Где документ алфавита называет двух агентов одним греческим именем (C и G оба записаны как \"Gamma\"), спецификация сохраняет написание документа, а ID остаётся однозначным, потому что это латинская буква: "},{"t":"code","v":"t27/C"},{"t":"text","v":" и "},{"t":"code","v":"t27/G"},{"t":"text","v":"."}],"type":"p"}],"heading":"Таблица","id":"таблица"},{"blocks":[{"runs":[{"t":"text","v":"Помимо строки алфавита, карточка агента на сайте несёт то, что говорят о букве другие слои:"}],"type":"p"},{"items":[[{"t":"strong","v":"Навыки"},{"t":"text","v":" -- ID из "},{"t":"code","v":"specs/skills"},{"t":"text","v":", которые агент держит, связанные только там, где источник называет навык. На коммите, на котором порождена документация, навыки держит одна буква: T, из "},{"t":"code","v":".claude/agents/trinity.md"},{"t":"text","v":", который называет "},{"t":"code","v":"phi-loop"},{"t":"text","v":" и "},{"t":"code","v":"tri-pipeline"},{"t":"text","v":" в своих фазах 2 и 4. Остальные 26 несут пустой список и примечание о том, какие источники были прочитаны."}],[{"t":"strong","v":"Инструменты"},{"t":"text","v":" -- ID из "},{"t":"code","v":"specs/tools"},{"t":"text","v":", которые агент держит, связанные в обе стороны (спецификация инструмента называет букву в ответ). Сегодня связаны пять команд: "},{"t":"code","v":"tri gen"},{"t":"text","v":" (C, T), "},{"t":"code","v":"tri test"},{"t":"text","v":" (T, V), "},{"t":"code","v":"tri verdict"},{"t":"text","v":" (V), "},{"t":"code","v":"tri experience"},{"t":"text","v":" (E), "},{"t":"code","v":"tri cell"},{"t":"text","v":" (W); источники -- описания фаз документа алфавита и файлы "},{"t":"code","v":".claude/agents/*.md"},{"t":"text","v":"."}],[{"t":"strong","v":"Расписания"},{"t":"text","v":" -- задания, чей "},{"t":"code","v":"RUNS"},{"t":"text","v":" называет навык, который агент держит; пусто, пока каждый "},{"t":"code","v":"RUNS"},{"t":"text","v":" пуст."}],[{"t":"strong","v":"Опыт"},{"t":"text","v":" -- эпизоды, отнесённые к букве в "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":"; сегодня не отнесён ни один, и карточка говорит об этом, а не показывает число без источника."}],[{"t":"strong","v":"Источники"},{"t":"text","v":" -- три связывающих документа ("},{"t":"code","v":"SOUL.md"},{"t":"text","v":", "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":", алфавит) на закреплённом коммите и сам файл спецификации."}]],"type":"ul"}],"heading":"Что несёт карточка","id":"что-несёт-карточка"}]}},"bodyPath":"docs/system/alphabet.md","bodySha256":"a057cf483f6fccd642ff41bc56a22c8f214204494a0a17918a4e2a4dc1329af6","diagram":"agent-ring","discarded":0,"enabled":true,"id":"docs/alphabet","links":{"body":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/system/alphabet.md","spec":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/chapters/alphabet.t27"},"moduleName":"docs_chapter_alphabet","order":4,"sections":[{"heading":{"en":"Twenty-seven letters, three nonas","ru":"Двадцать семь букв, три ноны"},"id":"twenty-seven-letters-three-nonas"},{"heading":{"en":"The table","ru":"Таблица"},"id":"the-table"},{"heading":{"en":"What a card carries","ru":"Что несёт карточка"},"id":"what-a-card-carries"}],"sha256":"d3be190095b4141b094dd75baaf76f725478eb18f8709f08fa600055ab3d782f","sources":[{"kind":"file","path":"docs/agents/AGENTS_ALPHABET.md","rel":"docs/agents/AGENTS_ALPHABET.md","repo":"t27","sha256":"c99352b305322031ee8af0c4777ae54c52ef50c694ff2aa0f4d95ab2fa82734a","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","where":"vendored"},{"kind":"file","path":"specs/agents/README.md","rel":"specs/agents/README.md","repo":"t27","sha256":"c40833dbc9f271cc92f1e9a848324446429fed52954b53f80c3670bc9da78996","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/agents/README.md","where":"vendored"}],"specPath":"specs/docs/chapters/alphabet.t27","stem":"alphabet","table":{"columns":["letter","ordinal","letterName","domain","archetype","register","layer","skills","tools"],"kind":"agents","note":"","rows":[{"archetype":"Bull - leader, primary force","domain":"Architecture / ADR / SOUL","enabled":true,"episodes":0,"layer":"Archetypal","letter":"A","letterName":"Alpha","name":"Alpha (Architecture)","ordinal":1,"register":"R0","skills":[],"tools":[]},{"archetype":"House - container, dwelling","domain":"Build / Pipeline","enabled":true,"episodes":0,"layer":"Archetypal","letter":"B","letterName":"Beta","name":"Beta (Build)","ordinal":2,"register":"R1","skills":[],"tools":[]},{"archetype":"Camel - carrier across borders","domain":"Compiler Core / AR Language","enabled":true,"episodes":0,"layer":"Archetypal","letter":"C","letterName":"Gamma","name":"Gamma (Compiler Core)","ordinal":3,"register":"R2","skills":[],"tools":["tri/gen"]},{"archetype":"Door - transition between worlds","domain":"De-Zigfication / Migration","enabled":true,"episodes":0,"layer":"Archetypal","letter":"D","letterName":"Delta","name":"Delta (De-Zigfication)","ordinal":4,"register":"R3","skills":[],"tools":[]},{"archetype":"Window - view into the past","domain":"Experience / XAI","enabled":true,"episodes":0,"layer":"Archetypal","letter":"E","letterName":"Epsilon","name":"Epsilon (Experience)","ordinal":5,"register":"R4","skills":[],"tools":["tri/experience"]},{"archetype":"Nail - connection, binding","domain":"Formal Conformance","enabled":true,"episodes":0,"layer":"Archetypal","letter":"F","letterName":"Phi","name":"Phi (Formal Conformance)","ordinal":6,"register":"R5","skills":[],"tools":[]},{"archetype":"Return - feedback","domain":"Graph / ArchBench","enabled":true,"episodes":0,"layer":"Archetypal","letter":"G","letterName":"Gamma (var.)","name":"Gamma (Graph)","ordinal":7,"register":"R6","skills":[],"tools":[]},{"archetype":"Fence - boundary, life","domain":"HSLM / NN Architectures","enabled":true,"episodes":0,"layer":"Archetypal","letter":"H","letterName":"Eta","name":"Eta (HSLM)","ordinal":8,"register":"R7","skills":[],"tools":[]},{"archetype":"Hand - action, point","domain":"ISA / Registers","enabled":true,"episodes":0,"layer":"Archetypal","letter":"I","letterName":"Iota","name":"Iota (ISA)","ordinal":9,"register":"R8","skills":[],"tools":[]},{"archetype":"Hand with grip - dispatcher","domain":"Jobs / Task Routing","enabled":true,"episodes":0,"layer":"Spiritual","letter":"J","letterName":"Iota-extended","name":"Iota-extended (Jobs)","ordinal":10,"register":"R9","skills":[],"tools":[]},{"archetype":"Palm - open hand","domain":"Kernel / FPGA MAC","enabled":true,"episodes":0,"layer":"Spiritual","letter":"K","letterName":"Kappa","name":"Kappa (Kernel)","ordinal":11,"register":"R10","skills":[],"tools":[]},{"archetype":"Staff - teacher, guide","domain":"Language / Syntax vNEXT","enabled":true,"episodes":0,"layer":"Spiritual","letter":"L","letterName":"Lambda","name":"Lambda (Language)","ordinal":12,"register":"R11","skills":[],"tools":[]},{"archetype":"Water - flow of data","domain":"Metrics / Telemetry","enabled":true,"episodes":0,"layer":"Spiritual","letter":"M","letterName":"Mu","name":"Mu (Metrics)","ordinal":13,"register":"R12","skills":[],"tools":[]},{"archetype":"Fish - offspring, multiplication","domain":"Numeric / GoldenFloat","enabled":true,"episodes":0,"layer":"Spiritual","letter":"N","letterName":"Nu","name":"Nu (Numeric)","ordinal":14,"register":"R13","skills":[],"tools":[]},{"archetype":"Eye - all-seeing oko","domain":"Orchestration / Phases","enabled":true,"episodes":0,"layer":"Spiritual","letter":"O","letterName":"Omicron","name":"Omicron (Orchestration)","ordinal":15,"register":"R14","skills":[],"tools":[]},{"archetype":"Mouth - speech of universe","domain":"Physics / SacredPhysics","enabled":true,"episodes":0,"layer":"Spiritual","letter":"P","letterName":"Pi","name":"Pi (Physics)","ordinal":16,"register":"R15","skills":[],"tools":[]},{"archetype":"Needle's eye - bottleneck","domain":"Queue / Scheduling","enabled":true,"episodes":0,"layer":"Spiritual","letter":"Q","letterName":"Theta","name":"Theta (Queue)","ordinal":17,"register":"R16","skills":[],"tools":[]},{"archetype":"Head - beginning of execution","domain":"Runtime / Bootstrap","enabled":true,"episodes":0,"layer":"Spiritual","letter":"R","letterName":"Rho","name":"Rho (Runtime)","ordinal":18,"register":"R17","skills":[],"tools":[]},{"archetype":"Teeth - sharpness, flame","domain":"Specs / Standardization / AR Specs","enabled":true,"episodes":0,"layer":"Physical","letter":"S","letterName":"Sigma","name":"Sigma (Specs)","ordinal":19,"register":"R18","skills":[],"tools":[]},{"archetype":"CROSS - seal, signature, truth","domain":"Queen / Lotus Orchestrator","enabled":true,"episodes":0,"layer":"Physical","letter":"T","letterName":"Tau","name":"Tau (TRINITY Queen)","ordinal":20,"register":"R19","skills":["t27/phi-loop","t27/tri-pipeline"],"tools":["tri/gen","tri/test","mcp/inngest-dev"]},{"archetype":"Fork - branching","domain":"Universe Levels / Domains","enabled":true,"episodes":0,"layer":"Physical","letter":"U","letterName":"Upsilon","name":"Upsilon (Universe)","ordinal":21,"register":"R20","skills":[],"tools":[]},{"archetype":"Hook - connection, conjunction","domain":"Verdict / Bench / AR Validation","enabled":true,"episodes":0,"layer":"Physical","letter":"V","letterName":"Vau (var.)","name":"Vau (Verdict)","ordinal":22,"register":"R21","skills":[],"tools":["tri/test","tri/verdict"]},{"archetype":"Double hook - double seal","domain":"Workflow / tri cell","enabled":true,"episodes":0,"layer":"Physical","letter":"W","letterName":"Double-Vav","name":"Double-Vav (Workflow)","ordinal":23,"register":"R22","skills":[],"tools":["tri/cell"]},{"archetype":"Intersection - point of exchange","domain":"External Bindings / Interop","enabled":true,"episodes":0,"layer":"Physical","letter":"X","letterName":"Chi","name":"Chi (External)","ordinal":24,"register":"R23","skills":[],"tools":[]},{"archetype":"Merging paths - evolutionary selection","domain":"Yield / DePIN / Fitness","enabled":true,"episodes":0,"layer":"Physical","letter":"Y","letterName":"Psi","name":"Psi (Yield/DePIN)","ordinal":25,"register":"R24","skills":[],"tools":[]},{"archetype":"Sword - cutting edge, point","domain":"Zero-Touch UX / Docs","enabled":true,"episodes":0,"layer":"Physical","letter":"Z","letterName":"Zeta","name":"Zeta (Zero-Touch)","ordinal":26,"register":"R25","skills":[],"tools":[]},{"archetype":"Egyptian cross - \"sacred gift\"","domain":"Security / Reserve","enabled":false,"episodes":0,"layer":"Physical","letter":"TI","letterName":"Ti","name":"Ti (Security)","ordinal":27,"register":"R26","skills":[],"tools":[]}],"source":"public/agents/spec-agents.json"},"title":{"en":"The 27-agent alphabet","ru":"Алфавит из 27 агентов"},"typecheckOk":true},{"body":{"en":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"text","v":"Agent T, the Queen, is the central orchestrator: \"reads "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":" and knows all module dependencies\", \"conducts 26 sub-agents (A..Z, except T) by their domains\", gathers results, validates architecture invariants and enforces that the source of truth is in "},{"t":"code","v":".t27"},{"t":"text","v":" / "},{"t":"code","v":".tri"},{"t":"text","v":" with Zig, Verilog and C only as backends ("},{"t":"code","v":"docs/agents/AGENTS_ALPHABET.md"},{"t":"text","v":", section \"AGENT T -- QUEEN TRINITY\", Responsibilities). Her module is "},{"t":"code","v":"specs/queen/lotus.t27"},{"t":"text","v":"."}],"type":"p"},{"runs":[{"t":"text","v":"The alphabet document draws the cycle she runs as six phases and a seventh added by the SOUL law on git. The site renders the cycle from that document; in short:"}],"type":"p"},{"items":[[{"t":"strong","v":"PLAN"},{"t":"text","v":" -- analyse the task and select a strategy; read "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":" for impact; decide which agents participate; check "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":" for similar tasks."}],[{"t":"strong","v":"ASSIGN"},{"t":"text","v":" -- distribute tasks to agents by domain (A architecture, N numeric, P physics, F conformance, ...); set dependencies; create a tri cell for each agent (W seals)."}],[{"t":"strong","v":"RUN"},{"t":"text","v":" -- parallel execution; heartbeats; agents report to "},{"t":"code","v":".trinity/agent_events.jsonl"},{"t":"text","v":"; T redistributes if necessary."}],[{"t":"strong","v":"TEST & BENCH"},{"t":"text","v":" -- F checks conformance vectors, V runs benchmarks, G measures impact changes; metrics are collected in M for V's verdict."}],[{"t":"strong","v":"VERDICT"},{"t":"text","v":" -- V analyses the metrics; "},{"t":"code","v":"tri verdict --toxic"},{"t":"text","v":" asks whether the change is toxic; E records the experience; if toxic, Q blocks the task."}],[{"t":"strong","v":"EVOLVE"},{"t":"text","v":" -- update "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":" if dependencies changed; update experience in E and M; S updates standards; W seals the tri-cell commit; Z updates documentation; T puts the final TAW seal."}],[{"t":"strong","v":"GIT WORKFLOW"},{"t":"text","v":" (\"new -- SOUL law\") -- commit with "},{"t":"code","v":"--all"},{"t":"text","v":" and the message "},{"t":"code","v":"cell:{id} issue:{N} ..."},{"t":"text","v":", then push "},{"t":"code","v":"HEAD"},{"t":"text","v":" to origin in strict mode; checks: sealed cell, non-toxic verdict, artifacts; the registry records the commit hash and the pushed flag. The alphabet writes both steps as a "},{"t":"code","v":"git"},{"t":"text","v":" subcommand of tri; the current clap surface does not expose one (witness: "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":" has no such variant), so they are quoted here as steps, not as commands to copy."}]],"type":"ol"},{"runs":[{"t":"text","v":"The document's SOUL law for TDD follows the seventh phase: any P0/P1 episode in "},{"t":"code","v":"--strict"},{"t":"text","v":" mode is considered COMPLETE only after a successful push to "},{"t":"code","v":"github.com/gHashTag/t27"},{"t":"text","v":" with bound sealed-cell and non-toxic verdict (the law names the push as a tri subcommand; see the note on the seventh phase above). Where an agent letter appears in a phase description, the tools chapter and the agent cards use that line as the source of a binding ("},{"t":"code","v":"tri cell"},{"t":"text","v":" to W, "},{"t":"code","v":"tri verdict"},{"t":"text","v":" to V)."}],"type":"p"}],"heading":"The six-phase cycle and Phase 7","id":"the-six-phase-cycle-and-phase-7"},{"blocks":[{"runs":[{"t":"text","v":"Three steps carry the cycle's state; two of them are tri commands with a spec under "},{"t":"code","v":"specs/tools/tri/"},{"t":"text","v":" read from the clap enum of "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":":"}],"type":"p"},{"items":[[{"t":"strong","v":"`tri cell`"},{"t":"text","v":" -- the unit of work of one agent: created in ASSIGN, sealed by W with a hash in EVOLVE. Nested actions are listed on the tool card ("},{"t":"code","v":"specs/tools/tri/cell.t27"},{"t":"text","v":")."}],[{"t":"strong","v":"`tri verdict`"},{"t":"text","v":" -- V's decision over the metrics; "},{"t":"code","v":"--toxic"},{"t":"text","v":" is the question the cycle asks in VERDICT ("},{"t":"code","v":"specs/tools/tri/verdict.t27"},{"t":"text","v":")."}],[{"t":"strong","v":"the git step"},{"t":"text","v":" -- the seventh phase as the alphabet document writes it, as a "},{"t":"code","v":"git"},{"t":"text","v":" subcommand of tri. At the commit this documentation was generated from the clap enum of "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":" has no such variant, so the tool catalog has no card for it; the phase is documented from the alphabet and marked "},{"t":"code","v":"[declared]"},{"t":"text","v":", and the gap is recorded here rather than filled with a card."}]],"type":"ul"},{"runs":[{"t":"text","v":"The seal itself is a hash. At the compiler level the same idea is the seal of the bootstrap compiler ("},{"t":"code","v":"bootstrap/stage0/FROZEN_HASH"},{"t":"text","v":", "},{"t":"code","v":"CANON.md"},{"t":"text","v":" section 0) and the ring canon: a ring freezes when its hash is recorded, and drift between the recorded seal and the working tree is a fact the dashboard shows."}],"type":"p"}],"heading":"Cell, seal, verdict","id":"cell-seal-verdict"},{"blocks":[{"runs":[{"t":"text","v":"The repository states the Queen's loop twice, and the two statements differ. The alphabet document gives the seven phases above (PLAN, ASSIGN, RUN, TEST & BENCH, VERDICT, EVOLVE, GIT WORKFLOW). "},{"t":"code","v":"CLAUDE.md"},{"t":"text","v":", \"Autonomous Execution Loop (AEL v2.0)\", gives a six-phase loop for an agent operating as the Queen -- OBSERVE (E), PLAN (T), DELEGATE (C/V), VERIFY (V), SYNTHESIZE (L), LEARN (L) -- and, separately, the nine-phase PHI LOOP for ring-based development (Issue, Spec, TDD, Code, Gen, Seal, Verify, Land, Learn)."}],"type":"p"},{"runs":[{"t":"text","v":"This documentation renders the alphabet's cycle, because it is the one that names the tri commands and the agent letters per phase, and records the AEL loop as the second statement without reconciling them. Which one binds an autonomous agent in a given situation is a question for "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":" and its owners, not for a generated page."}],"type":"p"}],"heading":"Two statements of the loop","id":"two-statements-of-the-loop"}],"title":"Queen orchestration"},"ru":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"text","v":"Агент T, Королева, -- центральный оркестратор: \"reads "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":" and knows all module dependencies\", \"conducts 26 sub-agents (A..Z, except T) by their domains\", собирает результаты, проверяет архитектурные инварианты и следит за тем, чтобы источник истины был в "},{"t":"code","v":".t27"},{"t":"text","v":" / "},{"t":"code","v":".tri"},{"t":"text","v":", а Zig, Verilog и C оставались только бэкендами ("},{"t":"code","v":"docs/agents/AGENTS_ALPHABET.md"},{"t":"text","v":", раздел \"AGENT T -- QUEEN TRINITY\", Responsibilities). Её модуль -- "},{"t":"code","v":"specs/queen/lotus.t27"},{"t":"text","v":"."}],"type":"p"},{"runs":[{"t":"text","v":"Документ алфавита рисует её цикл шестью фазами и седьмой, добавленной законом SOUL о git. Сайт выводит цикл из этого документа; кратко:"}],"type":"p"},{"items":[[{"t":"strong","v":"PLAN"},{"t":"text","v":" -- разобрать задачу и выбрать стратегию; прочитать "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":" для анализа влияния; решить, какие агенты участвуют; проверить "},{"t":"code","v":".trinity/experience/"},{"t":"text","v":" на похожие задачи."}],[{"t":"strong","v":"ASSIGN"},{"t":"text","v":" -- распределить задачи агентам по областям (A архитектура, N численные форматы, P физика, F конформность, ...); задать зависимости; создать tri cell для каждого агента (W печатает)."}],[{"t":"strong","v":"RUN"},{"t":"text","v":" -- параллельное выполнение; heartbeats; агенты отчитываются в "},{"t":"code","v":".trinity/agent_events.jsonl"},{"t":"text","v":"; T перераспределяет при необходимости."}],[{"t":"strong","v":"TEST & BENCH"},{"t":"text","v":" -- F проверяет векторы конформности, V гоняет бенчмарки, G измеряет изменения влияния; метрики собираются в M для вердикта V."}],[{"t":"strong","v":"VERDICT"},{"t":"text","v":" -- V анализирует метрики; "},{"t":"code","v":"tri verdict --toxic"},{"t":"text","v":" спрашивает, токсично ли изменение; E записывает опыт; если токсично, Q блокирует задачу."}],[{"t":"strong","v":"EVOLVE"},{"t":"text","v":" -- обновить "},{"t":"code","v":"graph_v2.json"},{"t":"text","v":", если изменились зависимости; обновить опыт в E и M; S обновляет стандарты; W печатает коммит tri-cell; Z обновляет документацию; T ставит финальную печать TAW."}],[{"t":"strong","v":"GIT WORKFLOW"},{"t":"text","v":" (\"new -- SOUL law\") -- коммит с "},{"t":"code","v":"--all"},{"t":"text","v":" и сообщением "},{"t":"code","v":"cell:{id} issue:{N} ..."},{"t":"text","v":", затем push "},{"t":"code","v":"HEAD"},{"t":"text","v":" в origin в строгом режиме; проверки: запечатанная ячейка, нетоксичный вердикт, артефакты; реестр записывает хэш коммита и флаг pushed. Документ алфавита записывает оба шага как подкоманду "},{"t":"code","v":"git"},{"t":"text","v":" утилиты tri; текущая clap-поверхность её не предоставляет (свидетель: в "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":" нет такого варианта), поэтому здесь они приведены как шаги, а не как команды для копирования."}]],"type":"ol"},{"runs":[{"t":"text","v":"Закон SOUL о TDD в документе следует за седьмой фазой: любой эпизод P0/P1 в режиме "},{"t":"code","v":"--strict"},{"t":"text","v":" считается COMPLETE только после успешного push в "},{"t":"code","v":"github.com/gHashTag/t27"},{"t":"text","v":" с привязанной запечатанной ячейкой и нетоксичным вердиктом (закон называет push подкомандой tri; см. примечание к седьмой фазе выше). Где буква агента появляется в описании фазы, глава об инструментах и карточки агентов используют эту строку как источник связи ("},{"t":"code","v":"tri cell"},{"t":"text","v":" -- W, "},{"t":"code","v":"tri verdict"},{"t":"text","v":" -- V)."}],"type":"p"}],"heading":"Шестифазный цикл и фаза 7","id":"шестифазный-цикл-и-фаза-7"},{"blocks":[{"runs":[{"t":"text","v":"Состояние цикла несут три шага; два из них -- команды tri со спецификацией под "},{"t":"code","v":"specs/tools/tri/"},{"t":"text","v":", прочитанной из clap-перечисления "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":":"}],"type":"p"},{"items":[[{"t":"strong","v":"`tri cell`"},{"t":"text","v":" -- единица работы одного агента: создаётся в ASSIGN, запечатывается W хэшем в EVOLVE. Вложенные действия перечислены на карточке инструмента ("},{"t":"code","v":"specs/tools/tri/cell.t27"},{"t":"text","v":")."}],[{"t":"strong","v":"`tri verdict`"},{"t":"text","v":" -- решение V по метрикам; "},{"t":"code","v":"--toxic"},{"t":"text","v":" -- вопрос, который цикл задаёт в VERDICT ("},{"t":"code","v":"specs/tools/tri/verdict.t27"},{"t":"text","v":")."}],[{"t":"strong","v":"шаг git"},{"t":"text","v":" -- седьмая фаза в записи документа алфавита, как подкоманда "},{"t":"code","v":"git"},{"t":"text","v":" утилиты tri. На коммите, на котором порождена документация, в clap-перечислении "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":" нет такого варианта, поэтому в каталоге инструментов нет карточки для него; фаза документирована по алфавиту с пометкой "},{"t":"code","v":"[declared]"},{"t":"text","v":", а пробел записан здесь, а не закрыт выдуманной карточкой."}]],"type":"ul"},{"runs":[{"t":"text","v":"Сама печать -- это хэш. На уровне компилятора та же идея -- печать бутстрап-компилятора ("},{"t":"code","v":"bootstrap/stage0/FROZEN_HASH"},{"t":"text","v":", "},{"t":"code","v":"CANON.md"},{"t":"text","v":", раздел 0) и канон колец: кольцо замораживается, когда записан его хэш, а расхождение между записанной печатью и рабочим деревом -- факт, который показывает панель."}],"type":"p"}],"heading":"Ячейка, печать, вердикт","id":"ячейка-печать-вердикт"},{"blocks":[{"runs":[{"t":"text","v":"Репозиторий формулирует цикл Королевы дважды, и формулировки различаются. Документ алфавита даёт семь фаз выше (PLAN, ASSIGN, RUN, TEST & BENCH, VERDICT, EVOLVE, GIT WORKFLOW). "},{"t":"code","v":"CLAUDE.md"},{"t":"text","v":", \"Autonomous Execution Loop (AEL v2.0)\", даёт шестифазный цикл агента, действующего как Королева, -- OBSERVE (E), PLAN (T), DELEGATE (C/V), VERIFY (V), SYNTHESIZE (L), LEARN (L) -- и отдельно девятифазный PHI LOOP для разработки по кольцам (Issue, Spec, TDD, Code, Gen, Seal, Verify, Land, Learn)."}],"type":"p"},{"runs":[{"t":"text","v":"Эта документация отображает цикл алфавита, потому что именно он называет команды tri и буквы агентов по фазам, и фиксирует цикл AEL как вторую формулировку, не сводя их воедино. Какая из них связывает автономного агента в конкретной ситуации -- вопрос к "},{"t":"code","v":"AGENTS.md"},{"t":"text","v":" и его владельцам, а не к порождённой странице."}],"type":"p"}],"heading":"Две формулировки цикла","id":"две-формулировки-цикла"}]}},"bodyPath":"docs/system/queen.md","bodySha256":"0008d41fdffdd063af243376fbf83c31ffe8ff9995c6d666e94751330d67c97d","diagram":"phase-cycle","discarded":0,"enabled":true,"id":"docs/queen","links":{"body":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/system/queen.md","spec":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/chapters/queen.t27"},"moduleName":"docs_chapter_queen","order":5,"sections":[{"heading":{"en":"The six-phase cycle and Phase 7","ru":"Шестифазный цикл и фаза 7"},"id":"the-six-phase-cycle-and-phase-7"},{"heading":{"en":"Cell, seal, verdict","ru":"Ячейка, печать, вердикт"},"id":"cell-seal-verdict"},{"heading":{"en":"Two statements of the loop","ru":"Две формулировки цикла"},"id":"two-statements-of-the-loop"}],"sha256":"70d2234eebb2fa85930ed2b25c43866083a67c5190480e9bda198faf98adcef1","sources":[{"kind":"file","path":"docs/agents/AGENTS_ALPHABET.md","rel":"docs/agents/AGENTS_ALPHABET.md","repo":"t27","sha256":"c99352b305322031ee8af0c4777ae54c52ef50c694ff2aa0f4d95ab2fa82734a","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","where":"vendored"},{"kind":"file","path":"CLAUDE.md","rel":"CLAUDE.md","repo":"t27","sha256":"43a5d51f12e25f9aa23aacc837005fe9d8a7bb5637e4857b0b31abab88730d05","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/CLAUDE.md","where":"vendored"},{"kind":"file","path":"specs/agents/t.t27","rel":"specs/agents/t.t27","repo":"t27","sha256":"25c30ec4e1f38b575e3bb24cdd09bb770ce5e2a1220eac46f4da857916540f66","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/agents/t.t27","where":"vendored"},{"kind":"file","path":"specs/tools/tri/cell.t27","rel":"specs/tools/tri/cell.t27","repo":"t27","sha256":"36ed34dfc7beb24c2fdd5b7dc5f7fe3375b42f357ffde7befd19f7cfbc22cdca","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/tools/tri/cell.t27","where":"vendored"},{"kind":"file","path":"specs/tools/tri/verdict.t27","rel":"specs/tools/tri/verdict.t27","repo":"t27","sha256":"8afa0e665be25d336bdca685cd2369546a767678133bc86c9994d7c94da6a5c7","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/tools/tri/verdict.t27","where":"vendored"}],"specPath":"specs/docs/chapters/queen.t27","stem":"queen","table":{"columns":["n","name","steps"],"kind":"phases","note":"","rows":[{"n":1,"name":"PLAN","note":"","steps":["Analyze task and select strategy","Read graph_v2.json for impact analysis","Determine which agents participate","Check experience: are there similar tasks in .trinity/experience/"]},{"n":2,"name":"ASSIGN","note":"","steps":["Distribute tasks to agents by domain","A (arch), N (numeric), P (physics), F (conformance), etc.","Set dependencies: G+F+V → V checks F checks G","Create tri-cell for each agent (W seals)"]},{"n":3,"name":"RUN","note":"","steps":["Parallel task execution by agents","Monitoring via heartbeats","Agents report status to `.trinity/agent_events.jsonl`","T coordinates, redistributing if necessary"]},{"n":4,"name":"TEST & BENCH","note":"","steps":["F checks conformance JSON vectors","V runs benchmarks (ARCH_BENCH-001)","G measures impact changes","Collect metrics in M for verdict by V"]},{"n":5,"name":"VERDICT","note":"","steps":["V analyzes metrics and makes decision","`tri verdict --toxic` — is the change toxic?","E records experience (if error) or success","If toxic → Q blocks task, E marks 3rd attempt"]},{"n":6,"name":"EVOLVE","note":"","steps":["Update graph_v2.json (if dependencies changed)","Update experience in E + M","S updates standards (if needed)","W seals tri-cell commit (hash seal)","Z updates documentation","T puts final TAW seal on completed work"]},{"n":7,"name":"GIT WORKFLOW","note":"new — SOUL law","steps":["`tri git commit --all -m \"cell:{id} issue:{N} ...\"`","`tri git push origin HEAD` (strict mode: only t27 repo)","Check: sealed cell + non-toxic verdict + artifacts","Update registry.json with commit hash and pushed flag"]}],"source":"docs/agents/AGENTS_ALPHABET.md, \"6-Phase Cycle of AGENT T\""},"title":{"en":"Queen orchestration","ru":"Оркестрация Королевы"},"typecheckOk":true},{"body":{"en":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"code","v":"tri"},{"t":"text","v":" is the command of the toolchain: "},{"t":"code","v":"./scripts/tri"},{"t":"text","v":" is an exec-only shim (SOUL Article VIII, section 8.2) that resolves the Rust binary "},{"t":"code","v":"t27c"},{"t":"text","v":", passes "},{"t":"code","v":"--repo-root"},{"t":"text","v":" and executes it. The catalog in "},{"t":"code","v":"specs/tools/tri/"},{"t":"text","v":" holds one spec per variant of the clap "},{"t":"code","v":"Commands"},{"t":"text","v":" enum in "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":": the command word, the enum variant, the source file and the entry point, the doc comment as "},{"t":"code","v":"ABOUT"},{"t":"text","v":" with "},{"t":"code","v":"ABOUT_SOURCE"},{"t":"text","v":" naming where the text came from, the nested actions with their own doc comments, the arguments, the agent letters that own the command with the evidence line, when to use it, and the witness."}],"type":"p"},{"runs":[{"t":"text","v":"The table the site renders next to this chapter is generated from "},{"t":"code","v":"public/tools/spec-tools.json"},{"t":"text","v":" -- command, actions, owners, witness -- and the counts in its header are read from the same file. The witness on every tri card at the commit this documentation was generated from is "},{"t":"code","v":"source-parse"},{"t":"text","v":": the enum and its "},{"t":"code","v":"///"},{"t":"text","v":" comments were read from the source at a recorded commit, and "},{"t":"code","v":"cargo"},{"t":"text","v":" was not run. A card is relabelled "},{"t":"code","v":"help-output"},{"t":"text","v":" only when someone diffs the list against "},{"t":"code","v":"tri --help"},{"t":"text","v":" and records the result; until then the label says what was and was not done."}],"type":"p"},{"runs":[{"t":"text","v":"Commands whose variant has no doc comment quote the source they borrow their description from (for example "},{"t":"code","v":"tri cell"},{"t":"text","v":" quotes the "},{"t":"code","v":"tri-mcp"},{"t":"text","v":" tool descriptions), so that no "},{"t":"code","v":"ABOUT"},{"t":"text","v":" is invented."}],"type":"p"}],"heading":"The tri CLI","id":"the-tri-cli"},{"blocks":[{"runs":[{"t":"text","v":"The second family is the Model Context Protocol servers the two repositories ship or register: for "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" the "},{"t":"code","v":"tri-mcp"},{"t":"text","v":" crate, the "},{"t":"code","v":"tri-ssot"},{"t":"text","v":" manifest, "},{"t":"code","v":"t27-traceability"},{"t":"text","v":" and the entries of "},{"t":"code","v":".mcp.json"},{"t":"text","v":"; for "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" the "},{"t":"code","v":"trinity"},{"t":"text","v":" and "},{"t":"code","v":"needle"},{"t":"text","v":" Zig servers and its "},{"t":"code","v":".mcp.json"},{"t":"text","v":" entries. "},{"t":"code","v":"specs/tools/mcp/.t27"},{"t":"text","v":" carries the launch line, transport, version, environment variables, config path, repository, source, the tool names with descriptions and input-schema keys, resources, and the witness."}],"type":"p"},{"runs":[{"t":"text","v":"Servers whose code is a published package outside the repositories carry "},{"t":"code","v":"EXTERNAL = true"},{"t":"text","v":" and a "},{"t":"code","v":"TOOLS_NOTE"},{"t":"text","v":" saying the tool list is not in either tree; nothing is invented for them. Two facts are recorded rather than fixed: "},{"t":"code","v":"tri-mcp"},{"t":"text","v":" is not registered in "},{"t":"code","v":".mcp.json"},{"t":"text","v":" at the pinned commit ("},{"t":"code","v":"CONFIG"},{"t":"text","v":" is empty), and the "},{"t":"code","v":"tri-ssot"},{"t":"text","v":" manifest names a module the tree does not contain."}],"type":"p"},{"runs":[{"t":"text","v":"Two repositories are two lists. "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" does have a command-line binary of its own (an earlier version of this chapter said it had none; that was wrong): since S06 of gHashTag/trinity#988 its commands are cards under "},{"t":"code","v":"specs/tools/trinity/tri/"},{"t":"text","v":", read from the one registry that binary exports and its CI holds to the binary ("},{"t":"code","v":".trinity/registry.json"},{"t":"text","v":", 29 commands of a 187-entry table), with repository-qualified IDs ("},{"t":"code","v":"gHashTag/trinity:tri/"},{"t":"text","v":") so that a same-named command of the two binaries is never confused. "},{"t":"code","v":"specs/tools/catalog.t27"},{"t":"text","v":" states the schema, the identity rules and the legacy resolution; "},{"t":"code","v":"specs/tools/mcp_protocol.t27"},{"t":"text","v":" states what the Trinity MCP server does with a request; "},{"t":"code","v":"tools/trinity_tools_registry.py"},{"t":"text","v":" holds both and the cards to a measured inventory of the consumer."}],"type":"p"}],"heading":"MCP servers","id":"mcp-servers"},{"blocks":[{"runs":[{"t":"text","v":"A tool names the agent letters that own it ("},{"t":"code","v":"AGENTS"},{"t":"text","v":") only where a source line does, and "},{"t":"code","v":"AGENTS_NOTE"},{"t":"text","v":" cites that line or names the sources that were checked and found silent. The agent spec names the tool back ("},{"t":"code","v":"TOOLS"},{"t":"text","v":"), and the site's generator fails the build on a binding stated on one side only. Today five commands are bound -- "},{"t":"code","v":"tri gen"},{"t":"text","v":" (C, T), "},{"t":"code","v":"tri test"},{"t":"text","v":" (T, V), "},{"t":"code","v":"tri verdict"},{"t":"text","v":" (V), "},{"t":"code","v":"tri experience"},{"t":"text","v":" (E), "},{"t":"code","v":"tri cell"},{"t":"text","v":" (W) -- from the phase descriptions of "},{"t":"code","v":"docs/agents/AGENTS_ALPHABET.md"},{"t":"text","v":" and the "},{"t":"code","v":".claude/agents/*.md"},{"t":"text","v":" files; the other commands and every MCP server carry an empty "},{"t":"code","v":"AGENTS"},{"t":"text","v":" with a note. Skills are cross-linked when a skill spec's own "},{"t":"code","v":"COMMAND"},{"t":"text","v":" or "},{"t":"code","v":"SUMMARY_EN"},{"t":"text","v":" names a tri command."}],"type":"p"},{"runs":[{"t":"text","v":"The map the site draws next to this chapter groups the tri commands by owning letter (with a group for the unowned) and the MCP servers by repository, with the external ones marked. It is drawn from the generated JSON, so a new binding in a spec moves a command on the map without anyone editing the figure."}],"type":"p"}],"heading":"Who owns a tool","id":"who-owns-a-tool"}],"title":"Tooling"},"ru":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"code","v":"tri"},{"t":"text","v":" -- команда инструментальной цепочки: "},{"t":"code","v":"./scripts/tri"},{"t":"text","v":" -- шим (только exec, статья VIII SOUL, раздел 8.2), который находит бинарник Rust "},{"t":"code","v":"t27c"},{"t":"text","v":", передаёт "},{"t":"code","v":"--repo-root"},{"t":"text","v":" и исполняет его. Каталог в "},{"t":"code","v":"specs/tools/tri/"},{"t":"text","v":" содержит по спецификации на вариант clap-перечисления "},{"t":"code","v":"Commands"},{"t":"text","v":" в "},{"t":"code","v":"cli/tri/src/main.rs"},{"t":"text","v":": слово команды, вариант перечисления, файл исходника и точку входа, doc-комментарий как "},{"t":"code","v":"ABOUT"},{"t":"text","v":" с "},{"t":"code","v":"ABOUT_SOURCE"},{"t":"text","v":", называющим, откуда взят текст, вложенные действия с их doc-комментариями, аргументы, буквы агентов, владеющих командой, со строкой-свидетельством, случаи применения и свидетеля."}],"type":"p"},{"runs":[{"t":"text","v":"Таблица, которую сайт выводит рядом с этой главой, порождается из "},{"t":"code","v":"public/tools/spec-tools.json"},{"t":"text","v":" -- команда, действия, владельцы, свидетель, -- и счётчики в её заголовке читаются из того же файла. Свидетель на каждой карточке tri на коммите, на котором порождена документация, -- "},{"t":"code","v":"source-parse"},{"t":"text","v":": перечисление и его комментарии "},{"t":"code","v":"///"},{"t":"text","v":" прочитаны из исходника на записанном коммите, а "},{"t":"code","v":"cargo"},{"t":"text","v":" не запускался. Карточка переименовывается в "},{"t":"code","v":"help-output"},{"t":"text","v":" только когда кто-нибудь сравнит список с "},{"t":"code","v":"tri --help"},{"t":"text","v":" и запишет результат; до тех пор метка говорит, что было и чего не было сделано."}],"type":"p"},{"runs":[{"t":"text","v":"Команды, чей вариант не имеет doc-комментария, цитируют источник, у которого заимствуют описание (например, "},{"t":"code","v":"tri cell"},{"t":"text","v":" цитирует описания инструментов "},{"t":"code","v":"tri-mcp"},{"t":"text","v":"), чтобы ни один "},{"t":"code","v":"ABOUT"},{"t":"text","v":" не был выдуман."}],"type":"p"}],"heading":"CLI tri","id":"cli-tri"},{"blocks":[{"runs":[{"t":"text","v":"Второе семейство -- серверы Model Context Protocol, которые два репозитория поставляют или регистрируют: для "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" крейт "},{"t":"code","v":"tri-mcp"},{"t":"text","v":", манифест "},{"t":"code","v":"tri-ssot"},{"t":"text","v":", "},{"t":"code","v":"t27-traceability"},{"t":"text","v":" и записи "},{"t":"code","v":".mcp.json"},{"t":"text","v":"; для "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" Zig-серверы "},{"t":"code","v":"trinity"},{"t":"text","v":" и "},{"t":"code","v":"needle"},{"t":"text","v":" и его записи "},{"t":"code","v":".mcp.json"},{"t":"text","v":". "},{"t":"code","v":"specs/tools/mcp/.t27"},{"t":"text","v":" несёт строку запуска, транспорт, версию, переменные окружения, путь конфигурации, репозиторий, исходник, имена инструментов с описаниями и ключами входных схем, ресурсы и свидетеля."}],"type":"p"},{"runs":[{"t":"text","v":"Серверы, чей код -- опубликованный пакет вне репозиториев, несут "},{"t":"code","v":"EXTERNAL = true"},{"t":"text","v":" и "},{"t":"code","v":"TOOLS_NOTE"},{"t":"text","v":" о том, что списка инструментов нет ни в одном дереве; для них ничего не выдумывается. Два факта записаны, а не исправлены: "},{"t":"code","v":"tri-mcp"},{"t":"text","v":" не зарегистрирован в "},{"t":"code","v":".mcp.json"},{"t":"text","v":" на закреплённом коммите ("},{"t":"code","v":"CONFIG"},{"t":"text","v":" пуст), а манифест "},{"t":"code","v":"tri-ssot"},{"t":"text","v":" называет модуль, которого нет в дереве."}],"type":"p"},{"runs":[{"t":"text","v":"Два репозитория -- два списка. У "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" нет бинарника "},{"t":"code","v":"tri"},{"t":"text","v":" на закреплённом коммите ("},{"t":"code","v":"build.zig"},{"t":"text","v":" его не определяет; его "},{"t":"code","v":".claude/skills/tri/SKILL.md"},{"t":"text","v":" -- навык и находится в каталоге навыков), поэтому его инструменты -- только его серверы MCP, под "},{"t":"code","v":"REPO = \"gHashTag/trinity\""},{"t":"text","v":"."}],"type":"p"}],"heading":"Серверы MCP","id":"серверы-mcp"},{"blocks":[{"runs":[{"t":"text","v":"Инструмент называет буквы агентов, владеющих им ("},{"t":"code","v":"AGENTS"},{"t":"text","v":"), только там, где это делает строка источника, а "},{"t":"code","v":"AGENTS_NOTE"},{"t":"text","v":" цитирует эту строку или называет источники, которые были проверены и оказались молчащими. Спецификация агента называет инструмент в ответ ("},{"t":"code","v":"TOOLS"},{"t":"text","v":"), и генератор сайта роняет сборку на связи, заявленной лишь с одной стороны. Сегодня связаны пять команд -- "},{"t":"code","v":"tri gen"},{"t":"text","v":" (C, T), "},{"t":"code","v":"tri test"},{"t":"text","v":" (T, V), "},{"t":"code","v":"tri verdict"},{"t":"text","v":" (V), "},{"t":"code","v":"tri experience"},{"t":"text","v":" (E), "},{"t":"code","v":"tri cell"},{"t":"text","v":" (W) -- по описаниям фаз "},{"t":"code","v":"docs/agents/AGENTS_ALPHABET.md"},{"t":"text","v":" и файлам "},{"t":"code","v":".claude/agents/*.md"},{"t":"text","v":"; остальные команды и каждый сервер MCP несут пустой "},{"t":"code","v":"AGENTS"},{"t":"text","v":" с примечанием. Навыки связываются перекрёстно, когда собственный "},{"t":"code","v":"COMMAND"},{"t":"text","v":" или "},{"t":"code","v":"SUMMARY_EN"},{"t":"text","v":" спецификации навыка называет команду tri."}],"type":"p"},{"runs":[{"t":"text","v":"Карта, которую сайт рисует рядом с этой главой, группирует команды tri по владеющей букве (с группой для невладеемых) и серверы MCP по репозиторию, с пометкой внешних. Она рисуется из порождённого JSON, поэтому новая связь в спецификации перемещает команду на карте без чьей-либо правки фигуры."}],"type":"p"}],"heading":"Кто владеет инструментом","id":"кто-владеет-инструментом"}]}},"bodyPath":"docs/system/tooling.md","bodySha256":"9c8d5ec87acb0205da7d1011722031807a4b713b37130004c5478f70f8151652","diagram":"tools-map","discarded":0,"enabled":true,"id":"docs/tooling","links":{"body":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/system/tooling.md","spec":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/chapters/tooling.t27"},"moduleName":"docs_chapter_tooling","order":6,"sections":[{"heading":{"en":"The tri CLI","ru":"CLI tri"},"id":"the-tri-cli"},{"heading":{"en":"MCP servers","ru":"Серверы MCP"},"id":"mcp-servers"},{"heading":{"en":"Who owns a tool","ru":"Кто владеет инструментом"},"id":"who-owns-a-tool"}],"sha256":"dd4d3fb85955d4bb7423cf637941c02736855369320dd840082a8aed792302eb","sources":[{"kind":"file","path":"specs/tools/README.md","rel":"specs/tools/README.md","repo":"t27","sha256":"37b5a451e43de9bc5746ceb80d4cf24f19ea6c3ad8751d2447049cba39c8a0ab","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/tools/README.md","where":"vendored"},{"kind":"file","path":"specs/tools/tri/cell.t27","rel":"specs/tools/tri/cell.t27","repo":"t27","sha256":"36ed34dfc7beb24c2fdd5b7dc5f7fe3375b42f357ffde7befd19f7cfbc22cdca","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/tools/tri/cell.t27","where":"vendored"},{"kind":"file","path":"specs/agents/README.md","rel":"specs/agents/README.md","repo":"t27","sha256":"c40833dbc9f271cc92f1e9a848324446429fed52954b53f80c3670bc9da78996","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/agents/README.md","where":"vendored"},{"kind":"file","path":"SOUL.md","rel":"SOUL.md","repo":"t27","sha256":"cb9b44e13d6d0b314f9626f9cca438e5f17ed6847b194220f9e80b32209e052e","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md","where":"vendored"}],"specPath":"specs/docs/chapters/tooling.t27","stem":"tooling","table":{"columns":["id","family","name","repo","items","agents","witness","external"],"kind":"tools","note":"","rows":[{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/bench","items":0,"name":"tri bench","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/bio","items":0,"name":"tri bio","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/blindspots","items":0,"name":"tri blindspots","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/conscious","items":0,"name":"tri conscious","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/constants","items":0,"name":"tri constants","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/cosmos","items":0,"name":"tri cosmos","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/dashboard","items":0,"name":"tri dashboard","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/fib","items":0,"name":"tri fib","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/fpga","items":0,"name":"tri fpga","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/gematria","items":0,"name":"tri gematria","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/govern","items":0,"name":"tri govern","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/hardware","items":0,"name":"tri hardware","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/identity","items":0,"name":"tri identity","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/lucas","items":0,"name":"tri lucas","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/mesh","items":0,"name":"tri mesh","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/needle","items":0,"name":"tri needle","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/needle-check","items":0,"name":"tri needle-check","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/needle-search","items":0,"name":"tri needle-search","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/omega","items":0,"name":"tri omega","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/particles","items":0,"name":"tri particles","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/phi","items":0,"name":"tri phi","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/quantum","items":0,"name":"tri quantum","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/reputation","items":0,"name":"tri reputation","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/sacred-const","items":0,"name":"tri sacred-const","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/spiral","items":0,"name":"tri spiral","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/swarm","items":0,"name":"tri swarm","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/test","items":0,"name":"tri test","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/vsa","items":0,"name":"tri vsa","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":false,"family":"tri-cli","id":"gHashTag/trinity:tri/wallet","items":0,"name":"tri wallet","repo":"gHashTag/trinity","witness":"registry-export"},{"agents":[],"external":true,"family":"mcp","id":"mcp/gitbutler","items":0,"name":"gitbutler","repo":"gHashTag/t27","witness":"source-parse"},{"agents":["T"],"external":true,"family":"mcp","id":"mcp/inngest-dev","items":20,"name":"inngest-dev","repo":"gHashTag/t27","witness":"help-output"},{"agents":[],"external":false,"family":"mcp","id":"mcp/needle","items":6,"name":"needle","repo":"gHashTag/trinity","witness":"source-parse"},{"agents":[],"external":true,"family":"mcp","id":"mcp/neon","items":0,"name":"neon","repo":"gHashTag/trinity","witness":"source-parse"},{"agents":[],"external":true,"family":"mcp","id":"mcp/notebooklm","items":0,"name":"notebooklm","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":true,"family":"mcp","id":"mcp/railway-mcp-server","items":0,"name":"railway-mcp-server","repo":"gHashTag/trinity","witness":"source-parse"},{"agents":[],"external":false,"family":"mcp","id":"mcp/t27-traceability","items":4,"name":"t27-traceability","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"mcp","id":"mcp/tri-mcp","items":10,"name":"tri-mcp","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"mcp","id":"mcp/tri-ssot","items":5,"name":"tri-ssot","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"mcp","id":"mcp/trinity","items":210,"name":"trinity","repo":"gHashTag/trinity","witness":"source-parse"},{"agents":[],"external":true,"family":"mcp","id":"mcp/zig-docs","items":0,"name":"zig-docs","repo":"gHashTag/trinity","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/abandoned","items":1,"name":"tri abandoned","repo":"gHashTag/t27","witness":"source-parse"},{"agents":["W"],"external":false,"family":"tri-cli","id":"tri/cell","items":2,"name":"tri cell","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/census","items":2,"name":"tri census","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/ci","items":1,"name":"tri ci","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/competitors","items":2,"name":"tri competitors","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/discard","items":2,"name":"tri discard","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/doctor","items":0,"name":"tri doctor","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/elab","items":2,"name":"tri elab","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/emit","items":1,"name":"tri emit","repo":"gHashTag/t27","witness":"source-parse"},{"agents":["E"],"external":false,"family":"tri-cli","id":"tri/experience","items":1,"name":"tri experience","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/fleet","items":2,"name":"tri fleet","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/fmt","items":0,"name":"tri fmt","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/fpga","items":35,"name":"tri fpga","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/gates","items":13,"name":"tri gates","repo":"gHashTag/t27","witness":"source-parse"},{"agents":["C","T"],"external":false,"family":"tri-cli","id":"tri/gen","items":0,"name":"tri gen","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/harness","items":1,"name":"tri harness","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/health","items":0,"name":"tri health","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/hooks","items":8,"name":"tri hooks","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/issues","items":3,"name":"tri issues","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/jumps","items":1,"name":"tri jumps","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/kinds","items":1,"name":"tri kinds","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/lean","items":2,"name":"tri lean","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/ledgers","items":1,"name":"tri ledgers","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/loop","items":1,"name":"tri loop","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/merging","items":0,"name":"tri merging","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/misread","items":0,"name":"tri misread","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/mods","items":1,"name":"tri mods","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/mutate","items":1,"name":"tri mutate","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/now","items":2,"name":"tri now","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/one-away","items":0,"name":"tri one-away","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/orphaned","items":1,"name":"tri orphaned","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/pr","items":2,"name":"tri pr","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/prose","items":1,"name":"tri prose","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/quantifiers","items":2,"name":"tri quantifiers","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/red","items":2,"name":"tri red","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/reseal","items":2,"name":"tri reseal","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/rtl","items":1,"name":"tri rtl","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/seals","items":5,"name":"tri seals","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/serve","items":0,"name":"tri serve","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/skill","items":9,"name":"tri skill","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/status","items":0,"name":"tri status","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/sweep","items":1,"name":"tri sweep","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/synth","items":1,"name":"tri synth","repo":"gHashTag/t27","witness":"source-parse"},{"agents":["T","V"],"external":false,"family":"tri-cli","id":"tri/test","items":0,"name":"tri test","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/topic","items":0,"name":"tri topic","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/types","items":4,"name":"tri types","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/unparsed","items":4,"name":"tri unparsed","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/vectors","items":2,"name":"tri vectors","repo":"gHashTag/t27","witness":"source-parse"},{"agents":["V"],"external":false,"family":"tri-cli","id":"tri/verdict","items":0,"name":"tri verdict","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/vsim","items":1,"name":"tri vsim","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/window","items":0,"name":"tri window","repo":"gHashTag/t27","witness":"source-parse"},{"agents":[],"external":false,"family":"tri-cli","id":"tri/worktrees","items":0,"name":"tri worktrees","repo":"gHashTag/t27","witness":"source-parse"}],"source":"public/tools/spec-tools.json"},"title":{"en":"Tooling","ru":"Инструменты"},"typecheckOk":true},{"body":{"en":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"text","v":"The project separates what was measured from what was declared, and both from what was taken from outside. The tags are defined in the chapter \"The project\"; this chapter says how each tag is earned on the site."}],"type":"p"},{"runs":[{"t":"text","v":"A "},{"t":"strong","v":"measured"},{"t":"text","v":" number has a producer in a repository -- a script, a workflow, a test -- whose output is committed or published, and the page names the commit. The ladder counts, the "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":" verdicts, the coverage of a translation bundle, the number of episodes in an experience tree are measured in this sense: the generator that produces them runs in "},{"t":"code","v":"prebuild"},{"t":"text","v":" and its inputs are pinned."}],"type":"p"},{"runs":[{"t":"text","v":"A "},{"t":"strong","v":"declared"},{"t":"text","v":" value is stated in a spec or a canon document. The catalog size of 83 formats, the seven laws, the seven phases are declared: the site renders them from the file that states them and links the file at the commit, but running nothing."}],"type":"p"},{"runs":[{"t":"text","v":"An "},{"t":"strong","v":"external"},{"t":"text","v":" value is cited with its source and not reproduced. The site does not restate hardware figures of "},{"t":"code","v":"gHashTag/trinity-fpga"},{"t":"text","v":" beyond what "},{"t":"code","v":"siliconHistory.ts"},{"t":"text","v":" transcribes with its provenance note."}],"type":"p"}],"heading":"Measured, declared, external","id":"measured-declared-external"},{"blocks":[{"runs":[{"t":"text","v":"Each catalog card carries a witness label that says how the card relates to the thing it describes:"}],"type":"p"},{"items":[[{"t":"text","v":"Skills and crons: "},{"t":"code","v":"spec+code"},{"t":"text","v":" (spec and source both exist), "},{"t":"code","v":"spec-only"},{"t":"text","v":" (spec without source), "},{"t":"code","v":"code-only"},{"t":"text","v":" (source without spec). The counts per label are in the header of the Skill and Cron Explorers."}],[{"t":"text","v":"Tools: "},{"t":"code","v":"source-parse"},{"t":"text","v":" (the command list was read from the source at a recorded commit; "},{"t":"code","v":"cargo"},{"t":"text","v":" was not run) or "},{"t":"code","v":"help-output"},{"t":"text","v":" (the list was diffed against "},{"t":"code","v":"tri --help"},{"t":"text","v":"). At the commit this documentation was generated from every tri card is "},{"t":"code","v":"source-parse"},{"t":"text","v":"."}],[{"t":"text","v":"Agents: each skill and tool binding cites a source line in "},{"t":"code","v":"SKILLS_NOTE"},{"t":"text","v":" / "},{"t":"code","v":"TOOLS_NOTE"},{"t":"text","v":", or the list is empty and the note says what was read."}],[{"t":"text","v":"Experience: attributed only where an episode names a letter; otherwise counted as unattributed, never guessed."}]],"type":"ul"},{"runs":[{"t":"text","v":"The table the site renders next to this chapter collects these labels with their counts from the generated JSON of every layer."}],"type":"p"}],"heading":"Witness labels","id":"witness-labels"},{"blocks":[{"runs":[{"t":"text","v":"Every "},{"t":"code","v":".t27"},{"t":"text","v":" the site shows was compiled at build time by the vendored "},{"t":"code","v":"t27_compiler.wasm"},{"t":"text","v":", and the JSON records "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":" per file. Two limits of that verdict are stated on every layer README and repeated here. First, the wasm's "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":" is necessary, not sufficient: it stays "},{"t":"code","v":"true"},{"t":"text","v":" for a wrong annotation such as "},{"t":"code","v":"str = 5"},{"t":"text","v":", so the generator checks the field schema of every card on top of it. Second, the bootstrap compiler on "},{"t":"code","v":"master"},{"t":"text","v":" was not run against the catalog files in the commits that added them; the wasm is a build of the compiler at a recorded sha, and that sha is in the generated JSON."}],"type":"p"}],"heading":"Wasm verdicts","id":"wasm-verdicts"},{"blocks":[{"runs":[{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" gates a pull request with workflows named for what they check (issue gate, gate topology, conformance integrity, emit bit-exact, catalog count, now-sync, untrusted input, among others under "},{"t":"code","v":".github/workflows/"},{"t":"text","v":"). Two of them, "},{"t":"code","v":"gate-topology"},{"t":"text","v":" and "},{"t":"code","v":"untrusted-input"},{"t":"text","v":", fail on "},{"t":"code","v":"master"},{"t":"text","v":" for already-merged pull requests at the time of writing; the catalog pull requests record this and do not bless or bypass them."}],"type":"p"},{"runs":[{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" gates the site with "},{"t":"code","v":"npm run"},{"t":"text","v":" checks that run in "},{"t":"code","v":"prebuild"},{"t":"text","v":" and in CI: "},{"t":"code","v":"check:spec-catalog"},{"t":"text","v":", "},{"t":"code","v":"check:skills-catalog"},{"t":"text","v":", "},{"t":"code","v":"check:crons-catalog"},{"t":"text","v":", "},{"t":"code","v":"check:agents"},{"t":"text","v":", "},{"t":"code","v":"check:tools"},{"t":"text","v":", "},{"t":"code","v":"check:docs"},{"t":"text","v":", the explorer and Queen language contracts, the Queen viewport contract, "},{"t":"code","v":"typecheck:ratchet"},{"t":"text","v":" and "},{"t":"code","v":"eslint"},{"t":"text","v":". A check that fails on "},{"t":"code","v":"main"},{"t":"text","v":" before a change is reported as pre-existing, with its name, and is not counted as passing."}],"type":"p"}],"heading":"CI gates","id":"ci-gates"},{"blocks":[{"runs":[{"t":"text","v":"To reproduce a count on the site, run the generator that produced it, in "},{"t":"code","v":"apps/website"},{"t":"text","v":" of a checkout of "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":", with a sibling checkout of "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" (or "},{"t":"code","v":"T27_ROOT"},{"t":"text","v":" pointing to one):"}],"type":"p"},{"items":[[{"t":"code","v":"node scripts/agents-from-specs.mjs"},{"t":"text","v":" -- skills, crons, agents, tools JSON and their counts; "},{"t":"code","v":"--check"},{"t":"text","v":" compares against the committed JSON."}],[{"t":"code","v":"node scripts/docs-from-specs.mjs"},{"t":"text","v":" -- this documentation's JSON, including the sources with their sha256 and the pinned commit."}],[{"t":"code","v":"node scripts/sync-agents-experience.mjs"},{"t":"text","v":" -- the experience snapshot."}],[{"t":"code","v":"npm run check:docs"},{"t":"text","v":" -- the chapter bodies, the sources, the generated tables, the forbidden-words scan in English and Russian."}]],"type":"ul"},{"runs":[{"t":"text","v":"Each JSON names the commit its inputs were read at. Comparing that commit with the one in front of you is step one of any reproduction; a number that cannot be tied to a commit is not a measurement."}],"type":"p"}],"heading":"Reproducing a number","id":"reproducing-a-number"},{"blocks":[{"runs":[{"t":"text","v":"Two kinds of record exist outside the generated pages, and this documentation points to them without adding to their claims. The TNF manuscript audit and reconciliation reports live under "},{"t":"code","v":"docs/reports/"},{"t":"text","v":" in "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" ("},{"t":"code","v":"TNF-ARTICLE-AUDIT-W845.md"},{"t":"text","v":", "},{"t":"code","v":"TNF-ARTICLE-RECONCILIATION.md"},{"t":"text","v":"); they record which statements of the article were checked against which producer and what changed. The Zenodo README ("},{"t":"code","v":"README-ZENODO.md"},{"t":"text","v":") describes the archived package. No scientific claim is made in this documentation that is not in those files or in the site's own content with its status tag."}],"type":"p"}],"heading":"Published record","id":"published-record"}],"title":"Evidence and witnesses"},"ru":{"lead":[],"sections":[{"blocks":[{"runs":[{"t":"text","v":"Проект разделяет измеренное и заявленное, а и то и другое -- от взятого извне. Теги определены в главе \"Проект\"; эта глава говорит, как каждый тег зарабатывается на сайте."}],"type":"p"},{"runs":[{"t":"strong","v":"Измеренное"},{"t":"text","v":" число имеет производителя в репозитории -- скрипт, workflow, тест, -- чей вывод закоммичен или опубликован, и страница называет коммит. Счётчики лестницы, вердикты "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":", покрытие бандла переводов, число эпизодов в дереве опыта измерены в этом смысле: порождающий их генератор выполняется в "},{"t":"code","v":"prebuild"},{"t":"text","v":", а его входы закреплены."}],"type":"p"},{"runs":[{"t":"strong","v":"Заявленное"},{"t":"text","v":" значение записано в спецификации или каноническом документе. Размер каталога в 83 формата, семь законов, семь фаз заявлены: сайт выводит их из файла, который их формулирует, и привязывает файл к коммиту, ничего не запуская."}],"type":"p"},{"runs":[{"t":"strong","v":"Внешнее"},{"t":"text","v":" значение цитируется с источником и не воспроизводится. Сайт не повторяет аппаратные цифры "},{"t":"code","v":"gHashTag/trinity-fpga"},{"t":"text","v":" сверх того, что переносит "},{"t":"code","v":"siliconHistory.ts"},{"t":"text","v":" со своим примечанием о происхождении."}],"type":"p"}],"heading":"Измерено, заявлено, извне","id":"измерено-заявлено-извне"},{"blocks":[{"runs":[{"t":"text","v":"Каждая карточка каталога несёт метку свидетеля, говорящую, как карточка соотносится с тем, что описывает:"}],"type":"p"},{"items":[[{"t":"text","v":"Навыки и расписания: "},{"t":"code","v":"spec+code"},{"t":"text","v":" (есть и спецификация, и исходник), "},{"t":"code","v":"spec-only"},{"t":"text","v":" (спецификация без исходника), "},{"t":"code","v":"code-only"},{"t":"text","v":" (исходник без спецификации). Счётчики по меткам -- в заголовках обозревателей навыков и расписаний."}],[{"t":"text","v":"Инструменты: "},{"t":"code","v":"source-parse"},{"t":"text","v":" (список команд прочитан из исходника на записанном коммите; "},{"t":"code","v":"cargo"},{"t":"text","v":" не запускался) или "},{"t":"code","v":"help-output"},{"t":"text","v":" (список сверен с "},{"t":"code","v":"tri --help"},{"t":"text","v":"). На коммите, на котором порождена документация, каждая карточка tri -- "},{"t":"code","v":"source-parse"},{"t":"text","v":"."}],[{"t":"text","v":"Агенты: каждая связь с навыком и инструментом цитирует строку источника в "},{"t":"code","v":"SKILLS_NOTE"},{"t":"text","v":" / "},{"t":"code","v":"TOOLS_NOTE"},{"t":"text","v":", либо список пуст и примечание говорит, что было прочитано."}],[{"t":"text","v":"Опыт: атрибуция только там, где эпизод называет букву; иначе считается неотнесённым и никогда не угадывается."}]],"type":"ul"},{"runs":[{"t":"text","v":"Таблица, которую сайт выводит рядом с этой главой, собирает эти метки со счётчиками из порождённого JSON каждого слоя."}],"type":"p"}],"heading":"Метки свидетелей","id":"метки-свидетелей"},{"blocks":[{"runs":[{"t":"text","v":"Каждый "},{"t":"code","v":".t27"},{"t":"text","v":", показанный на сайте, скомпилирован при сборке вендорным "},{"t":"code","v":"t27_compiler.wasm"},{"t":"text","v":", и JSON записывает "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":" для каждого файла. Два предела этого вердикта названы в README каждого слоя и повторены здесь. Во-первых, "},{"t":"code","v":"typecheck.ok"},{"t":"text","v":" от wasm необходим, но не достаточен: он остаётся "},{"t":"code","v":"true"},{"t":"text","v":" при неверной аннотации вроде "},{"t":"code","v":"str = 5"},{"t":"text","v":", поэтому генератор проверяет схему полей каждой карточки поверх него. Во-вторых, бутстрап-компилятор на "},{"t":"code","v":"master"},{"t":"text","v":" не запускался против файлов каталогов в коммитах, которые их добавили; wasm -- сборка компилятора на записанном sha, и этот sha есть в порождённом JSON."}],"type":"p"}],"heading":"Вердикты wasm","id":"вердикты-wasm"},{"blocks":[{"runs":[{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" проверяет pull request рабочими потоками, названными по тому, что они проверяют (issue gate, gate topology, conformance integrity, emit bit-exact, catalog count, now-sync, untrusted input и другие под "},{"t":"code","v":".github/workflows/"},{"t":"text","v":"). Два из них, "},{"t":"code","v":"gate-topology"},{"t":"text","v":" и "},{"t":"code","v":"untrusted-input"},{"t":"text","v":", на момент написания падают на "},{"t":"code","v":"master"},{"t":"text","v":" для уже влитых pull request; pull request каталогов фиксируют это и не благословляют и не обходят их."}],"type":"p"},{"runs":[{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" проверяет сайт командами "},{"t":"code","v":"npm run"},{"t":"text","v":", выполняемыми в "},{"t":"code","v":"prebuild"},{"t":"text","v":" и в CI: "},{"t":"code","v":"check:spec-catalog"},{"t":"text","v":", "},{"t":"code","v":"check:skills-catalog"},{"t":"text","v":", "},{"t":"code","v":"check:crons-catalog"},{"t":"text","v":", "},{"t":"code","v":"check:agents"},{"t":"text","v":", "},{"t":"code","v":"check:tools"},{"t":"text","v":", "},{"t":"code","v":"check:docs"},{"t":"text","v":", языковые контракты обозревателей и Королевы, контракт вьюпорта Королевы, "},{"t":"code","v":"typecheck:ratchet"},{"t":"text","v":" и "},{"t":"code","v":"eslint"},{"t":"text","v":". Проверка, падающая на "},{"t":"code","v":"main"},{"t":"text","v":" до изменения, отмечается как существовавшая ранее, по имени, и не засчитывается как пройденная."}],"type":"p"}],"heading":"Шлюзы CI","id":"шлюзы-ci"},{"blocks":[{"runs":[{"t":"text","v":"Чтобы воспроизвести счётчик с сайта, запустите порождающий его генератор в "},{"t":"code","v":"apps/website"},{"t":"text","v":" чекаута "},{"t":"code","v":"gHashTag/trinity"},{"t":"text","v":" с соседним чекаутом "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" (или с "},{"t":"code","v":"T27_ROOT"},{"t":"text","v":", указывающим на него):"}],"type":"p"},{"items":[[{"t":"code","v":"node scripts/agents-from-specs.mjs"},{"t":"text","v":" -- JSON навыков, расписаний, агентов, инструментов и их счётчики; "},{"t":"code","v":"--check"},{"t":"text","v":" сравнивает с закоммиченным JSON."}],[{"t":"code","v":"node scripts/docs-from-specs.mjs"},{"t":"text","v":" -- JSON этой документации, включая источники с их sha256 и закреплённый коммит."}],[{"t":"code","v":"node scripts/sync-agents-experience.mjs"},{"t":"text","v":" -- снимок опыта."}],[{"t":"code","v":"npm run check:docs"},{"t":"text","v":" -- тела глав, источники, порождённые таблицы, поиск запрещённых слов в английском и русском."}]],"type":"ul"},{"runs":[{"t":"text","v":"Каждый JSON называет коммит, на котором прочитаны его входы. Сравнение этого коммита с тем, что перед вами, -- шаг один любого воспроизведения; число, которое нельзя привязать к коммиту, не является измерением."}],"type":"p"}],"heading":"Как воспроизвести число","id":"как-воспроизвести-число"},{"blocks":[{"runs":[{"t":"text","v":"Вне порождённых страниц существуют два вида записей, и эта документация указывает на них, ничего не добавляя к их утверждениям. Отчёты аудита и сверки рукописи TNF лежат под "},{"t":"code","v":"docs/reports/"},{"t":"text","v":" в "},{"t":"code","v":"gHashTag/t27"},{"t":"text","v":" ("},{"t":"code","v":"TNF-ARTICLE-AUDIT-W845.md"},{"t":"text","v":", "},{"t":"code","v":"TNF-ARTICLE-RECONCILIATION.md"},{"t":"text","v":"); они записывают, какие утверждения статьи сверены с каким производителем и что изменилось. README для Zenodo ("},{"t":"code","v":"README-ZENODO.md"},{"t":"text","v":") описывает архивированный пакет. В этой документации не делается ни одного научного утверждения, которого нет в этих файлах или в собственном содержимом сайта с его статусным тегом."}],"type":"p"}],"heading":"Опубликованная запись","id":"опубликованная-запись"}]}},"bodyPath":"docs/system/evidence.md","bodySha256":"369aa6412eaa52c54b0b0b1e796625655dc476ea05a6e4aa1c7e019003420d21","diagram":null,"discarded":0,"enabled":true,"id":"docs/evidence","links":{"body":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/system/evidence.md","spec":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/chapters/evidence.t27"},"moduleName":"docs_chapter_evidence","order":7,"sections":[{"heading":{"en":"Measured, declared, external","ru":"Измерено, заявлено, извне"},"id":"measured-declared-external"},{"heading":{"en":"Witness labels","ru":"Метки свидетелей"},"id":"witness-labels"},{"heading":{"en":"Wasm verdicts","ru":"Вердикты wasm"},"id":"wasm-verdicts"},{"heading":{"en":"CI gates","ru":"Шлюзы CI"},"id":"ci-gates"},{"heading":{"en":"Reproducing a number","ru":"Как воспроизвести число"},"id":"reproducing-a-number"},{"heading":{"en":"Published record","ru":"Опубликованная запись"},"id":"published-record"}],"sha256":"bc197d64c27828950663c4af278f4f13fb522eddad5c105d1630aad61d997098","sources":[{"kind":"file","path":"specs/skills/README.md","rel":"specs/skills/README.md","repo":"t27","sha256":"ac23eb8d74832014efaf5e65f3da070d999549724e01242cb8784a93ad43d360","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/skills/README.md","where":"vendored"},{"kind":"file","path":"specs/tools/README.md","rel":"specs/tools/README.md","repo":"t27","sha256":"37b5a451e43de9bc5746ceb80d4cf24f19ea6c3ad8751d2447049cba39c8a0ab","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/tools/README.md","where":"vendored"},{"kind":"file","path":"README-ZENODO.md","rel":"README-ZENODO.md","repo":"t27","sha256":"6da4751277af64ba21e866d787201296b0595f3f40b43792207e2f939c7f48b9","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/README-ZENODO.md","where":"vendored"},{"kind":"file","path":"docs/reports/TNF-ARTICLE-AUDIT-W845.md","rel":"docs/reports/TNF-ARTICLE-AUDIT-W845.md","repo":"t27","sha256":"0d0008949d161dbe0d3cd4368ddf4b5629144ba71293e23dc7267b6f19a36e96","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/reports/TNF-ARTICLE-AUDIT-W845.md","where":"vendored"},{"kind":"file","path":"docs/reports/TNF-ARTICLE-RECONCILIATION.md","rel":"docs/reports/TNF-ARTICLE-RECONCILIATION.md","repo":"t27","sha256":"a18e9fab15d0d845d5bc8d55b8be1249a8a0b48f7b361890da80b4e7406138da","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/reports/TNF-ARTICLE-RECONCILIATION.md","where":"vendored"}],"specPath":"specs/docs/chapters/evidence.t27","stem":"evidence","table":{"columns":["layer","label","count","source"],"kind":"witnesses","note":"","rows":[{"count":27,"label":"spec+code","layer":"Skills","source":"public/skills/spec-skills.json counts"},{"count":0,"label":"spec-only","layer":"Skills","source":"public/skills/spec-skills.json counts"},{"count":0,"label":"code-only","layer":"Skills","source":"public/skills/spec-skills.json counts"},{"count":33,"label":"spec+code","layer":"Crons","source":"public/crons/spec-crons.json counts"},{"count":5,"label":"spec-only","layer":"Crons","source":"public/crons/spec-crons.json counts"},{"count":0,"label":"code-only","layer":"Crons","source":"public/crons/spec-crons.json counts"},{"count":0,"label":"with RUNS","layer":"Crons","source":"public/crons/spec-crons.json counts"},{"count":1,"label":"with skills (source-bound)","layer":"Agents","source":"public/agents/spec-agents.json counts"},{"count":5,"label":"with tools (bound both ways)","layer":"Agents","source":"public/agents/spec-agents.json counts"},{"count":0,"label":"spec+experience","layer":"Agents","source":"public/agents/spec-agents.json counts"},{"count":27,"label":"spec-only","layer":"Agents","source":"public/agents/spec-agents.json counts"},{"count":0,"label":"episodes attributed","layer":"Experience","source":"public/agents/experience.json"},{"count":386,"label":"episodes unattributed","layer":"Experience","source":"public/agents/experience.json"},{"count":1,"label":"help-output","layer":"Tools","source":"public/tools/spec-tools.json counts.byWitness"},{"count":29,"label":"registry-export","layer":"Tools","source":"public/tools/spec-tools.json counts.byWitness"},{"count":0,"label":"runtime","layer":"Tools","source":"public/tools/spec-tools.json counts.byWitness"},{"count":62,"label":"source-parse","layer":"Tools","source":"public/tools/spec-tools.json counts.byWitness"},{"count":6,"label":"external (tool list not in either repository)","layer":"Tools","source":"public/tools/spec-tools.json counts"},{"count":184,"label":"typecheck ok","layer":"All catalogs","source":"counts.typecheckOk of the four catalogs"}],"source":"counts of the four catalog JSON files and public/agents/experience.json"},"title":{"en":"Evidence and witnesses","ru":"Свидетели и доказательства"},"typecheckOk":true}],"compilerWasmSha256":"bb39b9a5ca412a2695ab6a20a54e222933e10edaf08ef053670e4974d08f113f","counts":{"chapters":7,"diagrams":6,"enabled":7,"laws":7,"phases":7,"ruChapters":7,"sections":32,"sources":31,"sourcesCheckout":2,"sourcesVendored":29,"specs":9,"tables":7,"typecheckOk":8},"document":{"chapters":["project","rules","layers","alphabet","queen","tooling","evidence"],"diagrams":["ladder","agent-ring","phase-cycle","law-hierarchy","skills-crons-agents","tools-map"],"enabled":true,"id":"docs/system","link":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/specs/docs/system.t27","locales":["en","ru"],"sha256":"ab7ee1773622aa46442aec7aeca5cdd1a1a3c36f6321451a5e426df80a75945b","sources":[{"kind":"dir","path":"specs/skills","rel":"specs/skills","repo":"t27","sha256":null,"url":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/specs/skills","where":"vendored"},{"kind":"dir","path":"specs/crons","rel":"specs/crons","repo":"t27","sha256":null,"url":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/specs/crons","where":"vendored"},{"kind":"dir","path":"specs/agents","rel":"specs/agents","repo":"t27","sha256":null,"url":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/specs/agents","where":"vendored"},{"kind":"dir","path":"specs/tools","rel":"specs/tools","repo":"t27","sha256":null,"url":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/specs/tools","where":"vendored"},{"kind":"dir","path":"specs/i18n","rel":"specs/i18n","repo":"t27","sha256":null,"url":"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/gHashTag/t27/tree/93727f733e23baf032d54505095777f16676d70b/specs/i18n","where":"vendored"},{"kind":"file","path":"SOUL.md","rel":"SOUL.md","repo":"t27","sha256":"cb9b44e13d6d0b314f9626f9cca438e5f17ed6847b194220f9e80b32209e052e","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/SOUL.md","where":"vendored"},{"kind":"file","path":"AGENTS.md","rel":"AGENTS.md","repo":"t27","sha256":"51d2674ae7331a2df71756fbda3c723b467073a4b59190fed0d9b34023bfea2b","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/AGENTS.md","where":"vendored"},{"kind":"file","path":"CLAUDE.md","rel":"CLAUDE.md","repo":"t27","sha256":"43a5d51f12e25f9aa23aacc837005fe9d8a7bb5637e4857b0b31abab88730d05","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/CLAUDE.md","where":"vendored"},{"kind":"file","path":"docs/agents/AGENTS_ALPHABET.md","rel":"docs/agents/AGENTS_ALPHABET.md","repo":"t27","sha256":"c99352b305322031ee8af0c4777ae54c52ef50c694ff2aa0f4d95ab2fa82734a","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/agents/AGENTS_ALPHABET.md","where":"vendored"},{"kind":"file","path":"docs/T27-CONSTITUTION.md","rel":"docs/T27-CONSTITUTION.md","repo":"t27","sha256":"2c06724425f721ef6356edc9a14e4f1af530d1246c5c6a318fd42f59aaa319a5","url":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/docs/T27-CONSTITUTION.md","where":"vendored"}],"specPath":"specs/docs/system.t27","title":{"en":"t27 / Trinity -- the system, its rules and its evidence","ru":"t27 / Trinity -- система, её правила и её доказательства"},"typecheckOk":true},"figures":{"agent-ring":{"agents":[{"layer":"Archetypal","letter":"A","name":"Alpha (Architecture)","ordinal":1,"skills":0,"tools":0},{"layer":"Archetypal","letter":"B","name":"Beta (Build)","ordinal":2,"skills":0,"tools":0},{"layer":"Archetypal","letter":"C","name":"Gamma (Compiler Core)","ordinal":3,"skills":0,"tools":1},{"layer":"Archetypal","letter":"D","name":"Delta (De-Zigfication)","ordinal":4,"skills":0,"tools":0},{"layer":"Archetypal","letter":"E","name":"Epsilon (Experience)","ordinal":5,"skills":0,"tools":1},{"layer":"Archetypal","letter":"F","name":"Phi (Formal Conformance)","ordinal":6,"skills":0,"tools":0},{"layer":"Archetypal","letter":"G","name":"Gamma (Graph)","ordinal":7,"skills":0,"tools":0},{"layer":"Archetypal","letter":"H","name":"Eta (HSLM)","ordinal":8,"skills":0,"tools":0},{"layer":"Archetypal","letter":"I","name":"Iota (ISA)","ordinal":9,"skills":0,"tools":0},{"layer":"Spiritual","letter":"J","name":"Iota-extended (Jobs)","ordinal":10,"skills":0,"tools":0},{"layer":"Spiritual","letter":"K","name":"Kappa (Kernel)","ordinal":11,"skills":0,"tools":0},{"layer":"Spiritual","letter":"L","name":"Lambda (Language)","ordinal":12,"skills":0,"tools":0},{"layer":"Spiritual","letter":"M","name":"Mu (Metrics)","ordinal":13,"skills":0,"tools":0},{"layer":"Spiritual","letter":"N","name":"Nu (Numeric)","ordinal":14,"skills":0,"tools":0},{"layer":"Spiritual","letter":"O","name":"Omicron (Orchestration)","ordinal":15,"skills":0,"tools":0},{"layer":"Spiritual","letter":"P","name":"Pi (Physics)","ordinal":16,"skills":0,"tools":0},{"layer":"Spiritual","letter":"Q","name":"Theta (Queue)","ordinal":17,"skills":0,"tools":0},{"layer":"Spiritual","letter":"R","name":"Rho (Runtime)","ordinal":18,"skills":0,"tools":0},{"layer":"Physical","letter":"S","name":"Sigma (Specs)","ordinal":19,"skills":0,"tools":0},{"layer":"Physical","letter":"T","name":"Tau (TRINITY Queen)","ordinal":20,"skills":2,"tools":3},{"layer":"Physical","letter":"U","name":"Upsilon (Universe)","ordinal":21,"skills":0,"tools":0},{"layer":"Physical","letter":"V","name":"Vau (Verdict)","ordinal":22,"skills":0,"tools":2},{"layer":"Physical","letter":"W","name":"Double-Vav (Workflow)","ordinal":23,"skills":0,"tools":1},{"layer":"Physical","letter":"X","name":"Chi (External)","ordinal":24,"skills":0,"tools":0},{"layer":"Physical","letter":"Y","name":"Psi (Yield/DePIN)","ordinal":25,"skills":0,"tools":0},{"layer":"Physical","letter":"Z","name":"Zeta (Zero-Touch)","ordinal":26,"skills":0,"tools":0},{"layer":"Physical","letter":"TI","name":"Ti (Security)","ordinal":27,"skills":0,"tools":0}],"source":"public/agents/spec-agents.json"},"ladder":{"counts":{"agents":27,"crons":38,"docsChapters":7,"functions":33,"skills":27,"specs":1419,"tools":92},"source":"public/*/spec-*.json counts and public/t27/manifest.json"},"law-hierarchy":{"laws":[{"law":"L1","name":"TRACEABILITY"},{"law":"L2","name":"GENERATION"},{"law":"L3","name":"PURITY"},{"law":"L4","name":"TESTABILITY"},{"law":"L5","name":"IDENTITY"},{"law":"L6","name":"CEILING"},{"law":"L7","name":"UNITY"}],"priority":"L1 > L2 > … > L7","source":"docs/T27-CONSTITUTION.md"},"phase-cycle":{"phases":[{"n":1,"name":"PLAN","note":"","steps":4},{"n":2,"name":"ASSIGN","note":"","steps":4},{"n":3,"name":"RUN","note":"","steps":4},{"n":4,"name":"TEST & BENCH","note":"","steps":4},{"n":5,"name":"VERDICT","note":"","steps":4},{"n":6,"name":"EVOLVE","note":"","steps":6},{"n":7,"name":"GIT WORKFLOW","note":"new — SOUL law","steps":4}],"source":"docs/agents/AGENTS_ALPHABET.md"},"skills-crons-agents":{"counts":{"agents":27,"crons":38,"skills":27,"tools":92},"edges":[{"from":"t27/C","kind":"agent-holds-tool","to":"tri/gen"},{"from":"t27/E","kind":"agent-holds-tool","to":"tri/experience"},{"from":"t27/T","kind":"agent-holds-skill","to":"t27/phi-loop"},{"from":"t27/T","kind":"agent-holds-skill","to":"t27/tri-pipeline"},{"from":"t27/T","kind":"agent-holds-tool","to":"tri/gen"},{"from":"t27/T","kind":"agent-holds-tool","to":"tri/test"},{"from":"t27/T","kind":"agent-holds-tool","to":"mcp/inngest-dev"},{"from":"t27/V","kind":"agent-holds-tool","to":"tri/test"},{"from":"t27/V","kind":"agent-holds-tool","to":"tri/verdict"},{"from":"t27/W","kind":"agent-holds-tool","to":"tri/cell"}],"source":"public/crons/spec-crons.json RUNS, public/agents/spec-agents.json SKILLS/TOOLS"},"tools-map":{"external":["mcp/gitbutler","mcp/inngest-dev","mcp/neon","mcp/notebooklm","mcp/railway-mcp-server","mcp/zig-docs"],"mcpByRepo":{"gHashTag/t27":["mcp/gitbutler","mcp/inngest-dev","mcp/notebooklm","mcp/t27-traceability","mcp/tri-mcp","mcp/tri-ssot"],"gHashTag/trinity":["mcp/needle","mcp/neon","mcp/railway-mcp-server","mcp/trinity","mcp/zig-docs"]},"source":"public/tools/spec-tools.json groups","triByAgent":{"-":["gHashTag/trinity:tri/bench","gHashTag/trinity:tri/bio","gHashTag/trinity:tri/blindspots","gHashTag/trinity:tri/conscious","gHashTag/trinity:tri/constants","gHashTag/trinity:tri/cosmos","gHashTag/trinity:tri/dashboard","gHashTag/trinity:tri/fib","gHashTag/trinity:tri/fpga","gHashTag/trinity:tri/gematria","gHashTag/trinity:tri/govern","gHashTag/trinity:tri/hardware","gHashTag/trinity:tri/identity","gHashTag/trinity:tri/lucas","gHashTag/trinity:tri/mesh","gHashTag/trinity:tri/needle","gHashTag/trinity:tri/needle-check","gHashTag/trinity:tri/needle-search","gHashTag/trinity:tri/omega","gHashTag/trinity:tri/particles","gHashTag/trinity:tri/phi","gHashTag/trinity:tri/quantum","gHashTag/trinity:tri/reputation","gHashTag/trinity:tri/sacred-const","gHashTag/trinity:tri/spiral","gHashTag/trinity:tri/swarm","gHashTag/trinity:tri/test","gHashTag/trinity:tri/vsa","gHashTag/trinity:tri/wallet","tri/abandoned","tri/census","tri/ci","tri/competitors","tri/discard","tri/doctor","tri/elab","tri/emit","tri/fleet","tri/fmt","tri/fpga","tri/gates","tri/harness","tri/health","tri/hooks","tri/issues","tri/jumps","tri/kinds","tri/lean","tri/ledgers","tri/loop","tri/merging","tri/misread","tri/mods","tri/mutate","tri/now","tri/one-away","tri/orphaned","tri/pr","tri/prose","tri/quantifiers","tri/red","tri/reseal","tri/rtl","tri/seals","tri/serve","tri/skill","tri/status","tri/sweep","tri/synth","tri/topic","tri/types","tri/unparsed","tri/vectors","tri/vsim","tri/window","tri/worktrees"],"C":["tri/gen"],"E":["tri/experience"],"T":["tri/gen","tri/test"],"V":["tri/test","tri/verdict"],"W":["tri/cell"]}}},"generatedAt":"2026-09-22T17:46:30.251Z","i18n":[{"bundle":"apps/website/i18n/docs.ru.json","coverage":{"n":7,"total":7},"enabled":true,"fields":["TITLE","BODY"],"locale":"ru","missing":[],"scope":["specs/docs","specs/docs/chapters"],"sha256":"5fc4a500afccdf91e81c2bbde7b770e673efccc96e2d87ef377abdf723748610","spec":"specs/i18n/docs-ru.t27"}],"ladder":{"agents":27,"crons":38,"docsChapters":7,"functions":33,"skills":27,"specs":1419,"tools":92},"pin":{"ref":"93727f733e23baf032d54505095777f16676d70b","source":"public/agents/experience.json sources[t27].commit / sources[trinity].commit","trinity":"ddceafb50cd0e620387161228fa2c9ae134047de"},"version":1,"warnings":[],"contentSha256":"bdf39b22877260425ee199ee995b36a2176a283fd824521f02058949b9bab28b"} diff --git a/apps/website/public/functions/manifest.json b/apps/website/public/functions/manifest.json index 79a80bbbad..2bd4224898 100644 --- a/apps/website/public/functions/manifest.json +++ b/apps/website/public/functions/manifest.json @@ -1,17 +1,29 @@ { - "$source": "design/inngest-spec-first.md + functions-manifest.json (28 functions), the code witness for specs/functions", + "$source": "design/inngest-spec-first.md + functions-manifest.json (33 functions), the code witness for specs/functions", "repo": "gHashTag/999-multibots-telegraf", "generatedFrom": { "branch": "main", "commit": "a9c08b4", - "note": "Extracted from the source tree by the spec-first design pass of 2026-09-09; three entries carry no file/steps and eight carry retries null because the extractor did not resolve them. Copied by hand into this repository -- no sync script produces it yet." + "note": "Extracted from the source tree by the spec-first design pass of 2026-09-09; three entries carry no file/steps and eight carry retries null because the extractor did not resolve them. Copied by hand into this repository -- no sync script produces it yet.", + "addendum": { + "commit": "05fd960f1fef35d09e9ec04e642fcbe0b8c5610a", + "read_at": "2026-09-22", + "functions": [ + "crm-proactive-sweep", + "ton-pending-watch", + "club-invoice-abandoned-watch", + "robokassa-unclaimed-watch", + "client-telemetry-daily" + ], + "note": "Five functions registered after the 2026-09-09 pass were absent from this witness, so the site could draw no card for any of them -- including crm-proactive-sweep, which carried every failed run in the project over the week of 2026-09-22. Their rows are copied from the bot's own src/inngest_app/functions.manifest.json at this commit and carry read_at. probe_result is empty and deployed_2026_09_09 is null because no safe probe was sent to them and the 2026-09-09 deployment reading predates their registration; the deployed_2026_09_09 false the bot manifest still carries for three of them is that same stale pass, while the live status endpoint answered for all five on 2026-09-22. The 28 older rows are still as read at a9c08b4 and have drifted from this commit in about forty fields; re-pinning them is a separate pass." + } }, "probedAt": "2026-09-09", "deployedApp": { "name": "telegram-bot-client", "sdk": "js v3.54.2", "baseFunctions": 24, - "mainRegisters": 28 + "mainRegisters": 33 }, "functions": [ { @@ -873,6 +885,140 @@ "probe_result": "not-deployed", "deployed_2026_09_09": false, "control": "spec+code" + }, + { + "id": "crm-proactive-sweep", + "legacy_id": "", + "domain": "crm", + "trigger": "cron", + "event": "", + "legacy_events": [], + "cron": "*/30 * * * *", + "tz": "UTC", + "file": "src/inngest_app/functions/crm/crmProactiveSweep.ts", + "steps": [ + "resolve-sellers", + "sweep-${owner}" + ], + "retries": 0, + "on_failure": "admin-telegram", + "side_effects": [ + "messages-user", + "paid-api", + "db-write" + ], + "guard": "none", + "safe_probe": "{}", + "probe_result": "", + "deployed_2026_09_09": null, + "control": "spec+code", + "read_at": "05fd960" + }, + { + "id": "ton-pending-watch", + "legacy_id": "", + "domain": "money", + "trigger": "cron", + "event": "", + "legacy_events": [], + "cron": "0 * * * *", + "tz": "UTC", + "file": "src/inngest_app/functions/money/tonPendingWatch.ts", + "steps": [ + "look" + ], + "retries": 0, + "on_failure": "admin-telegram", + "side_effects": [ + "db-read", + "paid-api" + ], + "guard": "none", + "safe_probe": "{}", + "probe_result": "", + "deployed_2026_09_09": null, + "control": "spec+code", + "read_at": "05fd960" + }, + { + "id": "club-invoice-abandoned-watch", + "legacy_id": "", + "domain": "analytics", + "trigger": "cron", + "event": "", + "legacy_events": [], + "cron": "20 * * * *", + "tz": "UTC", + "file": "src/inngest_app/functions/analytics/clubInvoiceAbandonedWatch.ts", + "steps": [ + "mark" + ], + "retries": 0, + "on_failure": "admin-telegram", + "side_effects": [ + "db-read", + "db-write" + ], + "guard": "safe-mode", + "safe_probe": "{\"e2e_test\":true}", + "probe_result": "", + "deployed_2026_09_09": null, + "control": "spec+code", + "read_at": "05fd960" + }, + { + "id": "robokassa-unclaimed-watch", + "legacy_id": "", + "domain": "money", + "trigger": "cron", + "event": "", + "legacy_events": [], + "cron": "20 7 * * *", + "tz": "UTC", + "file": "src/inngest_app/functions/money/robokassaUnclaimedWatch.ts", + "steps": [ + "ask the provider" + ], + "retries": 0, + "on_failure": "admin-telegram", + "side_effects": [ + "db-read", + "paid-api" + ], + "guard": "none", + "safe_probe": "{}", + "probe_result": "", + "deployed_2026_09_09": null, + "control": "spec+code", + "read_at": "05fd960" + }, + { + "id": "client-telemetry-daily", + "legacy_id": "client-telemetry-daily", + "domain": "analytics", + "trigger": "cron", + "event": "", + "legacy_events": [], + "cron": "0 7 * * *", + "tz": "UTC", + "file": "src/inngest_app/functions/analytics/clientTelemetryDaily.ts", + "steps": [ + "build-report", + "send", + "prune" + ], + "retries": 0, + "on_failure": "admin-telegram", + "side_effects": [ + "messages-owners", + "db-write" + ], + "guard": "safe-mode", + "safe_probe": "{\"e2e_test\":true}", + "probe_result": "", + "deployed_2026_09_09": null, + "control": "spec+code", + "read_at": "05fd960" } ] } \ No newline at end of file diff --git a/apps/website/public/functions/spec-functions.json b/apps/website/public/functions/spec-functions.json index c1bd8298a7..696e727320 100644 --- a/apps/website/public/functions/spec-functions.json +++ b/apps/website/public/functions/spec-functions.json @@ -1 +1 @@ -{"codeOnly":[],"compilerWasmSha256":"3f1e073c963c86e2430ea6541b5ad286e06423d751a8797ca68479f847145383","contentSha256":"c92ae305c2a59cf1b344bd074802b41b94e905cebae9fb788222f31c3d1c6c47","counts":{"byDomain":{"analytics":2,"broadcast":1,"content":3,"instagram":3,"monitoring":4,"morph":1,"neuro":1,"payment":1,"reels":3,"render":3,"training":4,"webhook":1,"welcome":1},"byProbeResult":{"COMPLETED":7,"FAILED-at-guard":16,"not-deployed":4,"skipped":1},"bySideEffect":{"charges-balance":6,"db-write":16,"external-webhook":3,"messages-admin":6,"messages-owners":2,"messages-user":12,"none":0,"paid-api":19},"byTrigger":{"cron":5,"event":23},"codeOnly":0,"deployUnknown":0,"deployed":24,"notDeployed":4,"specOnly":0,"specPlusCode":28,"specs":28,"typecheckOk":28,"withCronSpec":5,"withDifferences":1},"functions":[{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/analytics/dailySalesAdvisor.ts","legacyId":"daily-sales-advisor","probeResult":"COMPLETED","retries":1,"steps":5},"cronSpec":"inngest/999-multibots-telegraf/daily-sales-advisor","differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"0 9 * * *","DOMAIN":"analytics","EVENT":"","GUARD":"none","ID":"analytics-sales-advise","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"daily-sales-advisor","NAME":"Daily sales advisor","NOTE":"The same schedule is stated as a cron card, specs/crons ID inngest/999-multibots-telegraf/daily-sales-advisor. The step name report-${ownerId} is a template expanded once per owner. A manual invoke on 2026-09-09 messaged 13 owners; the hardening list asks this function to honour safe mode.","ON_FAILURE":"log","PROBE_RESULT":"COMPLETED","REPO":"999-multibots-telegraf","RETRIES":1,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/analytics/dailySalesAdvisor.ts:54","SIDE_EFFECTS":["messages-owners","messages-admin"],"STEPS":["load-owners","load-payments-7d","load-payments-1d","load-payments-2d","report-${ownerId}"],"SUMMARY_EN":"Every day at 09:00 UTC loads the bot owners and their payments over the last seven, two and one days and sends each owner a sales report, with a copy to the admin chat.","TRIGGER":"cron","TZ":"UTC"},"health":"ok","id":"analytics-sales-advise","inSpecCorpus":true,"messages":[],"moduleName":"fn_analytics_sales_advise","name":{"en":"Daily sales advisor","ru":"Ежедневный советник по продажам"},"sha256":"22f09be2b6651090b1704700bf03ee6e25c741ef726c92c34171cb37e0eb4fa4","specPath":"specs/functions/analytics-sales-advise.t27","summary":{"en":"Every day at 09:00 UTC loads the bot owners and their payments over the last seven, two and one days and sends each owner a sales report, with a copy to the admin chat.","ru":"Каждый день в 09:00 UTC загружает владельцев ботов и их платежи за последние семь, два и один день и отправляет каждому владельцу отчёт о продажах с копией в админ-чат."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/analytics/skillDetector.ts","legacyId":"skill-detector","probeResult":"COMPLETED","retries":1,"steps":3},"cronSpec":"inngest/999-multibots-telegraf/skill-detector","differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"0 10 * * *","DOMAIN":"analytics","EVENT":"","GUARD":"none","ID":"analytics-skills-detect","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"skill-detector","NAME":"Skill detector","NOTE":"The same schedule is stated as a cron card, specs/crons ID inngest/999-multibots-telegraf/skill-detector. The step name detect-${serviceType} is a template expanded once per service type.","ON_FAILURE":"log","PROBE_RESULT":"COMPLETED","REPO":"999-multibots-telegraf","RETRIES":1,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/analytics/skillDetector.ts:30","SIDE_EFFECTS":["messages-owners","messages-admin"],"STEPS":["load-existing-skills","detect-${serviceType}","notify-admin"],"SUMMARY_EN":"Every day at 10:00 UTC loads the known skills, detects new service types from recent usage, one detection step per service type, and notifies the admin chat.","TRIGGER":"cron","TZ":"UTC"},"health":"ok","id":"analytics-skills-detect","inSpecCorpus":true,"messages":[],"moduleName":"fn_analytics_skills_detect","name":{"en":"Skill detector","ru":"Детектор навыков"},"sha256":"e03e0b8b71566e3cce95146ec4825f3421b844c504f10a8ca0e755db14540e53","specPath":"specs/functions/analytics-skills-detect.t27","summary":{"en":"Every day at 10:00 UTC loads the known skills, detects new service types from recent usage, one detection step per service type, and notifies the admin chat.","ru":"Каждый день в 10:00 UTC загружает известные навыки, находит новые типы сервисов по недавнему использованию (по одному шагу на тип сервиса) и уведомляет админ-чат."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":null,"legacyId":"broadcast-message","probeResult":"FAILED-at-guard","retries":null,"steps":0},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"broadcast","EVENT":"broadcast/message.send","GUARD":"validate-input","ID":"broadcast-message-send","KIND":"function","LEGACY_EVENTS":["broadcast/send-message"],"LEGACY_ID":"broadcast-message","NAME":"Broadcast message","NOTE":"The manifest carries no file, steps or retries for this function (its extractor did not resolve them); SERVICE, STEPS and RETRIES here were read from the same checkout (retries 3). Guard is validate-input. A test_telegram_id in the payload narrows the audience to one recipient.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/broadcast/broadcastMessage.ts:22","SIDE_EFFECTS":["messages-user"],"STEPS":["validate-input","check-permissions","fetch-users","send-messages","analyze-results"],"SUMMARY_EN":"Sends a broadcast to a bot audience: validates the request, checks the sender permissions, fetches the recipients, sends the messages and summarises the delivery results.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"broadcast-message-send","inSpecCorpus":true,"messages":[],"moduleName":"fn_broadcast_message_send","name":{"en":"Broadcast message","ru":"Рассылка сообщения"},"sha256":"53f3415e61b946dfe7216c4d03e52cd53225207b9a8741bf9904dab9092eb357","specPath":"specs/functions/broadcast-message-send.t27","summary":{"en":"Sends a broadcast to a bot audience: validates the request, checks the sender permissions, fetches the recipients, sends the messages and summarises the delivery results.","ru":"Отправляет рассылку аудитории бота: проверяет запрос и права отправителя, получает список получателей, отправляет сообщения и подводит итоги доставки."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/content/generateDetailedScript.ts","legacyId":"generate-detailed-script","probeResult":"FAILED-at-guard","retries":null,"steps":3},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"content","EVENT":"content/detailed-script.generate","GUARD":"zod-schema","ID":"content-detailed-script-generate","KIND":"function","LEGACY_EVENTS":["content/generate-detailed-script"],"LEGACY_ID":"generate-detailed-script","NAME":"Generate detailed script","NOTE":"RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. Guard is zod-schema.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/content/generateDetailedScript.ts:191","SIDE_EFFECTS":["paid-api","db-write"],"STEPS":["create-script-record","generate-detailed-scenes","save-detailed-script"],"SUMMARY_EN":"Expands a script into detailed scenes: creates the script record, generates the scene-by-scene text with a language model and stores the detailed script.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"content-detailed-script-generate","inSpecCorpus":true,"messages":[],"moduleName":"fn_content_detailed_script_generate","name":{"en":"Generate detailed script","ru":"Детальный сценарий"},"sha256":"4360313e280f6638395cf3aab44984a5a215e39aa9c61d11ed8c0e5ecfb028a3","specPath":"specs/functions/content-detailed-script-generate.t27","summary":{"en":"Expands a script into detailed scenes: creates the script record, generates the scene-by-scene text with a language model and stores the detailed script.","ru":"Разворачивает сценарий в подробные сцены: создаёт запись сценария, генерирует текст по сценам языковой моделью и сохраняет детальный сценарий."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/content/generateScenarioClips.ts","legacyId":"generate-scenario-clips","probeResult":"FAILED-at-guard","retries":null,"steps":4},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"content","EVENT":"content/scenario-clips.generate","GUARD":"zod-schema","ID":"content-scenario-clips-generate","KIND":"function","LEGACY_EVENTS":["content/generate-scenario-clips"],"LEGACY_ID":"generate-scenario-clips","NAME":"Generate scenario clips","NOTE":"RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. Guard is zod-schema.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/content/generateScenarioClips.ts:221","SIDE_EFFECTS":["paid-api","db-write"],"STEPS":["create-scenario-record","generate-detailed-scenes","create-text-reports-archive","update-scenario-record"],"SUMMARY_EN":"Builds a scenario from a script: creates the scenario record, generates the detailed scenes, packs the text reports into an archive and updates the record.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"content-scenario-clips-generate","inSpecCorpus":true,"messages":[],"moduleName":"fn_content_scenario_clips_generate","name":{"en":"Generate scenario clips","ru":"Клипы по сценарию"},"sha256":"a7f24bf9b6921c2d3b5bbb4bd4519b8bb42623a7bf54ba85ceb3b39e12799c74","specPath":"specs/functions/content-scenario-clips-generate.t27","summary":{"en":"Builds a scenario from a script: creates the scenario record, generates the detailed scenes, packs the text reports into an archive and updates the record.","ru":"Строит сценарий по скрипту: создаёт запись, генерирует подробные сцены, упаковывает текстовые отчёты в архив и обновляет запись."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/content/generateContentScripts.ts","legacyId":"generate-content-scripts","probeResult":"FAILED-at-guard","retries":null,"steps":5},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"content","EVENT":"content/scripts.generate","GUARD":"zod-schema","ID":"content-scripts-generate","KIND":"function","LEGACY_EVENTS":["instagram/generate-scripts"],"LEGACY_ID":"generate-content-scripts","NAME":"Generate content scripts","NOTE":"RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. Guard is zod-schema. The legacy event name keeps the instagram/ prefix the function was first registered under.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/content/generateContentScripts.ts:44","SIDE_EFFECTS":["paid-api","db-write"],"STEPS":["get-reel-data","extract-audio","transcribe-audio","generate-scripts","save-scripts"],"SUMMARY_EN":"Writes content scripts from a stored reel: loads the reel, extracts and transcribes the audio, generates the scripts with a language model and stores them.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"content-scripts-generate","inSpecCorpus":true,"messages":[],"moduleName":"fn_content_scripts_generate","name":{"en":"Generate content scripts","ru":"Сценарии контента"},"sha256":"2c65fc896945f85b8a031bf434390756577e278e8daf5affeed9046d7978492a","specPath":"specs/functions/content-scripts-generate.t27","summary":{"en":"Writes content scripts from a stored reel: loads the reel, extracts and transcribes the audio, generates the scripts with a language model and stores them.","ru":"Пишет сценарии контента по сохранённому рилсу: загружает рилс, извлекает и расшифровывает звук, генерирует сценарии языковой моделью и сохраняет их."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/content/findCompetitors.ts","legacyId":"find-competitors","probeResult":"FAILED-at-guard","retries":null,"steps":6},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"instagram","EVENT":"instagram/competitors.find","GUARD":"validate-input","ID":"instagram-competitors-find","KIND":"function","LEGACY_EVENTS":["instagram/find-competitors"],"LEGACY_ID":"find-competitors","NAME":"Find competitors","NOTE":"RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. Guard is validate-input.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/content/findCompetitors.ts:134","SIDE_EFFECTS":["paid-api","db-write"],"STEPS":["validate-input","validate-project","call-instagram-api","filter-by-followers","save-to-competitors-table","send-telegram-notification"],"SUMMARY_EN":"Finds Instagram competitors for a project: validates the request and the project, calls the Instagram API, filters by follower count, stores the competitors and notifies the requester in Telegram.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"instagram-competitors-find","inSpecCorpus":true,"messages":[],"moduleName":"fn_instagram_competitors_find","name":{"en":"Find competitors","ru":"Поиск конкурентов"},"sha256":"8201d47aaa9d3ca811c9a2ddf8b4e227645473d0122da9311fd542a5e53cfaa9","specPath":"specs/functions/instagram-competitors-find.t27","summary":{"en":"Finds Instagram competitors for a project: validates the request and the project, calls the Instagram API, filters by follower count, stores the competitors and notifies the requester in Telegram.","ru":"Находит конкурентов в Instagram для проекта: проверяет запрос и проект, вызывает Instagram API, фильтрует по числу подписчиков, сохраняет конкурентов и уведомляет заказчика в Telegram."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/content/analyzeCompetitorReels.ts","legacyId":"analyze-competitor-reels","probeResult":"FAILED-at-guard","retries":null,"steps":7},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"instagram","EVENT":"instagram/reels.analyze","GUARD":"validate-input","ID":"instagram-reels-analyze","KIND":"function","LEGACY_EVENTS":["instagram/analyze-reels"],"LEGACY_ID":"analyze-competitor-reels","NAME":"Analyze competitor reels","NOTE":"RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. Guard is validate-input.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/content/analyzeCompetitorReels.ts:211","SIDE_EFFECTS":["paid-api","db-write"],"STEPS":["validate-input","validate-project","call-instagram-reels-api","filter-reels-by-date","calculate-metrics","save-to-reels-analysis-table","send-telegram-notification"],"SUMMARY_EN":"Analyzes the recent reels of an Instagram competitor for a project: validates the request and the project, calls the reels API, filters by date, computes the metrics, stores the analysis and notifies the requester in Telegram.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"instagram-reels-analyze","inSpecCorpus":true,"messages":[],"moduleName":"fn_instagram_reels_analyze","name":{"en":"Analyze competitor reels","ru":"Анализ рилсов конкурента"},"sha256":"6c4c986a981251d73c668906e1bf7d6d1890d1c9cff359d33a05a64551ed5a0a","specPath":"specs/functions/instagram-reels-analyze.t27","summary":{"en":"Analyzes the recent reels of an Instagram competitor for a project: validates the request and the project, calls the reels API, filters by date, computes the metrics, stores the analysis and notifies the requester in Telegram.","ru":"Анализирует недавние рилсы конкурента в Instagram для проекта: проверяет запрос и проект, вызывает API рилсов, фильтрует по дате, считает метрики, сохраняет анализ и уведомляет заказчика в Telegram."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/content/extractTopContent.ts","legacyId":"extract-top-content","probeResult":"FAILED-at-guard","retries":null,"steps":3},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"instagram","EVENT":"instagram/top-content.extract","GUARD":"zod-schema","ID":"instagram-top-content-extract","KIND":"function","LEGACY_EVENTS":["instagram/extract-top"],"LEGACY_ID":"extract-top-content","NAME":"Extract top content","NOTE":"RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. Guard is zod-schema.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/content/extractTopContent.ts:33","SIDE_EFFECTS":["paid-api","db-write"],"STEPS":["query-top-reels","process-reels","format-report"],"SUMMARY_EN":"Extracts the top-performing reels already stored for a project: queries the stored reels, processes them and formats the report.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"instagram-top-content-extract","inSpecCorpus":true,"messages":[],"moduleName":"fn_instagram_top_content_extract","name":{"en":"Extract top content","ru":"Лучший контент"},"sha256":"4b2c8ee5877c376316e94eda74ac07c789c1ee5c467313c7f093a3ae32bdc4b6","specPath":"specs/functions/instagram-top-content-extract.t27","summary":{"en":"Extracts the top-performing reels already stored for a project: queries the stored reels, processes them and formats the report.","ru":"Извлекает самые результативные рилсы, уже сохранённые для проекта: запрашивает их из базы, обрабатывает и формирует отчёт."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/monitoring/criticalErrorMonitor.ts","legacyId":"critical-error-monitor","probeResult":"COMPLETED","retries":1,"steps":4},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"monitoring","EVENT":"monitoring/error.report","GUARD":"none","ID":"monitoring-error-report","KIND":"function","LEGACY_EVENTS":["app/error.critical"],"LEGACY_ID":"critical-error-monitor","NAME":"Critical error report","NOTE":"No guard: the event is emitted by the application itself. The hardening list asks the formatter to render string, Error and {message} payloads and never print [object Object].","ON_FAILURE":"log","PROBE_RESULT":"COMPLETED","REPO":"999-multibots-telegraf","RETRIES":1,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/monitoring/criticalErrorMonitor.ts:175","SIDE_EFFECTS":["messages-admin"],"STEPS":["analyze-error","format-message","send-notification","log-for-analysis"],"SUMMARY_EN":"Reports a critical application error to the admin chat: analyzes the error, formats the message, sends the notification and logs the incident for later analysis.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"monitoring-error-report","inSpecCorpus":true,"messages":[],"moduleName":"fn_monitoring_error_report","name":{"en":"Critical error report","ru":"Отчёт о критической ошибке"},"sha256":"13cb1dcbfcb0f13ec58ba56cd2b3b2b788ccbc0e2b6cfc610e46b850889bee15","specPath":"specs/functions/monitoring-error-report.t27","summary":{"en":"Reports a critical application error to the admin chat: analyzes the error, formats the message, sends the notification and logs the incident for later analysis.","ru":"Сообщает о критической ошибке приложения в админ-чат: анализирует ошибку, форматирует сообщение, отправляет уведомление и записывает инцидент для последующего разбора."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/monitoring/criticalErrorMonitor.ts","legacyId":"health-check","probeResult":"COMPLETED","retries":2,"steps":3},"cronSpec":"inngest/999-multibots-telegraf/health-check","differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"*/30 * * * *","DOMAIN":"monitoring","EVENT":"","GUARD":"none","ID":"monitoring-health-check","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"health-check","NAME":"Health check","NOTE":"The same schedule is stated as a cron card, specs/crons ID inngest/999-multibots-telegraf/health-check. Lives in the same file as monitoring-error-report.","ON_FAILURE":"log","PROBE_RESULT":"COMPLETED","REPO":"999-multibots-telegraf","RETRIES":2,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/monitoring/criticalErrorMonitor.ts:235","SIDE_EFFECTS":["messages-admin"],"STEPS":["check-api-health","check-inngest-health","notify-unhealthy"],"SUMMARY_EN":"Every 30 minutes checks the API server and the Inngest service and messages the admin chat when either is unhealthy.","TRIGGER":"cron","TZ":"UTC"},"health":"ok","id":"monitoring-health-check","inSpecCorpus":true,"messages":[],"moduleName":"fn_monitoring_health_check","name":{"en":"Health check","ru":"Проверка здоровья"},"sha256":"57c23797300ea168c457a74d4edc25c1bcd249408efb634dcd32a7dbfa086260","specPath":"specs/functions/monitoring-health-check.t27","summary":{"en":"Every 30 minutes checks the API server and the Inngest service and messages the admin chat when either is unhealthy.","ru":"Каждые 30 минут проверяет API-сервер и сервис Inngest и пишет в админ-чат, если один из них нездоров."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/monitoring/logMonitor.ts","legacyId":"log-monitor","probeResult":"COMPLETED","retries":2,"steps":4},"cronSpec":"inngest/999-multibots-telegraf/log-monitor","differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"0 10 * * *","DOMAIN":"monitoring","EVENT":"","GUARD":"none","ID":"monitoring-logs-analyze","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"log-monitor","NAME":"Daily log analysis","NOTE":"The same schedule is stated as a cron card, specs/crons ID inngest/999-multibots-telegraf/log-monitor. When LOG_DIR is absent on the host the analysis has nothing to read; the hardening list asks for a fallback to the Inngest run summary.","ON_FAILURE":"log","PROBE_RESULT":"COMPLETED","REPO":"999-multibots-telegraf","RETRIES":2,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/monitoring/logMonitor.ts:352","SIDE_EFFECTS":["messages-admin"],"STEPS":["read-logs","analyze-logs","generate-message","send-notification"],"SUMMARY_EN":"Every day at 10:00 UTC reads the application logs, analyzes them for errors and warnings, generates a summary and sends it to the admin chat.","TRIGGER":"cron","TZ":"UTC"},"health":"ok","id":"monitoring-logs-analyze","inSpecCorpus":true,"messages":[],"moduleName":"fn_monitoring_logs_analyze","name":{"en":"Daily log analysis","ru":"Ежедневный анализ логов"},"sha256":"95c9e9bbfaae6a21c206eb8bd48f2a4eb041ab64cfbb9e7e709069e3ac14de52","specPath":"specs/functions/monitoring-logs-analyze.t27","summary":{"en":"Every day at 10:00 UTC reads the application logs, analyzes them for errors and warnings, generates a summary and sends it to the admin chat.","ru":"Каждый день в 10:00 UTC читает логи приложения, ищет в них ошибки и предупреждения, формирует сводку и отправляет её в админ-чат."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/monitoring/logMonitor.ts","legacyId":"trigger-log-monitor","probeResult":"COMPLETED","retries":1,"steps":4},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"monitoring","EVENT":"monitoring/logs.trigger","GUARD":"none","ID":"monitoring-logs-trigger","KIND":"function","LEGACY_EVENTS":["logs/monitor.trigger"],"LEGACY_ID":"trigger-log-monitor","NAME":"Log analysis on demand","NOTE":"Shares its file and its four steps with monitoring-logs-analyze; only the trigger differs.","ON_FAILURE":"log","PROBE_RESULT":"COMPLETED","REPO":"999-multibots-telegraf","RETRIES":1,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/monitoring/logMonitor.ts:408","SIDE_EFFECTS":["messages-admin"],"STEPS":["read-logs","analyze-logs","generate-message","send-notification"],"SUMMARY_EN":"Runs the same log analysis as the daily job when asked by an event: reads the logs, analyzes them, generates the summary and sends it to the admin chat.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"monitoring-logs-trigger","inSpecCorpus":true,"messages":[],"moduleName":"fn_monitoring_logs_trigger","name":{"en":"Log analysis on demand","ru":"Анализ логов по запросу"},"sha256":"9bb3e3fb5d73315392c6a08b674ca0b04d63b1e324dfa2a5ecb50bbdae6d074f","specPath":"specs/functions/monitoring-logs-trigger.t27","summary":{"en":"Runs the same log analysis as the daily job when asked by an event: reads the logs, analyzes them, generates the summary and sends it to the admin chat.","ru":"Выполняет тот же анализ логов, что и ежедневная задача, по событию: читает логи, анализирует их, формирует сводку и отправляет в админ-чат."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/training/morphImages.ts","legacyId":"morph-images","probeResult":"FAILED-at-guard","retries":3,"steps":8},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"morph","EVENT":"morph/images.generate","GUARD":"check-user-exists","ID":"morph-images-generate","KIND":"function","LEGACY_EVENTS":["morph/images.requested"],"LEGACY_ID":"morph-images","NAME":"Morph images","NOTE":"Guard is check-user-exists. A second, unregistered copy of this function exists in the tree (src/inngest_app/functions/morphImages.ts); the registered one is the file named in SERVICE.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{\"telegram_id\": \"0\", \"bot_name\": \"e2e_nonexistent_bot\", \"is_ru\": true, \"job_id\": \"e2e-probe\", \"image_files\": [], \"extraction_path\": \"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/nonexistent/e2e\", \"morphing_type\": \"seamless\", \"model\": \"kling-v1.6-pro\"}","SERVICE":"src/inngest_app/functions/training/morphImages.ts:30","SIDE_EFFECTS":["charges-balance","paid-api","messages-user"],"STEPS":["check-user-exists","check-balance","notify-start","process-all-pairs","process-loop-pair","concatenate-all-videos","cleanup-temp-files","deliver-result"],"SUMMARY_EN":"Morphs a sequence of user images into one video: checks the user and the balance, notifies the start, processes each image pair into a clip, concatenates the clips, cleans up and delivers the result.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"morph-images-generate","inSpecCorpus":true,"messages":[],"moduleName":"fn_morph_images_generate","name":{"en":"Morph images","ru":"Морфинг изображений"},"sha256":"2d830937229c3a5e780c372b433bbf53e38ccde9444ecb20e599fb20e65b2444","specPath":"specs/functions/morph-images-generate.t27","summary":{"en":"Morphs a sequence of user images into one video: checks the user and the balance, notifies the start, processes each image pair into a clip, concatenates the clips, cleans up and delivers the result.","ru":"Превращает последовательность изображений пользователя в одно видео: проверяет пользователя и баланс, сообщает о старте, обрабатывает каждую пару изображений в клип, склеивает клипы, очищает временные файлы и отдаёт результат."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/neuroImageGeneration.ts","legacyId":"neuro-image-generation","probeResult":"FAILED-at-guard","retries":3,"steps":11},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"neuro","EVENT":"neuro/image.generate","GUARD":"check-user","ID":"neuro-image-generate","KIND":"function","LEGACY_EVENTS":["neuro/photo.generate"],"LEGACY_ID":"neuro-image-generation","NAME":"Neuro image generation","NOTE":"Guard is check-user: an unknown telegram_id stops the run before any payment or paid API call. The step names generate-image-${i} and notify-image-${i} are templates the code expands once per requested image.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{\"telegram_id\": \"0\", \"bot_name\": \"e2e_nonexistent_bot\", \"prompt\": \"safe-mode probe\", \"is_ru\": true, \"num_images\": 1, \"model_url\": \"e2e/none\"}","SERVICE":"src/inngest_app/functions/neuroImageGeneration.ts:56","SIDE_EFFECTS":["charges-balance","paid-api","messages-user","db-write"],"STEPS":["get-bot","check-user","get-user-gender","update-level","calculate-total-cost","process-payment","get-aspect-ratio","generate-image-${i}","notify-image-${i}","deduct-balance-final","final-notification"],"SUMMARY_EN":"Generates one or more images for a Telegram user from a prompt and a model URL: loads the bot and the user, computes the total cost, charges the balance, then generates and sends each image and settles the balance at the end.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"neuro-image-generate","inSpecCorpus":true,"messages":[],"moduleName":"fn_neuro_image_generate","name":{"en":"Neuro image generation","ru":"Нейро-генерация изображений"},"sha256":"513d1e81f02cb450989ea83082948afcce37819434528fbed6b60930b2941fd8","specPath":"specs/functions/neuro-image-generate.t27","summary":{"en":"Generates one or more images for a Telegram user from a prompt and a model URL: loads the bot and the user, computes the total cost, charges the balance, then generates and sends each image and settles the balance at the end.","ru":"Генерирует одно или несколько изображений для пользователя Telegram по промпту и URL модели: загружает бота и пользователя, считает полную стоимость, списывает баланс, затем генерирует и отправляет каждое изображение и сводит баланс в конце."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":null,"legacyId":"payment-processing-ai-server","probeResult":"COMPLETED","retries":null,"steps":0},"cronSpec":null,"differences":[{"code":"log","field":"ON_FAILURE","spec":"admin-telegram"}],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"payment","EVENT":"payment/ai-server.process","GUARD":"amount-match","ID":"payment-ai-server-process","KIND":"function","LEGACY_EVENTS":["payment/process-ai-server"],"LEGACY_ID":"payment-processing-ai-server","NAME":"AI-server payment processing","NOTE":"The manifest carries no file, steps or retries for this function (its extractor did not resolve them); SERVICE, STEPS and RETRIES here were read from the same checkout, where retries is declared as 3 and onFailure is createInngestFailureHandler, which logs and messages the admin chat -- the manifest says on_failure log. Guard is amount-match: an amount matching no plan or option stops the run, which is why the 2026-09-09 probe with IncSum 0.01 COMPLETED without a balance change.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"COMPLETED","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{\"IncSum\": \"0.01\", \"inv_id\": \"e2e-safe-mode-probe\"}","SERVICE":"src/inngest_app/functions/payments/paymentProcessing.ts:64","SIDE_EFFECTS":["db-write","messages-user"],"STEPS":["check-subscription-plan","check-payment-option","get-user-info","get-bot-config","update-user-balance","send-notification"],"SUMMARY_EN":"Processes a payment reported by the AI server: matches the amount to a subscription plan or a payment option, loads the user and the bot configuration, updates the user balance and sends the payment notification.","TRIGGER":"event","TZ":"UTC"},"health":"warn","id":"payment-ai-server-process","inSpecCorpus":true,"messages":["ON_FAILURE \"admin-telegram\" differs from the manifest (\"log\")"],"moduleName":"fn_payment_ai_server_process","name":{"en":"AI-server payment processing","ru":"Обработка платежа AI-сервера"},"sha256":"07191109132327c0a3743ccc06815ccd2c64b5b6d604b358d26cb6e236dadfe6","specPath":"specs/functions/payment-ai-server-process.t27","summary":{"en":"Processes a payment reported by the AI server: matches the amount to a subscription plan or a payment option, loads the user and the bot configuration, updates the user balance and sends the payment notification.","ru":"Обрабатывает платёж, о котором сообщил AI-сервер: сопоставляет сумму с планом подписки или вариантом оплаты, загружает пользователя и конфигурацию бота, обновляет баланс и отправляет уведомление о платеже."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/ai-reels-callback.ts","legacyId":"ai-reels-callback","probeResult":"FAILED-at-guard","retries":3,"steps":3},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"reels","EVENT":"reels/ai.callback","GUARD":"extract-job-id","ID":"reels-ai-callback","KIND":"function","LEGACY_EVENTS":["ai-reels-callback"],"LEGACY_ID":"ai-reels-callback","NAME":"AI reels callback","NOTE":"Guard is extract-job-id: a payload without a job id fails before anything is sent.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/ai-reels-callback.ts:158","SIDE_EFFECTS":["paid-api","messages-user"],"STEPS":["send-completed-video","send-failed-message","send-processing-update"],"SUMMARY_EN":"Handles the provider callback for an AI reel job: extracts the job id, then sends the completed video, a failure message or a processing update to the user who ordered it.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"reels-ai-callback","inSpecCorpus":true,"messages":[],"moduleName":"fn_reels_ai_callback","name":{"en":"AI reels callback","ru":"Колбэк AI-рилсов"},"sha256":"8db0866dc43faf34aef111565007cdcdb66dd1d6dea46e8f7c7ab2ec97cdf13e","specPath":"specs/functions/reels-ai-callback.t27","summary":{"en":"Handles the provider callback for an AI reel job: extracts the job id, then sends the completed video, a failure message or a processing update to the user who ordered it.","ru":"Обрабатывает колбэк провайдера по задаче AI-рилса: извлекает id задачи, затем отправляет заказчику готовое видео, сообщение об ошибке или статус обработки."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/existing/generateAIReelsFunction.ts","legacyId":"ai-reels-generation","probeResult":"skipped","retries":2,"steps":4},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"reels","EVENT":"reels/ai.generate","GUARD":"none","ID":"reels-ai-generate","KIND":"function","LEGACY_EVENTS":["ai-reels/generate"],"LEGACY_ID":"ai-reels-generation","NAME":"AI reels generation","NOTE":"No guard: the first step already calls a paid API, so the 2026-09-09 probe skipped this function (PROBE_RESULT skipped). The hardening list asks for a validate-input step before that call.","ON_FAILURE":"log","PROBE_RESULT":"skipped","REPO":"999-multibots-telegraf","RETRIES":2,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/existing/generateAIReelsFunction.ts:44","SIDE_EFFECTS":["paid-api","messages-user"],"STEPS":["generate-lipsync-video","generate-wan25-video","merge-videos","notify-telegram"],"SUMMARY_EN":"Builds a short AI reel: a lip-sync video from an image and a text or audio track, a second generated clip, the two merged, and the result sent to the user in Telegram.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"reels-ai-generate","inSpecCorpus":true,"messages":[],"moduleName":"fn_reels_ai_generate","name":{"en":"AI reels generation","ru":"Генерация AI-рилсов"},"sha256":"11108a3f4c94af03d615a4f82336b1671b293aa40409293448ae52a58d598b20","specPath":"specs/functions/reels-ai-generate.t27","summary":{"en":"Builds a short AI reel: a lip-sync video from an image and a text or audio track, a second generated clip, the two merged, and the result sent to the user in Telegram.","ru":"Собирает короткий AI-рилс: липсинк-видео из изображения и текста или аудио, второй сгенерированный клип, их склейка и отправка результата пользователю в Telegram."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/existing/generateAdvancedLoopingVideoFunction.ts","legacyId":"generate-advanced-looping-video","probeResult":"FAILED-at-guard","retries":2,"steps":7},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"reels","EVENT":"reels/loop.generate","GUARD":"min-images","ID":"reels-loop-generate","KIND":"function","LEGACY_EVENTS":["reels/generate-advanced-loop"],"LEGACY_ID":"generate-advanced-looping-video","NAME":"Advanced looping video","NOTE":"Guard is min-images: fewer images than the minimum stops the run before any clip is generated.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":2,"SAFE_PROBE":"{\"telegram_id\": \"0\", \"image_urls\": [], \"bot_token\": \"\", \"prompt\": \"safe-mode probe\"}","SERVICE":"src/inngest_app/functions/existing/generateAdvancedLoopingVideoFunction.ts:77","SIDE_EFFECTS":["paid-api","messages-user"],"STEPS":["generate-morphing-clips","download-video-clips","combine-video-clips","add-music","send-to-telegram","send-to-pulse","cleanup"],"SUMMARY_EN":"Turns a set of user images into a looping video: morphing clips between the images, download and concatenation, background music, delivery to the user in Telegram and to the pulse channel, then cleanup.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"reels-loop-generate","inSpecCorpus":true,"messages":[],"moduleName":"fn_reels_loop_generate","name":{"en":"Advanced looping video","ru":"Зацикленное видео"},"sha256":"3a9ce2c1a55f9cd69e4e74bc21a0f3d770f0c6d7846bb379a8233cc7583e2d2e","specPath":"specs/functions/reels-loop-generate.t27","summary":{"en":"Turns a set of user images into a looping video: morphing clips between the images, download and concatenation, background music, delivery to the user in Telegram and to the pulse channel, then cleanup.","ru":"Превращает набор изображений пользователя в зацикленное видео: морфинг-клипы между изображениями, скачивание и склейка, фоновая музыка, доставка пользователю в Telegram и в пульс-канал, затем очистка."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/render/renderAvatarVideo.ts","legacyId":"render-avatar-video","probeResult":"FAILED-at-guard","retries":3,"steps":13},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"render","EVENT":"render/avatar-video.run","GUARD":"zod-schema","ID":"render-avatar-video-run","KIND":"function","LEGACY_EVENTS":["render/avatar-video"],"LEGACY_ID":"render-avatar-video","NAME":"Render avatar video","NOTE":"Guard is zod-schema. Each wait-* step polls a provider job until it completes.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/render/renderAvatarVideo.ts:174","SIDE_EFFECTS":["paid-api","external-webhook","db-write"],"STEPS":["create-job","generate-speech-audio","start-hedra-generation","wait-hedra-completion","start-heygen-generation","wait-heygen-completion","generate-transcription","generate-broll-prompts","generate-brolls-parallel","wait-brolls-completion","create-job-settings","upload-settings-to-s3","trigger-render"],"SUMMARY_EN":"Produces an avatar video: generates the speech audio, runs the avatar generation (Hedra, then HeyGen), transcribes, writes B-roll prompts and generates the B-rolls in parallel, then writes the job settings to S3 and triggers the render.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"render-avatar-video-run","inSpecCorpus":true,"messages":[],"moduleName":"fn_render_avatar_video_run","name":{"en":"Render avatar video","ru":"Рендер аватар-видео"},"sha256":"c59d180a0c7866d5115f7d72ba3cf3f88e566c42936937fafba4eec89ab39820","specPath":"specs/functions/render-avatar-video-run.t27","summary":{"en":"Produces an avatar video: generates the speech audio, runs the avatar generation (Hedra, then HeyGen), transcribes, writes B-roll prompts and generates the B-rolls in parallel, then writes the job settings to S3 and triggers the render.","ru":"Создаёт аватар-видео: генерирует речь, запускает генерацию аватара (Hedra, затем HeyGen), расшифровывает, пишет промпты B-roll и параллельно генерирует B-roll, затем записывает настройки задачи в S3 и запускает рендер."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/render/render.ts","legacyId":"render","probeResult":"FAILED-at-guard","retries":3,"steps":5},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"render","EVENT":"render/job.run","GUARD":"zod-schema","ID":"render-job-run","KIND":"function","LEGACY_EVENTS":["render"],"LEGACY_ID":"render","NAME":"Render job","NOTE":"Guard is zod-schema: the payload is parsed before any file is downloaded.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/render/render.ts:38","SIDE_EFFECTS":["paid-api","external-webhook","db-write"],"STEPS":["create-job-folder","download-files","render","upload-to-s3","callback"],"SUMMARY_EN":"Renders a video job on the render server: creates the job folder, downloads the inputs, renders, uploads the output to S3 and calls the job callback.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"render-job-run","inSpecCorpus":true,"messages":[],"moduleName":"fn_render_job_run","name":{"en":"Render job","ru":"Задача рендера"},"sha256":"0119d4168128917ef6fbd8a991edae96003724af32280a9af0bd8fdbef080656","specPath":"specs/functions/render-job-run.t27","summary":{"en":"Renders a video job on the render server: creates the job folder, downloads the inputs, renders, uploads the output to S3 and calls the job callback.","ru":"Рендерит видеозадачу на рендер-сервере: создаёт папку задачи, скачивает входные файлы, рендерит, загружает результат в S3 и вызывает колбэк задачи."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/render/renderRiddle.ts","legacyId":"render-riddle","probeResult":"FAILED-at-guard","retries":3,"steps":15},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"render","EVENT":"render/riddle.run","GUARD":"zod-schema","ID":"render-riddle-run","KIND":"function","LEGACY_EVENTS":["render-riddle"],"LEGACY_ID":"render-riddle","NAME":"Render riddle video","NOTE":"Guard is zod-schema. The step names generate-broll-${index} and wait-broll-${index} are templates expanded once per scene; start-avatar-generation and wait-avatar-completion appear twice in the code and are listed twice here.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/render/renderRiddle.ts:59","SIDE_EFFECTS":["paid-api","external-webhook","db-write"],"STEPS":["preflight-render-capacity","load-template-json","create-job","generate-speech-audio","start-avatar-generation","wait-avatar-completion","start-avatar-generation","wait-avatar-completion","extract-avatar-speech-url","generate-transcription","generate-broll-prompts","generate-broll-${index}","wait-broll-${index}","prepare-template-json","trigger-render"],"SUMMARY_EN":"Produces a riddle video from a template: checks render capacity, loads the template, generates the speech audio and the avatar clips, transcribes, generates one B-roll per scene, prepares the template JSON and triggers the render.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"render-riddle-run","inSpecCorpus":true,"messages":[],"moduleName":"fn_render_riddle_run","name":{"en":"Render riddle video","ru":"Рендер видео-загадки"},"sha256":"fab0efc9b80a37a8be8d288f95c9e1067c8c8bbcc70cc2af2f5d2f67a6f528f6","specPath":"specs/functions/render-riddle-run.t27","summary":{"en":"Produces a riddle video from a template: checks render capacity, loads the template, generates the speech audio and the avatar clips, transcribes, generates one B-roll per scene, prepares the template JSON and triggers the render.","ru":"Создаёт видео-загадку по шаблону: проверяет ёмкость рендера, загружает шаблон, генерирует речь и клипы аватара, расшифровывает, генерирует по одному B-roll на сцену, готовит JSON шаблона и запускает рендер."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":false,"file":"src/inngest_app/functions/existing/handleModelTrainingCompleted.ts","legacyId":"handle-model-training-completed","probeResult":"not-deployed","retries":2,"steps":3},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"training","EVENT":"training/model.complete","GUARD":"unknown","ID":"training-model-complete","KIND":"function","LEGACY_EVENTS":["model/training.completed"],"LEGACY_ID":"handle-model-training-completed","NAME":"Model training completed","NOTE":"Not on the production Railway build as of 2026-09-09 (deployed_2026_09_09 false in the manifest): the deployed app registers 24 base functions and this one is not among them. Guard is unknown because the function could not be probed there.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"not-deployed","REPO":"999-multibots-telegraf","RETRIES":2,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/existing/handleModelTrainingCompleted.ts:38","SIDE_EFFECTS":["charges-balance","paid-api","messages-user","db-write"],"STEPS":["find-training-record","update-training-status","send-telegram-notification"],"SUMMARY_EN":"Handles the training-completed event from the provider: finds the training record, updates its status and the model list, and sends the user a Telegram notification about the finished or failed training.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"training-model-complete","inSpecCorpus":true,"messages":["not on the production build probed 2026-09-09 (deployed_2026_09_09 false)"],"moduleName":"fn_training_model_complete","name":{"en":"Model training completed","ru":"Обучение модели завершено"},"sha256":"7764be58758765cb0794cbd0621d91356ee6b71ba3adfb462f615b62111d7454","specPath":"specs/functions/training-model-complete.t27","summary":{"en":"Handles the training-completed event from the provider: finds the training record, updates its status and the model list, and sends the user a Telegram notification about the finished or failed training.","ru":"Обрабатывает событие завершения обучения от провайдера: находит запись обучения, обновляет её статус и список моделей и отправляет пользователю уведомление в Telegram о завершённом или упавшем обучении."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/existing/generateModelTrainingFunction.ts","legacyId":"generate-model-training","probeResult":"FAILED-at-guard","retries":0,"steps":8},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"training","EVENT":"training/model.start","GUARD":"validate-steps","ID":"training-model-start","KIND":"function","LEGACY_EVENTS":["model/training.start"],"LEGACY_ID":"generate-model-training","NAME":"Model training start (v1)","NOTE":"RETRIES is 0 by declaration: a failed start is not retried, because a retry would create a second Replicate training. Guard is validate-steps.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":0,"SAFE_PROBE":"{\"telegram_id\": \"0\", \"bot_name\": \"e2e_nonexistent_bot\", \"steps\": -1, \"zipUrl\": \"\", \"triggerWord\": \"e2e\", \"modelName\": \"e2e\", \"is_ru\": true}","SERVICE":"src/inngest_app/functions/existing/generateModelTrainingFunction.ts:38","SIDE_EFFECTS":["charges-balance","paid-api","messages-user","db-write"],"STEPS":["validate-credentials","check-duplicates","validate-zip-url","create-replicate-model","save-pending-record","create-replicate-training","update-training-record","notify-user-started"],"SUMMARY_EN":"Starts a Replicate fine-tune for a user: validates credentials, refuses duplicates, checks the training archive URL, creates the Replicate model and training, records it, and tells the user the training has started.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"training-model-start","inSpecCorpus":true,"messages":[],"moduleName":"fn_training_model_start","name":{"en":"Model training start (v1)","ru":"Старт обучения модели (v1)"},"sha256":"90fff63e83a250434c62c3918a91b8a53f7d72a93469ecb589470b1b1bee1c12","specPath":"specs/functions/training-model-start.t27","summary":{"en":"Starts a Replicate fine-tune for a user: validates credentials, refuses duplicates, checks the training archive URL, creates the Replicate model and training, records it, and tells the user the training has started.","ru":"Запускает дообучение на Replicate для пользователя: проверяет учётные данные, отклоняет дубликаты, проверяет URL архива, создаёт модель и обучение на Replicate, записывает их и сообщает пользователю о старте."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":null,"legacyId":"model-training-v2","probeResult":"FAILED-at-guard","retries":null,"steps":0},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"training","EVENT":"training/model-v2.start","GUARD":"check-user-exists","ID":"training-model-v2-start","KIND":"function","LEGACY_EVENTS":["model/training.v2.requested"],"LEGACY_ID":"model-training-v2","NAME":"Model training start (v2)","NOTE":"The manifest carries no file, steps or retries for this function (its extractor did not resolve them); SERVICE, STEPS and RETRIES here were read from the same checkout. RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. Guard is check-user-exists.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"{\"telegram_id\": \"0\", \"bot_name\": \"e2e_nonexistent_bot\", \"zipUrl\": \"\", \"triggerWord\": \"e2e\", \"modelName\": \"e2e\", \"steps\": 1, \"is_ru\": true, \"gender\": \"male\"}","SERVICE":"src/inngest_app/functions/training/modelTrainingV2.ts:45","SIDE_EFFECTS":["charges-balance","paid-api","messages-user","db-write"],"STEPS":["check-user-exists","update-user-level","get-bot","check-balance","encode-zip","create-training","save-training-to-db","notify-user","deduct-balance","refund-balance","handle-error"],"SUMMARY_EN":"Starts a v2 fine-tune for a user: checks the user and the balance, encodes the training archive, creates the training on the provider, records it, deducts the balance and notifies the user; on a later failure the balance is refunded.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"training-model-v2-start","inSpecCorpus":true,"messages":[],"moduleName":"fn_training_model_v2_start","name":{"en":"Model training start (v2)","ru":"Старт обучения модели (v2)"},"sha256":"c4524d253aa50af4b4f7a25d528df1a74f902d4229b0103aa6544a6f79e6274c","specPath":"specs/functions/training-model-v2-start.t27","summary":{"en":"Starts a v2 fine-tune for a user: checks the user and the balance, encodes the training archive, creates the training on the provider, records it, deducts the balance and notifies the user; on a later failure the balance is refunded.","ru":"Запускает дообучение v2 для пользователя: проверяет пользователя и баланс, кодирует архив обучения, создаёт обучение у провайдера, записывает его, списывает баланс и уведомляет пользователя; при последующем сбое баланс возвращается."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":false,"file":"src/inngest_app/functions/training/checkStuckTrainings.ts","legacyId":"check-stuck-trainings","probeResult":"not-deployed","retries":null,"steps":3},"cronSpec":"inngest/999-multibots-telegraf/check-stuck-trainings","differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"*/30 * * * *","DOMAIN":"training","EVENT":"","GUARD":"none","ID":"training-stuck-check","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"check-stuck-trainings","NAME":"Stuck trainings check","NOTE":"Not on the production Railway build as of 2026-09-09 (deployed_2026_09_09 false in the manifest). RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. The same schedule is stated as a cron card, specs/crons ID inngest/999-multibots-telegraf/check-stuck-trainings. Since host PR #2328 (2026-09-10) a training that Replicate answers 404 for is retired: model_trainings.status set to failed with the fixed error text, one warn to the admin, no event and no user message; two rows from 2025-12-02 had been re-asked every 30 minutes for nine months. Skipped in safe mode. The 404 branch is not yet stated as a step; the code is its only witness.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"not-deployed","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/training/checkStuckTrainings.ts:47","SIDE_EFFECTS":["charges-balance","paid-api","messages-user","db-write"],"STEPS":["find-stuck-trainings","check-replicate-status","send-completion-events"],"SUMMARY_EN":"Every 30 minutes finds model trainings still marked pending or processing past the stuck threshold, asks Replicate for their real status and emits the completion events that reconcile them.","TRIGGER":"cron","TZ":"UTC"},"health":"ok","id":"training-stuck-check","inSpecCorpus":true,"messages":["not on the production build probed 2026-09-09 (deployed_2026_09_09 false)"],"moduleName":"fn_training_stuck_check","name":{"en":"Stuck trainings check","ru":"Проверка застрявших обучений"},"sha256":"e78e6abf68de0ce2b1f2810e02555111fcccd78a5e27765d7d54c0440936dfa2","specPath":"specs/functions/training-stuck-check.t27","summary":{"en":"Every 30 minutes finds model trainings still marked pending or processing past the stuck threshold, asks Replicate for their real status and emits the completion events that reconcile them.","ru":"Каждые 30 минут находит обучения моделей, всё ещё отмеченные как pending или processing дольше порога, запрашивает у Replicate их реальный статус и порождает события завершения, которые их сверяют."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":false,"file":"src/inngest_app/functions/webhookHealthGuard.ts","legacyId":"validate-webhook-before-generation","probeResult":"not-deployed","retries":1,"steps":1},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"webhook","EVENT":"webhook/generation.validate","GUARD":"unknown","ID":"webhook-generation-validate","KIND":"function","LEGACY_EVENTS":["video/generation-validate-webhook"],"LEGACY_ID":"validate-webhook-before-generation","NAME":"Webhook validation before generation","NOTE":"Not on the production Railway build as of 2026-09-09 (deployed_2026_09_09 false in the manifest). Guard is unknown because the function could not be probed there. Two other functions in the same file (webhook-health-check, periodic-webhook-health-check) are not registered and have no spec.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"not-deployed","REPO":"999-multibots-telegraf","RETRIES":1,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/webhookHealthGuard.ts:147","SIDE_EFFECTS":["db-write"],"STEPS":["check-webhook-availability"],"SUMMARY_EN":"Checks that the video-generation webhook endpoint is reachable before a generation is started and records the result.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"webhook-generation-validate","inSpecCorpus":true,"messages":["not on the production build probed 2026-09-09 (deployed_2026_09_09 false)"],"moduleName":"fn_webhook_generation_validate","name":{"en":"Webhook validation before generation","ru":"Проверка вебхука перед генерацией"},"sha256":"7a4293fa70eef3448b38f3e6c58d84becf127f5c561225ce43062b8c379e2719","specPath":"specs/functions/webhook-generation-validate.t27","summary":{"en":"Checks that the video-generation webhook endpoint is reachable before a generation is started and records the result.","ru":"Проверяет, что эндпоинт вебхука видеогенерации доступен до старта генерации, и записывает результат."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":false,"file":"src/inngest_app/functions/welcomeAvatarGeneration.ts","legacyId":"welcome-avatar-generation","probeResult":"not-deployed","retries":2,"steps":5},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"welcome","EVENT":"welcome/avatar.generate","GUARD":"unknown","ID":"welcome-avatar-generate","KIND":"function","LEGACY_EVENTS":["user/welcome.avatar.generate"],"LEGACY_ID":"welcome-avatar-generation","NAME":"Welcome avatar generation","NOTE":"Not on the production Railway build as of 2026-09-09 (deployed_2026_09_09 false in the manifest). Guard is unknown because the function could not be probed there.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"not-deployed","REPO":"999-multibots-telegraf","RETRIES":2,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/welcomeAvatarGeneration.ts:108","SIDE_EFFECTS":["paid-api","messages-user"],"STEPS":["validate-bot","select-hero","reserve-gift-slot","generate-image","send-welcome"],"SUMMARY_EN":"Generates a welcome avatar for a new user: validates the bot, selects a hero, reserves a gift slot, generates the image and sends the welcome message.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"welcome-avatar-generate","inSpecCorpus":true,"messages":["not on the production build probed 2026-09-09 (deployed_2026_09_09 false)"],"moduleName":"fn_welcome_avatar_generate","name":{"en":"Welcome avatar generation","ru":"Приветственный аватар"},"sha256":"3b27453bd662eaee697645051447f1d63e66c5c2c64a3157ec7caa0be403f4b4","specPath":"specs/functions/welcome-avatar-generate.t27","summary":{"en":"Generates a welcome avatar for a new user: validates the bot, selects a hero, reserves a gift slot, generates the image and sends the welcome message.","ru":"Генерирует приветственный аватар для нового пользователя: проверяет бота, выбирает героя, резервирует слот подарка, генерирует изображение и отправляет приветственное сообщение."},"typecheckOk":true,"witness":"spec+code"}],"generatedAt":"2026-09-21T08:52:39.041Z","i18n":[{"bundle":"apps/website/i18n/agents.ru.json","coverage":{"n":28,"total":28},"enabled":true,"fields":["SUMMARY","NAME"],"locale":"ru","missing":[],"scope":["specs/skills","specs/crons","specs/agents","specs/functions","specs/tools"],"sha256":"c8871fb4ccdef8fc3cc2937af5db0e307ab0b62f6a03ece9f4512851ffd64f04","spec":"specs/i18n/agents-ru.t27"}],"ladder":{"agents":27,"crons":33,"functions":28,"skills":26,"specs":1414,"tools":92},"manifest":{"deployedApp":{"baseFunctions":24,"mainRegisters":28,"name":"telegram-bot-client","sdk":"js v3.54.2"},"entries":28,"generatedFrom":{"branch":"main","commit":"a9c08b4","note":"Extracted from the source tree by the spec-first design pass of 2026-09-09; three entries carry no file/steps and eight carry retries null because the extractor did not resolve them. Copied by hand into this repository -- no sync script produces it yet."},"probedAt":"2026-09-09","repo":"gHashTag/999-multibots-telegraf"},"version":1} +{"codeOnly":[],"compilerWasmSha256":"bb39b9a5ca412a2695ab6a20a54e222933e10edaf08ef053670e4974d08f113f","contentSha256":"99dc9b51ef662a875d473d68505ff0863d733dba6d6501b207809f6bde4c0258","counts":{"byDomain":{"analytics":4,"broadcast":1,"content":3,"crm":1,"instagram":3,"money":2,"monitoring":4,"morph":1,"neuro":1,"payment":1,"reels":3,"render":3,"training":4,"webhook":1,"welcome":1},"byProbeResult":{"COMPLETED":7,"FAILED-at-guard":16,"not-deployed":4,"skipped":6},"bySideEffect":{"charges-balance":6,"db-write":19,"external-webhook":6,"messages-admin":6,"messages-owners":4,"messages-user":12,"none":0,"paid-api":22},"byTrigger":{"cron":10,"event":23},"codeOnly":0,"deployUnknown":5,"deployed":24,"notDeployed":4,"specOnly":0,"specPlusCode":33,"specs":33,"typecheckOk":33,"withCronSpec":10,"withDifferences":5},"functions":[{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/analytics/dailySalesAdvisor.ts","legacyId":"daily-sales-advisor","probeResult":"COMPLETED","retries":1,"steps":5},"cronSpec":"inngest/999-multibots-telegraf/daily-sales-advisor","differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"0 9 * * *","DOMAIN":"analytics","EVENT":"","GUARD":"none","ID":"analytics-sales-advise","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"daily-sales-advisor","NAME":"Daily sales advisor","NOTE":"The same schedule is stated as a cron card, specs/crons ID inngest/999-multibots-telegraf/daily-sales-advisor. The step name report-${ownerId} is a template expanded once per owner. A manual invoke on 2026-09-09 messaged 13 owners; the hardening list asks this function to honour safe mode.","ON_FAILURE":"log","PROBE_RESULT":"COMPLETED","REPO":"999-multibots-telegraf","RETRIES":1,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/analytics/dailySalesAdvisor.ts:54","SIDE_EFFECTS":["messages-owners","messages-admin"],"STEPS":["load-owners","load-payments-7d","load-payments-1d","load-payments-2d","report-${ownerId}"],"SUMMARY_EN":"Every day at 09:00 UTC loads the bot owners and their payments over the last seven, two and one days and sends each owner a sales report, with a copy to the admin chat.","TRIGGER":"cron","TZ":"UTC"},"health":"ok","id":"analytics-sales-advise","inSpecCorpus":true,"messages":[],"moduleName":"fn_analytics_sales_advise","name":{"en":"Daily sales advisor","ru":"Ежедневный советник по продажам"},"sha256":"22f09be2b6651090b1704700bf03ee6e25c741ef726c92c34171cb37e0eb4fa4","specPath":"specs/functions/analytics-sales-advise.t27","summary":{"en":"Every day at 09:00 UTC loads the bot owners and their payments over the last seven, two and one days and sends each owner a sales report, with a copy to the admin chat.","ru":"Каждый день в 09:00 UTC загружает владельцев ботов и их платежи за последние семь, два и один день и отправляет каждому владельцу отчёт о продажах с копией в админ-чат."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/analytics/skillDetector.ts","legacyId":"skill-detector","probeResult":"COMPLETED","retries":1,"steps":3},"cronSpec":"inngest/999-multibots-telegraf/skill-detector","differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"0 10 * * *","DOMAIN":"analytics","EVENT":"","GUARD":"none","ID":"analytics-skills-detect","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"skill-detector","NAME":"Skill detector","NOTE":"The same schedule is stated as a cron card, specs/crons ID inngest/999-multibots-telegraf/skill-detector. The step name detect-${serviceType} is a template expanded once per service type.","ON_FAILURE":"log","PROBE_RESULT":"COMPLETED","REPO":"999-multibots-telegraf","RETRIES":1,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/analytics/skillDetector.ts:30","SIDE_EFFECTS":["messages-owners","messages-admin"],"STEPS":["load-existing-skills","detect-${serviceType}","notify-admin"],"SUMMARY_EN":"Every day at 10:00 UTC loads the known skills, detects new service types from recent usage, one detection step per service type, and notifies the admin chat.","TRIGGER":"cron","TZ":"UTC"},"health":"ok","id":"analytics-skills-detect","inSpecCorpus":true,"messages":[],"moduleName":"fn_analytics_skills_detect","name":{"en":"Skill detector","ru":"Детектор навыков"},"sha256":"e03e0b8b71566e3cce95146ec4825f3421b844c504f10a8ca0e755db14540e53","specPath":"specs/functions/analytics-skills-detect.t27","summary":{"en":"Every day at 10:00 UTC loads the known skills, detects new service types from recent usage, one detection step per service type, and notifies the admin chat.","ru":"Каждый день в 10:00 UTC загружает известные навыки, находит новые типы сервисов по недавнему использованию (по одному шагу на тип сервиса) и уведомляет админ-чат."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":null,"legacyId":"broadcast-message","probeResult":"FAILED-at-guard","retries":null,"steps":0},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"broadcast","EVENT":"broadcast/message.send","GUARD":"validate-input","ID":"broadcast-message-send","KIND":"function","LEGACY_EVENTS":["broadcast/send-message"],"LEGACY_ID":"broadcast-message","NAME":"Broadcast message","NOTE":"The manifest carries no file, steps or retries for this function (its extractor did not resolve them); SERVICE, STEPS and RETRIES here were read from the same checkout (retries 3). Guard is validate-input. A test_telegram_id in the payload narrows the audience to one recipient.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/broadcast/broadcastMessage.ts:22","SIDE_EFFECTS":["messages-user"],"STEPS":["validate-input","check-permissions","fetch-users","send-messages","analyze-results"],"SUMMARY_EN":"Sends a broadcast to a bot audience: validates the request, checks the sender permissions, fetches the recipients, sends the messages and summarises the delivery results.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"broadcast-message-send","inSpecCorpus":true,"messages":[],"moduleName":"fn_broadcast_message_send","name":{"en":"Broadcast message","ru":"Рассылка сообщения"},"sha256":"53f3415e61b946dfe7216c4d03e52cd53225207b9a8741bf9904dab9092eb357","specPath":"specs/functions/broadcast-message-send.t27","summary":{"en":"Sends a broadcast to a bot audience: validates the request, checks the sender permissions, fetches the recipients, sends the messages and summarises the delivery results.","ru":"Отправляет рассылку аудитории бота: проверяет запрос и права отправителя, получает список получателей, отправляет сообщения и подводит итоги доставки."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":null,"file":"src/inngest_app/functions/analytics/clientTelemetryDaily.ts","legacyId":"client-telemetry-daily","probeResult":"","retries":0,"steps":3},"cronSpec":"inngest/999-multibots-telegraf/client-telemetry-daily","differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"0 7 * * *","DOMAIN":"analytics","EVENT":"","GUARD":"safe-mode","ID":"client-telemetry-daily","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"client-telemetry-daily","NAME":"Clients: daily usage report to the owner","NOTE":"No safe probe has been sent: the 2026-09-09 probe pass predates this registration, which is why the manifest row carries no deployment reading. The live status endpoint answered on 2026-09-22 with 2 runs over seven days and none failed. RETRIES is 0 on purpose: a retry after a partial send would deliver the owner the same report twice. 07:00 UTC is 10:00 in Moscow, which keeps no summer time. A read of the events table that fails is logged and does not become an empty report.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"skipped","REPO":"999-multibots-telegraf","RETRIES":0,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/analytics/clientTelemetryDaily.ts:62","SIDE_EFFECTS":["messages-owners","db-write"],"STEPS":["build-report","send","prune"],"SUMMARY_EN":"Every day at 07:00 UTC builds a report of where clients went and where they stopped, sends it to the owner, and prunes the events it has already accounted for. Where the daily sales advisor reports cash, this one reports product usage.","TRIGGER":"cron","TZ":"UTC"},"health":"ok","id":"client-telemetry-daily","inSpecCorpus":false,"messages":[],"moduleName":"fn_client_telemetry_daily","name":{"en":"Clients: daily usage report to the owner","ru":"Клиенты: ежедневный отчёт о пользовании владельцу"},"sha256":"b7dc7072f8b3e1221285154addd1fad2a50ad9269e80a199067fe188a12c793f","specPath":"specs/functions/client-telemetry-daily.t27","summary":{"en":"Every day at 07:00 UTC builds a report of where clients went and where they stopped, sends it to the owner, and prunes the events it has already accounted for. Where the daily sales advisor reports cash, this one reports product usage.","ru":"Каждый день в 07:00 UTC собирает отчёт о том, куда дошли клиенты и где остановились, отправляет его владельцу и удаляет уже учтённые события. Там, где ежедневный советник отчитывается о деньгах, этот отчитывается о пользовании продуктом."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":null,"file":"src/inngest_app/functions/analytics/clubInvoiceAbandonedWatch.ts","legacyId":"","probeResult":"","retries":0,"steps":1},"cronSpec":"inngest/999-multibots-telegraf/club-invoice-abandoned-watch","differences":[{"code":["db-read","db-write"],"field":"SIDE_EFFECTS","spec":["db-write"]}],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"20 * * * *","DOMAIN":"analytics","EVENT":"","GUARD":"safe-mode","ID":"club-invoice-abandoned-watch","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"club-invoice-abandoned-watch","NAME":"Funnel: club invoices nobody paid","NOTE":"No safe probe has been sent: the 2026-09-09 probe pass predates this registration, which is why the manifest row carries no deployment reading. The live status endpoint answered on 2026-09-22 with 11 runs over seven days and none failed. SIDE_EFFECTS drops the manifest's db-read, which the catalog vocabulary cannot say; the run reads the invoices it marks. Abandonment is a conclusion, not a report: Telegram tells nobody when a person closes a payment window, so the rule is an invoice older than an hour with no charge after it, and it lives in services/trackEvent.ts where it is tested apart from the schedule. A unique index makes the row land once however often the job runs, and an unreadable table throws so that could not look reaches the failure handler instead of printing as nobody walked away.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"skipped","REPO":"999-multibots-telegraf","RETRIES":0,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/analytics/clubInvoiceAbandonedWatch.ts:22","SIDE_EFFECTS":["db-write"],"STEPS":["mark"],"SUMMARY_EN":"Every hour marks the club invoices that are older than an hour with no charge after them as abandoned, writing one funnel row per invoice so that the path from card to invoice to paid or abandoned can be read without joining tables by hand. It charges nothing and messages nobody.","TRIGGER":"cron","TZ":"UTC"},"health":"warn","id":"club-invoice-abandoned-watch","inSpecCorpus":false,"messages":["SIDE_EFFECTS [\"db-write\"] differs from the manifest ([\"db-read\",\"db-write\"])"],"moduleName":"fn_club_invoice_abandoned_watch","name":{"en":"Funnel: club invoices nobody paid","ru":"Воронка: клубные счета, которые никто не оплатил"},"sha256":"d365d8277639e58c0df6b633be0669dad530dbb7421665579fc521b1c2b50364","specPath":"specs/functions/club-invoice-abandoned-watch.t27","summary":{"en":"Every hour marks the club invoices that are older than an hour with no charge after them as abandoned, writing one funnel row per invoice so that the path from card to invoice to paid or abandoned can be read without joining tables by hand. It charges nothing and messages nobody.","ru":"Каждый час помечает как брошенные те клубные счета, которым больше часа и после которых не было оплаты, записывая по одной строке воронки на счёт, чтобы путь от карточки к счёту и дальше к оплате или отказу читался без ручного соединения таблиц. Ничего не списывает и никому не пишет."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/content/generateDetailedScript.ts","legacyId":"generate-detailed-script","probeResult":"FAILED-at-guard","retries":null,"steps":3},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"content","EVENT":"content/detailed-script.generate","GUARD":"zod-schema","ID":"content-detailed-script-generate","KIND":"function","LEGACY_EVENTS":["content/generate-detailed-script"],"LEGACY_ID":"generate-detailed-script","NAME":"Generate detailed script","NOTE":"RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. Guard is zod-schema.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/content/generateDetailedScript.ts:191","SIDE_EFFECTS":["paid-api","db-write"],"STEPS":["create-script-record","generate-detailed-scenes","save-detailed-script"],"SUMMARY_EN":"Expands a script into detailed scenes: creates the script record, generates the scene-by-scene text with a language model and stores the detailed script.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"content-detailed-script-generate","inSpecCorpus":true,"messages":[],"moduleName":"fn_content_detailed_script_generate","name":{"en":"Generate detailed script","ru":"Детальный сценарий"},"sha256":"4360313e280f6638395cf3aab44984a5a215e39aa9c61d11ed8c0e5ecfb028a3","specPath":"specs/functions/content-detailed-script-generate.t27","summary":{"en":"Expands a script into detailed scenes: creates the script record, generates the scene-by-scene text with a language model and stores the detailed script.","ru":"Разворачивает сценарий в подробные сцены: создаёт запись сценария, генерирует текст по сценам языковой моделью и сохраняет детальный сценарий."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/content/generateScenarioClips.ts","legacyId":"generate-scenario-clips","probeResult":"FAILED-at-guard","retries":null,"steps":4},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"content","EVENT":"content/scenario-clips.generate","GUARD":"zod-schema","ID":"content-scenario-clips-generate","KIND":"function","LEGACY_EVENTS":["content/generate-scenario-clips"],"LEGACY_ID":"generate-scenario-clips","NAME":"Generate scenario clips","NOTE":"RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. Guard is zod-schema.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/content/generateScenarioClips.ts:221","SIDE_EFFECTS":["paid-api","db-write"],"STEPS":["create-scenario-record","generate-detailed-scenes","create-text-reports-archive","update-scenario-record"],"SUMMARY_EN":"Builds a scenario from a script: creates the scenario record, generates the detailed scenes, packs the text reports into an archive and updates the record.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"content-scenario-clips-generate","inSpecCorpus":true,"messages":[],"moduleName":"fn_content_scenario_clips_generate","name":{"en":"Generate scenario clips","ru":"Клипы по сценарию"},"sha256":"a7f24bf9b6921c2d3b5bbb4bd4519b8bb42623a7bf54ba85ceb3b39e12799c74","specPath":"specs/functions/content-scenario-clips-generate.t27","summary":{"en":"Builds a scenario from a script: creates the scenario record, generates the detailed scenes, packs the text reports into an archive and updates the record.","ru":"Строит сценарий по скрипту: создаёт запись, генерирует подробные сцены, упаковывает текстовые отчёты в архив и обновляет запись."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/content/generateContentScripts.ts","legacyId":"generate-content-scripts","probeResult":"FAILED-at-guard","retries":null,"steps":5},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"content","EVENT":"content/scripts.generate","GUARD":"zod-schema","ID":"content-scripts-generate","KIND":"function","LEGACY_EVENTS":["instagram/generate-scripts"],"LEGACY_ID":"generate-content-scripts","NAME":"Generate content scripts","NOTE":"RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. Guard is zod-schema. The legacy event name keeps the instagram/ prefix the function was first registered under.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/content/generateContentScripts.ts:44","SIDE_EFFECTS":["paid-api","db-write"],"STEPS":["get-reel-data","extract-audio","transcribe-audio","generate-scripts","save-scripts"],"SUMMARY_EN":"Writes content scripts from a stored reel: loads the reel, extracts and transcribes the audio, generates the scripts with a language model and stores them.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"content-scripts-generate","inSpecCorpus":true,"messages":[],"moduleName":"fn_content_scripts_generate","name":{"en":"Generate content scripts","ru":"Сценарии контента"},"sha256":"2c65fc896945f85b8a031bf434390756577e278e8daf5affeed9046d7978492a","specPath":"specs/functions/content-scripts-generate.t27","summary":{"en":"Writes content scripts from a stored reel: loads the reel, extracts and transcribes the audio, generates the scripts with a language model and stores them.","ru":"Пишет сценарии контента по сохранённому рилсу: загружает рилс, извлекает и расшифровывает звук, генерирует сценарии языковой моделью и сохраняет их."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":null,"file":"src/inngest_app/functions/crm/crmProactiveSweep.ts","legacyId":"","probeResult":"","retries":0,"steps":2},"cronSpec":"inngest/999-multibots-telegraf/crm-proactive-sweep","differences":[{"code":["messages-user","paid-api","db-write"],"field":"SIDE_EFFECTS","spec":["messages-owners","paid-api","external-webhook","db-write"]},{"code":"none","field":"GUARD","spec":"safe-mode"}],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"*/30 * * * *","DOMAIN":"crm","EVENT":"","GUARD":"safe-mode","ID":"crm-proactive-sweep","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"crm-proactive-sweep","NAME":"CRM: proactive seller sweep","NOTE":"No safe probe has been sent: the 2026-09-09 probe pass predates this registration, which is why the manifest row carries no deployment reading. The live status endpoint answered on 2026-09-22 with 337 runs over seven days and 5 failed, the only function in the project with a failure in that window, so this card exists to make that number reachable. The step name sweep-${owner} is a template expanded once per seller. SIDE_EFFECTS reads the service the run calls into (services/crmProactive.ts): the outreach card goes to the seller who owns the bot, not to the end client, so it is messages-owners and not the manifest's messages-user; the render's MCP route is called over HTTPS (external-webhook) and a model turn is paid for (paid-api). GUARD is the isSafeMode early return at the top of the handler, which the manifest recorded as none. The same schedule is also stated by the timer cron card timer/999-multibots-telegraf/crmProactive-L375, the in-process setInterval this cron replaced on 2026-09-12; CRM_SWEEP_DRIVER=timer restores it.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"skipped","REPO":"999-multibots-telegraf","RETRIES":0,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/crm/crmProactiveSweep.ts:101","SIDE_EFFECTS":["messages-owners","paid-api","external-webhook","db-write"],"STEPS":["resolve-sellers","sweep-${owner}"],"SUMMARY_EN":"Every half hour resolves the sellers a registered carrier serves and sweeps each one: the render's CRM tools are called over HTTP, a model is asked what to do next, and an outreach card is pushed to that seller's own chat. Safe mode skips the whole run.","TRIGGER":"cron","TZ":"UTC"},"health":"warn","id":"crm-proactive-sweep","inSpecCorpus":false,"messages":["SIDE_EFFECTS [\"messages-owners\",\"paid-api\",\"external-webhook\",\"db-write\"] differs from the manifest ([\"messages-user\",\"paid-api\",\"db-write\"])","GUARD \"safe-mode\" differs from the manifest (\"none\")"],"moduleName":"fn_crm_proactive_sweep","name":{"en":"CRM: proactive seller sweep","ru":"CRM: проактивный обход продавцов"},"sha256":"991b7b34a38442cd1c493fa250f836256aa232499c70031619a2fbedde7bb970","specPath":"specs/functions/crm-proactive-sweep.t27","summary":{"en":"Every half hour resolves the sellers a registered carrier serves and sweeps each one: the render's CRM tools are called over HTTP, a model is asked what to do next, and an outreach card is pushed to that seller's own chat. Safe mode skips the whole run.","ru":"Каждые полчаса определяет продавцов, которых обслуживает зарегистрированный носитель, и обходит каждого: по HTTP вызывает CRM-инструменты рендера, спрашивает модель, что делать дальше, и присылает продавцу в его собственный чат карточку для связи. В безопасном режиме прогон пропускается целиком."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/content/findCompetitors.ts","legacyId":"find-competitors","probeResult":"FAILED-at-guard","retries":null,"steps":6},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"instagram","EVENT":"instagram/competitors.find","GUARD":"validate-input","ID":"instagram-competitors-find","KIND":"function","LEGACY_EVENTS":["instagram/find-competitors"],"LEGACY_ID":"find-competitors","NAME":"Find competitors","NOTE":"RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. Guard is validate-input.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/content/findCompetitors.ts:134","SIDE_EFFECTS":["paid-api","db-write"],"STEPS":["validate-input","validate-project","call-instagram-api","filter-by-followers","save-to-competitors-table","send-telegram-notification"],"SUMMARY_EN":"Finds Instagram competitors for a project: validates the request and the project, calls the Instagram API, filters by follower count, stores the competitors and notifies the requester in Telegram.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"instagram-competitors-find","inSpecCorpus":true,"messages":[],"moduleName":"fn_instagram_competitors_find","name":{"en":"Find competitors","ru":"Поиск конкурентов"},"sha256":"8201d47aaa9d3ca811c9a2ddf8b4e227645473d0122da9311fd542a5e53cfaa9","specPath":"specs/functions/instagram-competitors-find.t27","summary":{"en":"Finds Instagram competitors for a project: validates the request and the project, calls the Instagram API, filters by follower count, stores the competitors and notifies the requester in Telegram.","ru":"Находит конкурентов в Instagram для проекта: проверяет запрос и проект, вызывает Instagram API, фильтрует по числу подписчиков, сохраняет конкурентов и уведомляет заказчика в Telegram."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/content/analyzeCompetitorReels.ts","legacyId":"analyze-competitor-reels","probeResult":"FAILED-at-guard","retries":null,"steps":7},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"instagram","EVENT":"instagram/reels.analyze","GUARD":"validate-input","ID":"instagram-reels-analyze","KIND":"function","LEGACY_EVENTS":["instagram/analyze-reels"],"LEGACY_ID":"analyze-competitor-reels","NAME":"Analyze competitor reels","NOTE":"RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. Guard is validate-input.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/content/analyzeCompetitorReels.ts:211","SIDE_EFFECTS":["paid-api","db-write"],"STEPS":["validate-input","validate-project","call-instagram-reels-api","filter-reels-by-date","calculate-metrics","save-to-reels-analysis-table","send-telegram-notification"],"SUMMARY_EN":"Analyzes the recent reels of an Instagram competitor for a project: validates the request and the project, calls the reels API, filters by date, computes the metrics, stores the analysis and notifies the requester in Telegram.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"instagram-reels-analyze","inSpecCorpus":true,"messages":[],"moduleName":"fn_instagram_reels_analyze","name":{"en":"Analyze competitor reels","ru":"Анализ рилсов конкурента"},"sha256":"6c4c986a981251d73c668906e1bf7d6d1890d1c9cff359d33a05a64551ed5a0a","specPath":"specs/functions/instagram-reels-analyze.t27","summary":{"en":"Analyzes the recent reels of an Instagram competitor for a project: validates the request and the project, calls the reels API, filters by date, computes the metrics, stores the analysis and notifies the requester in Telegram.","ru":"Анализирует недавние рилсы конкурента в Instagram для проекта: проверяет запрос и проект, вызывает API рилсов, фильтрует по дате, считает метрики, сохраняет анализ и уведомляет заказчика в Telegram."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/content/extractTopContent.ts","legacyId":"extract-top-content","probeResult":"FAILED-at-guard","retries":null,"steps":3},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"instagram","EVENT":"instagram/top-content.extract","GUARD":"zod-schema","ID":"instagram-top-content-extract","KIND":"function","LEGACY_EVENTS":["instagram/extract-top"],"LEGACY_ID":"extract-top-content","NAME":"Extract top content","NOTE":"RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. Guard is zod-schema.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/content/extractTopContent.ts:33","SIDE_EFFECTS":["paid-api","db-write"],"STEPS":["query-top-reels","process-reels","format-report"],"SUMMARY_EN":"Extracts the top-performing reels already stored for a project: queries the stored reels, processes them and formats the report.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"instagram-top-content-extract","inSpecCorpus":true,"messages":[],"moduleName":"fn_instagram_top_content_extract","name":{"en":"Extract top content","ru":"Лучший контент"},"sha256":"4b2c8ee5877c376316e94eda74ac07c789c1ee5c467313c7f093a3ae32bdc4b6","specPath":"specs/functions/instagram-top-content-extract.t27","summary":{"en":"Extracts the top-performing reels already stored for a project: queries the stored reels, processes them and formats the report.","ru":"Извлекает самые результативные рилсы, уже сохранённые для проекта: запрашивает их из базы, обрабатывает и формирует отчёт."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/monitoring/criticalErrorMonitor.ts","legacyId":"critical-error-monitor","probeResult":"COMPLETED","retries":1,"steps":4},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"monitoring","EVENT":"monitoring/error.report","GUARD":"none","ID":"monitoring-error-report","KIND":"function","LEGACY_EVENTS":["app/error.critical"],"LEGACY_ID":"critical-error-monitor","NAME":"Critical error report","NOTE":"No guard: the event is emitted by the application itself. The hardening list asks the formatter to render string, Error and {message} payloads and never print [object Object].","ON_FAILURE":"log","PROBE_RESULT":"COMPLETED","REPO":"999-multibots-telegraf","RETRIES":1,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/monitoring/criticalErrorMonitor.ts:175","SIDE_EFFECTS":["messages-admin"],"STEPS":["analyze-error","format-message","send-notification","log-for-analysis"],"SUMMARY_EN":"Reports a critical application error to the admin chat: analyzes the error, formats the message, sends the notification and logs the incident for later analysis.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"monitoring-error-report","inSpecCorpus":true,"messages":[],"moduleName":"fn_monitoring_error_report","name":{"en":"Critical error report","ru":"Отчёт о критической ошибке"},"sha256":"13cb1dcbfcb0f13ec58ba56cd2b3b2b788ccbc0e2b6cfc610e46b850889bee15","specPath":"specs/functions/monitoring-error-report.t27","summary":{"en":"Reports a critical application error to the admin chat: analyzes the error, formats the message, sends the notification and logs the incident for later analysis.","ru":"Сообщает о критической ошибке приложения в админ-чат: анализирует ошибку, форматирует сообщение, отправляет уведомление и записывает инцидент для последующего разбора."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/monitoring/criticalErrorMonitor.ts","legacyId":"health-check","probeResult":"COMPLETED","retries":2,"steps":3},"cronSpec":"inngest/999-multibots-telegraf/health-check","differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"*/30 * * * *","DOMAIN":"monitoring","EVENT":"","GUARD":"none","ID":"monitoring-health-check","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"health-check","NAME":"Health check","NOTE":"The same schedule is stated as a cron card, specs/crons ID inngest/999-multibots-telegraf/health-check. Lives in the same file as monitoring-error-report.","ON_FAILURE":"log","PROBE_RESULT":"COMPLETED","REPO":"999-multibots-telegraf","RETRIES":2,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/monitoring/criticalErrorMonitor.ts:235","SIDE_EFFECTS":["messages-admin"],"STEPS":["check-api-health","check-inngest-health","notify-unhealthy"],"SUMMARY_EN":"Every 30 minutes checks the API server and the Inngest service and messages the admin chat when either is unhealthy.","TRIGGER":"cron","TZ":"UTC"},"health":"ok","id":"monitoring-health-check","inSpecCorpus":true,"messages":[],"moduleName":"fn_monitoring_health_check","name":{"en":"Health check","ru":"Проверка здоровья"},"sha256":"57c23797300ea168c457a74d4edc25c1bcd249408efb634dcd32a7dbfa086260","specPath":"specs/functions/monitoring-health-check.t27","summary":{"en":"Every 30 minutes checks the API server and the Inngest service and messages the admin chat when either is unhealthy.","ru":"Каждые 30 минут проверяет API-сервер и сервис Inngest и пишет в админ-чат, если один из них нездоров."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/monitoring/logMonitor.ts","legacyId":"log-monitor","probeResult":"COMPLETED","retries":2,"steps":4},"cronSpec":"inngest/999-multibots-telegraf/log-monitor","differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"0 10 * * *","DOMAIN":"monitoring","EVENT":"","GUARD":"none","ID":"monitoring-logs-analyze","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"log-monitor","NAME":"Daily log analysis","NOTE":"The same schedule is stated as a cron card, specs/crons ID inngest/999-multibots-telegraf/log-monitor. When LOG_DIR is absent on the host the analysis has nothing to read; the hardening list asks for a fallback to the Inngest run summary.","ON_FAILURE":"log","PROBE_RESULT":"COMPLETED","REPO":"999-multibots-telegraf","RETRIES":2,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/monitoring/logMonitor.ts:352","SIDE_EFFECTS":["messages-admin"],"STEPS":["read-logs","analyze-logs","generate-message","send-notification"],"SUMMARY_EN":"Every day at 10:00 UTC reads the application logs, analyzes them for errors and warnings, generates a summary and sends it to the admin chat.","TRIGGER":"cron","TZ":"UTC"},"health":"ok","id":"monitoring-logs-analyze","inSpecCorpus":true,"messages":[],"moduleName":"fn_monitoring_logs_analyze","name":{"en":"Daily log analysis","ru":"Ежедневный анализ логов"},"sha256":"95c9e9bbfaae6a21c206eb8bd48f2a4eb041ab64cfbb9e7e709069e3ac14de52","specPath":"specs/functions/monitoring-logs-analyze.t27","summary":{"en":"Every day at 10:00 UTC reads the application logs, analyzes them for errors and warnings, generates a summary and sends it to the admin chat.","ru":"Каждый день в 10:00 UTC читает логи приложения, ищет в них ошибки и предупреждения, формирует сводку и отправляет её в админ-чат."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/monitoring/logMonitor.ts","legacyId":"trigger-log-monitor","probeResult":"COMPLETED","retries":1,"steps":4},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"monitoring","EVENT":"monitoring/logs.trigger","GUARD":"none","ID":"monitoring-logs-trigger","KIND":"function","LEGACY_EVENTS":["logs/monitor.trigger"],"LEGACY_ID":"trigger-log-monitor","NAME":"Log analysis on demand","NOTE":"Shares its file and its four steps with monitoring-logs-analyze; only the trigger differs.","ON_FAILURE":"log","PROBE_RESULT":"COMPLETED","REPO":"999-multibots-telegraf","RETRIES":1,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/monitoring/logMonitor.ts:408","SIDE_EFFECTS":["messages-admin"],"STEPS":["read-logs","analyze-logs","generate-message","send-notification"],"SUMMARY_EN":"Runs the same log analysis as the daily job when asked by an event: reads the logs, analyzes them, generates the summary and sends it to the admin chat.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"monitoring-logs-trigger","inSpecCorpus":true,"messages":[],"moduleName":"fn_monitoring_logs_trigger","name":{"en":"Log analysis on demand","ru":"Анализ логов по запросу"},"sha256":"9bb3e3fb5d73315392c6a08b674ca0b04d63b1e324dfa2a5ecb50bbdae6d074f","specPath":"specs/functions/monitoring-logs-trigger.t27","summary":{"en":"Runs the same log analysis as the daily job when asked by an event: reads the logs, analyzes them, generates the summary and sends it to the admin chat.","ru":"Выполняет тот же анализ логов, что и ежедневная задача, по событию: читает логи, анализирует их, формирует сводку и отправляет в админ-чат."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/training/morphImages.ts","legacyId":"morph-images","probeResult":"FAILED-at-guard","retries":3,"steps":8},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"morph","EVENT":"morph/images.generate","GUARD":"check-user-exists","ID":"morph-images-generate","KIND":"function","LEGACY_EVENTS":["morph/images.requested"],"LEGACY_ID":"morph-images","NAME":"Morph images","NOTE":"Guard is check-user-exists. A second, unregistered copy of this function exists in the tree (src/inngest_app/functions/morphImages.ts); the registered one is the file named in SERVICE.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{\"telegram_id\": \"0\", \"bot_name\": \"e2e_nonexistent_bot\", \"is_ru\": true, \"job_id\": \"e2e-probe\", \"image_files\": [], \"extraction_path\": \"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/nonexistent/e2e\", \"morphing_type\": \"seamless\", \"model\": \"kling-v1.6-pro\"}","SERVICE":"src/inngest_app/functions/training/morphImages.ts:30","SIDE_EFFECTS":["charges-balance","paid-api","messages-user"],"STEPS":["check-user-exists","check-balance","notify-start","process-all-pairs","process-loop-pair","concatenate-all-videos","cleanup-temp-files","deliver-result"],"SUMMARY_EN":"Morphs a sequence of user images into one video: checks the user and the balance, notifies the start, processes each image pair into a clip, concatenates the clips, cleans up and delivers the result.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"morph-images-generate","inSpecCorpus":true,"messages":[],"moduleName":"fn_morph_images_generate","name":{"en":"Morph images","ru":"Морфинг изображений"},"sha256":"2d830937229c3a5e780c372b433bbf53e38ccde9444ecb20e599fb20e65b2444","specPath":"specs/functions/morph-images-generate.t27","summary":{"en":"Morphs a sequence of user images into one video: checks the user and the balance, notifies the start, processes each image pair into a clip, concatenates the clips, cleans up and delivers the result.","ru":"Превращает последовательность изображений пользователя в одно видео: проверяет пользователя и баланс, сообщает о старте, обрабатывает каждую пару изображений в клип, склеивает клипы, очищает временные файлы и отдаёт результат."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/neuroImageGeneration.ts","legacyId":"neuro-image-generation","probeResult":"FAILED-at-guard","retries":3,"steps":11},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"neuro","EVENT":"neuro/image.generate","GUARD":"check-user","ID":"neuro-image-generate","KIND":"function","LEGACY_EVENTS":["neuro/photo.generate"],"LEGACY_ID":"neuro-image-generation","NAME":"Neuro image generation","NOTE":"Guard is check-user: an unknown telegram_id stops the run before any payment or paid API call. The step names generate-image-${i} and notify-image-${i} are templates the code expands once per requested image.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{\"telegram_id\": \"0\", \"bot_name\": \"e2e_nonexistent_bot\", \"prompt\": \"safe-mode probe\", \"is_ru\": true, \"num_images\": 1, \"model_url\": \"e2e/none\"}","SERVICE":"src/inngest_app/functions/neuroImageGeneration.ts:56","SIDE_EFFECTS":["charges-balance","paid-api","messages-user","db-write"],"STEPS":["get-bot","check-user","get-user-gender","update-level","calculate-total-cost","process-payment","get-aspect-ratio","generate-image-${i}","notify-image-${i}","deduct-balance-final","final-notification"],"SUMMARY_EN":"Generates one or more images for a Telegram user from a prompt and a model URL: loads the bot and the user, computes the total cost, charges the balance, then generates and sends each image and settles the balance at the end.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"neuro-image-generate","inSpecCorpus":true,"messages":[],"moduleName":"fn_neuro_image_generate","name":{"en":"Neuro image generation","ru":"Нейро-генерация изображений"},"sha256":"513d1e81f02cb450989ea83082948afcce37819434528fbed6b60930b2941fd8","specPath":"specs/functions/neuro-image-generate.t27","summary":{"en":"Generates one or more images for a Telegram user from a prompt and a model URL: loads the bot and the user, computes the total cost, charges the balance, then generates and sends each image and settles the balance at the end.","ru":"Генерирует одно или несколько изображений для пользователя Telegram по промпту и URL модели: загружает бота и пользователя, считает полную стоимость, списывает баланс, затем генерирует и отправляет каждое изображение и сводит баланс в конце."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":null,"legacyId":"payment-processing-ai-server","probeResult":"COMPLETED","retries":null,"steps":0},"cronSpec":null,"differences":[{"code":"log","field":"ON_FAILURE","spec":"admin-telegram"}],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"payment","EVENT":"payment/ai-server.process","GUARD":"amount-match","ID":"payment-ai-server-process","KIND":"function","LEGACY_EVENTS":["payment/process-ai-server"],"LEGACY_ID":"payment-processing-ai-server","NAME":"AI-server payment processing","NOTE":"The manifest carries no file, steps or retries for this function (its extractor did not resolve them); SERVICE, STEPS and RETRIES here were read from the same checkout, where retries is declared as 3 and onFailure is createInngestFailureHandler, which logs and messages the admin chat -- the manifest says on_failure log. Guard is amount-match: an amount matching no plan or option stops the run, which is why the 2026-09-09 probe with IncSum 0.01 COMPLETED without a balance change.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"COMPLETED","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{\"IncSum\": \"0.01\", \"inv_id\": \"e2e-safe-mode-probe\"}","SERVICE":"src/inngest_app/functions/payments/paymentProcessing.ts:64","SIDE_EFFECTS":["db-write","messages-user"],"STEPS":["check-subscription-plan","check-payment-option","get-user-info","get-bot-config","update-user-balance","send-notification"],"SUMMARY_EN":"Processes a payment reported by the AI server: matches the amount to a subscription plan or a payment option, loads the user and the bot configuration, updates the user balance and sends the payment notification.","TRIGGER":"event","TZ":"UTC"},"health":"warn","id":"payment-ai-server-process","inSpecCorpus":true,"messages":["ON_FAILURE \"admin-telegram\" differs from the manifest (\"log\")"],"moduleName":"fn_payment_ai_server_process","name":{"en":"AI-server payment processing","ru":"Обработка платежа AI-сервера"},"sha256":"07191109132327c0a3743ccc06815ccd2c64b5b6d604b358d26cb6e236dadfe6","specPath":"specs/functions/payment-ai-server-process.t27","summary":{"en":"Processes a payment reported by the AI server: matches the amount to a subscription plan or a payment option, loads the user and the bot configuration, updates the user balance and sends the payment notification.","ru":"Обрабатывает платёж, о котором сообщил AI-сервер: сопоставляет сумму с планом подписки или вариантом оплаты, загружает пользователя и конфигурацию бота, обновляет баланс и отправляет уведомление о платеже."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/ai-reels-callback.ts","legacyId":"ai-reels-callback","probeResult":"FAILED-at-guard","retries":3,"steps":3},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"reels","EVENT":"reels/ai.callback","GUARD":"extract-job-id","ID":"reels-ai-callback","KIND":"function","LEGACY_EVENTS":["ai-reels-callback"],"LEGACY_ID":"ai-reels-callback","NAME":"AI reels callback","NOTE":"Guard is extract-job-id: a payload without a job id fails before anything is sent.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/ai-reels-callback.ts:158","SIDE_EFFECTS":["paid-api","messages-user"],"STEPS":["send-completed-video","send-failed-message","send-processing-update"],"SUMMARY_EN":"Handles the provider callback for an AI reel job: extracts the job id, then sends the completed video, a failure message or a processing update to the user who ordered it.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"reels-ai-callback","inSpecCorpus":true,"messages":[],"moduleName":"fn_reels_ai_callback","name":{"en":"AI reels callback","ru":"Колбэк AI-рилсов"},"sha256":"8db0866dc43faf34aef111565007cdcdb66dd1d6dea46e8f7c7ab2ec97cdf13e","specPath":"specs/functions/reels-ai-callback.t27","summary":{"en":"Handles the provider callback for an AI reel job: extracts the job id, then sends the completed video, a failure message or a processing update to the user who ordered it.","ru":"Обрабатывает колбэк провайдера по задаче AI-рилса: извлекает id задачи, затем отправляет заказчику готовое видео, сообщение об ошибке или статус обработки."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/existing/generateAIReelsFunction.ts","legacyId":"ai-reels-generation","probeResult":"skipped","retries":2,"steps":4},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"reels","EVENT":"reels/ai.generate","GUARD":"none","ID":"reels-ai-generate","KIND":"function","LEGACY_EVENTS":["ai-reels/generate"],"LEGACY_ID":"ai-reels-generation","NAME":"AI reels generation","NOTE":"No guard: the first step already calls a paid API, so the 2026-09-09 probe skipped this function (PROBE_RESULT skipped). The hardening list asks for a validate-input step before that call.","ON_FAILURE":"log","PROBE_RESULT":"skipped","REPO":"999-multibots-telegraf","RETRIES":2,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/existing/generateAIReelsFunction.ts:44","SIDE_EFFECTS":["paid-api","messages-user"],"STEPS":["generate-lipsync-video","generate-wan25-video","merge-videos","notify-telegram"],"SUMMARY_EN":"Builds a short AI reel: a lip-sync video from an image and a text or audio track, a second generated clip, the two merged, and the result sent to the user in Telegram.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"reels-ai-generate","inSpecCorpus":true,"messages":[],"moduleName":"fn_reels_ai_generate","name":{"en":"AI reels generation","ru":"Генерация AI-рилсов"},"sha256":"11108a3f4c94af03d615a4f82336b1671b293aa40409293448ae52a58d598b20","specPath":"specs/functions/reels-ai-generate.t27","summary":{"en":"Builds a short AI reel: a lip-sync video from an image and a text or audio track, a second generated clip, the two merged, and the result sent to the user in Telegram.","ru":"Собирает короткий AI-рилс: липсинк-видео из изображения и текста или аудио, второй сгенерированный клип, их склейка и отправка результата пользователю в Telegram."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/existing/generateAdvancedLoopingVideoFunction.ts","legacyId":"generate-advanced-looping-video","probeResult":"FAILED-at-guard","retries":2,"steps":7},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"reels","EVENT":"reels/loop.generate","GUARD":"min-images","ID":"reels-loop-generate","KIND":"function","LEGACY_EVENTS":["reels/generate-advanced-loop"],"LEGACY_ID":"generate-advanced-looping-video","NAME":"Advanced looping video","NOTE":"Guard is min-images: fewer images than the minimum stops the run before any clip is generated.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":2,"SAFE_PROBE":"{\"telegram_id\": \"0\", \"image_urls\": [], \"bot_token\": \"\", \"prompt\": \"safe-mode probe\"}","SERVICE":"src/inngest_app/functions/existing/generateAdvancedLoopingVideoFunction.ts:77","SIDE_EFFECTS":["paid-api","messages-user"],"STEPS":["generate-morphing-clips","download-video-clips","combine-video-clips","add-music","send-to-telegram","send-to-pulse","cleanup"],"SUMMARY_EN":"Turns a set of user images into a looping video: morphing clips between the images, download and concatenation, background music, delivery to the user in Telegram and to the pulse channel, then cleanup.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"reels-loop-generate","inSpecCorpus":true,"messages":[],"moduleName":"fn_reels_loop_generate","name":{"en":"Advanced looping video","ru":"Зацикленное видео"},"sha256":"3a9ce2c1a55f9cd69e4e74bc21a0f3d770f0c6d7846bb379a8233cc7583e2d2e","specPath":"specs/functions/reels-loop-generate.t27","summary":{"en":"Turns a set of user images into a looping video: morphing clips between the images, download and concatenation, background music, delivery to the user in Telegram and to the pulse channel, then cleanup.","ru":"Превращает набор изображений пользователя в зацикленное видео: морфинг-клипы между изображениями, скачивание и склейка, фоновая музыка, доставка пользователю в Telegram и в пульс-канал, затем очистка."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/render/renderAvatarVideo.ts","legacyId":"render-avatar-video","probeResult":"FAILED-at-guard","retries":3,"steps":13},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"render","EVENT":"render/avatar-video.run","GUARD":"zod-schema","ID":"render-avatar-video-run","KIND":"function","LEGACY_EVENTS":["render/avatar-video"],"LEGACY_ID":"render-avatar-video","NAME":"Render avatar video","NOTE":"Guard is zod-schema. Each wait-* step polls a provider job until it completes.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/render/renderAvatarVideo.ts:174","SIDE_EFFECTS":["paid-api","external-webhook","db-write"],"STEPS":["create-job","generate-speech-audio","start-hedra-generation","wait-hedra-completion","start-heygen-generation","wait-heygen-completion","generate-transcription","generate-broll-prompts","generate-brolls-parallel","wait-brolls-completion","create-job-settings","upload-settings-to-s3","trigger-render"],"SUMMARY_EN":"Produces an avatar video: generates the speech audio, runs the avatar generation (Hedra, then HeyGen), transcribes, writes B-roll prompts and generates the B-rolls in parallel, then writes the job settings to S3 and triggers the render.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"render-avatar-video-run","inSpecCorpus":true,"messages":[],"moduleName":"fn_render_avatar_video_run","name":{"en":"Render avatar video","ru":"Рендер аватар-видео"},"sha256":"c59d180a0c7866d5115f7d72ba3cf3f88e566c42936937fafba4eec89ab39820","specPath":"specs/functions/render-avatar-video-run.t27","summary":{"en":"Produces an avatar video: generates the speech audio, runs the avatar generation (Hedra, then HeyGen), transcribes, writes B-roll prompts and generates the B-rolls in parallel, then writes the job settings to S3 and triggers the render.","ru":"Создаёт аватар-видео: генерирует речь, запускает генерацию аватара (Hedra, затем HeyGen), расшифровывает, пишет промпты B-roll и параллельно генерирует B-roll, затем записывает настройки задачи в S3 и запускает рендер."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/render/render.ts","legacyId":"render","probeResult":"FAILED-at-guard","retries":3,"steps":5},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"render","EVENT":"render/job.run","GUARD":"zod-schema","ID":"render-job-run","KIND":"function","LEGACY_EVENTS":["render"],"LEGACY_ID":"render","NAME":"Render job","NOTE":"Guard is zod-schema: the payload is parsed before any file is downloaded.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/render/render.ts:38","SIDE_EFFECTS":["paid-api","external-webhook","db-write"],"STEPS":["create-job-folder","download-files","render","upload-to-s3","callback"],"SUMMARY_EN":"Renders a video job on the render server: creates the job folder, downloads the inputs, renders, uploads the output to S3 and calls the job callback.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"render-job-run","inSpecCorpus":true,"messages":[],"moduleName":"fn_render_job_run","name":{"en":"Render job","ru":"Задача рендера"},"sha256":"0119d4168128917ef6fbd8a991edae96003724af32280a9af0bd8fdbef080656","specPath":"specs/functions/render-job-run.t27","summary":{"en":"Renders a video job on the render server: creates the job folder, downloads the inputs, renders, uploads the output to S3 and calls the job callback.","ru":"Рендерит видеозадачу на рендер-сервере: создаёт папку задачи, скачивает входные файлы, рендерит, загружает результат в S3 и вызывает колбэк задачи."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/render/renderRiddle.ts","legacyId":"render-riddle","probeResult":"FAILED-at-guard","retries":3,"steps":15},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"render","EVENT":"render/riddle.run","GUARD":"zod-schema","ID":"render-riddle-run","KIND":"function","LEGACY_EVENTS":["render-riddle"],"LEGACY_ID":"render-riddle","NAME":"Render riddle video","NOTE":"Guard is zod-schema. The step names generate-broll-${index} and wait-broll-${index} are templates expanded once per scene; start-avatar-generation and wait-avatar-completion appear twice in the code and are listed twice here.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":3,"SAFE_PROBE":"{}","SERVICE":"src/inngest_app/functions/render/renderRiddle.ts:59","SIDE_EFFECTS":["paid-api","external-webhook","db-write"],"STEPS":["preflight-render-capacity","load-template-json","create-job","generate-speech-audio","start-avatar-generation","wait-avatar-completion","start-avatar-generation","wait-avatar-completion","extract-avatar-speech-url","generate-transcription","generate-broll-prompts","generate-broll-${index}","wait-broll-${index}","prepare-template-json","trigger-render"],"SUMMARY_EN":"Produces a riddle video from a template: checks render capacity, loads the template, generates the speech audio and the avatar clips, transcribes, generates one B-roll per scene, prepares the template JSON and triggers the render.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"render-riddle-run","inSpecCorpus":true,"messages":[],"moduleName":"fn_render_riddle_run","name":{"en":"Render riddle video","ru":"Рендер видео-загадки"},"sha256":"fab0efc9b80a37a8be8d288f95c9e1067c8c8bbcc70cc2af2f5d2f67a6f528f6","specPath":"specs/functions/render-riddle-run.t27","summary":{"en":"Produces a riddle video from a template: checks render capacity, loads the template, generates the speech audio and the avatar clips, transcribes, generates one B-roll per scene, prepares the template JSON and triggers the render.","ru":"Создаёт видео-загадку по шаблону: проверяет ёмкость рендера, загружает шаблон, генерирует речь и клипы аватара, расшифровывает, генерирует по одному B-roll на сцену, готовит JSON шаблона и запускает рендер."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":null,"file":"src/inngest_app/functions/money/robokassaUnclaimedWatch.ts","legacyId":"","probeResult":"","retries":0,"steps":1},"cronSpec":"inngest/999-multibots-telegraf/robokassa-unclaimed-watch","differences":[{"code":["db-read","paid-api"],"field":"SIDE_EFFECTS","spec":["paid-api","external-webhook"]},{"code":"none","field":"GUARD","spec":"safe-mode"}],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"20 7 * * *","DOMAIN":"money","EVENT":"","GUARD":"safe-mode","ID":"robokassa-unclaimed-watch","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"robokassa-unclaimed-watch","NAME":"Money: roubles that arrived and were never credited","NOTE":"No safe probe has been sent: the 2026-09-09 probe pass predates this registration, which is why the manifest row carries no deployment reading. The live status endpoint answered on 2026-09-22 with 4 runs over seven days and none failed. SIDE_EFFECTS drops the manifest's db-read, which the catalog vocabulary cannot say, and adds external-webhook for the note the run posts to the render; the table read is stated here instead. GUARD is the isSafeMode early return at the top of the handler, which the manifest recorded as none. Without merchant credentials the run returns did=cannot ask and says nothing about money, because reporting none unclaimed would be inventing reassurance; the invoices older than thirty days are known debt recorded elsewhere and are deliberately not re-alarmed every morning.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"skipped","REPO":"999-multibots-telegraf","RETRIES":0,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/money/robokassaUnclaimedWatch.ts:44","SIDE_EFFECTS":["paid-api","external-webhook"],"STEPS":["ask the provider"],"SUMMARY_EN":"Every morning reads the pending Robokassa invoices of the last thirty days, asks the provider what state each one is in, and writes one journal line to the render saying either that nothing is unclaimed or that somebody paid and was never credited. It reads only; it never completes a payment.","TRIGGER":"cron","TZ":"UTC"},"health":"warn","id":"robokassa-unclaimed-watch","inSpecCorpus":false,"messages":["SIDE_EFFECTS [\"paid-api\",\"external-webhook\"] differs from the manifest ([\"db-read\",\"paid-api\"])","GUARD \"safe-mode\" differs from the manifest (\"none\")"],"moduleName":"fn_robokassa_unclaimed_watch","name":{"en":"Money: roubles that arrived and were never credited","ru":"Деньги: рубли пришли, но не зачислены"},"sha256":"c3ef6af233da10f21c52f6dc9963e27803596dfb8305ebb82cdd2883213a5b82","specPath":"specs/functions/robokassa-unclaimed-watch.t27","summary":{"en":"Every morning reads the pending Robokassa invoices of the last thirty days, asks the provider what state each one is in, and writes one journal line to the render saying either that nothing is unclaimed or that somebody paid and was never credited. It reads only; it never completes a payment.","ru":"Каждое утро читает незакрытые счета Robokassa за последние тридцать дней, спрашивает у провайдера состояние каждого и пишет в журнал рендера одну строку: либо что невостребованных нет, либо что человек заплатил, а зачисления не было. Только читает: платёж никогда не закрывает."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":null,"file":"src/inngest_app/functions/money/tonPendingWatch.ts","legacyId":"","probeResult":"","retries":0,"steps":1},"cronSpec":"inngest/999-multibots-telegraf/ton-pending-watch","differences":[{"code":["db-read","paid-api"],"field":"SIDE_EFFECTS","spec":["paid-api","external-webhook"]},{"code":"none","field":"GUARD","spec":"safe-mode"}],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"0 * * * *","DOMAIN":"money","EVENT":"","GUARD":"safe-mode","ID":"ton-pending-watch","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"ton-pending-watch","NAME":"Money: TON that arrived and was never credited","NOTE":"No safe probe has been sent: the 2026-09-09 probe pass predates this registration, which is why the manifest row carries no deployment reading. The live status endpoint answered on 2026-09-22 with 94 runs over seven days and none failed. SIDE_EFFECTS drops the manifest's db-read, which the catalog vocabulary cannot say, and adds external-webhook for the note the run posts to the render; the table read is stated here instead. GUARD is the isSafeMode early return at the top of the handler, which the manifest recorded as none. A chain the watcher cannot read returns did=unreadable and writes no quiet note, so a broken read never records a clean channel; that alarm is throttled to once every six hours.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"skipped","REPO":"999-multibots-telegraf","RETRIES":0,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/money/tonPendingWatch.ts:51","SIDE_EFFECTS":["paid-api","external-webhook"],"STEPS":["look"],"SUMMARY_EN":"Every hour reads the pending TON invoices, asks the chain whether the coins actually arrived, and writes one journal line to the render saying either that nothing is unclaimed or that somebody paid and was never credited. It reads only; it never completes a payment.","TRIGGER":"cron","TZ":"UTC"},"health":"warn","id":"ton-pending-watch","inSpecCorpus":false,"messages":["SIDE_EFFECTS [\"paid-api\",\"external-webhook\"] differs from the manifest ([\"db-read\",\"paid-api\"])","GUARD \"safe-mode\" differs from the manifest (\"none\")"],"moduleName":"fn_ton_pending_watch","name":{"en":"Money: TON that arrived and was never credited","ru":"Деньги: TON пришёл, но не зачислен"},"sha256":"f06dd22b47ae3e8cf57c0cfc3cf541eea9106dca0441e4287afef92b2dd099cd","specPath":"specs/functions/ton-pending-watch.t27","summary":{"en":"Every hour reads the pending TON invoices, asks the chain whether the coins actually arrived, and writes one journal line to the render saying either that nothing is unclaimed or that somebody paid and was never credited. It reads only; it never completes a payment.","ru":"Каждый час читает незакрытые TON-счета, спрашивает у сети, действительно ли монеты пришли, и пишет в журнал рендера одну строку: либо что невостребованных нет, либо что человек заплатил, а зачисления не было. Только читает: платёж никогда не закрывает."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":false,"file":"src/inngest_app/functions/existing/handleModelTrainingCompleted.ts","legacyId":"handle-model-training-completed","probeResult":"not-deployed","retries":2,"steps":3},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"training","EVENT":"training/model.complete","GUARD":"unknown","ID":"training-model-complete","KIND":"function","LEGACY_EVENTS":["model/training.completed"],"LEGACY_ID":"handle-model-training-completed","NAME":"Model training completed","NOTE":"Not on the production Railway build as of 2026-09-09 (deployed_2026_09_09 false in the manifest): the deployed app registers 24 base functions and this one is not among them. Guard is unknown because the function could not be probed there.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"not-deployed","REPO":"999-multibots-telegraf","RETRIES":2,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/existing/handleModelTrainingCompleted.ts:38","SIDE_EFFECTS":["charges-balance","paid-api","messages-user","db-write"],"STEPS":["find-training-record","update-training-status","send-telegram-notification"],"SUMMARY_EN":"Handles the training-completed event from the provider: finds the training record, updates its status and the model list, and sends the user a Telegram notification about the finished or failed training.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"training-model-complete","inSpecCorpus":true,"messages":["not on the production build probed 2026-09-09 (deployed_2026_09_09 false)"],"moduleName":"fn_training_model_complete","name":{"en":"Model training completed","ru":"Обучение модели завершено"},"sha256":"7764be58758765cb0794cbd0621d91356ee6b71ba3adfb462f615b62111d7454","specPath":"specs/functions/training-model-complete.t27","summary":{"en":"Handles the training-completed event from the provider: finds the training record, updates its status and the model list, and sends the user a Telegram notification about the finished or failed training.","ru":"Обрабатывает событие завершения обучения от провайдера: находит запись обучения, обновляет её статус и список моделей и отправляет пользователю уведомление в Telegram о завершённом или упавшем обучении."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":"src/inngest_app/functions/existing/generateModelTrainingFunction.ts","legacyId":"generate-model-training","probeResult":"FAILED-at-guard","retries":0,"steps":8},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"training","EVENT":"training/model.start","GUARD":"validate-steps","ID":"training-model-start","KIND":"function","LEGACY_EVENTS":["model/training.start"],"LEGACY_ID":"generate-model-training","NAME":"Model training start (v1)","NOTE":"RETRIES is 0 by declaration: a failed start is not retried, because a retry would create a second Replicate training. Guard is validate-steps.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":0,"SAFE_PROBE":"{\"telegram_id\": \"0\", \"bot_name\": \"e2e_nonexistent_bot\", \"steps\": -1, \"zipUrl\": \"\", \"triggerWord\": \"e2e\", \"modelName\": \"e2e\", \"is_ru\": true}","SERVICE":"src/inngest_app/functions/existing/generateModelTrainingFunction.ts:38","SIDE_EFFECTS":["charges-balance","paid-api","messages-user","db-write"],"STEPS":["validate-credentials","check-duplicates","validate-zip-url","create-replicate-model","save-pending-record","create-replicate-training","update-training-record","notify-user-started"],"SUMMARY_EN":"Starts a Replicate fine-tune for a user: validates credentials, refuses duplicates, checks the training archive URL, creates the Replicate model and training, records it, and tells the user the training has started.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"training-model-start","inSpecCorpus":true,"messages":[],"moduleName":"fn_training_model_start","name":{"en":"Model training start (v1)","ru":"Старт обучения модели (v1)"},"sha256":"90fff63e83a250434c62c3918a91b8a53f7d72a93469ecb589470b1b1bee1c12","specPath":"specs/functions/training-model-start.t27","summary":{"en":"Starts a Replicate fine-tune for a user: validates credentials, refuses duplicates, checks the training archive URL, creates the Replicate model and training, records it, and tells the user the training has started.","ru":"Запускает дообучение на Replicate для пользователя: проверяет учётные данные, отклоняет дубликаты, проверяет URL архива, создаёт модель и обучение на Replicate, записывает их и сообщает пользователю о старте."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":true,"file":null,"legacyId":"model-training-v2","probeResult":"FAILED-at-guard","retries":null,"steps":0},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"training","EVENT":"training/model-v2.start","GUARD":"check-user-exists","ID":"training-model-v2-start","KIND":"function","LEGACY_EVENTS":["model/training.v2.requested"],"LEGACY_ID":"model-training-v2","NAME":"Model training start (v2)","NOTE":"The manifest carries no file, steps or retries for this function (its extractor did not resolve them); SERVICE, STEPS and RETRIES here were read from the same checkout. RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. Guard is check-user-exists.","ON_FAILURE":"log","PROBE_RESULT":"FAILED-at-guard","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"{\"telegram_id\": \"0\", \"bot_name\": \"e2e_nonexistent_bot\", \"zipUrl\": \"\", \"triggerWord\": \"e2e\", \"modelName\": \"e2e\", \"steps\": 1, \"is_ru\": true, \"gender\": \"male\"}","SERVICE":"src/inngest_app/functions/training/modelTrainingV2.ts:45","SIDE_EFFECTS":["charges-balance","paid-api","messages-user","db-write"],"STEPS":["check-user-exists","update-user-level","get-bot","check-balance","encode-zip","create-training","save-training-to-db","notify-user","deduct-balance","refund-balance","handle-error"],"SUMMARY_EN":"Starts a v2 fine-tune for a user: checks the user and the balance, encodes the training archive, creates the training on the provider, records it, deducts the balance and notifies the user; on a later failure the balance is refunded.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"training-model-v2-start","inSpecCorpus":true,"messages":[],"moduleName":"fn_training_model_v2_start","name":{"en":"Model training start (v2)","ru":"Старт обучения модели (v2)"},"sha256":"c4524d253aa50af4b4f7a25d528df1a74f902d4229b0103aa6544a6f79e6274c","specPath":"specs/functions/training-model-v2-start.t27","summary":{"en":"Starts a v2 fine-tune for a user: checks the user and the balance, encodes the training archive, creates the training on the provider, records it, deducts the balance and notifies the user; on a later failure the balance is refunded.","ru":"Запускает дообучение v2 для пользователя: проверяет пользователя и баланс, кодирует архив обучения, создаёт обучение у провайдера, записывает его, списывает баланс и уведомляет пользователя; при последующем сбое баланс возвращается."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":false,"file":"src/inngest_app/functions/training/checkStuckTrainings.ts","legacyId":"check-stuck-trainings","probeResult":"not-deployed","retries":null,"steps":3},"cronSpec":"inngest/999-multibots-telegraf/check-stuck-trainings","differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"*/30 * * * *","DOMAIN":"training","EVENT":"","GUARD":"none","ID":"training-stuck-check","KIND":"function","LEGACY_EVENTS":[],"LEGACY_ID":"check-stuck-trainings","NAME":"Stuck trainings check","NOTE":"Not on the production Railway build as of 2026-09-09 (deployed_2026_09_09 false in the manifest). RETRIES is not declared in the code, so the Inngest JS SDK v3 default of 4 applies. The same schedule is stated as a cron card, specs/crons ID inngest/999-multibots-telegraf/check-stuck-trainings. Since host PR #2328 (2026-09-10) a training that Replicate answers 404 for is retired: model_trainings.status set to failed with the fixed error text, one warn to the admin, no event and no user message; two rows from 2025-12-02 had been re-asked every 30 minutes for nine months. Skipped in safe mode. The 404 branch is not yet stated as a step; the code is its only witness.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"not-deployed","REPO":"999-multibots-telegraf","RETRIES":4,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/training/checkStuckTrainings.ts:47","SIDE_EFFECTS":["charges-balance","paid-api","messages-user","db-write"],"STEPS":["find-stuck-trainings","check-replicate-status","send-completion-events"],"SUMMARY_EN":"Every 30 minutes finds model trainings still marked pending or processing past the stuck threshold, asks Replicate for their real status and emits the completion events that reconcile them.","TRIGGER":"cron","TZ":"UTC"},"health":"ok","id":"training-stuck-check","inSpecCorpus":true,"messages":["not on the production build probed 2026-09-09 (deployed_2026_09_09 false)"],"moduleName":"fn_training_stuck_check","name":{"en":"Stuck trainings check","ru":"Проверка застрявших обучений"},"sha256":"e78e6abf68de0ce2b1f2810e02555111fcccd78a5e27765d7d54c0440936dfa2","specPath":"specs/functions/training-stuck-check.t27","summary":{"en":"Every 30 minutes finds model trainings still marked pending or processing past the stuck threshold, asks Replicate for their real status and emits the completion events that reconcile them.","ru":"Каждые 30 минут находит обучения моделей, всё ещё отмеченные как pending или processing дольше порога, запрашивает у Replicate их реальный статус и порождает события завершения, которые их сверяют."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":false,"file":"src/inngest_app/functions/webhookHealthGuard.ts","legacyId":"validate-webhook-before-generation","probeResult":"not-deployed","retries":1,"steps":1},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"webhook","EVENT":"webhook/generation.validate","GUARD":"unknown","ID":"webhook-generation-validate","KIND":"function","LEGACY_EVENTS":["video/generation-validate-webhook"],"LEGACY_ID":"validate-webhook-before-generation","NAME":"Webhook validation before generation","NOTE":"Not on the production Railway build as of 2026-09-09 (deployed_2026_09_09 false in the manifest). Guard is unknown because the function could not be probed there. Two other functions in the same file (webhook-health-check, periodic-webhook-health-check) are not registered and have no spec.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"not-deployed","REPO":"999-multibots-telegraf","RETRIES":1,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/webhookHealthGuard.ts:147","SIDE_EFFECTS":["db-write"],"STEPS":["check-webhook-availability"],"SUMMARY_EN":"Checks that the video-generation webhook endpoint is reachable before a generation is started and records the result.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"webhook-generation-validate","inSpecCorpus":true,"messages":["not on the production build probed 2026-09-09 (deployed_2026_09_09 false)"],"moduleName":"fn_webhook_generation_validate","name":{"en":"Webhook validation before generation","ru":"Проверка вебхука перед генерацией"},"sha256":"7a4293fa70eef3448b38f3e6c58d84becf127f5c561225ce43062b8c379e2719","specPath":"specs/functions/webhook-generation-validate.t27","summary":{"en":"Checks that the video-generation webhook endpoint is reachable before a generation is started and records the result.","ru":"Проверяет, что эндпоинт вебхука видеогенерации доступен до старта генерации, и записывает результат."},"typecheckOk":true,"witness":"spec+code"},{"code":{"control":"spec+code","deployed":false,"file":"src/inngest_app/functions/welcomeAvatarGeneration.ts","legacyId":"welcome-avatar-generation","probeResult":"not-deployed","retries":2,"steps":5},"cronSpec":null,"differences":[],"discarded":0,"fields":{"CONTROL":"spec+code","CRON":"","DOMAIN":"welcome","EVENT":"welcome/avatar.generate","GUARD":"unknown","ID":"welcome-avatar-generate","KIND":"function","LEGACY_EVENTS":["user/welcome.avatar.generate"],"LEGACY_ID":"welcome-avatar-generation","NAME":"Welcome avatar generation","NOTE":"Not on the production Railway build as of 2026-09-09 (deployed_2026_09_09 false in the manifest). Guard is unknown because the function could not be probed there.","ON_FAILURE":"admin-telegram","PROBE_RESULT":"not-deployed","REPO":"999-multibots-telegraf","RETRIES":2,"SAFE_PROBE":"","SERVICE":"src/inngest_app/functions/welcomeAvatarGeneration.ts:108","SIDE_EFFECTS":["paid-api","messages-user"],"STEPS":["validate-bot","select-hero","reserve-gift-slot","generate-image","send-welcome"],"SUMMARY_EN":"Generates a welcome avatar for a new user: validates the bot, selects a hero, reserves a gift slot, generates the image and sends the welcome message.","TRIGGER":"event","TZ":"UTC"},"health":"ok","id":"welcome-avatar-generate","inSpecCorpus":true,"messages":["not on the production build probed 2026-09-09 (deployed_2026_09_09 false)"],"moduleName":"fn_welcome_avatar_generate","name":{"en":"Welcome avatar generation","ru":"Приветственный аватар"},"sha256":"3b27453bd662eaee697645051447f1d63e66c5c2c64a3157ec7caa0be403f4b4","specPath":"specs/functions/welcome-avatar-generate.t27","summary":{"en":"Generates a welcome avatar for a new user: validates the bot, selects a hero, reserves a gift slot, generates the image and sends the welcome message.","ru":"Генерирует приветственный аватар для нового пользователя: проверяет бота, выбирает героя, резервирует слот подарка, генерирует изображение и отправляет приветственное сообщение."},"typecheckOk":true,"witness":"spec+code"}],"generatedAt":"2026-09-22T17:46:29.695Z","i18n":[{"bundle":"apps/website/i18n/agents.ru.json","coverage":{"n":33,"total":33},"enabled":true,"fields":["SUMMARY","NAME"],"locale":"ru","missing":[],"scope":["specs/skills","specs/crons","specs/agents","specs/functions","specs/tools"],"sha256":"c8871fb4ccdef8fc3cc2937af5db0e307ab0b62f6a03ece9f4512851ffd64f04","spec":"specs/i18n/agents-ru.t27"}],"ladder":{"agents":27,"crons":38,"functions":33,"skills":27,"specs":1419,"tools":92},"manifest":{"deployedApp":{"baseFunctions":24,"mainRegisters":33,"name":"telegram-bot-client","sdk":"js v3.54.2"},"entries":33,"generatedFrom":{"addendum":{"commit":"05fd960f1fef35d09e9ec04e642fcbe0b8c5610a","functions":["crm-proactive-sweep","ton-pending-watch","club-invoice-abandoned-watch","robokassa-unclaimed-watch","client-telemetry-daily"],"note":"Five functions registered after the 2026-09-09 pass were absent from this witness, so the site could draw no card for any of them -- including crm-proactive-sweep, which carried every failed run in the project over the week of 2026-09-22. Their rows are copied from the bot's own src/inngest_app/functions.manifest.json at this commit and carry read_at. probe_result is empty and deployed_2026_09_09 is null because no safe probe was sent to them and the 2026-09-09 deployment reading predates their registration; the deployed_2026_09_09 false the bot manifest still carries for three of them is that same stale pass, while the live status endpoint answered for all five on 2026-09-22. The 28 older rows are still as read at a9c08b4 and have drifted from this commit in about forty fields; re-pinning them is a separate pass.","read_at":"2026-09-22"},"branch":"main","commit":"a9c08b4","note":"Extracted from the source tree by the spec-first design pass of 2026-09-09; three entries carry no file/steps and eight carry retries null because the extractor did not resolve them. Copied by hand into this repository -- no sync script produces it yet."},"probedAt":"2026-09-09","repo":"gHashTag/999-multibots-telegraf"},"version":1} diff --git a/apps/website/public/skills/spec-skills.json b/apps/website/public/skills/spec-skills.json index c1d1c573e7..0c68b6db30 100644 --- a/apps/website/public/skills/spec-skills.json +++ b/apps/website/public/skills/spec-skills.json @@ -1 +1 @@ -{"codeOnly":[],"compilerWasmSha256":"bb39b9a5ca412a2695ab6a20a54e222933e10edaf08ef053670e4974d08f113f","contentSha256":"f338a4557f4b34110b87a06c5dd01eb78b6313ec1fd47e09a92e59f279d151bf","counts":{"codeOnly":0,"runBy":0,"specOnly":0,"specPlusCode":27,"specs":27,"typecheckOk":27},"generatedAt":"2026-09-22T12:20:59.779Z","i18n":[{"bundle":"apps/website/i18n/agents.ru.json","coverage":{"n":26,"total":27},"enabled":true,"fields":["SUMMARY","NAME"],"locale":"ru","missing":["trinity/connect-accounts"],"scope":["specs/skills","specs/crons","specs/agents","specs/functions","specs/tools"],"sha256":"c8871fb4ccdef8fc3cc2937af5db0e307ab0b62f6a03ece9f4512851ffd64f04","spec":"specs/i18n/agents-ru.t27"}],"ladder":{"agents":27,"crons":33,"functions":28,"skills":27,"specs":1419,"tools":92},"skills":[{"code":{"health":"warn","link":"unbound","path":"t27/measure-corpus/SKILL.md","sha256":"b8fb7503f660a81b2fee57cde8998b18bbf6c6f334ca2ee69424c3ccf99f3211"},"discarded":0,"fields":{"COMMAND":"","ENABLED":true,"ID":"t27/measure-corpus","KIND":"skill","NAME":"MEASURE THE CORPUS","REPO":"t27","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Pick the right instrument for a claim about the t27 spec corpus, and avoid the specific traps that have produced wrong published numbers. Use before quoting any figure about specs, errors, or gates.","TAGS":["corpus","measurement","honesty"],"TIMEOUT_MIN":30},"health":"ok","id":"t27/measure-corpus","inSpecCorpus":true,"messages":[],"moduleName":"skill_t27_measure_corpus","name":{"en":"MEASURE THE CORPUS"},"runBy":[],"sha256":"740d067747a4de74acb2be6ba7072f11ef58da37700addab7e7a172cc0c397aa","specPath":"specs/skills/t27-measure-corpus.t27","summary":{"en":"Pick the right instrument for a claim about the t27 spec corpus, and avoid the specific traps that have produced wrong published numbers. Use before quoting any figure about specs, errors, or gates.","ru":"Выбор правильного инструмента для любого утверждения о корпусе спек t27 и список ловушек, которые уже давали неверные опубликованные числа. Использовать перед тем, как цитировать любое число о корпусе."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"t27/phi-loop/SKILL.md","sha256":"d8af7f6a9cbc39ed4557291528f36748e07292ef752f5159e2827f59b2dd7bc6"},"discarded":0,"fields":{"COMMAND":"","ENABLED":true,"ID":"t27/phi-loop","KIND":"skill","NAME":"PHI LOOP","REPO":"t27","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Execute 9-phase spec-first development workflow (Issue → Spec → TDD → Code → Gen → Seal → Verify → Land → Learn)","TAGS":["workflow","spec-first","tdd"],"TIMEOUT_MIN":30},"health":"ok","id":"t27/phi-loop","inSpecCorpus":true,"messages":[],"moduleName":"skill_t27_phi_loop","name":{"en":"PHI LOOP"},"runBy":[],"sha256":"19dba96ffef309c75a31bc54d282f25026afa8beeb3a6f97600946700a5f74db","specPath":"specs/skills/t27-phi-loop.t27","summary":{"en":"Execute 9-phase spec-first development workflow (Issue → Spec → TDD → Code → Gen → Seal → Verify → Land → Learn)","ru":"Девятифазный цикл spec-first разработки: Issue → Spec → TDD → Code → Gen → Seal → Verify → Land → Learn."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","link":"bound","path":"t27/tri/skill.md","sha256":"8fb4d4796c2dc7adab9670a65709ce0451633e6f1f076d5e490270596636042a"},"discarded":0,"fields":{"COMMAND":"/tri","ENABLED":true,"ID":"t27/tri","KIND":"skill","NAME":"tri","REPO":"t27","SOURCE":"skill.md","SPECS":["compiler/skill/registry.t27"],"SUMMARY_EN":"This skill should be used when user asks to \"tri skill begin\", \"PHI LOOP\", \"edit .t27 spec\", \"seal hash\", \"tri gen\", \"tri test\", \"tri verdict\", \"tri experience save\", \"tri notebook query\", \"tri notebook wrapup\", or any task requiring spe...","TAGS":["tri","workflow","seal"],"TIMEOUT_MIN":30},"health":"ok","id":"t27/tri","inSpecCorpus":true,"messages":[],"moduleName":"skill_t27_tri","name":{"en":"tri"},"runBy":[],"sha256":"99f03be9bbefc5f7c3b0637717e69650f11b0bf8644563b4e03bd24d12a66c89","specPath":"specs/skills/t27-tri.t27","summary":{"en":"This skill should be used when user asks to \"tri skill begin\", \"PHI LOOP\", \"edit .t27 spec\", \"seal hash\", \"tri gen\", \"tri test\", \"tri verdict\", \"tri experience save\", \"tri notebook query\", \"tri notebook wrapup\", or any task requiring spe...","ru":"Команды tri для работы со скилом: begin, правка .t27-спеки, seal hash, gen, test, verdict, experience. Реестр скилов описан в compiler/skill/registry.t27."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","link":"bound","path":"t27/tri-pipeline/SKILL.md","sha256":"b4bfc290b86a4a1d4513cf9ace0a43526ca8fe98e0d97ff1eb59ea7997aa7427"},"discarded":0,"fields":{"COMMAND":"","ENABLED":true,"ID":"t27/tri-pipeline","KIND":"skill","NAME":"TRI Pipeline","REPO":"t27","SOURCE":"SKILL.md","SPECS":["specs/pipeline/e2e_test.t27"],"SUMMARY_EN":"Execute tri commands (gen, test, verify, seal, verdict) for spec-first development","TAGS":["tri","pipeline","verify"],"TIMEOUT_MIN":30},"health":"ok","id":"t27/tri-pipeline","inSpecCorpus":true,"messages":[],"moduleName":"skill_t27_tri_pipeline","name":{"en":"TRI Pipeline"},"runBy":[],"sha256":"716635d0a782f18bfd6d112d88aeacc9e1961b81a85aec42b91a970fd55ce662","specPath":"specs/skills/t27-tri-pipeline.t27","summary":{"en":"Execute tri commands (gen, test, verify, seal, verdict) for spec-first development","ru":"Выполнение команд tri (gen, test, verify, seal, verdict) для spec-first разработки."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"t27/wave-audit/SKILL.md","sha256":"4cd0dd22105ae7fe86091a69ec297df729661181f147c0b59f8e8e94a90e9100"},"discarded":0,"fields":{"COMMAND":"","ENABLED":true,"ID":"t27/wave-audit","KIND":"skill","NAME":"Wave Audit — Comprehensive Project Analysis","REPO":"t27","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Full-spectrum audit of t27 project: GitHub issues analysis, weakness identification, SOTA research review, decomposed plan, and implementation of critical fixes.","TAGS":["audit","issues","plan"],"TIMEOUT_MIN":30},"health":"ok","id":"t27/wave-audit","inSpecCorpus":true,"messages":[],"moduleName":"skill_t27_wave_audit","name":{"en":"Wave Audit — Comprehensive Project Analysis"},"runBy":[],"sha256":"50c024be3d15fb0d68356ef3e918d71a1ddd3a6b315478927a996a5760efc1db","specPath":"specs/skills/t27-wave-audit.t27","summary":{"en":"Full-spectrum audit of t27 project: GitHub issues analysis, weakness identification, SOTA research review, decomposed plan, and implementation of critical fixes.","ru":"Полный аудит проекта t27: разбор GitHub issues, поиск слабых мест, обзор SOTA, декомпозированный план и реализация критичных исправлений."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","link":"bound","path":"t27/wrap-up/skill.md","sha256":"a4a9b4fd9d022c212add3479cde725f6b9bd56bc31d2d600ba771cbd009329f9"},"discarded":0,"fields":{"COMMAND":"/wrap-up","ENABLED":true,"ID":"t27/wrap-up","KIND":"skill","NAME":"wrap-up","REPO":"t27","SOURCE":"skill.md","SPECS":["specs/automation/wrapup-auto.t27"],"SUMMARY_EN":"Format and upload session wrap-up to NotebookLM for persistent semantic memory","TAGS":["memory","notebooklm","session"],"TIMEOUT_MIN":30},"health":"ok","id":"t27/wrap-up","inSpecCorpus":true,"messages":[],"moduleName":"skill_t27_wrap_up","name":{"en":"wrap-up"},"runBy":[],"sha256":"5f6e7ed53ca0f4ca52320a9c1ebdbbf079e371836de109c94dc440847fa0f2dc","specPath":"specs/skills/t27-wrap-up.t27","summary":{"en":"Format and upload session wrap-up to NotebookLM for persistent semantic memory","ru":"Оформление и загрузка итогов сессии в NotebookLM как постоянной семантической памяти."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/blog-post/SKILL.md","sha256":"2cb755fd4a60a76d568a0742aeda34da60a2441774139646e0ebf4bd2a185493"},"discarded":0,"fields":{"COMMAND":"/blog-post","ENABLED":true,"ID":"trinity/blog-post","KIND":"skill","NAME":"blog-post","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Write and publish a post to the t27.ai blog. Covers where the blog actually lives (not where it looks like it lives), the Post schema with its required receipts and openQuestions, the honesty rules the data file itself imposes, and the b...","TAGS":["blog","publish","website"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/blog-post","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_blog_post","name":{"en":"blog-post"},"runBy":[],"sha256":"028f49b8d26ed69b4f8db6991666a5f51b9a2c2737291ceb3258bfd11ff7c3e7","specPath":"specs/skills/trinity-blog-post.t27","summary":{"en":"Write and publish a post to the t27.ai blog. Covers where the blog actually lives (not where it looks like it lives), the Post schema with its required receipts and openQuestions, the honesty rules the data file itself imposes, and the b...","ru":"Написать и опубликовать пост в блог t27.ai: где блог реально живёт, схема Post с обязательными свидетельствами, обложка и проверки."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/board-sync/SKILL.md","sha256":"f4bfa63737cf7a2078ae6e42f68943384214159243243ae8ec971ddeaac1825e"},"discarded":0,"fields":{"COMMAND":"/board [sync|audit|fix]","ENABLED":true,"ID":"trinity/board-sync","KIND":"skill","NAME":"board","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"GitHub Project Board auto-sync — fill empty fields, sync labels with board status, audit field completeness. Keeps board as realtime source of truth.","TAGS":["github","board","labels"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/board-sync","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_board_sync","name":{"en":"board"},"runBy":[],"sha256":"45ece51f52ec529802e387903a06b3fc58f3dcc088823785511c924c57567c32","specPath":"specs/skills/trinity-board-sync.t27","summary":{"en":"GitHub Project Board auto-sync — fill empty fields, sync labels with board status, audit field completeness. Keeps board as realtime source of truth.","ru":"Автосинхронизация GitHub Project Board: заполнить пустые поля, согласовать метки со статусом доски, проверить полноту полей."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/cloud/SKILL.md","sha256":"53aa338dddc4e6b8a0fd82f6d3b8dc9ac9b245b3457559c3c44f325ede0130e6"},"discarded":0,"fields":{"COMMAND":"/cloud [status|agents|events|full]","ENABLED":true,"ID":"trinity/cloud","KIND":"skill","NAME":"cloud","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Show Trinity Cloud Dev dashboard — containers, training farm, issues, PRs, costs. Use when checking agent swarm status, cloud containers, or CI/CD pipeline.","TAGS":["dashboard","railway","agents"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/cloud","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_cloud","name":{"en":"cloud"},"runBy":[],"sha256":"7eb9c81b10e1dd99998207ce71b792342f1f8bdd3852b974f27eb20418ca480e","specPath":"specs/skills/trinity-cloud.t27","summary":{"en":"Show Trinity Cloud Dev dashboard — containers, training farm, issues, PRs, costs. Use when checking agent swarm status, cloud containers, or CI/CD pipeline.","ru":"Панель Trinity Cloud Dev: контейнеры, тренировочная ферма, issues, PR, расходы. Для проверки состояния роя агентов и CI/CD."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/connect-accounts/SKILL.md","sha256":"b8401486a420ad24142ab627b3c832dc46f60b751b0b51d7e87e4b87314296e6"},"discarded":0,"fields":{"COMMAND":"","ENABLED":true,"ID":"trinity/connect-accounts","KIND":"skill","NAME":"connect-accounts","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Sign a person into their own accounts (LinkedIn, X, job boards, social networks) through their remote browser, as an agent the person watches: SSO buttons pressed by label, every case of a sign-in with the move that fits it, secrets and consent kept theirs, and only what the tools really did reported.","TAGS":["browser","sign-in","sso","agents"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/connect-accounts","inSpecCorpus":false,"messages":[],"moduleName":"skill_trinity_connect_accounts","name":{"en":"connect-accounts"},"runBy":[],"sha256":"95e1dd8a54511b0d227fcc58e08f912fc872245cb37d35e9f2ae6d2e108692a7","specPath":"specs/skills/trinity-connect-accounts.t27","summary":{"en":"Sign a person into their own accounts (LinkedIn, X, job boards, social networks) through their remote browser, as an agent the person watches: SSO buttons pressed by label, every case of a sign-in with the move that fits it, secrets and consent kept theirs, and only what the tools really did reported."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/doctor/SKILL.md","sha256":"68efdf79301066d5e64e72babc91ddb867899786186fa360e6775b8365059815"},"discarded":0,"fields":{"COMMAND":"/doctor [quick|full|scan|junk|docs|dupes] [lang:ru|en]","ENABLED":true,"ID":"trinity/doctor","KIND":"skill","NAME":"doctor","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"HEALER — diagnose, heal, commit dirty files, monitor junk & docs & duplicates, report honestly. Every loop = action + proof.","TAGS":["health","repo","report"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/doctor","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_doctor","name":{"en":"doctor"},"runBy":[],"sha256":"4e74c213b43b2b2c253dda134a93795b3a6e627a4711d5fc8dffb3067c1cb0b0","specPath":"specs/skills/trinity-doctor.t27","summary":{"en":"HEALER — diagnose, heal, commit dirty files, monitor junk & docs & duplicates, report honestly. Every loop = action + proof.","ru":"ЛЕКАРЬ: диагностика, лечение, коммит грязных файлов, надзор за мусором, документацией и дубликатами, честный отчёт. Каждый цикл = действие + доказательство."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/farm-garden/SKILL.md","sha256":"6721489885755a64bfdd07f0407b0ddad366c713cb2723098c0fc63b4e196bb4"},"discarded":0,"fields":{"COMMAND":"","ENABLED":true,"ID":"trinity/farm-garden","KIND":"skill","NAME":"Garden — Quantum Gardener for Trinity Farm","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Autonomous farm population manager. Monitors, evolves, and recycles HSLM training workers.","TAGS":["farm","hslm","workers"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/farm-garden","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_farm_garden","name":{"en":"Garden — Quantum Gardener for Trinity Farm"},"runBy":[],"sha256":"4afded3071ac34a51d06749ea6983dfd0238d1dcb78856ae19b836122019c080","specPath":"specs/skills/trinity-farm-garden.t27","summary":{"en":"Autonomous farm population manager. Monitors, evolves, and recycles HSLM training workers.","ru":"Автономный управляющий популяцией фермы: наблюдает, эволюционирует и перерабатывает рабочих обучения HSLM."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/fpga-synth/SKILL.md","sha256":"de3915e66cdab0f3207f53f6ea22a85b258c8a998b614231eebf7afab2ca9ec3"},"discarded":0,"fields":{"COMMAND":"/fpga-synth ","ENABLED":true,"ID":"trinity/fpga-synth","KIND":"skill","NAME":"fpga-synth","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Run FPGA synthesis pipeline from .tri spec to bitstream. Use when working with Verilog, FPGA, or hardware synthesis.","TAGS":["fpga","verilog","synthesis"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/fpga-synth","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_fpga_synth","name":{"en":"fpga-synth"},"runBy":[],"sha256":"2d3563e302746a958794670cd14404a7c4e6854dcf546468dd5f91907ff299e4","specPath":"specs/skills/trinity-fpga-synth.t27","summary":{"en":"Run FPGA synthesis pipeline from .tri spec to bitstream. Use when working with Verilog, FPGA, or hardware synthesis.","ru":"Конвейер синтеза FPGA от .tri-спеки до битстрима. Для работы с Verilog, FPGA и аппаратным синтезом."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/god-mode/SKILL.md","sha256":"0c48e328ae4cf1cbaffef270e7dbe16fac59a7fba845547179bcfe078f65ee7a"},"discarded":0,"fields":{"COMMAND":"/god-mode [status|agents|tasks|violations]","ENABLED":true,"ID":"trinity/god-mode","KIND":"skill","NAME":"god-mode","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"GOD MODE — Agent monitoring dashboard. Shows swarm status, task queue, pipeline compliance, circuit breakers, git activity, and rule violations.","TAGS":["dashboard","agents","monitoring"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/god-mode","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_god_mode","name":{"en":"god-mode"},"runBy":[],"sha256":"577f3aa5eb4280c6be165fd7d0458fb849988246800eef63c77b3c774091706f","specPath":"specs/skills/trinity-god-mode.t27","summary":{"en":"GOD MODE — Agent monitoring dashboard. Shows swarm status, task queue, pipeline compliance, circuit breakers, git activity, and rule violations.","ru":"GOD MODE: панель наблюдения за агентами — состояние роя, очередь задач, соблюдение конвейера, предохранители, активность git, нарушения правил."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/implement-issue/SKILL.md","sha256":"88ccafaece204489bd38ee3f2fbd5f7db3d38275c2ba7e5a9bfca2852be596bb"},"discarded":0,"fields":{"COMMAND":"/implement-issue [issue-number]","ENABLED":true,"ID":"trinity/implement-issue","KIND":"skill","NAME":"implement-issue","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Read a GitHub issue, create a branch, implement the solution, and open a PR. Use when given an issue number to implement.","TAGS":["github","issue","pr"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/implement-issue","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_implement_issue","name":{"en":"implement-issue"},"runBy":[],"sha256":"789be8f18768603dfb45d8664ad51fc1bb1311f82a0288c3a93efc19c08534e6","specPath":"specs/skills/trinity-implement-issue.t27","summary":{"en":"Read a GitHub issue, create a branch, implement the solution, and open a PR. Use when given an issue number to implement.","ru":"Прочитать GitHub issue, создать ветку, реализовать решение и открыть PR. Для работы по номеру задачи."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/queen-hive-visuals/SKILL.md","sha256":"c6d914dc81c84fc13dacca37de258563261a451a139e3c1644bbdc8b7a97b414"},"discarded":0,"fields":{"COMMAND":"/queen-hive-visuals","ENABLED":true,"ID":"trinity/queen-hive-visuals","KIND":"skill","NAME":"queen-hive-visuals","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Maintain QUEEN's floating hive, original point-down TRINITY logo, sharp issue displays and matching camera interactions.","TAGS":["queen","ui","3d"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/queen-hive-visuals","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_queen_hive_visuals","name":{"en":"queen-hive-visuals"},"runBy":[],"sha256":"327c5189a740d092290fe5dd10de3cf4da56b54a44d1bec9be8414451e70ae0e","specPath":"specs/skills/trinity-queen-hive-visuals.t27","summary":{"en":"Maintain QUEEN's floating hive, original point-down TRINITY logo, sharp issue displays and matching camera interactions.","ru":"Поддержка плавающего улья Королевы, оригинального логотипа TRINITY остриём вниз, чётких табло задач и согласованных движений камеры."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/review-code/SKILL.md","sha256":"e5712744615c2422d9a0c81413422e6e1a2ac97c4bfac8bb508f1cd04bf05d75"},"discarded":0,"fields":{"COMMAND":"/review-code [file-or-branch] (optional)","ENABLED":true,"ID":"trinity/review-code","KIND":"skill","NAME":"review-code","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Review recent code changes for bugs, style issues, and improvements. Use after writing code or before committing.","TAGS":["review","quality"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/review-code","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_review_code","name":{"en":"review-code"},"runBy":[],"sha256":"c5cf6004cce2295f921b7d983e252a9aafbd92ad662db2d5b595824c2774b7a4","specPath":"specs/skills/trinity-review-code.t27","summary":{"en":"Review recent code changes for bugs, style issues, and improvements. Use after writing code or before committing.","ru":"Ревью недавних изменений кода: ошибки, стиль, улучшения. После написания кода или перед коммитом."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/run-tests/SKILL.md","sha256":"7ead75ab36b840ec5588013b0de8f2c23ed3a27a0d3a5160d7e68334e5992a79"},"discarded":0,"fields":{"COMMAND":"/run-tests [module] (optional - all, vsa, vm, bsd, hslm, tri-api)","ENABLED":true,"ID":"trinity/run-tests","KIND":"skill","NAME":"run-tests","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Build the project, check for warnings, run all tests, and report results. Quick health check for the codebase.","TAGS":["tests","build","zig"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/run-tests","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_run_tests","name":{"en":"run-tests"},"runBy":[],"sha256":"8c683823554ee75c69b4dd27468eb819bd8f7ea003e91cf216b80be03dca13a6","specPath":"specs/skills/trinity-run-tests.t27","summary":{"en":"Build the project, check for warnings, run all tests, and report results. Quick health check for the codebase.","ru":"Собрать проект, проверить предупреждения, прогнать все тесты и отчитаться. Быстрая проверка здоровья кодовой базы."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/scholar/SKILL.md","sha256":"5c35431008a4d2694cf2e7ad65c01d6f1559d5836b8f7cfb0c3422f752d5b2c2"},"discarded":0,"fields":{"COMMAND":"/scholar [scan|eval|apply|full|report|topic:\"query\"]","ENABLED":true,"ID":"trinity/scholar","KIND":"skill","NAME":"scholar","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Self-Evolving Research Agent — scans web for relevant tech, evaluates findings, proposes improvements. Uses Perplexity Sonar API via MCP.","TAGS":["research","perplexity","mcp"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/scholar","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_scholar","name":{"en":"scholar"},"runBy":[],"sha256":"70bc5c1e10d9905fa22a38de1c7b88926b75d69b6a82305e69613820f70f83ae","specPath":"specs/skills/trinity-scholar.t27","summary":{"en":"Self-Evolving Research Agent — scans web for relevant tech, evaluates findings, proposes improvements. Uses Perplexity Sonar API via MCP.","ru":"Саморазвивающийся исследовательский агент: сканирует веб на релевантные технологии, оценивает находки, предлагает улучшения. Perplexity Sonar через MCP."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/status/SKILL.md","sha256":"e4bc75ff45cdc52968f1ef0ac6e1a1a482072f78e14283b1e71b6fe13a054890"},"discarded":0,"fields":{"COMMAND":"/status [quick|full] [lang:ru|en]","ENABLED":true,"ID":"trinity/status","KIND":"skill","NAME":"status","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Live system dashboard — 12-dimension ouroboros score, verdict v3, agents, build health, recommendations","TAGS":["dashboard","ouroboros","verdict"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/status","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_status","name":{"en":"status"},"runBy":[],"sha256":"09185d50913f410e9c5cdd3338d2fd38adb97f0997208c6440c89b2325268b9c","specPath":"specs/skills/trinity-status.t27","summary":{"en":"Live system dashboard — 12-dimension ouroboros score, verdict v3, agents, build health, recommendations","ru":"Живая панель системы: 12-мерная оценка уробороса, verdict v3, агенты, здоровье сборки, рекомендации."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/tech-tree/SKILL.md","sha256":"f84c8ea67ab696a9bc3828ccfe8b8708572fe5ddb7574f409ddf75c467744a0f"},"discarded":0,"fields":{"COMMAND":"/tree [next|path|blocked|update]","ENABLED":true,"ID":"trinity/tech-tree","KIND":"skill","NAME":"tree","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Technology dependency tree — shows issue DAG, prereqs, critical path, blocked/ready tasks. Single source of truth for work order.","TAGS":["issues","dag","planning"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/tech-tree","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_tech_tree","name":{"en":"tree"},"runBy":[],"sha256":"951d3d8a6dd0c1c6c62a303c660a45205624bf2f558fd090b34fe5b45b9f1501","specPath":"specs/skills/trinity-tech-tree.t27","summary":{"en":"Technology dependency tree — shows issue DAG, prereqs, critical path, blocked/ready tasks. Single source of truth for work order.","ru":"Дерево технологических зависимостей: DAG задач, предпосылки, критический путь, заблокированные и готовые задачи. Единый источник порядка работ."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/tri/SKILL.md","sha256":"4c38d1005219336c88583e985b5208653fa199d12481d98173604922dc35e4a5"},"discarded":0,"fields":{"COMMAND":"/tri [short] [full] [audit] [coverage] [lang:ru|en] [humor|prof|toxic|zen]","ENABLED":true,"ID":"trinity/tri","KIND":"skill","NAME":"tri","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"TRI status dashboard — agent thought mode by default, /tri full for visual dashboard","TAGS":["tri","dashboard","status"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/tri","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_tri","name":{"en":"tri"},"runBy":[],"sha256":"09f58e175bfeb73fb49d30bfdc6e0b197d775e6883fa8bb9417dffc92ffefebd","specPath":"specs/skills/trinity-tri.t27","summary":{"en":"TRI status dashboard — agent thought mode by default, /tri full for visual dashboard","ru":"Панель статуса TRI: по умолчанию режим мысли агента, /tri full — визуальная панель."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/trinity-test/SKILL.md","sha256":"648c7f095f0b9739a17d7a5d47fbfbe3e6dc2b2bd940fb6cea837632940b6c56"},"discarded":0,"fields":{"COMMAND":"/trinity-test [module] (vsa, vm, firebird, all)","ENABLED":true,"ID":"trinity/trinity-test","KIND":"skill","NAME":"trinity-test","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Run Trinity test suites and analyze results. Use for testing VSA, VM, Firebird, WASM, or full test suite.","TAGS":["tests","vsa","vm"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/trinity-test","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_trinity_test","name":{"en":"trinity-test"},"runBy":[],"sha256":"b70f5629049065477023aa4b4d51eb8272de0750a5c4809d7d445c698729c1a0","specPath":"specs/skills/trinity-trinity-test.t27","summary":{"en":"Run Trinity test suites and analyze results. Use for testing VSA, VM, Firebird, WASM, or full test suite.","ru":"Прогон тестовых наборов Trinity и разбор результатов: VSA, VM, Firebird, WASM или всё целиком."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/ux-wave/SKILL.md","sha256":"9690999e8d1e2091c80ef838e41a1d4dc48d9ffea1cf29a39294238f69954b28"},"discarded":0,"fields":{"COMMAND":"/ux-wave [wave-number] [audit]","ENABLED":true,"ID":"trinity/ux-wave","KIND":"skill","NAME":"ux-wave","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Autonomous UX improvement waves — launch 4 parallel agents per wave, audit every 5 waves, commit fixes. For Queen UI chat & network polish.","TAGS":["ux","agents","queen"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/ux-wave","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_ux_wave","name":{"en":"ux-wave"},"runBy":[],"sha256":"e63fa9e43303eefdf53f1f95499c15bb7794c7f08c9d14c1958f61e362e75ada","specPath":"specs/skills/trinity-ux-wave.t27","summary":{"en":"Autonomous UX improvement waves — launch 4 parallel agents per wave, audit every 5 waves, commit fixes. For Queen UI chat & network polish.","ru":"Автономные волны улучшения UX: 4 параллельных агента на волну, аудит каждые 5 волн, коммит исправлений. Для чата и сети Queen UI."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/vibee-gen/SKILL.md","sha256":"fc01e69f1395b590603692a29d9bb1ee533104bb716b5bb284738027df17b395"},"discarded":0,"fields":{"COMMAND":"/vibee-gen ","ENABLED":true,"ID":"trinity/vibee-gen","KIND":"skill","NAME":"vibee-gen","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Generate Zig or Verilog code from VIBEE specifications. Use when creating or updating .tri specs and regenerating code.","TAGS":["codegen","zig","verilog"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/vibee-gen","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_vibee_gen","name":{"en":"vibee-gen"},"runBy":[],"sha256":"769952ebb9d14eba7cdd2ee226b9d266de20e692ac0ee1e66ba6f622564a91f9","specPath":"specs/skills/trinity-vibee-gen.t27","summary":{"en":"Generate Zig or Verilog code from VIBEE specifications. Use when creating or updating .tri specs and regenerating code.","ru":"Генерация кода Zig или Verilog из спецификаций VIBEE. При создании или обновлении .tri-спек и перегенерации кода."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/vsa-verify/SKILL.md","sha256":"8b9c4518b1bc5dd468b12697a436f7d959278466b5282e575709d7981722905b"},"discarded":0,"fields":{"COMMAND":"/vsa-verify [operation or proof to verify]","ENABLED":true,"ID":"trinity/vsa-verify","KIND":"skill","NAME":"vsa-verify","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Verify VSA (Vector Symbolic Architecture) mathematical proofs and operations. Use for math verification, bind/unbind/bundle testing, phi identity checks.","TAGS":["vsa","math","verify"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/vsa-verify","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_vsa_verify","name":{"en":"vsa-verify"},"runBy":[],"sha256":"311455eaad1ec081b56395b38564babf52e10966f35b98b862d97bc5be60ff52","specPath":"specs/skills/trinity-vsa-verify.t27","summary":{"en":"Verify VSA (Vector Symbolic Architecture) mathematical proofs and operations. Use for math verification, bind/unbind/bundle testing, phi identity checks.","ru":"Проверка математических доказательств и операций VSA: bind/unbind/bundle, тождества phi."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/wave/SKILL.md","sha256":"ecf06fdfa467158f6758066aba41a8e49699f37e61c18e62716da765a7eb5487"},"discarded":0,"fields":{"COMMAND":"/wave [status|spawn |deploy|progress]","ENABLED":true,"ID":"trinity/wave","KIND":"skill","NAME":"wave","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Farm wave management — create Railway accounts, spawn workers, deploy configs, track wave progress. Use for scaling training farm.","TAGS":["farm","railway","scaling"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/wave","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_wave","name":{"en":"wave"},"runBy":[],"sha256":"0d205500e7adf560ff03ecfd59e90ee13b51f4624e27555d4142e5b184100d6b","specPath":"specs/skills/trinity-wave.t27","summary":{"en":"Farm wave management — create Railway accounts, spawn workers, deploy configs, track wave progress. Use for scaling training farm.","ru":"Управление волнами фермы: аккаунты Railway, запуск рабочих, раскатка конфигов, прогресс волны. Для масштабирования тренировочной фермы."},"typecheckOk":true,"witness":"spec+code"}],"version":1} +{"codeOnly":[],"compilerWasmSha256":"bb39b9a5ca412a2695ab6a20a54e222933e10edaf08ef053670e4974d08f113f","contentSha256":"44038e4947ae7669555690064a9ff1e851413df52ea3bcc167a68ed144a5c61a","counts":{"codeOnly":0,"runBy":0,"specOnly":0,"specPlusCode":27,"specs":27,"typecheckOk":27},"generatedAt":"2026-09-22T17:46:29.695Z","i18n":[{"bundle":"apps/website/i18n/agents.ru.json","coverage":{"n":26,"total":27},"enabled":true,"fields":["SUMMARY","NAME"],"locale":"ru","missing":["trinity/connect-accounts"],"scope":["specs/skills","specs/crons","specs/agents","specs/functions","specs/tools"],"sha256":"c8871fb4ccdef8fc3cc2937af5db0e307ab0b62f6a03ece9f4512851ffd64f04","spec":"specs/i18n/agents-ru.t27"}],"ladder":{"agents":27,"crons":38,"functions":33,"skills":27,"specs":1419,"tools":92},"skills":[{"code":{"health":"warn","link":"unbound","path":"t27/measure-corpus/SKILL.md","sha256":"b8fb7503f660a81b2fee57cde8998b18bbf6c6f334ca2ee69424c3ccf99f3211"},"discarded":0,"fields":{"COMMAND":"","ENABLED":true,"ID":"t27/measure-corpus","KIND":"skill","NAME":"MEASURE THE CORPUS","REPO":"t27","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Pick the right instrument for a claim about the t27 spec corpus, and avoid the specific traps that have produced wrong published numbers. Use before quoting any figure about specs, errors, or gates.","TAGS":["corpus","measurement","honesty"],"TIMEOUT_MIN":30},"health":"ok","id":"t27/measure-corpus","inSpecCorpus":true,"messages":[],"moduleName":"skill_t27_measure_corpus","name":{"en":"MEASURE THE CORPUS"},"runBy":[],"sha256":"740d067747a4de74acb2be6ba7072f11ef58da37700addab7e7a172cc0c397aa","specPath":"specs/skills/t27-measure-corpus.t27","summary":{"en":"Pick the right instrument for a claim about the t27 spec corpus, and avoid the specific traps that have produced wrong published numbers. Use before quoting any figure about specs, errors, or gates.","ru":"Выбор правильного инструмента для любого утверждения о корпусе спек t27 и список ловушек, которые уже давали неверные опубликованные числа. Использовать перед тем, как цитировать любое число о корпусе."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"t27/phi-loop/SKILL.md","sha256":"d8af7f6a9cbc39ed4557291528f36748e07292ef752f5159e2827f59b2dd7bc6"},"discarded":0,"fields":{"COMMAND":"","ENABLED":true,"ID":"t27/phi-loop","KIND":"skill","NAME":"PHI LOOP","REPO":"t27","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Execute 9-phase spec-first development workflow (Issue → Spec → TDD → Code → Gen → Seal → Verify → Land → Learn)","TAGS":["workflow","spec-first","tdd"],"TIMEOUT_MIN":30},"health":"ok","id":"t27/phi-loop","inSpecCorpus":true,"messages":[],"moduleName":"skill_t27_phi_loop","name":{"en":"PHI LOOP"},"runBy":[],"sha256":"19dba96ffef309c75a31bc54d282f25026afa8beeb3a6f97600946700a5f74db","specPath":"specs/skills/t27-phi-loop.t27","summary":{"en":"Execute 9-phase spec-first development workflow (Issue → Spec → TDD → Code → Gen → Seal → Verify → Land → Learn)","ru":"Девятифазный цикл spec-first разработки: Issue → Spec → TDD → Code → Gen → Seal → Verify → Land → Learn."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","link":"bound","path":"t27/tri/skill.md","sha256":"8fb4d4796c2dc7adab9670a65709ce0451633e6f1f076d5e490270596636042a"},"discarded":0,"fields":{"COMMAND":"/tri","ENABLED":true,"ID":"t27/tri","KIND":"skill","NAME":"tri","REPO":"t27","SOURCE":"skill.md","SPECS":["compiler/skill/registry.t27"],"SUMMARY_EN":"This skill should be used when user asks to \"tri skill begin\", \"PHI LOOP\", \"edit .t27 spec\", \"seal hash\", \"tri gen\", \"tri test\", \"tri verdict\", \"tri experience save\", \"tri notebook query\", \"tri notebook wrapup\", or any task requiring spe...","TAGS":["tri","workflow","seal"],"TIMEOUT_MIN":30},"health":"ok","id":"t27/tri","inSpecCorpus":true,"messages":[],"moduleName":"skill_t27_tri","name":{"en":"tri"},"runBy":[],"sha256":"99f03be9bbefc5f7c3b0637717e69650f11b0bf8644563b4e03bd24d12a66c89","specPath":"specs/skills/t27-tri.t27","summary":{"en":"This skill should be used when user asks to \"tri skill begin\", \"PHI LOOP\", \"edit .t27 spec\", \"seal hash\", \"tri gen\", \"tri test\", \"tri verdict\", \"tri experience save\", \"tri notebook query\", \"tri notebook wrapup\", or any task requiring spe...","ru":"Команды tri для работы со скилом: begin, правка .t27-спеки, seal hash, gen, test, verdict, experience. Реестр скилов описан в compiler/skill/registry.t27."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","link":"bound","path":"t27/tri-pipeline/SKILL.md","sha256":"b4bfc290b86a4a1d4513cf9ace0a43526ca8fe98e0d97ff1eb59ea7997aa7427"},"discarded":0,"fields":{"COMMAND":"","ENABLED":true,"ID":"t27/tri-pipeline","KIND":"skill","NAME":"TRI Pipeline","REPO":"t27","SOURCE":"SKILL.md","SPECS":["specs/pipeline/e2e_test.t27"],"SUMMARY_EN":"Execute tri commands (gen, test, verify, seal, verdict) for spec-first development","TAGS":["tri","pipeline","verify"],"TIMEOUT_MIN":30},"health":"ok","id":"t27/tri-pipeline","inSpecCorpus":true,"messages":[],"moduleName":"skill_t27_tri_pipeline","name":{"en":"TRI Pipeline"},"runBy":[],"sha256":"716635d0a782f18bfd6d112d88aeacc9e1961b81a85aec42b91a970fd55ce662","specPath":"specs/skills/t27-tri-pipeline.t27","summary":{"en":"Execute tri commands (gen, test, verify, seal, verdict) for spec-first development","ru":"Выполнение команд tri (gen, test, verify, seal, verdict) для spec-first разработки."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"t27/wave-audit/SKILL.md","sha256":"4cd0dd22105ae7fe86091a69ec297df729661181f147c0b59f8e8e94a90e9100"},"discarded":0,"fields":{"COMMAND":"","ENABLED":true,"ID":"t27/wave-audit","KIND":"skill","NAME":"Wave Audit — Comprehensive Project Analysis","REPO":"t27","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Full-spectrum audit of t27 project: GitHub issues analysis, weakness identification, SOTA research review, decomposed plan, and implementation of critical fixes.","TAGS":["audit","issues","plan"],"TIMEOUT_MIN":30},"health":"ok","id":"t27/wave-audit","inSpecCorpus":true,"messages":[],"moduleName":"skill_t27_wave_audit","name":{"en":"Wave Audit — Comprehensive Project Analysis"},"runBy":[],"sha256":"50c024be3d15fb0d68356ef3e918d71a1ddd3a6b315478927a996a5760efc1db","specPath":"specs/skills/t27-wave-audit.t27","summary":{"en":"Full-spectrum audit of t27 project: GitHub issues analysis, weakness identification, SOTA research review, decomposed plan, and implementation of critical fixes.","ru":"Полный аудит проекта t27: разбор GitHub issues, поиск слабых мест, обзор SOTA, декомпозированный план и реализация критичных исправлений."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"ok","link":"bound","path":"t27/wrap-up/skill.md","sha256":"a4a9b4fd9d022c212add3479cde725f6b9bd56bc31d2d600ba771cbd009329f9"},"discarded":0,"fields":{"COMMAND":"/wrap-up","ENABLED":true,"ID":"t27/wrap-up","KIND":"skill","NAME":"wrap-up","REPO":"t27","SOURCE":"skill.md","SPECS":["specs/automation/wrapup-auto.t27"],"SUMMARY_EN":"Format and upload session wrap-up to NotebookLM for persistent semantic memory","TAGS":["memory","notebooklm","session"],"TIMEOUT_MIN":30},"health":"ok","id":"t27/wrap-up","inSpecCorpus":true,"messages":[],"moduleName":"skill_t27_wrap_up","name":{"en":"wrap-up"},"runBy":[],"sha256":"5f6e7ed53ca0f4ca52320a9c1ebdbbf079e371836de109c94dc440847fa0f2dc","specPath":"specs/skills/t27-wrap-up.t27","summary":{"en":"Format and upload session wrap-up to NotebookLM for persistent semantic memory","ru":"Оформление и загрузка итогов сессии в NotebookLM как постоянной семантической памяти."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/blog-post/SKILL.md","sha256":"2cb755fd4a60a76d568a0742aeda34da60a2441774139646e0ebf4bd2a185493"},"discarded":0,"fields":{"COMMAND":"/blog-post","ENABLED":true,"ID":"trinity/blog-post","KIND":"skill","NAME":"blog-post","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Write and publish a post to the t27.ai blog. Covers where the blog actually lives (not where it looks like it lives), the Post schema with its required receipts and openQuestions, the honesty rules the data file itself imposes, and the b...","TAGS":["blog","publish","website"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/blog-post","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_blog_post","name":{"en":"blog-post"},"runBy":[],"sha256":"028f49b8d26ed69b4f8db6991666a5f51b9a2c2737291ceb3258bfd11ff7c3e7","specPath":"specs/skills/trinity-blog-post.t27","summary":{"en":"Write and publish a post to the t27.ai blog. Covers where the blog actually lives (not where it looks like it lives), the Post schema with its required receipts and openQuestions, the honesty rules the data file itself imposes, and the b...","ru":"Написать и опубликовать пост в блог t27.ai: где блог реально живёт, схема Post с обязательными свидетельствами, обложка и проверки."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/board-sync/SKILL.md","sha256":"f4bfa63737cf7a2078ae6e42f68943384214159243243ae8ec971ddeaac1825e"},"discarded":0,"fields":{"COMMAND":"/board [sync|audit|fix]","ENABLED":true,"ID":"trinity/board-sync","KIND":"skill","NAME":"board","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"GitHub Project Board auto-sync — fill empty fields, sync labels with board status, audit field completeness. Keeps board as realtime source of truth.","TAGS":["github","board","labels"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/board-sync","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_board_sync","name":{"en":"board"},"runBy":[],"sha256":"45ece51f52ec529802e387903a06b3fc58f3dcc088823785511c924c57567c32","specPath":"specs/skills/trinity-board-sync.t27","summary":{"en":"GitHub Project Board auto-sync — fill empty fields, sync labels with board status, audit field completeness. Keeps board as realtime source of truth.","ru":"Автосинхронизация GitHub Project Board: заполнить пустые поля, согласовать метки со статусом доски, проверить полноту полей."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/cloud/SKILL.md","sha256":"53aa338dddc4e6b8a0fd82f6d3b8dc9ac9b245b3457559c3c44f325ede0130e6"},"discarded":0,"fields":{"COMMAND":"/cloud [status|agents|events|full]","ENABLED":true,"ID":"trinity/cloud","KIND":"skill","NAME":"cloud","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Show Trinity Cloud Dev dashboard — containers, training farm, issues, PRs, costs. Use when checking agent swarm status, cloud containers, or CI/CD pipeline.","TAGS":["dashboard","railway","agents"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/cloud","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_cloud","name":{"en":"cloud"},"runBy":[],"sha256":"7eb9c81b10e1dd99998207ce71b792342f1f8bdd3852b974f27eb20418ca480e","specPath":"specs/skills/trinity-cloud.t27","summary":{"en":"Show Trinity Cloud Dev dashboard — containers, training farm, issues, PRs, costs. Use when checking agent swarm status, cloud containers, or CI/CD pipeline.","ru":"Панель Trinity Cloud Dev: контейнеры, тренировочная ферма, issues, PR, расходы. Для проверки состояния роя агентов и CI/CD."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/connect-accounts/SKILL.md","sha256":"b8401486a420ad24142ab627b3c832dc46f60b751b0b51d7e87e4b87314296e6"},"discarded":0,"fields":{"COMMAND":"","ENABLED":true,"ID":"trinity/connect-accounts","KIND":"skill","NAME":"connect-accounts","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Sign a person into their own accounts (LinkedIn, X, job boards, social networks) through their remote browser, as an agent the person watches: SSO buttons pressed by label, every case of a sign-in with the move that fits it, secrets and consent kept theirs, and only what the tools really did reported.","TAGS":["browser","sign-in","sso","agents"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/connect-accounts","inSpecCorpus":false,"messages":[],"moduleName":"skill_trinity_connect_accounts","name":{"en":"connect-accounts"},"runBy":[],"sha256":"95e1dd8a54511b0d227fcc58e08f912fc872245cb37d35e9f2ae6d2e108692a7","specPath":"specs/skills/trinity-connect-accounts.t27","summary":{"en":"Sign a person into their own accounts (LinkedIn, X, job boards, social networks) through their remote browser, as an agent the person watches: SSO buttons pressed by label, every case of a sign-in with the move that fits it, secrets and consent kept theirs, and only what the tools really did reported."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/doctor/SKILL.md","sha256":"68efdf79301066d5e64e72babc91ddb867899786186fa360e6775b8365059815"},"discarded":0,"fields":{"COMMAND":"/doctor [quick|full|scan|junk|docs|dupes] [lang:ru|en]","ENABLED":true,"ID":"trinity/doctor","KIND":"skill","NAME":"doctor","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"HEALER — diagnose, heal, commit dirty files, monitor junk & docs & duplicates, report honestly. Every loop = action + proof.","TAGS":["health","repo","report"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/doctor","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_doctor","name":{"en":"doctor"},"runBy":[],"sha256":"4e74c213b43b2b2c253dda134a93795b3a6e627a4711d5fc8dffb3067c1cb0b0","specPath":"specs/skills/trinity-doctor.t27","summary":{"en":"HEALER — diagnose, heal, commit dirty files, monitor junk & docs & duplicates, report honestly. Every loop = action + proof.","ru":"ЛЕКАРЬ: диагностика, лечение, коммит грязных файлов, надзор за мусором, документацией и дубликатами, честный отчёт. Каждый цикл = действие + доказательство."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/farm-garden/SKILL.md","sha256":"6721489885755a64bfdd07f0407b0ddad366c713cb2723098c0fc63b4e196bb4"},"discarded":0,"fields":{"COMMAND":"","ENABLED":true,"ID":"trinity/farm-garden","KIND":"skill","NAME":"Garden — Quantum Gardener for Trinity Farm","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Autonomous farm population manager. Monitors, evolves, and recycles HSLM training workers.","TAGS":["farm","hslm","workers"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/farm-garden","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_farm_garden","name":{"en":"Garden — Quantum Gardener for Trinity Farm"},"runBy":[],"sha256":"4afded3071ac34a51d06749ea6983dfd0238d1dcb78856ae19b836122019c080","specPath":"specs/skills/trinity-farm-garden.t27","summary":{"en":"Autonomous farm population manager. Monitors, evolves, and recycles HSLM training workers.","ru":"Автономный управляющий популяцией фермы: наблюдает, эволюционирует и перерабатывает рабочих обучения HSLM."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/fpga-synth/SKILL.md","sha256":"de3915e66cdab0f3207f53f6ea22a85b258c8a998b614231eebf7afab2ca9ec3"},"discarded":0,"fields":{"COMMAND":"/fpga-synth ","ENABLED":true,"ID":"trinity/fpga-synth","KIND":"skill","NAME":"fpga-synth","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Run FPGA synthesis pipeline from .tri spec to bitstream. Use when working with Verilog, FPGA, or hardware synthesis.","TAGS":["fpga","verilog","synthesis"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/fpga-synth","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_fpga_synth","name":{"en":"fpga-synth"},"runBy":[],"sha256":"2d3563e302746a958794670cd14404a7c4e6854dcf546468dd5f91907ff299e4","specPath":"specs/skills/trinity-fpga-synth.t27","summary":{"en":"Run FPGA synthesis pipeline from .tri spec to bitstream. Use when working with Verilog, FPGA, or hardware synthesis.","ru":"Конвейер синтеза FPGA от .tri-спеки до битстрима. Для работы с Verilog, FPGA и аппаратным синтезом."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/god-mode/SKILL.md","sha256":"0c48e328ae4cf1cbaffef270e7dbe16fac59a7fba845547179bcfe078f65ee7a"},"discarded":0,"fields":{"COMMAND":"/god-mode [status|agents|tasks|violations]","ENABLED":true,"ID":"trinity/god-mode","KIND":"skill","NAME":"god-mode","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"GOD MODE — Agent monitoring dashboard. Shows swarm status, task queue, pipeline compliance, circuit breakers, git activity, and rule violations.","TAGS":["dashboard","agents","monitoring"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/god-mode","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_god_mode","name":{"en":"god-mode"},"runBy":[],"sha256":"577f3aa5eb4280c6be165fd7d0458fb849988246800eef63c77b3c774091706f","specPath":"specs/skills/trinity-god-mode.t27","summary":{"en":"GOD MODE — Agent monitoring dashboard. Shows swarm status, task queue, pipeline compliance, circuit breakers, git activity, and rule violations.","ru":"GOD MODE: панель наблюдения за агентами — состояние роя, очередь задач, соблюдение конвейера, предохранители, активность git, нарушения правил."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/implement-issue/SKILL.md","sha256":"88ccafaece204489bd38ee3f2fbd5f7db3d38275c2ba7e5a9bfca2852be596bb"},"discarded":0,"fields":{"COMMAND":"/implement-issue [issue-number]","ENABLED":true,"ID":"trinity/implement-issue","KIND":"skill","NAME":"implement-issue","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Read a GitHub issue, create a branch, implement the solution, and open a PR. Use when given an issue number to implement.","TAGS":["github","issue","pr"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/implement-issue","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_implement_issue","name":{"en":"implement-issue"},"runBy":[],"sha256":"789be8f18768603dfb45d8664ad51fc1bb1311f82a0288c3a93efc19c08534e6","specPath":"specs/skills/trinity-implement-issue.t27","summary":{"en":"Read a GitHub issue, create a branch, implement the solution, and open a PR. Use when given an issue number to implement.","ru":"Прочитать GitHub issue, создать ветку, реализовать решение и открыть PR. Для работы по номеру задачи."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/queen-hive-visuals/SKILL.md","sha256":"c6d914dc81c84fc13dacca37de258563261a451a139e3c1644bbdc8b7a97b414"},"discarded":0,"fields":{"COMMAND":"/queen-hive-visuals","ENABLED":true,"ID":"trinity/queen-hive-visuals","KIND":"skill","NAME":"queen-hive-visuals","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Maintain QUEEN's floating hive, original point-down TRINITY logo, sharp issue displays and matching camera interactions.","TAGS":["queen","ui","3d"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/queen-hive-visuals","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_queen_hive_visuals","name":{"en":"queen-hive-visuals"},"runBy":[],"sha256":"327c5189a740d092290fe5dd10de3cf4da56b54a44d1bec9be8414451e70ae0e","specPath":"specs/skills/trinity-queen-hive-visuals.t27","summary":{"en":"Maintain QUEEN's floating hive, original point-down TRINITY logo, sharp issue displays and matching camera interactions.","ru":"Поддержка плавающего улья Королевы, оригинального логотипа TRINITY остриём вниз, чётких табло задач и согласованных движений камеры."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/review-code/SKILL.md","sha256":"e5712744615c2422d9a0c81413422e6e1a2ac97c4bfac8bb508f1cd04bf05d75"},"discarded":0,"fields":{"COMMAND":"/review-code [file-or-branch] (optional)","ENABLED":true,"ID":"trinity/review-code","KIND":"skill","NAME":"review-code","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Review recent code changes for bugs, style issues, and improvements. Use after writing code or before committing.","TAGS":["review","quality"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/review-code","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_review_code","name":{"en":"review-code"},"runBy":[],"sha256":"c5cf6004cce2295f921b7d983e252a9aafbd92ad662db2d5b595824c2774b7a4","specPath":"specs/skills/trinity-review-code.t27","summary":{"en":"Review recent code changes for bugs, style issues, and improvements. Use after writing code or before committing.","ru":"Ревью недавних изменений кода: ошибки, стиль, улучшения. После написания кода или перед коммитом."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/run-tests/SKILL.md","sha256":"7ead75ab36b840ec5588013b0de8f2c23ed3a27a0d3a5160d7e68334e5992a79"},"discarded":0,"fields":{"COMMAND":"/run-tests [module] (optional - all, vsa, vm, bsd, hslm, tri-api)","ENABLED":true,"ID":"trinity/run-tests","KIND":"skill","NAME":"run-tests","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Build the project, check for warnings, run all tests, and report results. Quick health check for the codebase.","TAGS":["tests","build","zig"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/run-tests","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_run_tests","name":{"en":"run-tests"},"runBy":[],"sha256":"8c683823554ee75c69b4dd27468eb819bd8f7ea003e91cf216b80be03dca13a6","specPath":"specs/skills/trinity-run-tests.t27","summary":{"en":"Build the project, check for warnings, run all tests, and report results. Quick health check for the codebase.","ru":"Собрать проект, проверить предупреждения, прогнать все тесты и отчитаться. Быстрая проверка здоровья кодовой базы."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/scholar/SKILL.md","sha256":"5c35431008a4d2694cf2e7ad65c01d6f1559d5836b8f7cfb0c3422f752d5b2c2"},"discarded":0,"fields":{"COMMAND":"/scholar [scan|eval|apply|full|report|topic:\"query\"]","ENABLED":true,"ID":"trinity/scholar","KIND":"skill","NAME":"scholar","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Self-Evolving Research Agent — scans web for relevant tech, evaluates findings, proposes improvements. Uses Perplexity Sonar API via MCP.","TAGS":["research","perplexity","mcp"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/scholar","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_scholar","name":{"en":"scholar"},"runBy":[],"sha256":"70bc5c1e10d9905fa22a38de1c7b88926b75d69b6a82305e69613820f70f83ae","specPath":"specs/skills/trinity-scholar.t27","summary":{"en":"Self-Evolving Research Agent — scans web for relevant tech, evaluates findings, proposes improvements. Uses Perplexity Sonar API via MCP.","ru":"Саморазвивающийся исследовательский агент: сканирует веб на релевантные технологии, оценивает находки, предлагает улучшения. Perplexity Sonar через MCP."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/status/SKILL.md","sha256":"e4bc75ff45cdc52968f1ef0ac6e1a1a482072f78e14283b1e71b6fe13a054890"},"discarded":0,"fields":{"COMMAND":"/status [quick|full] [lang:ru|en]","ENABLED":true,"ID":"trinity/status","KIND":"skill","NAME":"status","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Live system dashboard — 12-dimension ouroboros score, verdict v3, agents, build health, recommendations","TAGS":["dashboard","ouroboros","verdict"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/status","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_status","name":{"en":"status"},"runBy":[],"sha256":"09185d50913f410e9c5cdd3338d2fd38adb97f0997208c6440c89b2325268b9c","specPath":"specs/skills/trinity-status.t27","summary":{"en":"Live system dashboard — 12-dimension ouroboros score, verdict v3, agents, build health, recommendations","ru":"Живая панель системы: 12-мерная оценка уробороса, verdict v3, агенты, здоровье сборки, рекомендации."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/tech-tree/SKILL.md","sha256":"f84c8ea67ab696a9bc3828ccfe8b8708572fe5ddb7574f409ddf75c467744a0f"},"discarded":0,"fields":{"COMMAND":"/tree [next|path|blocked|update]","ENABLED":true,"ID":"trinity/tech-tree","KIND":"skill","NAME":"tree","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Technology dependency tree — shows issue DAG, prereqs, critical path, blocked/ready tasks. Single source of truth for work order.","TAGS":["issues","dag","planning"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/tech-tree","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_tech_tree","name":{"en":"tree"},"runBy":[],"sha256":"951d3d8a6dd0c1c6c62a303c660a45205624bf2f558fd090b34fe5b45b9f1501","specPath":"specs/skills/trinity-tech-tree.t27","summary":{"en":"Technology dependency tree — shows issue DAG, prereqs, critical path, blocked/ready tasks. Single source of truth for work order.","ru":"Дерево технологических зависимостей: DAG задач, предпосылки, критический путь, заблокированные и готовые задачи. Единый источник порядка работ."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/tri/SKILL.md","sha256":"4c38d1005219336c88583e985b5208653fa199d12481d98173604922dc35e4a5"},"discarded":0,"fields":{"COMMAND":"/tri [short] [full] [audit] [coverage] [lang:ru|en] [humor|prof|toxic|zen]","ENABLED":true,"ID":"trinity/tri","KIND":"skill","NAME":"tri","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"TRI status dashboard — agent thought mode by default, /tri full for visual dashboard","TAGS":["tri","dashboard","status"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/tri","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_tri","name":{"en":"tri"},"runBy":[],"sha256":"09f58e175bfeb73fb49d30bfdc6e0b197d775e6883fa8bb9417dffc92ffefebd","specPath":"specs/skills/trinity-tri.t27","summary":{"en":"TRI status dashboard — agent thought mode by default, /tri full for visual dashboard","ru":"Панель статуса TRI: по умолчанию режим мысли агента, /tri full — визуальная панель."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/trinity-test/SKILL.md","sha256":"648c7f095f0b9739a17d7a5d47fbfbe3e6dc2b2bd940fb6cea837632940b6c56"},"discarded":0,"fields":{"COMMAND":"/trinity-test [module] (vsa, vm, firebird, all)","ENABLED":true,"ID":"trinity/trinity-test","KIND":"skill","NAME":"trinity-test","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Run Trinity test suites and analyze results. Use for testing VSA, VM, Firebird, WASM, or full test suite.","TAGS":["tests","vsa","vm"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/trinity-test","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_trinity_test","name":{"en":"trinity-test"},"runBy":[],"sha256":"b70f5629049065477023aa4b4d51eb8272de0750a5c4809d7d445c698729c1a0","specPath":"specs/skills/trinity-trinity-test.t27","summary":{"en":"Run Trinity test suites and analyze results. Use for testing VSA, VM, Firebird, WASM, or full test suite.","ru":"Прогон тестовых наборов Trinity и разбор результатов: VSA, VM, Firebird, WASM или всё целиком."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/ux-wave/SKILL.md","sha256":"9690999e8d1e2091c80ef838e41a1d4dc48d9ffea1cf29a39294238f69954b28"},"discarded":0,"fields":{"COMMAND":"/ux-wave [wave-number] [audit]","ENABLED":true,"ID":"trinity/ux-wave","KIND":"skill","NAME":"ux-wave","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Autonomous UX improvement waves — launch 4 parallel agents per wave, audit every 5 waves, commit fixes. For Queen UI chat & network polish.","TAGS":["ux","agents","queen"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/ux-wave","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_ux_wave","name":{"en":"ux-wave"},"runBy":[],"sha256":"e63fa9e43303eefdf53f1f95499c15bb7794c7f08c9d14c1958f61e362e75ada","specPath":"specs/skills/trinity-ux-wave.t27","summary":{"en":"Autonomous UX improvement waves — launch 4 parallel agents per wave, audit every 5 waves, commit fixes. For Queen UI chat & network polish.","ru":"Автономные волны улучшения UX: 4 параллельных агента на волну, аудит каждые 5 волн, коммит исправлений. Для чата и сети Queen UI."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/vibee-gen/SKILL.md","sha256":"fc01e69f1395b590603692a29d9bb1ee533104bb716b5bb284738027df17b395"},"discarded":0,"fields":{"COMMAND":"/vibee-gen ","ENABLED":true,"ID":"trinity/vibee-gen","KIND":"skill","NAME":"vibee-gen","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Generate Zig or Verilog code from VIBEE specifications. Use when creating or updating .tri specs and regenerating code.","TAGS":["codegen","zig","verilog"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/vibee-gen","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_vibee_gen","name":{"en":"vibee-gen"},"runBy":[],"sha256":"769952ebb9d14eba7cdd2ee226b9d266de20e692ac0ee1e66ba6f622564a91f9","specPath":"specs/skills/trinity-vibee-gen.t27","summary":{"en":"Generate Zig or Verilog code from VIBEE specifications. Use when creating or updating .tri specs and regenerating code.","ru":"Генерация кода Zig или Verilog из спецификаций VIBEE. При создании или обновлении .tri-спек и перегенерации кода."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/vsa-verify/SKILL.md","sha256":"8b9c4518b1bc5dd468b12697a436f7d959278466b5282e575709d7981722905b"},"discarded":0,"fields":{"COMMAND":"/vsa-verify [operation or proof to verify]","ENABLED":true,"ID":"trinity/vsa-verify","KIND":"skill","NAME":"vsa-verify","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Verify VSA (Vector Symbolic Architecture) mathematical proofs and operations. Use for math verification, bind/unbind/bundle testing, phi identity checks.","TAGS":["vsa","math","verify"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/vsa-verify","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_vsa_verify","name":{"en":"vsa-verify"},"runBy":[],"sha256":"311455eaad1ec081b56395b38564babf52e10966f35b98b862d97bc5be60ff52","specPath":"specs/skills/trinity-vsa-verify.t27","summary":{"en":"Verify VSA (Vector Symbolic Architecture) mathematical proofs and operations. Use for math verification, bind/unbind/bundle testing, phi identity checks.","ru":"Проверка математических доказательств и операций VSA: bind/unbind/bundle, тождества phi."},"typecheckOk":true,"witness":"spec+code"},{"code":{"health":"warn","link":"unbound","path":"trinity/wave/SKILL.md","sha256":"ecf06fdfa467158f6758066aba41a8e49699f37e61c18e62716da765a7eb5487"},"discarded":0,"fields":{"COMMAND":"/wave [status|spawn |deploy|progress]","ENABLED":true,"ID":"trinity/wave","KIND":"skill","NAME":"wave","REPO":"trinity","SOURCE":"SKILL.md","SPECS":[],"SUMMARY_EN":"Farm wave management — create Railway accounts, spawn workers, deploy configs, track wave progress. Use for scaling training farm.","TAGS":["farm","railway","scaling"],"TIMEOUT_MIN":30},"health":"ok","id":"trinity/wave","inSpecCorpus":true,"messages":[],"moduleName":"skill_trinity_wave","name":{"en":"wave"},"runBy":[],"sha256":"0d205500e7adf560ff03ecfd59e90ee13b51f4624e27555d4142e5b184100d6b","specPath":"specs/skills/trinity-wave.t27","summary":{"en":"Farm wave management — create Railway accounts, spawn workers, deploy configs, track wave progress. Use for scaling training farm.","ru":"Управление волнами фермы: аккаунты Railway, запуск рабочих, раскатка конфигов, прогресс волны. Для масштабирования тренировочной фермы."},"typecheckOk":true,"witness":"spec+code"}],"version":1} diff --git a/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-client-telemetry-daily.t27 b/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-client-telemetry-daily.t27 new file mode 100644 index 0000000000..77e0d7cdb6 --- /dev/null +++ b/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-client-telemetry-daily.t27 @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: Apache-2.0 +; specs/crons/999-multibots-telegraf-client-telemetry-daily.t27 -- cron inngest/999-multibots-telegraf/client-telemetry-daily +; Source of truth for the job card on t27.ai (#/crons?cron=inngest/999-multibots-telegraf/client-telemetry-daily). +; The schedule was read from 999-multibots-telegraf:src/inngest_app/functions/analytics/clientTelemetryDaily.ts#L62 (main @05fd960). +; A cron CONTROLS skills: RUNS names the skill IDs it launches. It is empty +; unless the source evidently invokes one -- nothing here is inferred from a name. +; phi^2 + 1/phi^2 = 3 | TRINITY + +module cron_999_multibots_telegraf_client_telemetry_daily; + +pub const KIND : str = "cron"; +pub const ID : str = "inngest/999-multibots-telegraf/client-telemetry-daily"; +pub const NAME : str = "client-telemetry-daily"; +pub const HOST : str = "inngest"; +pub const REPO : str = "999-multibots-telegraf"; +pub const SERVICE : str = "src/inngest_app/functions/analytics/clientTelemetryDaily.ts"; +pub const SUMMARY_EN : str = "Sends the owner a daily report of where clients went and where they stopped, then prunes the events it accounted for."; +pub const SCHEDULE : str = "0 7 * * *"; +pub const TZ : str = "UTC"; +pub const RUNS : [0]str = []; +pub const RUNS_NOTE : str = "no skill invocation found in source"; +pub const ENABLED : bool = true; +pub const ON_FAILURE : str = "log"; +pub const CONTROL : str = "inngest-dashboard"; +pub const NOTE : str = "This job is not in public/crons/manifest.json, which is produced by scripts/sync-crons.mjs from on-disk checkouts, so the card reads spec-only until that sync runs again. A failure does not open an issue; the Inngest registration carries a failure handler that messages the admin channel, which the function card states as ON_FAILURE admin-telegram."; diff --git a/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-club-invoice-abandoned-watch.t27 b/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-club-invoice-abandoned-watch.t27 new file mode 100644 index 0000000000..670ca05d1a --- /dev/null +++ b/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-club-invoice-abandoned-watch.t27 @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: Apache-2.0 +; specs/crons/999-multibots-telegraf-club-invoice-abandoned-watch.t27 -- cron inngest/999-multibots-telegraf/club-invoice-abandoned-watch +; Source of truth for the job card on t27.ai (#/crons?cron=inngest/999-multibots-telegraf/club-invoice-abandoned-watch). +; The schedule was read from 999-multibots-telegraf:src/inngest_app/functions/analytics/clubInvoiceAbandonedWatch.ts#L22 (main @05fd960). +; A cron CONTROLS skills: RUNS names the skill IDs it launches. It is empty +; unless the source evidently invokes one -- nothing here is inferred from a name. +; phi^2 + 1/phi^2 = 3 | TRINITY + +module cron_999_multibots_telegraf_club_invoice_abandoned_watch; + +pub const KIND : str = "cron"; +pub const ID : str = "inngest/999-multibots-telegraf/club-invoice-abandoned-watch"; +pub const NAME : str = "club-invoice-abandoned-watch"; +pub const HOST : str = "inngest"; +pub const REPO : str = "999-multibots-telegraf"; +pub const SERVICE : str = "src/inngest_app/functions/analytics/clubInvoiceAbandonedWatch.ts"; +pub const SUMMARY_EN : str = "Marks the club invoices that went an hour with no charge after them as abandoned, once per invoice."; +pub const SCHEDULE : str = "20 * * * *"; +pub const TZ : str = "UTC"; +pub const RUNS : [0]str = []; +pub const RUNS_NOTE : str = "no skill invocation found in source"; +pub const ENABLED : bool = true; +pub const ON_FAILURE : str = "log"; +pub const CONTROL : str = "inngest-dashboard"; +pub const NOTE : str = "This job is not in public/crons/manifest.json, which is produced by scripts/sync-crons.mjs from on-disk checkouts, so the card reads spec-only until that sync runs again. A failure does not open an issue; the Inngest registration carries a failure handler that messages the admin channel, which the function card states as ON_FAILURE admin-telegram."; diff --git a/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-crm-proactive-sweep.t27 b/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-crm-proactive-sweep.t27 new file mode 100644 index 0000000000..69aaf3609d --- /dev/null +++ b/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-crm-proactive-sweep.t27 @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: Apache-2.0 +; specs/crons/999-multibots-telegraf-crm-proactive-sweep.t27 -- cron inngest/999-multibots-telegraf/crm-proactive-sweep +; Source of truth for the job card on t27.ai (#/crons?cron=inngest/999-multibots-telegraf/crm-proactive-sweep). +; The schedule was read from 999-multibots-telegraf:src/inngest_app/functions/crm/crmProactiveSweep.ts#L101 (main @05fd960). +; A cron CONTROLS skills: RUNS names the skill IDs it launches. It is empty +; unless the source evidently invokes one -- nothing here is inferred from a name. +; phi^2 + 1/phi^2 = 3 | TRINITY + +module cron_999_multibots_telegraf_crm_proactive_sweep; + +pub const KIND : str = "cron"; +pub const ID : str = "inngest/999-multibots-telegraf/crm-proactive-sweep"; +pub const NAME : str = "crm-proactive-sweep"; +pub const HOST : str = "inngest"; +pub const REPO : str = "999-multibots-telegraf"; +pub const SERVICE : str = "src/inngest_app/functions/crm/crmProactiveSweep.ts"; +pub const SUMMARY_EN : str = "Sweeps every seller a registered carrier serves and may push one outreach card per seller to that seller's own chat."; +pub const SCHEDULE : str = "*/30 * * * *"; +pub const TZ : str = "UTC"; +pub const RUNS : [0]str = []; +pub const RUNS_NOTE : str = "no skill invocation found in source"; +pub const ENABLED : bool = true; +pub const ON_FAILURE : str = "log"; +pub const CONTROL : str = "inngest-dashboard"; +pub const NOTE : str = "This job is not in public/crons/manifest.json, which is produced by scripts/sync-crons.mjs from on-disk checkouts, so the card reads spec-only until that sync runs again. A failure does not open an issue; the Inngest registration carries a failure handler that messages the admin channel, which the function card states as ON_FAILURE admin-telegram. The same half hour is also stated by timer/999-multibots-telegraf/crmProactive-L375, the in-process interval this cron replaced on 2026-09-12; CRM_SWEEP_DRIVER=timer restores that one."; diff --git a/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-robokassa-unclaimed-watch.t27 b/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-robokassa-unclaimed-watch.t27 new file mode 100644 index 0000000000..79b666b45a --- /dev/null +++ b/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-robokassa-unclaimed-watch.t27 @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: Apache-2.0 +; specs/crons/999-multibots-telegraf-robokassa-unclaimed-watch.t27 -- cron inngest/999-multibots-telegraf/robokassa-unclaimed-watch +; Source of truth for the job card on t27.ai (#/crons?cron=inngest/999-multibots-telegraf/robokassa-unclaimed-watch). +; The schedule was read from 999-multibots-telegraf:src/inngest_app/functions/money/robokassaUnclaimedWatch.ts#L44 (main @05fd960). +; A cron CONTROLS skills: RUNS names the skill IDs it launches. It is empty +; unless the source evidently invokes one -- nothing here is inferred from a name. +; phi^2 + 1/phi^2 = 3 | TRINITY + +module cron_999_multibots_telegraf_robokassa_unclaimed_watch; + +pub const KIND : str = "cron"; +pub const ID : str = "inngest/999-multibots-telegraf/robokassa-unclaimed-watch"; +pub const NAME : str = "robokassa-unclaimed-watch"; +pub const HOST : str = "inngest"; +pub const REPO : str = "999-multibots-telegraf"; +pub const SERVICE : str = "src/inngest_app/functions/money/robokassaUnclaimedWatch.ts"; +pub const SUMMARY_EN : str = "Asks Robokassa every morning about the pending invoices of the last thirty days and reports the ones paid but never credited."; +pub const SCHEDULE : str = "20 7 * * *"; +pub const TZ : str = "UTC"; +pub const RUNS : [0]str = []; +pub const RUNS_NOTE : str = "no skill invocation found in source"; +pub const ENABLED : bool = true; +pub const ON_FAILURE : str = "log"; +pub const CONTROL : str = "inngest-dashboard"; +pub const NOTE : str = "This job is not in public/crons/manifest.json, which is produced by scripts/sync-crons.mjs from on-disk checkouts, so the card reads spec-only until that sync runs again. A failure does not open an issue; the Inngest registration carries a failure handler that messages the admin channel, which the function card states as ON_FAILURE admin-telegram."; diff --git a/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-ton-pending-watch.t27 b/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-ton-pending-watch.t27 new file mode 100644 index 0000000000..22c2528fbd --- /dev/null +++ b/apps/website/public/t27/files/specs/crons/999-multibots-telegraf-ton-pending-watch.t27 @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: Apache-2.0 +; specs/crons/999-multibots-telegraf-ton-pending-watch.t27 -- cron inngest/999-multibots-telegraf/ton-pending-watch +; Source of truth for the job card on t27.ai (#/crons?cron=inngest/999-multibots-telegraf/ton-pending-watch). +; The schedule was read from 999-multibots-telegraf:src/inngest_app/functions/money/tonPendingWatch.ts#L51 (main @05fd960). +; A cron CONTROLS skills: RUNS names the skill IDs it launches. It is empty +; unless the source evidently invokes one -- nothing here is inferred from a name. +; phi^2 + 1/phi^2 = 3 | TRINITY + +module cron_999_multibots_telegraf_ton_pending_watch; + +pub const KIND : str = "cron"; +pub const ID : str = "inngest/999-multibots-telegraf/ton-pending-watch"; +pub const NAME : str = "ton-pending-watch"; +pub const HOST : str = "inngest"; +pub const REPO : str = "999-multibots-telegraf"; +pub const SERVICE : str = "src/inngest_app/functions/money/tonPendingWatch.ts"; +pub const SUMMARY_EN : str = "Asks the chain every hour whether coins arrived against a pending TON invoice that was never credited."; +pub const SCHEDULE : str = "0 * * * *"; +pub const TZ : str = "UTC"; +pub const RUNS : [0]str = []; +pub const RUNS_NOTE : str = "no skill invocation found in source"; +pub const ENABLED : bool = true; +pub const ON_FAILURE : str = "log"; +pub const CONTROL : str = "inngest-dashboard"; +pub const NOTE : str = "This job is not in public/crons/manifest.json, which is produced by scripts/sync-crons.mjs from on-disk checkouts, so the card reads spec-only until that sync runs again. A failure does not open an issue; the Inngest registration carries a failure handler that messages the admin channel, which the function card states as ON_FAILURE admin-telegram."; diff --git a/apps/website/public/t27/files/specs/functions/client-telemetry-daily.t27 b/apps/website/public/t27/files/specs/functions/client-telemetry-daily.t27 new file mode 100644 index 0000000000..a6813a5631 --- /dev/null +++ b/apps/website/public/t27/files/specs/functions/client-telemetry-daily.t27 @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: Apache-2.0 +; specs/functions/client-telemetry-daily.t27 -- function client-telemetry-daily (Inngest, 999-multibots-telegraf) +; Source of truth for the function card on t27.ai (#/functions?function=client-telemetry-daily). +; The registration was read from 999-multibots-telegraf:src/inngest_app/functions/analytics/clientTelemetryDaily.ts#L62 (main @05fd960). +; ID is the canonical id of the spec-first rename; LEGACY_ID and LEGACY_EVENTS are what the +; deployed code still answers to. STEPS lists step.run names in source order; a ${...} in a +; name is a template the code expands per item. Values here are read from the source, not +; inferred from a name; what could not be read says so in NOTE. +; phi^2 + 1/phi^2 = 3 | TRINITY + +module fn_client_telemetry_daily; + +pub const KIND : str = "function"; +pub const ID : str = "client-telemetry-daily"; +pub const LEGACY_ID : str = "client-telemetry-daily"; +pub const NAME : str = "Clients: daily usage report to the owner"; +pub const REPO : str = "999-multibots-telegraf"; +; file:line of inngest.createFunction( in the repo named in REPO +pub const SERVICE : str = "src/inngest_app/functions/analytics/clientTelemetryDaily.ts:62"; +pub const DOMAIN : str = "analytics"; +; "event" or "cron"; an event function has EVENT (+ LEGACY_EVENTS), a cron function has CRON +pub const TRIGGER : str = "cron"; +pub const EVENT : str = ""; +pub const LEGACY_EVENTS : [0]str = []; +pub const CRON : str = "0 7 * * *"; +pub const TZ : str = "UTC"; +pub const SUMMARY_EN : str = "Every day at 07:00 UTC builds a report of where clients went and where they stopped, sends it to the owner, and prunes the events it has already accounted for. Where the daily sales advisor reports cash, this one reports product usage."; +; step.run names in source order +pub const STEPS : [3]str = ["build-report", "send", "prune"]; +; retries declared on the function; when the code declares none, the Inngest JS SDK v3 default (4) is written and NOTE says so +pub const RETRIES : u8 = 0; +; "admin-telegram" (onFailure handler messages the admin chat), "log" (no handler) or "refund+notify" +pub const ON_FAILURE : str = "admin-telegram"; +; what a run touches outside the function, from a fixed vocabulary (see README) +pub const SIDE_EFFECTS : [2]str = ["messages-owners", "db-write"]; +; the first step that stops a bad payload; "none" when the first step already acts, "unknown" when not probed +pub const GUARD : str = "safe-mode"; +; JSON payload of the 2026-09-09 safe probe and what it reached ("" / "skipped" when none was sent; "not-deployed" when the function is not on the probed build) +pub const SAFE_PROBE : str = ""; +pub const PROBE_RESULT : str = "skipped"; +pub const CONTROL : str = "spec+code"; +pub const NOTE : str = "No safe probe has been sent: the 2026-09-09 probe pass predates this registration, which is why the manifest row carries no deployment reading. The live status endpoint answered on 2026-09-22 with 2 runs over seven days and none failed. RETRIES is 0 on purpose: a retry after a partial send would deliver the owner the same report twice. 07:00 UTC is 10:00 in Moscow, which keeps no summer time. A read of the events table that fails is logged and does not become an empty report."; diff --git a/apps/website/public/t27/files/specs/functions/club-invoice-abandoned-watch.t27 b/apps/website/public/t27/files/specs/functions/club-invoice-abandoned-watch.t27 new file mode 100644 index 0000000000..9710941f4b --- /dev/null +++ b/apps/website/public/t27/files/specs/functions/club-invoice-abandoned-watch.t27 @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: Apache-2.0 +; specs/functions/club-invoice-abandoned-watch.t27 -- function club-invoice-abandoned-watch (Inngest, 999-multibots-telegraf) +; Source of truth for the function card on t27.ai (#/functions?function=club-invoice-abandoned-watch). +; The registration was read from 999-multibots-telegraf:src/inngest_app/functions/analytics/clubInvoiceAbandonedWatch.ts#L22 (main @05fd960). +; ID is the canonical id of the spec-first rename; LEGACY_ID and LEGACY_EVENTS are what the +; deployed code still answers to. STEPS lists step.run names in source order; a ${...} in a +; name is a template the code expands per item. Values here are read from the source, not +; inferred from a name; what could not be read says so in NOTE. +; phi^2 + 1/phi^2 = 3 | TRINITY + +module fn_club_invoice_abandoned_watch; + +pub const KIND : str = "function"; +pub const ID : str = "club-invoice-abandoned-watch"; +pub const LEGACY_ID : str = "club-invoice-abandoned-watch"; +pub const NAME : str = "Funnel: club invoices nobody paid"; +pub const REPO : str = "999-multibots-telegraf"; +; file:line of inngest.createFunction( in the repo named in REPO +pub const SERVICE : str = "src/inngest_app/functions/analytics/clubInvoiceAbandonedWatch.ts:22"; +pub const DOMAIN : str = "analytics"; +; "event" or "cron"; an event function has EVENT (+ LEGACY_EVENTS), a cron function has CRON +pub const TRIGGER : str = "cron"; +pub const EVENT : str = ""; +pub const LEGACY_EVENTS : [0]str = []; +pub const CRON : str = "20 * * * *"; +pub const TZ : str = "UTC"; +pub const SUMMARY_EN : str = "Every hour marks the club invoices that are older than an hour with no charge after them as abandoned, writing one funnel row per invoice so that the path from card to invoice to paid or abandoned can be read without joining tables by hand. It charges nothing and messages nobody."; +; step.run names in source order +pub const STEPS : [1]str = ["mark"]; +; retries declared on the function; when the code declares none, the Inngest JS SDK v3 default (4) is written and NOTE says so +pub const RETRIES : u8 = 0; +; "admin-telegram" (onFailure handler messages the admin chat), "log" (no handler) or "refund+notify" +pub const ON_FAILURE : str = "admin-telegram"; +; what a run touches outside the function, from a fixed vocabulary (see README) +pub const SIDE_EFFECTS : [1]str = ["db-write"]; +; the first step that stops a bad payload; "none" when the first step already acts, "unknown" when not probed +pub const GUARD : str = "safe-mode"; +; JSON payload of the 2026-09-09 safe probe and what it reached ("" / "skipped" when none was sent; "not-deployed" when the function is not on the probed build) +pub const SAFE_PROBE : str = ""; +pub const PROBE_RESULT : str = "skipped"; +pub const CONTROL : str = "spec+code"; +pub const NOTE : str = "No safe probe has been sent: the 2026-09-09 probe pass predates this registration, which is why the manifest row carries no deployment reading. The live status endpoint answered on 2026-09-22 with 11 runs over seven days and none failed. SIDE_EFFECTS drops the manifest's db-read, which the catalog vocabulary cannot say; the run reads the invoices it marks. Abandonment is a conclusion, not a report: Telegram tells nobody when a person closes a payment window, so the rule is an invoice older than an hour with no charge after it, and it lives in services/trackEvent.ts where it is tested apart from the schedule. A unique index makes the row land once however often the job runs, and an unreadable table throws so that could not look reaches the failure handler instead of printing as nobody walked away."; diff --git a/apps/website/public/t27/files/specs/functions/crm-proactive-sweep.t27 b/apps/website/public/t27/files/specs/functions/crm-proactive-sweep.t27 new file mode 100644 index 0000000000..4bd3d0532c --- /dev/null +++ b/apps/website/public/t27/files/specs/functions/crm-proactive-sweep.t27 @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: Apache-2.0 +; specs/functions/crm-proactive-sweep.t27 -- function crm-proactive-sweep (Inngest, 999-multibots-telegraf) +; Source of truth for the function card on t27.ai (#/functions?function=crm-proactive-sweep). +; The registration was read from 999-multibots-telegraf:src/inngest_app/functions/crm/crmProactiveSweep.ts#L101 (main @05fd960). +; ID is the canonical id of the spec-first rename; LEGACY_ID and LEGACY_EVENTS are what the +; deployed code still answers to. STEPS lists step.run names in source order; a ${...} in a +; name is a template the code expands per item. Values here are read from the source, not +; inferred from a name; what could not be read says so in NOTE. +; phi^2 + 1/phi^2 = 3 | TRINITY + +module fn_crm_proactive_sweep; + +pub const KIND : str = "function"; +pub const ID : str = "crm-proactive-sweep"; +pub const LEGACY_ID : str = "crm-proactive-sweep"; +pub const NAME : str = "CRM: proactive seller sweep"; +pub const REPO : str = "999-multibots-telegraf"; +; file:line of inngest.createFunction( in the repo named in REPO +pub const SERVICE : str = "src/inngest_app/functions/crm/crmProactiveSweep.ts:101"; +pub const DOMAIN : str = "crm"; +; "event" or "cron"; an event function has EVENT (+ LEGACY_EVENTS), a cron function has CRON +pub const TRIGGER : str = "cron"; +pub const EVENT : str = ""; +pub const LEGACY_EVENTS : [0]str = []; +pub const CRON : str = "*/30 * * * *"; +pub const TZ : str = "UTC"; +pub const SUMMARY_EN : str = "Every half hour resolves the sellers a registered carrier serves and sweeps each one: the render's CRM tools are called over HTTP, a model is asked what to do next, and an outreach card is pushed to that seller's own chat. Safe mode skips the whole run."; +; step.run names in source order +pub const STEPS : [2]str = ["resolve-sellers", "sweep-${owner}"]; +; retries declared on the function; when the code declares none, the Inngest JS SDK v3 default (4) is written and NOTE says so +pub const RETRIES : u8 = 0; +; "admin-telegram" (onFailure handler messages the admin chat), "log" (no handler) or "refund+notify" +pub const ON_FAILURE : str = "admin-telegram"; +; what a run touches outside the function, from a fixed vocabulary (see README) +pub const SIDE_EFFECTS : [4]str = ["messages-owners", "paid-api", "external-webhook", "db-write"]; +; the first step that stops a bad payload; "none" when the first step already acts, "unknown" when not probed +pub const GUARD : str = "safe-mode"; +; JSON payload of the 2026-09-09 safe probe and what it reached ("" / "skipped" when none was sent; "not-deployed" when the function is not on the probed build) +pub const SAFE_PROBE : str = ""; +pub const PROBE_RESULT : str = "skipped"; +pub const CONTROL : str = "spec+code"; +pub const NOTE : str = "No safe probe has been sent: the 2026-09-09 probe pass predates this registration, which is why the manifest row carries no deployment reading. The live status endpoint answered on 2026-09-22 with 337 runs over seven days and 5 failed, the only function in the project with a failure in that window, so this card exists to make that number reachable. The step name sweep-${owner} is a template expanded once per seller. SIDE_EFFECTS reads the service the run calls into (services/crmProactive.ts): the outreach card goes to the seller who owns the bot, not to the end client, so it is messages-owners and not the manifest's messages-user; the render's MCP route is called over HTTPS (external-webhook) and a model turn is paid for (paid-api). GUARD is the isSafeMode early return at the top of the handler, which the manifest recorded as none. The same schedule is also stated by the timer cron card timer/999-multibots-telegraf/crmProactive-L375, the in-process setInterval this cron replaced on 2026-09-12; CRM_SWEEP_DRIVER=timer restores it."; diff --git a/apps/website/public/t27/files/specs/functions/robokassa-unclaimed-watch.t27 b/apps/website/public/t27/files/specs/functions/robokassa-unclaimed-watch.t27 new file mode 100644 index 0000000000..f4e36d920c --- /dev/null +++ b/apps/website/public/t27/files/specs/functions/robokassa-unclaimed-watch.t27 @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: Apache-2.0 +; specs/functions/robokassa-unclaimed-watch.t27 -- function robokassa-unclaimed-watch (Inngest, 999-multibots-telegraf) +; Source of truth for the function card on t27.ai (#/functions?function=robokassa-unclaimed-watch). +; The registration was read from 999-multibots-telegraf:src/inngest_app/functions/money/robokassaUnclaimedWatch.ts#L44 (main @05fd960). +; ID is the canonical id of the spec-first rename; LEGACY_ID and LEGACY_EVENTS are what the +; deployed code still answers to. STEPS lists step.run names in source order; a ${...} in a +; name is a template the code expands per item. Values here are read from the source, not +; inferred from a name; what could not be read says so in NOTE. +; phi^2 + 1/phi^2 = 3 | TRINITY + +module fn_robokassa_unclaimed_watch; + +pub const KIND : str = "function"; +pub const ID : str = "robokassa-unclaimed-watch"; +pub const LEGACY_ID : str = "robokassa-unclaimed-watch"; +pub const NAME : str = "Money: roubles that arrived and were never credited"; +pub const REPO : str = "999-multibots-telegraf"; +; file:line of inngest.createFunction( in the repo named in REPO +pub const SERVICE : str = "src/inngest_app/functions/money/robokassaUnclaimedWatch.ts:44"; +pub const DOMAIN : str = "money"; +; "event" or "cron"; an event function has EVENT (+ LEGACY_EVENTS), a cron function has CRON +pub const TRIGGER : str = "cron"; +pub const EVENT : str = ""; +pub const LEGACY_EVENTS : [0]str = []; +pub const CRON : str = "20 7 * * *"; +pub const TZ : str = "UTC"; +pub const SUMMARY_EN : str = "Every morning reads the pending Robokassa invoices of the last thirty days, asks the provider what state each one is in, and writes one journal line to the render saying either that nothing is unclaimed or that somebody paid and was never credited. It reads only; it never completes a payment."; +; step.run names in source order +pub const STEPS : [1]str = ["ask the provider"]; +; retries declared on the function; when the code declares none, the Inngest JS SDK v3 default (4) is written and NOTE says so +pub const RETRIES : u8 = 0; +; "admin-telegram" (onFailure handler messages the admin chat), "log" (no handler) or "refund+notify" +pub const ON_FAILURE : str = "admin-telegram"; +; what a run touches outside the function, from a fixed vocabulary (see README) +pub const SIDE_EFFECTS : [2]str = ["paid-api", "external-webhook"]; +; the first step that stops a bad payload; "none" when the first step already acts, "unknown" when not probed +pub const GUARD : str = "safe-mode"; +; JSON payload of the 2026-09-09 safe probe and what it reached ("" / "skipped" when none was sent; "not-deployed" when the function is not on the probed build) +pub const SAFE_PROBE : str = ""; +pub const PROBE_RESULT : str = "skipped"; +pub const CONTROL : str = "spec+code"; +pub const NOTE : str = "No safe probe has been sent: the 2026-09-09 probe pass predates this registration, which is why the manifest row carries no deployment reading. The live status endpoint answered on 2026-09-22 with 4 runs over seven days and none failed. SIDE_EFFECTS drops the manifest's db-read, which the catalog vocabulary cannot say, and adds external-webhook for the note the run posts to the render; the table read is stated here instead. GUARD is the isSafeMode early return at the top of the handler, which the manifest recorded as none. Without merchant credentials the run returns did=cannot ask and says nothing about money, because reporting none unclaimed would be inventing reassurance; the invoices older than thirty days are known debt recorded elsewhere and are deliberately not re-alarmed every morning."; diff --git a/apps/website/public/t27/files/specs/functions/ton-pending-watch.t27 b/apps/website/public/t27/files/specs/functions/ton-pending-watch.t27 new file mode 100644 index 0000000000..11ca3df144 --- /dev/null +++ b/apps/website/public/t27/files/specs/functions/ton-pending-watch.t27 @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: Apache-2.0 +; specs/functions/ton-pending-watch.t27 -- function ton-pending-watch (Inngest, 999-multibots-telegraf) +; Source of truth for the function card on t27.ai (#/functions?function=ton-pending-watch). +; The registration was read from 999-multibots-telegraf:src/inngest_app/functions/money/tonPendingWatch.ts#L51 (main @05fd960). +; ID is the canonical id of the spec-first rename; LEGACY_ID and LEGACY_EVENTS are what the +; deployed code still answers to. STEPS lists step.run names in source order; a ${...} in a +; name is a template the code expands per item. Values here are read from the source, not +; inferred from a name; what could not be read says so in NOTE. +; phi^2 + 1/phi^2 = 3 | TRINITY + +module fn_ton_pending_watch; + +pub const KIND : str = "function"; +pub const ID : str = "ton-pending-watch"; +pub const LEGACY_ID : str = "ton-pending-watch"; +pub const NAME : str = "Money: TON that arrived and was never credited"; +pub const REPO : str = "999-multibots-telegraf"; +; file:line of inngest.createFunction( in the repo named in REPO +pub const SERVICE : str = "src/inngest_app/functions/money/tonPendingWatch.ts:51"; +pub const DOMAIN : str = "money"; +; "event" or "cron"; an event function has EVENT (+ LEGACY_EVENTS), a cron function has CRON +pub const TRIGGER : str = "cron"; +pub const EVENT : str = ""; +pub const LEGACY_EVENTS : [0]str = []; +pub const CRON : str = "0 * * * *"; +pub const TZ : str = "UTC"; +pub const SUMMARY_EN : str = "Every hour reads the pending TON invoices, asks the chain whether the coins actually arrived, and writes one journal line to the render saying either that nothing is unclaimed or that somebody paid and was never credited. It reads only; it never completes a payment."; +; step.run names in source order +pub const STEPS : [1]str = ["look"]; +; retries declared on the function; when the code declares none, the Inngest JS SDK v3 default (4) is written and NOTE says so +pub const RETRIES : u8 = 0; +; "admin-telegram" (onFailure handler messages the admin chat), "log" (no handler) or "refund+notify" +pub const ON_FAILURE : str = "admin-telegram"; +; what a run touches outside the function, from a fixed vocabulary (see README) +pub const SIDE_EFFECTS : [2]str = ["paid-api", "external-webhook"]; +; the first step that stops a bad payload; "none" when the first step already acts, "unknown" when not probed +pub const GUARD : str = "safe-mode"; +; JSON payload of the 2026-09-09 safe probe and what it reached ("" / "skipped" when none was sent; "not-deployed" when the function is not on the probed build) +pub const SAFE_PROBE : str = ""; +pub const PROBE_RESULT : str = "skipped"; +pub const CONTROL : str = "spec+code"; +pub const NOTE : str = "No safe probe has been sent: the 2026-09-09 probe pass predates this registration, which is why the manifest row carries no deployment reading. The live status endpoint answered on 2026-09-22 with 94 runs over seven days and none failed. SIDE_EFFECTS drops the manifest's db-read, which the catalog vocabulary cannot say, and adds external-webhook for the note the run posts to the render; the table read is stated here instead. GUARD is the isSafeMode early return at the top of the handler, which the manifest recorded as none. A chain the watcher cannot read returns did=unreadable and writes no quiet note, so a broken read never records a clean channel; that alarm is throttled to once every six hours."; diff --git a/apps/website/public/tools/spec-tools.json b/apps/website/public/tools/spec-tools.json index 6677f54c71..e0fb2200cf 100644 --- a/apps/website/public/tools/spec-tools.json +++ b/apps/website/public/tools/spec-tools.json @@ -1 +1 @@ -{"collisions":[{"name":"fpga","t27":"gHashTag/t27:tri/fpga","trinity":"gHashTag/trinity:tri/fpga"},{"name":"test","t27":"gHashTag/t27:tri/test","trinity":"gHashTag/trinity:tri/test"}],"compilerWasmSha256":"3f1e073c963c86e2430ea6541b5ad286e06423d751a8797ca68479f847145383","contentSha256":"7a68cfbb487def2835af7518b832d17b147190393d3de25c2ce10c24cef72d1e","counts":{"byRepo":{"gHashTag/t27":58,"gHashTag/trinity":34},"byWitness":{"help-output":1,"registry-export":29,"runtime":0,"source-parse":62},"collisions":2,"enabled":92,"mcp":11,"mcpExternal":6,"mcpTools":255,"mcpWithTools":6,"schema2":92,"specs":92,"tri":81,"triActions":124,"triWithActions":38,"trinityTri":29,"typecheckOk":92,"withAgents":6,"withSkills":5},"generatedAt":"2026-09-21T08:52:39.041Z","groups":{"mcpByRepo":{"gHashTag/t27":["mcp/gitbutler","mcp/inngest-dev","mcp/notebooklm","mcp/t27-traceability","mcp/tri-mcp","mcp/tri-ssot"],"gHashTag/trinity":["mcp/needle","mcp/neon","mcp/railway-mcp-server","mcp/trinity","mcp/zig-docs"]},"triByAgent":{"-":["gHashTag/trinity:tri/bench","gHashTag/trinity:tri/bio","gHashTag/trinity:tri/blindspots","gHashTag/trinity:tri/conscious","gHashTag/trinity:tri/constants","gHashTag/trinity:tri/cosmos","gHashTag/trinity:tri/dashboard","gHashTag/trinity:tri/fib","gHashTag/trinity:tri/fpga","gHashTag/trinity:tri/gematria","gHashTag/trinity:tri/govern","gHashTag/trinity:tri/hardware","gHashTag/trinity:tri/identity","gHashTag/trinity:tri/lucas","gHashTag/trinity:tri/mesh","gHashTag/trinity:tri/needle","gHashTag/trinity:tri/needle-check","gHashTag/trinity:tri/needle-search","gHashTag/trinity:tri/omega","gHashTag/trinity:tri/particles","gHashTag/trinity:tri/phi","gHashTag/trinity:tri/quantum","gHashTag/trinity:tri/reputation","gHashTag/trinity:tri/sacred-const","gHashTag/trinity:tri/spiral","gHashTag/trinity:tri/swarm","gHashTag/trinity:tri/test","gHashTag/trinity:tri/vsa","gHashTag/trinity:tri/wallet","tri/abandoned","tri/census","tri/ci","tri/competitors","tri/discard","tri/doctor","tri/elab","tri/emit","tri/fleet","tri/fmt","tri/fpga","tri/gates","tri/harness","tri/health","tri/hooks","tri/issues","tri/jumps","tri/kinds","tri/lean","tri/ledgers","tri/loop","tri/merging","tri/misread","tri/mods","tri/mutate","tri/now","tri/one-away","tri/orphaned","tri/pr","tri/prose","tri/quantifiers","tri/red","tri/reseal","tri/rtl","tri/seals","tri/serve","tri/skill","tri/status","tri/sweep","tri/synth","tri/topic","tri/types","tri/unparsed","tri/vectors","tri/vsim","tri/window","tri/worktrees"],"C":["tri/gen"],"E":["tri/experience"],"T":["tri/gen","tri/test"],"V":["tri/test","tri/verdict"],"W":["tri/cell"]},"triByRepo":{"gHashTag/t27":["tri/abandoned","tri/cell","tri/census","tri/ci","tri/competitors","tri/discard","tri/doctor","tri/elab","tri/emit","tri/experience","tri/fleet","tri/fmt","tri/fpga","tri/gates","tri/gen","tri/harness","tri/health","tri/hooks","tri/issues","tri/jumps","tri/kinds","tri/lean","tri/ledgers","tri/loop","tri/merging","tri/misread","tri/mods","tri/mutate","tri/now","tri/one-away","tri/orphaned","tri/pr","tri/prose","tri/quantifiers","tri/red","tri/reseal","tri/rtl","tri/seals","tri/serve","tri/skill","tri/status","tri/sweep","tri/synth","tri/test","tri/topic","tri/types","tri/unparsed","tri/vectors","tri/verdict","tri/vsim","tri/window","tri/worktrees"],"gHashTag/trinity":["gHashTag/trinity:tri/bench","gHashTag/trinity:tri/bio","gHashTag/trinity:tri/blindspots","gHashTag/trinity:tri/conscious","gHashTag/trinity:tri/constants","gHashTag/trinity:tri/cosmos","gHashTag/trinity:tri/dashboard","gHashTag/trinity:tri/fib","gHashTag/trinity:tri/fpga","gHashTag/trinity:tri/gematria","gHashTag/trinity:tri/govern","gHashTag/trinity:tri/hardware","gHashTag/trinity:tri/identity","gHashTag/trinity:tri/lucas","gHashTag/trinity:tri/mesh","gHashTag/trinity:tri/needle","gHashTag/trinity:tri/needle-check","gHashTag/trinity:tri/needle-search","gHashTag/trinity:tri/omega","gHashTag/trinity:tri/particles","gHashTag/trinity:tri/phi","gHashTag/trinity:tri/quantum","gHashTag/trinity:tri/reputation","gHashTag/trinity:tri/sacred-const","gHashTag/trinity:tri/spiral","gHashTag/trinity:tri/swarm","gHashTag/trinity:tri/test","gHashTag/trinity:tri/vsa","gHashTag/trinity:tri/wallet"]}},"i18n":[{"bundle":"apps/website/i18n/agents.ru.json","coverage":{"n":92,"total":92},"enabled":true,"fields":["SUMMARY","NAME"],"locale":"ru","missing":[],"scope":["specs/skills","specs/crons","specs/agents","specs/functions","specs/tools"],"sha256":"c8871fb4ccdef8fc3cc2937af5db0e307ab0b62f6a03ece9f4512851ffd64f04","spec":"specs/i18n/agents-ru.t27"}],"ladder":{"agents":27,"crons":33,"functions":28,"skills":26,"specs":1414,"tools":92},"legacy":{"mcp/gitbutler":"gHashTag/t27:mcp/gitbutler","mcp/inngest-dev":"gHashTag/t27:mcp/inngest-dev","mcp/needle":"gHashTag/trinity:mcp/needle","mcp/neon":"gHashTag/trinity:mcp/neon","mcp/notebooklm":"gHashTag/t27:mcp/notebooklm","mcp/railway-mcp-server":"gHashTag/trinity:mcp/railway-mcp-server","mcp/t27-traceability":"gHashTag/t27:mcp/t27-traceability","mcp/tri-mcp":"gHashTag/t27:mcp/tri-mcp","mcp/tri-ssot":"gHashTag/t27:mcp/tri-ssot","mcp/trinity":"gHashTag/trinity:mcp/trinity","mcp/zig-docs":"gHashTag/trinity:mcp/zig-docs","tri/abandoned":"gHashTag/t27:tri/abandoned","tri/cell":"gHashTag/t27:tri/cell","tri/census":"gHashTag/t27:tri/census","tri/ci":"gHashTag/t27:tri/ci","tri/competitors":"gHashTag/t27:tri/competitors","tri/discard":"gHashTag/t27:tri/discard","tri/doctor":"gHashTag/t27:tri/doctor","tri/elab":"gHashTag/t27:tri/elab","tri/emit":"gHashTag/t27:tri/emit","tri/experience":"gHashTag/t27:tri/experience","tri/fleet":"gHashTag/t27:tri/fleet","tri/fmt":"gHashTag/t27:tri/fmt","tri/fpga":"gHashTag/t27:tri/fpga","tri/gates":"gHashTag/t27:tri/gates","tri/gen":"gHashTag/t27:tri/gen","tri/harness":"gHashTag/t27:tri/harness","tri/health":"gHashTag/t27:tri/health","tri/hooks":"gHashTag/t27:tri/hooks","tri/issues":"gHashTag/t27:tri/issues","tri/jumps":"gHashTag/t27:tri/jumps","tri/kinds":"gHashTag/t27:tri/kinds","tri/lean":"gHashTag/t27:tri/lean","tri/ledgers":"gHashTag/t27:tri/ledgers","tri/loop":"gHashTag/t27:tri/loop","tri/merging":"gHashTag/t27:tri/merging","tri/misread":"gHashTag/t27:tri/misread","tri/mods":"gHashTag/t27:tri/mods","tri/mutate":"gHashTag/t27:tri/mutate","tri/now":"gHashTag/t27:tri/now","tri/one-away":"gHashTag/t27:tri/one-away","tri/orphaned":"gHashTag/t27:tri/orphaned","tri/pr":"gHashTag/t27:tri/pr","tri/prose":"gHashTag/t27:tri/prose","tri/quantifiers":"gHashTag/t27:tri/quantifiers","tri/red":"gHashTag/t27:tri/red","tri/reseal":"gHashTag/t27:tri/reseal","tri/rtl":"gHashTag/t27:tri/rtl","tri/seals":"gHashTag/t27:tri/seals","tri/serve":"gHashTag/t27:tri/serve","tri/skill":"gHashTag/t27:tri/skill","tri/status":"gHashTag/t27:tri/status","tri/sweep":"gHashTag/t27:tri/sweep","tri/synth":"gHashTag/t27:tri/synth","tri/test":"gHashTag/t27:tri/test","tri/topic":"gHashTag/t27:tri/topic","tri/types":"gHashTag/t27:tri/types","tri/unparsed":"gHashTag/t27:tri/unparsed","tri/vectors":"gHashTag/t27:tri/vectors","tri/verdict":"gHashTag/t27:tri/verdict","tri/vsim":"gHashTag/t27:tri/vsim","tri/window":"gHashTag/t27:tri/window","tri/worktrees":"gHashTag/t27:tri/worktrees"},"pin":{"ref":"93727f733e23baf032d54505095777f16676d70b","source":"public/agents/experience.json sources[t27].commit"},"schema":2,"tools":[{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; Filter benchmarks by pattern","name":""},{"about":"string, optional; Output report file","name":""},{"about":"integer, optional; Number of iterations (default: 1000)","name":""}],"collidesWith":null,"command":"tri bench","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Run performance benchmarks","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["benchmark"],"ARGS":[": string, optional; Filter benchmarks by pattern",": string, optional; Output report file",": integer, optional; Number of iterations (default: 1000)"],"CAPABILITIES":["filesystem"],"CATEGORY":"benchmark","COLLIDES_WITH":"","COMMAND":"tri bench","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri bench","tri bench --filter vsa","tri bench --output report.json"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/bench","JOB_TIMEOUT":600,"KIND":"tool","MCP_DISPLAY_NAME":"Performance Benchmarks","MCP_ENABLED":true,"MCP_NAME":"tri_bench","MODE":"job","NAMESPACE":"dev","QUALIFIED_ID":"gHashTag/trinity:tri/bench","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":["filesystem"],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command bench (cli_namespace dev)","WHEN_TO_USE":"Run performance benchmarks","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/bench","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_bench","name":{"en":"tri bench"},"qualifiedId":"gHashTag/trinity:tri/bench","registry":{"aliases":["benchmark"],"capabilities":["filesystem"],"category":"benchmark","examples":["tri bench","tri bench --filter vsa","tri bench --output report.json"],"jobTimeout":600,"mcpDisplayName":"Performance Benchmarks","mcpEnabled":true,"mcpName":"tri_bench","mode":"job","namespace":"dev","sideEffects":["filesystem"],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/bench tri bench run performance benchmarks run performance benchmarks","sha256":"1abd9bd8ba36e27afc61193b4da5cee668fce6a890cc6b7b0c4d44bbe13be5a9","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/bench.t27","summary":{"en":"Run performance benchmarks","ru":"Бенчмарки Trinity."},"typecheckOk":true,"variant":"registry command bench (cli_namespace dev)","whenToUse":"Run performance benchmarks","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, required; DNA/RNA/Protein sequence","name":""}],"collidesWith":null,"command":"tri bio","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Biology v14.0 \\u2014 DNA/RNA/Protein sacred analysis","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["biology"],"ARGS":[": string, required; DNA/RNA/Protein sequence"],"CAPABILITIES":[],"CATEGORY":"science","COLLIDES_WITH":"","COMMAND":"tri bio","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri bio dna ATGCGT","tri bio rna AUGCCAUAA","tri bio protein MVHLTPEEK","tri bio codon ATG"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/bio","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"DNA Analysis","MCP_ENABLED":true,"MCP_NAME":"tri_bio_dna","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/bio","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command bio (cli_namespace core)","WHEN_TO_USE":"Biology v14.0 \\u2014 DNA/RNA/Protein sacred analysis","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/bio","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_bio","name":{"en":"tri bio"},"qualifiedId":"gHashTag/trinity:tri/bio","registry":{"aliases":["biology"],"capabilities":[],"category":"science","examples":["tri bio dna ATGCGT","tri bio rna AUGCCAUAA","tri bio protein MVHLTPEEK","tri bio codon ATG"],"jobTimeout":300,"mcpDisplayName":"DNA Analysis","mcpEnabled":true,"mcpName":"tri_bio_dna","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/bio tri bio biology v14.0 \\u2014 dna/rna/protein sacred analysis biology v14.0 \\u2014 dna/rna/protein sacred analysis","sha256":"e9f0534647b2ff6479e0a03577eeb01d1c529f0973f585eb5c134ae4f819d29a","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/bio.t27","summary":{"en":"Biology v14.0 \\u2014 DNA/RNA/Protein sacred analysis","ru":"Биология v14.0 — сакральный анализ ДНК, РНК и белков."},"typecheckOk":true,"variant":"registry command bio (cli_namespace core)","whenToUse":"Biology v14.0 \\u2014 DNA/RNA/Protein sacred analysis","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri blindspots","discarded":0,"entry":"","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Blind Spots v1.0 \\u2014 90+ new formulas across 8 domains","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["blind-spot","blindspot","bs"],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"science","COLLIDES_WITH":"","COMMAND":"tri blindspots","ENABLED":true,"ENTRY":"","EXAMPLES":["tri blindspots all","tri blindspots nuclear","tri blindspots atomic","tri blindspots plasma","tri blindspots optics","tri blindspots astro","tri blindspots quantum","tri blindspots condensed","tri blindspots biology-advanced","tri blindspots domains"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/blindspots","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Blind Spots (8 Domains)","MCP_ENABLED":true,"MCP_NAME":"tri_blindspots","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/blindspots","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":false,"ROUTE_KIND":"none","ROUTE_NOTE":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri blindspots` reaches no handler and its MCP tool has no CLI behind it","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command blindspots (cli_namespace core)","WHEN_TO_USE":"Blind Spots v1.0 \\u2014 90+ new formulas across 8 domains","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/blindspots","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_blindspots","name":{"en":"tri blindspots"},"qualifiedId":"gHashTag/trinity:tri/blindspots","registry":{"aliases":["blind-spot","blindspot","bs"],"capabilities":[],"category":"science","examples":["tri blindspots all","tri blindspots nuclear","tri blindspots atomic","tri blindspots plasma","tri blindspots optics","tri blindspots astro","tri blindspots quantum","tri blindspots condensed","tri blindspots biology-advanced","tri blindspots domains"],"jobTimeout":300,"mcpDisplayName":"Blind Spots (8 Domains)","mcpEnabled":true,"mcpName":"tri_blindspots","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"none","note":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri blindspots` reaches no handler and its MCP tool has no CLI behind it","routed":false},"schema":2,"searchText":"ghashtag/trinity:tri/blindspots tri blindspots blind spots v1.0 \\u2014 90+ new formulas across 8 domains blind spots v1.0 \\u2014 90+ new formulas across 8 domains","sha256":"ae78ffaeec23f0c29f7aece98aa361e30ae30e923624aba2aad40b23b4a9ef7f","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/blindspots.t27","summary":{"en":"Blind Spots v1.0 \\u2014 90+ new formulas across 8 domains","ru":"Слепые пятна: поиск областей, где сакральная формула ещё не проверена."},"typecheckOk":true,"variant":"registry command blindspots (cli_namespace core)","whenToUse":"Blind Spots v1.0 \\u2014 90+ new formulas across 8 domains","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri conscious","discarded":0,"entry":"","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Consciousness awakening simulator (IIT+GWT+OrchOR+Qutrit+ActiveInf)","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["consciousness"],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"science","COLLIDES_WITH":"","COMMAND":"tri conscious","ENABLED":true,"ENTRY":"","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/conscious","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Consciousness Simulator","MCP_ENABLED":true,"MCP_NAME":"tri_consciousness","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/conscious","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":false,"ROUTE_KIND":"none","ROUTE_NOTE":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri conscious` reaches no handler and its MCP tool has no CLI behind it","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command conscious (cli_namespace core)","WHEN_TO_USE":"Consciousness awakening simulator (IIT+GWT+OrchOR+Qutrit+ActiveInf)","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/conscious","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_conscious","name":{"en":"tri conscious"},"qualifiedId":"gHashTag/trinity:tri/conscious","registry":{"aliases":["consciousness"],"capabilities":[],"category":"science","examples":[],"jobTimeout":300,"mcpDisplayName":"Consciousness Simulator","mcpEnabled":true,"mcpName":"tri_consciousness","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"none","note":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri conscious` reaches no handler and its MCP tool has no CLI behind it","routed":false},"schema":2,"searchText":"ghashtag/trinity:tri/conscious tri conscious consciousness awakening simulator (iit+gwt+orchor+qutrit+activeinf) consciousness awakening simulator (iit+gwt+orchor+qutrit+activeinf)","sha256":"94a9c3f27d49d51c2cb60355eaaaa9a9f296515a6974afb7c629d7ff00681f54","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/conscious.t27","summary":{"en":"Consciousness awakening simulator (IIT+GWT+OrchOR+Qutrit+ActiveInf)","ru":"Метрики сознания Trinity."},"typecheckOk":true,"variant":"registry command conscious (cli_namespace core)","whenToUse":"Consciousness awakening simulator (IIT+GWT+OrchOR+Qutrit+ActiveInf)","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri constants","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Display sacred constants (\\u03c6, \\u03c0, e, \\u03bc, \\u03c7, \\u03c3, \\u03b5)","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["const","c"],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"math","COLLIDES_WITH":"","COMMAND":"tri constants","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri constants"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/constants","JOB_TIMEOUT":0,"KIND":"tool","MCP_DISPLAY_NAME":"Sacred Constants","MCP_ENABLED":true,"MCP_NAME":"tri_constants","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/constants","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command constants (cli_namespace core)","WHEN_TO_USE":"Display sacred constants (\\u03c6, \\u03c0, e, \\u03bc, \\u03c7, \\u03c3, \\u03b5)","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/constants","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_constants","name":{"en":"tri constants"},"qualifiedId":"gHashTag/trinity:tri/constants","registry":{"aliases":["const","c"],"capabilities":[],"category":"math","examples":["tri constants"],"jobTimeout":0,"mcpDisplayName":"Sacred Constants","mcpEnabled":true,"mcpName":"tri_constants","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/constants tri constants display sacred constants (\\u03c6, \\u03c0, e, \\u03bc, \\u03c7, \\u03c3, \\u03b5) display sacred constants (\\u03c6, \\u03c0, e, \\u03bc, \\u03c7, \\u03c3, \\u03b5)","sha256":"2ab994adcd287776d83e4432dfd098a89121d8d3f8395b9ef2f15dd8cc6fea04","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/constants.t27","summary":{"en":"Display sacred constants (\\u03c6, \\u03c0, e, \\u03bc, \\u03c7, \\u03c3, \\u03b5)","ru":"Сакральные константы (phi, pi, e и их соотношения)."},"typecheckOk":true,"variant":"registry command constants (cli_namespace core)","whenToUse":"Display sacred constants (\\u03c6, \\u03c0, e, \\u03bc, \\u03c7, \\u03c3, \\u03b5)","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri cosmos","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Cosmology v15.0 \\u2014 Universe through \\u03c6","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["cosmology"],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"science","COLLIDES_WITH":"","COMMAND":"tri cosmos","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri cosmos hubble","tri cosmos dark","tri cosmos w-z","tri cosmos lambda-z","tri cosmos phantom","tri cosmos consciousness-de"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/cosmos","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Hubble Tension","MCP_ENABLED":true,"MCP_NAME":"tri_cosmos_hubble","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/cosmos","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command cosmos (cli_namespace core)","WHEN_TO_USE":"Cosmology v15.0 \\u2014 Universe through \\u03c6","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/cosmos","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_cosmos","name":{"en":"tri cosmos"},"qualifiedId":"gHashTag/trinity:tri/cosmos","registry":{"aliases":["cosmology"],"capabilities":[],"category":"science","examples":["tri cosmos hubble","tri cosmos dark","tri cosmos w-z","tri cosmos lambda-z","tri cosmos phantom","tri cosmos consciousness-de"],"jobTimeout":300,"mcpDisplayName":"Hubble Tension","mcpEnabled":true,"mcpName":"tri_cosmos_hubble","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/cosmos tri cosmos cosmology v15.0 \\u2014 universe through \\u03c6 cosmology v15.0 \\u2014 universe through \\u03c6","sha256":"42bf0f894738516bde89899aa41ed960072949d0409958942954da09f598e5bd","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/cosmos.t27","summary":{"en":"Cosmology v15.0 \\u2014 Universe through \\u03c6","ru":"Космология v15.0 — постоянная Хаббла и сакральные космологические константы."},"typecheckOk":true,"variant":"registry command cosmos (cli_namespace core)","whenToUse":"Cosmology v15.0 \\u2014 Universe through \\u03c6","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"integer, optional; Dashboard port","name":""}],"collidesWith":null,"command":"tri dashboard","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Sacred dashboard","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": integer, optional; Dashboard port"],"CAPABILITIES":[],"CATEGORY":"system","COLLIDES_WITH":"","COMMAND":"tri dashboard","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/dashboard","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Dashboard Server","MCP_ENABLED":true,"MCP_NAME":"tri_dashboard_serve","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/dashboard","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"parse_command","ROUTE_NOTE":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command dashboard (cli_namespace core)","WHEN_TO_USE":"Sacred dashboard","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/dashboard","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_dashboard","name":{"en":"tri dashboard"},"qualifiedId":"gHashTag/trinity:tri/dashboard","registry":{"aliases":[],"capabilities":[],"category":"system","examples":[],"jobTimeout":300,"mcpDisplayName":"Dashboard Server","mcpEnabled":true,"mcpName":"tri_dashboard_serve","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"parse_command","note":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/dashboard tri dashboard sacred dashboard sacred dashboard","sha256":"3e84d5413e6db52ac25368c67f1585b67c5c0401f80c30df20c96c626c3b345d","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/dashboard.t27","summary":{"en":"Sacred dashboard","ru":"Панель состояния Trinity."},"typecheckOk":true,"variant":"registry command dashboard (cli_namespace core)","whenToUse":"Sacred dashboard","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"integer, required; Fibonacci index","name":""}],"collidesWith":null,"command":"tri fib","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Fibonacci numbers with BigInt","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["fibonacci"],"ARGS":[": integer, required; Fibonacci index"],"CAPABILITIES":[],"CATEGORY":"math","COLLIDES_WITH":"","COMMAND":"tri fib","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri fib 10","tri fib 100"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/fib","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Fibonacci","MCP_ENABLED":true,"MCP_NAME":"tri_fib","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/fib","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command fib (cli_namespace core)","WHEN_TO_USE":"Fibonacci numbers with BigInt","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/fib","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_fib","name":{"en":"tri fib"},"qualifiedId":"gHashTag/trinity:tri/fib","registry":{"aliases":["fibonacci"],"capabilities":[],"category":"math","examples":["tri fib 10","tri fib 100"],"jobTimeout":300,"mcpDisplayName":"Fibonacci","mcpEnabled":true,"mcpName":"tri_fib","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/fib tri fib fibonacci numbers with bigint fibonacci numbers with bigint","sha256":"a7a393454d6c7633bfbf3ce21e91dcb7e2232921c6492192b7db580242981ed0","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/fib.t27","summary":{"en":"Fibonacci numbers with BigInt","ru":"Числа Фибоначчи."},"typecheckOk":true,"variant":"registry command fib (cli_namespace core)","whenToUse":"Fibonacci numbers with BigInt","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":"gHashTag/t27:tri/fpga","command":"tri fpga","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"FPGA toolchain via FORGE v2.0 (native Zig)","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["forge"],"ARGS":[],"CAPABILITIES":["hardware","filesystem"],"CATEGORY":"dev","COLLIDES_WITH":"gHashTag/t27:tri/fpga","COMMAND":"tri fpga","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri fpga bench","tri fpga verdict","tri fpga run design.json","tri fpga flash design.bit"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/fpga","JOB_TIMEOUT":1800,"KIND":"tool","MCP_DISPLAY_NAME":"FPGA Toolchain","MCP_ENABLED":true,"MCP_NAME":"tri_fpga","MODE":"job","NAMESPACE":"forge","QUALIFIED_ID":"gHashTag/trinity:tri/fpga","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":["hardware","filesystem"],"SOURCE":"src/registry/command_table.zig","STABILITY":"experimental","VARIANT":"registry command fpga (cli_namespace forge)","WHEN_TO_USE":"FPGA toolchain via FORGE v2.0 (native Zig)","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/fpga","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_fpga","name":{"en":"tri fpga"},"qualifiedId":"gHashTag/trinity:tri/fpga","registry":{"aliases":["forge"],"capabilities":["hardware","filesystem"],"category":"dev","examples":["tri fpga bench","tri fpga verdict","tri fpga run design.json","tri fpga flash design.bit"],"jobTimeout":1800,"mcpDisplayName":"FPGA Toolchain","mcpEnabled":true,"mcpName":"tri_fpga","mode":"job","namespace":"forge","sideEffects":["hardware","filesystem"],"stability":"experimental"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/fpga tri fpga fpga toolchain via forge v2.0 (native zig) fpga toolchain via forge v2.0 (native zig)","sha256":"cd2e83756f6d11ed08e29c26a1c145b8384e56b7b3dd9c2e39e815b739c7190a","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/fpga.t27","summary":{"en":"FPGA toolchain via FORGE v2.0 (native Zig)","ru":"FPGA: синтез, прошивка и проверка."},"typecheckOk":true,"variant":"registry command fpga (cli_namespace forge)","whenToUse":"FPGA toolchain via FORGE v2.0 (native Zig)","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, required; Text to analyze","name":""},{"about":"string, optional; Language system","name":""}],"collidesWith":null,"command":"tri gematria","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Gematria word value calculator","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": string, required; Text to analyze",": string, optional; Language system"],"CAPABILITIES":[],"CATEGORY":"math","COLLIDES_WITH":"","COMMAND":"tri gematria","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri gematria hello"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/gematria","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Gematria","MCP_ENABLED":true,"MCP_NAME":"tri_gematria","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/gematria","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command gematria (cli_namespace core)","WHEN_TO_USE":"Gematria word value calculator","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/gematria","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_gematria","name":{"en":"tri gematria"},"qualifiedId":"gHashTag/trinity:tri/gematria","registry":{"aliases":[],"capabilities":[],"category":"math","examples":["tri gematria hello"],"jobTimeout":300,"mcpDisplayName":"Gematria","mcpEnabled":true,"mcpName":"tri_gematria","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/gematria tri gematria gematria word value calculator gematria word value calculator","sha256":"ef97c85a18e66c8236579ad970aa519e61b85deb9c2094b7ae5dad85e7d1a767","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/gematria.t27","summary":{"en":"Gematria word value calculator","ru":"Гематрия: числовое значение текста."},"typecheckOk":true,"variant":"registry command gematria (cli_namespace core)","whenToUse":"Gematria word value calculator","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; proposals, vote, treasury, rewards","name":""}],"collidesWith":null,"command":"tri govern","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Sacred governance","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": string, optional; proposals, vote, treasury, rewards"],"CAPABILITIES":[],"CATEGORY":"sacred","COLLIDES_WITH":"","COMMAND":"tri govern","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/govern","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Governance System","MCP_ENABLED":true,"MCP_NAME":"tri_govern","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/govern","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"parse_command","ROUTE_NOTE":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command govern (cli_namespace core)","WHEN_TO_USE":"Sacred governance","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/govern","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_govern","name":{"en":"tri govern"},"qualifiedId":"gHashTag/trinity:tri/govern","registry":{"aliases":[],"capabilities":[],"category":"sacred","examples":[],"jobTimeout":300,"mcpDisplayName":"Governance System","mcpEnabled":true,"mcpName":"tri_govern","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"parse_command","note":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/govern tri govern sacred governance sacred governance","sha256":"b354d78a042da1a057338c5bd4bd2e9426ab6540e4b0b24c959782d3793e1538","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/govern.t27","summary":{"en":"Sacred governance","ru":"Управление роем."},"typecheckOk":true,"variant":"registry command govern (cli_namespace core)","whenToUse":"Sacred governance","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri hardware","discarded":0,"entry":"","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Hardware deployment \\u2014 deploy, status, stop nodes","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"depin","COLLIDES_WITH":"","COMMAND":"tri hardware","ENABLED":true,"ENTRY":"","EXAMPLES":["tri hardware deploy","tri hardware status"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/hardware","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Hardware Info","MCP_ENABLED":true,"MCP_NAME":"tri_hardware_info","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/hardware","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":false,"ROUTE_KIND":"none","ROUTE_NOTE":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri hardware` reaches no handler and its MCP tool has no CLI behind it","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command hardware (cli_namespace core)","WHEN_TO_USE":"Hardware deployment \\u2014 deploy, status, stop nodes","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/hardware","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_hardware","name":{"en":"tri hardware"},"qualifiedId":"gHashTag/trinity:tri/hardware","registry":{"aliases":[],"capabilities":[],"category":"depin","examples":["tri hardware deploy","tri hardware status"],"jobTimeout":300,"mcpDisplayName":"Hardware Info","mcpEnabled":true,"mcpName":"tri_hardware_info","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"none","note":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri hardware` reaches no handler and its MCP tool has no CLI behind it","routed":false},"schema":2,"searchText":"ghashtag/trinity:tri/hardware tri hardware hardware deployment \\u2014 deploy, status, stop nodes hardware deployment \\u2014 deploy, status, stop nodes","sha256":"1badc358e7b3bedcded55bfc6aba9c2ff976edde0c930e130560db5de6677787","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/hardware.t27","summary":{"en":"Hardware deployment \\u2014 deploy, status, stop nodes","ru":"Сведения об оборудовании."},"typecheckOk":true,"variant":"registry command hardware (cli_namespace core)","whenToUse":"Hardware deployment \\u2014 deploy, status, stop nodes","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; node, generate, verify, reputation","name":""}],"collidesWith":null,"command":"tri identity","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Sacred identity","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": string, optional; node, generate, verify, reputation"],"CAPABILITIES":[],"CATEGORY":"sacred","COLLIDES_WITH":"","COMMAND":"tri identity","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/identity","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Sacred Identity","MCP_ENABLED":true,"MCP_NAME":"tri_identity","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/identity","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"parse_command","ROUTE_NOTE":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command identity (cli_namespace core)","WHEN_TO_USE":"Sacred identity","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/identity","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_identity","name":{"en":"tri identity"},"qualifiedId":"gHashTag/trinity:tri/identity","registry":{"aliases":[],"capabilities":[],"category":"sacred","examples":[],"jobTimeout":300,"mcpDisplayName":"Sacred Identity","mcpEnabled":true,"mcpName":"tri_identity","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"parse_command","note":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/identity tri identity sacred identity sacred identity","sha256":"f9fa2056b186e23ed82410422f87a164d198a5d89ff00738b77659b99da9399e","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/identity.t27","summary":{"en":"Sacred identity","ru":"Сакральное тождество phi^2 + 1/phi^2 = 3."},"typecheckOk":true,"variant":"registry command identity (cli_namespace core)","whenToUse":"Sacred identity","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"integer, required; Lucas index","name":""}],"collidesWith":null,"command":"tri lucas","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Lucas numbers (L(2)=3=TRINITY)","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": integer, required; Lucas index"],"CAPABILITIES":[],"CATEGORY":"math","COLLIDES_WITH":"","COMMAND":"tri lucas","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri lucas 10","tri lucas 20"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/lucas","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Lucas Numbers","MCP_ENABLED":true,"MCP_NAME":"tri_lucas","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/lucas","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command lucas (cli_namespace core)","WHEN_TO_USE":"Lucas numbers (L(2)=3=TRINITY)","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/lucas","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_lucas","name":{"en":"tri lucas"},"qualifiedId":"gHashTag/trinity:tri/lucas","registry":{"aliases":[],"capabilities":[],"category":"math","examples":["tri lucas 10","tri lucas 20"],"jobTimeout":300,"mcpDisplayName":"Lucas Numbers","mcpEnabled":true,"mcpName":"tri_lucas","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/lucas tri lucas lucas numbers (l(2)=3=trinity) lucas numbers (l(2)=3=trinity)","sha256":"21a656adb73fbc5fa02c0ae82807e24666fe20c954806a21203ed54b742bb9e6","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/lucas.t27","summary":{"en":"Lucas numbers (L(2)=3=TRINITY)","ru":"Числа Люка."},"typecheckOk":true,"variant":"registry command lucas (cli_namespace core)","whenToUse":"Lucas numbers (L(2)=3=TRINITY)","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri mesh","discarded":0,"entry":"","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Global mesh management \\u2014 status, topology, discovery","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"depin","COLLIDES_WITH":"","COMMAND":"tri mesh","ENABLED":true,"ENTRY":"","EXAMPLES":["tri mesh status","tri mesh topology","tri mesh discover"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/mesh","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Mesh Status","MCP_ENABLED":true,"MCP_NAME":"tri_mesh_status","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/mesh","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":false,"ROUTE_KIND":"none","ROUTE_NOTE":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri mesh` reaches no handler and its MCP tool has no CLI behind it","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command mesh (cli_namespace core)","WHEN_TO_USE":"Global mesh management \\u2014 status, topology, discovery","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/mesh","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_mesh","name":{"en":"tri mesh"},"qualifiedId":"gHashTag/trinity:tri/mesh","registry":{"aliases":[],"capabilities":[],"category":"depin","examples":["tri mesh status","tri mesh topology","tri mesh discover"],"jobTimeout":300,"mcpDisplayName":"Mesh Status","mcpEnabled":true,"mcpName":"tri_mesh_status","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"none","note":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri mesh` reaches no handler and its MCP tool has no CLI behind it","routed":false},"schema":2,"searchText":"ghashtag/trinity:tri/mesh tri mesh global mesh management \\u2014 status, topology, discovery global mesh management \\u2014 status, topology, discovery","sha256":"8a2aeb36832b43ec2112a770f943529481e4a7f3ccd52f7b4fdc62e7452978ed","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/mesh.t27","summary":{"en":"Global mesh management \\u2014 status, topology, discovery","ru":"Состояние mesh-сети."},"typecheckOk":true,"variant":"registry command mesh (cli_namespace core)","whenToUse":"Global mesh management \\u2014 status, topology, discovery","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; File to edit","name":""},{"about":"string, optional; Edit query","name":""}],"collidesWith":null,"command":"tri needle","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Structural editor core","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": string, optional; File to edit",": string, optional; Edit query"],"CAPABILITIES":[],"CATEGORY":"dev","COLLIDES_WITH":"","COMMAND":"tri needle","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/needle","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Needle Editor","MCP_ENABLED":true,"MCP_NAME":"tri_needle","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/needle","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command needle (cli_namespace core)","WHEN_TO_USE":"Structural editor core","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/needle","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_needle","name":{"en":"tri needle"},"qualifiedId":"gHashTag/trinity:tri/needle","registry":{"aliases":[],"capabilities":[],"category":"dev","examples":[],"jobTimeout":300,"mcpDisplayName":"Needle Editor","mcpEnabled":true,"mcpName":"tri_needle","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/needle tri needle structural editor core structural editor core","sha256":"3058e555568a46d707c7eb6bde87b2611b7b3b35d0bc44cf39e69b7105c96836","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/needle.t27","summary":{"en":"Structural editor core","ru":"Needle: AST-редактирование кода."},"typecheckOk":true,"variant":"registry command needle (cli_namespace core)","whenToUse":"Structural editor core","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; File to check","name":""}],"collidesWith":null,"command":"tri needle-check","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Needle check","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["needle_check"],"ARGS":[": string, optional; File to check"],"CAPABILITIES":[],"CATEGORY":"dev","COLLIDES_WITH":"","COMMAND":"tri needle-check","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/needle-check","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Needle Check","MCP_ENABLED":true,"MCP_NAME":"tri_needle_check","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/needle-check","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command needle-check (cli_namespace core)","WHEN_TO_USE":"Needle check","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/needle-check","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_needle_check","name":{"en":"tri needle-check"},"qualifiedId":"gHashTag/trinity:tri/needle-check","registry":{"aliases":["needle_check"],"capabilities":[],"category":"dev","examples":[],"jobTimeout":300,"mcpDisplayName":"Needle Check","mcpEnabled":true,"mcpName":"tri_needle_check","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/needle-check tri needle-check needle check needle check","sha256":"689a89b90876fa9967656508d3791f3de1a47afe358cbf4d7ccf023fce1c32d5","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/needle-check.t27","summary":{"en":"Needle check","ru":"Needle: проверка качества кода."},"typecheckOk":true,"variant":"registry command needle-check (cli_namespace core)","whenToUse":"Needle check","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, required; Search pattern","name":""}],"collidesWith":null,"command":"tri needle-search","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Needle search","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["needle_search"],"ARGS":[": string, required; Search pattern"],"CAPABILITIES":[],"CATEGORY":"dev","COLLIDES_WITH":"","COMMAND":"tri needle-search","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/needle-search","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Needle Search","MCP_ENABLED":true,"MCP_NAME":"tri_needle_search","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/needle-search","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command needle-search (cli_namespace core)","WHEN_TO_USE":"Needle search","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/needle-search","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_needle_search","name":{"en":"tri needle-search"},"qualifiedId":"gHashTag/trinity:tri/needle-search","registry":{"aliases":["needle_search"],"capabilities":[],"category":"dev","examples":[],"jobTimeout":300,"mcpDisplayName":"Needle Search","mcpEnabled":true,"mcpName":"tri_needle_search","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/needle-search tri needle-search needle search needle search","sha256":"d596ee91ec23d39cb905e0ddc7dffc504c532952a2fb0fe7ed64438db707779c","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/needle-search.t27","summary":{"en":"Needle search","ru":"Needle: поиск по шаблону в коде."},"typecheckOk":true,"variant":"registry command needle-search (cli_namespace core)","whenToUse":"Needle search","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri omega","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Omega phase","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"sacred","COLLIDES_WITH":"","COMMAND":"tri omega","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/omega","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Omega Status","MCP_ENABLED":true,"MCP_NAME":"tri_omega_status","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/omega","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"parse_command","ROUTE_NOTE":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command omega (cli_namespace core)","WHEN_TO_USE":"Omega phase","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/omega","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_omega","name":{"en":"tri omega"},"qualifiedId":"gHashTag/trinity:tri/omega","registry":{"aliases":[],"capabilities":[],"category":"sacred","examples":[],"jobTimeout":300,"mcpDisplayName":"Omega Status","mcpEnabled":true,"mcpName":"tri_omega_status","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"parse_command","note":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/omega tri omega omega phase omega phase","sha256":"e03bddbb9708c94b3c44f5a3b2aef4ac440d53c9328c75ae8b6c37fb9a21959f","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/omega.t27","summary":{"en":"Omega phase","ru":"Состояние Omega."},"typecheckOk":true,"variant":"registry command omega (cli_namespace core)","whenToUse":"Omega phase","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri particles","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Particle physics sacred formulas (49 constants from \\u03c6)","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["particle","pdg"],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"science","COLLIDES_WITH":"","COMMAND":"tri particles","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri particles","tri particles all","tri particles tier1","tri particles search alpha_s"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/particles","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Particle Physics Sacred","MCP_ENABLED":true,"MCP_NAME":"tri_particles","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/particles","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command particles (cli_namespace core)","WHEN_TO_USE":"Particle physics sacred formulas (49 constants from \\u03c6)","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/particles","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_particles","name":{"en":"tri particles"},"qualifiedId":"gHashTag/trinity:tri/particles","registry":{"aliases":["particle","pdg"],"capabilities":[],"category":"science","examples":["tri particles","tri particles all","tri particles tier1","tri particles search alpha_s"],"jobTimeout":300,"mcpDisplayName":"Particle Physics Sacred","mcpEnabled":true,"mcpName":"tri_particles","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/particles tri particles particle physics sacred formulas (49 constants from \\u03c6) particle physics sacred formulas (49 constants from \\u03c6)","sha256":"de48a64950df41b2344a8bed9ad969eb6776456406b9c68c469cba8c13b3ac7e","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/particles.t27","summary":{"en":"Particle physics sacred formulas (49 constants from \\u03c6)","ru":"Физика частиц: константы и массы."},"typecheckOk":true,"variant":"registry command particles (cli_namespace core)","whenToUse":"Particle physics sacred formulas (49 constants from \\u03c6)","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"integer, required; Power of phi","name":""}],"collidesWith":null,"command":"tri phi","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Compute \\u03c6\\u207f (golden ratio power)","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": integer, required; Power of phi"],"CAPABILITIES":[],"CATEGORY":"math","COLLIDES_WITH":"","COMMAND":"tri phi","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri phi 10","tri phi 100"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/phi","JOB_TIMEOUT":0,"KIND":"tool","MCP_DISPLAY_NAME":"Phi Power","MCP_ENABLED":true,"MCP_NAME":"tri_phi","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/phi","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command phi (cli_namespace core)","WHEN_TO_USE":"Compute \\u03c6\\u207f (golden ratio power)","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/phi","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_phi","name":{"en":"tri phi"},"qualifiedId":"gHashTag/trinity:tri/phi","registry":{"aliases":[],"capabilities":[],"category":"math","examples":["tri phi 10","tri phi 100"],"jobTimeout":0,"mcpDisplayName":"Phi Power","mcpEnabled":true,"mcpName":"tri_phi","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/phi tri phi compute \\u03c6\\u207f (golden ratio power) compute \\u03c6\\u207f (golden ratio power)","sha256":"293d2f0f3dd1ad97dcc7e6485a9285d91ba36deb71ec7520b80523877a2c8405","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/phi.t27","summary":{"en":"Compute \\u03c6\\u207f (golden ratio power)","ru":"Золотое сечение phi и его степени."},"typecheckOk":true,"variant":"registry command phi (cli_namespace core)","whenToUse":"Compute \\u03c6\\u207f (golden ratio power)","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri quantum","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Quantum Trinity","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"science","COLLIDES_WITH":"","COMMAND":"tri quantum","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/quantum","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Quantum Constants","MCP_ENABLED":true,"MCP_NAME":"tri_quantum_constants","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/quantum","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command quantum (cli_namespace core)","WHEN_TO_USE":"Quantum Trinity","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/quantum","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_quantum","name":{"en":"tri quantum"},"qualifiedId":"gHashTag/trinity:tri/quantum","registry":{"aliases":[],"capabilities":[],"category":"science","examples":[],"jobTimeout":300,"mcpDisplayName":"Quantum Constants","mcpEnabled":true,"mcpName":"tri_quantum_constants","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/quantum tri quantum quantum trinity quantum trinity","sha256":"8d982321638e3fbde1a0a9ac40ad051614868d399025685f5b4d580ec86a1656","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/quantum.t27","summary":{"en":"Quantum Trinity","ru":"Квантовые константы."},"typecheckOk":true,"variant":"registry command quantum (cli_namespace core)","whenToUse":"Quantum Trinity","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri reputation","discarded":0,"entry":"","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Reputation system \\u2014 show node reputation, leaderboard","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["rep"],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"depin","COLLIDES_WITH":"","COMMAND":"tri reputation","ENABLED":true,"ENTRY":"","EXAMPLES":["tri reputation show","tri reputation leaderboard"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/reputation","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Reputation Leaderboard","MCP_ENABLED":true,"MCP_NAME":"tri_omega_reputation","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/reputation","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":false,"ROUTE_KIND":"none","ROUTE_NOTE":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri reputation` reaches no handler and its MCP tool has no CLI behind it","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command reputation (cli_namespace core)","WHEN_TO_USE":"Reputation system \\u2014 show node reputation, leaderboard","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/reputation","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_reputation","name":{"en":"tri reputation"},"qualifiedId":"gHashTag/trinity:tri/reputation","registry":{"aliases":["rep"],"capabilities":[],"category":"depin","examples":["tri reputation show","tri reputation leaderboard"],"jobTimeout":300,"mcpDisplayName":"Reputation Leaderboard","mcpEnabled":true,"mcpName":"tri_omega_reputation","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"none","note":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri reputation` reaches no handler and its MCP tool has no CLI behind it","routed":false},"schema":2,"searchText":"ghashtag/trinity:tri/reputation tri reputation reputation system \\u2014 show node reputation, leaderboard reputation system \\u2014 show node reputation, leaderboard","sha256":"ce0352d36e43b44480a79b3333031e61f637feda0bd474b8af6b239364a030cb","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/reputation.t27","summary":{"en":"Reputation system \\u2014 show node reputation, leaderboard","ru":"Репутация узла Omega."},"typecheckOk":true,"variant":"registry command reputation (cli_namespace core)","whenToUse":"Reputation system \\u2014 show node reputation, leaderboard","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; Target constant (phi2_pi2, e_pi, etc.)","name":""},{"about":"integer, optional; Number of CORDIC stages","name":""},{"about":"integer, optional; Data width in bits","name":""},{"about":"string, optional; Output Verilog file","name":""}],"collidesWith":null,"command":"tri sacred-const","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Sacred constants FPGA synthesis (0 DSP48)","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["sacred_constants","sacred-fpga"],"ARGS":[": string, optional; Target constant (phi2_pi2, e_pi, etc.)",": integer, optional; Number of CORDIC stages",": integer, optional; Data width in bits",": string, optional; Output Verilog file"],"CAPABILITIES":["filesystem"],"CATEGORY":"advanced","COLLIDES_WITH":"","COMMAND":"tri sacred-const","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri sacred-const phi-arith","tri sacred-const cordic-sacred","tri sacred-const const-rom"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/sacred-const","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Sacred Constants FPGA","MCP_ENABLED":true,"MCP_NAME":"tri_sacred_const_fpga","MODE":"job","NAMESPACE":"forge","QUALIFIED_ID":"gHashTag/trinity:tri/sacred-const","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":["filesystem"],"SOURCE":"src/registry/command_table.zig","STABILITY":"experimental","VARIANT":"registry command sacred-const (cli_namespace forge)","WHEN_TO_USE":"Sacred constants FPGA synthesis (0 DSP48)","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/sacred-const","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_sacred_const","name":{"en":"tri sacred-const"},"qualifiedId":"gHashTag/trinity:tri/sacred-const","registry":{"aliases":["sacred_constants","sacred-fpga"],"capabilities":["filesystem"],"category":"advanced","examples":["tri sacred-const phi-arith","tri sacred-const cordic-sacred","tri sacred-const const-rom"],"jobTimeout":300,"mcpDisplayName":"Sacred Constants FPGA","mcpEnabled":true,"mcpName":"tri_sacred_const_fpga","mode":"job","namespace":"forge","sideEffects":["filesystem"],"stability":"experimental"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/sacred-const tri sacred-const sacred constants fpga synthesis (0 dsp48) sacred constants fpga synthesis (0 dsp48)","sha256":"6adddc181a2303061a5805b40022f137ec1c1e53b8356733092a3e97182e4a3c","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/sacred-const.t27","summary":{"en":"Sacred constants FPGA synthesis (0 DSP48)","ru":"Сакральные константы для FPGA."},"typecheckOk":true,"variant":"registry command sacred-const (cli_namespace forge)","whenToUse":"Sacred constants FPGA synthesis (0 DSP48)","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"integer, required; Number of spiral points","name":""}],"collidesWith":null,"command":"tri spiral","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"\\u03c6-spiral coordinates","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": integer, required; Number of spiral points"],"CAPABILITIES":[],"CATEGORY":"math","COLLIDES_WITH":"","COMMAND":"tri spiral","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri spiral 10"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/spiral","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Phi Spiral","MCP_ENABLED":true,"MCP_NAME":"tri_spiral","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/spiral","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command spiral (cli_namespace core)","WHEN_TO_USE":"\\u03c6-spiral coordinates","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/spiral","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_spiral","name":{"en":"tri spiral"},"qualifiedId":"gHashTag/trinity:tri/spiral","registry":{"aliases":[],"capabilities":[],"category":"math","examples":["tri spiral 10"],"jobTimeout":300,"mcpDisplayName":"Phi Spiral","mcpEnabled":true,"mcpName":"tri_spiral","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/spiral tri spiral \\u03c6-spiral coordinates \\u03c6-spiral coordinates","sha256":"d470286a2fffe65a4db790f6a3e2f869df079c8b225669a283becb0236677386","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/spiral.t27","summary":{"en":"\\u03c6-spiral coordinates","ru":"Золотая спираль: координаты точек."},"typecheckOk":true,"variant":"registry command spiral (cli_namespace core)","whenToUse":"\\u03c6-spiral coordinates","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; status, coordinator, agents, tasks, converge","name":""}],"collidesWith":null,"command":"tri swarm","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Sacred swarm intelligence","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": string, optional; status, coordinator, agents, tasks, converge"],"CAPABILITIES":[],"CATEGORY":"sacred","COLLIDES_WITH":"","COMMAND":"tri swarm","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/swarm","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Swarm Intelligence","MCP_ENABLED":true,"MCP_NAME":"tri_swarm","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/swarm","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"parse_command","ROUTE_NOTE":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command swarm (cli_namespace core)","WHEN_TO_USE":"Sacred swarm intelligence","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/swarm","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_swarm","name":{"en":"tri swarm"},"qualifiedId":"gHashTag/trinity:tri/swarm","registry":{"aliases":[],"capabilities":[],"category":"sacred","examples":[],"jobTimeout":300,"mcpDisplayName":"Swarm Intelligence","mcpEnabled":true,"mcpName":"tri_swarm","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"parse_command","note":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/swarm tri swarm sacred swarm intelligence sacred swarm intelligence","sha256":"7b4d45dc89ac177958625f180a55cc0564880cab1f2acb52e6123802096a272f","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/swarm.t27","summary":{"en":"Sacred swarm intelligence","ru":"Состояние роя агентов."},"typecheckOk":true,"variant":"registry command swarm (cli_namespace core)","whenToUse":"Sacred swarm intelligence","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, required; Path to file to test","name":""},{"about":"string, optional; Output test file path","name":""},{"about":"boolean, optional; Include coverage markers","name":""}],"collidesWith":"gHashTag/t27:tri/test","command":"tri test","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Generate comprehensive test suites","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": string, required; Path to file to test",": string, optional; Output test file path",": boolean, optional; Include coverage markers"],"CAPABILITIES":["filesystem"],"CATEGORY":"dev","COLLIDES_WITH":"gHashTag/t27:tri/test","COMMAND":"tri test","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri test src/vsa.zig","tri test src/math/commands.zig --output tests/math_test.zig","tri test src/crypto.zig --coverage"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/test","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Test Generator","MCP_ENABLED":true,"MCP_NAME":"tri_test","MODE":"job","NAMESPACE":"dev","QUALIFIED_ID":"gHashTag/trinity:tri/test","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"parse_command","ROUTE_NOTE":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","SCHEMA":2,"SIDE_EFFECTS":["filesystem"],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command test (cli_namespace dev)","WHEN_TO_USE":"Generate comprehensive test suites","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/test","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_test","name":{"en":"tri test"},"qualifiedId":"gHashTag/trinity:tri/test","registry":{"aliases":[],"capabilities":["filesystem"],"category":"dev","examples":["tri test src/vsa.zig","tri test src/math/commands.zig --output tests/math_test.zig","tri test src/crypto.zig --coverage"],"jobTimeout":300,"mcpDisplayName":"Test Generator","mcpEnabled":true,"mcpName":"tri_test","mode":"job","namespace":"dev","sideEffects":["filesystem"],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"parse_command","note":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/test tri test generate comprehensive test suites generate comprehensive test suites","sha256":"ac05a41e5d3f54a99466f848a89d6c13c12f300b3ff31994677cc9b4c429be34","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/test.t27","summary":{"en":"Generate comprehensive test suites","ru":"Запуск тестов Trinity."},"typecheckOk":true,"variant":"registry command test (cli_namespace dev)","whenToUse":"Generate comprehensive test suites","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri vsa","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Vector Symbolic Architecture operations","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["vector-symbolic"],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"science","COLLIDES_WITH":"","COMMAND":"tri vsa","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri vsa bind alice bob","tri vsa similarity cat dog","tri vsa memory show stats"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/vsa","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"VSA Operations","MCP_ENABLED":true,"MCP_NAME":"tri_vsa_bind","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/vsa","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command vsa (cli_namespace core)","WHEN_TO_USE":"Vector Symbolic Architecture operations","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/vsa","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_vsa","name":{"en":"tri vsa"},"qualifiedId":"gHashTag/trinity:tri/vsa","registry":{"aliases":["vector-symbolic"],"capabilities":[],"category":"science","examples":["tri vsa bind alice bob","tri vsa similarity cat dog","tri vsa memory show stats"],"jobTimeout":300,"mcpDisplayName":"VSA Operations","mcpEnabled":true,"mcpName":"tri_vsa_bind","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/vsa tri vsa vector symbolic architecture operations vector symbolic architecture operations","sha256":"90a98d73cbabf43baef032e5a8522a1e6aaf22c3ad5e89bcb4a1f4389d9698d3","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/vsa.t27","summary":{"en":"Vector Symbolic Architecture operations","ru":"VSA: связывание векторов."},"typecheckOk":true,"variant":"registry command vsa (cli_namespace core)","whenToUse":"Vector Symbolic Architecture operations","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; Wallet address","name":"
"}],"collidesWith":null,"command":"tri wallet","discarded":0,"entry":"","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Wallet management \\u2014 connect, balance, claim rewards","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":["
: string, optional; Wallet address"],"CAPABILITIES":[],"CATEGORY":"depin","COLLIDES_WITH":"","COMMAND":"tri wallet","ENABLED":true,"ENTRY":"","EXAMPLES":["tri wallet connect metamask","tri wallet balance","tri wallet claim 50.0"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/wallet","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Wallet Balance","MCP_ENABLED":true,"MCP_NAME":"tri_wallet_balance","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/wallet","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":false,"ROUTE_KIND":"none","ROUTE_NOTE":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri wallet` reaches no handler and its MCP tool has no CLI behind it","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command wallet (cli_namespace core)","WHEN_TO_USE":"Wallet management \\u2014 connect, balance, claim rewards","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/wallet","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_wallet","name":{"en":"tri wallet"},"qualifiedId":"gHashTag/trinity:tri/wallet","registry":{"aliases":[],"capabilities":[],"category":"depin","examples":["tri wallet connect metamask","tri wallet balance","tri wallet claim 50.0"],"jobTimeout":300,"mcpDisplayName":"Wallet Balance","mcpEnabled":true,"mcpName":"tri_wallet_balance","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"none","note":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri wallet` reaches no handler and its MCP tool has no CLI behind it","routed":false},"schema":2,"searchText":"ghashtag/trinity:tri/wallet tri wallet wallet management \\u2014 connect, balance, claim rewards wallet management \\u2014 connect, balance, claim rewards","sha256":"eb15c59465bc42b003a394b15261ba2da9101faba2459665e7ad9b3a8ca51f6a","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/wallet.t27","summary":{"en":"Wallet management \\u2014 connect, balance, claim rewards","ru":"Баланс кошелька DePIN."},"typecheckOk":true,"variant":"registry command wallet (cli_namespace core)","whenToUse":"Wallet management \\u2014 connect, balance, claim rewards","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".mcp.json entry; no tool list in this repository","agents":[],"config":".mcp.json","discarded":0,"env":["GITBUTLER_REPO"],"external":true,"family":"mcp","fields":{"ABOUT":"External GitButler MCP server launched as `but mcp`; the repository only registers it in .mcp.json.","ABOUT_SOURCE":".mcp.json entry; no tool list in this repository","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".mcp.json","ENABLED":true,"ENV":["GITBUTLER_REPO"],"EXTERNAL":true,"FAMILY":"mcp","ID":"mcp/gitbutler","KIND":"tool","LAUNCH":"but mcp","QUALIFIED_ID":"gHashTag/t27:mcp/gitbutler","REPO":"gHashTag/t27","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"gitbutler","SERVER_VERSION":"","SOURCE":".mcp.json","TOOLS":[],"TOOLS_ABOUT":[],"TOOLS_INPUTS":[],"TOOLS_NOTE":"Tool list lives in the external `but` binary, not in this repository; nothing is listed rather than guessed.","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/gitbutler","inSpecCorpus":true,"launch":"but mcp","links":{"config":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/.mcp.json","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/.mcp.json"},"messages":["no agent letter bound by a source","external package: tool list not in the repository"],"moduleName":"tool_mcp_gitbutler","name":{"en":"gitbutler"},"qualifiedId":"gHashTag/t27:mcp/gitbutler","repo":"gHashTag/t27","resources":[],"schema":2,"searchText":"mcp/gitbutler gitbutler external gitbutler mcp server launched as `but mcp`; the repository only registers it in .mcp.json.","server":"gitbutler","serverVersion":"","sha256":"488ff443b895b38f10748ab28238d7a9348819df4e53af1fa7adcc4bbacf3992","skills":[],"source":".mcp.json","specPath":"specs/tools/mcp/gitbutler.t27","summary":{"en":"External GitButler MCP server launched as `but mcp`; the repository only registers it in .mcp.json.","ru":"Внешний MCP-сервер GitButler, запускаемый как `but mcp`; репозиторий лишь регистрирует его в .mcp.json."},"tools":[],"toolsNote":"Tool list lives in the external `but` binary, not in this repository; nothing is listed rather than guessed.","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":"serverInfo.title of the initialize answer plus specs/automation/inngest-queen-scheduler.t27","agents":[{"letter":"T","ok":true}],"config":"","discarded":0,"env":["INNGEST_SIGNING_KEY"],"external":true,"family":"mcp","fields":{"ABOUT":"MCP face of the self-hosted Inngest server (Railway project 999) that runs the Queen's crons and skills as functions of the app t27-queen; lists apps and functions, reads runs and traces, invokes, reruns and cancels.","ABOUT_SOURCE":"serverInfo.title of the initialize answer plus specs/automation/inngest-queen-scheduler.t27","AGENTS":["T"],"AGENTS_NOTE":"specs/agents/t.t27 TOOLS names mcp/inngest-dev: the Queen (Tau) holds the scheduler; a bee reaches it through the Queen's brief, not by its own registration.","CONFIG":"","ENABLED":true,"ENV":["INNGEST_SIGNING_KEY"],"EXTERNAL":true,"FAMILY":"mcp","ID":"mcp/inngest-dev","KIND":"tool","LAUNCH":"claude mcp add --transport http inngest-dev https://inngestinngest-production-c468.up.railway.app/mcp","QUALIFIED_ID":"gHashTag/t27:mcp/inngest-dev","REPO":"gHashTag/t27","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"inngest-dev","SERVER_VERSION":"1.0.0","SOURCE":"tools/list of https://inngestinngest-production-c468.up.railway.app/mcp (2026-09-13)","TOOLS":["cancel_run","get_app","get_apps","get_event_runs","get_function","get_run","get_run_status","get_run_trace","grep_docs","health","invoke_function","invoke_function_sync","list_docs","list_function_runs","list_functions","list_runs","poll_run_status","read_doc","rerun","send_event"],"TOOLS_ABOUT":["Cancels an in-progress function run","Fetches details for a single app, including sync metadata and function count","Lists active apps in the authenticated environment. Set archived to true to list archived apps instead.","Lists function runs triggered by a specific event","Fetches function configuration and status details for a function within an app","Fetches the canonical run summary for a single function run","Deprecated compatibility tool retained for existing dev server integrations. Use get_run and get_run_trace for new integrations. Parameters:","Fetches the trace tree for a single function run","Search documentation using exact string matching (grep). Useful for finding specific API names, error codes, or identifiers. Parameters: pat","Returns the health status of the API service","Invokes a function, executing the function either asynchronously or synchronously based on the mode parameter in the request body","Deprecated compatibility tool retained for existing dev server integrations. Use invoke_function for the shared asynchronous Cloud and dev s","List all available documentation categories and their document counts. No parameters required.","Lists runs for one function in the authenticated environment","Lists function configuration and status details for an app","Lists runs in the authenticated environment, optionally filtered by app and function IDs","Deprecated compatibility tool retained for existing dev server integrations. Use get_run for new integrations. Poll multiple function runs u","Read the full content of a specific documentation file. Parameters: path (required string - the doc file path relative to docs directory)","Creates a new run using the original run's triggering event data","Deprecated compatibility tool retained for existing dev server integrations. Send an event to the Inngest dev server and return the event ID"],"TOOLS_INPUTS":["runId","appId","archived,cursor,limit","cursor,eventId,includeOutput,limit","appId,functionId","includeOutput,runId","runId","includeOutput,runId","pattern,limit","","appId,data,functionId,idempotencyKey","functionId,data,user,timeout","","appId,cursor,from,functionId,includeOutput,isDeferred,limit,order,status,timeField,until","appId,cursor,limit","appId,cursor,from,functionId,includeOutput,isDeferred,limit,order,status,timeField,until","runIds,timeout,pollInterval","path","fromStep,runId","name,data,user,eventIdSeed"],"TOOLS_NOTE":"Recorded from the live tools/list, not from source: the server is the upstream inngest binary, its source is not in this repository. Measured 2026-09-13 without a key: health, get_apps and list_runs answer REST API v2 returned HTTP 401: Authentication failed; list_docs and grep_docs answer (173 documents). The REST-backed tools need Authorization: Bearer on the MCP request.","TRANSPORT":"http","WITNESS":"help-output"},"health":"ok","id":"mcp/inngest-dev","inSpecCorpus":true,"launch":"claude mcp add --transport http inngest-dev https://inngestinngest-production-c468.up.railway.app/mcp","links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/tools/list of https://inngestinngest-production-c468.up.railway.app/mcp (2026-09-13)"},"messages":["external package: tool list not in the repository"],"moduleName":"tool_mcp_inngest_dev","name":{"en":"inngest-dev"},"qualifiedId":"gHashTag/t27:mcp/inngest-dev","repo":"gHashTag/t27","resources":[],"schema":2,"searchText":"mcp/inngest-dev inngest-dev mcp face of the self-hosted inngest server (railway project 999) that runs the queen's crons and skills as functions of the app t27-queen; lists apps and functions, reads runs and traces, invokes, reruns and cancels. cancel_run cancels an in-progress function run get_app fetches details for a single app, including sync metadata and function count get_apps lists active apps in the authenticated environment. set archived to true to list archived apps instead. get_event_runs lists function runs triggered by a specific event get_function fetches function configuration and status details for a function within an app get_run fetches the canonical run summary for a single function run get_run_status deprecated compatibility tool retained for existing dev server integrations. use get_run and get_run_trace for new integrations. parameters: get_run_trace fetches the trace tree for a single function run grep_docs search documentation using exact string matching (grep). useful for finding specific api names, error codes, or identifiers. parameters: pat health returns the health status of the api service invoke_function invokes a function, executing the function either asynchronously or synchronously based on the mode parameter in the request body invoke_function_sync deprecated compatibility tool retained for existing dev server integrations. use invoke_function for the shared asynchronous cloud and dev s list_docs list all available documentation categories and their document counts. no parameters required. list_function_runs lists runs for one function in the authenticated environment list_functions lists function configuration and status details for an app list_runs lists runs in the authenticated environment, optionally filtered by app and function ids poll_run_status deprecated compatibility tool retained for existing dev server integrations. use get_run for new integrations. poll multiple function runs u read_doc read the full content of a specific documentation file. parameters: path (required string - the doc file path relative to docs directory) rerun creates a new run using the original run's triggering event data send_event deprecated compatibility tool retained for existing dev server integrations. send an event to the inngest dev server and return the event id t","server":"inngest-dev","serverVersion":"1.0.0","sha256":"a0aad75ce804fcc056130bab7bd9b40af7145467cb0f0b93ed1147a2c6b89f8e","skills":[],"source":"tools/list of https://inngestinngest-production-c468.up.railway.app/mcp (2026-09-13)","specPath":"specs/tools/mcp/inngest-dev.t27","summary":{"en":"MCP face of the self-hosted Inngest server (Railway project 999) that runs the Queen's crons and skills as functions of the app t27-queen; lists apps and functions, reads runs and traces, invokes, reruns and cancels.","ru":"MCP-лицо самостоятельно размещённого сервера Inngest (проект Railway 999), который исполняет кроны и скиллы Королевы как функции приложения t27-queen; перечисляет приложения и функции, читает запуски и трассы, запускает, перезапускает и отменяет."},"tools":[{"about":"Cancels an in-progress function run","inputs":["runId"],"name":"cancel_run"},{"about":"Fetches details for a single app, including sync metadata and function count","inputs":["appId"],"name":"get_app"},{"about":"Lists active apps in the authenticated environment. Set archived to true to list archived apps instead.","inputs":["archived","cursor","limit"],"name":"get_apps"},{"about":"Lists function runs triggered by a specific event","inputs":["cursor","eventId","includeOutput","limit"],"name":"get_event_runs"},{"about":"Fetches function configuration and status details for a function within an app","inputs":["appId","functionId"],"name":"get_function"},{"about":"Fetches the canonical run summary for a single function run","inputs":["includeOutput","runId"],"name":"get_run"},{"about":"Deprecated compatibility tool retained for existing dev server integrations. Use get_run and get_run_trace for new integrations. Parameters:","inputs":["runId"],"name":"get_run_status"},{"about":"Fetches the trace tree for a single function run","inputs":["includeOutput","runId"],"name":"get_run_trace"},{"about":"Search documentation using exact string matching (grep). Useful for finding specific API names, error codes, or identifiers. Parameters: pat","inputs":["pattern","limit"],"name":"grep_docs"},{"about":"Returns the health status of the API service","inputs":[],"name":"health"},{"about":"Invokes a function, executing the function either asynchronously or synchronously based on the mode parameter in the request body","inputs":["appId","data","functionId","idempotencyKey"],"name":"invoke_function"},{"about":"Deprecated compatibility tool retained for existing dev server integrations. Use invoke_function for the shared asynchronous Cloud and dev s","inputs":["functionId","data","user","timeout"],"name":"invoke_function_sync"},{"about":"List all available documentation categories and their document counts. No parameters required.","inputs":[],"name":"list_docs"},{"about":"Lists runs for one function in the authenticated environment","inputs":["appId","cursor","from","functionId","includeOutput","isDeferred","limit","order","status","timeField","until"],"name":"list_function_runs"},{"about":"Lists function configuration and status details for an app","inputs":["appId","cursor","limit"],"name":"list_functions"},{"about":"Lists runs in the authenticated environment, optionally filtered by app and function IDs","inputs":["appId","cursor","from","functionId","includeOutput","isDeferred","limit","order","status","timeField","until"],"name":"list_runs"},{"about":"Deprecated compatibility tool retained for existing dev server integrations. Use get_run for new integrations. Poll multiple function runs u","inputs":["runIds","timeout","pollInterval"],"name":"poll_run_status"},{"about":"Read the full content of a specific documentation file. Parameters: path (required string - the doc file path relative to docs directory)","inputs":["path"],"name":"read_doc"},{"about":"Creates a new run using the original run's triggering event data","inputs":["fromStep","runId"],"name":"rerun"},{"about":"Deprecated compatibility tool retained for existing dev server integrations. Send an event to the Inngest dev server and return the event ID","inputs":["name","data","user","eventIdSeed"],"name":"send_event"}],"toolsNote":"Recorded from the live tools/list, not from source: the server is the upstream inngest binary, its source is not in this repository. Measured 2026-09-13 without a key: health, get_apps and list_runs answer REST API v2 returned HTTP 401: Authentication failed; list_docs and grep_docs answer (173 documents). The REST-backed tools need Authorization: Bearer on the MCP request.","transport":"http","typecheckOk":true,"witness":"help-output"},{"aboutSource":"derived from the tool descriptions in tools/mcp/needle_mcp/server.zig","agents":[],"config":".claude-plugin/.mcp.json","discarded":0,"env":[],"external":false,"family":"mcp","fields":{"ABOUT":"Zig MCP server for AST-aware code editing (needle): structural search and replace, quality gates, preview.","ABOUT_SOURCE":"derived from the tool descriptions in tools/mcp/needle_mcp/server.zig","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".claude-plugin/.mcp.json","ENABLED":true,"ENV":[],"EXTERNAL":false,"FAMILY":"mcp","ID":"mcp/needle","KIND":"tool","LAUNCH":"/zig-out/bin/needle-mcp","QUALIFIED_ID":"gHashTag/trinity:mcp/needle","REPO":"gHashTag/trinity","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"needle","SERVER_VERSION":"","SOURCE":"tools/mcp/needle_mcp/server.zig","TOOLS":["needle_structural_replace","needle_search","needle_quality_gates","needle_preview","needle_batch_edit","needle_autonomous_refactor"],"TOOLS_ABOUT":["Apply AST-aware code edit with Tier 0->1 fallback and safety gates","Search codebase for pattern matches with confidence scores","Run quality gates: parse check, AST analysis, violation detection","Preview edit diff without applying changes","Apply multiple edits in a single operation","Execute Ralph Loop: intent-aware refactoring using semantic search + HNSW + VSA validation"],"TOOLS_INPUTS":["","","","","",""],"TOOLS_NOTE":"Input schema keys were not extracted for this server (schemas are inline Zig literals); names and descriptions only. The .claude-plugin/.mcp.json command is an absolute path into a developer checkout; its home prefix is written as here (no home paths in specs).","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/needle","inSpecCorpus":true,"launch":"/zig-out/bin/needle-mcp","links":{"config":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.claude-plugin/.mcp.json","pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/tools/mcp/needle_mcp/server.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_mcp_needle","name":{"en":"needle"},"qualifiedId":"gHashTag/trinity:mcp/needle","repo":"gHashTag/trinity","resources":[],"schema":2,"searchText":"mcp/needle needle zig mcp server for ast-aware code editing (needle): structural search and replace, quality gates, preview. needle_structural_replace apply ast-aware code edit with tier 0->1 fallback and safety gates needle_search search codebase for pattern matches with confidence scores needle_quality_gates run quality gates: parse check, ast analysis, violation detection needle_preview preview edit diff without applying changes needle_batch_edit apply multiple edits in a single operation needle_autonomous_refactor execute ralph loop: intent-aware refactoring using semantic search + hnsw + vsa validation","server":"needle","serverVersion":"","sha256":"e2bff492844bb71720dc0caa8615e6025c5bcbf68978e17da5e89ef661adb563","skills":[],"source":"tools/mcp/needle_mcp/server.zig","specPath":"specs/tools/mcp/needle.t27","summary":{"en":"Zig MCP server for AST-aware code editing (needle): structural search and replace, quality gates, preview.","ru":"MCP-сервер на Zig для AST-осознанного редактирования кода (needle): структурный поиск и замена, гейты качества, предпросмотр."},"tools":[{"about":"Apply AST-aware code edit with Tier 0->1 fallback and safety gates","inputs":[],"name":"needle_structural_replace"},{"about":"Search codebase for pattern matches with confidence scores","inputs":[],"name":"needle_search"},{"about":"Run quality gates: parse check, AST analysis, violation detection","inputs":[],"name":"needle_quality_gates"},{"about":"Preview edit diff without applying changes","inputs":[],"name":"needle_preview"},{"about":"Apply multiple edits in a single operation","inputs":[],"name":"needle_batch_edit"},{"about":"Execute Ralph Loop: intent-aware refactoring using semantic search + HNSW + VSA validation","inputs":[],"name":"needle_autonomous_refactor"}],"toolsNote":"Input schema keys were not extracted for this server (schemas are inline Zig literals); names and descriptions only. The .claude-plugin/.mcp.json command is an absolute path into a developer checkout; its home prefix is written as here (no home paths in specs).","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":".mcp.json entry; no tool list in this repository","agents":[],"config":".mcp.json","discarded":0,"env":["NEON_API_KEY"],"external":true,"family":"mcp","fields":{"ABOUT":"External MCP server `neon` registered in .mcp.json; launched as `npx -y @neondatabase/mcp-server-neon start`.","ABOUT_SOURCE":".mcp.json entry; no tool list in this repository","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".mcp.json","ENABLED":true,"ENV":["NEON_API_KEY"],"EXTERNAL":true,"FAMILY":"mcp","ID":"mcp/neon","KIND":"tool","LAUNCH":"npx -y @neondatabase/mcp-server-neon start","QUALIFIED_ID":"gHashTag/trinity:mcp/neon","REPO":"gHashTag/trinity","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"neon","SERVER_VERSION":"","SOURCE":".mcp.json","TOOLS":[],"TOOLS_ABOUT":[],"TOOLS_INPUTS":[],"TOOLS_NOTE":"Tool list lives in the external npm package, not in this repository; nothing is listed rather than guessed.","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/neon","inSpecCorpus":true,"launch":"npx -y @neondatabase/mcp-server-neon start","links":{"config":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.mcp.json","pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.mcp.json"},"messages":["no agent letter bound by a source","external package: tool list not in the repository"],"moduleName":"tool_mcp_neon","name":{"en":"neon"},"qualifiedId":"gHashTag/trinity:mcp/neon","repo":"gHashTag/trinity","resources":[],"schema":2,"searchText":"mcp/neon neon external mcp server `neon` registered in .mcp.json; launched as `npx -y @neondatabase/mcp-server-neon start`.","server":"neon","serverVersion":"","sha256":"7bf7cec4562d12aa0f4d9928b70cec5fd4db6ed6f35b52d2a9286f0f932eeb24","skills":[],"source":".mcp.json","specPath":"specs/tools/mcp/neon.t27","summary":{"en":"External MCP server `neon` registered in .mcp.json; launched as `npx -y @neondatabase/mcp-server-neon start`.","ru":"Внешний MCP-сервер `neon`, зарегистрированный в .mcp.json; запускается как `npx -y @neondatabase/mcp-server-neon start`."},"tools":[],"toolsNote":"Tool list lives in the external npm package, not in this repository; nothing is listed rather than guessed.","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":".claude/mcp.json entry; no tool list in this repository","agents":[],"config":".claude/mcp.json","discarded":0,"env":["NOTEBOOKLM_STORAGE_STATE"],"external":true,"family":"mcp","fields":{"ABOUT":"External MCP server `notebooklm` registered in .claude/mcp.json; launched as `notebooklm-mcp`.","ABOUT_SOURCE":".claude/mcp.json entry; no tool list in this repository","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".claude/mcp.json","ENABLED":true,"ENV":["NOTEBOOKLM_STORAGE_STATE"],"EXTERNAL":true,"FAMILY":"mcp","ID":"mcp/notebooklm","KIND":"tool","LAUNCH":"notebooklm-mcp --notebook-id auto","QUALIFIED_ID":"gHashTag/t27:mcp/notebooklm","REPO":"gHashTag/t27","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"notebooklm","SERVER_VERSION":"","SOURCE":".claude/mcp.json","TOOLS":[],"TOOLS_ABOUT":[],"TOOLS_INPUTS":[],"TOOLS_NOTE":"Tool list lives in the external package, not in this repository.","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/notebooklm","inSpecCorpus":true,"launch":"notebooklm-mcp --notebook-id auto","links":{"config":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/.claude/mcp.json","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/.claude/mcp.json"},"messages":["no agent letter bound by a source","external package: tool list not in the repository"],"moduleName":"tool_mcp_notebooklm","name":{"en":"notebooklm"},"qualifiedId":"gHashTag/t27:mcp/notebooklm","repo":"gHashTag/t27","resources":[],"schema":2,"searchText":"mcp/notebooklm notebooklm external mcp server `notebooklm` registered in .claude/mcp.json; launched as `notebooklm-mcp`.","server":"notebooklm","serverVersion":"","sha256":"93548d18109d7be76e3c43ea298c9db0a335044e2bbb820d23606859c9939bdb","skills":[],"source":".claude/mcp.json","specPath":"specs/tools/mcp/notebooklm.t27","summary":{"en":"External MCP server `notebooklm` registered in .claude/mcp.json; launched as `notebooklm-mcp`.","ru":"Внешний MCP-сервер `notebooklm`, зарегистрированный в .claude/mcp.json; запускается как `notebooklm-mcp`."},"tools":[],"toolsNote":"Tool list lives in the external package, not in this repository.","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":".mcp.json entry; no tool list in this repository","agents":[],"config":".mcp.json","discarded":0,"env":[],"external":true,"family":"mcp","fields":{"ABOUT":"External MCP server `railway-mcp-server` registered in .mcp.json; launched as `npx -y @railway/mcp-server`.","ABOUT_SOURCE":".mcp.json entry; no tool list in this repository","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".mcp.json","ENABLED":true,"ENV":[],"EXTERNAL":true,"FAMILY":"mcp","ID":"mcp/railway-mcp-server","KIND":"tool","LAUNCH":"npx -y @railway/mcp-server","QUALIFIED_ID":"gHashTag/trinity:mcp/railway-mcp-server","REPO":"gHashTag/trinity","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"railway-mcp-server","SERVER_VERSION":"","SOURCE":".mcp.json","TOOLS":[],"TOOLS_ABOUT":[],"TOOLS_INPUTS":[],"TOOLS_NOTE":"Tool list lives in the external npm package, not in this repository; nothing is listed rather than guessed.","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/railway-mcp-server","inSpecCorpus":true,"launch":"npx -y @railway/mcp-server","links":{"config":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.mcp.json","pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.mcp.json"},"messages":["no agent letter bound by a source","external package: tool list not in the repository"],"moduleName":"tool_mcp_railway_mcp_server","name":{"en":"railway-mcp-server"},"qualifiedId":"gHashTag/trinity:mcp/railway-mcp-server","repo":"gHashTag/trinity","resources":[],"schema":2,"searchText":"mcp/railway-mcp-server railway-mcp-server external mcp server `railway-mcp-server` registered in .mcp.json; launched as `npx -y @railway/mcp-server`.","server":"railway-mcp-server","serverVersion":"","sha256":"e0af68eb26c5b4f8f5ac5e45aa859a28337cce715e90122020fed881b81a9afd","skills":[],"source":".mcp.json","specPath":"specs/tools/mcp/railway-mcp-server.t27","summary":{"en":"External MCP server `railway-mcp-server` registered in .mcp.json; launched as `npx -y @railway/mcp-server`.","ru":"Внешний MCP-сервер `railway-mcp-server`, зарегистрированный в .mcp.json; запускается как `npx -y @railway/mcp-server`."},"tools":[],"toolsNote":"Tool list lives in the external npm package, not in this repository; nothing is listed rather than guessed.","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":"derived from the tool and resource descriptions in scripts/mcp-traceability-server.js","agents":[],"config":".mcp.json","discarded":0,"env":["PROJECT_ROOT","ENFORCE_L1"],"external":false,"family":"mcp","fields":{"ABOUT":"MCP server over stdio that checks L1 TRACEABILITY (Closes #N) in commit messages and PR descriptions, generates compliant commit messages, validates branch names and serves the PHI LOOP stacked-branch template; resources expose the constitution and the L1 audit.","ABOUT_SOURCE":"derived from the tool and resource descriptions in scripts/mcp-traceability-server.js","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".mcp.json","ENABLED":true,"ENV":["PROJECT_ROOT","ENFORCE_L1"],"EXTERNAL":false,"FAMILY":"mcp","ID":"mcp/t27-traceability","KIND":"tool","LAUNCH":"node scripts/mcp-traceability-server.js","QUALIFIED_ID":"gHashTag/t27:mcp/t27-traceability","REPO":"gHashTag/t27","RESOURCES":["docs/T27-CONSTITUTION.md","docs/l1-traceability-audit.md"],"RESOURCES_ABOUT":["Constitutional laws including L1 TRACEABILITY","Audit report for L1 TRACEABILITY compliance"],"SCHEMA":2,"SERVER":"t27-traceability","SERVER_VERSION":"1.0.0","SOURCE":"scripts/mcp-traceability-server.js","TOOLS":["check_traceability","generate_commit_message","validate_branch_name","get_phi_loop_template"],"TOOLS_ABOUT":["Check if a commit message or PR description complies with L1 TRACEABILITY (Closes #N required)","Generate a compliant commit message for t27 including required L1 TRACEABILITY reference","Validate branch name follows t27 naming conventions","Get PHI LOOP stacked branch template for ring development"],"TOOLS_INPUTS":["message","type,scope,description,issueNumber,invariantLaws,body","branchName","ringNumber"],"TOOLS_NOTE":"","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/t27-traceability","inSpecCorpus":true,"launch":"node scripts/mcp-traceability-server.js","links":{"config":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/.mcp.json","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/scripts/mcp-traceability-server.js"},"messages":["no agent letter bound by a source"],"moduleName":"tool_mcp_t27_traceability","name":{"en":"t27-traceability"},"qualifiedId":"gHashTag/t27:mcp/t27-traceability","repo":"gHashTag/t27","resources":[{"about":"Constitutional laws including L1 TRACEABILITY","path":"docs/T27-CONSTITUTION.md"},{"about":"Audit report for L1 TRACEABILITY compliance","path":"docs/l1-traceability-audit.md"}],"schema":2,"searchText":"mcp/t27-traceability t27-traceability mcp server over stdio that checks l1 traceability (closes #n) in commit messages and pr descriptions, generates compliant commit messages, validates branch names and serves the phi loop stacked-branch template; resources expose the constitution and the l1 audit. check_traceability check if a commit message or pr description complies with l1 traceability (closes #n required) generate_commit_message generate a compliant commit message for t27 including required l1 traceability reference validate_branch_name validate branch name follows t27 naming conventions get_phi_loop_template get phi loop stacked branch template for ring development","server":"t27-traceability","serverVersion":"1.0.0","sha256":"2496a572dc04d4f7e615f0d235fd6cda542d1a10caf6abc91ee4ef3a3e36da1e","skills":[],"source":"scripts/mcp-traceability-server.js","specPath":"specs/tools/mcp/t27-traceability.t27","summary":{"en":"MCP server over stdio that checks L1 TRACEABILITY (Closes #N) in commit messages and PR descriptions, generates compliant commit messages, validates branch names and serves the PHI LOOP stacked-branch template; resources expose the constitution and the L1 audit.","ru":"MCP-сервер по stdio, проверяющий L1 TRACEABILITY (Closes #N) в сообщениях коммитов и описаниях PR, генерирующий соответствующие сообщения коммитов, валидирующий имена веток и отдающий шаблон стековых веток PHI LOOP; ресурсы открывают конституцию и аудит L1."},"tools":[{"about":"Check if a commit message or PR description complies with L1 TRACEABILITY (Closes #N required)","inputs":["message"],"name":"check_traceability"},{"about":"Generate a compliant commit message for t27 including required L1 TRACEABILITY reference","inputs":["type","scope","description","issueNumber","invariantLaws","body"],"name":"generate_commit_message"},{"about":"Validate branch name follows t27 naming conventions","inputs":["branchName"],"name":"validate_branch_name"},{"about":"Get PHI LOOP stacked branch template for ring development","inputs":["ringNumber"],"name":"get_phi_loop_template"}],"toolsNote":"","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":"derived from the tool descriptions in cli/tri-mcp/src/main.rs build_tools_list","agents":[],"config":"","discarded":0,"env":[],"external":false,"family":"mcp","fields":{"ABOUT":"Rust MCP server exposing the PHI LOOP tri commands as tools: status, skill begin/end, cell checkpoint/seal, gen, test, verdict, experience save, health.","ABOUT_SOURCE":"derived from the tool descriptions in cli/tri-mcp/src/main.rs build_tools_list","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":"","ENABLED":true,"ENV":[],"EXTERNAL":false,"FAMILY":"mcp","ID":"mcp/tri-mcp","KIND":"tool","LAUNCH":"cargo run -q -p tri-mcp (binary tri-mcp; JSON-RPC over stdio)","QUALIFIED_ID":"gHashTag/t27:mcp/tri-mcp","REPO":"gHashTag/t27","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"tri-mcp","SERVER_VERSION":"0.1.0","SOURCE":"cli/tri-mcp/src/main.rs","TOOLS":["tri_status","tri_skill_begin","tri_skill_end","tri_cell_checkpoint","tri_cell_seal","tri_gen","tri_test","tri_verdict","tri_experience_save","tri_health"],"TOOLS_ABOUT":["Returns PHI LOOP status including active skill, cell, issue binding, and uncommitted changes.","Begins a new PHI LOOP skill session bound to an issue.","Ends the active PHI LOOP skill session.","Records a checkpoint step in the active cell.","Seals the active cell by computing a SHA-256 hash of its checkpoint history.","Generates backends from a .t27 spec file using t27c.","Runs tests for a .t27 spec file using t27c.","Checks for toxic regressions by analyzing swarm health metrics.","Saves an experience episode to the akashic log.","Returns queen and swarm health status from .trinity state."],"TOOLS_INPUTS":["","issue,description","","step","","spec_path","spec_path","","episode_type,summary,ring",""],"TOOLS_NOTE":"Not registered in .mcp.json at this commit; the server exists as the tri-mcp crate.","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/tri-mcp","inSpecCorpus":true,"launch":"cargo run -q -p tri-mcp (binary tri-mcp; JSON-RPC over stdio)","links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri-mcp/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_mcp_tri_mcp","name":{"en":"tri-mcp"},"qualifiedId":"gHashTag/t27:mcp/tri-mcp","repo":"gHashTag/t27","resources":[],"schema":2,"searchText":"mcp/tri-mcp tri-mcp rust mcp server exposing the phi loop tri commands as tools: status, skill begin/end, cell checkpoint/seal, gen, test, verdict, experience save, health. tri_status returns phi loop status including active skill, cell, issue binding, and uncommitted changes. tri_skill_begin begins a new phi loop skill session bound to an issue. tri_skill_end ends the active phi loop skill session. tri_cell_checkpoint records a checkpoint step in the active cell. tri_cell_seal seals the active cell by computing a sha-256 hash of its checkpoint history. tri_gen generates backends from a .t27 spec file using t27c. tri_test runs tests for a .t27 spec file using t27c. tri_verdict checks for toxic regressions by analyzing swarm health metrics. tri_experience_save saves an experience episode to the akashic log. tri_health returns queen and swarm health status from .trinity state.","server":"tri-mcp","serverVersion":"0.1.0","sha256":"ae32961a90fd40b66ecab5b4d20fea7d20293038c00c728d191d211a9576986e","skills":[],"source":"cli/tri-mcp/src/main.rs","specPath":"specs/tools/mcp/tri-mcp.t27","summary":{"en":"Rust MCP server exposing the PHI LOOP tri commands as tools: status, skill begin/end, cell checkpoint/seal, gen, test, verdict, experience save, health.","ru":"MCP-сервер на Rust, открывающий команды tri PHI LOOP как инструменты: status, skill begin/end, cell checkpoint/seal, gen, test, verdict, experience save, health."},"tools":[{"about":"Returns PHI LOOP status including active skill, cell, issue binding, and uncommitted changes.","inputs":[],"name":"tri_status"},{"about":"Begins a new PHI LOOP skill session bound to an issue.","inputs":["issue","description"],"name":"tri_skill_begin"},{"about":"Ends the active PHI LOOP skill session.","inputs":[],"name":"tri_skill_end"},{"about":"Records a checkpoint step in the active cell.","inputs":["step"],"name":"tri_cell_checkpoint"},{"about":"Seals the active cell by computing a SHA-256 hash of its checkpoint history.","inputs":[],"name":"tri_cell_seal"},{"about":"Generates backends from a .t27 spec file using t27c.","inputs":["spec_path"],"name":"tri_gen"},{"about":"Runs tests for a .t27 spec file using t27c.","inputs":["spec_path"],"name":"tri_test"},{"about":"Checks for toxic regressions by analyzing swarm health metrics.","inputs":[],"name":"tri_verdict"},{"about":"Saves an experience episode to the akashic log.","inputs":["episode_type","summary","ring"],"name":"tri_experience_save"},{"about":"Returns queen and swarm health status from .trinity state.","inputs":[],"name":"tri_health"}],"toolsNote":"Not registered in .mcp.json at this commit; the server exists as the tri-mcp crate.","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":"manifest.json description","agents":[],"config":".claude/mcp/tri-ssot/manifest.json","discarded":0,"env":[],"external":false,"family":"mcp","fields":{"ABOUT":"SSOT Integration for t27: GitHub Issues + PRs + Documentation -> NotebookLM","ABOUT_SOURCE":"manifest.json description","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".claude/mcp/tri-ssot/manifest.json","ENABLED":true,"ENV":[],"EXTERNAL":false,"FAMILY":"mcp","ID":"mcp/tri-ssot","KIND":"tool","LAUNCH":"python3 -m contrib.backend.github.mcp_server","QUALIFIED_ID":"gHashTag/t27:mcp/tri-ssot","REPO":"gHashTag/t27","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"tri-ssot","SERVER_VERSION":"1.0.0","SOURCE":".claude/mcp/tri-ssot/manifest.json","TOOLS":["tri_issue","tri_pr","tri_docs","tri_sync","tri_search"],"TOOLS_ABOUT":["GitHub Issue management: create, update, list, close","GitHub PR management: create, merge, close, get status","Documentation management: upload to NotebookLM, sync, query","Unified sync: sync all entities (issues, prs, docs) with NotebookLM","Unified search across GitHub Issues, PRs, NotebookLM docs"],"TOOLS_INPUTS":["action,title,body,labels,issue_id,state","action,title,body,pr_id,issue_id","action,file_path,title","scope","query"],"TOOLS_NOTE":"The manifest names python3 -m contrib.backend.github.mcp_server, but the t27 tree at this commit has no contrib/backend/github/mcp_server.py (git ls-tree); the tool list is taken from the manifest alone (declared, not executed).","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/tri-ssot","inSpecCorpus":true,"launch":"python3 -m contrib.backend.github.mcp_server","links":{"config":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/.claude/mcp/tri-ssot/manifest.json","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/.claude/mcp/tri-ssot/manifest.json"},"messages":["no agent letter bound by a source"],"moduleName":"tool_mcp_tri_ssot","name":{"en":"tri-ssot"},"qualifiedId":"gHashTag/t27:mcp/tri-ssot","repo":"gHashTag/t27","resources":[],"schema":2,"searchText":"mcp/tri-ssot tri-ssot ssot integration for t27: github issues + prs + documentation -> notebooklm tri_issue github issue management: create, update, list, close tri_pr github pr management: create, merge, close, get status tri_docs documentation management: upload to notebooklm, sync, query tri_sync unified sync: sync all entities (issues, prs, docs) with notebooklm tri_search unified search across github issues, prs, notebooklm docs","server":"tri-ssot","serverVersion":"1.0.0","sha256":"c5f2218c27d16037026e392844aee9dff023506272d7eb2ecae5c323be2994de","skills":[],"source":".claude/mcp/tri-ssot/manifest.json","specPath":"specs/tools/mcp/tri-ssot.t27","summary":{"en":"SSOT Integration for t27: GitHub Issues + PRs + Documentation -> NotebookLM","ru":"Интеграция SSOT для t27: GitHub Issues + PR + документация -> NotebookLM."},"tools":[{"about":"GitHub Issue management: create, update, list, close","inputs":["action","title","body","labels","issue_id","state"],"name":"tri_issue"},{"about":"GitHub PR management: create, merge, close, get status","inputs":["action","title","body","pr_id","issue_id"],"name":"tri_pr"},{"about":"Documentation management: upload to NotebookLM, sync, query","inputs":["action","file_path","title"],"name":"tri_docs"},{"about":"Unified sync: sync all entities (issues, prs, docs) with NotebookLM","inputs":["scope"],"name":"tri_sync"},{"about":"Unified search across GitHub Issues, PRs, NotebookLM docs","inputs":["query"],"name":"tri_search"}],"toolsNote":"The manifest names python3 -m contrib.backend.github.mcp_server, but the t27 tree at this commit has no contrib/backend/github/mcp_server.py (git ls-tree); the tool list is taken from the manifest alone (declared, not executed).","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":"derived from tools/mcp/trinity_mcp/server.zig writeToolsList and .claude/rules/mcp-servers.md","agents":[],"config":".mcp.json","discarded":0,"env":["TRINITY_MCP_PORT"],"external":false,"family":"mcp","fields":{"ABOUT":"Zig MCP server (JSON-RPC over stdio, Content-Length framing) that exposes the tri pipeline, Golden Chain links, swarm, cloud/farm, FPGA, doctor, job, issue, deploy, experience, oracle and needle tools; the static list in writeToolsList plus cell-generated tools loaded at runtime.","ABOUT_SOURCE":"derived from tools/mcp/trinity_mcp/server.zig writeToolsList and .claude/rules/mcp-servers.md","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".mcp.json","ENABLED":true,"ENV":["TRINITY_MCP_PORT"],"EXTERNAL":false,"FAMILY":"mcp","ID":"mcp/trinity","KIND":"tool","LAUNCH":"/data/trinity/zig-out/bin/trinity-mcp","QUALIFIED_ID":"gHashTag/trinity:mcp/trinity","REPO":"gHashTag/trinity","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"trinity","SERVER_VERSION":"","SOURCE":"tools/mcp/trinity_mcp/server.zig","TOOLS":["tri_execute","tri_code","tri_gen","tri_spec_create","tri_decompose","tri_plan","tri_verify","tri_bench","tri_verdict","tri_test","tri_test_run","tri_fix","tri_explain","tri_refactor","tri_doc","tri_reason","tri_status","tri_diff","tri_log","tri_commit","needle_structural_replace","needle_search","needle_quality_gates","needle_preview","needle_batch_edit","needle_graph_build","needle_graph_refactor","needle_graph_extract","needle_graph_visualize","needle_graph_affected","needle_graph_vsa_search","needle_semantic_replace","needle_vsa_index","needle_safe_cross_refactor","needle_vsa_rule_apply","needle_cross_preview","needle_rollback_all","needle_omega_init","needle_omega_analyze","needle_omega_execute","needle_omega_detect","needle_omega_status","needle_safety_gates_run","needle_atomic_refactor","needle_parse_check","needle_compile_check","tri_constants","tri_phi","tri_fib","tri_lucas","tri_spiral","tri_chat","tri_loop_decision","tri_pipeline","tri_omega_awaken","tri_os_boot","tri_tvc_demo","tri_tvc_stats","tri_chem_periodic","tri_chem_element","tri_chem_mass","tri_chem_moles","tri_bio_dna","tri_bio_codon","tri_bio_protein","tri_quantum_constants","tri_quantum_states","tri_bell_states","tri_formula","swarm_status","swarm_agents","swarm_register","swarm_heartbeat","swarm_task_get","swarm_task_add","swarm_task_cancel","swarm_tasks","swarm_pause","swarm_resume","swarm_assign","swarm_github_sync","swarm_github_on_start","swarm_github_on_complete","swarm_github_on_fail","oracle_start","oracle_stop","oracle_status","tri_train_status","tri_train_diagnose","tri_train_loss_curve","tri_train_recommend","tri_train_checkpoint","cloud_spawn","cloud_kill","cloud_list","cloud_status","cloud_logs","cloud_spawn_all","cloud_cleanup","cloud_history","cloud_api_check","cloud_redeploy","cloud_diagnose","cloud_issue_create","cloud_farm","cloud_farm_sync","cloud_farm_capacity","cloud_farm_rebalance","farm_evolve_health","farm_evolve_notify","farm_evolve_watch","cloud_train","cloud_train_batch","chain_cache","chain_baseline","chain_metrics","chain_patterns","chain_tree","chain_check_spec","chain_spec","chain_codegen","chain_analyze","chain_test","chain_bench","chain_fix","chain_bench_ext","chain_bench_theory","chain_delta","chain_optimize","chain_docs","chain_verdict","chain_git","chain_loop","chain_deploy","chain_evolve","chain_self_ref","chain_fpga_test","chain_research","chain_lint_spec","chain_list","cloud_decompose","tri_notify","fpga_uart_scan","fpga_uart_ping","fpga_uart_send","doctor_status","doctor_scan","doctor_report","doctor_plan","doctor_heal","job_start","job_status","job_logs","job_list","job_cancel","job_artifacts","issue_list","issue_view","issue_create","issue_comment","issue_close","issue_assign","issue_decompose","deploy_status","deploy_logs","deploy_vars","deploy_start","deploy_stop","experience_save","experience_recall","experience_mistakes","patent_status","patent_analysis","depin_status","depin_nodes","depin_fitness","research_query","experiment_list","experiment_compare","chimera_run","ouroboros_status","ouroboros_run","self_test","self_health","context_info","context_load","faculty_status","mu_status","mu_patterns","zenodo_status","tri_analyze","tri_clean","tri_fmt","tri_stats","tri_lint","tri_search","tri_metrics","tri_trace","tri_eval","farm_status","farm_idle","farm_recycle","farm_fill","farm_accounts","farm_wave_spawn","fpga_synth","fpga_status","fpga_build","fpga_verify","fpga_flash"],"TOOLS_ABOUT":["Universal executor -- run ANY tri command with automatic needle check","Generate code with typing effect","Compile VIBEE spec to Zig/Verilog","Create new .tri specification template","Break task into sub-tasks (Golden Chain Link 4)","Generate implementation plan (Golden Chain Link 5)","Run tests + benchmarks (Links 7-11)","Run performance benchmarks","Generate toxic verdict (Link 14)","Generate tests for code","Run specific test suite","Detect and fix bugs","Explain code or concept","Suggest refactoring","Generate documentation","Chain-of-thought reasoning","Git status --short","Git diff","Git log --oneline","Git add -A && commit","AST-aware code edit with Tier 0->1 fallback","Search codebase for pattern matches","Run quality gates: parse check, AST analysis","Preview edit diff without applying","Apply multiple edits in one operation","Build complete call graph with VSA embeddings for project","Rename symbol across entire project with semantic awareness","Extract function/method from code block","Generate graph visualization (DOT/JSON) with VSA clustering","Find all files affected by symbol change (with semantic impact)","Search for semantically similar symbols by code or intent","Replace code by semantic meaning (not just pattern)","Build semantic VSA index for codebase","Safe cross-file semantic refactor with VSA rules and 100% rollback","Apply VSA rules to validate proposed refactor","Preview cross-file refactor impact with safety assessment","Rollback all changes from failed refactor","Initialize Omega autonomous agent for project","Omega analyzes codebase and suggests improvements","Execute refactor plan with full autonomy","Auto-detect code improvements and optimizations","Get Omega agent status and health","Run all safety gates on a file (Phase 1: parse/compile/test)","Apply atomic refactor with 100% rollback guarantee (Phase 1)","Parse check using Zig AST parser (Phase 1)","Compile check using zig build (Phase 1)","Show sacred constants (phi, pi, e, mu, chi, sigma, epsilon...)","Compute phi^n (golden ratio power)","Fibonacci with BigInt","Lucas L(n) -- L(2)=3=TRINITY","phi-spiral coordinates","Interactive chat (vision + voice + tools)","Loop decision: CONTINUE/EXIT (Link 17)","Execute 26-link Golden Chain pipeline","Awaken Omega autonomous agent","Temporal Trinity OS boot","Run TVC chat demo","Show TVC corpus statistics","List periodic table elements by category","Look up element by symbol or atomic number","Calculate molar mass of chemical formula","Calculate moles, molecules, atoms from mass","Analyze DNA sequence (GC content, composition)","Look up RNA codon to amino acid","Analyze protein sequence (mass, composition)","Show quantum physics constants (h, hbar, alpha)","Show quantum basis states and phi-state","Show four Bell entangled states","Evaluate V = n * 3^k * pi^m * phi^p * e^q","Get Ralph Agent Swarm status summary (agents, tasks, counts)","List all registered swarm agents with status","Register a new agent in the swarm","Agent heartbeat with status, branch, task_id, commit_sha (circuit breaker)","Get next pending task for an agent (priority-ordered)","Add a new task to the swarm queue","Cancel and remove a task from the queue","List all tasks in the swarm queue","Pause all swarm agents (finish current tasks, no new assignments)","Resume all paused swarm agents","Create and assign a task to a specific agent","Convert GitHub issue to swarm task. Returns labels/actions for Go proxy.","Notify that agent started a GitHub-sourced task. Returns label swaps + comment.","Notify GitHub task completed. Returns labels, comment, close_issue.","Notify GitHub task failed. Returns labels + error comment.","Start Oracle Telegram watchdog thread (sends swarm status every N minutes)","Stop Oracle Telegram watchdog thread","Get Oracle watchdog status (running/stopped, messages sent, errors)","Get HSLM training status -- checkpoints, loss, anomalies, recommendation","Diagnose HSLM training anomalies (zero loss, phase transition, overfitting)","Get HSLM loss curve from checkpoint headers","Get phi-aware recommendation for next training action","List HSLM checkpoints with step, loss, PPL, size","Spawn a cloud agent container for a GitHub issue","Kill a cloud agent container","List all active cloud agent containers","Get cloud infrastructure status","Get cloud agent deployment logs","Spawn agents for all issues labeled agent:spawn","Remove inactive cloud agent entries","Get event history for a cloud agent","Test API key connectivity and model routing -- detects proxy returning wrong model","Reuse existing Railway service for a new issue number","Diagnose why an agent failed -- shows GitHub comments, JSONL events, PR status","Create a GitHub issue with agent:spawn label for auto-spawning","Railway multi-account farm dashboard -- shows all accounts with capacity and daily limits","Sync active service counts across all Railway accounts","Get farm capacity as JSON -- total slots, active services, daily remaining per account","Migrate services from overloaded to underloaded Railway accounts","Farm evolution health dashboard -- leaderboard, health_score 0-100, stagnation, ETA","Farm insight scan -- detect leader changes, plateaus, spikes, wave completion. Sends to Telegram unless dry-run","Single evolution sweep -- inject sacred children into free slots, auto-notify. Always --once","Spawn an HSLM training experiment on Railway farm","Spawn all 13 HSLM training experiments across Railway farm","Chain Link 0: TVC Gate -- search corpus, return cached or continue","Chain Link 1: Analyze previous version v(n-1)","Chain Link 2: Collect performance metrics","Chain Link 3: Research patterns and science (PAS)","Chain Link 4: Build technology dependency tree","Chain Link 5: VIBEE-first compliance check","Chain Link 6: Create .tri specifications","Chain Link 7: Generate Zig code from .tri specs","Chain Link 8: Sacred Intelligence code analysis","Chain Link 9: Run zig build test suite","Chain Link 10: CRITICAL -- Compare to baseline v(n-1)","Chain Link 11: SWE Agent error fixing","Chain Link 12: Compare to external tools (llama.cpp/vLLM)","Chain Link 13: Gap to theoretical maximum","Chain Link 14: Generate improvement delta report","Chain Link 15: Optimize if needed (optional)","Chain Link 16: Generate documentation with proofs","Chain Link 17: Critical self-assessment (toxic verdict)","Chain Link 18: Commit and push changes","Chain Link 19: Decide next iteration (continue/exit)","Chain Link 20: Auto-deploy to cloud","Chain Link 21: Pipeline analyzes itself (eternal self-evolution)","Chain Link 22: Pipeline improves itself (circular bootstrapping)","Chain Link 23: Camera-based LED verification for FPGA","Chain Link 24: Research-assisted error fixing via Perplexity","Chain Link 25: Validate .tri spec syntax before codegen","List all 26 Golden Chain links with roles and status","Decompose a GitHub issue into 5 role-based sub-issues (planner/coder/reviewer/tester/integrator)","Send/edit/pin Telegram messages via tri CLI","Scan for USB-UART serial devices (CH340/FTDI) connected to FPGA","PING/PONG test -- send 0x03, expect 0x83 from FPGA","Send raw hex bytes to FPGA via UART and print response","Get doctor health status -- one-line summary","Scan and classify all .zig files","Health score dashboard with emoji grades","Create migration queue for manual files","Regenerate manual files through pipeline","Start a background job","Get job status by ID","Get job logs by ID","List all background jobs","Cancel a running job","Get job artifacts by ID","List open GitHub issues","View a specific GitHub issue","Create a new GitHub issue","Add a comment to a GitHub issue","Close a GitHub issue","Assign a user to a GitHub issue","Decompose a GitHub issue into sub-tasks","Get deployment status","Get deployment logs","Get deployment environment variables","Start deployment","Stop deployment","Save an experience entry (key-value learning)","Recall an experience entry by key","List all recorded mistakes/anti-patterns","Get patent portfolio status","Get patent analysis and claims","Get DePIN node protocol status","List DePIN network nodes","Get DePIN node fitness scores","Research a topic via Perplexity-assisted search","List all HSLM training experiments","Compare two experiments","Run a chimera fused command (farm-cycle, train-cycle, etc.)","Get ouroboros self-evolution status and score","Run ouroboros self-evolution cycle","Run self-test suite","Get self-health check results","Get current context info (tokens, files, window)","Load additional context from a file path","Get Faculty Board status dashboard","Get MU agent status","List MU learned patterns","Get Zenodo publication status","Analyze codebase quality and metrics","Clean build artifacts and temp files","Format all Zig source files","Show project statistics (LOC, files, tests)","Run linter on source code","Search codebase for a query string","Get project metrics dashboard","Get execution trace","Evaluate expression or code snippet","Get training farm status overview","List idle farm workers","Recycle underperforming farm workers","Fill empty farm slots with new experiments","List all 8 Railway farm accounts and their service counts","Spawn a wave of training workers on a specific account","Run FPGA synthesis pipeline","Get FPGA hardware and synthesis status","Build FPGA bitstream","Verify FPGA bitstream against RTL","Flash bitstream to FPGA board"],"TOOLS_INPUTS":["command,args,auto_needle","prompt","spec","name","task","task","","suite","","file","pattern","file","target","file","file","prompt","","","count","message","file_path,pattern_query,replacement,safety_level,edit_mode","query,file_path,confidence_threshold","file_path,check_level","file_path,pattern_query,replacement","edits","root_dir,enable_vsa","symbol,new_name,semantic_aware,similarity_threshold,scope,preview","file,start_line,end_line,function_name","format,focus,show_vsa","symbol,include_transitive,semantic_impact","query,top_k,min_similarity","intent,replacement_intent,file,preview","root_dir,embedding_dim","intent,new_intent,semantic_threshold,preview","transformation,rules_file","symbol,new_name,include_vsa","refactor_id","root_dir,autonomy_level","intent,auto_detect","plan_id,confirm","min_confidence,max_results","","file_path,gates","file_path,pattern_query,replacement,safety_gates","file_path","project_root","","n","n","n","n","message,stream","mode","task","mode","","","","category","element","formula","formula,mass","sequence","codon","sequence","","","","n,k,m,p,q","","","agent_id,hostname","agent_id,status,branch,task_id,commit_sha","agent_id","id,slug,description,priority","task_id","","","","agent_id,description","issue_number,title,labels","task_id,agent_id,branch","task_id,agent_id,result","task_id,agent_id,error","telegram_token,chat_id,interval_ms","","","","dir","dir","dir","dir","issue_number","issue_number","","","","","","issue_number","","service_id,issue_number","issue_number","title","","","","","","dry_run","sacred,dry_run","name","","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","","issue_number,template","text,chat_id,pin,edit_id","","device","device,hex_bytes","","","","","","command","id","id","","id","id","","number","title,body","number,body","number","number,user","number","","","","","","key,value","key","","","","","","","query","","a,b","name","","","","","","path","","","","","","","","","","query","","","","","","","","","account,count","","","","","bitstream"],"TOOLS_NOTE":"Static list parsed from writeToolsList (210 entries; 32 entries have an unbalanced trailing brace in the source literal and were parsed after adding or removing one). Cell-generated tools from data/cells/mcp_tools.json are appended at runtime and are not listed here. .trinity/mcp_schemas.json lists a different, shorter set (29 names) and is not used as the source.","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/trinity","inSpecCorpus":true,"launch":"/data/trinity/zig-out/bin/trinity-mcp","links":{"config":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.mcp.json","pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/tools/mcp/trinity_mcp/server.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_mcp_trinity","name":{"en":"trinity"},"qualifiedId":"gHashTag/trinity:mcp/trinity","repo":"gHashTag/trinity","resources":[],"schema":2,"searchText":"mcp/trinity trinity zig mcp server (json-rpc over stdio, content-length framing) that exposes the tri pipeline, golden chain links, swarm, cloud/farm, fpga, doctor, job, issue, deploy, experience, oracle and needle tools; the static list in writetoolslist plus cell-generated tools loaded at runtime. tri_execute universal executor -- run any tri command with automatic needle check tri_code generate code with typing effect tri_gen compile vibee spec to zig/verilog tri_spec_create create new .tri specification template tri_decompose break task into sub-tasks (golden chain link 4) tri_plan generate implementation plan (golden chain link 5) tri_verify run tests + benchmarks (links 7-11) tri_bench run performance benchmarks tri_verdict generate toxic verdict (link 14) tri_test generate tests for code tri_test_run run specific test suite tri_fix detect and fix bugs tri_explain explain code or concept tri_refactor suggest refactoring tri_doc generate documentation tri_reason chain-of-thought reasoning tri_status git status --short tri_diff git diff tri_log git log --oneline tri_commit git add -a && commit needle_structural_replace ast-aware code edit with tier 0->1 fallback needle_search search codebase for pattern matches needle_quality_gates run quality gates: parse check, ast analysis needle_preview preview edit diff without applying needle_batch_edit apply multiple edits in one operation needle_graph_build build complete call graph with vsa embeddings for project needle_graph_refactor rename symbol across entire project with semantic awareness needle_graph_extract extract function/method from code block needle_graph_visualize generate graph visualization (dot/json) with vsa clustering needle_graph_affected find all files affected by symbol change (with semantic impact) needle_graph_vsa_search search for semantically similar symbols by code or intent needle_semantic_replace replace code by semantic meaning (not just pattern) needle_vsa_index build semantic vsa index for codebase needle_safe_cross_refactor safe cross-file semantic refactor with vsa rules and 100% rollback needle_vsa_rule_apply apply vsa rules to validate proposed refactor needle_cross_preview preview cross-file refactor impact with safety assessment needle_rollback_all rollback all changes from failed refactor needle_omega_init initialize omega autonomous agent for project needle_omega_analyze omega analyzes codebase and suggests improvements needle_omega_execute execute refactor plan with full autonomy needle_omega_detect auto-detect code improvements and optimizations needle_omega_status get omega agent status and health needle_safety_gates_run run all safety gates on a file (phase 1: parse/compile/test) needle_atomic_refactor apply atomic refactor with 100% rollback guarantee (phase 1) needle_parse_check parse check using zig ast parser (phase 1) needle_compile_check compile check using zig build (phase 1) tri_constants show sacred constants (phi, pi, e, mu, chi, sigma, epsilon...) tri_phi compute phi^n (golden ratio power) tri_fib fibonacci with bigint tri_lucas lucas l(n) -- l(2)=3=trinity tri_spiral phi-spiral coordinates tri_chat interactive chat (vision + voice + tools) tri_loop_decision loop decision: continue/exit (link 17) tri_pipeline execute 26-link golden chain pipeline tri_omega_awaken awaken omega autonomous agent tri_os_boot temporal trinity os boot tri_tvc_demo run tvc chat demo tri_tvc_stats show tvc corpus statistics tri_chem_periodic list periodic table elements by category tri_chem_element look up element by symbol or atomic number tri_chem_mass calculate molar mass of chemical formula tri_chem_moles calculate moles, molecules, atoms from mass tri_bio_dna analyze dna sequence (gc content, composition) tri_bio_codon look up rna codon to amino acid tri_bio_protein analyze protein sequence (mass, composition) tri_quantum_constants show quantum physics constants (h, hbar, alpha) tri_quantum_states show quantum basis states and phi-state tri_bell_states show four bell entangled states tri_formula evaluate v = n * 3^k * pi^m * phi^p * e^q swarm_status get ralph agent swarm status summary (agents, tasks, counts) swarm_agents list all registered swarm agents with status swarm_register register a new agent in the swarm swarm_heartbeat agent heartbeat with status, branch, task_id, commit_sha (circuit breaker) swarm_task_get get next pending task for an agent (priority-ordered) swarm_task_add add a new task to the swarm queue swarm_task_cancel cancel and remove a task from the queue swarm_tasks list all tasks in the swarm queue swarm_pause pause all swarm agents (finish current tasks, no new assignments) swarm_resume resume all paused swarm agents swarm_assign create and assign a task to a specific agent swarm_github_sync convert github issue to swarm task. returns labels/actions for go proxy. swarm_github_on_start notify that agent started a github-sourced task. returns label swaps + comment. swarm_github_on_complete notify github task completed. returns labels, comment, close_issue. swarm_github_on_fail notify github task failed. returns labels + error comment. oracle_start start oracle telegram watchdog thread (sends swarm status every n minutes) oracle_stop stop oracle telegram watchdog thread oracle_status get oracle watchdog status (running/stopped, messages sent, errors) tri_train_status get hslm training status -- checkpoints, loss, anomalies, recommendation tri_train_diagnose diagnose hslm training anomalies (zero loss, phase transition, overfitting) tri_train_loss_curve get hslm loss curve from checkpoint headers tri_train_recommend get phi-aware recommendation for next training action tri_train_checkpoint list hslm checkpoints with step, loss, ppl, size cloud_spawn spawn a cloud agent container for a github issue cloud_kill kill a cloud agent container cloud_list list all active cloud agent containers cloud_status get cloud infrastructure status cloud_logs get cloud agent deployment logs cloud_spawn_all spawn agents for all issues labeled agent:spawn cloud_cleanup remove inactive cloud agent entries cloud_history get event history for a cloud agent cloud_api_check test api key connectivity and model routing -- detects proxy returning wrong model cloud_redeploy reuse existing railway service for a new issue number cloud_diagnose diagnose why an agent failed -- shows github comments, jsonl events, pr status cloud_issue_create create a github issue with agent:spawn label for auto-spawning cloud_farm railway multi-account farm dashboard -- shows all accounts with capacity and daily limits cloud_farm_sync sync active service counts across all railway accounts cloud_farm_capacity get farm capacity as json -- total slots, active services, daily remaining per account cloud_farm_rebalance migrate services from overloaded to underloaded railway accounts farm_evolve_health farm evolution health dashboard -- leaderboard, health_score 0-100, stagnation, eta farm_evolve_notify farm insight scan -- detect leader changes, plateaus, spikes, wave completion. sends to telegram unless dry-run farm_evolve_watch single evolution sweep -- inject sacred children into free slots, auto-notify. always --once cloud_train spawn an hslm training experiment on railway farm cloud_train_batch spawn all 13 hslm training experiments across railway farm chain_cache chain link 0: tvc gate -- search corpus, return cached or continue chain_baseline chain link 1: analyze previous version v(n-1) chain_metrics chain link 2: collect performance metrics chain_patterns chain link 3: research patterns and science (pas) chain_tree chain link 4: build technology dependency tree chain_check_spec chain link 5: vibee-first compliance check chain_spec chain link 6: create .tri specifications chain_codegen chain link 7: generate zig code from .tri specs chain_analyze chain link 8: sacred intelligence code analysis chain_test chain link 9: run zig build test suite chain_bench chain link 10: critical -- compare to baseline v(n-1) chain_fix chain link 11: swe agent error fixing chain_bench_ext chain link 12: compare to external tools (llama.cpp/vllm) chain_bench_theory chain link 13: gap to theoretical maximum chain_delta chain link 14: generate improvement delta report chain_optimize chain link 15: optimize if needed (optional) chain_docs chain link 16: generate documentation with proofs chain_verdict chain link 17: critical self-assessment (toxic verdict) chain_git chain link 18: commit and push changes chain_loop chain link 19: decide next iteration (continue/exit) chain_deploy chain link 20: auto-deploy to cloud chain_evolve chain link 21: pipeline analyzes itself (eternal self-evolution) chain_self_ref chain link 22: pipeline improves itself (circular bootstrapping) chain_fpga_test chain link 23: camera-based led verification for fpga chain_research chain link 24: research-assisted error fixing via perplexity chain_lint_spec chain link 25: validate .tri spec syntax before codegen chain_list list all 26 golden chain links with roles and status cloud_decompose decompose a github issue into 5 role-based sub-issues (planner/coder/reviewer/tester/integrator) tri_notify send/edit/pin telegram messages via tri cli fpga_uart_scan scan for usb-uart serial devices (ch340/ftdi) connected to fpga fpga_uart_ping ping/pong test -- send 0x03, expect 0x83 from fpga fpga_uart_send send raw hex bytes to fpga via uart and print response doctor_status get doctor health status -- one-line summary doctor_scan scan and classify all .zig files doctor_report health score dashboard with emoji grades doctor_plan create migration queue for manual files doctor_heal regenerate manual files through pipeline job_start start a background job job_status get job status by id job_logs get job logs by id job_list list all background jobs job_cancel cancel a running job job_artifacts get job artifacts by id issue_list list open github issues issue_view view a specific github issue issue_create create a new github issue issue_comment add a comment to a github issue issue_close close a github issue issue_assign assign a user to a github issue issue_decompose decompose a github issue into sub-tasks deploy_status get deployment status deploy_logs get deployment logs deploy_vars get deployment environment variables deploy_start start deployment deploy_stop stop deployment experience_save save an experience entry (key-value learning) experience_recall recall an experience entry by key experience_mistakes list all recorded mistakes/anti-patterns patent_status get patent portfolio status patent_analysis get patent analysis and claims depin_status get depin node protocol status depin_nodes list depin network nodes depin_fitness get depin node fitness scores research_query research a topic via perplexity-assisted search experiment_list list all hslm training experiments experiment_compare compare two experiments chimera_run run a chimera fused command (farm-cycle, train-cycle, etc.) ouroboros_status get ouroboros self-evolution status and score ouroboros_run run ouroboros self-evolution cycle self_test run self-test suite self_health get self-health check results context_info get current context info (tokens, files, window) context_load load additional context from a file path faculty_status get faculty board status dashboard mu_status get mu agent status mu_patterns list mu learned patterns zenodo_status get zenodo publication status tri_analyze analyze codebase quality and metrics tri_clean clean build artifacts and temp files tri_fmt format all zig source files tri_stats show project statistics (loc, files, tests) tri_lint run linter on source code tri_search search codebase for a query string tri_metrics get project metrics dashboard tri_trace get execution trace tri_eval evaluate expression or code snippet farm_status get training farm status overview farm_idle list idle farm workers farm_recycle recycle underperforming farm workers farm_fill fill empty farm slots with new experiments farm_accounts list all 8 railway farm accounts and their service counts farm_wave_spawn spawn a wave of training workers on a specific account fpga_synth run fpga synthesis pipeline fpga_status get fpga hardware and synthesis status fpga_build build fpga bitstream fpga_verify verify fpga bitstream against rtl fpga_flash flash bitstream to fpga board","server":"trinity","serverVersion":"","sha256":"6d12259c8f9ce6b5c139b041f23558ef50c0f6a3edb22569fb4e2559f4ca3b54","skills":[],"source":"tools/mcp/trinity_mcp/server.zig","specPath":"specs/tools/mcp/trinity.t27","summary":{"en":"Zig MCP server (JSON-RPC over stdio, Content-Length framing) that exposes the tri pipeline, Golden Chain links, swarm, cloud/farm, FPGA, doctor, job, issue, deploy, experience, oracle and needle tools; the static list in writeToolsList plus cell-generated tools loaded at runtime.","ru":"MCP-сервер на Zig (JSON-RPC по stdio, кадрирование Content-Length), открывающий инструменты конвейера tri, звеньев Golden Chain, роя, облака/фермы, FPGA, doctor, job, issue, deploy, experience, oracle и needle; статический список writeToolsList плюс инструменты ячеек, подгружаемые во время выполнения."},"tools":[{"about":"Universal executor -- run ANY tri command with automatic needle check","inputs":["command","args","auto_needle"],"name":"tri_execute"},{"about":"Generate code with typing effect","inputs":["prompt"],"name":"tri_code"},{"about":"Compile VIBEE spec to Zig/Verilog","inputs":["spec"],"name":"tri_gen"},{"about":"Create new .tri specification template","inputs":["name"],"name":"tri_spec_create"},{"about":"Break task into sub-tasks (Golden Chain Link 4)","inputs":["task"],"name":"tri_decompose"},{"about":"Generate implementation plan (Golden Chain Link 5)","inputs":["task"],"name":"tri_plan"},{"about":"Run tests + benchmarks (Links 7-11)","inputs":[],"name":"tri_verify"},{"about":"Run performance benchmarks","inputs":["suite"],"name":"tri_bench"},{"about":"Generate toxic verdict (Link 14)","inputs":[],"name":"tri_verdict"},{"about":"Generate tests for code","inputs":["file"],"name":"tri_test"},{"about":"Run specific test suite","inputs":["pattern"],"name":"tri_test_run"},{"about":"Detect and fix bugs","inputs":["file"],"name":"tri_fix"},{"about":"Explain code or concept","inputs":["target"],"name":"tri_explain"},{"about":"Suggest refactoring","inputs":["file"],"name":"tri_refactor"},{"about":"Generate documentation","inputs":["file"],"name":"tri_doc"},{"about":"Chain-of-thought reasoning","inputs":["prompt"],"name":"tri_reason"},{"about":"Git status --short","inputs":[],"name":"tri_status"},{"about":"Git diff","inputs":[],"name":"tri_diff"},{"about":"Git log --oneline","inputs":["count"],"name":"tri_log"},{"about":"Git add -A && commit","inputs":["message"],"name":"tri_commit"},{"about":"AST-aware code edit with Tier 0->1 fallback","inputs":["file_path","pattern_query","replacement","safety_level","edit_mode"],"name":"needle_structural_replace"},{"about":"Search codebase for pattern matches","inputs":["query","file_path","confidence_threshold"],"name":"needle_search"},{"about":"Run quality gates: parse check, AST analysis","inputs":["file_path","check_level"],"name":"needle_quality_gates"},{"about":"Preview edit diff without applying","inputs":["file_path","pattern_query","replacement"],"name":"needle_preview"},{"about":"Apply multiple edits in one operation","inputs":["edits"],"name":"needle_batch_edit"},{"about":"Build complete call graph with VSA embeddings for project","inputs":["root_dir","enable_vsa"],"name":"needle_graph_build"},{"about":"Rename symbol across entire project with semantic awareness","inputs":["symbol","new_name","semantic_aware","similarity_threshold","scope","preview"],"name":"needle_graph_refactor"},{"about":"Extract function/method from code block","inputs":["file","start_line","end_line","function_name"],"name":"needle_graph_extract"},{"about":"Generate graph visualization (DOT/JSON) with VSA clustering","inputs":["format","focus","show_vsa"],"name":"needle_graph_visualize"},{"about":"Find all files affected by symbol change (with semantic impact)","inputs":["symbol","include_transitive","semantic_impact"],"name":"needle_graph_affected"},{"about":"Search for semantically similar symbols by code or intent","inputs":["query","top_k","min_similarity"],"name":"needle_graph_vsa_search"},{"about":"Replace code by semantic meaning (not just pattern)","inputs":["intent","replacement_intent","file","preview"],"name":"needle_semantic_replace"},{"about":"Build semantic VSA index for codebase","inputs":["root_dir","embedding_dim"],"name":"needle_vsa_index"},{"about":"Safe cross-file semantic refactor with VSA rules and 100% rollback","inputs":["intent","new_intent","semantic_threshold","preview"],"name":"needle_safe_cross_refactor"},{"about":"Apply VSA rules to validate proposed refactor","inputs":["transformation","rules_file"],"name":"needle_vsa_rule_apply"},{"about":"Preview cross-file refactor impact with safety assessment","inputs":["symbol","new_name","include_vsa"],"name":"needle_cross_preview"},{"about":"Rollback all changes from failed refactor","inputs":["refactor_id"],"name":"needle_rollback_all"},{"about":"Initialize Omega autonomous agent for project","inputs":["root_dir","autonomy_level"],"name":"needle_omega_init"},{"about":"Omega analyzes codebase and suggests improvements","inputs":["intent","auto_detect"],"name":"needle_omega_analyze"},{"about":"Execute refactor plan with full autonomy","inputs":["plan_id","confirm"],"name":"needle_omega_execute"},{"about":"Auto-detect code improvements and optimizations","inputs":["min_confidence","max_results"],"name":"needle_omega_detect"},{"about":"Get Omega agent status and health","inputs":[],"name":"needle_omega_status"},{"about":"Run all safety gates on a file (Phase 1: parse/compile/test)","inputs":["file_path","gates"],"name":"needle_safety_gates_run"},{"about":"Apply atomic refactor with 100% rollback guarantee (Phase 1)","inputs":["file_path","pattern_query","replacement","safety_gates"],"name":"needle_atomic_refactor"},{"about":"Parse check using Zig AST parser (Phase 1)","inputs":["file_path"],"name":"needle_parse_check"},{"about":"Compile check using zig build (Phase 1)","inputs":["project_root"],"name":"needle_compile_check"},{"about":"Show sacred constants (phi, pi, e, mu, chi, sigma, epsilon...)","inputs":[],"name":"tri_constants"},{"about":"Compute phi^n (golden ratio power)","inputs":["n"],"name":"tri_phi"},{"about":"Fibonacci with BigInt","inputs":["n"],"name":"tri_fib"},{"about":"Lucas L(n) -- L(2)=3=TRINITY","inputs":["n"],"name":"tri_lucas"},{"about":"phi-spiral coordinates","inputs":["n"],"name":"tri_spiral"},{"about":"Interactive chat (vision + voice + tools)","inputs":["message","stream"],"name":"tri_chat"},{"about":"Loop decision: CONTINUE/EXIT (Link 17)","inputs":["mode"],"name":"tri_loop_decision"},{"about":"Execute 26-link Golden Chain pipeline","inputs":["task"],"name":"tri_pipeline"},{"about":"Awaken Omega autonomous agent","inputs":["mode"],"name":"tri_omega_awaken"},{"about":"Temporal Trinity OS boot","inputs":[],"name":"tri_os_boot"},{"about":"Run TVC chat demo","inputs":[],"name":"tri_tvc_demo"},{"about":"Show TVC corpus statistics","inputs":[],"name":"tri_tvc_stats"},{"about":"List periodic table elements by category","inputs":["category"],"name":"tri_chem_periodic"},{"about":"Look up element by symbol or atomic number","inputs":["element"],"name":"tri_chem_element"},{"about":"Calculate molar mass of chemical formula","inputs":["formula"],"name":"tri_chem_mass"},{"about":"Calculate moles, molecules, atoms from mass","inputs":["formula","mass"],"name":"tri_chem_moles"},{"about":"Analyze DNA sequence (GC content, composition)","inputs":["sequence"],"name":"tri_bio_dna"},{"about":"Look up RNA codon to amino acid","inputs":["codon"],"name":"tri_bio_codon"},{"about":"Analyze protein sequence (mass, composition)","inputs":["sequence"],"name":"tri_bio_protein"},{"about":"Show quantum physics constants (h, hbar, alpha)","inputs":[],"name":"tri_quantum_constants"},{"about":"Show quantum basis states and phi-state","inputs":[],"name":"tri_quantum_states"},{"about":"Show four Bell entangled states","inputs":[],"name":"tri_bell_states"},{"about":"Evaluate V = n * 3^k * pi^m * phi^p * e^q","inputs":["n","k","m","p","q"],"name":"tri_formula"},{"about":"Get Ralph Agent Swarm status summary (agents, tasks, counts)","inputs":[],"name":"swarm_status"},{"about":"List all registered swarm agents with status","inputs":[],"name":"swarm_agents"},{"about":"Register a new agent in the swarm","inputs":["agent_id","hostname"],"name":"swarm_register"},{"about":"Agent heartbeat with status, branch, task_id, commit_sha (circuit breaker)","inputs":["agent_id","status","branch","task_id","commit_sha"],"name":"swarm_heartbeat"},{"about":"Get next pending task for an agent (priority-ordered)","inputs":["agent_id"],"name":"swarm_task_get"},{"about":"Add a new task to the swarm queue","inputs":["id","slug","description","priority"],"name":"swarm_task_add"},{"about":"Cancel and remove a task from the queue","inputs":["task_id"],"name":"swarm_task_cancel"},{"about":"List all tasks in the swarm queue","inputs":[],"name":"swarm_tasks"},{"about":"Pause all swarm agents (finish current tasks, no new assignments)","inputs":[],"name":"swarm_pause"},{"about":"Resume all paused swarm agents","inputs":[],"name":"swarm_resume"},{"about":"Create and assign a task to a specific agent","inputs":["agent_id","description"],"name":"swarm_assign"},{"about":"Convert GitHub issue to swarm task. Returns labels/actions for Go proxy.","inputs":["issue_number","title","labels"],"name":"swarm_github_sync"},{"about":"Notify that agent started a GitHub-sourced task. Returns label swaps + comment.","inputs":["task_id","agent_id","branch"],"name":"swarm_github_on_start"},{"about":"Notify GitHub task completed. Returns labels, comment, close_issue.","inputs":["task_id","agent_id","result"],"name":"swarm_github_on_complete"},{"about":"Notify GitHub task failed. Returns labels + error comment.","inputs":["task_id","agent_id","error"],"name":"swarm_github_on_fail"},{"about":"Start Oracle Telegram watchdog thread (sends swarm status every N minutes)","inputs":["telegram_token","chat_id","interval_ms"],"name":"oracle_start"},{"about":"Stop Oracle Telegram watchdog thread","inputs":[],"name":"oracle_stop"},{"about":"Get Oracle watchdog status (running/stopped, messages sent, errors)","inputs":[],"name":"oracle_status"},{"about":"Get HSLM training status -- checkpoints, loss, anomalies, recommendation","inputs":[],"name":"tri_train_status"},{"about":"Diagnose HSLM training anomalies (zero loss, phase transition, overfitting)","inputs":["dir"],"name":"tri_train_diagnose"},{"about":"Get HSLM loss curve from checkpoint headers","inputs":["dir"],"name":"tri_train_loss_curve"},{"about":"Get phi-aware recommendation for next training action","inputs":["dir"],"name":"tri_train_recommend"},{"about":"List HSLM checkpoints with step, loss, PPL, size","inputs":["dir"],"name":"tri_train_checkpoint"},{"about":"Spawn a cloud agent container for a GitHub issue","inputs":["issue_number"],"name":"cloud_spawn"},{"about":"Kill a cloud agent container","inputs":["issue_number"],"name":"cloud_kill"},{"about":"List all active cloud agent containers","inputs":[],"name":"cloud_list"},{"about":"Get cloud infrastructure status","inputs":[],"name":"cloud_status"},{"about":"Get cloud agent deployment logs","inputs":[],"name":"cloud_logs"},{"about":"Spawn agents for all issues labeled agent:spawn","inputs":[],"name":"cloud_spawn_all"},{"about":"Remove inactive cloud agent entries","inputs":[],"name":"cloud_cleanup"},{"about":"Get event history for a cloud agent","inputs":["issue_number"],"name":"cloud_history"},{"about":"Test API key connectivity and model routing -- detects proxy returning wrong model","inputs":[],"name":"cloud_api_check"},{"about":"Reuse existing Railway service for a new issue number","inputs":["service_id","issue_number"],"name":"cloud_redeploy"},{"about":"Diagnose why an agent failed -- shows GitHub comments, JSONL events, PR status","inputs":["issue_number"],"name":"cloud_diagnose"},{"about":"Create a GitHub issue with agent:spawn label for auto-spawning","inputs":["title"],"name":"cloud_issue_create"},{"about":"Railway multi-account farm dashboard -- shows all accounts with capacity and daily limits","inputs":[],"name":"cloud_farm"},{"about":"Sync active service counts across all Railway accounts","inputs":[],"name":"cloud_farm_sync"},{"about":"Get farm capacity as JSON -- total slots, active services, daily remaining per account","inputs":[],"name":"cloud_farm_capacity"},{"about":"Migrate services from overloaded to underloaded Railway accounts","inputs":[],"name":"cloud_farm_rebalance"},{"about":"Farm evolution health dashboard -- leaderboard, health_score 0-100, stagnation, ETA","inputs":[],"name":"farm_evolve_health"},{"about":"Farm insight scan -- detect leader changes, plateaus, spikes, wave completion. Sends to Telegram unless dry-run","inputs":["dry_run"],"name":"farm_evolve_notify"},{"about":"Single evolution sweep -- inject sacred children into free slots, auto-notify. Always --once","inputs":["sacred","dry_run"],"name":"farm_evolve_watch"},{"about":"Spawn an HSLM training experiment on Railway farm","inputs":["name"],"name":"cloud_train"},{"about":"Spawn all 13 HSLM training experiments across Railway farm","inputs":[],"name":"cloud_train_batch"},{"about":"Chain Link 0: TVC Gate -- search corpus, return cached or continue","inputs":["task"],"name":"chain_cache"},{"about":"Chain Link 1: Analyze previous version v(n-1)","inputs":["task"],"name":"chain_baseline"},{"about":"Chain Link 2: Collect performance metrics","inputs":["task"],"name":"chain_metrics"},{"about":"Chain Link 3: Research patterns and science (PAS)","inputs":["task"],"name":"chain_patterns"},{"about":"Chain Link 4: Build technology dependency tree","inputs":["task"],"name":"chain_tree"},{"about":"Chain Link 5: VIBEE-first compliance check","inputs":["task"],"name":"chain_check_spec"},{"about":"Chain Link 6: Create .tri specifications","inputs":["task"],"name":"chain_spec"},{"about":"Chain Link 7: Generate Zig code from .tri specs","inputs":["task"],"name":"chain_codegen"},{"about":"Chain Link 8: Sacred Intelligence code analysis","inputs":["task"],"name":"chain_analyze"},{"about":"Chain Link 9: Run zig build test suite","inputs":["task"],"name":"chain_test"},{"about":"Chain Link 10: CRITICAL -- Compare to baseline v(n-1)","inputs":["task"],"name":"chain_bench"},{"about":"Chain Link 11: SWE Agent error fixing","inputs":["task"],"name":"chain_fix"},{"about":"Chain Link 12: Compare to external tools (llama.cpp/vLLM)","inputs":["task"],"name":"chain_bench_ext"},{"about":"Chain Link 13: Gap to theoretical maximum","inputs":["task"],"name":"chain_bench_theory"},{"about":"Chain Link 14: Generate improvement delta report","inputs":["task"],"name":"chain_delta"},{"about":"Chain Link 15: Optimize if needed (optional)","inputs":["task"],"name":"chain_optimize"},{"about":"Chain Link 16: Generate documentation with proofs","inputs":["task"],"name":"chain_docs"},{"about":"Chain Link 17: Critical self-assessment (toxic verdict)","inputs":["task"],"name":"chain_verdict"},{"about":"Chain Link 18: Commit and push changes","inputs":["task"],"name":"chain_git"},{"about":"Chain Link 19: Decide next iteration (continue/exit)","inputs":["task"],"name":"chain_loop"},{"about":"Chain Link 20: Auto-deploy to cloud","inputs":["task"],"name":"chain_deploy"},{"about":"Chain Link 21: Pipeline analyzes itself (eternal self-evolution)","inputs":["task"],"name":"chain_evolve"},{"about":"Chain Link 22: Pipeline improves itself (circular bootstrapping)","inputs":["task"],"name":"chain_self_ref"},{"about":"Chain Link 23: Camera-based LED verification for FPGA","inputs":["task"],"name":"chain_fpga_test"},{"about":"Chain Link 24: Research-assisted error fixing via Perplexity","inputs":["task"],"name":"chain_research"},{"about":"Chain Link 25: Validate .tri spec syntax before codegen","inputs":["task"],"name":"chain_lint_spec"},{"about":"List all 26 Golden Chain links with roles and status","inputs":[],"name":"chain_list"},{"about":"Decompose a GitHub issue into 5 role-based sub-issues (planner/coder/reviewer/tester/integrator)","inputs":["issue_number","template"],"name":"cloud_decompose"},{"about":"Send/edit/pin Telegram messages via tri CLI","inputs":["text","chat_id","pin","edit_id"],"name":"tri_notify"},{"about":"Scan for USB-UART serial devices (CH340/FTDI) connected to FPGA","inputs":[],"name":"fpga_uart_scan"},{"about":"PING/PONG test -- send 0x03, expect 0x83 from FPGA","inputs":["device"],"name":"fpga_uart_ping"},{"about":"Send raw hex bytes to FPGA via UART and print response","inputs":["device","hex_bytes"],"name":"fpga_uart_send"},{"about":"Get doctor health status -- one-line summary","inputs":[],"name":"doctor_status"},{"about":"Scan and classify all .zig files","inputs":[],"name":"doctor_scan"},{"about":"Health score dashboard with emoji grades","inputs":[],"name":"doctor_report"},{"about":"Create migration queue for manual files","inputs":[],"name":"doctor_plan"},{"about":"Regenerate manual files through pipeline","inputs":[],"name":"doctor_heal"},{"about":"Start a background job","inputs":["command"],"name":"job_start"},{"about":"Get job status by ID","inputs":["id"],"name":"job_status"},{"about":"Get job logs by ID","inputs":["id"],"name":"job_logs"},{"about":"List all background jobs","inputs":[],"name":"job_list"},{"about":"Cancel a running job","inputs":["id"],"name":"job_cancel"},{"about":"Get job artifacts by ID","inputs":["id"],"name":"job_artifacts"},{"about":"List open GitHub issues","inputs":[],"name":"issue_list"},{"about":"View a specific GitHub issue","inputs":["number"],"name":"issue_view"},{"about":"Create a new GitHub issue","inputs":["title","body"],"name":"issue_create"},{"about":"Add a comment to a GitHub issue","inputs":["number","body"],"name":"issue_comment"},{"about":"Close a GitHub issue","inputs":["number"],"name":"issue_close"},{"about":"Assign a user to a GitHub issue","inputs":["number","user"],"name":"issue_assign"},{"about":"Decompose a GitHub issue into sub-tasks","inputs":["number"],"name":"issue_decompose"},{"about":"Get deployment status","inputs":[],"name":"deploy_status"},{"about":"Get deployment logs","inputs":[],"name":"deploy_logs"},{"about":"Get deployment environment variables","inputs":[],"name":"deploy_vars"},{"about":"Start deployment","inputs":[],"name":"deploy_start"},{"about":"Stop deployment","inputs":[],"name":"deploy_stop"},{"about":"Save an experience entry (key-value learning)","inputs":["key","value"],"name":"experience_save"},{"about":"Recall an experience entry by key","inputs":["key"],"name":"experience_recall"},{"about":"List all recorded mistakes/anti-patterns","inputs":[],"name":"experience_mistakes"},{"about":"Get patent portfolio status","inputs":[],"name":"patent_status"},{"about":"Get patent analysis and claims","inputs":[],"name":"patent_analysis"},{"about":"Get DePIN node protocol status","inputs":[],"name":"depin_status"},{"about":"List DePIN network nodes","inputs":[],"name":"depin_nodes"},{"about":"Get DePIN node fitness scores","inputs":[],"name":"depin_fitness"},{"about":"Research a topic via Perplexity-assisted search","inputs":["query"],"name":"research_query"},{"about":"List all HSLM training experiments","inputs":[],"name":"experiment_list"},{"about":"Compare two experiments","inputs":["a","b"],"name":"experiment_compare"},{"about":"Run a chimera fused command (farm-cycle, train-cycle, etc.)","inputs":["name"],"name":"chimera_run"},{"about":"Get ouroboros self-evolution status and score","inputs":[],"name":"ouroboros_status"},{"about":"Run ouroboros self-evolution cycle","inputs":[],"name":"ouroboros_run"},{"about":"Run self-test suite","inputs":[],"name":"self_test"},{"about":"Get self-health check results","inputs":[],"name":"self_health"},{"about":"Get current context info (tokens, files, window)","inputs":[],"name":"context_info"},{"about":"Load additional context from a file path","inputs":["path"],"name":"context_load"},{"about":"Get Faculty Board status dashboard","inputs":[],"name":"faculty_status"},{"about":"Get MU agent status","inputs":[],"name":"mu_status"},{"about":"List MU learned patterns","inputs":[],"name":"mu_patterns"},{"about":"Get Zenodo publication status","inputs":[],"name":"zenodo_status"},{"about":"Analyze codebase quality and metrics","inputs":[],"name":"tri_analyze"},{"about":"Clean build artifacts and temp files","inputs":[],"name":"tri_clean"},{"about":"Format all Zig source files","inputs":[],"name":"tri_fmt"},{"about":"Show project statistics (LOC, files, tests)","inputs":[],"name":"tri_stats"},{"about":"Run linter on source code","inputs":[],"name":"tri_lint"},{"about":"Search codebase for a query string","inputs":["query"],"name":"tri_search"},{"about":"Get project metrics dashboard","inputs":[],"name":"tri_metrics"},{"about":"Get execution trace","inputs":[],"name":"tri_trace"},{"about":"Evaluate expression or code snippet","inputs":[],"name":"tri_eval"},{"about":"Get training farm status overview","inputs":[],"name":"farm_status"},{"about":"List idle farm workers","inputs":[],"name":"farm_idle"},{"about":"Recycle underperforming farm workers","inputs":[],"name":"farm_recycle"},{"about":"Fill empty farm slots with new experiments","inputs":[],"name":"farm_fill"},{"about":"List all 8 Railway farm accounts and their service counts","inputs":[],"name":"farm_accounts"},{"about":"Spawn a wave of training workers on a specific account","inputs":["account","count"],"name":"farm_wave_spawn"},{"about":"Run FPGA synthesis pipeline","inputs":[],"name":"fpga_synth"},{"about":"Get FPGA hardware and synthesis status","inputs":[],"name":"fpga_status"},{"about":"Build FPGA bitstream","inputs":[],"name":"fpga_build"},{"about":"Verify FPGA bitstream against RTL","inputs":[],"name":"fpga_verify"},{"about":"Flash bitstream to FPGA board","inputs":["bitstream"],"name":"fpga_flash"}],"toolsNote":"Static list parsed from writeToolsList (210 entries; 32 entries have an unbalanced trailing brace in the source literal and were parsed after adding or removing one). Cell-generated tools from data/cells/mcp_tools.json are appended at runtime and are not listed here. .trinity/mcp_schemas.json lists a different, shorter set (29 names) and is not used as the source.","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":".mcp.json entry; no tool list in this repository","agents":[],"config":".mcp.json","discarded":0,"env":[],"external":true,"family":"mcp","fields":{"ABOUT":"External MCP server `zig-docs` registered in .mcp.json; launched as `npx -y @nichochar/zig-mcp@latest`.","ABOUT_SOURCE":".mcp.json entry; no tool list in this repository","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".mcp.json","ENABLED":true,"ENV":[],"EXTERNAL":true,"FAMILY":"mcp","ID":"mcp/zig-docs","KIND":"tool","LAUNCH":"npx -y @nichochar/zig-mcp@latest","QUALIFIED_ID":"gHashTag/trinity:mcp/zig-docs","REPO":"gHashTag/trinity","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"zig-docs","SERVER_VERSION":"","SOURCE":".mcp.json","TOOLS":[],"TOOLS_ABOUT":[],"TOOLS_INPUTS":[],"TOOLS_NOTE":"Tool list lives in the external npm package, not in this repository; nothing is listed rather than guessed.","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/zig-docs","inSpecCorpus":true,"launch":"npx -y @nichochar/zig-mcp@latest","links":{"config":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.mcp.json","pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.mcp.json"},"messages":["no agent letter bound by a source","external package: tool list not in the repository"],"moduleName":"tool_mcp_zig_docs","name":{"en":"zig-docs"},"qualifiedId":"gHashTag/trinity:mcp/zig-docs","repo":"gHashTag/trinity","resources":[],"schema":2,"searchText":"mcp/zig-docs zig-docs external mcp server `zig-docs` registered in .mcp.json; launched as `npx -y @nichochar/zig-mcp@latest`.","server":"zig-docs","serverVersion":"","sha256":"baaff4d44a3595acd0cf596f2f070219c08df87bb2a997092e0b3e4792f06903","skills":[],"source":".mcp.json","specPath":"specs/tools/mcp/zig-docs.t27","summary":{"en":"External MCP server `zig-docs` registered in .mcp.json; launched as `npx -y @nichochar/zig-mcp@latest`.","ru":"Внешний MCP-сервер `zig-docs`, зарегистрированный в .mcp.json; запускается как `npx -y @nichochar/zig-mcp@latest`."},"tools":[],"toolsNote":"Tool list lives in the external npm package, not in this repository; nothing is listed rather than guessed.","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Abandoned (cli/tri/src/main.rs; module cli/tri/src/abandoned.rs)","actions":[{"about":"List recovery sites whose preceding comment names a concrete construct.","name":"list"}],"agents":[],"args":[],"command":"tri abandoned","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Recovery sites whose own comment names the construct they discard.","ABOUT_SOURCE":"clap /// doc on Commands::Abandoned (cli/tri/src/main.rs; module cli/tri/src/abandoned.rs)","ACTIONS":["list"],"ACTIONS_ABOUT":["List recovery sites whose preceding comment names a concrete construct."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri abandoned","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/abandoned","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/abandoned","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/abandoned.rs","VARIANT":"Commands::Abandoned","WHEN_TO_USE":"Recovery sites whose own comment names the construct they discard.","WITNESS":"source-parse"},"health":"ok","id":"tri/abandoned","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/abandoned.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_abandoned","name":{"en":"tri abandoned"},"qualifiedId":"gHashTag/t27:tri/abandoned","repo":"gHashTag/t27","schema":2,"searchText":"tri/abandoned tri abandoned recovery sites whose own comment names the construct they discard. recovery sites whose own comment names the construct they discard. list list recovery sites whose preceding comment names a concrete construct.","sha256":"b3105d48a28faff92bc02e393c146c4e95cba6c68277eb54f27ec5abc3b77bb4","skills":[],"source":"cli/tri/src/abandoned.rs","specPath":"specs/tools/tri/abandoned.t27","summary":{"en":"Recovery sites whose own comment names the construct they discard.","ru":"Точки восстановления, чей собственный комментарий называет отбрасываемую конструкцию."},"typecheckOk":true,"variant":"Commands::Abandoned","whenToUse":"Recovery sites whose own comment names the construct they discard.","witness":"source-parse"},{"aboutSource":"tri-mcp tools tri_cell_checkpoint and tri_cell_seal descriptions (cli/tri-mcp/src/main.rs); CellAction enum cli/tri/src/main.rs:448","actions":[{"about":"","name":"checkpoint"},{"about":"","name":"seal"}],"agents":[{"letter":"W","ok":true}],"args":[],"command":"tri cell","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Records a checkpoint step in the active cell. Seals the active cell by computing a SHA-256 hash of its checkpoint history.","ABOUT_SOURCE":"tri-mcp tools tri_cell_checkpoint and tri_cell_seal descriptions (cli/tri-mcp/src/main.rs); CellAction enum cli/tri/src/main.rs:448","ACTIONS":["checkpoint","seal"],"ACTIONS_ABOUT":["",""],"AGENTS":["W"],"AGENTS_NOTE":"docs/agents/AGENTS_ALPHABET.md:144, agent W domain Workflow / tri cell, key file src/tri/cell.zig; PHASE 6 EVOLVE: W seals tri-cell commit (hash seal).","ARGS":[],"COMMAND":"tri cell","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/cell","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/cell","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Cell","WHEN_TO_USE":"Records a checkpoint step in the active cell. Seals the active cell by computing a SHA-256 hash of its checkpoint history.","WITNESS":"source-parse"},"health":"ok","id":"tri/cell","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":[],"moduleName":"tool_tri_cell","name":{"en":"tri cell"},"qualifiedId":"gHashTag/t27:tri/cell","repo":"gHashTag/t27","schema":2,"searchText":"tri/cell tri cell records a checkpoint step in the active cell. seals the active cell by computing a sha-256 hash of its checkpoint history. records a checkpoint step in the active cell. seals the active cell by computing a sha-256 hash of its checkpoint history. checkpoint seal w","sha256":"36ed34dfc7beb24c2fdd5b7dc5f7fe3375b42f357ffde7befd19f7cfbc22cdca","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/cell.t27","summary":{"en":"Records a checkpoint step in the active cell. Seals the active cell by computing a SHA-256 hash of its checkpoint history.","ru":"Записывает шаг-контрольную точку в активной ячейке; запечатывает активную ячейку, вычисляя SHA-256 истории её контрольных точек."},"typecheckOk":true,"variant":"Commands::Cell","whenToUse":"Records a checkpoint step in the active cell. Seals the active cell by computing a SHA-256 hash of its checkpoint history.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Census (cli/tri/src/main.rs; module cli/tri/src/census.rs)","actions":[{"about":"Every census's printed population, against one counted another way.","name":"audit"},{"about":"Pin each pure census's output, so a change that moves one has to say so.","name":"pin"}],"agents":[],"args":[],"command":"tri census","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Specs the compiler cannot read, ranked by the construct that stops it. Every census's printed population, against one counted another way.","ABOUT_SOURCE":"clap /// doc on Commands::Census (cli/tri/src/main.rs; module cli/tri/src/census.rs)","ACTIONS":["audit","pin"],"ACTIONS_ABOUT":["Every census's printed population, against one counted another way.","Pin each pure census's output, so a change that moves one has to say so."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri census","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/census","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/census","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/census.rs","VARIANT":"Commands::Census","WHEN_TO_USE":"Specs the compiler cannot read, ranked by the construct that stops it. Every census's printed population, against one counted another way.","WITNESS":"source-parse"},"health":"ok","id":"tri/census","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/census.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_census","name":{"en":"tri census"},"qualifiedId":"gHashTag/t27:tri/census","repo":"gHashTag/t27","schema":2,"searchText":"tri/census tri census specs the compiler cannot read, ranked by the construct that stops it. every census's printed population, against one counted another way. specs the compiler cannot read, ranked by the construct that stops it. every census's printed population, against one counted another way. audit every census's printed population, against one counted another way. pin pin each pure census's output, so a change that moves one has to say so.","sha256":"d78bef53542ec408f004c9a1e1650cd9fd125ef0e7da3d4172f5ed9a203961af","skills":[],"source":"cli/tri/src/census.rs","specPath":"specs/tools/tri/census.t27","summary":{"en":"Specs the compiler cannot read, ranked by the construct that stops it. Every census's printed population, against one counted another way.","ru":"Спеки, которые компилятор не может прочитать, ранжированные по конструкции, которая его останавливает. Напечатанная популяция каждой переписи против одной, посчитанной иначе."},"typecheckOk":true,"variant":"Commands::Census","whenToUse":"Specs the compiler cannot read, ranked by the construct that stops it. Every census's printed population, against one counted another way.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Ci (cli/tri/src/main.rs; module cli/tri/src/cibase.rs)","actions":[{"about":"List PR gates that have never run on the default branch.","name":"baseline"}],"agents":[],"args":[],"command":"tri ci","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Is the hardware this plan assumes actually attached? CI questions about the repository's own gates.","ABOUT_SOURCE":"clap /// doc on Commands::Ci (cli/tri/src/main.rs; module cli/tri/src/cibase.rs)","ACTIONS":["baseline"],"ACTIONS_ABOUT":["List PR gates that have never run on the default branch."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri ci","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/ci","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/ci","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/cibase.rs","VARIANT":"Commands::Ci","WHEN_TO_USE":"Is the hardware this plan assumes actually attached? CI questions about the repository's own gates.","WITNESS":"source-parse"},"health":"ok","id":"tri/ci","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/cibase.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_ci","name":{"en":"tri ci"},"qualifiedId":"gHashTag/t27:tri/ci","repo":"gHashTag/t27","schema":2,"searchText":"tri/ci tri ci is the hardware this plan assumes actually attached? ci questions about the repository's own gates. is the hardware this plan assumes actually attached? ci questions about the repository's own gates. baseline list pr gates that have never run on the default branch.","sha256":"589b4502973beca006108ffedabec587effb8778bfd21be45399b23bcae398f3","skills":[],"source":"cli/tri/src/cibase.rs","specPath":"specs/tools/tri/ci.t27","summary":{"en":"Is the hardware this plan assumes actually attached? CI questions about the repository's own gates.","ru":"Действительно ли подключено оборудование, которое предполагает этот план? Вопросы CI о собственных гейтах репозитория."},"typecheckOk":true,"variant":"Commands::Ci","whenToUse":"Is the hardware this plan assumes actually attached? CI questions about the repository's own gates.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Competitors (cli/tri/src/main.rs; module cli/tri/src/competitors.rs)","actions":[{"about":"Count the records, the double-entered papers and the unpublished zeros.","name":"audit"},{"about":"When the survey behind this table last read a paper, by the month its citations encode.","name":"freshness"}],"agents":[],"args":[],"command":"tri competitors","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"The competitor table against its own contract: how many of its published scores were never published, and how many papers it counts twice.","ABOUT_SOURCE":"clap /// doc on Commands::Competitors (cli/tri/src/main.rs; module cli/tri/src/competitors.rs)","ACTIONS":["audit","freshness"],"ACTIONS_ABOUT":["Count the records, the double-entered papers and the unpublished zeros.","When the survey behind this table last read a paper, by the month its citations encode."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri competitors","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/competitors","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/competitors","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/competitors.rs","VARIANT":"Commands::Competitors","WHEN_TO_USE":"The competitor table against its own contract: how many of its published scores were never published, and how many papers it counts twice.","WITNESS":"source-parse"},"health":"ok","id":"tri/competitors","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/competitors.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_competitors","name":{"en":"tri competitors"},"qualifiedId":"gHashTag/t27:tri/competitors","repo":"gHashTag/t27","schema":2,"searchText":"tri/competitors tri competitors the competitor table against its own contract: how many of its published scores were never published, and how many papers it counts twice. the competitor table against its own contract: how many of its published scores were never published, and how many papers it counts twice. audit count the records, the double-entered papers and the unpublished zeros. freshness when the survey behind this table last read a paper, by the month its citations encode.","sha256":"43fb47d6699c50e81d6ecd71f0f0791c5e0c46ba0fd69a2f066d60825d8f6706","skills":[],"source":"cli/tri/src/competitors.rs","specPath":"specs/tools/tri/competitors.t27","summary":{"en":"The competitor table against its own contract: how many of its published scores were never published, and how many papers it counts twice.","ru":"Таблица конкурентов против собственного контракта: сколько её опубликованных оценок никогда не публиковались и сколько статей она считает дважды."},"typecheckOk":true,"variant":"Commands::Competitors","whenToUse":"The competitor table against its own contract: how many of its published scores were never published, and how many papers it counts twice.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Discard (cli/tri/src/main.rs; module cli/tri/src/discard.rs)","actions":[{"about":"Rank the discarding specs, largest first, against the pinned volume.","name":"top"},{"about":"Group the discard by which recovery threw it away, and what it stopped on.","name":"classify"}],"agents":[],"args":[],"command":"tri discard","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"What the parser reads and throws away, ranked against its pinned bound.","ABOUT_SOURCE":"clap /// doc on Commands::Discard (cli/tri/src/main.rs; module cli/tri/src/discard.rs)","ACTIONS":["top","classify"],"ACTIONS_ABOUT":["Rank the discarding specs, largest first, against the pinned volume.","Group the discard by which recovery threw it away, and what it stopped on."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri discard","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/discard","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/discard","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/discard.rs","VARIANT":"Commands::Discard","WHEN_TO_USE":"What the parser reads and throws away, ranked against its pinned bound.","WITNESS":"source-parse"},"health":"ok","id":"tri/discard","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/discard.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_discard","name":{"en":"tri discard"},"qualifiedId":"gHashTag/t27:tri/discard","repo":"gHashTag/t27","schema":2,"searchText":"tri/discard tri discard what the parser reads and throws away, ranked against its pinned bound. what the parser reads and throws away, ranked against its pinned bound. top rank the discarding specs, largest first, against the pinned volume. classify group the discard by which recovery threw it away, and what it stopped on.","sha256":"601efe186f5a97dbfd2e82e397ac53f32210ccedb4fadf1c2ffd0c0ee62e4530","skills":[],"source":"cli/tri/src/discard.rs","specPath":"specs/tools/tri/discard.t27","summary":{"en":"What the parser reads and throws away, ranked against its pinned bound.","ru":"Что парсер читает и выбрасывает, в сравнении с закреплённой границей."},"typecheckOk":true,"variant":"Commands::Discard","whenToUse":"What the parser reads and throws away, ranked against its pinned bound.","witness":"source-parse"},{"aboutSource":"handler cmd_doctor match arms start/stop/status and its error text unknown doctor action (start|stop|status) (cli/tri/src/main.rs:934)","actions":[],"agents":[],"args":[{"about":"","name":""}],"command":"tri doctor","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Start, stop or show the doctor state kept in .trinity/state/doctor.json (actions: start | stop | status).","ABOUT_SOURCE":"handler cmd_doctor match arms start/stop/status and its error text unknown doctor action (start|stop|status) (cli/tri/src/main.rs:934)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[""],"COMMAND":"tri doctor","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/doctor","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/doctor","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Doctor","WHEN_TO_USE":"Start, stop or show the doctor state kept in .trinity/state/doctor.json (actions: start | stop | status).","WITNESS":"source-parse"},"health":"ok","id":"tri/doctor","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_doctor","name":{"en":"tri doctor"},"qualifiedId":"gHashTag/t27:tri/doctor","repo":"gHashTag/t27","schema":2,"searchText":"tri/doctor tri doctor start, stop or show the doctor state kept in .trinity/state/doctor.json (actions: start | stop | status). start, stop or show the doctor state kept in .trinity/state/doctor.json (actions: start | stop | status).","sha256":"be3ed8d97c7404a17400311d3432bec040d027f0a76ce264a459326204780fd9","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/doctor.t27","summary":{"en":"Start, stop or show the doctor state kept in .trinity/state/doctor.json (actions: start | stop | status).","ru":"Запускает, останавливает или показывает состояние doctor, хранимое в .trinity/state/doctor.json (действия: start | stop | status)."},"typecheckOk":true,"variant":"Commands::Doctor","whenToUse":"Start, stop or show the doctor state kept in .trinity/state/doctor.json (actions: start | stop | status).","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Elab (cli/tri/src/main.rs; module cli/tri/src/elab.rs)","actions":[{"about":"Distribution of elaboration diagnostics by message shape.","name":"classify"},{"about":"How many diagnostics are secondary -- same source line as one above.","name":"secondary"}],"agents":[],"args":[],"command":"tri elab","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Classify a compiler's error output before quoting a number from it.","ABOUT_SOURCE":"clap /// doc on Commands::Elab (cli/tri/src/main.rs; module cli/tri/src/elab.rs)","ACTIONS":["classify","secondary"],"ACTIONS_ABOUT":["Distribution of elaboration diagnostics by message shape.","How many diagnostics are secondary -- same source line as one above."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri elab","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/elab","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/elab","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/elab.rs","VARIANT":"Commands::Elab","WHEN_TO_USE":"Classify a compiler's error output before quoting a number from it.","WITNESS":"source-parse"},"health":"ok","id":"tri/elab","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/elab.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_elab","name":{"en":"tri elab"},"qualifiedId":"gHashTag/t27:tri/elab","repo":"gHashTag/t27","schema":2,"searchText":"tri/elab tri elab classify a compiler's error output before quoting a number from it. classify a compiler's error output before quoting a number from it. classify distribution of elaboration diagnostics by message shape. secondary how many diagnostics are secondary -- same source line as one above.","sha256":"e1ee4634ec3f0bb75b6c2f870fda5b9ba40f1c1329ad5ed38ce03a9351065791","skills":[],"source":"cli/tri/src/elab.rs","specPath":"specs/tools/tri/elab.t27","summary":{"en":"Classify a compiler's error output before quoting a number from it.","ru":"Классифицирует вывод ошибок компилятора прежде, чем цитировать из него число."},"typecheckOk":true,"variant":"Commands::Elab","whenToUse":"Classify a compiler's error output before quoting a number from it.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Emit (cli/tri/src/main.rs; module cli/tri/src/gendet.rs)","actions":[{"about":"Generate the corpus twice with the same binary and name what differs.","name":"determinism"}],"agents":[],"args":[],"command":"tri emit","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Does the same binary produce the same generated code twice?","ABOUT_SOURCE":"clap /// doc on Commands::Emit (cli/tri/src/main.rs; module cli/tri/src/gendet.rs)","ACTIONS":["determinism"],"ACTIONS_ABOUT":["Generate the corpus twice with the same binary and name what differs."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri emit","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/emit","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/emit","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/gendet.rs","VARIANT":"Commands::Emit","WHEN_TO_USE":"Does the same binary produce the same generated code twice? Every byte-comparison over emitted output -- seals, emit-bitexact, `corpus --per-spec` diffing -- assumes it does. Three of the four emitters do not; see #3006. (`Gen` is taken by the single-spec emitter, so this is `Emit`.)","WITNESS":"source-parse"},"health":"ok","id":"tri/emit","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/gendet.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_emit","name":{"en":"tri emit"},"qualifiedId":"gHashTag/t27:tri/emit","repo":"gHashTag/t27","schema":2,"searchText":"tri/emit tri emit does the same binary produce the same generated code twice? does the same binary produce the same generated code twice? every byte-comparison over emitted output -- seals, emit-bitexact, `corpus --per-spec` diffing -- assumes it does. three of the four emitters do not; see #3006. (`gen` is taken by the single-spec emitter, so this is `emit`.) determinism generate the corpus twice with the same binary and name what differs.","sha256":"c4d32975e53fc1cf71a345333d73454c185b745057a215af3113981eedc68517","skills":[],"source":"cli/tri/src/gendet.rs","specPath":"specs/tools/tri/emit.t27","summary":{"en":"Does the same binary produce the same generated code twice?","ru":"Даёт ли один и тот же бинарник один и тот же сгенерированный код дважды?"},"typecheckOk":true,"variant":"Commands::Emit","whenToUse":"Does the same binary produce the same generated code twice? Every byte-comparison over emitted output -- seals, emit-bitexact, `corpus --per-spec` diffing -- assumes it does. Three of the four emitters do not; see #3006. (`Gen` is taken by the single-spec emitter, so this is `Emit`.)","witness":"source-parse"},{"aboutSource":"tri-mcp tool tri_experience_save description (cli/tri-mcp/src/main.rs); ExperienceAction enum cli/tri/src/main.rs:457","actions":[{"about":"","name":"save"}],"agents":[{"letter":"E","ok":true}],"args":[],"command":"tri experience","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Saves an experience episode to the akashic log.","ABOUT_SOURCE":"tri-mcp tool tri_experience_save description (cli/tri-mcp/src/main.rs); ExperienceAction enum cli/tri/src/main.rs:457","ACTIONS":["save"],"ACTIONS_ABOUT":[""],"AGENTS":["E"],"AGENTS_NOTE":".claude/agents/agent-e-experience.md:64 (tri experience save -- Save episode to experience log). Lines 65-66 name tri experience query and tri notebook, which the CLI does not have at this commit.","ARGS":[],"COMMAND":"tri experience","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/experience","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/experience","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Experience","WHEN_TO_USE":"Saves an experience episode to the akashic log.","WITNESS":"source-parse"},"health":"ok","id":"tri/experience","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":[],"moduleName":"tool_tri_experience","name":{"en":"tri experience"},"qualifiedId":"gHashTag/t27:tri/experience","repo":"gHashTag/t27","schema":2,"searchText":"tri/experience tri experience saves an experience episode to the akashic log. saves an experience episode to the akashic log. save e","sha256":"08a7874c72e53ac1054c02ddb4a7649a6c4efb3c27ab9da7f4e148f6b9d05024","skills":[{"id":"t27/tri","via":["SUMMARY_EN"]}],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/experience.t27","summary":{"en":"Saves an experience episode to the akashic log.","ru":"Сохраняет эпизод опыта в акашический журнал."},"typecheckOk":true,"variant":"Commands::Experience","whenToUse":"Saves an experience episode to the akashic log.","witness":"source-parse"},{"aboutSource":"//! module doc, cli/tri/src/fleet.rs:1","actions":[{"about":"Scan the USB bus and say plainly what hardware is present.","name":"scan"},{"about":"Check the environments a claim depends on before repeating the claim.","name":"asof"}],"agents":[],"args":[],"command":"tri fleet","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"`tri fleet` -- is the hardware this plan assumes actually attached?","ABOUT_SOURCE":"//! module doc, cli/tri/src/fleet.rs:1","ACTIONS":["scan","asof"],"ACTIONS_ABOUT":["Scan the USB bus and say plainly what hardware is present.","Check the environments a claim depends on before repeating the claim."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri fleet","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/fleet","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/fleet","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/fleet.rs","VARIANT":"Commands::Fleet","WHEN_TO_USE":"`tri fleet` -- is the hardware this plan assumes actually attached?","WITNESS":"source-parse"},"health":"ok","id":"tri/fleet","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/fleet.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_fleet","name":{"en":"tri fleet"},"qualifiedId":"gHashTag/t27:tri/fleet","repo":"gHashTag/t27","schema":2,"searchText":"tri/fleet tri fleet `tri fleet` -- is the hardware this plan assumes actually attached? `tri fleet` -- is the hardware this plan assumes actually attached? scan scan the usb bus and say plainly what hardware is present. asof check the environments a claim depends on before repeating the claim.","sha256":"13c773d8e575a6f617dbcb4c86415a09bf50217b58f257efc4ea0ebc1ab90a8b","skills":[],"source":"cli/tri/src/fleet.rs","specPath":"specs/tools/tri/fleet.t27","summary":{"en":"`tri fleet` -- is the hardware this plan assumes actually attached?","ru":"`tri fleet` -- действительно ли подключено оборудование, которое предполагает этот план?"},"typecheckOk":true,"variant":"Commands::Fleet","whenToUse":"`tri fleet` -- is the hardware this plan assumes actually attached?","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Fmt (cli/tri/src/main.rs)","actions":[],"agents":[],"args":[{"about":"One package instead of the whole workspace.","name":"--package"},{"about":"Report what is dirty and whether a workflow formats, and stop.","name":"--dry-run"}],"command":"tri fmt","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Type names with more than one definition in the spec tree. Run the formatter and restore every file it rewrote that you had not touched.","ABOUT_SOURCE":"clap /// doc on Commands::Fmt (cli/tri/src/main.rs)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":["--package: One package instead of the whole workspace.","--dry-run: Report what is dirty and whether a workflow formats, and stop."],"COMMAND":"tri fmt","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/fmt","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/fmt","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Fmt","WHEN_TO_USE":"Type names with more than one definition in the spec tree. Run the formatter and restore every file it rewrote that you had not touched.","WITNESS":"source-parse"},"health":"ok","id":"tri/fmt","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_fmt","name":{"en":"tri fmt"},"qualifiedId":"gHashTag/t27:tri/fmt","repo":"gHashTag/t27","schema":2,"searchText":"tri/fmt tri fmt type names with more than one definition in the spec tree. run the formatter and restore every file it rewrote that you had not touched. type names with more than one definition in the spec tree. run the formatter and restore every file it rewrote that you had not touched.","sha256":"83e694d0156e30877c9a0d898b194667571fbc64181ff7c99dc0f7647a6f3452","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/fmt.t27","summary":{"en":"Type names with more than one definition in the spec tree. Run the formatter and restore every file it rewrote that you had not touched.","ru":"Имена типов с более чем одним определением в дереве спеков. Запускает форматтер и восстанавливает каждый переписанный им файл, которого вы не трогали."},"typecheckOk":true,"variant":"Commands::Fmt","whenToUse":"Type names with more than one definition in the spec tree. Run the formatter and restore every file it rewrote that you had not touched.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Fpga (cli/tri/src/main.rs; module cli/tri/src/fpga.rs)","actions":[{"about":"Read and print the JTAG IDCODE of the attached DLC10 cable target.","name":"idcode"},{"about":"Read the configuration IDCODE register via the Type-1 CFG_IN/CFG_OUT protocol. On a healthy XC7A100T this must return 0x13631093 (same as the JTAG IDCODE). If 0x00000000 is returned while `idcode` works, the read_cfg_reg implementation is broken.","name":"idcode-cfg"},{"about":"Program FPGA SRAM (volatile -- lost on power-cycle).","name":"sram"},{"about":"Program the on-board SPI flash (non-volatile / persistent).","name":"program"},{"about":"Read the SPI flash JEDEC ID via the JTAG-to-SPI bridge.","name":"flash-id"},{"about":"Read the raw CFG_OUT status register.","name":"status"},{"about":"Decode 7-series configuration registers for DONE=LOW diagnosis.","name":"debug"},{"about":"Load a bitstream into FPGA SRAM using openFPGALoader with a Digilent FTDI cable. This is the canonical path for the QMTech Wukong V1 / XC7A200T board because the in-tree `dlc10` driver only supports Xilinx DLC10 cables (VID=0x03FD), not the attached Digilent cable (VID=0x0403:0x6014).","name":"load-sram"},{"about":"Read and decode the FPGA STAT register via openFPGALoader.","name":"stat"},{"about":"Read the FPGA XADC sensors (temperature, VCCINT, VCCAUX) via openFPGALoader and print a JSON object. The board must be powered and connected through a supported cable such as `digilent_hs2`.","name":"read-xadc"},{"about":"Synthesize the GF16 4x4 matrix design through the openXC7 toolchain. Output is written to `/gf16_matmul4x4_top.bit`.","name":"synth-gf16"},{"about":"Program the on-board SPI flash (non-volatile) using openFPGALoader's JTAG-to-SPI bridge. Requires a matching `spiOverJtag` bitstream for the exact FPGA package; the XC7A200T-FGG676 bridge is present in recent openFPGALoader distributions but flash boot may still depend on board mode pins (see docs/reports/FPGA_LOOP_EVIDENCE_2026-07-04.md).","name":"program-flash"},{"about":"Dump SPI flash contents to a file via openFPGALoader's JTAG-to-SPI bridge.","name":"dump-flash"},{"about":"Parse the .bit header and print the configuration registers that affect Master SPI boot (COR0, COR1, WBSTAR, TIMER, CTL0, CTL1, IDCODE, BSPI).","name":"bit-config"},{"about":"Program the given .bit to SPI flash, dump the same region back, and compare the dumped bytes against the bitstream payload. This verifies the openFPGALoader write path is bit-perfect for the raw bitstream.","name":"round-trip-verify"},{"about":"Guided cold-POR boot experiment. Programs flash, asks the user to physically power-cycle the board, then captures STAT without a JTAG reset and prints a decision-tree diagnosis.","name":"boot-log"},{"about":"Deterministic cold-POR boot experiment with optional relay control. With `--relay-port MOCK` the command writes a deterministic, clearly labeled mock boot log so CI can exercise the cold-POR JSON path without touching hardware. Real relay ports are reserved for Variant A/B.","name":"cold-por"},{"about":"Board-less smoke gate for the FPGA path. Runs `tri fpga bit-config` on the GF16 demo bitstream and, if yosys is available, a synthesis smoke check on the demo Verilog. Requires no physical board.","name":"smoke-gate"},{"about":"Print or interactively confirm the cold-POR boot protocol. This is the standalone version of the instructions embedded in `boot-log` and `cclk-sweep`; use it to verify the operator steps before a physical power-cycle.","name":"boot-protocol"},{"about":"Patch the raw OSCFSEL field (COR0[22:17]) of a 7-series .bit file.","name":"patch-cor0"},{"about":"Generate a set of OSCFSEL variants from a single input .bit file. Outputs one file per requested value to the given directory.","name":"cclk-variants"},{"about":"Automated cold-POR CCLK sweep. Generates OSCFSEL variants, programs each to flash, prompts for the physical power-cycle, captures STAT, and writes JSON logs. The only manual step is disconnecting/reconnecting the cable and power-cycling the board.","name":"cclk-sweep"},{"about":"Read all `build/fpga/boot-log-*.json` files and produce a sweep report identifying the first working CCLK variant.","name":"sweep-report"},{"about":"Print DSLogic / oscilloscope instructions for measuring the FPGA CCLK output during Master SPI configuration. Optionally parse a DSView CSV export or run a live capture via `sigrok-cli` with a connected logic analyzer (e.g., the Digilent FTDI cable as `ftdi-la`).","name":"measure-cclk"},{"about":"Read the SPI flash status register via openFPGALoader's JTAG-to-SPI bridge. Decodes WIP, WEL, and QE bits to help diagnose boot-from-flash failures.","name":"flash-status"},{"about":"Diagnostic: load *only* the proxy bridge bitstream (or any other bitstream) into FPGA SRAM, report STAT, leave TAP in RTI. Does NOT touch SPI flash. Useful for verifying the bridge actually reaches DONE=HIGH before debugging SPI semantics.","name":"proxy-load"},{"about":"Diagnostic: read IDCODE + STAT *without* touching the FPGA. Run this immediately after `tri fpga proxy-load` to confirm the bridge is alive. Also confirms IR=USER1 select is accepted.","name":"proxy-status"},{"about":"Diagnostic: shift raw hex bytes through the USER1 BSCAN as a single SPI transaction. Reads `--rx N` MISO bytes after the TX stream. Requires the proxy bridge to be already loaded (`tri fpga proxy-load` first).","name":"spi-raw"},{"about":"Diagnostic: probe the IR capture pattern after selecting an IR. A healthy 7-series TAP always captures `0b000001` into the IR shift register. Anything else means the JTAG chain is broken or the cable is mis-driving TMS.","name":"ir-probe"},{"about":"Diagnostic: drive the full JEDEC-read flow end-to-end with maximum instrumentation, **including** the 0xAB Release-Power-down and 0x66+0x99 software-reset recovery attempts. Equivalent to `flash-id --verbose` plus auto-recovery.","name":"flash-id-debug"},{"about":"Build the QMTech XC7A100T-FGG676 JTAG-to-SPI proxy bitstream via the openXC7 open-source toolchain (yosys + nextpnr-himbaechel + prjxray). Requires `yosys`, `nextpnr-himbaechel`, `fasm2frames.py` and `xc7frames2bit` on PATH. With `--install`, the produced `.bit` is copied to `fpga/tools/bscan_spi_xc7a100t.bit` so the embedded `BSCAN_SPI_XC7A100T` constant picks it up on the next rebuild.","name":"build-proxy"},{"about":"Clone the openXC7 `nextpnr-xilinx` repo and build a chipdb (`.bba`) for the requested 7-series part, then install it into `~/.local/share/nextpnr/himbaechel-xilinx/`.","name":"setup-openxc7-chipdb"},{"about":"Generate a Lean 4 theorem from a `tri fpga measure-cclk --json` output. The theorem proves that the measured `(frequency, duty)` pair satisfies `measured_cclk_satisfies_flash_spec` and links it to `transaction_satisfies_flash_spec`. Useful for turning a real capture into a machine-checked proof without manual copy-paste.","name":"measured-to-lean"},{"about":"Print the PVT-derated N25Q128_3V SCK low/high bound for a supplied operating context. Also prints the margin over the nominal 6 ns bound and warns if the context is outside the documented operating envelope.","name":"pvt-envelope"},{"about":"Build the QMTech XC7A100T-FGG676 proxy bitstream via a Docker container running Xilinx Vivado. Clones our `openFPGALoader` fork (`feat/qmtech-xc7a100t-board`) into `target/openfpgaloader-fork/` and runs `make` inside `spiOverJtag/`. On Apple Silicon (arm64), the container runs under x86_64 emulation via `--platform linux/amd64`. With `--install`, the produced `bscan_spi_xc7a100tfgg676.bit.gz` is decompressed and copied to `fpga/tools/bscan_spi_xc7a100t.bit` and its SHA256 is printed.","name":"build-proxy-docker"}],"agents":[],"args":[],"command":"tri fpga","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"FPGA programming via the in-tree DLC10 driver (pure Rust).","ABOUT_SOURCE":"clap /// doc on Commands::Fpga (cli/tri/src/main.rs; module cli/tri/src/fpga.rs)","ACTIONS":["idcode","idcode-cfg","sram","program","flash-id","status","debug","load-sram","stat","read-xadc","synth-gf16","program-flash","dump-flash","bit-config","round-trip-verify","boot-log","cold-por","smoke-gate","boot-protocol","patch-cor0","cclk-variants","cclk-sweep","sweep-report","measure-cclk","flash-status","proxy-load","proxy-status","spi-raw","ir-probe","flash-id-debug","build-proxy","setup-openxc7-chipdb","measured-to-lean","pvt-envelope","build-proxy-docker"],"ACTIONS_ABOUT":["Read and print the JTAG IDCODE of the attached DLC10 cable target.","Read the configuration IDCODE register via the Type-1 CFG_IN/CFG_OUT protocol. On a healthy XC7A100T this must return 0x13631093 (same as the JTAG IDCODE). If 0x00000000 is returned while `idcode` works, the read_cfg_reg implementation is broken.","Program FPGA SRAM (volatile -- lost on power-cycle).","Program the on-board SPI flash (non-volatile / persistent).","Read the SPI flash JEDEC ID via the JTAG-to-SPI bridge.","Read the raw CFG_OUT status register.","Decode 7-series configuration registers for DONE=LOW diagnosis.","Load a bitstream into FPGA SRAM using openFPGALoader with a Digilent FTDI cable. This is the canonical path for the QMTech Wukong V1 / XC7A200T board because the in-tree `dlc10` driver only supports Xilinx DLC10 cables (VID=0x03FD), not the attached Digilent cable (VID=0x0403:0x6014).","Read and decode the FPGA STAT register via openFPGALoader.","Read the FPGA XADC sensors (temperature, VCCINT, VCCAUX) via openFPGALoader and print a JSON object. The board must be powered and connected through a supported cable such as `digilent_hs2`.","Synthesize the GF16 4x4 matrix design through the openXC7 toolchain. Output is written to `/gf16_matmul4x4_top.bit`.","Program the on-board SPI flash (non-volatile) using openFPGALoader's JTAG-to-SPI bridge. Requires a matching `spiOverJtag` bitstream for the exact FPGA package; the XC7A200T-FGG676 bridge is present in recent openFPGALoader distributions but flash boot may still depend on board mode pins (see docs/reports/FPGA_LOOP_EVIDENCE_2026-07-04.md).","Dump SPI flash contents to a file via openFPGALoader's JTAG-to-SPI bridge.","Parse the .bit header and print the configuration registers that affect Master SPI boot (COR0, COR1, WBSTAR, TIMER, CTL0, CTL1, IDCODE, BSPI).","Program the given .bit to SPI flash, dump the same region back, and compare the dumped bytes against the bitstream payload. This verifies the openFPGALoader write path is bit-perfect for the raw bitstream.","Guided cold-POR boot experiment. Programs flash, asks the user to physically power-cycle the board, then captures STAT without a JTAG reset and prints a decision-tree diagnosis.","Deterministic cold-POR boot experiment with optional relay control. With `--relay-port MOCK` the command writes a deterministic, clearly labeled mock boot log so CI can exercise the cold-POR JSON path without touching hardware. Real relay ports are reserved for Variant A/B.","Board-less smoke gate for the FPGA path. Runs `tri fpga bit-config` on the GF16 demo bitstream and, if yosys is available, a synthesis smoke check on the demo Verilog. Requires no physical board.","Print or interactively confirm the cold-POR boot protocol. This is the standalone version of the instructions embedded in `boot-log` and `cclk-sweep`; use it to verify the operator steps before a physical power-cycle.","Patch the raw OSCFSEL field (COR0[22:17]) of a 7-series .bit file.","Generate a set of OSCFSEL variants from a single input .bit file. Outputs one file per requested value to the given directory.","Automated cold-POR CCLK sweep. Generates OSCFSEL variants, programs each to flash, prompts for the physical power-cycle, captures STAT, and writes JSON logs. The only manual step is disconnecting/reconnecting the cable and power-cycling the board.","Read all `build/fpga/boot-log-*.json` files and produce a sweep report identifying the first working CCLK variant.","Print DSLogic / oscilloscope instructions for measuring the FPGA CCLK output during Master SPI configuration. Optionally parse a DSView CSV export or run a live capture via `sigrok-cli` with a connected logic analyzer (e.g., the Digilent FTDI cable as `ftdi-la`).","Read the SPI flash status register via openFPGALoader's JTAG-to-SPI bridge. Decodes WIP, WEL, and QE bits to help diagnose boot-from-flash failures.","Diagnostic: load *only* the proxy bridge bitstream (or any other bitstream) into FPGA SRAM, report STAT, leave TAP in RTI. Does NOT touch SPI flash. Useful for verifying the bridge actually reaches DONE=HIGH before debugging SPI semantics.","Diagnostic: read IDCODE + STAT *without* touching the FPGA. Run this immediately after `tri fpga proxy-load` to confirm the bridge is alive. Also confirms IR=USER1 select is accepted.","Diagnostic: shift raw hex bytes through the USER1 BSCAN as a single SPI transaction. Reads `--rx N` MISO bytes after the TX stream. Requires the proxy bridge to be already loaded (`tri fpga proxy-load` first).","Diagnostic: probe the IR capture pattern after selecting an IR. A healthy 7-series TAP always captures `0b000001` into the IR shift register. Anything else means the JTAG chain is broken or the cable is mis-driving TMS.","Diagnostic: drive the full JEDEC-read flow end-to-end with maximum instrumentation, **including** the 0xAB Release-Power-down and 0x66+0x99 software-reset recovery attempts. Equivalent to `flash-id --verbose` plus auto-recovery.","Build the QMTech XC7A100T-FGG676 JTAG-to-SPI proxy bitstream via the openXC7 open-source toolchain (yosys + nextpnr-himbaechel + prjxray). Requires `yosys`, `nextpnr-himbaechel`, `fasm2frames.py` and `xc7frames2bit` on PATH. With `--install`, the produced `.bit` is copied to `fpga/tools/bscan_spi_xc7a100t.bit` so the embedded `BSCAN_SPI_XC7A100T` constant picks it up on the next rebuild.","Clone the openXC7 `nextpnr-xilinx` repo and build a chipdb (`.bba`) for the requested 7-series part, then install it into `~/.local/share/nextpnr/himbaechel-xilinx/`.","Generate a Lean 4 theorem from a `tri fpga measure-cclk --json` output. The theorem proves that the measured `(frequency, duty)` pair satisfies `measured_cclk_satisfies_flash_spec` and links it to `transaction_satisfies_flash_spec`. Useful for turning a real capture into a machine-checked proof without manual copy-paste.","Print the PVT-derated N25Q128_3V SCK low/high bound for a supplied operating context. Also prints the margin over the nominal 6 ns bound and warns if the context is outside the documented operating envelope.","Build the QMTech XC7A100T-FGG676 proxy bitstream via a Docker container running Xilinx Vivado. Clones our `openFPGALoader` fork (`feat/qmtech-xc7a100t-board`) into `target/openfpgaloader-fork/` and runs `make` inside `spiOverJtag/`. On Apple Silicon (arm64), the container runs under x86_64 emulation via `--platform linux/amd64`. With `--install`, the produced `bscan_spi_xc7a100tfgg676.bit.gz` is decompressed and copied to `fpga/tools/bscan_spi_xc7a100t.bit` and its SHA256 is printed."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri fpga","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/fpga","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/fpga","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/fpga.rs","VARIANT":"Commands::Fpga","WHEN_TO_USE":"FPGA programming via the in-tree DLC10 driver (pure Rust).","WITNESS":"source-parse"},"health":"ok","id":"tri/fpga","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/fpga.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_fpga","name":{"en":"tri fpga"},"qualifiedId":"gHashTag/t27:tri/fpga","repo":"gHashTag/t27","schema":2,"searchText":"tri/fpga tri fpga fpga programming via the in-tree dlc10 driver (pure rust). fpga programming via the in-tree dlc10 driver (pure rust). idcode read and print the jtag idcode of the attached dlc10 cable target. idcode-cfg read the configuration idcode register via the type-1 cfg_in/cfg_out protocol. on a healthy xc7a100t this must return 0x13631093 (same as the jtag idcode). if 0x00000000 is returned while `idcode` works, the read_cfg_reg implementation is broken. sram program fpga sram (volatile -- lost on power-cycle). program program the on-board spi flash (non-volatile / persistent). flash-id read the spi flash jedec id via the jtag-to-spi bridge. status read the raw cfg_out status register. debug decode 7-series configuration registers for done=low diagnosis. load-sram load a bitstream into fpga sram using openfpgaloader with a digilent ftdi cable. this is the canonical path for the qmtech wukong v1 / xc7a200t board because the in-tree `dlc10` driver only supports xilinx dlc10 cables (vid=0x03fd), not the attached digilent cable (vid=0x0403:0x6014). stat read and decode the fpga stat register via openfpgaloader. read-xadc read the fpga xadc sensors (temperature, vccint, vccaux) via openfpgaloader and print a json object. the board must be powered and connected through a supported cable such as `digilent_hs2`. synth-gf16 synthesize the gf16 4x4 matrix design through the openxc7 toolchain. output is written to `/gf16_matmul4x4_top.bit`. program-flash program the on-board spi flash (non-volatile) using openfpgaloader's jtag-to-spi bridge. requires a matching `spioverjtag` bitstream for the exact fpga package; the xc7a200t-fgg676 bridge is present in recent openfpgaloader distributions but flash boot may still depend on board mode pins (see docs/reports/fpga_loop_evidence_2026-07-04.md). dump-flash dump spi flash contents to a file via openfpgaloader's jtag-to-spi bridge. bit-config parse the .bit header and print the configuration registers that affect master spi boot (cor0, cor1, wbstar, timer, ctl0, ctl1, idcode, bspi). round-trip-verify program the given .bit to spi flash, dump the same region back, and compare the dumped bytes against the bitstream payload. this verifies the openfpgaloader write path is bit-perfect for the raw bitstream. boot-log guided cold-por boot experiment. programs flash, asks the user to physically power-cycle the board, then captures stat without a jtag reset and prints a decision-tree diagnosis. cold-por deterministic cold-por boot experiment with optional relay control. with `--relay-port mock` the command writes a deterministic, clearly labeled mock boot log so ci can exercise the cold-por json path without touching hardware. real relay ports are reserved for variant a/b. smoke-gate board-less smoke gate for the fpga path. runs `tri fpga bit-config` on the gf16 demo bitstream and, if yosys is available, a synthesis smoke check on the demo verilog. requires no physical board. boot-protocol print or interactively confirm the cold-por boot protocol. this is the standalone version of the instructions embedded in `boot-log` and `cclk-sweep`; use it to verify the operator steps before a physical power-cycle. patch-cor0 patch the raw oscfsel field (cor0[22:17]) of a 7-series .bit file. cclk-variants generate a set of oscfsel variants from a single input .bit file. outputs one file per requested value to the given directory. cclk-sweep automated cold-por cclk sweep. generates oscfsel variants, programs each to flash, prompts for the physical power-cycle, captures stat, and writes json logs. the only manual step is disconnecting/reconnecting the cable and power-cycling the board. sweep-report read all `build/fpga/boot-log-*.json` files and produce a sweep report identifying the first working cclk variant. measure-cclk print dslogic / oscilloscope instructions for measuring the fpga cclk output during master spi configuration. optionally parse a dsview csv export or run a live capture via `sigrok-cli` with a connected logic analyzer (e.g., the digilent ftdi cable as `ftdi-la`). flash-status read the spi flash status register via openfpgaloader's jtag-to-spi bridge. decodes wip, wel, and qe bits to help diagnose boot-from-flash failures. proxy-load diagnostic: load *only* the proxy bridge bitstream (or any other bitstream) into fpga sram, report stat, leave tap in rti. does not touch spi flash. useful for verifying the bridge actually reaches done=high before debugging spi semantics. proxy-status diagnostic: read idcode + stat *without* touching the fpga. run this immediately after `tri fpga proxy-load` to confirm the bridge is alive. also confirms ir=user1 select is accepted. spi-raw diagnostic: shift raw hex bytes through the user1 bscan as a single spi transaction. reads `--rx n` miso bytes after the tx stream. requires the proxy bridge to be already loaded (`tri fpga proxy-load` first). ir-probe diagnostic: probe the ir capture pattern after selecting an ir. a healthy 7-series tap always captures `0b000001` into the ir shift register. anything else means the jtag chain is broken or the cable is mis-driving tms. flash-id-debug diagnostic: drive the full jedec-read flow end-to-end with maximum instrumentation, **including** the 0xab release-power-down and 0x66+0x99 software-reset recovery attempts. equivalent to `flash-id --verbose` plus auto-recovery. build-proxy build the qmtech xc7a100t-fgg676 jtag-to-spi proxy bitstream via the openxc7 open-source toolchain (yosys + nextpnr-himbaechel + prjxray). requires `yosys`, `nextpnr-himbaechel`, `fasm2frames.py` and `xc7frames2bit` on path. with `--install`, the produced `.bit` is copied to `fpga/tools/bscan_spi_xc7a100t.bit` so the embedded `bscan_spi_xc7a100t` constant picks it up on the next rebuild. setup-openxc7-chipdb clone the openxc7 `nextpnr-xilinx` repo and build a chipdb (`.bba`) for the requested 7-series part, then install it into `~/.local/share/nextpnr/himbaechel-xilinx/`. measured-to-lean generate a lean 4 theorem from a `tri fpga measure-cclk --json` output. the theorem proves that the measured `(frequency, duty)` pair satisfies `measured_cclk_satisfies_flash_spec` and links it to `transaction_satisfies_flash_spec`. useful for turning a real capture into a machine-checked proof without manual copy-paste. pvt-envelope print the pvt-derated n25q128_3v sck low/high bound for a supplied operating context. also prints the margin over the nominal 6 ns bound and warns if the context is outside the documented operating envelope. build-proxy-docker build the qmtech xc7a100t-fgg676 proxy bitstream via a docker container running xilinx vivado. clones our `openfpgaloader` fork (`feat/qmtech-xc7a100t-board`) into `target/openfpgaloader-fork/` and runs `make` inside `spioverjtag/`. on apple silicon (arm64), the container runs under x86_64 emulation via `--platform linux/amd64`. with `--install`, the produced `bscan_spi_xc7a100tfgg676.bit.gz` is decompressed and copied to `fpga/tools/bscan_spi_xc7a100t.bit` and its sha256 is printed.","sha256":"aaf7d2d4ae26d149b68e8c50d010bcda79b6ba3bf30c782194ca37bd60f8c7b6","skills":[],"source":"cli/tri/src/fpga.rs","specPath":"specs/tools/tri/fpga.t27","summary":{"en":"FPGA programming via the in-tree DLC10 driver (pure Rust).","ru":"Программирование FPGA через встроенный драйвер DLC10 (чистый Rust)."},"typecheckOk":true,"variant":"Commands::Fpga","whenToUse":"FPGA programming via the in-tree DLC10 driver (pure Rust).","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Gates (cli/tri/src/main.rs; module cli/tri/src/gates.rs)","actions":[{"about":"Classify the compiler's own warnings. `rustc` already answers \"is this value ever read\" and \"does anything call this\" for the whole crate; the answer only helps if somebody reads it.","name":"warnings"},{"about":"Run every gate script and its negative control; name the ones with none.","name":"sweep"},{"about":"Break each gate's failure path and demand its control notices.","name":"mutate"},{"about":"Open pull requests whose path-filtered CI never ran.","name":"prs"},{"about":"What the tree says is required, against what the ruleset requires.","name":"preview"},{"about":"Which interpreter each gate step is handed to, and who says so.","name":"shell"},{"about":"Gate steps whose PASS is reachable with the thing they check absent.","name":"quiet"},{"about":"Every bounded GitHub fetch in this crate, and whether it can tell a page from a total.","name":"fetches"},{"about":"Run every gate CI runs, in an EMPTY tree, and report what still passes.","name":"empty"},{"about":"","name":"required"},{"about":"List active workflows whose lifetime success count is zero.","name":"dead"},{"about":"Workflows with no recent run on the default branch: their green is about frequency, not health.","name":"tests"},{"about":"","name":"unmeasured"}],"agents":[],"args":[],"command":"tri gates","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Find workflows that have never once succeeded.","ABOUT_SOURCE":"clap /// doc on Commands::Gates (cli/tri/src/main.rs; module cli/tri/src/gates.rs)","ACTIONS":["warnings","sweep","mutate","prs","preview","shell","quiet","fetches","empty","required","dead","tests","unmeasured"],"ACTIONS_ABOUT":["Classify the compiler's own warnings. `rustc` already answers \"is this value ever read\" and \"does anything call this\" for the whole crate; the answer only helps if somebody reads it.","Run every gate script and its negative control; name the ones with none.","Break each gate's failure path and demand its control notices.","Open pull requests whose path-filtered CI never ran.","What the tree says is required, against what the ruleset requires.","Which interpreter each gate step is handed to, and who says so.","Gate steps whose PASS is reachable with the thing they check absent.","Every bounded GitHub fetch in this crate, and whether it can tell a page from a total.","Run every gate CI runs, in an EMPTY tree, and report what still passes.","","List active workflows whose lifetime success count is zero.","Workflows with no recent run on the default branch: their green is about frequency, not health.",""],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri gates","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/gates","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/gates","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/gates.rs","VARIANT":"Commands::Gates","WHEN_TO_USE":"Find workflows that have never once succeeded.","WITNESS":"source-parse"},"health":"ok","id":"tri/gates","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/gates.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_gates","name":{"en":"tri gates"},"qualifiedId":"gHashTag/t27:tri/gates","repo":"gHashTag/t27","schema":2,"searchText":"tri/gates tri gates find workflows that have never once succeeded. find workflows that have never once succeeded. warnings classify the compiler's own warnings. `rustc` already answers \"is this value ever read\" and \"does anything call this\" for the whole crate; the answer only helps if somebody reads it. sweep run every gate script and its negative control; name the ones with none. mutate break each gate's failure path and demand its control notices. prs open pull requests whose path-filtered ci never ran. preview what the tree says is required, against what the ruleset requires. shell which interpreter each gate step is handed to, and who says so. quiet gate steps whose pass is reachable with the thing they check absent. fetches every bounded github fetch in this crate, and whether it can tell a page from a total. empty run every gate ci runs, in an empty tree, and report what still passes. required dead list active workflows whose lifetime success count is zero. tests workflows with no recent run on the default branch: their green is about frequency, not health. unmeasured","sha256":"de8489f65be8b1db66b2c9bf3abe96643c580d39e4b856cd6a9a3511e404975d","skills":[],"source":"cli/tri/src/gates.rs","specPath":"specs/tools/tri/gates.t27","summary":{"en":"Find workflows that have never once succeeded.","ru":"Находит воркфлоу, которые ни разу не завершались успешно."},"typecheckOk":true,"variant":"Commands::Gates","whenToUse":"Find workflows that have never once succeeded.","witness":"source-parse"},{"aboutSource":"tri-mcp tool tri_gen description (cli/tri-mcp/src/main.rs); handler cmd_gen runs t27c gen-verilog, gen-c, gen-rust (cli/tri/src/main.rs:862)","actions":[],"agents":[{"letter":"C","ok":true},{"letter":"T","ok":true}],"args":[{"about":"","name":""}],"command":"tri gen","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Generates backends from a .t27 spec file using t27c.","ABOUT_SOURCE":"tri-mcp tool tri_gen description (cli/tri-mcp/src/main.rs); handler cmd_gen runs t27c gen-verilog, gen-c, gen-rust (cli/tri/src/main.rs:862)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":["C","T"],"AGENTS_NOTE":".claude/agents/agent-c-compiler.md:40 (tri gen -- Generate code from specs; trigger On tri gen command, line 7); .claude/agents/trinity.md:68 (5. Gen - Run tri gen).","ARGS":[""],"COMMAND":"tri gen","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/gen","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/gen","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Gen","WHEN_TO_USE":"Generates backends from a .t27 spec file using t27c.","WITNESS":"source-parse"},"health":"ok","id":"tri/gen","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":[],"moduleName":"tool_tri_gen","name":{"en":"tri gen"},"qualifiedId":"gHashTag/t27:tri/gen","repo":"gHashTag/t27","schema":2,"searchText":"tri/gen tri gen generates backends from a .t27 spec file using t27c. generates backends from a .t27 spec file using t27c. c t","sha256":"8739f5a9100f6f989b3558fa5c49af008fb134e3c640c67a0ca946e2880e42bb","skills":[{"id":"t27/tri","via":["SUMMARY_EN"]}],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/gen.t27","summary":{"en":"Generates backends from a .t27 spec file using t27c.","ru":"Генерирует бэкенды из файла спецификации .t27 через t27c."},"typecheckOk":true,"variant":"Commands::Gen","whenToUse":"Generates backends from a .t27 spec file using t27c.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Harness (cli/tri/src/main.rs)","actions":[{"about":"Test binaries whose tests share one scratch directory.","name":"scratch"}],"agents":[],"args":[],"command":"tri harness","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Source files no crate root reaches, and so nothing compiles. Test-harness hygiene.","ABOUT_SOURCE":"clap /// doc on Commands::Harness (cli/tri/src/main.rs)","ACTIONS":["scratch"],"ACTIONS_ABOUT":["Test binaries whose tests share one scratch directory."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri harness","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/harness","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/harness","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Harness","WHEN_TO_USE":"Source files no crate root reaches, and so nothing compiles. Test-harness hygiene.","WITNESS":"source-parse"},"health":"ok","id":"tri/harness","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_harness","name":{"en":"tri harness"},"qualifiedId":"gHashTag/t27:tri/harness","repo":"gHashTag/t27","schema":2,"searchText":"tri/harness tri harness source files no crate root reaches, and so nothing compiles. test-harness hygiene. source files no crate root reaches, and so nothing compiles. test-harness hygiene. scratch test binaries whose tests share one scratch directory.","sha256":"67c635dcb96730ead658e8233879cc6f2b3cb56d9c6e85259629d10b9a536b9c","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/harness.t27","summary":{"en":"Source files no crate root reaches, and so nothing compiles. Test-harness hygiene.","ru":"Исходные файлы, до которых не доходит ни один корень крейта, и потому ничего не компилируется. Гигиена тестового харнесса."},"typecheckOk":true,"variant":"Commands::Harness","whenToUse":"Source files no crate root reaches, and so nothing compiles. Test-harness hygiene.","witness":"source-parse"},{"aboutSource":"tri-mcp tool tri_health description (cli/tri-mcp/src/main.rs); handler cmd_health reads .trinity/state/queen-health.json (cli/tri/src/main.rs:969)","actions":[],"agents":[],"args":[{"about":"","name":""}],"command":"tri health","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Returns queen and swarm health status from .trinity state.","ABOUT_SOURCE":"tri-mcp tool tri_health description (cli/tri-mcp/src/main.rs); handler cmd_health reads .trinity/state/queen-health.json (cli/tri/src/main.rs:969)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[""],"COMMAND":"tri health","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/health","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/health","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Health","WHEN_TO_USE":"Returns queen and swarm health status from .trinity state.","WITNESS":"source-parse"},"health":"ok","id":"tri/health","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_health","name":{"en":"tri health"},"qualifiedId":"gHashTag/t27:tri/health","repo":"gHashTag/t27","schema":2,"searchText":"tri/health tri health returns queen and swarm health status from .trinity state. returns queen and swarm health status from .trinity state.","sha256":"678ece919f8363e769be5541575ec25163565cf04481f776448b81c3fbac94c9","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/health.t27","summary":{"en":"Returns queen and swarm health status from .trinity state.","ru":"Показывает состояние здоровья королевы и роя из состояния .trinity."},"typecheckOk":true,"variant":"Commands::Health","whenToUse":"Returns queen and swarm health status from .trinity state.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Hooks (cli/tri/src/main.rs; module cli/tri/src/hooks.rs)","actions":[{"about":"Run every migrated commit-time gate in sequence (l1-check + now-gate).","name":"pre-commit"},{"about":"A pull request whose title claims a compiler fix must carry a source file.","name":"fix-carries-source"},{"about":"Ask the required NOW gate's own script whether this push adds an entry.","name":"pre-push"},{"about":"L1 TRACEABILITY over the message BEING WRITTEN, from the commit-msg hook.","name":"commit-msg"},{"about":"L1 TRACEABILITY: last commit message must reference an issue (`Closes #N` / `Fixes #N` / `Resolves #N` / `Reference #N`).","name":"l1-check"},{"about":"Verify a fresh `docs/now/-.md` entry exists.","name":"now-gate"},{"about":"Session-start guard for the Claude Code harness. Emits a one-line status string to stdout; never blocks (the Bash gate is a soft telemetry hook).","name":"session-gate"},{"about":"Which hooks git will actually run, and whose installer output is dead.","name":"status"}],"agents":[],"args":[],"command":"tri hooks","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Pure-Rust ports of repository commit / push gates.","ABOUT_SOURCE":"clap /// doc on Commands::Hooks (cli/tri/src/main.rs; module cli/tri/src/hooks.rs)","ACTIONS":["pre-commit","fix-carries-source","pre-push","commit-msg","l1-check","now-gate","session-gate","status"],"ACTIONS_ABOUT":["Run every migrated commit-time gate in sequence (l1-check + now-gate).","A pull request whose title claims a compiler fix must carry a source file.","Ask the required NOW gate's own script whether this push adds an entry.","L1 TRACEABILITY over the message BEING WRITTEN, from the commit-msg hook.","L1 TRACEABILITY: last commit message must reference an issue (`Closes #N` / `Fixes #N` / `Resolves #N` / `Reference #N`).","Verify a fresh `docs/now/-.md` entry exists.","Session-start guard for the Claude Code harness. Emits a one-line status string to stdout; never blocks (the Bash gate is a soft telemetry hook).","Which hooks git will actually run, and whose installer output is dead."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri hooks","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/hooks","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/hooks","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/hooks.rs","VARIANT":"Commands::Hooks","WHEN_TO_USE":"Pure-Rust ports of repository commit / push gates.","WITNESS":"source-parse"},"health":"ok","id":"tri/hooks","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/hooks.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_hooks","name":{"en":"tri hooks"},"qualifiedId":"gHashTag/t27:tri/hooks","repo":"gHashTag/t27","schema":2,"searchText":"tri/hooks tri hooks pure-rust ports of repository commit / push gates. pure-rust ports of repository commit / push gates. pre-commit run every migrated commit-time gate in sequence (l1-check + now-gate). fix-carries-source a pull request whose title claims a compiler fix must carry a source file. pre-push ask the required now gate's own script whether this push adds an entry. commit-msg l1 traceability over the message being written, from the commit-msg hook. l1-check l1 traceability: last commit message must reference an issue (`closes #n` / `fixes #n` / `resolves #n` / `reference #n`). now-gate verify a fresh `docs/now/-.md` entry exists. session-gate session-start guard for the claude code harness. emits a one-line status string to stdout; never blocks (the bash gate is a soft telemetry hook). status which hooks git will actually run, and whose installer output is dead.","sha256":"533eeb860d6bc3f69d612c3d2630965bf50b8533f50c4f4900b25ab42e838db2","skills":[],"source":"cli/tri/src/hooks.rs","specPath":"specs/tools/tri/hooks.t27","summary":{"en":"Pure-Rust ports of repository commit / push gates.","ru":"Порты гейтов коммита/пуша репозитория на чистом Rust."},"typecheckOk":true,"variant":"Commands::Hooks","whenToUse":"Pure-Rust ports of repository commit / push gates.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Issues (cli/tri/src/main.rs; module cli/tri/src/issues.rs)","actions":[{"about":"Open issues whose title calls a workflow red, and what it does today.","name":"stale"},{"about":"Open issues that state a COUNT in the title, and a reproducible sample.","name":"numbers"},{"about":"Open issues whose figure is ANCHORED, so re-measuring it proves nothing.","name":"dated"}],"agents":[],"args":[],"command":"tri issues","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Open issues whose headline calls a workflow red, against what that workflow concludes on master today.","ABOUT_SOURCE":"clap /// doc on Commands::Issues (cli/tri/src/main.rs; module cli/tri/src/issues.rs)","ACTIONS":["stale","numbers","dated"],"ACTIONS_ABOUT":["Open issues whose title calls a workflow red, and what it does today.","Open issues that state a COUNT in the title, and a reproducible sample.","Open issues whose figure is ANCHORED, so re-measuring it proves nothing."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri issues","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/issues","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/issues","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/issues.rs","VARIANT":"Commands::Issues","WHEN_TO_USE":"Open issues whose headline calls a workflow red, against what that workflow concludes on master today.","WITNESS":"source-parse"},"health":"ok","id":"tri/issues","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/issues.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_issues","name":{"en":"tri issues"},"qualifiedId":"gHashTag/t27:tri/issues","repo":"gHashTag/t27","schema":2,"searchText":"tri/issues tri issues open issues whose headline calls a workflow red, against what that workflow concludes on master today. open issues whose headline calls a workflow red, against what that workflow concludes on master today. stale open issues whose title calls a workflow red, and what it does today. numbers open issues that state a count in the title, and a reproducible sample. dated open issues whose figure is anchored, so re-measuring it proves nothing.","sha256":"e7b50b366482d2b8d45d2ac34d8c26df07c1834693fb3cce83c043be0509d75c","skills":[],"source":"cli/tri/src/issues.rs","specPath":"specs/tools/tri/issues.t27","summary":{"en":"Open issues whose headline calls a workflow red, against what that workflow concludes on master today.","ru":"Открытые issue, чей заголовок называет воркфлоу красным, против того, к чему этот воркфлоу приходит на master сегодня."},"typecheckOk":true,"variant":"Commands::Issues","whenToUse":"Open issues whose headline calls a workflow red, against what that workflow concludes on master today.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Jumps (cli/tri/src/main.rs; module cli/tri/src/jumps.rs)","actions":[{"about":"Name every `break`/`continue` site in the generated Verilog and say what it lowered to.","name":"census"}],"agents":[],"args":[],"command":"tri jumps","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"What happened to every `break` and `continue` the Verilog emitter had to lower?","ABOUT_SOURCE":"clap /// doc on Commands::Jumps (cli/tri/src/main.rs; module cli/tri/src/jumps.rs)","ACTIONS":["census"],"ACTIONS_ABOUT":["Name every `break`/`continue` site in the generated Verilog and say what it lowered to."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri jumps","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/jumps","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/jumps","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/jumps.rs","VARIANT":"Commands::Jumps","WHEN_TO_USE":"What happened to every `break` and `continue` the Verilog emitter had to lower? `break` was `disable fork;` and `continue` was `/* continue */;`. Both parse, both synthesise, both are no-ops -- so every instrument that asks whether the output PARSES said yes for as long as the emitter has existed. See #2988.","WITNESS":"source-parse"},"health":"ok","id":"tri/jumps","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/jumps.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_jumps","name":{"en":"tri jumps"},"qualifiedId":"gHashTag/t27:tri/jumps","repo":"gHashTag/t27","schema":2,"searchText":"tri/jumps tri jumps what happened to every `break` and `continue` the verilog emitter had to lower? what happened to every `break` and `continue` the verilog emitter had to lower? `break` was `disable fork;` and `continue` was `/* continue */;`. both parse, both synthesise, both are no-ops -- so every instrument that asks whether the output parses said yes for as long as the emitter has existed. see #2988. census name every `break`/`continue` site in the generated verilog and say what it lowered to.","sha256":"905308ea72644feb0e72d64a5d6c6edaed7e0d8e7182e7d52d8157f9951e756a","skills":[],"source":"cli/tri/src/jumps.rs","specPath":"specs/tools/tri/jumps.t27","summary":{"en":"What happened to every `break` and `continue` the Verilog emitter had to lower?","ru":"Что случилось с каждым `break` и `continue`, которые эмиттеру Verilog пришлось опустить?"},"typecheckOk":true,"variant":"Commands::Jumps","whenToUse":"What happened to every `break` and `continue` the Verilog emitter had to lower? `break` was `disable fork;` and `continue` was `/* continue */;`. Both parse, both synthesise, both are no-ops -- so every instrument that asks whether the output PARSES said yes for as long as the emitter has existed. See #2988.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Kinds (cli/tri/src/main.rs; module cli/tri/src/kinddrift.rs)","actions":[{"about":"Match arms whose comment names a construct the pattern does not cover.","name":"drift"}],"agents":[],"args":[],"command":"tri kinds","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Match arms whose own comment names a case the pattern omits.","ABOUT_SOURCE":"clap /// doc on Commands::Kinds (cli/tri/src/main.rs; module cli/tri/src/kinddrift.rs)","ACTIONS":["drift"],"ACTIONS_ABOUT":["Match arms whose comment names a construct the pattern does not cover."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri kinds","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/kinds","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/kinds","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/kinddrift.rs","VARIANT":"Commands::Kinds","WHEN_TO_USE":"Match arms whose own comment names a case the pattern omits.","WITNESS":"source-parse"},"health":"ok","id":"tri/kinds","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/kinddrift.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_kinds","name":{"en":"tri kinds"},"qualifiedId":"gHashTag/t27:tri/kinds","repo":"gHashTag/t27","schema":2,"searchText":"tri/kinds tri kinds match arms whose own comment names a case the pattern omits. match arms whose own comment names a case the pattern omits. drift match arms whose comment names a construct the pattern does not cover.","sha256":"76affd22763395ddb1ff3639130a93df72fdd0c7491275d4ef3f1cd0bc5c9377","skills":[],"source":"cli/tri/src/kinddrift.rs","specPath":"specs/tools/tri/kinds.t27","summary":{"en":"Match arms whose own comment names a case the pattern omits.","ru":"Ветви match, чей собственный комментарий называет случай, который паттерн пропускает."},"typecheckOk":true,"variant":"Commands::Kinds","whenToUse":"Match arms whose own comment names a case the pattern omits.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Lean (cli/tri/src/main.rs; module cli/tri/src/leanvac.rs)","actions":[{"about":"Completeness theorems whose model has no functions.","name":"vacuous"},{"about":"Proof files the build root does not reach, and so nothing compiles.","name":"reach"}],"agents":[],"args":[],"command":"tri lean","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Completeness theorems whose Lean model is empty.","ABOUT_SOURCE":"clap /// doc on Commands::Lean (cli/tri/src/main.rs; module cli/tri/src/leanvac.rs)","ACTIONS":["vacuous","reach"],"ACTIONS_ABOUT":["Completeness theorems whose model has no functions.","Proof files the build root does not reach, and so nothing compiles."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri lean","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/lean","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/lean","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/leanvac.rs","VARIANT":"Commands::Lean","WHEN_TO_USE":"Completeness theorems whose Lean model is empty.","WITNESS":"source-parse"},"health":"ok","id":"tri/lean","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/leanvac.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_lean","name":{"en":"tri lean"},"qualifiedId":"gHashTag/t27:tri/lean","repo":"gHashTag/t27","schema":2,"searchText":"tri/lean tri lean completeness theorems whose lean model is empty. completeness theorems whose lean model is empty. vacuous completeness theorems whose model has no functions. reach proof files the build root does not reach, and so nothing compiles.","sha256":"9e8b0319877e064acbadfcf4e2611da323f38382cee7f318b4f552e01d560898","skills":[],"source":"cli/tri/src/leanvac.rs","specPath":"specs/tools/tri/lean.t27","summary":{"en":"Completeness theorems whose Lean model is empty.","ru":"Теоремы полноты, у которых модель Lean пуста."},"typecheckOk":true,"variant":"Commands::Lean","whenToUse":"Completeness theorems whose Lean model is empty.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Ledgers (cli/tri/src/main.rs; module cli/tri/src/ledgers.rs)","actions":[{"about":"Plant a stale entry in each ledger and demand its gate fail.","name":"audit"}],"agents":[],"args":[],"command":"tri ledgers","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Does each ledger's gate notice when one of its entries stops being true?","ABOUT_SOURCE":"clap /// doc on Commands::Ledgers (cli/tri/src/main.rs; module cli/tri/src/ledgers.rs)","ACTIONS":["audit"],"ACTIONS_ABOUT":["Plant a stale entry in each ledger and demand its gate fail."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri ledgers","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/ledgers","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/ledgers","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/ledgers.rs","VARIANT":"Commands::Ledgers","WHEN_TO_USE":"Does each ledger's gate notice when one of its entries stops being true?","WITNESS":"source-parse"},"health":"ok","id":"tri/ledgers","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/ledgers.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_ledgers","name":{"en":"tri ledgers"},"qualifiedId":"gHashTag/t27:tri/ledgers","repo":"gHashTag/t27","schema":2,"searchText":"tri/ledgers tri ledgers does each ledger's gate notice when one of its entries stops being true? does each ledger's gate notice when one of its entries stops being true? audit plant a stale entry in each ledger and demand its gate fail.","sha256":"98f0c29164ca0fcd92e851d96e061e6f442a80fccab59e71f5d617f364afd7dc","skills":[],"source":"cli/tri/src/ledgers.rs","specPath":"specs/tools/tri/ledgers.t27","summary":{"en":"Does each ledger's gate notice when one of its entries stops being true?","ru":"Замечает ли гейт каждого леджера, когда одна из его записей перестаёт быть истинной?"},"typecheckOk":true,"variant":"Commands::Ledgers","whenToUse":"Does each ledger's gate notice when one of its entries stops being true?","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Loop (cli/tri/src/main.rs; module cli/tri/src/loopclaim.rs)","actions":[{"about":"Take the named claim, or say who already holds it.","name":"claim"}],"agents":[],"args":[],"command":"tri loop","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"What is failing on the default branch right now, and since when. Take a named claim so two sessions of the loop cannot pick the same task.","ABOUT_SOURCE":"clap /// doc on Commands::Loop (cli/tri/src/main.rs; module cli/tri/src/loopclaim.rs)","ACTIONS":["claim"],"ACTIONS_ABOUT":["Take the named claim, or say who already holds it."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri loop","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/loop","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/loop","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/loopclaim.rs","VARIANT":"Commands::Loop","WHEN_TO_USE":"What is failing on the default branch right now, and since when. Take a named claim so two sessions of the loop cannot pick the same task.","WITNESS":"source-parse"},"health":"ok","id":"tri/loop","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/loopclaim.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_loop","name":{"en":"tri loop"},"qualifiedId":"gHashTag/t27:tri/loop","repo":"gHashTag/t27","schema":2,"searchText":"tri/loop tri loop what is failing on the default branch right now, and since when. take a named claim so two sessions of the loop cannot pick the same task. what is failing on the default branch right now, and since when. take a named claim so two sessions of the loop cannot pick the same task. claim take the named claim, or say who already holds it.","sha256":"a204edbc1869df4b6d5953432ed6597eb23b9ba0b67d766a13c999d97499f45c","skills":[],"source":"cli/tri/src/loopclaim.rs","specPath":"specs/tools/tri/loop.t27","summary":{"en":"What is failing on the default branch right now, and since when. Take a named claim so two sessions of the loop cannot pick the same task.","ru":"Что падает на ветке по умолчанию прямо сейчас и с какого момента. Берёт именованную заявку, чтобы две сессии лупа не взяли одну задачу."},"typecheckOk":true,"variant":"Commands::Loop","whenToUse":"What is failing on the default branch right now, and since when. Take a named claim so two sessions of the loop cannot pick the same task.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Merging (cli/tri/src/main.rs; module cli/tri/src/inflight.rs)","actions":[],"agents":[],"args":[{"about":"The base this branch is supposed to carry. A ref, not a URL.","name":"--base"},{"about":"Also check the commits behind HEAD, not only HEAD itself.","name":"--depth"}],"command":"tri merging","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Is a merge in flight here, and does this branch carry the base?","ABOUT_SOURCE":"clap /// doc on Commands::Merging (cli/tri/src/main.rs; module cli/tri/src/inflight.rs)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":["--base: The base this branch is supposed to carry. A ref, not a URL.","--depth: Also check the commits behind HEAD, not only HEAD itself."],"COMMAND":"tri merging","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/merging","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/merging","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/inflight.rs","VARIANT":"Commands::Merging","WHEN_TO_USE":"Is a merge in flight here, and does this branch carry the base?","WITNESS":"source-parse"},"health":"ok","id":"tri/merging","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/inflight.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_merging","name":{"en":"tri merging"},"qualifiedId":"gHashTag/t27:tri/merging","repo":"gHashTag/t27","schema":2,"searchText":"tri/merging tri merging is a merge in flight here, and does this branch carry the base? is a merge in flight here, and does this branch carry the base?","sha256":"bb4167b8b988820e63e2e42cc9b3f1eeaea9a9caf00e15d8c3f3e0b5cd9d0cb5","skills":[],"source":"cli/tri/src/inflight.rs","specPath":"specs/tools/tri/merging.t27","summary":{"en":"Is a merge in flight here, and does this branch carry the base?","ru":"Идёт ли здесь мерж, и несёт ли эта ветка базу?"},"typecheckOk":true,"variant":"Commands::Merging","whenToUse":"Is a merge in flight here, and does this branch carry the base?","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Misread (cli/tri/src/main.rs; module cli/tri/src/misread.rs)","actions":[],"agents":[],"args":[{"about":"Root of the spec tree.","name":"--specs-dir"},{"about":"Name every spec under each shape rather than only counting.","name":"--list"}],"command":"tri misread","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"The specs the compiler reads WRONGLY. Every gate is green on them.","ABOUT_SOURCE":"clap /// doc on Commands::Misread (cli/tri/src/main.rs; module cli/tri/src/misread.rs)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":["--specs-dir: Root of the spec tree.","--list: Name every spec under each shape rather than only counting."],"COMMAND":"tri misread","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/misread","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/misread","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/misread.rs","VARIANT":"Commands::Misread","WHEN_TO_USE":"The specs the compiler reads WRONGLY. Every gate is green on them.","WITNESS":"source-parse"},"health":"ok","id":"tri/misread","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/misread.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_misread","name":{"en":"tri misread"},"qualifiedId":"gHashTag/t27:tri/misread","repo":"gHashTag/t27","schema":2,"searchText":"tri/misread tri misread the specs the compiler reads wrongly. every gate is green on them. the specs the compiler reads wrongly. every gate is green on them.","sha256":"4c27da6a18f488afac5ac4be903b614994749278742678c74490e1a74ff991a7","skills":[],"source":"cli/tri/src/misread.rs","specPath":"specs/tools/tri/misread.t27","summary":{"en":"The specs the compiler reads WRONGLY. Every gate is green on them.","ru":"Спеки, которые компилятор читает НЕВЕРНО. Все гейты на них зелёные."},"typecheckOk":true,"variant":"Commands::Misread","whenToUse":"The specs the compiler reads WRONGLY. Every gate is green on them.","witness":"source-parse"},{"aboutSource":"//! module doc, cli/tri/src/modreach.rs:1 (Commands::Mods dispatches to modreach, cli/tri/src/main.rs:1085)","actions":[{"about":"List them.","name":"orphan"}],"agents":[],"args":[],"command":"tri mods","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"`tri mods orphan` -- `.rs` files no crate root reaches.","ABOUT_SOURCE":"//! module doc, cli/tri/src/modreach.rs:1 (Commands::Mods dispatches to modreach, cli/tri/src/main.rs:1085)","ACTIONS":["orphan"],"ACTIONS_ABOUT":["List them."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri mods","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/mods","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/mods","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Mods","WHEN_TO_USE":"`tri mods orphan` -- `.rs` files no crate root reaches.","WITNESS":"source-parse"},"health":"ok","id":"tri/mods","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_mods","name":{"en":"tri mods"},"qualifiedId":"gHashTag/t27:tri/mods","repo":"gHashTag/t27","schema":2,"searchText":"tri/mods tri mods `tri mods orphan` -- `.rs` files no crate root reaches. `tri mods orphan` -- `.rs` files no crate root reaches. orphan list them.","sha256":"45754d036ee4eced4776bb6c2d85addf2cf176e7c70098f78b3fdb4db7df17c1","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/mods.t27","summary":{"en":"`tri mods orphan` -- `.rs` files no crate root reaches.","ru":"`tri mods orphan` -- файлы `.rs`, до которых не доходит ни один корень крейта."},"typecheckOk":true,"variant":"Commands::Mods","whenToUse":"`tri mods orphan` -- `.rs` files no crate root reaches.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Mutate (cli/tri/src/main.rs; module cli/tri/src/mutate.rs)","actions":[{"about":"Perturb each numeric literal in a file and report which ones the checker does not notice.","name":"run"}],"agents":[],"args":[],"command":"tri mutate","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Find the constants in a checker that nothing actually checks.","ABOUT_SOURCE":"clap /// doc on Commands::Mutate (cli/tri/src/main.rs; module cli/tri/src/mutate.rs)","ACTIONS":["run"],"ACTIONS_ABOUT":["Perturb each numeric literal in a file and report which ones the checker does not notice."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri mutate","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/mutate","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/mutate","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/mutate.rs","VARIANT":"Commands::Mutate","WHEN_TO_USE":"Find the constants in a checker that nothing actually checks.","WITNESS":"source-parse"},"health":"ok","id":"tri/mutate","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/mutate.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_mutate","name":{"en":"tri mutate"},"qualifiedId":"gHashTag/t27:tri/mutate","repo":"gHashTag/t27","schema":2,"searchText":"tri/mutate tri mutate find the constants in a checker that nothing actually checks. find the constants in a checker that nothing actually checks. run perturb each numeric literal in a file and report which ones the checker does not notice.","sha256":"163456bf9900804666e0f1f53bb7ca1bc76faa89f27e30bf34ca869f8388ea98","skills":[],"source":"cli/tri/src/mutate.rs","specPath":"specs/tools/tri/mutate.t27","summary":{"en":"Find the constants in a checker that nothing actually checks.","ru":"Находит в чекере константы, которые на деле ничем не проверяются."},"typecheckOk":true,"variant":"Commands::Mutate","whenToUse":"Find the constants in a checker that nothing actually checks.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Now (cli/tri/src/main.rs; module cli/tri/src/nownote.rs)","actions":[{"about":"Write a docs/now/ entry: title, bullets, optional issue ref.","name":"add"},{"about":"Ask the REQUIRED `check` gate its own question, before pushing.","name":"check"}],"agents":[],"args":[],"command":"tri now","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Write a docs/now/ entry without hand-writing the frame.","ABOUT_SOURCE":"clap /// doc on Commands::Now (cli/tri/src/main.rs; module cli/tri/src/nownote.rs)","ACTIONS":["add","check"],"ACTIONS_ABOUT":["Write a docs/now/ entry: title, bullets, optional issue ref.","Ask the REQUIRED `check` gate its own question, before pushing."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri now","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/now","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/now","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/nownote.rs","VARIANT":"Commands::Now","WHEN_TO_USE":"Write a docs/now/ entry without hand-writing the frame.","WITNESS":"source-parse"},"health":"ok","id":"tri/now","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/nownote.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_now","name":{"en":"tri now"},"qualifiedId":"gHashTag/t27:tri/now","repo":"gHashTag/t27","schema":2,"searchText":"tri/now tri now write a docs/now/ entry without hand-writing the frame. write a docs/now/ entry without hand-writing the frame. add write a docs/now/ entry: title, bullets, optional issue ref. check ask the required `check` gate its own question, before pushing.","sha256":"e151864300830e0cdde07121285099fdc47c1de925ec4a5e78bba71a29e6a94a","skills":[],"source":"cli/tri/src/nownote.rs","specPath":"specs/tools/tri/now.t27","summary":{"en":"Write a docs/now/ entry without hand-writing the frame.","ru":"Пишет запись docs/now/ без ручного набора рамки."},"typecheckOk":true,"variant":"Commands::Now","whenToUse":"Write a docs/now/ entry without hand-writing the frame.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::OneAway (cli/tri/src/main.rs; module cli/tri/src/oneaway.rs)","actions":[],"agents":[],"args":[{"about":"Also list every spec, not only the class tally.","name":"--names"},{"about":"Report specs with exactly this many errors. The default, 1, is the only bucket a single repair can move; `--errors 2` is the next wave.","name":"--errors"},{"about":"Stop after this many specs. Prints what was dropped -- a silent cap reads as coverage.","name":"--limit"},{"about":"Run the controls and report, changing nothing.","name":"--self-check"}],"command":"tri one-away","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Failing specs one defect from compiling, and what that defect is","ABOUT_SOURCE":"clap /// doc on Commands::OneAway (cli/tri/src/main.rs; module cli/tri/src/oneaway.rs)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":["--names: Also list every spec, not only the class tally.","--errors: Report specs with exactly this many errors. The default, 1, is the only bucket a single repair can move; `--errors 2` is the next wave.","--limit: Stop after this many specs. Prints what was dropped -- a silent cap reads as coverage.","--self-check: Run the controls and report, changing nothing."],"COMMAND":"tri one-away","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/one-away","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/one-away","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/oneaway.rs","VARIANT":"Commands::OneAway","WHEN_TO_USE":"Failing specs one defect from compiling, and what that defect is","WITNESS":"source-parse"},"health":"ok","id":"tri/one-away","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/oneaway.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_one_away","name":{"en":"tri one-away"},"qualifiedId":"gHashTag/t27:tri/one-away","repo":"gHashTag/t27","schema":2,"searchText":"tri/one-away tri one-away failing specs one defect from compiling, and what that defect is failing specs one defect from compiling, and what that defect is","sha256":"f823bbea9d121e61a27e9c8d899004d2f3712876eab334ed3982a62908fd8ab2","skills":[],"source":"cli/tri/src/oneaway.rs","specPath":"specs/tools/tri/one-away.t27","summary":{"en":"Failing specs one defect from compiling, and what that defect is","ru":"Падающие спеки, которым до компиляции один дефект, и какой именно."},"typecheckOk":true,"variant":"Commands::OneAway","whenToUse":"Failing specs one defect from compiling, and what that defect is","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Orphaned (cli/tri/src/main.rs; module cli/tri/src/orphaned.rs)","actions":[{"about":"List gate and tool sources that name an input which is not in the tree.","name":"list"}],"agents":[],"args":[],"command":"tri orphaned","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Checks whose input is not in the tree.","ABOUT_SOURCE":"clap /// doc on Commands::Orphaned (cli/tri/src/main.rs; module cli/tri/src/orphaned.rs)","ACTIONS":["list"],"ACTIONS_ABOUT":["List gate and tool sources that name an input which is not in the tree."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri orphaned","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/orphaned","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/orphaned","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/orphaned.rs","VARIANT":"Commands::Orphaned","WHEN_TO_USE":"Checks whose input is not in the tree.","WITNESS":"source-parse"},"health":"ok","id":"tri/orphaned","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/orphaned.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_orphaned","name":{"en":"tri orphaned"},"qualifiedId":"gHashTag/t27:tri/orphaned","repo":"gHashTag/t27","schema":2,"searchText":"tri/orphaned tri orphaned checks whose input is not in the tree. checks whose input is not in the tree. list list gate and tool sources that name an input which is not in the tree.","sha256":"f9808d318e75aa5ea4ea3e5b3bf33f0a667aab6a00c7c5aa91f2cc77e3e846bd","skills":[],"source":"cli/tri/src/orphaned.rs","specPath":"specs/tools/tri/orphaned.t27","summary":{"en":"Checks whose input is not in the tree.","ru":"Проверки, чей вход отсутствует в дереве."},"typecheckOk":true,"variant":"Commands::Orphaned","whenToUse":"Checks whose input is not in the tree.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Pr (cli/tri/src/main.rs; module cli/tri/src/prcheck.rs)","actions":[{"about":"Classify every failing check and say plainly whether it is safe to merge. Did this pull request's content actually reach the default branch?","name":"landed"},{"about":"","name":"ready"}],"agents":[],"args":[],"command":"tri pr","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Is this pull request actually safe to merge?","ABOUT_SOURCE":"clap /// doc on Commands::Pr (cli/tri/src/main.rs; module cli/tri/src/prcheck.rs)","ACTIONS":["landed","ready"],"ACTIONS_ABOUT":["Classify every failing check and say plainly whether it is safe to merge. Did this pull request's content actually reach the default branch?",""],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri pr","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/pr","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/pr","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/prcheck.rs","VARIANT":"Commands::Pr","WHEN_TO_USE":"Is this pull request actually safe to merge?","WITNESS":"source-parse"},"health":"ok","id":"tri/pr","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/prcheck.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_pr","name":{"en":"tri pr"},"qualifiedId":"gHashTag/t27:tri/pr","repo":"gHashTag/t27","schema":2,"searchText":"tri/pr tri pr is this pull request actually safe to merge? is this pull request actually safe to merge? landed classify every failing check and say plainly whether it is safe to merge. did this pull request's content actually reach the default branch? ready","sha256":"4909a13b33ff6128bf308132850effbdfcfc1b44bb8ccedf1c7bacc288dea720","skills":[],"source":"cli/tri/src/prcheck.rs","specPath":"specs/tools/tri/pr.t27","summary":{"en":"Is this pull request actually safe to merge?","ru":"Действительно ли этот pull request безопасно мержить?"},"typecheckOk":true,"variant":"Commands::Pr","whenToUse":"Is this pull request actually safe to merge?","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Prose (cli/tri/src/main.rs; module cli/tri/src/prose.rs)","actions":[{"about":"Which specs are blocked only by prose, and how many lines that is.","name":"report"}],"agents":[],"args":[],"command":"tri prose","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Specs a literate author left prose in, and how far that prose is from code.","ABOUT_SOURCE":"clap /// doc on Commands::Prose (cli/tri/src/main.rs; module cli/tri/src/prose.rs)","ACTIONS":["report"],"ACTIONS_ABOUT":["Which specs are blocked only by prose, and how many lines that is."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri prose","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/prose","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/prose","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/prose.rs","VARIANT":"Commands::Prose","WHEN_TO_USE":"Specs a literate author left prose in, and how far that prose is from code.","WITNESS":"source-parse"},"health":"ok","id":"tri/prose","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/prose.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_prose","name":{"en":"tri prose"},"qualifiedId":"gHashTag/t27:tri/prose","repo":"gHashTag/t27","schema":2,"searchText":"tri/prose tri prose specs a literate author left prose in, and how far that prose is from code. specs a literate author left prose in, and how far that prose is from code. report which specs are blocked only by prose, and how many lines that is.","sha256":"8689a47ee97a2588da26a7492f8c6f543dd25702b9962cbdd25ce16070129d38","skills":[],"source":"cli/tri/src/prose.rs","specPath":"specs/tools/tri/prose.t27","summary":{"en":"Specs a literate author left prose in, and how far that prose is from code.","ru":"Спеки, в которых литературный автор оставил прозу, и насколько эта проза далека от кода."},"typecheckOk":true,"variant":"Commands::Prose","whenToUse":"Specs a literate author left prose in, and how far that prose is from code.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Quantifiers (cli/tri/src/main.rs; module cli/tri/src/quant.rs)","actions":[{"about":"Every quantified clause, its binders, and the size of its domain.","name":"report"},{"about":"Every line carrying a quantifier keyword, and whether the census read it.","name":"audit"}],"agents":[],"args":[],"command":"tri quantifiers","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Every quantified clause, its binders, and the size of its domain.","ABOUT_SOURCE":"clap /// doc on Commands::Quantifiers (cli/tri/src/main.rs; module cli/tri/src/quant.rs)","ACTIONS":["report","audit"],"ACTIONS_ABOUT":["Every quantified clause, its binders, and the size of its domain.","Every line carrying a quantifier keyword, and whether the census read it."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri quantifiers","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/quantifiers","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/quantifiers","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/quant.rs","VARIANT":"Commands::Quantifiers","WHEN_TO_USE":"Every quantified clause, its binders, and the size of its domain.","WITNESS":"source-parse"},"health":"ok","id":"tri/quantifiers","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/quant.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_quantifiers","name":{"en":"tri quantifiers"},"qualifiedId":"gHashTag/t27:tri/quantifiers","repo":"gHashTag/t27","schema":2,"searchText":"tri/quantifiers tri quantifiers every quantified clause, its binders, and the size of its domain. every quantified clause, its binders, and the size of its domain. report every quantified clause, its binders, and the size of its domain. audit every line carrying a quantifier keyword, and whether the census read it.","sha256":"f6500ab3e4a78e54e2e83ed1aa6eb389ec0da64ebb735841849c788efc0e1a44","skills":[],"source":"cli/tri/src/quant.rs","specPath":"specs/tools/tri/quantifiers.t27","summary":{"en":"Every quantified clause, its binders, and the size of its domain.","ru":"Каждая квантифицированная клауза, её связанные переменные и размер её домена."},"typecheckOk":true,"variant":"Commands::Quantifiers","whenToUse":"Every quantified clause, its binders, and the size of its domain.","witness":"source-parse"},{"aboutSource":"//! module doc, cli/tri/src/red.rs:1","actions":[{"about":"Show workflows whose most recent run on the default branch failed.","name":"now"},{"about":"Which STEP each recent failure of one workflow died at, oldest first.","name":"why"}],"agents":[],"args":[],"command":"tri red","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"`tri red` -- what is failing on main right now, and since when.","ABOUT_SOURCE":"//! module doc, cli/tri/src/red.rs:1","ACTIONS":["now","why"],"ACTIONS_ABOUT":["Show workflows whose most recent run on the default branch failed.","Which STEP each recent failure of one workflow died at, oldest first."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri red","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/red","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/red","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/red.rs","VARIANT":"Commands::Red","WHEN_TO_USE":"`tri red` -- what is failing on main right now, and since when.","WITNESS":"source-parse"},"health":"ok","id":"tri/red","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/red.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_red","name":{"en":"tri red"},"qualifiedId":"gHashTag/t27:tri/red","repo":"gHashTag/t27","schema":2,"searchText":"tri/red tri red `tri red` -- what is failing on main right now, and since when. `tri red` -- what is failing on main right now, and since when. now show workflows whose most recent run on the default branch failed. why which step each recent failure of one workflow died at, oldest first.","sha256":"dbc09d850d87e9623513a9eedf77764f4b84cb299f4175c068eee278a0748a71","skills":[],"source":"cli/tri/src/red.rs","specPath":"specs/tools/tri/red.t27","summary":{"en":"`tri red` -- what is failing on main right now, and since when.","ru":"`tri red` -- что падает на main прямо сейчас и с какого момента."},"typecheckOk":true,"variant":"Commands::Red","whenToUse":"`tri red` -- what is failing on main right now, and since when.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Reseal (cli/tri/src/main.rs; module cli/tri/src/reseal.rs)","actions":[{"about":"Rewrite FROZEN_HASH from the current bytes of the sealed file.","name":"write"},{"about":"Report whether the seal matches, and exit non-zero if it does not.","name":"check"}],"agents":[],"args":[],"command":"tri reseal","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Recompute the FROZEN_HASH seal from the file it seals.","ABOUT_SOURCE":"clap /// doc on Commands::Reseal (cli/tri/src/main.rs; module cli/tri/src/reseal.rs)","ACTIONS":["write","check"],"ACTIONS_ABOUT":["Rewrite FROZEN_HASH from the current bytes of the sealed file.","Report whether the seal matches, and exit non-zero if it does not."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri reseal","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/reseal","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/reseal","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/reseal.rs","VARIANT":"Commands::Reseal","WHEN_TO_USE":"Recompute the FROZEN_HASH seal from the file it seals.","WITNESS":"source-parse"},"health":"ok","id":"tri/reseal","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/reseal.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_reseal","name":{"en":"tri reseal"},"qualifiedId":"gHashTag/t27:tri/reseal","repo":"gHashTag/t27","schema":2,"searchText":"tri/reseal tri reseal recompute the frozen_hash seal from the file it seals. recompute the frozen_hash seal from the file it seals. write rewrite frozen_hash from the current bytes of the sealed file. check report whether the seal matches, and exit non-zero if it does not.","sha256":"f4b1478122c02d2e4c50a5bb589e03e97212875c368fad659824f5f532e824d8","skills":[],"source":"cli/tri/src/reseal.rs","specPath":"specs/tools/tri/reseal.t27","summary":{"en":"Recompute the FROZEN_HASH seal from the file it seals.","ru":"Пересчитывает печать FROZEN_HASH по файлу, который она запечатывает."},"typecheckOk":true,"variant":"Commands::Reseal","whenToUse":"Recompute the FROZEN_HASH seal from the file it seals.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Rtl (cli/tri/src/main.rs; module cli/tri/src/rtl.rs)","actions":[{"about":"Run the five structural checks on a design directory.","name":"check"}],"agents":[],"args":[],"command":"tri rtl","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"The structural check t27.ai offers, run locally: five verdicts, the yosys version beside the numbers, and no claim about correctness.","ABOUT_SOURCE":"clap /// doc on Commands::Rtl (cli/tri/src/main.rs; module cli/tri/src/rtl.rs)","ACTIONS":["check"],"ACTIONS_ABOUT":["Run the five structural checks on a design directory."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri rtl","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/rtl","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/rtl","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/rtl.rs","VARIANT":"Commands::Rtl","WHEN_TO_USE":"The structural check t27.ai offers, run locally: five verdicts, the yosys version beside the numbers, and no claim about correctness.","WITNESS":"source-parse"},"health":"ok","id":"tri/rtl","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/rtl.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_rtl","name":{"en":"tri rtl"},"qualifiedId":"gHashTag/t27:tri/rtl","repo":"gHashTag/t27","schema":2,"searchText":"tri/rtl tri rtl the structural check t27.ai offers, run locally: five verdicts, the yosys version beside the numbers, and no claim about correctness. the structural check t27.ai offers, run locally: five verdicts, the yosys version beside the numbers, and no claim about correctness. check run the five structural checks on a design directory.","sha256":"656a55d5c53935a47b6bfb87528cb7eadd93b56ea60bc246f720ace506be7109","skills":[],"source":"cli/tri/src/rtl.rs","specPath":"specs/tools/tri/rtl.t27","summary":{"en":"The structural check t27.ai offers, run locally: five verdicts, the yosys version beside the numbers, and no claim about correctness.","ru":"Структурная проверка, которую предлагает t27.ai, локально: пять вердиктов, версия yosys рядом с числами и никаких заявлений о корректности."},"typecheckOk":true,"variant":"Commands::Rtl","whenToUse":"The structural check t27.ai offers, run locally: five verdicts, the yosys version beside the numbers, and no claim about correctness.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Seals (cli/tri/src/main.rs; module cli/tri/src/seals.rs)","actions":[{"about":"Is the built compiler newer than the source the seals are checked against?","name":"fresh"},{"about":"Seals whose claims no longer match what the compiler produces, and the one command that repairs them.","name":"drift"},{"about":"Specs that carry more than one seal, and which of those pairs disagree.","name":"twins"},{"about":"Copy the NEWEST seal's claims onto its twins, after a re-seal.","name":"sync-twins"},{"about":"Seals that record `gen_hash=none` -- a spec that produced no output, sealed.","name":"hollow"}],"agents":[],"args":[],"command":"tri seals","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"What `.trinity/seals` says about a spec, when it says it twice.","ABOUT_SOURCE":"clap /// doc on Commands::Seals (cli/tri/src/main.rs; module cli/tri/src/seals.rs)","ACTIONS":["fresh","drift","twins","sync-twins","hollow"],"ACTIONS_ABOUT":["Is the built compiler newer than the source the seals are checked against?","Seals whose claims no longer match what the compiler produces, and the one command that repairs them.","Specs that carry more than one seal, and which of those pairs disagree.","Copy the NEWEST seal's claims onto its twins, after a re-seal.","Seals that record `gen_hash=none` -- a spec that produced no output, sealed."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri seals","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/seals","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/seals","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/seals.rs","VARIANT":"Commands::Seals","WHEN_TO_USE":"What `.trinity/seals` says about a spec, when it says it twice.","WITNESS":"source-parse"},"health":"ok","id":"tri/seals","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/seals.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_seals","name":{"en":"tri seals"},"qualifiedId":"gHashTag/t27:tri/seals","repo":"gHashTag/t27","schema":2,"searchText":"tri/seals tri seals what `.trinity/seals` says about a spec, when it says it twice. what `.trinity/seals` says about a spec, when it says it twice. fresh is the built compiler newer than the source the seals are checked against? drift seals whose claims no longer match what the compiler produces, and the one command that repairs them. twins specs that carry more than one seal, and which of those pairs disagree. sync-twins copy the newest seal's claims onto its twins, after a re-seal. hollow seals that record `gen_hash=none` -- a spec that produced no output, sealed.","sha256":"e0932fe334d920e6591445980b99b8b9bebb845756394199bd209c13e13d0d15","skills":[],"source":"cli/tri/src/seals.rs","specPath":"specs/tools/tri/seals.t27","summary":{"en":"What `.trinity/seals` says about a spec, when it says it twice.","ru":"Что `.trinity/seals` говорит о спеке, когда говорит это дважды."},"typecheckOk":true,"variant":"Commands::Seals","whenToUse":"What `.trinity/seals` says about a spec, when it says it twice.","witness":"source-parse"},{"aboutSource":"handler cmd_serve routes and banner string (cli/tri/src/main.rs:1121)","actions":[],"agents":[],"args":[{"about":"","name":"--addr"}],"command":"tri serve","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Serve the trinity depin HTTP API over axum: POST /prove, GET /epoch-challenge, GET /health; prints trinity depin v0.1.0 -- listening on .","ABOUT_SOURCE":"handler cmd_serve routes and banner string (cli/tri/src/main.rs:1121)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":["--addr"],"COMMAND":"tri serve","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/serve","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/serve","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Serve","WHEN_TO_USE":"Serve the trinity depin HTTP API over axum: POST /prove, GET /epoch-challenge, GET /health; prints trinity depin v0.1.0 -- listening on .","WITNESS":"source-parse"},"health":"ok","id":"tri/serve","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_serve","name":{"en":"tri serve"},"qualifiedId":"gHashTag/t27:tri/serve","repo":"gHashTag/t27","schema":2,"searchText":"tri/serve tri serve serve the trinity depin http api over axum: post /prove, get /epoch-challenge, get /health; prints trinity depin v0.1.0 -- listening on . serve the trinity depin http api over axum: post /prove, get /epoch-challenge, get /health; prints trinity depin v0.1.0 -- listening on .","sha256":"0aa1373204ff6f8fd41fd8d19428f3d0754fc124578e3f1fbcc2f55c9ff55f4a","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/serve.t27","summary":{"en":"Serve the trinity depin HTTP API over axum: POST /prove, GET /epoch-challenge, GET /health; prints trinity depin v0.1.0 -- listening on .","ru":"Поднимает HTTP API trinity depin на axum: POST /prove, GET /epoch-challenge, GET /health; печатает «trinity depin v0.1.0 -- listening on »."},"typecheckOk":true,"variant":"Commands::Serve","whenToUse":"Serve the trinity depin HTTP API over axum: POST /prove, GET /epoch-challenge, GET /health; prints trinity depin v0.1.0 -- listening on .","witness":"source-parse"},{"aboutSource":"tri-mcp tools tri_skill_begin and tri_skill_end descriptions (cli/tri-mcp/src/main.rs); SkillAction enum cli/tri/src/main.rs:349","actions":[{"about":"Write a new lesson to the spool, unnumbered.","name":"add"},{"about":"Fold every spooled lesson into SKILL.md, numbering them on the way in.","name":"fold"},{"about":"Check every SKILL.md's section numbering for collisions.","name":"check"},{"about":"Sections whose body was cut short at some point in the file's history.","name":"lost"},{"about":"Every cross-reference in the skills, and whether it resolves.","name":"refs"},{"about":"Sections that state a FIGURE, and which of those a reader can re-take.","name":"claims"},{"about":"Move sections you appended to the numbers the base branch left free.","name":"renumber"},{"about":"","name":"begin"},{"about":"","name":"end"}],"agents":[],"args":[],"command":"tri skill","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Begins a new PHI LOOP skill session bound to an issue. Ends the active PHI LOOP skill session. The add/fold/check/lost/refs/claims/renumber actions carry their own clap docs (SKILL.md lesson spool).","ABOUT_SOURCE":"tri-mcp tools tri_skill_begin and tri_skill_end descriptions (cli/tri-mcp/src/main.rs); SkillAction enum cli/tri/src/main.rs:349","ACTIONS":["add","fold","check","lost","refs","claims","renumber","begin","end"],"ACTIONS_ABOUT":["Write a new lesson to the spool, unnumbered.","Fold every spooled lesson into SKILL.md, numbering them on the way in.","Check every SKILL.md's section numbering for collisions.","Sections whose body was cut short at some point in the file's history.","Every cross-reference in the skills, and whether it resolves.","Sections that state a FIGURE, and which of those a reader can re-take.","Move sections you appended to the numbers the base branch left free.","",""],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri skill","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/skill","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/skill","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Skill","WHEN_TO_USE":"Begins a new PHI LOOP skill session bound to an issue. Ends the active PHI LOOP skill session. The add/fold/check/lost/refs/claims/renumber actions carry their own clap docs (SKILL.md lesson spool).","WITNESS":"source-parse"},"health":"ok","id":"tri/skill","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_skill","name":{"en":"tri skill"},"qualifiedId":"gHashTag/t27:tri/skill","repo":"gHashTag/t27","schema":2,"searchText":"tri/skill tri skill begins a new phi loop skill session bound to an issue. ends the active phi loop skill session. the add/fold/check/lost/refs/claims/renumber actions carry their own clap docs (skill.md lesson spool). begins a new phi loop skill session bound to an issue. ends the active phi loop skill session. the add/fold/check/lost/refs/claims/renumber actions carry their own clap docs (skill.md lesson spool). add write a new lesson to the spool, unnumbered. fold fold every spooled lesson into skill.md, numbering them on the way in. check check every skill.md's section numbering for collisions. lost sections whose body was cut short at some point in the file's history. refs every cross-reference in the skills, and whether it resolves. claims sections that state a figure, and which of those a reader can re-take. renumber move sections you appended to the numbers the base branch left free. begin end","sha256":"4e19baf0ea4267dbbd23f71b8d324779c85427672378205a64726118c36a8e68","skills":[{"id":"t27/tri","via":["SUMMARY_EN"]}],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/skill.t27","summary":{"en":"Begins a new PHI LOOP skill session bound to an issue. Ends the active PHI LOOP skill session. The add/fold/check/lost/refs/claims/renumber actions carry their own clap docs (SKILL.md lesson spool).","ru":"Начинает новую сессию скилла PHI LOOP, привязанную к issue; завершает активную сессию. Действия add/fold/check/lost/refs/claims/renumber ведут спул уроков SKILL.md и описаны в своих clap-доках."},"typecheckOk":true,"variant":"Commands::Skill","whenToUse":"Begins a new PHI LOOP skill session bound to an issue. Ends the active PHI LOOP skill session. The add/fold/check/lost/refs/claims/renumber actions carry their own clap docs (SKILL.md lesson spool).","witness":"source-parse"},{"aboutSource":"tri-mcp tool tri_status description (cli/tri-mcp/src/main.rs); handler cmd_status prints === PHI LOOP STATUS === (cli/tri/src/main.rs:613)","actions":[],"agents":[],"args":[],"command":"tri status","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Returns PHI LOOP status including active skill, cell, issue binding, and uncommitted changes.","ABOUT_SOURCE":"tri-mcp tool tri_status description (cli/tri-mcp/src/main.rs); handler cmd_status prints === PHI LOOP STATUS === (cli/tri/src/main.rs:613)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri status","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/status","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/status","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Status","WHEN_TO_USE":"Returns PHI LOOP status including active skill, cell, issue binding, and uncommitted changes.","WITNESS":"source-parse"},"health":"ok","id":"tri/status","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_status","name":{"en":"tri status"},"qualifiedId":"gHashTag/t27:tri/status","repo":"gHashTag/t27","schema":2,"searchText":"tri/status tri status returns phi loop status including active skill, cell, issue binding, and uncommitted changes. returns phi loop status including active skill, cell, issue binding, and uncommitted changes.","sha256":"bacc3fad069505febf375adbbfea9a861e4dc884a6c3d98d723bc5cd22365290","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/status.t27","summary":{"en":"Returns PHI LOOP status including active skill, cell, issue binding, and uncommitted changes.","ru":"Показывает статус PHI LOOP: активный скилл, ячейку, привязку к issue и незакоммиченные изменения."},"typecheckOk":true,"variant":"Commands::Status","whenToUse":"Returns PHI LOOP status including active skill, cell, issue binding, and uncommitted changes.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Sweep (cli/tri/src/main.rs; module cli/tri/src/sweep.rs)","actions":[{"about":"Synthesise a top across values of one parameter and report the trend.","name":"area"}],"agents":[],"args":[],"command":"tri sweep","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Synthesise across a parameter and check the area actually moves.","ABOUT_SOURCE":"clap /// doc on Commands::Sweep (cli/tri/src/main.rs; module cli/tri/src/sweep.rs)","ACTIONS":["area"],"ACTIONS_ABOUT":["Synthesise a top across values of one parameter and report the trend."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri sweep","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/sweep","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/sweep","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/sweep.rs","VARIANT":"Commands::Sweep","WHEN_TO_USE":"Synthesise across a parameter and check the area actually moves.","WITNESS":"source-parse"},"health":"ok","id":"tri/sweep","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/sweep.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_sweep","name":{"en":"tri sweep"},"qualifiedId":"gHashTag/t27:tri/sweep","repo":"gHashTag/t27","schema":2,"searchText":"tri/sweep tri sweep synthesise across a parameter and check the area actually moves. synthesise across a parameter and check the area actually moves. area synthesise a top across values of one parameter and report the trend.","sha256":"7b032422cdd86d854023351e841cf5c6f6f43327cab5504b6afd61ac889614e1","skills":[],"source":"cli/tri/src/sweep.rs","specPath":"specs/tools/tri/sweep.t27","summary":{"en":"Synthesise across a parameter and check the area actually moves.","ru":"Синтез по параметру с проверкой, что площадь действительно меняется."},"typecheckOk":true,"variant":"Commands::Sweep","whenToUse":"Synthesise across a parameter and check the area actually moves.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Synth (cli/tri/src/main.rs; module cli/tri/src/synth.rs)","actions":[{"about":"Synthesise a top module and report LUT/DSP/FF/CARRY4 counts.","name":"area"}],"agents":[],"args":[],"command":"tri synth","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Synthesise a top module and report area, with the instrument named.","ABOUT_SOURCE":"clap /// doc on Commands::Synth (cli/tri/src/main.rs; module cli/tri/src/synth.rs)","ACTIONS":["area"],"ACTIONS_ABOUT":["Synthesise a top module and report LUT/DSP/FF/CARRY4 counts."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri synth","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/synth","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/synth","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/synth.rs","VARIANT":"Commands::Synth","WHEN_TO_USE":"Synthesise a top module and report area, with the instrument named.","WITNESS":"source-parse"},"health":"ok","id":"tri/synth","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/synth.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_synth","name":{"en":"tri synth"},"qualifiedId":"gHashTag/t27:tri/synth","repo":"gHashTag/t27","schema":2,"searchText":"tri/synth tri synth synthesise a top module and report area, with the instrument named. synthesise a top module and report area, with the instrument named. area synthesise a top module and report lut/dsp/ff/carry4 counts.","sha256":"51a2f2cad1da2385b6c7b16ab1e4721df80fe98918a60a3410c88fe14da4d743","skills":[],"source":"cli/tri/src/synth.rs","specPath":"specs/tools/tri/synth.t27","summary":{"en":"Synthesise a top module and report area, with the instrument named.","ru":"Синтезирует top-модуль и сообщает площадь с указанием инструмента."},"typecheckOk":true,"variant":"Commands::Synth","whenToUse":"Synthesise a top module and report area, with the instrument named.","witness":"source-parse"},{"aboutSource":"tri-mcp tool tri_test description (cli/tri-mcp/src/main.rs); handler cmd_test runs t27c test (cli/tri/src/main.rs:870)","actions":[],"agents":[{"letter":"T","ok":true},{"letter":"V","ok":true}],"args":[{"about":"","name":""}],"command":"tri test","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Runs tests for a .t27 spec file using t27c.","ABOUT_SOURCE":"tri-mcp tool tri_test description (cli/tri-mcp/src/main.rs); handler cmd_test runs t27c test (cli/tri/src/main.rs:870)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":["T","V"],"AGENTS_NOTE":".claude/agents/agent-v-verify.md:47 (tri test -- Run conformance tests); .claude/agents/trinity.md:70 (7. Verify - Run tri test).","ARGS":[""],"COMMAND":"tri test","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/test","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/test","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Test","WHEN_TO_USE":"Runs tests for a .t27 spec file using t27c.","WITNESS":"source-parse"},"health":"ok","id":"tri/test","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":[],"moduleName":"tool_tri_test","name":{"en":"tri test"},"qualifiedId":"gHashTag/t27:tri/test","repo":"gHashTag/t27","schema":2,"searchText":"tri/test tri test runs tests for a .t27 spec file using t27c. runs tests for a .t27 spec file using t27c. t v","sha256":"a960b7f1a9936d59ccf97203a7031161075c78d1ba6a0f7c78b65084d3a910a7","skills":[{"id":"t27/tri","via":["SUMMARY_EN"]}],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/test.t27","summary":{"en":"Runs tests for a .t27 spec file using t27c.","ru":"Запускает тесты для файла спецификации .t27 через t27c."},"typecheckOk":true,"variant":"Commands::Test","whenToUse":"Runs tests for a .t27 spec file using t27c.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Topic (cli/tri/src/main.rs)","actions":[],"agents":[],"args":[{"about":"Words to look for. A row matches on any; rows carrying more come first.","name":""},{"about":"How many recent commits on the base branch to read.","name":"--commits"}],"command":"tri topic","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Has anyone already done this, or are they doing it now?","ABOUT_SOURCE":"clap /// doc on Commands::Topic (cli/tri/src/main.rs)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[": Words to look for. A row matches on any; rows carrying more come first.","--commits: How many recent commits on the base branch to read."],"COMMAND":"tri topic","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/topic","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/topic","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Topic","WHEN_TO_USE":"Has anyone already done this, or are they doing it now?","WITNESS":"source-parse"},"health":"ok","id":"tri/topic","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_topic","name":{"en":"tri topic"},"qualifiedId":"gHashTag/t27:tri/topic","repo":"gHashTag/t27","schema":2,"searchText":"tri/topic tri topic has anyone already done this, or are they doing it now? has anyone already done this, or are they doing it now?","sha256":"0ca5ed85564d0231316703fb63605e962ea2cbf2fb37a273c7d9eac793a45cd5","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/topic.t27","summary":{"en":"Has anyone already done this, or are they doing it now?","ru":"Кто-нибудь уже делал это или делает сейчас?"},"typecheckOk":true,"variant":"Commands::Topic","whenToUse":"Has anyone already done this, or are they doing it now?","witness":"source-parse"},{"aboutSource":"//! module doc, cli/tri/src/types_dup.rs:1","actions":[{"about":"Type names with more than one definition in the spec tree.","name":"dup"},{"about":"Hold the conflicted set: a new conflict fails, and a resolved one fails until it is blessed away.","name":"ratchet"},{"about":"Cross-check the written classification against what the tree says today.","name":"classified"},{"about":"Names defined more than once INSIDE ONE FILE.","name":"redef"}],"agents":[],"args":[],"command":"tri types","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"One type name, more than one definition.","ABOUT_SOURCE":"//! module doc, cli/tri/src/types_dup.rs:1","ACTIONS":["dup","ratchet","classified","redef"],"ACTIONS_ABOUT":["Type names with more than one definition in the spec tree.","Hold the conflicted set: a new conflict fails, and a resolved one fails until it is blessed away.","Cross-check the written classification against what the tree says today.","Names defined more than once INSIDE ONE FILE."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri types","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/types","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/types","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/types_dup.rs","VARIANT":"Commands::Types","WHEN_TO_USE":"One type name, more than one definition.","WITNESS":"source-parse"},"health":"ok","id":"tri/types","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/types_dup.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_types","name":{"en":"tri types"},"qualifiedId":"gHashTag/t27:tri/types","repo":"gHashTag/t27","schema":2,"searchText":"tri/types tri types one type name, more than one definition. one type name, more than one definition. dup type names with more than one definition in the spec tree. ratchet hold the conflicted set: a new conflict fails, and a resolved one fails until it is blessed away. classified cross-check the written classification against what the tree says today. redef names defined more than once inside one file.","sha256":"16ea516e67cf93e24863ebb8aabc61ac3bc67fed76d94a228f947258b5296f55","skills":[],"source":"cli/tri/src/types_dup.rs","specPath":"specs/tools/tri/types.t27","summary":{"en":"One type name, more than one definition.","ru":"Одно имя типа, больше одного определения."},"typecheckOk":true,"variant":"Commands::Types","whenToUse":"One type name, more than one definition.","witness":"source-parse"},{"aboutSource":"//! module doc, cli/tri/src/unparsed.rs:1","actions":[{"about":"Rank the constructs that stop the compiler, most specs first.","name":"report"},{"about":"For each unreadable spec, the ITEM whose presence causes the failure.","name":"locate"},{"about":"Cross-check the census against an INDEPENDENTLY built population.","name":"agree"},{"about":"Run every construct's minimal source and say which the compiler rejects.","name":"probe"}],"agents":[],"args":[],"command":"tri unparsed","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Specs the compiler cannot read, ranked by the CONSTRUCT that stops it -- and every construct backed by a live probe.","ABOUT_SOURCE":"//! module doc, cli/tri/src/unparsed.rs:1","ACTIONS":["report","locate","agree","probe"],"ACTIONS_ABOUT":["Rank the constructs that stop the compiler, most specs first.","For each unreadable spec, the ITEM whose presence causes the failure.","Cross-check the census against an INDEPENDENTLY built population.","Run every construct's minimal source and say which the compiler rejects."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri unparsed","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/unparsed","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/unparsed","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/unparsed.rs","VARIANT":"Commands::Unparsed","WHEN_TO_USE":"Specs the compiler cannot read, ranked by the CONSTRUCT that stops it -- and every construct backed by a live probe.","WITNESS":"source-parse"},"health":"ok","id":"tri/unparsed","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/unparsed.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_unparsed","name":{"en":"tri unparsed"},"qualifiedId":"gHashTag/t27:tri/unparsed","repo":"gHashTag/t27","schema":2,"searchText":"tri/unparsed tri unparsed specs the compiler cannot read, ranked by the construct that stops it -- and every construct backed by a live probe. specs the compiler cannot read, ranked by the construct that stops it -- and every construct backed by a live probe. report rank the constructs that stop the compiler, most specs first. locate for each unreadable spec, the item whose presence causes the failure. agree cross-check the census against an independently built population. probe run every construct's minimal source and say which the compiler rejects.","sha256":"6aaf39d92a0b7c5443faa32b97cd7fd74b251a8258aee8390b6965d5fee2e660","skills":[],"source":"cli/tri/src/unparsed.rs","specPath":"specs/tools/tri/unparsed.t27","summary":{"en":"Specs the compiler cannot read, ranked by the CONSTRUCT that stops it -- and every construct backed by a live probe.","ru":"Спеки, которые компилятор не может прочитать, ранжированные по КОНСТРУКЦИИ, которая его останавливает, -- и каждая конструкция, подтверждённая живой пробой."},"typecheckOk":true,"variant":"Commands::Unparsed","whenToUse":"Specs the compiler cannot read, ranked by the CONSTRUCT that stops it -- and every construct backed by a live probe.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Vectors (cli/tri/src/main.rs; module cli/tri/src/vectors.rs)","actions":[{"about":"Generate a module's Verilog and execute its registered vectors.","name":"run"},{"about":"Inventory every vector file: executed, debt, or aspirational.","name":"debt"}],"agents":[],"args":[],"command":"tri vectors","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"The executed-vector registry: run a module's vectors, or inventory which files are executed and which are only displayed.","ABOUT_SOURCE":"clap /// doc on Commands::Vectors (cli/tri/src/main.rs; module cli/tri/src/vectors.rs)","ACTIONS":["run","debt"],"ACTIONS_ABOUT":["Generate a module's Verilog and execute its registered vectors.","Inventory every vector file: executed, debt, or aspirational."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri vectors","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/vectors","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/vectors","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/vectors.rs","VARIANT":"Commands::Vectors","WHEN_TO_USE":"The executed-vector registry: run a module's vectors, or inventory which files are executed and which are only displayed.","WITNESS":"source-parse"},"health":"ok","id":"tri/vectors","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/vectors.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_vectors","name":{"en":"tri vectors"},"qualifiedId":"gHashTag/t27:tri/vectors","repo":"gHashTag/t27","schema":2,"searchText":"tri/vectors tri vectors the executed-vector registry: run a module's vectors, or inventory which files are executed and which are only displayed. the executed-vector registry: run a module's vectors, or inventory which files are executed and which are only displayed. run generate a module's verilog and execute its registered vectors. debt inventory every vector file: executed, debt, or aspirational.","sha256":"7babf01001cd4e86adfad3f717ccf6cf0772dd38e143ab71d782bd66bc455b82","skills":[],"source":"cli/tri/src/vectors.rs","specPath":"specs/tools/tri/vectors.t27","summary":{"en":"The executed-vector registry: run a module's vectors, or inventory which files are executed and which are only displayed.","ru":"Реестр исполняемых векторов: запустить векторы модуля или проинвентаризировать, какие файлы исполняются, а какие только показываются."},"typecheckOk":true,"variant":"Commands::Vectors","whenToUse":"The executed-vector registry: run a module's vectors, or inventory which files are executed and which are only displayed.","witness":"source-parse"},{"aboutSource":"tri-mcp tool tri_verdict description (cli/tri-mcp/src/main.rs); handler cmd_verdict runs t27c validate-seals, validate-phi-identity and, with --toxic, validate-toxicity (cli/tri/src/main.rs:876)","actions":[],"agents":[{"letter":"V","ok":true}],"args":[{"about":"","name":"--toxic"}],"command":"tri verdict","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Checks for toxic regressions by analyzing swarm health metrics.","ABOUT_SOURCE":"tri-mcp tool tri_verdict description (cli/tri-mcp/src/main.rs); handler cmd_verdict runs t27c validate-seals, validate-phi-identity and, with --toxic, validate-toxicity (cli/tri/src/main.rs:876)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":["V"],"AGENTS_NOTE":".claude/agents/agent-v-verify.md:49 (tri verdict -- Generate pass/fail report); docs/agents/AGENTS_ALPHABET.md:80, PHASE 5 VERDICT: V analyzes metrics, tri verdict --toxic.","ARGS":["--toxic"],"COMMAND":"tri verdict","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/verdict","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/verdict","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Verdict","WHEN_TO_USE":"Checks for toxic regressions by analyzing swarm health metrics.","WITNESS":"source-parse"},"health":"ok","id":"tri/verdict","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":[],"moduleName":"tool_tri_verdict","name":{"en":"tri verdict"},"qualifiedId":"gHashTag/t27:tri/verdict","repo":"gHashTag/t27","schema":2,"searchText":"tri/verdict tri verdict checks for toxic regressions by analyzing swarm health metrics. checks for toxic regressions by analyzing swarm health metrics. v","sha256":"8afa0e665be25d336bdca685cd2369546a767678133bc86c9994d7c94da6a5c7","skills":[{"id":"t27/tri","via":["SUMMARY_EN"]}],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/verdict.t27","summary":{"en":"Checks for toxic regressions by analyzing swarm health metrics.","ru":"Проверяет токсичные регрессии, анализируя метрики здоровья роя."},"typecheckOk":true,"variant":"Commands::Verdict","whenToUse":"Checks for toxic regressions by analyzing swarm health metrics.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Vsim (cli/tri/src/main.rs; module cli/tri/src/vsim.rs)","actions":[{"about":"Walk the corpus through `t27c icarus-simulate` and print the funnel.","name":"funnel"}],"agents":[],"args":[],"command":"tri vsim","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"How far each spec gets when its generated Verilog is actually RUN.","ABOUT_SOURCE":"clap /// doc on Commands::Vsim (cli/tri/src/main.rs; module cli/tri/src/vsim.rs)","ACTIONS":["funnel"],"ACTIONS_ABOUT":["Walk the corpus through `t27c icarus-simulate` and print the funnel."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri vsim","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/vsim","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/vsim","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/vsim.rs","VARIANT":"Commands::Vsim","WHEN_TO_USE":"How far each spec gets when its generated Verilog is actually RUN. The one arm that can catch a defect whose nature is that it compiles, and the one arm whose gate has had no targets since #2283 -- see #2987.","WITNESS":"source-parse"},"health":"ok","id":"tri/vsim","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/vsim.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_vsim","name":{"en":"tri vsim"},"qualifiedId":"gHashTag/t27:tri/vsim","repo":"gHashTag/t27","schema":2,"searchText":"tri/vsim tri vsim how far each spec gets when its generated verilog is actually run. how far each spec gets when its generated verilog is actually run. the one arm that can catch a defect whose nature is that it compiles, and the one arm whose gate has had no targets since #2283 -- see #2987. funnel walk the corpus through `t27c icarus-simulate` and print the funnel.","sha256":"b33711b2a50bd614b706e77c813e7c31e71cd7f547489bf073c0de59c17de2fb","skills":[],"source":"cli/tri/src/vsim.rs","specPath":"specs/tools/tri/vsim.t27","summary":{"en":"How far each spec gets when its generated Verilog is actually RUN.","ru":"Как далеко доходит каждая спека, когда её сгенерированный Verilog действительно ЗАПУСКАЮТ."},"typecheckOk":true,"variant":"Commands::Vsim","whenToUse":"How far each spec gets when its generated Verilog is actually RUN. The one arm that can catch a defect whose nature is that it compiles, and the one arm whose gate has had no targets since #2283 -- see #2987.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Window (cli/tri/src/main.rs; module cli/tri/src/window.rs)","actions":[],"agents":[],"args":[{"about":"Record `origin/master` as the base of a measurement starting now.","name":"--start"},{"about":"Report whether the recorded base is still the tip, and refuse if it is not.","name":"--check"},{"about":"The ref the measurement is against. Defaults to `origin/master`.","name":"--base"},{"about":"Run the controls and report, changing nothing.","name":"--self-check"}],"command":"tri window","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Was the base you measured against still the tip when you reported?","ABOUT_SOURCE":"clap /// doc on Commands::Window (cli/tri/src/main.rs; module cli/tri/src/window.rs)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":["--start: Record `origin/master` as the base of a measurement starting now.","--check: Report whether the recorded base is still the tip, and refuse if it is not.","--base: The ref the measurement is against. Defaults to `origin/master`.","--self-check: Run the controls and report, changing nothing."],"COMMAND":"tri window","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/window","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/window","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/window.rs","VARIANT":"Commands::Window","WHEN_TO_USE":"Was the base you measured against still the tip when you reported?","WITNESS":"source-parse"},"health":"ok","id":"tri/window","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/window.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_window","name":{"en":"tri window"},"qualifiedId":"gHashTag/t27:tri/window","repo":"gHashTag/t27","schema":2,"searchText":"tri/window tri window was the base you measured against still the tip when you reported? was the base you measured against still the tip when you reported?","sha256":"43202aabe15b2c06b1e0709f8e0ae6fc1cb13b2cb7e5a5adee77340a1bf03ff4","skills":[],"source":"cli/tri/src/window.rs","specPath":"specs/tools/tri/window.t27","summary":{"en":"Was the base you measured against still the tip when you reported?","ru":"Была ли база, относительно которой вы мерили, всё ещё вершиной, когда вы отчитывались?"},"typecheckOk":true,"variant":"Commands::Window","whenToUse":"Was the base you measured against still the tip when you reported?","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Worktrees (cli/tri/src/main.rs; module cli/tri/src/trees.rs)","actions":[],"agents":[],"args":[{"about":"Also measure disk usage. Off by default: `du` over 120 checkouts is slow, and the holdings answer is the one that decides anything.","name":"--size"},{"about":"Print every tree, not only those holding work or unreadable.","name":"--all"}],"command":"tri worktrees","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"What the checkouts on this disk are holding. Deletes nothing.","ABOUT_SOURCE":"clap /// doc on Commands::Worktrees (cli/tri/src/main.rs; module cli/tri/src/trees.rs)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":["--size: Also measure disk usage. Off by default: `du` over 120 checkouts is slow, and the holdings answer is the one that decides anything.","--all: Print every tree, not only those holding work or unreadable."],"COMMAND":"tri worktrees","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/worktrees","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/worktrees","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/trees.rs","VARIANT":"Commands::Worktrees","WHEN_TO_USE":"What the checkouts on this disk are holding. Deletes nothing.","WITNESS":"source-parse"},"health":"ok","id":"tri/worktrees","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/trees.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_worktrees","name":{"en":"tri worktrees"},"qualifiedId":"gHashTag/t27:tri/worktrees","repo":"gHashTag/t27","schema":2,"searchText":"tri/worktrees tri worktrees what the checkouts on this disk are holding. deletes nothing. what the checkouts on this disk are holding. deletes nothing.","sha256":"1a01df4f397fe76552d278be19fd778995522fe45e9971a0ad8a017b723ca446","skills":[],"source":"cli/tri/src/trees.rs","specPath":"specs/tools/tri/worktrees.t27","summary":{"en":"What the checkouts on this disk are holding. Deletes nothing.","ru":"Что держат чекауты на этом диске. Ничего не удаляет."},"typecheckOk":true,"variant":"Commands::Worktrees","whenToUse":"What the checkouts on this disk are holding. Deletes nothing.","witness":"source-parse"}],"version":1} +{"collisions":[{"name":"fpga","t27":"gHashTag/t27:tri/fpga","trinity":"gHashTag/trinity:tri/fpga"},{"name":"test","t27":"gHashTag/t27:tri/test","trinity":"gHashTag/trinity:tri/test"}],"compilerWasmSha256":"bb39b9a5ca412a2695ab6a20a54e222933e10edaf08ef053670e4974d08f113f","contentSha256":"ac2b750d0bf7d1bc91f16dfc56d91ae990dc41d00a97de727949ca6e49b33955","counts":{"byRepo":{"gHashTag/t27":58,"gHashTag/trinity":34},"byWitness":{"help-output":1,"registry-export":29,"runtime":0,"source-parse":62},"collisions":2,"enabled":92,"mcp":11,"mcpExternal":6,"mcpTools":255,"mcpWithTools":6,"schema2":92,"specs":92,"tri":81,"triActions":124,"triWithActions":38,"trinityTri":29,"typecheckOk":92,"withAgents":6,"withSkills":5},"generatedAt":"2026-09-22T17:46:29.695Z","groups":{"mcpByRepo":{"gHashTag/t27":["mcp/gitbutler","mcp/inngest-dev","mcp/notebooklm","mcp/t27-traceability","mcp/tri-mcp","mcp/tri-ssot"],"gHashTag/trinity":["mcp/needle","mcp/neon","mcp/railway-mcp-server","mcp/trinity","mcp/zig-docs"]},"triByAgent":{"-":["gHashTag/trinity:tri/bench","gHashTag/trinity:tri/bio","gHashTag/trinity:tri/blindspots","gHashTag/trinity:tri/conscious","gHashTag/trinity:tri/constants","gHashTag/trinity:tri/cosmos","gHashTag/trinity:tri/dashboard","gHashTag/trinity:tri/fib","gHashTag/trinity:tri/fpga","gHashTag/trinity:tri/gematria","gHashTag/trinity:tri/govern","gHashTag/trinity:tri/hardware","gHashTag/trinity:tri/identity","gHashTag/trinity:tri/lucas","gHashTag/trinity:tri/mesh","gHashTag/trinity:tri/needle","gHashTag/trinity:tri/needle-check","gHashTag/trinity:tri/needle-search","gHashTag/trinity:tri/omega","gHashTag/trinity:tri/particles","gHashTag/trinity:tri/phi","gHashTag/trinity:tri/quantum","gHashTag/trinity:tri/reputation","gHashTag/trinity:tri/sacred-const","gHashTag/trinity:tri/spiral","gHashTag/trinity:tri/swarm","gHashTag/trinity:tri/test","gHashTag/trinity:tri/vsa","gHashTag/trinity:tri/wallet","tri/abandoned","tri/census","tri/ci","tri/competitors","tri/discard","tri/doctor","tri/elab","tri/emit","tri/fleet","tri/fmt","tri/fpga","tri/gates","tri/harness","tri/health","tri/hooks","tri/issues","tri/jumps","tri/kinds","tri/lean","tri/ledgers","tri/loop","tri/merging","tri/misread","tri/mods","tri/mutate","tri/now","tri/one-away","tri/orphaned","tri/pr","tri/prose","tri/quantifiers","tri/red","tri/reseal","tri/rtl","tri/seals","tri/serve","tri/skill","tri/status","tri/sweep","tri/synth","tri/topic","tri/types","tri/unparsed","tri/vectors","tri/vsim","tri/window","tri/worktrees"],"C":["tri/gen"],"E":["tri/experience"],"T":["tri/gen","tri/test"],"V":["tri/test","tri/verdict"],"W":["tri/cell"]},"triByRepo":{"gHashTag/t27":["tri/abandoned","tri/cell","tri/census","tri/ci","tri/competitors","tri/discard","tri/doctor","tri/elab","tri/emit","tri/experience","tri/fleet","tri/fmt","tri/fpga","tri/gates","tri/gen","tri/harness","tri/health","tri/hooks","tri/issues","tri/jumps","tri/kinds","tri/lean","tri/ledgers","tri/loop","tri/merging","tri/misread","tri/mods","tri/mutate","tri/now","tri/one-away","tri/orphaned","tri/pr","tri/prose","tri/quantifiers","tri/red","tri/reseal","tri/rtl","tri/seals","tri/serve","tri/skill","tri/status","tri/sweep","tri/synth","tri/test","tri/topic","tri/types","tri/unparsed","tri/vectors","tri/verdict","tri/vsim","tri/window","tri/worktrees"],"gHashTag/trinity":["gHashTag/trinity:tri/bench","gHashTag/trinity:tri/bio","gHashTag/trinity:tri/blindspots","gHashTag/trinity:tri/conscious","gHashTag/trinity:tri/constants","gHashTag/trinity:tri/cosmos","gHashTag/trinity:tri/dashboard","gHashTag/trinity:tri/fib","gHashTag/trinity:tri/fpga","gHashTag/trinity:tri/gematria","gHashTag/trinity:tri/govern","gHashTag/trinity:tri/hardware","gHashTag/trinity:tri/identity","gHashTag/trinity:tri/lucas","gHashTag/trinity:tri/mesh","gHashTag/trinity:tri/needle","gHashTag/trinity:tri/needle-check","gHashTag/trinity:tri/needle-search","gHashTag/trinity:tri/omega","gHashTag/trinity:tri/particles","gHashTag/trinity:tri/phi","gHashTag/trinity:tri/quantum","gHashTag/trinity:tri/reputation","gHashTag/trinity:tri/sacred-const","gHashTag/trinity:tri/spiral","gHashTag/trinity:tri/swarm","gHashTag/trinity:tri/test","gHashTag/trinity:tri/vsa","gHashTag/trinity:tri/wallet"]}},"i18n":[{"bundle":"apps/website/i18n/agents.ru.json","coverage":{"n":92,"total":92},"enabled":true,"fields":["SUMMARY","NAME"],"locale":"ru","missing":[],"scope":["specs/skills","specs/crons","specs/agents","specs/functions","specs/tools"],"sha256":"c8871fb4ccdef8fc3cc2937af5db0e307ab0b62f6a03ece9f4512851ffd64f04","spec":"specs/i18n/agents-ru.t27"}],"ladder":{"agents":27,"crons":38,"functions":33,"skills":27,"specs":1419,"tools":92},"legacy":{"mcp/gitbutler":"gHashTag/t27:mcp/gitbutler","mcp/inngest-dev":"gHashTag/t27:mcp/inngest-dev","mcp/needle":"gHashTag/trinity:mcp/needle","mcp/neon":"gHashTag/trinity:mcp/neon","mcp/notebooklm":"gHashTag/t27:mcp/notebooklm","mcp/railway-mcp-server":"gHashTag/trinity:mcp/railway-mcp-server","mcp/t27-traceability":"gHashTag/t27:mcp/t27-traceability","mcp/tri-mcp":"gHashTag/t27:mcp/tri-mcp","mcp/tri-ssot":"gHashTag/t27:mcp/tri-ssot","mcp/trinity":"gHashTag/trinity:mcp/trinity","mcp/zig-docs":"gHashTag/trinity:mcp/zig-docs","tri/abandoned":"gHashTag/t27:tri/abandoned","tri/cell":"gHashTag/t27:tri/cell","tri/census":"gHashTag/t27:tri/census","tri/ci":"gHashTag/t27:tri/ci","tri/competitors":"gHashTag/t27:tri/competitors","tri/discard":"gHashTag/t27:tri/discard","tri/doctor":"gHashTag/t27:tri/doctor","tri/elab":"gHashTag/t27:tri/elab","tri/emit":"gHashTag/t27:tri/emit","tri/experience":"gHashTag/t27:tri/experience","tri/fleet":"gHashTag/t27:tri/fleet","tri/fmt":"gHashTag/t27:tri/fmt","tri/fpga":"gHashTag/t27:tri/fpga","tri/gates":"gHashTag/t27:tri/gates","tri/gen":"gHashTag/t27:tri/gen","tri/harness":"gHashTag/t27:tri/harness","tri/health":"gHashTag/t27:tri/health","tri/hooks":"gHashTag/t27:tri/hooks","tri/issues":"gHashTag/t27:tri/issues","tri/jumps":"gHashTag/t27:tri/jumps","tri/kinds":"gHashTag/t27:tri/kinds","tri/lean":"gHashTag/t27:tri/lean","tri/ledgers":"gHashTag/t27:tri/ledgers","tri/loop":"gHashTag/t27:tri/loop","tri/merging":"gHashTag/t27:tri/merging","tri/misread":"gHashTag/t27:tri/misread","tri/mods":"gHashTag/t27:tri/mods","tri/mutate":"gHashTag/t27:tri/mutate","tri/now":"gHashTag/t27:tri/now","tri/one-away":"gHashTag/t27:tri/one-away","tri/orphaned":"gHashTag/t27:tri/orphaned","tri/pr":"gHashTag/t27:tri/pr","tri/prose":"gHashTag/t27:tri/prose","tri/quantifiers":"gHashTag/t27:tri/quantifiers","tri/red":"gHashTag/t27:tri/red","tri/reseal":"gHashTag/t27:tri/reseal","tri/rtl":"gHashTag/t27:tri/rtl","tri/seals":"gHashTag/t27:tri/seals","tri/serve":"gHashTag/t27:tri/serve","tri/skill":"gHashTag/t27:tri/skill","tri/status":"gHashTag/t27:tri/status","tri/sweep":"gHashTag/t27:tri/sweep","tri/synth":"gHashTag/t27:tri/synth","tri/test":"gHashTag/t27:tri/test","tri/topic":"gHashTag/t27:tri/topic","tri/types":"gHashTag/t27:tri/types","tri/unparsed":"gHashTag/t27:tri/unparsed","tri/vectors":"gHashTag/t27:tri/vectors","tri/verdict":"gHashTag/t27:tri/verdict","tri/vsim":"gHashTag/t27:tri/vsim","tri/window":"gHashTag/t27:tri/window","tri/worktrees":"gHashTag/t27:tri/worktrees"},"pin":{"ref":"93727f733e23baf032d54505095777f16676d70b","source":"public/agents/experience.json sources[t27].commit"},"schema":2,"tools":[{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; Filter benchmarks by pattern","name":""},{"about":"string, optional; Output report file","name":""},{"about":"integer, optional; Number of iterations (default: 1000)","name":""}],"collidesWith":null,"command":"tri bench","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Run performance benchmarks","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["benchmark"],"ARGS":[": string, optional; Filter benchmarks by pattern",": string, optional; Output report file",": integer, optional; Number of iterations (default: 1000)"],"CAPABILITIES":["filesystem"],"CATEGORY":"benchmark","COLLIDES_WITH":"","COMMAND":"tri bench","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri bench","tri bench --filter vsa","tri bench --output report.json"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/bench","JOB_TIMEOUT":600,"KIND":"tool","MCP_DISPLAY_NAME":"Performance Benchmarks","MCP_ENABLED":true,"MCP_NAME":"tri_bench","MODE":"job","NAMESPACE":"dev","QUALIFIED_ID":"gHashTag/trinity:tri/bench","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":["filesystem"],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command bench (cli_namespace dev)","WHEN_TO_USE":"Run performance benchmarks","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/bench","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_bench","name":{"en":"tri bench"},"qualifiedId":"gHashTag/trinity:tri/bench","registry":{"aliases":["benchmark"],"capabilities":["filesystem"],"category":"benchmark","examples":["tri bench","tri bench --filter vsa","tri bench --output report.json"],"jobTimeout":600,"mcpDisplayName":"Performance Benchmarks","mcpEnabled":true,"mcpName":"tri_bench","mode":"job","namespace":"dev","sideEffects":["filesystem"],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/bench tri bench run performance benchmarks run performance benchmarks","sha256":"1abd9bd8ba36e27afc61193b4da5cee668fce6a890cc6b7b0c4d44bbe13be5a9","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/bench.t27","summary":{"en":"Run performance benchmarks","ru":"Бенчмарки Trinity."},"typecheckOk":true,"variant":"registry command bench (cli_namespace dev)","whenToUse":"Run performance benchmarks","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, required; DNA/RNA/Protein sequence","name":""}],"collidesWith":null,"command":"tri bio","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Biology v14.0 \\u2014 DNA/RNA/Protein sacred analysis","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["biology"],"ARGS":[": string, required; DNA/RNA/Protein sequence"],"CAPABILITIES":[],"CATEGORY":"science","COLLIDES_WITH":"","COMMAND":"tri bio","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri bio dna ATGCGT","tri bio rna AUGCCAUAA","tri bio protein MVHLTPEEK","tri bio codon ATG"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/bio","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"DNA Analysis","MCP_ENABLED":true,"MCP_NAME":"tri_bio_dna","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/bio","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command bio (cli_namespace core)","WHEN_TO_USE":"Biology v14.0 \\u2014 DNA/RNA/Protein sacred analysis","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/bio","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_bio","name":{"en":"tri bio"},"qualifiedId":"gHashTag/trinity:tri/bio","registry":{"aliases":["biology"],"capabilities":[],"category":"science","examples":["tri bio dna ATGCGT","tri bio rna AUGCCAUAA","tri bio protein MVHLTPEEK","tri bio codon ATG"],"jobTimeout":300,"mcpDisplayName":"DNA Analysis","mcpEnabled":true,"mcpName":"tri_bio_dna","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/bio tri bio biology v14.0 \\u2014 dna/rna/protein sacred analysis biology v14.0 \\u2014 dna/rna/protein sacred analysis","sha256":"e9f0534647b2ff6479e0a03577eeb01d1c529f0973f585eb5c134ae4f819d29a","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/bio.t27","summary":{"en":"Biology v14.0 \\u2014 DNA/RNA/Protein sacred analysis","ru":"Биология v14.0 — сакральный анализ ДНК, РНК и белков."},"typecheckOk":true,"variant":"registry command bio (cli_namespace core)","whenToUse":"Biology v14.0 \\u2014 DNA/RNA/Protein sacred analysis","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri blindspots","discarded":0,"entry":"","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Blind Spots v1.0 \\u2014 90+ new formulas across 8 domains","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["blind-spot","blindspot","bs"],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"science","COLLIDES_WITH":"","COMMAND":"tri blindspots","ENABLED":true,"ENTRY":"","EXAMPLES":["tri blindspots all","tri blindspots nuclear","tri blindspots atomic","tri blindspots plasma","tri blindspots optics","tri blindspots astro","tri blindspots quantum","tri blindspots condensed","tri blindspots biology-advanced","tri blindspots domains"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/blindspots","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Blind Spots (8 Domains)","MCP_ENABLED":true,"MCP_NAME":"tri_blindspots","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/blindspots","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":false,"ROUTE_KIND":"none","ROUTE_NOTE":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri blindspots` reaches no handler and its MCP tool has no CLI behind it","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command blindspots (cli_namespace core)","WHEN_TO_USE":"Blind Spots v1.0 \\u2014 90+ new formulas across 8 domains","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/blindspots","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_blindspots","name":{"en":"tri blindspots"},"qualifiedId":"gHashTag/trinity:tri/blindspots","registry":{"aliases":["blind-spot","blindspot","bs"],"capabilities":[],"category":"science","examples":["tri blindspots all","tri blindspots nuclear","tri blindspots atomic","tri blindspots plasma","tri blindspots optics","tri blindspots astro","tri blindspots quantum","tri blindspots condensed","tri blindspots biology-advanced","tri blindspots domains"],"jobTimeout":300,"mcpDisplayName":"Blind Spots (8 Domains)","mcpEnabled":true,"mcpName":"tri_blindspots","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"none","note":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri blindspots` reaches no handler and its MCP tool has no CLI behind it","routed":false},"schema":2,"searchText":"ghashtag/trinity:tri/blindspots tri blindspots blind spots v1.0 \\u2014 90+ new formulas across 8 domains blind spots v1.0 \\u2014 90+ new formulas across 8 domains","sha256":"ae78ffaeec23f0c29f7aece98aa361e30ae30e923624aba2aad40b23b4a9ef7f","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/blindspots.t27","summary":{"en":"Blind Spots v1.0 \\u2014 90+ new formulas across 8 domains","ru":"Слепые пятна: поиск областей, где сакральная формула ещё не проверена."},"typecheckOk":true,"variant":"registry command blindspots (cli_namespace core)","whenToUse":"Blind Spots v1.0 \\u2014 90+ new formulas across 8 domains","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri conscious","discarded":0,"entry":"","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Consciousness awakening simulator (IIT+GWT+OrchOR+Qutrit+ActiveInf)","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["consciousness"],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"science","COLLIDES_WITH":"","COMMAND":"tri conscious","ENABLED":true,"ENTRY":"","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/conscious","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Consciousness Simulator","MCP_ENABLED":true,"MCP_NAME":"tri_consciousness","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/conscious","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":false,"ROUTE_KIND":"none","ROUTE_NOTE":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri conscious` reaches no handler and its MCP tool has no CLI behind it","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command conscious (cli_namespace core)","WHEN_TO_USE":"Consciousness awakening simulator (IIT+GWT+OrchOR+Qutrit+ActiveInf)","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/conscious","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_conscious","name":{"en":"tri conscious"},"qualifiedId":"gHashTag/trinity:tri/conscious","registry":{"aliases":["consciousness"],"capabilities":[],"category":"science","examples":[],"jobTimeout":300,"mcpDisplayName":"Consciousness Simulator","mcpEnabled":true,"mcpName":"tri_consciousness","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"none","note":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri conscious` reaches no handler and its MCP tool has no CLI behind it","routed":false},"schema":2,"searchText":"ghashtag/trinity:tri/conscious tri conscious consciousness awakening simulator (iit+gwt+orchor+qutrit+activeinf) consciousness awakening simulator (iit+gwt+orchor+qutrit+activeinf)","sha256":"94a9c3f27d49d51c2cb60355eaaaa9a9f296515a6974afb7c629d7ff00681f54","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/conscious.t27","summary":{"en":"Consciousness awakening simulator (IIT+GWT+OrchOR+Qutrit+ActiveInf)","ru":"Метрики сознания Trinity."},"typecheckOk":true,"variant":"registry command conscious (cli_namespace core)","whenToUse":"Consciousness awakening simulator (IIT+GWT+OrchOR+Qutrit+ActiveInf)","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri constants","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Display sacred constants (\\u03c6, \\u03c0, e, \\u03bc, \\u03c7, \\u03c3, \\u03b5)","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["const","c"],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"math","COLLIDES_WITH":"","COMMAND":"tri constants","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri constants"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/constants","JOB_TIMEOUT":0,"KIND":"tool","MCP_DISPLAY_NAME":"Sacred Constants","MCP_ENABLED":true,"MCP_NAME":"tri_constants","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/constants","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command constants (cli_namespace core)","WHEN_TO_USE":"Display sacred constants (\\u03c6, \\u03c0, e, \\u03bc, \\u03c7, \\u03c3, \\u03b5)","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/constants","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_constants","name":{"en":"tri constants"},"qualifiedId":"gHashTag/trinity:tri/constants","registry":{"aliases":["const","c"],"capabilities":[],"category":"math","examples":["tri constants"],"jobTimeout":0,"mcpDisplayName":"Sacred Constants","mcpEnabled":true,"mcpName":"tri_constants","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/constants tri constants display sacred constants (\\u03c6, \\u03c0, e, \\u03bc, \\u03c7, \\u03c3, \\u03b5) display sacred constants (\\u03c6, \\u03c0, e, \\u03bc, \\u03c7, \\u03c3, \\u03b5)","sha256":"2ab994adcd287776d83e4432dfd098a89121d8d3f8395b9ef2f15dd8cc6fea04","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/constants.t27","summary":{"en":"Display sacred constants (\\u03c6, \\u03c0, e, \\u03bc, \\u03c7, \\u03c3, \\u03b5)","ru":"Сакральные константы (phi, pi, e и их соотношения)."},"typecheckOk":true,"variant":"registry command constants (cli_namespace core)","whenToUse":"Display sacred constants (\\u03c6, \\u03c0, e, \\u03bc, \\u03c7, \\u03c3, \\u03b5)","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri cosmos","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Cosmology v15.0 \\u2014 Universe through \\u03c6","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["cosmology"],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"science","COLLIDES_WITH":"","COMMAND":"tri cosmos","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri cosmos hubble","tri cosmos dark","tri cosmos w-z","tri cosmos lambda-z","tri cosmos phantom","tri cosmos consciousness-de"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/cosmos","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Hubble Tension","MCP_ENABLED":true,"MCP_NAME":"tri_cosmos_hubble","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/cosmos","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command cosmos (cli_namespace core)","WHEN_TO_USE":"Cosmology v15.0 \\u2014 Universe through \\u03c6","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/cosmos","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_cosmos","name":{"en":"tri cosmos"},"qualifiedId":"gHashTag/trinity:tri/cosmos","registry":{"aliases":["cosmology"],"capabilities":[],"category":"science","examples":["tri cosmos hubble","tri cosmos dark","tri cosmos w-z","tri cosmos lambda-z","tri cosmos phantom","tri cosmos consciousness-de"],"jobTimeout":300,"mcpDisplayName":"Hubble Tension","mcpEnabled":true,"mcpName":"tri_cosmos_hubble","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/cosmos tri cosmos cosmology v15.0 \\u2014 universe through \\u03c6 cosmology v15.0 \\u2014 universe through \\u03c6","sha256":"42bf0f894738516bde89899aa41ed960072949d0409958942954da09f598e5bd","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/cosmos.t27","summary":{"en":"Cosmology v15.0 \\u2014 Universe through \\u03c6","ru":"Космология v15.0 — постоянная Хаббла и сакральные космологические константы."},"typecheckOk":true,"variant":"registry command cosmos (cli_namespace core)","whenToUse":"Cosmology v15.0 \\u2014 Universe through \\u03c6","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"integer, optional; Dashboard port","name":""}],"collidesWith":null,"command":"tri dashboard","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Sacred dashboard","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": integer, optional; Dashboard port"],"CAPABILITIES":[],"CATEGORY":"system","COLLIDES_WITH":"","COMMAND":"tri dashboard","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/dashboard","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Dashboard Server","MCP_ENABLED":true,"MCP_NAME":"tri_dashboard_serve","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/dashboard","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"parse_command","ROUTE_NOTE":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command dashboard (cli_namespace core)","WHEN_TO_USE":"Sacred dashboard","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/dashboard","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_dashboard","name":{"en":"tri dashboard"},"qualifiedId":"gHashTag/trinity:tri/dashboard","registry":{"aliases":[],"capabilities":[],"category":"system","examples":[],"jobTimeout":300,"mcpDisplayName":"Dashboard Server","mcpEnabled":true,"mcpName":"tri_dashboard_serve","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"parse_command","note":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/dashboard tri dashboard sacred dashboard sacred dashboard","sha256":"3e84d5413e6db52ac25368c67f1585b67c5c0401f80c30df20c96c626c3b345d","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/dashboard.t27","summary":{"en":"Sacred dashboard","ru":"Панель состояния Trinity."},"typecheckOk":true,"variant":"registry command dashboard (cli_namespace core)","whenToUse":"Sacred dashboard","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"integer, required; Fibonacci index","name":""}],"collidesWith":null,"command":"tri fib","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Fibonacci numbers with BigInt","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["fibonacci"],"ARGS":[": integer, required; Fibonacci index"],"CAPABILITIES":[],"CATEGORY":"math","COLLIDES_WITH":"","COMMAND":"tri fib","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri fib 10","tri fib 100"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/fib","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Fibonacci","MCP_ENABLED":true,"MCP_NAME":"tri_fib","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/fib","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command fib (cli_namespace core)","WHEN_TO_USE":"Fibonacci numbers with BigInt","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/fib","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_fib","name":{"en":"tri fib"},"qualifiedId":"gHashTag/trinity:tri/fib","registry":{"aliases":["fibonacci"],"capabilities":[],"category":"math","examples":["tri fib 10","tri fib 100"],"jobTimeout":300,"mcpDisplayName":"Fibonacci","mcpEnabled":true,"mcpName":"tri_fib","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/fib tri fib fibonacci numbers with bigint fibonacci numbers with bigint","sha256":"a7a393454d6c7633bfbf3ce21e91dcb7e2232921c6492192b7db580242981ed0","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/fib.t27","summary":{"en":"Fibonacci numbers with BigInt","ru":"Числа Фибоначчи."},"typecheckOk":true,"variant":"registry command fib (cli_namespace core)","whenToUse":"Fibonacci numbers with BigInt","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":"gHashTag/t27:tri/fpga","command":"tri fpga","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"FPGA toolchain via FORGE v2.0 (native Zig)","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["forge"],"ARGS":[],"CAPABILITIES":["hardware","filesystem"],"CATEGORY":"dev","COLLIDES_WITH":"gHashTag/t27:tri/fpga","COMMAND":"tri fpga","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri fpga bench","tri fpga verdict","tri fpga run design.json","tri fpga flash design.bit"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/fpga","JOB_TIMEOUT":1800,"KIND":"tool","MCP_DISPLAY_NAME":"FPGA Toolchain","MCP_ENABLED":true,"MCP_NAME":"tri_fpga","MODE":"job","NAMESPACE":"forge","QUALIFIED_ID":"gHashTag/trinity:tri/fpga","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":["hardware","filesystem"],"SOURCE":"src/registry/command_table.zig","STABILITY":"experimental","VARIANT":"registry command fpga (cli_namespace forge)","WHEN_TO_USE":"FPGA toolchain via FORGE v2.0 (native Zig)","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/fpga","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_fpga","name":{"en":"tri fpga"},"qualifiedId":"gHashTag/trinity:tri/fpga","registry":{"aliases":["forge"],"capabilities":["hardware","filesystem"],"category":"dev","examples":["tri fpga bench","tri fpga verdict","tri fpga run design.json","tri fpga flash design.bit"],"jobTimeout":1800,"mcpDisplayName":"FPGA Toolchain","mcpEnabled":true,"mcpName":"tri_fpga","mode":"job","namespace":"forge","sideEffects":["hardware","filesystem"],"stability":"experimental"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/fpga tri fpga fpga toolchain via forge v2.0 (native zig) fpga toolchain via forge v2.0 (native zig)","sha256":"cd2e83756f6d11ed08e29c26a1c145b8384e56b7b3dd9c2e39e815b739c7190a","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/fpga.t27","summary":{"en":"FPGA toolchain via FORGE v2.0 (native Zig)","ru":"FPGA: синтез, прошивка и проверка."},"typecheckOk":true,"variant":"registry command fpga (cli_namespace forge)","whenToUse":"FPGA toolchain via FORGE v2.0 (native Zig)","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, required; Text to analyze","name":""},{"about":"string, optional; Language system","name":""}],"collidesWith":null,"command":"tri gematria","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Gematria word value calculator","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": string, required; Text to analyze",": string, optional; Language system"],"CAPABILITIES":[],"CATEGORY":"math","COLLIDES_WITH":"","COMMAND":"tri gematria","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri gematria hello"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/gematria","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Gematria","MCP_ENABLED":true,"MCP_NAME":"tri_gematria","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/gematria","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command gematria (cli_namespace core)","WHEN_TO_USE":"Gematria word value calculator","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/gematria","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_gematria","name":{"en":"tri gematria"},"qualifiedId":"gHashTag/trinity:tri/gematria","registry":{"aliases":[],"capabilities":[],"category":"math","examples":["tri gematria hello"],"jobTimeout":300,"mcpDisplayName":"Gematria","mcpEnabled":true,"mcpName":"tri_gematria","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/gematria tri gematria gematria word value calculator gematria word value calculator","sha256":"ef97c85a18e66c8236579ad970aa519e61b85deb9c2094b7ae5dad85e7d1a767","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/gematria.t27","summary":{"en":"Gematria word value calculator","ru":"Гематрия: числовое значение текста."},"typecheckOk":true,"variant":"registry command gematria (cli_namespace core)","whenToUse":"Gematria word value calculator","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; proposals, vote, treasury, rewards","name":""}],"collidesWith":null,"command":"tri govern","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Sacred governance","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": string, optional; proposals, vote, treasury, rewards"],"CAPABILITIES":[],"CATEGORY":"sacred","COLLIDES_WITH":"","COMMAND":"tri govern","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/govern","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Governance System","MCP_ENABLED":true,"MCP_NAME":"tri_govern","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/govern","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"parse_command","ROUTE_NOTE":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command govern (cli_namespace core)","WHEN_TO_USE":"Sacred governance","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/govern","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_govern","name":{"en":"tri govern"},"qualifiedId":"gHashTag/trinity:tri/govern","registry":{"aliases":[],"capabilities":[],"category":"sacred","examples":[],"jobTimeout":300,"mcpDisplayName":"Governance System","mcpEnabled":true,"mcpName":"tri_govern","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"parse_command","note":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/govern tri govern sacred governance sacred governance","sha256":"b354d78a042da1a057338c5bd4bd2e9426ab6540e4b0b24c959782d3793e1538","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/govern.t27","summary":{"en":"Sacred governance","ru":"Управление роем."},"typecheckOk":true,"variant":"registry command govern (cli_namespace core)","whenToUse":"Sacred governance","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri hardware","discarded":0,"entry":"","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Hardware deployment \\u2014 deploy, status, stop nodes","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"depin","COLLIDES_WITH":"","COMMAND":"tri hardware","ENABLED":true,"ENTRY":"","EXAMPLES":["tri hardware deploy","tri hardware status"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/hardware","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Hardware Info","MCP_ENABLED":true,"MCP_NAME":"tri_hardware_info","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/hardware","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":false,"ROUTE_KIND":"none","ROUTE_NOTE":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri hardware` reaches no handler and its MCP tool has no CLI behind it","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command hardware (cli_namespace core)","WHEN_TO_USE":"Hardware deployment \\u2014 deploy, status, stop nodes","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/hardware","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_hardware","name":{"en":"tri hardware"},"qualifiedId":"gHashTag/trinity:tri/hardware","registry":{"aliases":[],"capabilities":[],"category":"depin","examples":["tri hardware deploy","tri hardware status"],"jobTimeout":300,"mcpDisplayName":"Hardware Info","mcpEnabled":true,"mcpName":"tri_hardware_info","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"none","note":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri hardware` reaches no handler and its MCP tool has no CLI behind it","routed":false},"schema":2,"searchText":"ghashtag/trinity:tri/hardware tri hardware hardware deployment \\u2014 deploy, status, stop nodes hardware deployment \\u2014 deploy, status, stop nodes","sha256":"1badc358e7b3bedcded55bfc6aba9c2ff976edde0c930e130560db5de6677787","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/hardware.t27","summary":{"en":"Hardware deployment \\u2014 deploy, status, stop nodes","ru":"Сведения об оборудовании."},"typecheckOk":true,"variant":"registry command hardware (cli_namespace core)","whenToUse":"Hardware deployment \\u2014 deploy, status, stop nodes","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; node, generate, verify, reputation","name":""}],"collidesWith":null,"command":"tri identity","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Sacred identity","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": string, optional; node, generate, verify, reputation"],"CAPABILITIES":[],"CATEGORY":"sacred","COLLIDES_WITH":"","COMMAND":"tri identity","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/identity","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Sacred Identity","MCP_ENABLED":true,"MCP_NAME":"tri_identity","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/identity","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"parse_command","ROUTE_NOTE":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command identity (cli_namespace core)","WHEN_TO_USE":"Sacred identity","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/identity","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_identity","name":{"en":"tri identity"},"qualifiedId":"gHashTag/trinity:tri/identity","registry":{"aliases":[],"capabilities":[],"category":"sacred","examples":[],"jobTimeout":300,"mcpDisplayName":"Sacred Identity","mcpEnabled":true,"mcpName":"tri_identity","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"parse_command","note":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/identity tri identity sacred identity sacred identity","sha256":"f9fa2056b186e23ed82410422f87a164d198a5d89ff00738b77659b99da9399e","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/identity.t27","summary":{"en":"Sacred identity","ru":"Сакральное тождество phi^2 + 1/phi^2 = 3."},"typecheckOk":true,"variant":"registry command identity (cli_namespace core)","whenToUse":"Sacred identity","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"integer, required; Lucas index","name":""}],"collidesWith":null,"command":"tri lucas","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Lucas numbers (L(2)=3=TRINITY)","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": integer, required; Lucas index"],"CAPABILITIES":[],"CATEGORY":"math","COLLIDES_WITH":"","COMMAND":"tri lucas","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri lucas 10","tri lucas 20"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/lucas","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Lucas Numbers","MCP_ENABLED":true,"MCP_NAME":"tri_lucas","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/lucas","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command lucas (cli_namespace core)","WHEN_TO_USE":"Lucas numbers (L(2)=3=TRINITY)","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/lucas","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_lucas","name":{"en":"tri lucas"},"qualifiedId":"gHashTag/trinity:tri/lucas","registry":{"aliases":[],"capabilities":[],"category":"math","examples":["tri lucas 10","tri lucas 20"],"jobTimeout":300,"mcpDisplayName":"Lucas Numbers","mcpEnabled":true,"mcpName":"tri_lucas","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/lucas tri lucas lucas numbers (l(2)=3=trinity) lucas numbers (l(2)=3=trinity)","sha256":"21a656adb73fbc5fa02c0ae82807e24666fe20c954806a21203ed54b742bb9e6","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/lucas.t27","summary":{"en":"Lucas numbers (L(2)=3=TRINITY)","ru":"Числа Люка."},"typecheckOk":true,"variant":"registry command lucas (cli_namespace core)","whenToUse":"Lucas numbers (L(2)=3=TRINITY)","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri mesh","discarded":0,"entry":"","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Global mesh management \\u2014 status, topology, discovery","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"depin","COLLIDES_WITH":"","COMMAND":"tri mesh","ENABLED":true,"ENTRY":"","EXAMPLES":["tri mesh status","tri mesh topology","tri mesh discover"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/mesh","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Mesh Status","MCP_ENABLED":true,"MCP_NAME":"tri_mesh_status","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/mesh","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":false,"ROUTE_KIND":"none","ROUTE_NOTE":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri mesh` reaches no handler and its MCP tool has no CLI behind it","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command mesh (cli_namespace core)","WHEN_TO_USE":"Global mesh management \\u2014 status, topology, discovery","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/mesh","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_mesh","name":{"en":"tri mesh"},"qualifiedId":"gHashTag/trinity:tri/mesh","registry":{"aliases":[],"capabilities":[],"category":"depin","examples":["tri mesh status","tri mesh topology","tri mesh discover"],"jobTimeout":300,"mcpDisplayName":"Mesh Status","mcpEnabled":true,"mcpName":"tri_mesh_status","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"none","note":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri mesh` reaches no handler and its MCP tool has no CLI behind it","routed":false},"schema":2,"searchText":"ghashtag/trinity:tri/mesh tri mesh global mesh management \\u2014 status, topology, discovery global mesh management \\u2014 status, topology, discovery","sha256":"8a2aeb36832b43ec2112a770f943529481e4a7f3ccd52f7b4fdc62e7452978ed","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/mesh.t27","summary":{"en":"Global mesh management \\u2014 status, topology, discovery","ru":"Состояние mesh-сети."},"typecheckOk":true,"variant":"registry command mesh (cli_namespace core)","whenToUse":"Global mesh management \\u2014 status, topology, discovery","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; File to edit","name":""},{"about":"string, optional; Edit query","name":""}],"collidesWith":null,"command":"tri needle","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Structural editor core","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": string, optional; File to edit",": string, optional; Edit query"],"CAPABILITIES":[],"CATEGORY":"dev","COLLIDES_WITH":"","COMMAND":"tri needle","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/needle","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Needle Editor","MCP_ENABLED":true,"MCP_NAME":"tri_needle","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/needle","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command needle (cli_namespace core)","WHEN_TO_USE":"Structural editor core","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/needle","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_needle","name":{"en":"tri needle"},"qualifiedId":"gHashTag/trinity:tri/needle","registry":{"aliases":[],"capabilities":[],"category":"dev","examples":[],"jobTimeout":300,"mcpDisplayName":"Needle Editor","mcpEnabled":true,"mcpName":"tri_needle","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/needle tri needle structural editor core structural editor core","sha256":"3058e555568a46d707c7eb6bde87b2611b7b3b35d0bc44cf39e69b7105c96836","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/needle.t27","summary":{"en":"Structural editor core","ru":"Needle: AST-редактирование кода."},"typecheckOk":true,"variant":"registry command needle (cli_namespace core)","whenToUse":"Structural editor core","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; File to check","name":""}],"collidesWith":null,"command":"tri needle-check","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Needle check","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["needle_check"],"ARGS":[": string, optional; File to check"],"CAPABILITIES":[],"CATEGORY":"dev","COLLIDES_WITH":"","COMMAND":"tri needle-check","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/needle-check","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Needle Check","MCP_ENABLED":true,"MCP_NAME":"tri_needle_check","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/needle-check","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command needle-check (cli_namespace core)","WHEN_TO_USE":"Needle check","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/needle-check","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_needle_check","name":{"en":"tri needle-check"},"qualifiedId":"gHashTag/trinity:tri/needle-check","registry":{"aliases":["needle_check"],"capabilities":[],"category":"dev","examples":[],"jobTimeout":300,"mcpDisplayName":"Needle Check","mcpEnabled":true,"mcpName":"tri_needle_check","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/needle-check tri needle-check needle check needle check","sha256":"689a89b90876fa9967656508d3791f3de1a47afe358cbf4d7ccf023fce1c32d5","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/needle-check.t27","summary":{"en":"Needle check","ru":"Needle: проверка качества кода."},"typecheckOk":true,"variant":"registry command needle-check (cli_namespace core)","whenToUse":"Needle check","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, required; Search pattern","name":""}],"collidesWith":null,"command":"tri needle-search","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Needle search","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["needle_search"],"ARGS":[": string, required; Search pattern"],"CAPABILITIES":[],"CATEGORY":"dev","COLLIDES_WITH":"","COMMAND":"tri needle-search","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/needle-search","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Needle Search","MCP_ENABLED":true,"MCP_NAME":"tri_needle_search","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/needle-search","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command needle-search (cli_namespace core)","WHEN_TO_USE":"Needle search","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/needle-search","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_needle_search","name":{"en":"tri needle-search"},"qualifiedId":"gHashTag/trinity:tri/needle-search","registry":{"aliases":["needle_search"],"capabilities":[],"category":"dev","examples":[],"jobTimeout":300,"mcpDisplayName":"Needle Search","mcpEnabled":true,"mcpName":"tri_needle_search","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/needle-search tri needle-search needle search needle search","sha256":"d596ee91ec23d39cb905e0ddc7dffc504c532952a2fb0fe7ed64438db707779c","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/needle-search.t27","summary":{"en":"Needle search","ru":"Needle: поиск по шаблону в коде."},"typecheckOk":true,"variant":"registry command needle-search (cli_namespace core)","whenToUse":"Needle search","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri omega","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Omega phase","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"sacred","COLLIDES_WITH":"","COMMAND":"tri omega","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/omega","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Omega Status","MCP_ENABLED":true,"MCP_NAME":"tri_omega_status","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/omega","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"parse_command","ROUTE_NOTE":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command omega (cli_namespace core)","WHEN_TO_USE":"Omega phase","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/omega","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_omega","name":{"en":"tri omega"},"qualifiedId":"gHashTag/trinity:tri/omega","registry":{"aliases":[],"capabilities":[],"category":"sacred","examples":[],"jobTimeout":300,"mcpDisplayName":"Omega Status","mcpEnabled":true,"mcpName":"tri_omega_status","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"parse_command","note":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/omega tri omega omega phase omega phase","sha256":"e03bddbb9708c94b3c44f5a3b2aef4ac440d53c9328c75ae8b6c37fb9a21959f","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/omega.t27","summary":{"en":"Omega phase","ru":"Состояние Omega."},"typecheckOk":true,"variant":"registry command omega (cli_namespace core)","whenToUse":"Omega phase","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri particles","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Particle physics sacred formulas (49 constants from \\u03c6)","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["particle","pdg"],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"science","COLLIDES_WITH":"","COMMAND":"tri particles","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri particles","tri particles all","tri particles tier1","tri particles search alpha_s"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/particles","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Particle Physics Sacred","MCP_ENABLED":true,"MCP_NAME":"tri_particles","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/particles","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command particles (cli_namespace core)","WHEN_TO_USE":"Particle physics sacred formulas (49 constants from \\u03c6)","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/particles","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_particles","name":{"en":"tri particles"},"qualifiedId":"gHashTag/trinity:tri/particles","registry":{"aliases":["particle","pdg"],"capabilities":[],"category":"science","examples":["tri particles","tri particles all","tri particles tier1","tri particles search alpha_s"],"jobTimeout":300,"mcpDisplayName":"Particle Physics Sacred","mcpEnabled":true,"mcpName":"tri_particles","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/particles tri particles particle physics sacred formulas (49 constants from \\u03c6) particle physics sacred formulas (49 constants from \\u03c6)","sha256":"de48a64950df41b2344a8bed9ad969eb6776456406b9c68c469cba8c13b3ac7e","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/particles.t27","summary":{"en":"Particle physics sacred formulas (49 constants from \\u03c6)","ru":"Физика частиц: константы и массы."},"typecheckOk":true,"variant":"registry command particles (cli_namespace core)","whenToUse":"Particle physics sacred formulas (49 constants from \\u03c6)","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"integer, required; Power of phi","name":""}],"collidesWith":null,"command":"tri phi","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Compute \\u03c6\\u207f (golden ratio power)","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": integer, required; Power of phi"],"CAPABILITIES":[],"CATEGORY":"math","COLLIDES_WITH":"","COMMAND":"tri phi","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri phi 10","tri phi 100"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/phi","JOB_TIMEOUT":0,"KIND":"tool","MCP_DISPLAY_NAME":"Phi Power","MCP_ENABLED":true,"MCP_NAME":"tri_phi","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/phi","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command phi (cli_namespace core)","WHEN_TO_USE":"Compute \\u03c6\\u207f (golden ratio power)","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/phi","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_phi","name":{"en":"tri phi"},"qualifiedId":"gHashTag/trinity:tri/phi","registry":{"aliases":[],"capabilities":[],"category":"math","examples":["tri phi 10","tri phi 100"],"jobTimeout":0,"mcpDisplayName":"Phi Power","mcpEnabled":true,"mcpName":"tri_phi","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/phi tri phi compute \\u03c6\\u207f (golden ratio power) compute \\u03c6\\u207f (golden ratio power)","sha256":"293d2f0f3dd1ad97dcc7e6485a9285d91ba36deb71ec7520b80523877a2c8405","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/phi.t27","summary":{"en":"Compute \\u03c6\\u207f (golden ratio power)","ru":"Золотое сечение phi и его степени."},"typecheckOk":true,"variant":"registry command phi (cli_namespace core)","whenToUse":"Compute \\u03c6\\u207f (golden ratio power)","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri quantum","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Quantum Trinity","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"science","COLLIDES_WITH":"","COMMAND":"tri quantum","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/quantum","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Quantum Constants","MCP_ENABLED":true,"MCP_NAME":"tri_quantum_constants","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/quantum","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command quantum (cli_namespace core)","WHEN_TO_USE":"Quantum Trinity","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/quantum","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_quantum","name":{"en":"tri quantum"},"qualifiedId":"gHashTag/trinity:tri/quantum","registry":{"aliases":[],"capabilities":[],"category":"science","examples":[],"jobTimeout":300,"mcpDisplayName":"Quantum Constants","mcpEnabled":true,"mcpName":"tri_quantum_constants","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/quantum tri quantum quantum trinity quantum trinity","sha256":"8d982321638e3fbde1a0a9ac40ad051614868d399025685f5b4d580ec86a1656","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/quantum.t27","summary":{"en":"Quantum Trinity","ru":"Квантовые константы."},"typecheckOk":true,"variant":"registry command quantum (cli_namespace core)","whenToUse":"Quantum Trinity","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri reputation","discarded":0,"entry":"","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Reputation system \\u2014 show node reputation, leaderboard","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["rep"],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"depin","COLLIDES_WITH":"","COMMAND":"tri reputation","ENABLED":true,"ENTRY":"","EXAMPLES":["tri reputation show","tri reputation leaderboard"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/reputation","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Reputation Leaderboard","MCP_ENABLED":true,"MCP_NAME":"tri_omega_reputation","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/reputation","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":false,"ROUTE_KIND":"none","ROUTE_NOTE":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri reputation` reaches no handler and its MCP tool has no CLI behind it","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command reputation (cli_namespace core)","WHEN_TO_USE":"Reputation system \\u2014 show node reputation, leaderboard","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/reputation","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_reputation","name":{"en":"tri reputation"},"qualifiedId":"gHashTag/trinity:tri/reputation","registry":{"aliases":["rep"],"capabilities":[],"category":"depin","examples":["tri reputation show","tri reputation leaderboard"],"jobTimeout":300,"mcpDisplayName":"Reputation Leaderboard","mcpEnabled":true,"mcpName":"tri_omega_reputation","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"none","note":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri reputation` reaches no handler and its MCP tool has no CLI behind it","routed":false},"schema":2,"searchText":"ghashtag/trinity:tri/reputation tri reputation reputation system \\u2014 show node reputation, leaderboard reputation system \\u2014 show node reputation, leaderboard","sha256":"ce0352d36e43b44480a79b3333031e61f637feda0bd474b8af6b239364a030cb","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/reputation.t27","summary":{"en":"Reputation system \\u2014 show node reputation, leaderboard","ru":"Репутация узла Omega."},"typecheckOk":true,"variant":"registry command reputation (cli_namespace core)","whenToUse":"Reputation system \\u2014 show node reputation, leaderboard","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; Target constant (phi2_pi2, e_pi, etc.)","name":""},{"about":"integer, optional; Number of CORDIC stages","name":""},{"about":"integer, optional; Data width in bits","name":""},{"about":"string, optional; Output Verilog file","name":""}],"collidesWith":null,"command":"tri sacred-const","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Sacred constants FPGA synthesis (0 DSP48)","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["sacred_constants","sacred-fpga"],"ARGS":[": string, optional; Target constant (phi2_pi2, e_pi, etc.)",": integer, optional; Number of CORDIC stages",": integer, optional; Data width in bits",": string, optional; Output Verilog file"],"CAPABILITIES":["filesystem"],"CATEGORY":"advanced","COLLIDES_WITH":"","COMMAND":"tri sacred-const","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri sacred-const phi-arith","tri sacred-const cordic-sacred","tri sacred-const const-rom"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/sacred-const","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Sacred Constants FPGA","MCP_ENABLED":true,"MCP_NAME":"tri_sacred_const_fpga","MODE":"job","NAMESPACE":"forge","QUALIFIED_ID":"gHashTag/trinity:tri/sacred-const","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":["filesystem"],"SOURCE":"src/registry/command_table.zig","STABILITY":"experimental","VARIANT":"registry command sacred-const (cli_namespace forge)","WHEN_TO_USE":"Sacred constants FPGA synthesis (0 DSP48)","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/sacred-const","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_sacred_const","name":{"en":"tri sacred-const"},"qualifiedId":"gHashTag/trinity:tri/sacred-const","registry":{"aliases":["sacred_constants","sacred-fpga"],"capabilities":["filesystem"],"category":"advanced","examples":["tri sacred-const phi-arith","tri sacred-const cordic-sacred","tri sacred-const const-rom"],"jobTimeout":300,"mcpDisplayName":"Sacred Constants FPGA","mcpEnabled":true,"mcpName":"tri_sacred_const_fpga","mode":"job","namespace":"forge","sideEffects":["filesystem"],"stability":"experimental"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/sacred-const tri sacred-const sacred constants fpga synthesis (0 dsp48) sacred constants fpga synthesis (0 dsp48)","sha256":"6adddc181a2303061a5805b40022f137ec1c1e53b8356733092a3e97182e4a3c","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/sacred-const.t27","summary":{"en":"Sacred constants FPGA synthesis (0 DSP48)","ru":"Сакральные константы для FPGA."},"typecheckOk":true,"variant":"registry command sacred-const (cli_namespace forge)","whenToUse":"Sacred constants FPGA synthesis (0 DSP48)","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"integer, required; Number of spiral points","name":""}],"collidesWith":null,"command":"tri spiral","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"\\u03c6-spiral coordinates","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": integer, required; Number of spiral points"],"CAPABILITIES":[],"CATEGORY":"math","COLLIDES_WITH":"","COMMAND":"tri spiral","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri spiral 10"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/spiral","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Phi Spiral","MCP_ENABLED":true,"MCP_NAME":"tri_spiral","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/spiral","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command spiral (cli_namespace core)","WHEN_TO_USE":"\\u03c6-spiral coordinates","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/spiral","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_spiral","name":{"en":"tri spiral"},"qualifiedId":"gHashTag/trinity:tri/spiral","registry":{"aliases":[],"capabilities":[],"category":"math","examples":["tri spiral 10"],"jobTimeout":300,"mcpDisplayName":"Phi Spiral","mcpEnabled":true,"mcpName":"tri_spiral","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/spiral tri spiral \\u03c6-spiral coordinates \\u03c6-spiral coordinates","sha256":"d470286a2fffe65a4db790f6a3e2f869df079c8b225669a283becb0236677386","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/spiral.t27","summary":{"en":"\\u03c6-spiral coordinates","ru":"Золотая спираль: координаты точек."},"typecheckOk":true,"variant":"registry command spiral (cli_namespace core)","whenToUse":"\\u03c6-spiral coordinates","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; status, coordinator, agents, tasks, converge","name":""}],"collidesWith":null,"command":"tri swarm","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Sacred swarm intelligence","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": string, optional; status, coordinator, agents, tasks, converge"],"CAPABILITIES":[],"CATEGORY":"sacred","COLLIDES_WITH":"","COMMAND":"tri swarm","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":[],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/swarm","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Swarm Intelligence","MCP_ENABLED":true,"MCP_NAME":"tri_swarm","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/swarm","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"parse_command","ROUTE_NOTE":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command swarm (cli_namespace core)","WHEN_TO_USE":"Sacred swarm intelligence","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/swarm","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_swarm","name":{"en":"tri swarm"},"qualifiedId":"gHashTag/trinity:tri/swarm","registry":{"aliases":[],"capabilities":[],"category":"sacred","examples":[],"jobTimeout":300,"mcpDisplayName":"Swarm Intelligence","mcpEnabled":true,"mcpName":"tri_swarm","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"parse_command","note":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/swarm tri swarm sacred swarm intelligence sacred swarm intelligence","sha256":"7b4d45dc89ac177958625f180a55cc0564880cab1f2acb52e6123802096a272f","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/swarm.t27","summary":{"en":"Sacred swarm intelligence","ru":"Состояние роя агентов."},"typecheckOk":true,"variant":"registry command swarm (cli_namespace core)","whenToUse":"Sacred swarm intelligence","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, required; Path to file to test","name":""},{"about":"string, optional; Output test file path","name":""},{"about":"boolean, optional; Include coverage markers","name":""}],"collidesWith":"gHashTag/t27:tri/test","command":"tri test","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Generate comprehensive test suites","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":[": string, required; Path to file to test",": string, optional; Output test file path",": boolean, optional; Include coverage markers"],"CAPABILITIES":["filesystem"],"CATEGORY":"dev","COLLIDES_WITH":"gHashTag/t27:tri/test","COMMAND":"tri test","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri test src/vsa.zig","tri test src/math/commands.zig --output tests/math_test.zig","tri test src/crypto.zig --coverage"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/test","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Test Generator","MCP_ENABLED":true,"MCP_NAME":"tri_test","MODE":"job","NAMESPACE":"dev","QUALIFIED_ID":"gHashTag/trinity:tri/test","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"parse_command","ROUTE_NOTE":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","SCHEMA":2,"SIDE_EFFECTS":["filesystem"],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command test (cli_namespace dev)","WHEN_TO_USE":"Generate comprehensive test suites","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/test","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_test","name":{"en":"tri test"},"qualifiedId":"gHashTag/trinity:tri/test","registry":{"aliases":[],"capabilities":["filesystem"],"category":"dev","examples":["tri test src/vsa.zig","tri test src/math/commands.zig --output tests/math_test.zig","tri test src/crypto.zig --coverage"],"jobTimeout":300,"mcpDisplayName":"Test Generator","mcpEnabled":true,"mcpName":"tri_test","mode":"job","namespace":"dev","sideEffects":["filesystem"],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"parse_command","note":"named by parseCommand of src/tri/tri_utils.zig only; whether its arm executes or prints not-implemented is not measured","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/test tri test generate comprehensive test suites generate comprehensive test suites","sha256":"ac05a41e5d3f54a99466f848a89d6c13c12f300b3ff31994677cc9b4c429be34","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/test.t27","summary":{"en":"Generate comprehensive test suites","ru":"Запуск тестов Trinity."},"typecheckOk":true,"variant":"registry command test (cli_namespace dev)","whenToUse":"Generate comprehensive test suites","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[],"collidesWith":null,"command":"tri vsa","discarded":0,"entry":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Vector Symbolic Architecture operations","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":["vector-symbolic"],"ARGS":[],"CAPABILITIES":[],"CATEGORY":"science","COLLIDES_WITH":"","COMMAND":"tri vsa","ENABLED":true,"ENTRY":"src/tri/tri_register.zig execute_map, reached through src/tri/main.zig","EXAMPLES":["tri vsa bind alice bob","tri vsa similarity cat dog","tri vsa memory show stats"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/vsa","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"VSA Operations","MCP_ENABLED":true,"MCP_NAME":"tri_vsa_bind","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/vsa","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":true,"ROUTE_KIND":"execute_map","ROUTE_NOTE":"named by a live execute_map entry of src/tri/tri_register.zig","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command vsa (cli_namespace core)","WHEN_TO_USE":"Vector Symbolic Architecture operations","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/vsa","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_vsa","name":{"en":"tri vsa"},"qualifiedId":"gHashTag/trinity:tri/vsa","registry":{"aliases":["vector-symbolic"],"capabilities":[],"category":"science","examples":["tri vsa bind alice bob","tri vsa similarity cat dog","tri vsa memory show stats"],"jobTimeout":300,"mcpDisplayName":"VSA Operations","mcpEnabled":true,"mcpName":"tri_vsa_bind","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"execute_map","note":"named by a live execute_map entry of src/tri/tri_register.zig","routed":true},"schema":2,"searchText":"ghashtag/trinity:tri/vsa tri vsa vector symbolic architecture operations vector symbolic architecture operations","sha256":"90a98d73cbabf43baef032e5a8522a1e6aaf22c3ad5e89bcb4a1f4389d9698d3","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/vsa.t27","summary":{"en":"Vector Symbolic Architecture operations","ru":"VSA: связывание векторов."},"typecheckOk":true,"variant":"registry command vsa (cli_namespace core)","whenToUse":"Vector Symbolic Architecture operations","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".trinity/registry.json description (exported by src/registry/export_cli.zig)","actions":[],"agents":[],"args":[{"about":"string, optional; Wallet address","name":"
"}],"collidesWith":null,"command":"tri wallet","discarded":0,"entry":"","exitCodes":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"family":"tri-cli","fields":{"ABOUT":"Wallet management \\u2014 connect, balance, claim rewards","ABOUT_SOURCE":".trinity/registry.json description (exported by src/registry/export_cli.zig)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md and .claude/agents/*.md of gHashTag/t27 name the t27 tri, not this binary.","ALIASES":[],"ARGS":["
: string, optional; Wallet address"],"CAPABILITIES":[],"CATEGORY":"depin","COLLIDES_WITH":"","COMMAND":"tri wallet","ENABLED":true,"ENTRY":"","EXAMPLES":["tri wallet connect metamask","tri wallet balance","tri wallet claim 50.0"],"EXIT_CODES":["0: every path that returns to main, including UnifiedOutput status failure or denied","1: only where a handler calls std.process.exit (not-implemented arms, cell dispatch failures)"],"FAMILY":"tri-cli","ID":"gHashTag/trinity:tri/wallet","JOB_TIMEOUT":300,"KIND":"tool","MCP_DISPLAY_NAME":"Wallet Balance","MCP_ENABLED":true,"MCP_NAME":"tri_wallet_balance","MODE":"sync","NAMESPACE":"core","QUALIFIED_ID":"gHashTag/trinity:tri/wallet","REPO":"gHashTag/trinity","RESULT":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","ROUTED":false,"ROUTE_KIND":"none","ROUTE_NOTE":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri wallet` reaches no handler and its MCP tool has no CLI behind it","SCHEMA":2,"SIDE_EFFECTS":[],"SOURCE":"src/registry/command_table.zig","STABILITY":"stable","VARIANT":"registry command wallet (cli_namespace core)","WHEN_TO_USE":"Wallet management \\u2014 connect, balance, claim rewards","WITNESS":"registry-export","WITNESS_SOURCE":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},"health":"ok","id":"gHashTag/trinity:tri/wallet","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/src/registry/command_table.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_trinity_tri_wallet","name":{"en":"tri wallet"},"qualifiedId":"gHashTag/trinity:tri/wallet","registry":{"aliases":[],"capabilities":[],"category":"depin","examples":["tri wallet connect metamask","tri wallet balance","tri wallet claim 50.0"],"jobTimeout":300,"mcpDisplayName":"Wallet Balance","mcpEnabled":true,"mcpName":"tri_wallet_balance","mode":"sync","namespace":"core","sideEffects":[],"stability":"stable"},"repo":"gHashTag/trinity","result":"UnifiedOutput (text or --json) with status success|failure|partial|canceled|denied|timeout; UNKNOWN_COMMAND is reported as status denied with exit 0; the sysexits mapping of src/tri/observability.zig is dead code","routing":{"kind":"none","note":"not named by any dispatcher at the pin: its execute_map entry is commented out or absent, so `tri wallet` reaches no handler and its MCP tool has no CLI behind it","routed":false},"schema":2,"searchText":"ghashtag/trinity:tri/wallet tri wallet wallet management \\u2014 connect, balance, claim rewards wallet management \\u2014 connect, balance, claim rewards","sha256":"eb15c59465bc42b003a394b15261ba2da9101faba2459665e7ad9b3a8ca51f6a","skills":[],"source":"src/registry/command_table.zig","specPath":"specs/tools/trinity/tri/wallet.t27","summary":{"en":"Wallet management \\u2014 connect, balance, claim rewards","ru":"Баланс кошелька DePIN."},"typecheckOk":true,"variant":"registry command wallet (cli_namespace core)","whenToUse":"Wallet management \\u2014 connect, balance, claim rewards","witness":"registry-export","witnessSource":".trinity/registry.json at 976df5174 (version 1.0.0, generated_at 1773041968), exported by `zig build export-registry` and held to the binary by .github/workflows/ci.yml"},{"aboutSource":".mcp.json entry; no tool list in this repository","agents":[],"config":".mcp.json","discarded":0,"env":["GITBUTLER_REPO"],"external":true,"family":"mcp","fields":{"ABOUT":"External GitButler MCP server launched as `but mcp`; the repository only registers it in .mcp.json.","ABOUT_SOURCE":".mcp.json entry; no tool list in this repository","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".mcp.json","ENABLED":true,"ENV":["GITBUTLER_REPO"],"EXTERNAL":true,"FAMILY":"mcp","ID":"mcp/gitbutler","KIND":"tool","LAUNCH":"but mcp","QUALIFIED_ID":"gHashTag/t27:mcp/gitbutler","REPO":"gHashTag/t27","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"gitbutler","SERVER_VERSION":"","SOURCE":".mcp.json","TOOLS":[],"TOOLS_ABOUT":[],"TOOLS_INPUTS":[],"TOOLS_NOTE":"Tool list lives in the external `but` binary, not in this repository; nothing is listed rather than guessed.","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/gitbutler","inSpecCorpus":true,"launch":"but mcp","links":{"config":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/.mcp.json","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/.mcp.json"},"messages":["no agent letter bound by a source","external package: tool list not in the repository"],"moduleName":"tool_mcp_gitbutler","name":{"en":"gitbutler"},"qualifiedId":"gHashTag/t27:mcp/gitbutler","repo":"gHashTag/t27","resources":[],"schema":2,"searchText":"mcp/gitbutler gitbutler external gitbutler mcp server launched as `but mcp`; the repository only registers it in .mcp.json.","server":"gitbutler","serverVersion":"","sha256":"488ff443b895b38f10748ab28238d7a9348819df4e53af1fa7adcc4bbacf3992","skills":[],"source":".mcp.json","specPath":"specs/tools/mcp/gitbutler.t27","summary":{"en":"External GitButler MCP server launched as `but mcp`; the repository only registers it in .mcp.json.","ru":"Внешний MCP-сервер GitButler, запускаемый как `but mcp`; репозиторий лишь регистрирует его в .mcp.json."},"tools":[],"toolsNote":"Tool list lives in the external `but` binary, not in this repository; nothing is listed rather than guessed.","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":"serverInfo.title of the initialize answer plus specs/automation/inngest-queen-scheduler.t27","agents":[{"letter":"T","ok":true}],"config":"","discarded":0,"env":["INNGEST_SIGNING_KEY"],"external":true,"family":"mcp","fields":{"ABOUT":"MCP face of the self-hosted Inngest server (Railway project 999) that runs the Queen's crons and skills as functions of the app t27-queen; lists apps and functions, reads runs and traces, invokes, reruns and cancels.","ABOUT_SOURCE":"serverInfo.title of the initialize answer plus specs/automation/inngest-queen-scheduler.t27","AGENTS":["T"],"AGENTS_NOTE":"specs/agents/t.t27 TOOLS names mcp/inngest-dev: the Queen (Tau) holds the scheduler; a bee reaches it through the Queen's brief, not by its own registration.","CONFIG":"","ENABLED":true,"ENV":["INNGEST_SIGNING_KEY"],"EXTERNAL":true,"FAMILY":"mcp","ID":"mcp/inngest-dev","KIND":"tool","LAUNCH":"claude mcp add --transport http inngest-dev https://inngestinngest-production-c468.up.railway.app/mcp","QUALIFIED_ID":"gHashTag/t27:mcp/inngest-dev","REPO":"gHashTag/t27","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"inngest-dev","SERVER_VERSION":"1.0.0","SOURCE":"tools/list of https://inngestinngest-production-c468.up.railway.app/mcp (2026-09-13)","TOOLS":["cancel_run","get_app","get_apps","get_event_runs","get_function","get_run","get_run_status","get_run_trace","grep_docs","health","invoke_function","invoke_function_sync","list_docs","list_function_runs","list_functions","list_runs","poll_run_status","read_doc","rerun","send_event"],"TOOLS_ABOUT":["Cancels an in-progress function run","Fetches details for a single app, including sync metadata and function count","Lists active apps in the authenticated environment. Set archived to true to list archived apps instead.","Lists function runs triggered by a specific event","Fetches function configuration and status details for a function within an app","Fetches the canonical run summary for a single function run","Deprecated compatibility tool retained for existing dev server integrations. Use get_run and get_run_trace for new integrations. Parameters:","Fetches the trace tree for a single function run","Search documentation using exact string matching (grep). Useful for finding specific API names, error codes, or identifiers. Parameters: pat","Returns the health status of the API service","Invokes a function, executing the function either asynchronously or synchronously based on the mode parameter in the request body","Deprecated compatibility tool retained for existing dev server integrations. Use invoke_function for the shared asynchronous Cloud and dev s","List all available documentation categories and their document counts. No parameters required.","Lists runs for one function in the authenticated environment","Lists function configuration and status details for an app","Lists runs in the authenticated environment, optionally filtered by app and function IDs","Deprecated compatibility tool retained for existing dev server integrations. Use get_run for new integrations. Poll multiple function runs u","Read the full content of a specific documentation file. Parameters: path (required string - the doc file path relative to docs directory)","Creates a new run using the original run's triggering event data","Deprecated compatibility tool retained for existing dev server integrations. Send an event to the Inngest dev server and return the event ID"],"TOOLS_INPUTS":["runId","appId","archived,cursor,limit","cursor,eventId,includeOutput,limit","appId,functionId","includeOutput,runId","runId","includeOutput,runId","pattern,limit","","appId,data,functionId,idempotencyKey","functionId,data,user,timeout","","appId,cursor,from,functionId,includeOutput,isDeferred,limit,order,status,timeField,until","appId,cursor,limit","appId,cursor,from,functionId,includeOutput,isDeferred,limit,order,status,timeField,until","runIds,timeout,pollInterval","path","fromStep,runId","name,data,user,eventIdSeed"],"TOOLS_NOTE":"Recorded from the live tools/list, not from source: the server is the upstream inngest binary, its source is not in this repository. Measured 2026-09-13 without a key: health, get_apps and list_runs answer REST API v2 returned HTTP 401: Authentication failed; list_docs and grep_docs answer (173 documents). The REST-backed tools need Authorization: Bearer on the MCP request.","TRANSPORT":"http","WITNESS":"help-output"},"health":"ok","id":"mcp/inngest-dev","inSpecCorpus":true,"launch":"claude mcp add --transport http inngest-dev https://inngestinngest-production-c468.up.railway.app/mcp","links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/tools/list of https://inngestinngest-production-c468.up.railway.app/mcp (2026-09-13)"},"messages":["external package: tool list not in the repository"],"moduleName":"tool_mcp_inngest_dev","name":{"en":"inngest-dev"},"qualifiedId":"gHashTag/t27:mcp/inngest-dev","repo":"gHashTag/t27","resources":[],"schema":2,"searchText":"mcp/inngest-dev inngest-dev mcp face of the self-hosted inngest server (railway project 999) that runs the queen's crons and skills as functions of the app t27-queen; lists apps and functions, reads runs and traces, invokes, reruns and cancels. cancel_run cancels an in-progress function run get_app fetches details for a single app, including sync metadata and function count get_apps lists active apps in the authenticated environment. set archived to true to list archived apps instead. get_event_runs lists function runs triggered by a specific event get_function fetches function configuration and status details for a function within an app get_run fetches the canonical run summary for a single function run get_run_status deprecated compatibility tool retained for existing dev server integrations. use get_run and get_run_trace for new integrations. parameters: get_run_trace fetches the trace tree for a single function run grep_docs search documentation using exact string matching (grep). useful for finding specific api names, error codes, or identifiers. parameters: pat health returns the health status of the api service invoke_function invokes a function, executing the function either asynchronously or synchronously based on the mode parameter in the request body invoke_function_sync deprecated compatibility tool retained for existing dev server integrations. use invoke_function for the shared asynchronous cloud and dev s list_docs list all available documentation categories and their document counts. no parameters required. list_function_runs lists runs for one function in the authenticated environment list_functions lists function configuration and status details for an app list_runs lists runs in the authenticated environment, optionally filtered by app and function ids poll_run_status deprecated compatibility tool retained for existing dev server integrations. use get_run for new integrations. poll multiple function runs u read_doc read the full content of a specific documentation file. parameters: path (required string - the doc file path relative to docs directory) rerun creates a new run using the original run's triggering event data send_event deprecated compatibility tool retained for existing dev server integrations. send an event to the inngest dev server and return the event id t","server":"inngest-dev","serverVersion":"1.0.0","sha256":"a0aad75ce804fcc056130bab7bd9b40af7145467cb0f0b93ed1147a2c6b89f8e","skills":[],"source":"tools/list of https://inngestinngest-production-c468.up.railway.app/mcp (2026-09-13)","specPath":"specs/tools/mcp/inngest-dev.t27","summary":{"en":"MCP face of the self-hosted Inngest server (Railway project 999) that runs the Queen's crons and skills as functions of the app t27-queen; lists apps and functions, reads runs and traces, invokes, reruns and cancels.","ru":"MCP-лицо самостоятельно размещённого сервера Inngest (проект Railway 999), который исполняет кроны и скиллы Королевы как функции приложения t27-queen; перечисляет приложения и функции, читает запуски и трассы, запускает, перезапускает и отменяет."},"tools":[{"about":"Cancels an in-progress function run","inputs":["runId"],"name":"cancel_run"},{"about":"Fetches details for a single app, including sync metadata and function count","inputs":["appId"],"name":"get_app"},{"about":"Lists active apps in the authenticated environment. Set archived to true to list archived apps instead.","inputs":["archived","cursor","limit"],"name":"get_apps"},{"about":"Lists function runs triggered by a specific event","inputs":["cursor","eventId","includeOutput","limit"],"name":"get_event_runs"},{"about":"Fetches function configuration and status details for a function within an app","inputs":["appId","functionId"],"name":"get_function"},{"about":"Fetches the canonical run summary for a single function run","inputs":["includeOutput","runId"],"name":"get_run"},{"about":"Deprecated compatibility tool retained for existing dev server integrations. Use get_run and get_run_trace for new integrations. Parameters:","inputs":["runId"],"name":"get_run_status"},{"about":"Fetches the trace tree for a single function run","inputs":["includeOutput","runId"],"name":"get_run_trace"},{"about":"Search documentation using exact string matching (grep). Useful for finding specific API names, error codes, or identifiers. Parameters: pat","inputs":["pattern","limit"],"name":"grep_docs"},{"about":"Returns the health status of the API service","inputs":[],"name":"health"},{"about":"Invokes a function, executing the function either asynchronously or synchronously based on the mode parameter in the request body","inputs":["appId","data","functionId","idempotencyKey"],"name":"invoke_function"},{"about":"Deprecated compatibility tool retained for existing dev server integrations. Use invoke_function for the shared asynchronous Cloud and dev s","inputs":["functionId","data","user","timeout"],"name":"invoke_function_sync"},{"about":"List all available documentation categories and their document counts. No parameters required.","inputs":[],"name":"list_docs"},{"about":"Lists runs for one function in the authenticated environment","inputs":["appId","cursor","from","functionId","includeOutput","isDeferred","limit","order","status","timeField","until"],"name":"list_function_runs"},{"about":"Lists function configuration and status details for an app","inputs":["appId","cursor","limit"],"name":"list_functions"},{"about":"Lists runs in the authenticated environment, optionally filtered by app and function IDs","inputs":["appId","cursor","from","functionId","includeOutput","isDeferred","limit","order","status","timeField","until"],"name":"list_runs"},{"about":"Deprecated compatibility tool retained for existing dev server integrations. Use get_run for new integrations. Poll multiple function runs u","inputs":["runIds","timeout","pollInterval"],"name":"poll_run_status"},{"about":"Read the full content of a specific documentation file. Parameters: path (required string - the doc file path relative to docs directory)","inputs":["path"],"name":"read_doc"},{"about":"Creates a new run using the original run's triggering event data","inputs":["fromStep","runId"],"name":"rerun"},{"about":"Deprecated compatibility tool retained for existing dev server integrations. Send an event to the Inngest dev server and return the event ID","inputs":["name","data","user","eventIdSeed"],"name":"send_event"}],"toolsNote":"Recorded from the live tools/list, not from source: the server is the upstream inngest binary, its source is not in this repository. Measured 2026-09-13 without a key: health, get_apps and list_runs answer REST API v2 returned HTTP 401: Authentication failed; list_docs and grep_docs answer (173 documents). The REST-backed tools need Authorization: Bearer on the MCP request.","transport":"http","typecheckOk":true,"witness":"help-output"},{"aboutSource":"derived from the tool descriptions in tools/mcp/needle_mcp/server.zig","agents":[],"config":".claude-plugin/.mcp.json","discarded":0,"env":[],"external":false,"family":"mcp","fields":{"ABOUT":"Zig MCP server for AST-aware code editing (needle): structural search and replace, quality gates, preview.","ABOUT_SOURCE":"derived from the tool descriptions in tools/mcp/needle_mcp/server.zig","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".claude-plugin/.mcp.json","ENABLED":true,"ENV":[],"EXTERNAL":false,"FAMILY":"mcp","ID":"mcp/needle","KIND":"tool","LAUNCH":"/zig-out/bin/needle-mcp","QUALIFIED_ID":"gHashTag/trinity:mcp/needle","REPO":"gHashTag/trinity","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"needle","SERVER_VERSION":"","SOURCE":"tools/mcp/needle_mcp/server.zig","TOOLS":["needle_structural_replace","needle_search","needle_quality_gates","needle_preview","needle_batch_edit","needle_autonomous_refactor"],"TOOLS_ABOUT":["Apply AST-aware code edit with Tier 0->1 fallback and safety gates","Search codebase for pattern matches with confidence scores","Run quality gates: parse check, AST analysis, violation detection","Preview edit diff without applying changes","Apply multiple edits in a single operation","Execute Ralph Loop: intent-aware refactoring using semantic search + HNSW + VSA validation"],"TOOLS_INPUTS":["","","","","",""],"TOOLS_NOTE":"Input schema keys were not extracted for this server (schemas are inline Zig literals); names and descriptions only. The .claude-plugin/.mcp.json command is an absolute path into a developer checkout; its home prefix is written as here (no home paths in specs).","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/needle","inSpecCorpus":true,"launch":"/zig-out/bin/needle-mcp","links":{"config":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.claude-plugin/.mcp.json","pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/tools/mcp/needle_mcp/server.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_mcp_needle","name":{"en":"needle"},"qualifiedId":"gHashTag/trinity:mcp/needle","repo":"gHashTag/trinity","resources":[],"schema":2,"searchText":"mcp/needle needle zig mcp server for ast-aware code editing (needle): structural search and replace, quality gates, preview. needle_structural_replace apply ast-aware code edit with tier 0->1 fallback and safety gates needle_search search codebase for pattern matches with confidence scores needle_quality_gates run quality gates: parse check, ast analysis, violation detection needle_preview preview edit diff without applying changes needle_batch_edit apply multiple edits in a single operation needle_autonomous_refactor execute ralph loop: intent-aware refactoring using semantic search + hnsw + vsa validation","server":"needle","serverVersion":"","sha256":"e2bff492844bb71720dc0caa8615e6025c5bcbf68978e17da5e89ef661adb563","skills":[],"source":"tools/mcp/needle_mcp/server.zig","specPath":"specs/tools/mcp/needle.t27","summary":{"en":"Zig MCP server for AST-aware code editing (needle): structural search and replace, quality gates, preview.","ru":"MCP-сервер на Zig для AST-осознанного редактирования кода (needle): структурный поиск и замена, гейты качества, предпросмотр."},"tools":[{"about":"Apply AST-aware code edit with Tier 0->1 fallback and safety gates","inputs":[],"name":"needle_structural_replace"},{"about":"Search codebase for pattern matches with confidence scores","inputs":[],"name":"needle_search"},{"about":"Run quality gates: parse check, AST analysis, violation detection","inputs":[],"name":"needle_quality_gates"},{"about":"Preview edit diff without applying changes","inputs":[],"name":"needle_preview"},{"about":"Apply multiple edits in a single operation","inputs":[],"name":"needle_batch_edit"},{"about":"Execute Ralph Loop: intent-aware refactoring using semantic search + HNSW + VSA validation","inputs":[],"name":"needle_autonomous_refactor"}],"toolsNote":"Input schema keys were not extracted for this server (schemas are inline Zig literals); names and descriptions only. The .claude-plugin/.mcp.json command is an absolute path into a developer checkout; its home prefix is written as here (no home paths in specs).","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":".mcp.json entry; no tool list in this repository","agents":[],"config":".mcp.json","discarded":0,"env":["NEON_API_KEY"],"external":true,"family":"mcp","fields":{"ABOUT":"External MCP server `neon` registered in .mcp.json; launched as `npx -y @neondatabase/mcp-server-neon start`.","ABOUT_SOURCE":".mcp.json entry; no tool list in this repository","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".mcp.json","ENABLED":true,"ENV":["NEON_API_KEY"],"EXTERNAL":true,"FAMILY":"mcp","ID":"mcp/neon","KIND":"tool","LAUNCH":"npx -y @neondatabase/mcp-server-neon start","QUALIFIED_ID":"gHashTag/trinity:mcp/neon","REPO":"gHashTag/trinity","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"neon","SERVER_VERSION":"","SOURCE":".mcp.json","TOOLS":[],"TOOLS_ABOUT":[],"TOOLS_INPUTS":[],"TOOLS_NOTE":"Tool list lives in the external npm package, not in this repository; nothing is listed rather than guessed.","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/neon","inSpecCorpus":true,"launch":"npx -y @neondatabase/mcp-server-neon start","links":{"config":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.mcp.json","pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.mcp.json"},"messages":["no agent letter bound by a source","external package: tool list not in the repository"],"moduleName":"tool_mcp_neon","name":{"en":"neon"},"qualifiedId":"gHashTag/trinity:mcp/neon","repo":"gHashTag/trinity","resources":[],"schema":2,"searchText":"mcp/neon neon external mcp server `neon` registered in .mcp.json; launched as `npx -y @neondatabase/mcp-server-neon start`.","server":"neon","serverVersion":"","sha256":"7bf7cec4562d12aa0f4d9928b70cec5fd4db6ed6f35b52d2a9286f0f932eeb24","skills":[],"source":".mcp.json","specPath":"specs/tools/mcp/neon.t27","summary":{"en":"External MCP server `neon` registered in .mcp.json; launched as `npx -y @neondatabase/mcp-server-neon start`.","ru":"Внешний MCP-сервер `neon`, зарегистрированный в .mcp.json; запускается как `npx -y @neondatabase/mcp-server-neon start`."},"tools":[],"toolsNote":"Tool list lives in the external npm package, not in this repository; nothing is listed rather than guessed.","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":".claude/mcp.json entry; no tool list in this repository","agents":[],"config":".claude/mcp.json","discarded":0,"env":["NOTEBOOKLM_STORAGE_STATE"],"external":true,"family":"mcp","fields":{"ABOUT":"External MCP server `notebooklm` registered in .claude/mcp.json; launched as `notebooklm-mcp`.","ABOUT_SOURCE":".claude/mcp.json entry; no tool list in this repository","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".claude/mcp.json","ENABLED":true,"ENV":["NOTEBOOKLM_STORAGE_STATE"],"EXTERNAL":true,"FAMILY":"mcp","ID":"mcp/notebooklm","KIND":"tool","LAUNCH":"notebooklm-mcp --notebook-id auto","QUALIFIED_ID":"gHashTag/t27:mcp/notebooklm","REPO":"gHashTag/t27","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"notebooklm","SERVER_VERSION":"","SOURCE":".claude/mcp.json","TOOLS":[],"TOOLS_ABOUT":[],"TOOLS_INPUTS":[],"TOOLS_NOTE":"Tool list lives in the external package, not in this repository.","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/notebooklm","inSpecCorpus":true,"launch":"notebooklm-mcp --notebook-id auto","links":{"config":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/.claude/mcp.json","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/.claude/mcp.json"},"messages":["no agent letter bound by a source","external package: tool list not in the repository"],"moduleName":"tool_mcp_notebooklm","name":{"en":"notebooklm"},"qualifiedId":"gHashTag/t27:mcp/notebooklm","repo":"gHashTag/t27","resources":[],"schema":2,"searchText":"mcp/notebooklm notebooklm external mcp server `notebooklm` registered in .claude/mcp.json; launched as `notebooklm-mcp`.","server":"notebooklm","serverVersion":"","sha256":"93548d18109d7be76e3c43ea298c9db0a335044e2bbb820d23606859c9939bdb","skills":[],"source":".claude/mcp.json","specPath":"specs/tools/mcp/notebooklm.t27","summary":{"en":"External MCP server `notebooklm` registered in .claude/mcp.json; launched as `notebooklm-mcp`.","ru":"Внешний MCP-сервер `notebooklm`, зарегистрированный в .claude/mcp.json; запускается как `notebooklm-mcp`."},"tools":[],"toolsNote":"Tool list lives in the external package, not in this repository.","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":".mcp.json entry; no tool list in this repository","agents":[],"config":".mcp.json","discarded":0,"env":[],"external":true,"family":"mcp","fields":{"ABOUT":"External MCP server `railway-mcp-server` registered in .mcp.json; launched as `npx -y @railway/mcp-server`.","ABOUT_SOURCE":".mcp.json entry; no tool list in this repository","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".mcp.json","ENABLED":true,"ENV":[],"EXTERNAL":true,"FAMILY":"mcp","ID":"mcp/railway-mcp-server","KIND":"tool","LAUNCH":"npx -y @railway/mcp-server","QUALIFIED_ID":"gHashTag/trinity:mcp/railway-mcp-server","REPO":"gHashTag/trinity","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"railway-mcp-server","SERVER_VERSION":"","SOURCE":".mcp.json","TOOLS":[],"TOOLS_ABOUT":[],"TOOLS_INPUTS":[],"TOOLS_NOTE":"Tool list lives in the external npm package, not in this repository; nothing is listed rather than guessed.","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/railway-mcp-server","inSpecCorpus":true,"launch":"npx -y @railway/mcp-server","links":{"config":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.mcp.json","pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.mcp.json"},"messages":["no agent letter bound by a source","external package: tool list not in the repository"],"moduleName":"tool_mcp_railway_mcp_server","name":{"en":"railway-mcp-server"},"qualifiedId":"gHashTag/trinity:mcp/railway-mcp-server","repo":"gHashTag/trinity","resources":[],"schema":2,"searchText":"mcp/railway-mcp-server railway-mcp-server external mcp server `railway-mcp-server` registered in .mcp.json; launched as `npx -y @railway/mcp-server`.","server":"railway-mcp-server","serverVersion":"","sha256":"e0af68eb26c5b4f8f5ac5e45aa859a28337cce715e90122020fed881b81a9afd","skills":[],"source":".mcp.json","specPath":"specs/tools/mcp/railway-mcp-server.t27","summary":{"en":"External MCP server `railway-mcp-server` registered in .mcp.json; launched as `npx -y @railway/mcp-server`.","ru":"Внешний MCP-сервер `railway-mcp-server`, зарегистрированный в .mcp.json; запускается как `npx -y @railway/mcp-server`."},"tools":[],"toolsNote":"Tool list lives in the external npm package, not in this repository; nothing is listed rather than guessed.","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":"derived from the tool and resource descriptions in scripts/mcp-traceability-server.js","agents":[],"config":".mcp.json","discarded":0,"env":["PROJECT_ROOT","ENFORCE_L1"],"external":false,"family":"mcp","fields":{"ABOUT":"MCP server over stdio that checks L1 TRACEABILITY (Closes #N) in commit messages and PR descriptions, generates compliant commit messages, validates branch names and serves the PHI LOOP stacked-branch template; resources expose the constitution and the L1 audit.","ABOUT_SOURCE":"derived from the tool and resource descriptions in scripts/mcp-traceability-server.js","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".mcp.json","ENABLED":true,"ENV":["PROJECT_ROOT","ENFORCE_L1"],"EXTERNAL":false,"FAMILY":"mcp","ID":"mcp/t27-traceability","KIND":"tool","LAUNCH":"node scripts/mcp-traceability-server.js","QUALIFIED_ID":"gHashTag/t27:mcp/t27-traceability","REPO":"gHashTag/t27","RESOURCES":["docs/T27-CONSTITUTION.md","docs/l1-traceability-audit.md"],"RESOURCES_ABOUT":["Constitutional laws including L1 TRACEABILITY","Audit report for L1 TRACEABILITY compliance"],"SCHEMA":2,"SERVER":"t27-traceability","SERVER_VERSION":"1.0.0","SOURCE":"scripts/mcp-traceability-server.js","TOOLS":["check_traceability","generate_commit_message","validate_branch_name","get_phi_loop_template"],"TOOLS_ABOUT":["Check if a commit message or PR description complies with L1 TRACEABILITY (Closes #N required)","Generate a compliant commit message for t27 including required L1 TRACEABILITY reference","Validate branch name follows t27 naming conventions","Get PHI LOOP stacked branch template for ring development"],"TOOLS_INPUTS":["message","type,scope,description,issueNumber,invariantLaws,body","branchName","ringNumber"],"TOOLS_NOTE":"","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/t27-traceability","inSpecCorpus":true,"launch":"node scripts/mcp-traceability-server.js","links":{"config":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/.mcp.json","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/scripts/mcp-traceability-server.js"},"messages":["no agent letter bound by a source"],"moduleName":"tool_mcp_t27_traceability","name":{"en":"t27-traceability"},"qualifiedId":"gHashTag/t27:mcp/t27-traceability","repo":"gHashTag/t27","resources":[{"about":"Constitutional laws including L1 TRACEABILITY","path":"docs/T27-CONSTITUTION.md"},{"about":"Audit report for L1 TRACEABILITY compliance","path":"docs/l1-traceability-audit.md"}],"schema":2,"searchText":"mcp/t27-traceability t27-traceability mcp server over stdio that checks l1 traceability (closes #n) in commit messages and pr descriptions, generates compliant commit messages, validates branch names and serves the phi loop stacked-branch template; resources expose the constitution and the l1 audit. check_traceability check if a commit message or pr description complies with l1 traceability (closes #n required) generate_commit_message generate a compliant commit message for t27 including required l1 traceability reference validate_branch_name validate branch name follows t27 naming conventions get_phi_loop_template get phi loop stacked branch template for ring development","server":"t27-traceability","serverVersion":"1.0.0","sha256":"2496a572dc04d4f7e615f0d235fd6cda542d1a10caf6abc91ee4ef3a3e36da1e","skills":[],"source":"scripts/mcp-traceability-server.js","specPath":"specs/tools/mcp/t27-traceability.t27","summary":{"en":"MCP server over stdio that checks L1 TRACEABILITY (Closes #N) in commit messages and PR descriptions, generates compliant commit messages, validates branch names and serves the PHI LOOP stacked-branch template; resources expose the constitution and the L1 audit.","ru":"MCP-сервер по stdio, проверяющий L1 TRACEABILITY (Closes #N) в сообщениях коммитов и описаниях PR, генерирующий соответствующие сообщения коммитов, валидирующий имена веток и отдающий шаблон стековых веток PHI LOOP; ресурсы открывают конституцию и аудит L1."},"tools":[{"about":"Check if a commit message or PR description complies with L1 TRACEABILITY (Closes #N required)","inputs":["message"],"name":"check_traceability"},{"about":"Generate a compliant commit message for t27 including required L1 TRACEABILITY reference","inputs":["type","scope","description","issueNumber","invariantLaws","body"],"name":"generate_commit_message"},{"about":"Validate branch name follows t27 naming conventions","inputs":["branchName"],"name":"validate_branch_name"},{"about":"Get PHI LOOP stacked branch template for ring development","inputs":["ringNumber"],"name":"get_phi_loop_template"}],"toolsNote":"","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":"derived from the tool descriptions in cli/tri-mcp/src/main.rs build_tools_list","agents":[],"config":"","discarded":0,"env":[],"external":false,"family":"mcp","fields":{"ABOUT":"Rust MCP server exposing the PHI LOOP tri commands as tools: status, skill begin/end, cell checkpoint/seal, gen, test, verdict, experience save, health.","ABOUT_SOURCE":"derived from the tool descriptions in cli/tri-mcp/src/main.rs build_tools_list","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":"","ENABLED":true,"ENV":[],"EXTERNAL":false,"FAMILY":"mcp","ID":"mcp/tri-mcp","KIND":"tool","LAUNCH":"cargo run -q -p tri-mcp (binary tri-mcp; JSON-RPC over stdio)","QUALIFIED_ID":"gHashTag/t27:mcp/tri-mcp","REPO":"gHashTag/t27","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"tri-mcp","SERVER_VERSION":"0.1.0","SOURCE":"cli/tri-mcp/src/main.rs","TOOLS":["tri_status","tri_skill_begin","tri_skill_end","tri_cell_checkpoint","tri_cell_seal","tri_gen","tri_test","tri_verdict","tri_experience_save","tri_health"],"TOOLS_ABOUT":["Returns PHI LOOP status including active skill, cell, issue binding, and uncommitted changes.","Begins a new PHI LOOP skill session bound to an issue.","Ends the active PHI LOOP skill session.","Records a checkpoint step in the active cell.","Seals the active cell by computing a SHA-256 hash of its checkpoint history.","Generates backends from a .t27 spec file using t27c.","Runs tests for a .t27 spec file using t27c.","Checks for toxic regressions by analyzing swarm health metrics.","Saves an experience episode to the akashic log.","Returns queen and swarm health status from .trinity state."],"TOOLS_INPUTS":["","issue,description","","step","","spec_path","spec_path","","episode_type,summary,ring",""],"TOOLS_NOTE":"Not registered in .mcp.json at this commit; the server exists as the tri-mcp crate.","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/tri-mcp","inSpecCorpus":true,"launch":"cargo run -q -p tri-mcp (binary tri-mcp; JSON-RPC over stdio)","links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri-mcp/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_mcp_tri_mcp","name":{"en":"tri-mcp"},"qualifiedId":"gHashTag/t27:mcp/tri-mcp","repo":"gHashTag/t27","resources":[],"schema":2,"searchText":"mcp/tri-mcp tri-mcp rust mcp server exposing the phi loop tri commands as tools: status, skill begin/end, cell checkpoint/seal, gen, test, verdict, experience save, health. tri_status returns phi loop status including active skill, cell, issue binding, and uncommitted changes. tri_skill_begin begins a new phi loop skill session bound to an issue. tri_skill_end ends the active phi loop skill session. tri_cell_checkpoint records a checkpoint step in the active cell. tri_cell_seal seals the active cell by computing a sha-256 hash of its checkpoint history. tri_gen generates backends from a .t27 spec file using t27c. tri_test runs tests for a .t27 spec file using t27c. tri_verdict checks for toxic regressions by analyzing swarm health metrics. tri_experience_save saves an experience episode to the akashic log. tri_health returns queen and swarm health status from .trinity state.","server":"tri-mcp","serverVersion":"0.1.0","sha256":"ae32961a90fd40b66ecab5b4d20fea7d20293038c00c728d191d211a9576986e","skills":[],"source":"cli/tri-mcp/src/main.rs","specPath":"specs/tools/mcp/tri-mcp.t27","summary":{"en":"Rust MCP server exposing the PHI LOOP tri commands as tools: status, skill begin/end, cell checkpoint/seal, gen, test, verdict, experience save, health.","ru":"MCP-сервер на Rust, открывающий команды tri PHI LOOP как инструменты: status, skill begin/end, cell checkpoint/seal, gen, test, verdict, experience save, health."},"tools":[{"about":"Returns PHI LOOP status including active skill, cell, issue binding, and uncommitted changes.","inputs":[],"name":"tri_status"},{"about":"Begins a new PHI LOOP skill session bound to an issue.","inputs":["issue","description"],"name":"tri_skill_begin"},{"about":"Ends the active PHI LOOP skill session.","inputs":[],"name":"tri_skill_end"},{"about":"Records a checkpoint step in the active cell.","inputs":["step"],"name":"tri_cell_checkpoint"},{"about":"Seals the active cell by computing a SHA-256 hash of its checkpoint history.","inputs":[],"name":"tri_cell_seal"},{"about":"Generates backends from a .t27 spec file using t27c.","inputs":["spec_path"],"name":"tri_gen"},{"about":"Runs tests for a .t27 spec file using t27c.","inputs":["spec_path"],"name":"tri_test"},{"about":"Checks for toxic regressions by analyzing swarm health metrics.","inputs":[],"name":"tri_verdict"},{"about":"Saves an experience episode to the akashic log.","inputs":["episode_type","summary","ring"],"name":"tri_experience_save"},{"about":"Returns queen and swarm health status from .trinity state.","inputs":[],"name":"tri_health"}],"toolsNote":"Not registered in .mcp.json at this commit; the server exists as the tri-mcp crate.","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":"manifest.json description","agents":[],"config":".claude/mcp/tri-ssot/manifest.json","discarded":0,"env":[],"external":false,"family":"mcp","fields":{"ABOUT":"SSOT Integration for t27: GitHub Issues + PRs + Documentation -> NotebookLM","ABOUT_SOURCE":"manifest.json description","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".claude/mcp/tri-ssot/manifest.json","ENABLED":true,"ENV":[],"EXTERNAL":false,"FAMILY":"mcp","ID":"mcp/tri-ssot","KIND":"tool","LAUNCH":"python3 -m contrib.backend.github.mcp_server","QUALIFIED_ID":"gHashTag/t27:mcp/tri-ssot","REPO":"gHashTag/t27","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"tri-ssot","SERVER_VERSION":"1.0.0","SOURCE":".claude/mcp/tri-ssot/manifest.json","TOOLS":["tri_issue","tri_pr","tri_docs","tri_sync","tri_search"],"TOOLS_ABOUT":["GitHub Issue management: create, update, list, close","GitHub PR management: create, merge, close, get status","Documentation management: upload to NotebookLM, sync, query","Unified sync: sync all entities (issues, prs, docs) with NotebookLM","Unified search across GitHub Issues, PRs, NotebookLM docs"],"TOOLS_INPUTS":["action,title,body,labels,issue_id,state","action,title,body,pr_id,issue_id","action,file_path,title","scope","query"],"TOOLS_NOTE":"The manifest names python3 -m contrib.backend.github.mcp_server, but the t27 tree at this commit has no contrib/backend/github/mcp_server.py (git ls-tree); the tool list is taken from the manifest alone (declared, not executed).","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/tri-ssot","inSpecCorpus":true,"launch":"python3 -m contrib.backend.github.mcp_server","links":{"config":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/.claude/mcp/tri-ssot/manifest.json","pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/.claude/mcp/tri-ssot/manifest.json"},"messages":["no agent letter bound by a source"],"moduleName":"tool_mcp_tri_ssot","name":{"en":"tri-ssot"},"qualifiedId":"gHashTag/t27:mcp/tri-ssot","repo":"gHashTag/t27","resources":[],"schema":2,"searchText":"mcp/tri-ssot tri-ssot ssot integration for t27: github issues + prs + documentation -> notebooklm tri_issue github issue management: create, update, list, close tri_pr github pr management: create, merge, close, get status tri_docs documentation management: upload to notebooklm, sync, query tri_sync unified sync: sync all entities (issues, prs, docs) with notebooklm tri_search unified search across github issues, prs, notebooklm docs","server":"tri-ssot","serverVersion":"1.0.0","sha256":"c5f2218c27d16037026e392844aee9dff023506272d7eb2ecae5c323be2994de","skills":[],"source":".claude/mcp/tri-ssot/manifest.json","specPath":"specs/tools/mcp/tri-ssot.t27","summary":{"en":"SSOT Integration for t27: GitHub Issues + PRs + Documentation -> NotebookLM","ru":"Интеграция SSOT для t27: GitHub Issues + PR + документация -> NotebookLM."},"tools":[{"about":"GitHub Issue management: create, update, list, close","inputs":["action","title","body","labels","issue_id","state"],"name":"tri_issue"},{"about":"GitHub PR management: create, merge, close, get status","inputs":["action","title","body","pr_id","issue_id"],"name":"tri_pr"},{"about":"Documentation management: upload to NotebookLM, sync, query","inputs":["action","file_path","title"],"name":"tri_docs"},{"about":"Unified sync: sync all entities (issues, prs, docs) with NotebookLM","inputs":["scope"],"name":"tri_sync"},{"about":"Unified search across GitHub Issues, PRs, NotebookLM docs","inputs":["query"],"name":"tri_search"}],"toolsNote":"The manifest names python3 -m contrib.backend.github.mcp_server, but the t27 tree at this commit has no contrib/backend/github/mcp_server.py (git ls-tree); the tool list is taken from the manifest alone (declared, not executed).","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":"derived from tools/mcp/trinity_mcp/server.zig writeToolsList and .claude/rules/mcp-servers.md","agents":[],"config":".mcp.json","discarded":0,"env":["TRINITY_MCP_PORT"],"external":false,"family":"mcp","fields":{"ABOUT":"Zig MCP server (JSON-RPC over stdio, Content-Length framing) that exposes the tri pipeline, Golden Chain links, swarm, cloud/farm, FPGA, doctor, job, issue, deploy, experience, oracle and needle tools; the static list in writeToolsList plus cell-generated tools loaded at runtime.","ABOUT_SOURCE":"derived from tools/mcp/trinity_mcp/server.zig writeToolsList and .claude/rules/mcp-servers.md","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".mcp.json","ENABLED":true,"ENV":["TRINITY_MCP_PORT"],"EXTERNAL":false,"FAMILY":"mcp","ID":"mcp/trinity","KIND":"tool","LAUNCH":"/data/trinity/zig-out/bin/trinity-mcp","QUALIFIED_ID":"gHashTag/trinity:mcp/trinity","REPO":"gHashTag/trinity","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"trinity","SERVER_VERSION":"","SOURCE":"tools/mcp/trinity_mcp/server.zig","TOOLS":["tri_execute","tri_code","tri_gen","tri_spec_create","tri_decompose","tri_plan","tri_verify","tri_bench","tri_verdict","tri_test","tri_test_run","tri_fix","tri_explain","tri_refactor","tri_doc","tri_reason","tri_status","tri_diff","tri_log","tri_commit","needle_structural_replace","needle_search","needle_quality_gates","needle_preview","needle_batch_edit","needle_graph_build","needle_graph_refactor","needle_graph_extract","needle_graph_visualize","needle_graph_affected","needle_graph_vsa_search","needle_semantic_replace","needle_vsa_index","needle_safe_cross_refactor","needle_vsa_rule_apply","needle_cross_preview","needle_rollback_all","needle_omega_init","needle_omega_analyze","needle_omega_execute","needle_omega_detect","needle_omega_status","needle_safety_gates_run","needle_atomic_refactor","needle_parse_check","needle_compile_check","tri_constants","tri_phi","tri_fib","tri_lucas","tri_spiral","tri_chat","tri_loop_decision","tri_pipeline","tri_omega_awaken","tri_os_boot","tri_tvc_demo","tri_tvc_stats","tri_chem_periodic","tri_chem_element","tri_chem_mass","tri_chem_moles","tri_bio_dna","tri_bio_codon","tri_bio_protein","tri_quantum_constants","tri_quantum_states","tri_bell_states","tri_formula","swarm_status","swarm_agents","swarm_register","swarm_heartbeat","swarm_task_get","swarm_task_add","swarm_task_cancel","swarm_tasks","swarm_pause","swarm_resume","swarm_assign","swarm_github_sync","swarm_github_on_start","swarm_github_on_complete","swarm_github_on_fail","oracle_start","oracle_stop","oracle_status","tri_train_status","tri_train_diagnose","tri_train_loss_curve","tri_train_recommend","tri_train_checkpoint","cloud_spawn","cloud_kill","cloud_list","cloud_status","cloud_logs","cloud_spawn_all","cloud_cleanup","cloud_history","cloud_api_check","cloud_redeploy","cloud_diagnose","cloud_issue_create","cloud_farm","cloud_farm_sync","cloud_farm_capacity","cloud_farm_rebalance","farm_evolve_health","farm_evolve_notify","farm_evolve_watch","cloud_train","cloud_train_batch","chain_cache","chain_baseline","chain_metrics","chain_patterns","chain_tree","chain_check_spec","chain_spec","chain_codegen","chain_analyze","chain_test","chain_bench","chain_fix","chain_bench_ext","chain_bench_theory","chain_delta","chain_optimize","chain_docs","chain_verdict","chain_git","chain_loop","chain_deploy","chain_evolve","chain_self_ref","chain_fpga_test","chain_research","chain_lint_spec","chain_list","cloud_decompose","tri_notify","fpga_uart_scan","fpga_uart_ping","fpga_uart_send","doctor_status","doctor_scan","doctor_report","doctor_plan","doctor_heal","job_start","job_status","job_logs","job_list","job_cancel","job_artifacts","issue_list","issue_view","issue_create","issue_comment","issue_close","issue_assign","issue_decompose","deploy_status","deploy_logs","deploy_vars","deploy_start","deploy_stop","experience_save","experience_recall","experience_mistakes","patent_status","patent_analysis","depin_status","depin_nodes","depin_fitness","research_query","experiment_list","experiment_compare","chimera_run","ouroboros_status","ouroboros_run","self_test","self_health","context_info","context_load","faculty_status","mu_status","mu_patterns","zenodo_status","tri_analyze","tri_clean","tri_fmt","tri_stats","tri_lint","tri_search","tri_metrics","tri_trace","tri_eval","farm_status","farm_idle","farm_recycle","farm_fill","farm_accounts","farm_wave_spawn","fpga_synth","fpga_status","fpga_build","fpga_verify","fpga_flash"],"TOOLS_ABOUT":["Universal executor -- run ANY tri command with automatic needle check","Generate code with typing effect","Compile VIBEE spec to Zig/Verilog","Create new .tri specification template","Break task into sub-tasks (Golden Chain Link 4)","Generate implementation plan (Golden Chain Link 5)","Run tests + benchmarks (Links 7-11)","Run performance benchmarks","Generate toxic verdict (Link 14)","Generate tests for code","Run specific test suite","Detect and fix bugs","Explain code or concept","Suggest refactoring","Generate documentation","Chain-of-thought reasoning","Git status --short","Git diff","Git log --oneline","Git add -A && commit","AST-aware code edit with Tier 0->1 fallback","Search codebase for pattern matches","Run quality gates: parse check, AST analysis","Preview edit diff without applying","Apply multiple edits in one operation","Build complete call graph with VSA embeddings for project","Rename symbol across entire project with semantic awareness","Extract function/method from code block","Generate graph visualization (DOT/JSON) with VSA clustering","Find all files affected by symbol change (with semantic impact)","Search for semantically similar symbols by code or intent","Replace code by semantic meaning (not just pattern)","Build semantic VSA index for codebase","Safe cross-file semantic refactor with VSA rules and 100% rollback","Apply VSA rules to validate proposed refactor","Preview cross-file refactor impact with safety assessment","Rollback all changes from failed refactor","Initialize Omega autonomous agent for project","Omega analyzes codebase and suggests improvements","Execute refactor plan with full autonomy","Auto-detect code improvements and optimizations","Get Omega agent status and health","Run all safety gates on a file (Phase 1: parse/compile/test)","Apply atomic refactor with 100% rollback guarantee (Phase 1)","Parse check using Zig AST parser (Phase 1)","Compile check using zig build (Phase 1)","Show sacred constants (phi, pi, e, mu, chi, sigma, epsilon...)","Compute phi^n (golden ratio power)","Fibonacci with BigInt","Lucas L(n) -- L(2)=3=TRINITY","phi-spiral coordinates","Interactive chat (vision + voice + tools)","Loop decision: CONTINUE/EXIT (Link 17)","Execute 26-link Golden Chain pipeline","Awaken Omega autonomous agent","Temporal Trinity OS boot","Run TVC chat demo","Show TVC corpus statistics","List periodic table elements by category","Look up element by symbol or atomic number","Calculate molar mass of chemical formula","Calculate moles, molecules, atoms from mass","Analyze DNA sequence (GC content, composition)","Look up RNA codon to amino acid","Analyze protein sequence (mass, composition)","Show quantum physics constants (h, hbar, alpha)","Show quantum basis states and phi-state","Show four Bell entangled states","Evaluate V = n * 3^k * pi^m * phi^p * e^q","Get Ralph Agent Swarm status summary (agents, tasks, counts)","List all registered swarm agents with status","Register a new agent in the swarm","Agent heartbeat with status, branch, task_id, commit_sha (circuit breaker)","Get next pending task for an agent (priority-ordered)","Add a new task to the swarm queue","Cancel and remove a task from the queue","List all tasks in the swarm queue","Pause all swarm agents (finish current tasks, no new assignments)","Resume all paused swarm agents","Create and assign a task to a specific agent","Convert GitHub issue to swarm task. Returns labels/actions for Go proxy.","Notify that agent started a GitHub-sourced task. Returns label swaps + comment.","Notify GitHub task completed. Returns labels, comment, close_issue.","Notify GitHub task failed. Returns labels + error comment.","Start Oracle Telegram watchdog thread (sends swarm status every N minutes)","Stop Oracle Telegram watchdog thread","Get Oracle watchdog status (running/stopped, messages sent, errors)","Get HSLM training status -- checkpoints, loss, anomalies, recommendation","Diagnose HSLM training anomalies (zero loss, phase transition, overfitting)","Get HSLM loss curve from checkpoint headers","Get phi-aware recommendation for next training action","List HSLM checkpoints with step, loss, PPL, size","Spawn a cloud agent container for a GitHub issue","Kill a cloud agent container","List all active cloud agent containers","Get cloud infrastructure status","Get cloud agent deployment logs","Spawn agents for all issues labeled agent:spawn","Remove inactive cloud agent entries","Get event history for a cloud agent","Test API key connectivity and model routing -- detects proxy returning wrong model","Reuse existing Railway service for a new issue number","Diagnose why an agent failed -- shows GitHub comments, JSONL events, PR status","Create a GitHub issue with agent:spawn label for auto-spawning","Railway multi-account farm dashboard -- shows all accounts with capacity and daily limits","Sync active service counts across all Railway accounts","Get farm capacity as JSON -- total slots, active services, daily remaining per account","Migrate services from overloaded to underloaded Railway accounts","Farm evolution health dashboard -- leaderboard, health_score 0-100, stagnation, ETA","Farm insight scan -- detect leader changes, plateaus, spikes, wave completion. Sends to Telegram unless dry-run","Single evolution sweep -- inject sacred children into free slots, auto-notify. Always --once","Spawn an HSLM training experiment on Railway farm","Spawn all 13 HSLM training experiments across Railway farm","Chain Link 0: TVC Gate -- search corpus, return cached or continue","Chain Link 1: Analyze previous version v(n-1)","Chain Link 2: Collect performance metrics","Chain Link 3: Research patterns and science (PAS)","Chain Link 4: Build technology dependency tree","Chain Link 5: VIBEE-first compliance check","Chain Link 6: Create .tri specifications","Chain Link 7: Generate Zig code from .tri specs","Chain Link 8: Sacred Intelligence code analysis","Chain Link 9: Run zig build test suite","Chain Link 10: CRITICAL -- Compare to baseline v(n-1)","Chain Link 11: SWE Agent error fixing","Chain Link 12: Compare to external tools (llama.cpp/vLLM)","Chain Link 13: Gap to theoretical maximum","Chain Link 14: Generate improvement delta report","Chain Link 15: Optimize if needed (optional)","Chain Link 16: Generate documentation with proofs","Chain Link 17: Critical self-assessment (toxic verdict)","Chain Link 18: Commit and push changes","Chain Link 19: Decide next iteration (continue/exit)","Chain Link 20: Auto-deploy to cloud","Chain Link 21: Pipeline analyzes itself (eternal self-evolution)","Chain Link 22: Pipeline improves itself (circular bootstrapping)","Chain Link 23: Camera-based LED verification for FPGA","Chain Link 24: Research-assisted error fixing via Perplexity","Chain Link 25: Validate .tri spec syntax before codegen","List all 26 Golden Chain links with roles and status","Decompose a GitHub issue into 5 role-based sub-issues (planner/coder/reviewer/tester/integrator)","Send/edit/pin Telegram messages via tri CLI","Scan for USB-UART serial devices (CH340/FTDI) connected to FPGA","PING/PONG test -- send 0x03, expect 0x83 from FPGA","Send raw hex bytes to FPGA via UART and print response","Get doctor health status -- one-line summary","Scan and classify all .zig files","Health score dashboard with emoji grades","Create migration queue for manual files","Regenerate manual files through pipeline","Start a background job","Get job status by ID","Get job logs by ID","List all background jobs","Cancel a running job","Get job artifacts by ID","List open GitHub issues","View a specific GitHub issue","Create a new GitHub issue","Add a comment to a GitHub issue","Close a GitHub issue","Assign a user to a GitHub issue","Decompose a GitHub issue into sub-tasks","Get deployment status","Get deployment logs","Get deployment environment variables","Start deployment","Stop deployment","Save an experience entry (key-value learning)","Recall an experience entry by key","List all recorded mistakes/anti-patterns","Get patent portfolio status","Get patent analysis and claims","Get DePIN node protocol status","List DePIN network nodes","Get DePIN node fitness scores","Research a topic via Perplexity-assisted search","List all HSLM training experiments","Compare two experiments","Run a chimera fused command (farm-cycle, train-cycle, etc.)","Get ouroboros self-evolution status and score","Run ouroboros self-evolution cycle","Run self-test suite","Get self-health check results","Get current context info (tokens, files, window)","Load additional context from a file path","Get Faculty Board status dashboard","Get MU agent status","List MU learned patterns","Get Zenodo publication status","Analyze codebase quality and metrics","Clean build artifacts and temp files","Format all Zig source files","Show project statistics (LOC, files, tests)","Run linter on source code","Search codebase for a query string","Get project metrics dashboard","Get execution trace","Evaluate expression or code snippet","Get training farm status overview","List idle farm workers","Recycle underperforming farm workers","Fill empty farm slots with new experiments","List all 8 Railway farm accounts and their service counts","Spawn a wave of training workers on a specific account","Run FPGA synthesis pipeline","Get FPGA hardware and synthesis status","Build FPGA bitstream","Verify FPGA bitstream against RTL","Flash bitstream to FPGA board"],"TOOLS_INPUTS":["command,args,auto_needle","prompt","spec","name","task","task","","suite","","file","pattern","file","target","file","file","prompt","","","count","message","file_path,pattern_query,replacement,safety_level,edit_mode","query,file_path,confidence_threshold","file_path,check_level","file_path,pattern_query,replacement","edits","root_dir,enable_vsa","symbol,new_name,semantic_aware,similarity_threshold,scope,preview","file,start_line,end_line,function_name","format,focus,show_vsa","symbol,include_transitive,semantic_impact","query,top_k,min_similarity","intent,replacement_intent,file,preview","root_dir,embedding_dim","intent,new_intent,semantic_threshold,preview","transformation,rules_file","symbol,new_name,include_vsa","refactor_id","root_dir,autonomy_level","intent,auto_detect","plan_id,confirm","min_confidence,max_results","","file_path,gates","file_path,pattern_query,replacement,safety_gates","file_path","project_root","","n","n","n","n","message,stream","mode","task","mode","","","","category","element","formula","formula,mass","sequence","codon","sequence","","","","n,k,m,p,q","","","agent_id,hostname","agent_id,status,branch,task_id,commit_sha","agent_id","id,slug,description,priority","task_id","","","","agent_id,description","issue_number,title,labels","task_id,agent_id,branch","task_id,agent_id,result","task_id,agent_id,error","telegram_token,chat_id,interval_ms","","","","dir","dir","dir","dir","issue_number","issue_number","","","","","","issue_number","","service_id,issue_number","issue_number","title","","","","","","dry_run","sacred,dry_run","name","","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","task","","issue_number,template","text,chat_id,pin,edit_id","","device","device,hex_bytes","","","","","","command","id","id","","id","id","","number","title,body","number,body","number","number,user","number","","","","","","key,value","key","","","","","","","query","","a,b","name","","","","","","path","","","","","","","","","","query","","","","","","","","","account,count","","","","","bitstream"],"TOOLS_NOTE":"Static list parsed from writeToolsList (210 entries; 32 entries have an unbalanced trailing brace in the source literal and were parsed after adding or removing one). Cell-generated tools from data/cells/mcp_tools.json are appended at runtime and are not listed here. .trinity/mcp_schemas.json lists a different, shorter set (29 names) and is not used as the source.","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/trinity","inSpecCorpus":true,"launch":"/data/trinity/zig-out/bin/trinity-mcp","links":{"config":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.mcp.json","pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/tools/mcp/trinity_mcp/server.zig"},"messages":["no agent letter bound by a source"],"moduleName":"tool_mcp_trinity","name":{"en":"trinity"},"qualifiedId":"gHashTag/trinity:mcp/trinity","repo":"gHashTag/trinity","resources":[],"schema":2,"searchText":"mcp/trinity trinity zig mcp server (json-rpc over stdio, content-length framing) that exposes the tri pipeline, golden chain links, swarm, cloud/farm, fpga, doctor, job, issue, deploy, experience, oracle and needle tools; the static list in writetoolslist plus cell-generated tools loaded at runtime. tri_execute universal executor -- run any tri command with automatic needle check tri_code generate code with typing effect tri_gen compile vibee spec to zig/verilog tri_spec_create create new .tri specification template tri_decompose break task into sub-tasks (golden chain link 4) tri_plan generate implementation plan (golden chain link 5) tri_verify run tests + benchmarks (links 7-11) tri_bench run performance benchmarks tri_verdict generate toxic verdict (link 14) tri_test generate tests for code tri_test_run run specific test suite tri_fix detect and fix bugs tri_explain explain code or concept tri_refactor suggest refactoring tri_doc generate documentation tri_reason chain-of-thought reasoning tri_status git status --short tri_diff git diff tri_log git log --oneline tri_commit git add -a && commit needle_structural_replace ast-aware code edit with tier 0->1 fallback needle_search search codebase for pattern matches needle_quality_gates run quality gates: parse check, ast analysis needle_preview preview edit diff without applying needle_batch_edit apply multiple edits in one operation needle_graph_build build complete call graph with vsa embeddings for project needle_graph_refactor rename symbol across entire project with semantic awareness needle_graph_extract extract function/method from code block needle_graph_visualize generate graph visualization (dot/json) with vsa clustering needle_graph_affected find all files affected by symbol change (with semantic impact) needle_graph_vsa_search search for semantically similar symbols by code or intent needle_semantic_replace replace code by semantic meaning (not just pattern) needle_vsa_index build semantic vsa index for codebase needle_safe_cross_refactor safe cross-file semantic refactor with vsa rules and 100% rollback needle_vsa_rule_apply apply vsa rules to validate proposed refactor needle_cross_preview preview cross-file refactor impact with safety assessment needle_rollback_all rollback all changes from failed refactor needle_omega_init initialize omega autonomous agent for project needle_omega_analyze omega analyzes codebase and suggests improvements needle_omega_execute execute refactor plan with full autonomy needle_omega_detect auto-detect code improvements and optimizations needle_omega_status get omega agent status and health needle_safety_gates_run run all safety gates on a file (phase 1: parse/compile/test) needle_atomic_refactor apply atomic refactor with 100% rollback guarantee (phase 1) needle_parse_check parse check using zig ast parser (phase 1) needle_compile_check compile check using zig build (phase 1) tri_constants show sacred constants (phi, pi, e, mu, chi, sigma, epsilon...) tri_phi compute phi^n (golden ratio power) tri_fib fibonacci with bigint tri_lucas lucas l(n) -- l(2)=3=trinity tri_spiral phi-spiral coordinates tri_chat interactive chat (vision + voice + tools) tri_loop_decision loop decision: continue/exit (link 17) tri_pipeline execute 26-link golden chain pipeline tri_omega_awaken awaken omega autonomous agent tri_os_boot temporal trinity os boot tri_tvc_demo run tvc chat demo tri_tvc_stats show tvc corpus statistics tri_chem_periodic list periodic table elements by category tri_chem_element look up element by symbol or atomic number tri_chem_mass calculate molar mass of chemical formula tri_chem_moles calculate moles, molecules, atoms from mass tri_bio_dna analyze dna sequence (gc content, composition) tri_bio_codon look up rna codon to amino acid tri_bio_protein analyze protein sequence (mass, composition) tri_quantum_constants show quantum physics constants (h, hbar, alpha) tri_quantum_states show quantum basis states and phi-state tri_bell_states show four bell entangled states tri_formula evaluate v = n * 3^k * pi^m * phi^p * e^q swarm_status get ralph agent swarm status summary (agents, tasks, counts) swarm_agents list all registered swarm agents with status swarm_register register a new agent in the swarm swarm_heartbeat agent heartbeat with status, branch, task_id, commit_sha (circuit breaker) swarm_task_get get next pending task for an agent (priority-ordered) swarm_task_add add a new task to the swarm queue swarm_task_cancel cancel and remove a task from the queue swarm_tasks list all tasks in the swarm queue swarm_pause pause all swarm agents (finish current tasks, no new assignments) swarm_resume resume all paused swarm agents swarm_assign create and assign a task to a specific agent swarm_github_sync convert github issue to swarm task. returns labels/actions for go proxy. swarm_github_on_start notify that agent started a github-sourced task. returns label swaps + comment. swarm_github_on_complete notify github task completed. returns labels, comment, close_issue. swarm_github_on_fail notify github task failed. returns labels + error comment. oracle_start start oracle telegram watchdog thread (sends swarm status every n minutes) oracle_stop stop oracle telegram watchdog thread oracle_status get oracle watchdog status (running/stopped, messages sent, errors) tri_train_status get hslm training status -- checkpoints, loss, anomalies, recommendation tri_train_diagnose diagnose hslm training anomalies (zero loss, phase transition, overfitting) tri_train_loss_curve get hslm loss curve from checkpoint headers tri_train_recommend get phi-aware recommendation for next training action tri_train_checkpoint list hslm checkpoints with step, loss, ppl, size cloud_spawn spawn a cloud agent container for a github issue cloud_kill kill a cloud agent container cloud_list list all active cloud agent containers cloud_status get cloud infrastructure status cloud_logs get cloud agent deployment logs cloud_spawn_all spawn agents for all issues labeled agent:spawn cloud_cleanup remove inactive cloud agent entries cloud_history get event history for a cloud agent cloud_api_check test api key connectivity and model routing -- detects proxy returning wrong model cloud_redeploy reuse existing railway service for a new issue number cloud_diagnose diagnose why an agent failed -- shows github comments, jsonl events, pr status cloud_issue_create create a github issue with agent:spawn label for auto-spawning cloud_farm railway multi-account farm dashboard -- shows all accounts with capacity and daily limits cloud_farm_sync sync active service counts across all railway accounts cloud_farm_capacity get farm capacity as json -- total slots, active services, daily remaining per account cloud_farm_rebalance migrate services from overloaded to underloaded railway accounts farm_evolve_health farm evolution health dashboard -- leaderboard, health_score 0-100, stagnation, eta farm_evolve_notify farm insight scan -- detect leader changes, plateaus, spikes, wave completion. sends to telegram unless dry-run farm_evolve_watch single evolution sweep -- inject sacred children into free slots, auto-notify. always --once cloud_train spawn an hslm training experiment on railway farm cloud_train_batch spawn all 13 hslm training experiments across railway farm chain_cache chain link 0: tvc gate -- search corpus, return cached or continue chain_baseline chain link 1: analyze previous version v(n-1) chain_metrics chain link 2: collect performance metrics chain_patterns chain link 3: research patterns and science (pas) chain_tree chain link 4: build technology dependency tree chain_check_spec chain link 5: vibee-first compliance check chain_spec chain link 6: create .tri specifications chain_codegen chain link 7: generate zig code from .tri specs chain_analyze chain link 8: sacred intelligence code analysis chain_test chain link 9: run zig build test suite chain_bench chain link 10: critical -- compare to baseline v(n-1) chain_fix chain link 11: swe agent error fixing chain_bench_ext chain link 12: compare to external tools (llama.cpp/vllm) chain_bench_theory chain link 13: gap to theoretical maximum chain_delta chain link 14: generate improvement delta report chain_optimize chain link 15: optimize if needed (optional) chain_docs chain link 16: generate documentation with proofs chain_verdict chain link 17: critical self-assessment (toxic verdict) chain_git chain link 18: commit and push changes chain_loop chain link 19: decide next iteration (continue/exit) chain_deploy chain link 20: auto-deploy to cloud chain_evolve chain link 21: pipeline analyzes itself (eternal self-evolution) chain_self_ref chain link 22: pipeline improves itself (circular bootstrapping) chain_fpga_test chain link 23: camera-based led verification for fpga chain_research chain link 24: research-assisted error fixing via perplexity chain_lint_spec chain link 25: validate .tri spec syntax before codegen chain_list list all 26 golden chain links with roles and status cloud_decompose decompose a github issue into 5 role-based sub-issues (planner/coder/reviewer/tester/integrator) tri_notify send/edit/pin telegram messages via tri cli fpga_uart_scan scan for usb-uart serial devices (ch340/ftdi) connected to fpga fpga_uart_ping ping/pong test -- send 0x03, expect 0x83 from fpga fpga_uart_send send raw hex bytes to fpga via uart and print response doctor_status get doctor health status -- one-line summary doctor_scan scan and classify all .zig files doctor_report health score dashboard with emoji grades doctor_plan create migration queue for manual files doctor_heal regenerate manual files through pipeline job_start start a background job job_status get job status by id job_logs get job logs by id job_list list all background jobs job_cancel cancel a running job job_artifacts get job artifacts by id issue_list list open github issues issue_view view a specific github issue issue_create create a new github issue issue_comment add a comment to a github issue issue_close close a github issue issue_assign assign a user to a github issue issue_decompose decompose a github issue into sub-tasks deploy_status get deployment status deploy_logs get deployment logs deploy_vars get deployment environment variables deploy_start start deployment deploy_stop stop deployment experience_save save an experience entry (key-value learning) experience_recall recall an experience entry by key experience_mistakes list all recorded mistakes/anti-patterns patent_status get patent portfolio status patent_analysis get patent analysis and claims depin_status get depin node protocol status depin_nodes list depin network nodes depin_fitness get depin node fitness scores research_query research a topic via perplexity-assisted search experiment_list list all hslm training experiments experiment_compare compare two experiments chimera_run run a chimera fused command (farm-cycle, train-cycle, etc.) ouroboros_status get ouroboros self-evolution status and score ouroboros_run run ouroboros self-evolution cycle self_test run self-test suite self_health get self-health check results context_info get current context info (tokens, files, window) context_load load additional context from a file path faculty_status get faculty board status dashboard mu_status get mu agent status mu_patterns list mu learned patterns zenodo_status get zenodo publication status tri_analyze analyze codebase quality and metrics tri_clean clean build artifacts and temp files tri_fmt format all zig source files tri_stats show project statistics (loc, files, tests) tri_lint run linter on source code tri_search search codebase for a query string tri_metrics get project metrics dashboard tri_trace get execution trace tri_eval evaluate expression or code snippet farm_status get training farm status overview farm_idle list idle farm workers farm_recycle recycle underperforming farm workers farm_fill fill empty farm slots with new experiments farm_accounts list all 8 railway farm accounts and their service counts farm_wave_spawn spawn a wave of training workers on a specific account fpga_synth run fpga synthesis pipeline fpga_status get fpga hardware and synthesis status fpga_build build fpga bitstream fpga_verify verify fpga bitstream against rtl fpga_flash flash bitstream to fpga board","server":"trinity","serverVersion":"","sha256":"6d12259c8f9ce6b5c139b041f23558ef50c0f6a3edb22569fb4e2559f4ca3b54","skills":[],"source":"tools/mcp/trinity_mcp/server.zig","specPath":"specs/tools/mcp/trinity.t27","summary":{"en":"Zig MCP server (JSON-RPC over stdio, Content-Length framing) that exposes the tri pipeline, Golden Chain links, swarm, cloud/farm, FPGA, doctor, job, issue, deploy, experience, oracle and needle tools; the static list in writeToolsList plus cell-generated tools loaded at runtime.","ru":"MCP-сервер на Zig (JSON-RPC по stdio, кадрирование Content-Length), открывающий инструменты конвейера tri, звеньев Golden Chain, роя, облака/фермы, FPGA, doctor, job, issue, deploy, experience, oracle и needle; статический список writeToolsList плюс инструменты ячеек, подгружаемые во время выполнения."},"tools":[{"about":"Universal executor -- run ANY tri command with automatic needle check","inputs":["command","args","auto_needle"],"name":"tri_execute"},{"about":"Generate code with typing effect","inputs":["prompt"],"name":"tri_code"},{"about":"Compile VIBEE spec to Zig/Verilog","inputs":["spec"],"name":"tri_gen"},{"about":"Create new .tri specification template","inputs":["name"],"name":"tri_spec_create"},{"about":"Break task into sub-tasks (Golden Chain Link 4)","inputs":["task"],"name":"tri_decompose"},{"about":"Generate implementation plan (Golden Chain Link 5)","inputs":["task"],"name":"tri_plan"},{"about":"Run tests + benchmarks (Links 7-11)","inputs":[],"name":"tri_verify"},{"about":"Run performance benchmarks","inputs":["suite"],"name":"tri_bench"},{"about":"Generate toxic verdict (Link 14)","inputs":[],"name":"tri_verdict"},{"about":"Generate tests for code","inputs":["file"],"name":"tri_test"},{"about":"Run specific test suite","inputs":["pattern"],"name":"tri_test_run"},{"about":"Detect and fix bugs","inputs":["file"],"name":"tri_fix"},{"about":"Explain code or concept","inputs":["target"],"name":"tri_explain"},{"about":"Suggest refactoring","inputs":["file"],"name":"tri_refactor"},{"about":"Generate documentation","inputs":["file"],"name":"tri_doc"},{"about":"Chain-of-thought reasoning","inputs":["prompt"],"name":"tri_reason"},{"about":"Git status --short","inputs":[],"name":"tri_status"},{"about":"Git diff","inputs":[],"name":"tri_diff"},{"about":"Git log --oneline","inputs":["count"],"name":"tri_log"},{"about":"Git add -A && commit","inputs":["message"],"name":"tri_commit"},{"about":"AST-aware code edit with Tier 0->1 fallback","inputs":["file_path","pattern_query","replacement","safety_level","edit_mode"],"name":"needle_structural_replace"},{"about":"Search codebase for pattern matches","inputs":["query","file_path","confidence_threshold"],"name":"needle_search"},{"about":"Run quality gates: parse check, AST analysis","inputs":["file_path","check_level"],"name":"needle_quality_gates"},{"about":"Preview edit diff without applying","inputs":["file_path","pattern_query","replacement"],"name":"needle_preview"},{"about":"Apply multiple edits in one operation","inputs":["edits"],"name":"needle_batch_edit"},{"about":"Build complete call graph with VSA embeddings for project","inputs":["root_dir","enable_vsa"],"name":"needle_graph_build"},{"about":"Rename symbol across entire project with semantic awareness","inputs":["symbol","new_name","semantic_aware","similarity_threshold","scope","preview"],"name":"needle_graph_refactor"},{"about":"Extract function/method from code block","inputs":["file","start_line","end_line","function_name"],"name":"needle_graph_extract"},{"about":"Generate graph visualization (DOT/JSON) with VSA clustering","inputs":["format","focus","show_vsa"],"name":"needle_graph_visualize"},{"about":"Find all files affected by symbol change (with semantic impact)","inputs":["symbol","include_transitive","semantic_impact"],"name":"needle_graph_affected"},{"about":"Search for semantically similar symbols by code or intent","inputs":["query","top_k","min_similarity"],"name":"needle_graph_vsa_search"},{"about":"Replace code by semantic meaning (not just pattern)","inputs":["intent","replacement_intent","file","preview"],"name":"needle_semantic_replace"},{"about":"Build semantic VSA index for codebase","inputs":["root_dir","embedding_dim"],"name":"needle_vsa_index"},{"about":"Safe cross-file semantic refactor with VSA rules and 100% rollback","inputs":["intent","new_intent","semantic_threshold","preview"],"name":"needle_safe_cross_refactor"},{"about":"Apply VSA rules to validate proposed refactor","inputs":["transformation","rules_file"],"name":"needle_vsa_rule_apply"},{"about":"Preview cross-file refactor impact with safety assessment","inputs":["symbol","new_name","include_vsa"],"name":"needle_cross_preview"},{"about":"Rollback all changes from failed refactor","inputs":["refactor_id"],"name":"needle_rollback_all"},{"about":"Initialize Omega autonomous agent for project","inputs":["root_dir","autonomy_level"],"name":"needle_omega_init"},{"about":"Omega analyzes codebase and suggests improvements","inputs":["intent","auto_detect"],"name":"needle_omega_analyze"},{"about":"Execute refactor plan with full autonomy","inputs":["plan_id","confirm"],"name":"needle_omega_execute"},{"about":"Auto-detect code improvements and optimizations","inputs":["min_confidence","max_results"],"name":"needle_omega_detect"},{"about":"Get Omega agent status and health","inputs":[],"name":"needle_omega_status"},{"about":"Run all safety gates on a file (Phase 1: parse/compile/test)","inputs":["file_path","gates"],"name":"needle_safety_gates_run"},{"about":"Apply atomic refactor with 100% rollback guarantee (Phase 1)","inputs":["file_path","pattern_query","replacement","safety_gates"],"name":"needle_atomic_refactor"},{"about":"Parse check using Zig AST parser (Phase 1)","inputs":["file_path"],"name":"needle_parse_check"},{"about":"Compile check using zig build (Phase 1)","inputs":["project_root"],"name":"needle_compile_check"},{"about":"Show sacred constants (phi, pi, e, mu, chi, sigma, epsilon...)","inputs":[],"name":"tri_constants"},{"about":"Compute phi^n (golden ratio power)","inputs":["n"],"name":"tri_phi"},{"about":"Fibonacci with BigInt","inputs":["n"],"name":"tri_fib"},{"about":"Lucas L(n) -- L(2)=3=TRINITY","inputs":["n"],"name":"tri_lucas"},{"about":"phi-spiral coordinates","inputs":["n"],"name":"tri_spiral"},{"about":"Interactive chat (vision + voice + tools)","inputs":["message","stream"],"name":"tri_chat"},{"about":"Loop decision: CONTINUE/EXIT (Link 17)","inputs":["mode"],"name":"tri_loop_decision"},{"about":"Execute 26-link Golden Chain pipeline","inputs":["task"],"name":"tri_pipeline"},{"about":"Awaken Omega autonomous agent","inputs":["mode"],"name":"tri_omega_awaken"},{"about":"Temporal Trinity OS boot","inputs":[],"name":"tri_os_boot"},{"about":"Run TVC chat demo","inputs":[],"name":"tri_tvc_demo"},{"about":"Show TVC corpus statistics","inputs":[],"name":"tri_tvc_stats"},{"about":"List periodic table elements by category","inputs":["category"],"name":"tri_chem_periodic"},{"about":"Look up element by symbol or atomic number","inputs":["element"],"name":"tri_chem_element"},{"about":"Calculate molar mass of chemical formula","inputs":["formula"],"name":"tri_chem_mass"},{"about":"Calculate moles, molecules, atoms from mass","inputs":["formula","mass"],"name":"tri_chem_moles"},{"about":"Analyze DNA sequence (GC content, composition)","inputs":["sequence"],"name":"tri_bio_dna"},{"about":"Look up RNA codon to amino acid","inputs":["codon"],"name":"tri_bio_codon"},{"about":"Analyze protein sequence (mass, composition)","inputs":["sequence"],"name":"tri_bio_protein"},{"about":"Show quantum physics constants (h, hbar, alpha)","inputs":[],"name":"tri_quantum_constants"},{"about":"Show quantum basis states and phi-state","inputs":[],"name":"tri_quantum_states"},{"about":"Show four Bell entangled states","inputs":[],"name":"tri_bell_states"},{"about":"Evaluate V = n * 3^k * pi^m * phi^p * e^q","inputs":["n","k","m","p","q"],"name":"tri_formula"},{"about":"Get Ralph Agent Swarm status summary (agents, tasks, counts)","inputs":[],"name":"swarm_status"},{"about":"List all registered swarm agents with status","inputs":[],"name":"swarm_agents"},{"about":"Register a new agent in the swarm","inputs":["agent_id","hostname"],"name":"swarm_register"},{"about":"Agent heartbeat with status, branch, task_id, commit_sha (circuit breaker)","inputs":["agent_id","status","branch","task_id","commit_sha"],"name":"swarm_heartbeat"},{"about":"Get next pending task for an agent (priority-ordered)","inputs":["agent_id"],"name":"swarm_task_get"},{"about":"Add a new task to the swarm queue","inputs":["id","slug","description","priority"],"name":"swarm_task_add"},{"about":"Cancel and remove a task from the queue","inputs":["task_id"],"name":"swarm_task_cancel"},{"about":"List all tasks in the swarm queue","inputs":[],"name":"swarm_tasks"},{"about":"Pause all swarm agents (finish current tasks, no new assignments)","inputs":[],"name":"swarm_pause"},{"about":"Resume all paused swarm agents","inputs":[],"name":"swarm_resume"},{"about":"Create and assign a task to a specific agent","inputs":["agent_id","description"],"name":"swarm_assign"},{"about":"Convert GitHub issue to swarm task. Returns labels/actions for Go proxy.","inputs":["issue_number","title","labels"],"name":"swarm_github_sync"},{"about":"Notify that agent started a GitHub-sourced task. Returns label swaps + comment.","inputs":["task_id","agent_id","branch"],"name":"swarm_github_on_start"},{"about":"Notify GitHub task completed. Returns labels, comment, close_issue.","inputs":["task_id","agent_id","result"],"name":"swarm_github_on_complete"},{"about":"Notify GitHub task failed. Returns labels + error comment.","inputs":["task_id","agent_id","error"],"name":"swarm_github_on_fail"},{"about":"Start Oracle Telegram watchdog thread (sends swarm status every N minutes)","inputs":["telegram_token","chat_id","interval_ms"],"name":"oracle_start"},{"about":"Stop Oracle Telegram watchdog thread","inputs":[],"name":"oracle_stop"},{"about":"Get Oracle watchdog status (running/stopped, messages sent, errors)","inputs":[],"name":"oracle_status"},{"about":"Get HSLM training status -- checkpoints, loss, anomalies, recommendation","inputs":[],"name":"tri_train_status"},{"about":"Diagnose HSLM training anomalies (zero loss, phase transition, overfitting)","inputs":["dir"],"name":"tri_train_diagnose"},{"about":"Get HSLM loss curve from checkpoint headers","inputs":["dir"],"name":"tri_train_loss_curve"},{"about":"Get phi-aware recommendation for next training action","inputs":["dir"],"name":"tri_train_recommend"},{"about":"List HSLM checkpoints with step, loss, PPL, size","inputs":["dir"],"name":"tri_train_checkpoint"},{"about":"Spawn a cloud agent container for a GitHub issue","inputs":["issue_number"],"name":"cloud_spawn"},{"about":"Kill a cloud agent container","inputs":["issue_number"],"name":"cloud_kill"},{"about":"List all active cloud agent containers","inputs":[],"name":"cloud_list"},{"about":"Get cloud infrastructure status","inputs":[],"name":"cloud_status"},{"about":"Get cloud agent deployment logs","inputs":[],"name":"cloud_logs"},{"about":"Spawn agents for all issues labeled agent:spawn","inputs":[],"name":"cloud_spawn_all"},{"about":"Remove inactive cloud agent entries","inputs":[],"name":"cloud_cleanup"},{"about":"Get event history for a cloud agent","inputs":["issue_number"],"name":"cloud_history"},{"about":"Test API key connectivity and model routing -- detects proxy returning wrong model","inputs":[],"name":"cloud_api_check"},{"about":"Reuse existing Railway service for a new issue number","inputs":["service_id","issue_number"],"name":"cloud_redeploy"},{"about":"Diagnose why an agent failed -- shows GitHub comments, JSONL events, PR status","inputs":["issue_number"],"name":"cloud_diagnose"},{"about":"Create a GitHub issue with agent:spawn label for auto-spawning","inputs":["title"],"name":"cloud_issue_create"},{"about":"Railway multi-account farm dashboard -- shows all accounts with capacity and daily limits","inputs":[],"name":"cloud_farm"},{"about":"Sync active service counts across all Railway accounts","inputs":[],"name":"cloud_farm_sync"},{"about":"Get farm capacity as JSON -- total slots, active services, daily remaining per account","inputs":[],"name":"cloud_farm_capacity"},{"about":"Migrate services from overloaded to underloaded Railway accounts","inputs":[],"name":"cloud_farm_rebalance"},{"about":"Farm evolution health dashboard -- leaderboard, health_score 0-100, stagnation, ETA","inputs":[],"name":"farm_evolve_health"},{"about":"Farm insight scan -- detect leader changes, plateaus, spikes, wave completion. Sends to Telegram unless dry-run","inputs":["dry_run"],"name":"farm_evolve_notify"},{"about":"Single evolution sweep -- inject sacred children into free slots, auto-notify. Always --once","inputs":["sacred","dry_run"],"name":"farm_evolve_watch"},{"about":"Spawn an HSLM training experiment on Railway farm","inputs":["name"],"name":"cloud_train"},{"about":"Spawn all 13 HSLM training experiments across Railway farm","inputs":[],"name":"cloud_train_batch"},{"about":"Chain Link 0: TVC Gate -- search corpus, return cached or continue","inputs":["task"],"name":"chain_cache"},{"about":"Chain Link 1: Analyze previous version v(n-1)","inputs":["task"],"name":"chain_baseline"},{"about":"Chain Link 2: Collect performance metrics","inputs":["task"],"name":"chain_metrics"},{"about":"Chain Link 3: Research patterns and science (PAS)","inputs":["task"],"name":"chain_patterns"},{"about":"Chain Link 4: Build technology dependency tree","inputs":["task"],"name":"chain_tree"},{"about":"Chain Link 5: VIBEE-first compliance check","inputs":["task"],"name":"chain_check_spec"},{"about":"Chain Link 6: Create .tri specifications","inputs":["task"],"name":"chain_spec"},{"about":"Chain Link 7: Generate Zig code from .tri specs","inputs":["task"],"name":"chain_codegen"},{"about":"Chain Link 8: Sacred Intelligence code analysis","inputs":["task"],"name":"chain_analyze"},{"about":"Chain Link 9: Run zig build test suite","inputs":["task"],"name":"chain_test"},{"about":"Chain Link 10: CRITICAL -- Compare to baseline v(n-1)","inputs":["task"],"name":"chain_bench"},{"about":"Chain Link 11: SWE Agent error fixing","inputs":["task"],"name":"chain_fix"},{"about":"Chain Link 12: Compare to external tools (llama.cpp/vLLM)","inputs":["task"],"name":"chain_bench_ext"},{"about":"Chain Link 13: Gap to theoretical maximum","inputs":["task"],"name":"chain_bench_theory"},{"about":"Chain Link 14: Generate improvement delta report","inputs":["task"],"name":"chain_delta"},{"about":"Chain Link 15: Optimize if needed (optional)","inputs":["task"],"name":"chain_optimize"},{"about":"Chain Link 16: Generate documentation with proofs","inputs":["task"],"name":"chain_docs"},{"about":"Chain Link 17: Critical self-assessment (toxic verdict)","inputs":["task"],"name":"chain_verdict"},{"about":"Chain Link 18: Commit and push changes","inputs":["task"],"name":"chain_git"},{"about":"Chain Link 19: Decide next iteration (continue/exit)","inputs":["task"],"name":"chain_loop"},{"about":"Chain Link 20: Auto-deploy to cloud","inputs":["task"],"name":"chain_deploy"},{"about":"Chain Link 21: Pipeline analyzes itself (eternal self-evolution)","inputs":["task"],"name":"chain_evolve"},{"about":"Chain Link 22: Pipeline improves itself (circular bootstrapping)","inputs":["task"],"name":"chain_self_ref"},{"about":"Chain Link 23: Camera-based LED verification for FPGA","inputs":["task"],"name":"chain_fpga_test"},{"about":"Chain Link 24: Research-assisted error fixing via Perplexity","inputs":["task"],"name":"chain_research"},{"about":"Chain Link 25: Validate .tri spec syntax before codegen","inputs":["task"],"name":"chain_lint_spec"},{"about":"List all 26 Golden Chain links with roles and status","inputs":[],"name":"chain_list"},{"about":"Decompose a GitHub issue into 5 role-based sub-issues (planner/coder/reviewer/tester/integrator)","inputs":["issue_number","template"],"name":"cloud_decompose"},{"about":"Send/edit/pin Telegram messages via tri CLI","inputs":["text","chat_id","pin","edit_id"],"name":"tri_notify"},{"about":"Scan for USB-UART serial devices (CH340/FTDI) connected to FPGA","inputs":[],"name":"fpga_uart_scan"},{"about":"PING/PONG test -- send 0x03, expect 0x83 from FPGA","inputs":["device"],"name":"fpga_uart_ping"},{"about":"Send raw hex bytes to FPGA via UART and print response","inputs":["device","hex_bytes"],"name":"fpga_uart_send"},{"about":"Get doctor health status -- one-line summary","inputs":[],"name":"doctor_status"},{"about":"Scan and classify all .zig files","inputs":[],"name":"doctor_scan"},{"about":"Health score dashboard with emoji grades","inputs":[],"name":"doctor_report"},{"about":"Create migration queue for manual files","inputs":[],"name":"doctor_plan"},{"about":"Regenerate manual files through pipeline","inputs":[],"name":"doctor_heal"},{"about":"Start a background job","inputs":["command"],"name":"job_start"},{"about":"Get job status by ID","inputs":["id"],"name":"job_status"},{"about":"Get job logs by ID","inputs":["id"],"name":"job_logs"},{"about":"List all background jobs","inputs":[],"name":"job_list"},{"about":"Cancel a running job","inputs":["id"],"name":"job_cancel"},{"about":"Get job artifacts by ID","inputs":["id"],"name":"job_artifacts"},{"about":"List open GitHub issues","inputs":[],"name":"issue_list"},{"about":"View a specific GitHub issue","inputs":["number"],"name":"issue_view"},{"about":"Create a new GitHub issue","inputs":["title","body"],"name":"issue_create"},{"about":"Add a comment to a GitHub issue","inputs":["number","body"],"name":"issue_comment"},{"about":"Close a GitHub issue","inputs":["number"],"name":"issue_close"},{"about":"Assign a user to a GitHub issue","inputs":["number","user"],"name":"issue_assign"},{"about":"Decompose a GitHub issue into sub-tasks","inputs":["number"],"name":"issue_decompose"},{"about":"Get deployment status","inputs":[],"name":"deploy_status"},{"about":"Get deployment logs","inputs":[],"name":"deploy_logs"},{"about":"Get deployment environment variables","inputs":[],"name":"deploy_vars"},{"about":"Start deployment","inputs":[],"name":"deploy_start"},{"about":"Stop deployment","inputs":[],"name":"deploy_stop"},{"about":"Save an experience entry (key-value learning)","inputs":["key","value"],"name":"experience_save"},{"about":"Recall an experience entry by key","inputs":["key"],"name":"experience_recall"},{"about":"List all recorded mistakes/anti-patterns","inputs":[],"name":"experience_mistakes"},{"about":"Get patent portfolio status","inputs":[],"name":"patent_status"},{"about":"Get patent analysis and claims","inputs":[],"name":"patent_analysis"},{"about":"Get DePIN node protocol status","inputs":[],"name":"depin_status"},{"about":"List DePIN network nodes","inputs":[],"name":"depin_nodes"},{"about":"Get DePIN node fitness scores","inputs":[],"name":"depin_fitness"},{"about":"Research a topic via Perplexity-assisted search","inputs":["query"],"name":"research_query"},{"about":"List all HSLM training experiments","inputs":[],"name":"experiment_list"},{"about":"Compare two experiments","inputs":["a","b"],"name":"experiment_compare"},{"about":"Run a chimera fused command (farm-cycle, train-cycle, etc.)","inputs":["name"],"name":"chimera_run"},{"about":"Get ouroboros self-evolution status and score","inputs":[],"name":"ouroboros_status"},{"about":"Run ouroboros self-evolution cycle","inputs":[],"name":"ouroboros_run"},{"about":"Run self-test suite","inputs":[],"name":"self_test"},{"about":"Get self-health check results","inputs":[],"name":"self_health"},{"about":"Get current context info (tokens, files, window)","inputs":[],"name":"context_info"},{"about":"Load additional context from a file path","inputs":["path"],"name":"context_load"},{"about":"Get Faculty Board status dashboard","inputs":[],"name":"faculty_status"},{"about":"Get MU agent status","inputs":[],"name":"mu_status"},{"about":"List MU learned patterns","inputs":[],"name":"mu_patterns"},{"about":"Get Zenodo publication status","inputs":[],"name":"zenodo_status"},{"about":"Analyze codebase quality and metrics","inputs":[],"name":"tri_analyze"},{"about":"Clean build artifacts and temp files","inputs":[],"name":"tri_clean"},{"about":"Format all Zig source files","inputs":[],"name":"tri_fmt"},{"about":"Show project statistics (LOC, files, tests)","inputs":[],"name":"tri_stats"},{"about":"Run linter on source code","inputs":[],"name":"tri_lint"},{"about":"Search codebase for a query string","inputs":["query"],"name":"tri_search"},{"about":"Get project metrics dashboard","inputs":[],"name":"tri_metrics"},{"about":"Get execution trace","inputs":[],"name":"tri_trace"},{"about":"Evaluate expression or code snippet","inputs":[],"name":"tri_eval"},{"about":"Get training farm status overview","inputs":[],"name":"farm_status"},{"about":"List idle farm workers","inputs":[],"name":"farm_idle"},{"about":"Recycle underperforming farm workers","inputs":[],"name":"farm_recycle"},{"about":"Fill empty farm slots with new experiments","inputs":[],"name":"farm_fill"},{"about":"List all 8 Railway farm accounts and their service counts","inputs":[],"name":"farm_accounts"},{"about":"Spawn a wave of training workers on a specific account","inputs":["account","count"],"name":"farm_wave_spawn"},{"about":"Run FPGA synthesis pipeline","inputs":[],"name":"fpga_synth"},{"about":"Get FPGA hardware and synthesis status","inputs":[],"name":"fpga_status"},{"about":"Build FPGA bitstream","inputs":[],"name":"fpga_build"},{"about":"Verify FPGA bitstream against RTL","inputs":[],"name":"fpga_verify"},{"about":"Flash bitstream to FPGA board","inputs":["bitstream"],"name":"fpga_flash"}],"toolsNote":"Static list parsed from writeToolsList (210 entries; 32 entries have an unbalanced trailing brace in the source literal and were parsed after adding or removing one). Cell-generated tools from data/cells/mcp_tools.json are appended at runtime and are not listed here. .trinity/mcp_schemas.json lists a different, shorter set (29 names) and is not used as the source.","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":".mcp.json entry; no tool list in this repository","agents":[],"config":".mcp.json","discarded":0,"env":[],"external":true,"family":"mcp","fields":{"ABOUT":"External MCP server `zig-docs` registered in .mcp.json; launched as `npx -y @nichochar/zig-mcp@latest`.","ABOUT_SOURCE":".mcp.json entry; no tool list in this repository","AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this server: docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md do not name it.","CONFIG":".mcp.json","ENABLED":true,"ENV":[],"EXTERNAL":true,"FAMILY":"mcp","ID":"mcp/zig-docs","KIND":"tool","LAUNCH":"npx -y @nichochar/zig-mcp@latest","QUALIFIED_ID":"gHashTag/trinity:mcp/zig-docs","REPO":"gHashTag/trinity","RESOURCES":[],"RESOURCES_ABOUT":[],"SCHEMA":2,"SERVER":"zig-docs","SERVER_VERSION":"","SOURCE":".mcp.json","TOOLS":[],"TOOLS_ABOUT":[],"TOOLS_INPUTS":[],"TOOLS_NOTE":"Tool list lives in the external npm package, not in this repository; nothing is listed rather than guessed.","TRANSPORT":"stdio","WITNESS":"source-parse"},"health":"ok","id":"mcp/zig-docs","inSpecCorpus":true,"launch":"npx -y @nichochar/zig-mcp@latest","links":{"config":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.mcp.json","pinnedAt":"ddceafb50cd0e620387161228fa2c9ae134047de","source":"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/gHashTag/trinity/blob/ddceafb50cd0e620387161228fa2c9ae134047de/.mcp.json"},"messages":["no agent letter bound by a source","external package: tool list not in the repository"],"moduleName":"tool_mcp_zig_docs","name":{"en":"zig-docs"},"qualifiedId":"gHashTag/trinity:mcp/zig-docs","repo":"gHashTag/trinity","resources":[],"schema":2,"searchText":"mcp/zig-docs zig-docs external mcp server `zig-docs` registered in .mcp.json; launched as `npx -y @nichochar/zig-mcp@latest`.","server":"zig-docs","serverVersion":"","sha256":"baaff4d44a3595acd0cf596f2f070219c08df87bb2a997092e0b3e4792f06903","skills":[],"source":".mcp.json","specPath":"specs/tools/mcp/zig-docs.t27","summary":{"en":"External MCP server `zig-docs` registered in .mcp.json; launched as `npx -y @nichochar/zig-mcp@latest`.","ru":"Внешний MCP-сервер `zig-docs`, зарегистрированный в .mcp.json; запускается как `npx -y @nichochar/zig-mcp@latest`."},"tools":[],"toolsNote":"Tool list lives in the external npm package, not in this repository; nothing is listed rather than guessed.","transport":"stdio","typecheckOk":true,"witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Abandoned (cli/tri/src/main.rs; module cli/tri/src/abandoned.rs)","actions":[{"about":"List recovery sites whose preceding comment names a concrete construct.","name":"list"}],"agents":[],"args":[],"command":"tri abandoned","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Recovery sites whose own comment names the construct they discard.","ABOUT_SOURCE":"clap /// doc on Commands::Abandoned (cli/tri/src/main.rs; module cli/tri/src/abandoned.rs)","ACTIONS":["list"],"ACTIONS_ABOUT":["List recovery sites whose preceding comment names a concrete construct."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri abandoned","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/abandoned","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/abandoned","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/abandoned.rs","VARIANT":"Commands::Abandoned","WHEN_TO_USE":"Recovery sites whose own comment names the construct they discard.","WITNESS":"source-parse"},"health":"ok","id":"tri/abandoned","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/abandoned.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_abandoned","name":{"en":"tri abandoned"},"qualifiedId":"gHashTag/t27:tri/abandoned","repo":"gHashTag/t27","schema":2,"searchText":"tri/abandoned tri abandoned recovery sites whose own comment names the construct they discard. recovery sites whose own comment names the construct they discard. list list recovery sites whose preceding comment names a concrete construct.","sha256":"b3105d48a28faff92bc02e393c146c4e95cba6c68277eb54f27ec5abc3b77bb4","skills":[],"source":"cli/tri/src/abandoned.rs","specPath":"specs/tools/tri/abandoned.t27","summary":{"en":"Recovery sites whose own comment names the construct they discard.","ru":"Точки восстановления, чей собственный комментарий называет отбрасываемую конструкцию."},"typecheckOk":true,"variant":"Commands::Abandoned","whenToUse":"Recovery sites whose own comment names the construct they discard.","witness":"source-parse"},{"aboutSource":"tri-mcp tools tri_cell_checkpoint and tri_cell_seal descriptions (cli/tri-mcp/src/main.rs); CellAction enum cli/tri/src/main.rs:448","actions":[{"about":"","name":"checkpoint"},{"about":"","name":"seal"}],"agents":[{"letter":"W","ok":true}],"args":[],"command":"tri cell","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Records a checkpoint step in the active cell. Seals the active cell by computing a SHA-256 hash of its checkpoint history.","ABOUT_SOURCE":"tri-mcp tools tri_cell_checkpoint and tri_cell_seal descriptions (cli/tri-mcp/src/main.rs); CellAction enum cli/tri/src/main.rs:448","ACTIONS":["checkpoint","seal"],"ACTIONS_ABOUT":["",""],"AGENTS":["W"],"AGENTS_NOTE":"docs/agents/AGENTS_ALPHABET.md:144, agent W domain Workflow / tri cell, key file src/tri/cell.zig; PHASE 6 EVOLVE: W seals tri-cell commit (hash seal).","ARGS":[],"COMMAND":"tri cell","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/cell","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/cell","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Cell","WHEN_TO_USE":"Records a checkpoint step in the active cell. Seals the active cell by computing a SHA-256 hash of its checkpoint history.","WITNESS":"source-parse"},"health":"ok","id":"tri/cell","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":[],"moduleName":"tool_tri_cell","name":{"en":"tri cell"},"qualifiedId":"gHashTag/t27:tri/cell","repo":"gHashTag/t27","schema":2,"searchText":"tri/cell tri cell records a checkpoint step in the active cell. seals the active cell by computing a sha-256 hash of its checkpoint history. records a checkpoint step in the active cell. seals the active cell by computing a sha-256 hash of its checkpoint history. checkpoint seal w","sha256":"36ed34dfc7beb24c2fdd5b7dc5f7fe3375b42f357ffde7befd19f7cfbc22cdca","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/cell.t27","summary":{"en":"Records a checkpoint step in the active cell. Seals the active cell by computing a SHA-256 hash of its checkpoint history.","ru":"Записывает шаг-контрольную точку в активной ячейке; запечатывает активную ячейку, вычисляя SHA-256 истории её контрольных точек."},"typecheckOk":true,"variant":"Commands::Cell","whenToUse":"Records a checkpoint step in the active cell. Seals the active cell by computing a SHA-256 hash of its checkpoint history.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Census (cli/tri/src/main.rs; module cli/tri/src/census.rs)","actions":[{"about":"Every census's printed population, against one counted another way.","name":"audit"},{"about":"Pin each pure census's output, so a change that moves one has to say so.","name":"pin"}],"agents":[],"args":[],"command":"tri census","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Specs the compiler cannot read, ranked by the construct that stops it. Every census's printed population, against one counted another way.","ABOUT_SOURCE":"clap /// doc on Commands::Census (cli/tri/src/main.rs; module cli/tri/src/census.rs)","ACTIONS":["audit","pin"],"ACTIONS_ABOUT":["Every census's printed population, against one counted another way.","Pin each pure census's output, so a change that moves one has to say so."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri census","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/census","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/census","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/census.rs","VARIANT":"Commands::Census","WHEN_TO_USE":"Specs the compiler cannot read, ranked by the construct that stops it. Every census's printed population, against one counted another way.","WITNESS":"source-parse"},"health":"ok","id":"tri/census","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/census.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_census","name":{"en":"tri census"},"qualifiedId":"gHashTag/t27:tri/census","repo":"gHashTag/t27","schema":2,"searchText":"tri/census tri census specs the compiler cannot read, ranked by the construct that stops it. every census's printed population, against one counted another way. specs the compiler cannot read, ranked by the construct that stops it. every census's printed population, against one counted another way. audit every census's printed population, against one counted another way. pin pin each pure census's output, so a change that moves one has to say so.","sha256":"d78bef53542ec408f004c9a1e1650cd9fd125ef0e7da3d4172f5ed9a203961af","skills":[],"source":"cli/tri/src/census.rs","specPath":"specs/tools/tri/census.t27","summary":{"en":"Specs the compiler cannot read, ranked by the construct that stops it. Every census's printed population, against one counted another way.","ru":"Спеки, которые компилятор не может прочитать, ранжированные по конструкции, которая его останавливает. Напечатанная популяция каждой переписи против одной, посчитанной иначе."},"typecheckOk":true,"variant":"Commands::Census","whenToUse":"Specs the compiler cannot read, ranked by the construct that stops it. Every census's printed population, against one counted another way.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Ci (cli/tri/src/main.rs; module cli/tri/src/cibase.rs)","actions":[{"about":"List PR gates that have never run on the default branch.","name":"baseline"}],"agents":[],"args":[],"command":"tri ci","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Is the hardware this plan assumes actually attached? CI questions about the repository's own gates.","ABOUT_SOURCE":"clap /// doc on Commands::Ci (cli/tri/src/main.rs; module cli/tri/src/cibase.rs)","ACTIONS":["baseline"],"ACTIONS_ABOUT":["List PR gates that have never run on the default branch."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri ci","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/ci","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/ci","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/cibase.rs","VARIANT":"Commands::Ci","WHEN_TO_USE":"Is the hardware this plan assumes actually attached? CI questions about the repository's own gates.","WITNESS":"source-parse"},"health":"ok","id":"tri/ci","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/cibase.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_ci","name":{"en":"tri ci"},"qualifiedId":"gHashTag/t27:tri/ci","repo":"gHashTag/t27","schema":2,"searchText":"tri/ci tri ci is the hardware this plan assumes actually attached? ci questions about the repository's own gates. is the hardware this plan assumes actually attached? ci questions about the repository's own gates. baseline list pr gates that have never run on the default branch.","sha256":"589b4502973beca006108ffedabec587effb8778bfd21be45399b23bcae398f3","skills":[],"source":"cli/tri/src/cibase.rs","specPath":"specs/tools/tri/ci.t27","summary":{"en":"Is the hardware this plan assumes actually attached? CI questions about the repository's own gates.","ru":"Действительно ли подключено оборудование, которое предполагает этот план? Вопросы CI о собственных гейтах репозитория."},"typecheckOk":true,"variant":"Commands::Ci","whenToUse":"Is the hardware this plan assumes actually attached? CI questions about the repository's own gates.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Competitors (cli/tri/src/main.rs; module cli/tri/src/competitors.rs)","actions":[{"about":"Count the records, the double-entered papers and the unpublished zeros.","name":"audit"},{"about":"When the survey behind this table last read a paper, by the month its citations encode.","name":"freshness"}],"agents":[],"args":[],"command":"tri competitors","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"The competitor table against its own contract: how many of its published scores were never published, and how many papers it counts twice.","ABOUT_SOURCE":"clap /// doc on Commands::Competitors (cli/tri/src/main.rs; module cli/tri/src/competitors.rs)","ACTIONS":["audit","freshness"],"ACTIONS_ABOUT":["Count the records, the double-entered papers and the unpublished zeros.","When the survey behind this table last read a paper, by the month its citations encode."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri competitors","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/competitors","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/competitors","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/competitors.rs","VARIANT":"Commands::Competitors","WHEN_TO_USE":"The competitor table against its own contract: how many of its published scores were never published, and how many papers it counts twice.","WITNESS":"source-parse"},"health":"ok","id":"tri/competitors","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/competitors.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_competitors","name":{"en":"tri competitors"},"qualifiedId":"gHashTag/t27:tri/competitors","repo":"gHashTag/t27","schema":2,"searchText":"tri/competitors tri competitors the competitor table against its own contract: how many of its published scores were never published, and how many papers it counts twice. the competitor table against its own contract: how many of its published scores were never published, and how many papers it counts twice. audit count the records, the double-entered papers and the unpublished zeros. freshness when the survey behind this table last read a paper, by the month its citations encode.","sha256":"43fb47d6699c50e81d6ecd71f0f0791c5e0c46ba0fd69a2f066d60825d8f6706","skills":[],"source":"cli/tri/src/competitors.rs","specPath":"specs/tools/tri/competitors.t27","summary":{"en":"The competitor table against its own contract: how many of its published scores were never published, and how many papers it counts twice.","ru":"Таблица конкурентов против собственного контракта: сколько её опубликованных оценок никогда не публиковались и сколько статей она считает дважды."},"typecheckOk":true,"variant":"Commands::Competitors","whenToUse":"The competitor table against its own contract: how many of its published scores were never published, and how many papers it counts twice.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Discard (cli/tri/src/main.rs; module cli/tri/src/discard.rs)","actions":[{"about":"Rank the discarding specs, largest first, against the pinned volume.","name":"top"},{"about":"Group the discard by which recovery threw it away, and what it stopped on.","name":"classify"}],"agents":[],"args":[],"command":"tri discard","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"What the parser reads and throws away, ranked against its pinned bound.","ABOUT_SOURCE":"clap /// doc on Commands::Discard (cli/tri/src/main.rs; module cli/tri/src/discard.rs)","ACTIONS":["top","classify"],"ACTIONS_ABOUT":["Rank the discarding specs, largest first, against the pinned volume.","Group the discard by which recovery threw it away, and what it stopped on."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri discard","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/discard","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/discard","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/discard.rs","VARIANT":"Commands::Discard","WHEN_TO_USE":"What the parser reads and throws away, ranked against its pinned bound.","WITNESS":"source-parse"},"health":"ok","id":"tri/discard","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/discard.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_discard","name":{"en":"tri discard"},"qualifiedId":"gHashTag/t27:tri/discard","repo":"gHashTag/t27","schema":2,"searchText":"tri/discard tri discard what the parser reads and throws away, ranked against its pinned bound. what the parser reads and throws away, ranked against its pinned bound. top rank the discarding specs, largest first, against the pinned volume. classify group the discard by which recovery threw it away, and what it stopped on.","sha256":"601efe186f5a97dbfd2e82e397ac53f32210ccedb4fadf1c2ffd0c0ee62e4530","skills":[],"source":"cli/tri/src/discard.rs","specPath":"specs/tools/tri/discard.t27","summary":{"en":"What the parser reads and throws away, ranked against its pinned bound.","ru":"Что парсер читает и выбрасывает, в сравнении с закреплённой границей."},"typecheckOk":true,"variant":"Commands::Discard","whenToUse":"What the parser reads and throws away, ranked against its pinned bound.","witness":"source-parse"},{"aboutSource":"handler cmd_doctor match arms start/stop/status and its error text unknown doctor action (start|stop|status) (cli/tri/src/main.rs:934)","actions":[],"agents":[],"args":[{"about":"","name":""}],"command":"tri doctor","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Start, stop or show the doctor state kept in .trinity/state/doctor.json (actions: start | stop | status).","ABOUT_SOURCE":"handler cmd_doctor match arms start/stop/status and its error text unknown doctor action (start|stop|status) (cli/tri/src/main.rs:934)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[""],"COMMAND":"tri doctor","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/doctor","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/doctor","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Doctor","WHEN_TO_USE":"Start, stop or show the doctor state kept in .trinity/state/doctor.json (actions: start | stop | status).","WITNESS":"source-parse"},"health":"ok","id":"tri/doctor","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_doctor","name":{"en":"tri doctor"},"qualifiedId":"gHashTag/t27:tri/doctor","repo":"gHashTag/t27","schema":2,"searchText":"tri/doctor tri doctor start, stop or show the doctor state kept in .trinity/state/doctor.json (actions: start | stop | status). start, stop or show the doctor state kept in .trinity/state/doctor.json (actions: start | stop | status).","sha256":"be3ed8d97c7404a17400311d3432bec040d027f0a76ce264a459326204780fd9","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/doctor.t27","summary":{"en":"Start, stop or show the doctor state kept in .trinity/state/doctor.json (actions: start | stop | status).","ru":"Запускает, останавливает или показывает состояние doctor, хранимое в .trinity/state/doctor.json (действия: start | stop | status)."},"typecheckOk":true,"variant":"Commands::Doctor","whenToUse":"Start, stop or show the doctor state kept in .trinity/state/doctor.json (actions: start | stop | status).","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Elab (cli/tri/src/main.rs; module cli/tri/src/elab.rs)","actions":[{"about":"Distribution of elaboration diagnostics by message shape.","name":"classify"},{"about":"How many diagnostics are secondary -- same source line as one above.","name":"secondary"}],"agents":[],"args":[],"command":"tri elab","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Classify a compiler's error output before quoting a number from it.","ABOUT_SOURCE":"clap /// doc on Commands::Elab (cli/tri/src/main.rs; module cli/tri/src/elab.rs)","ACTIONS":["classify","secondary"],"ACTIONS_ABOUT":["Distribution of elaboration diagnostics by message shape.","How many diagnostics are secondary -- same source line as one above."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri elab","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/elab","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/elab","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/elab.rs","VARIANT":"Commands::Elab","WHEN_TO_USE":"Classify a compiler's error output before quoting a number from it.","WITNESS":"source-parse"},"health":"ok","id":"tri/elab","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/elab.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_elab","name":{"en":"tri elab"},"qualifiedId":"gHashTag/t27:tri/elab","repo":"gHashTag/t27","schema":2,"searchText":"tri/elab tri elab classify a compiler's error output before quoting a number from it. classify a compiler's error output before quoting a number from it. classify distribution of elaboration diagnostics by message shape. secondary how many diagnostics are secondary -- same source line as one above.","sha256":"e1ee4634ec3f0bb75b6c2f870fda5b9ba40f1c1329ad5ed38ce03a9351065791","skills":[],"source":"cli/tri/src/elab.rs","specPath":"specs/tools/tri/elab.t27","summary":{"en":"Classify a compiler's error output before quoting a number from it.","ru":"Классифицирует вывод ошибок компилятора прежде, чем цитировать из него число."},"typecheckOk":true,"variant":"Commands::Elab","whenToUse":"Classify a compiler's error output before quoting a number from it.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Emit (cli/tri/src/main.rs; module cli/tri/src/gendet.rs)","actions":[{"about":"Generate the corpus twice with the same binary and name what differs.","name":"determinism"}],"agents":[],"args":[],"command":"tri emit","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Does the same binary produce the same generated code twice?","ABOUT_SOURCE":"clap /// doc on Commands::Emit (cli/tri/src/main.rs; module cli/tri/src/gendet.rs)","ACTIONS":["determinism"],"ACTIONS_ABOUT":["Generate the corpus twice with the same binary and name what differs."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri emit","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/emit","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/emit","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/gendet.rs","VARIANT":"Commands::Emit","WHEN_TO_USE":"Does the same binary produce the same generated code twice? Every byte-comparison over emitted output -- seals, emit-bitexact, `corpus --per-spec` diffing -- assumes it does. Three of the four emitters do not; see #3006. (`Gen` is taken by the single-spec emitter, so this is `Emit`.)","WITNESS":"source-parse"},"health":"ok","id":"tri/emit","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/gendet.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_emit","name":{"en":"tri emit"},"qualifiedId":"gHashTag/t27:tri/emit","repo":"gHashTag/t27","schema":2,"searchText":"tri/emit tri emit does the same binary produce the same generated code twice? does the same binary produce the same generated code twice? every byte-comparison over emitted output -- seals, emit-bitexact, `corpus --per-spec` diffing -- assumes it does. three of the four emitters do not; see #3006. (`gen` is taken by the single-spec emitter, so this is `emit`.) determinism generate the corpus twice with the same binary and name what differs.","sha256":"c4d32975e53fc1cf71a345333d73454c185b745057a215af3113981eedc68517","skills":[],"source":"cli/tri/src/gendet.rs","specPath":"specs/tools/tri/emit.t27","summary":{"en":"Does the same binary produce the same generated code twice?","ru":"Даёт ли один и тот же бинарник один и тот же сгенерированный код дважды?"},"typecheckOk":true,"variant":"Commands::Emit","whenToUse":"Does the same binary produce the same generated code twice? Every byte-comparison over emitted output -- seals, emit-bitexact, `corpus --per-spec` diffing -- assumes it does. Three of the four emitters do not; see #3006. (`Gen` is taken by the single-spec emitter, so this is `Emit`.)","witness":"source-parse"},{"aboutSource":"tri-mcp tool tri_experience_save description (cli/tri-mcp/src/main.rs); ExperienceAction enum cli/tri/src/main.rs:457","actions":[{"about":"","name":"save"}],"agents":[{"letter":"E","ok":true}],"args":[],"command":"tri experience","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Saves an experience episode to the akashic log.","ABOUT_SOURCE":"tri-mcp tool tri_experience_save description (cli/tri-mcp/src/main.rs); ExperienceAction enum cli/tri/src/main.rs:457","ACTIONS":["save"],"ACTIONS_ABOUT":[""],"AGENTS":["E"],"AGENTS_NOTE":".claude/agents/agent-e-experience.md:64 (tri experience save -- Save episode to experience log). Lines 65-66 name tri experience query and tri notebook, which the CLI does not have at this commit.","ARGS":[],"COMMAND":"tri experience","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/experience","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/experience","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Experience","WHEN_TO_USE":"Saves an experience episode to the akashic log.","WITNESS":"source-parse"},"health":"ok","id":"tri/experience","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":[],"moduleName":"tool_tri_experience","name":{"en":"tri experience"},"qualifiedId":"gHashTag/t27:tri/experience","repo":"gHashTag/t27","schema":2,"searchText":"tri/experience tri experience saves an experience episode to the akashic log. saves an experience episode to the akashic log. save e","sha256":"08a7874c72e53ac1054c02ddb4a7649a6c4efb3c27ab9da7f4e148f6b9d05024","skills":[{"id":"t27/tri","via":["SUMMARY_EN"]}],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/experience.t27","summary":{"en":"Saves an experience episode to the akashic log.","ru":"Сохраняет эпизод опыта в акашический журнал."},"typecheckOk":true,"variant":"Commands::Experience","whenToUse":"Saves an experience episode to the akashic log.","witness":"source-parse"},{"aboutSource":"//! module doc, cli/tri/src/fleet.rs:1","actions":[{"about":"Scan the USB bus and say plainly what hardware is present.","name":"scan"},{"about":"Check the environments a claim depends on before repeating the claim.","name":"asof"}],"agents":[],"args":[],"command":"tri fleet","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"`tri fleet` -- is the hardware this plan assumes actually attached?","ABOUT_SOURCE":"//! module doc, cli/tri/src/fleet.rs:1","ACTIONS":["scan","asof"],"ACTIONS_ABOUT":["Scan the USB bus and say plainly what hardware is present.","Check the environments a claim depends on before repeating the claim."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri fleet","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/fleet","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/fleet","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/fleet.rs","VARIANT":"Commands::Fleet","WHEN_TO_USE":"`tri fleet` -- is the hardware this plan assumes actually attached?","WITNESS":"source-parse"},"health":"ok","id":"tri/fleet","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/fleet.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_fleet","name":{"en":"tri fleet"},"qualifiedId":"gHashTag/t27:tri/fleet","repo":"gHashTag/t27","schema":2,"searchText":"tri/fleet tri fleet `tri fleet` -- is the hardware this plan assumes actually attached? `tri fleet` -- is the hardware this plan assumes actually attached? scan scan the usb bus and say plainly what hardware is present. asof check the environments a claim depends on before repeating the claim.","sha256":"13c773d8e575a6f617dbcb4c86415a09bf50217b58f257efc4ea0ebc1ab90a8b","skills":[],"source":"cli/tri/src/fleet.rs","specPath":"specs/tools/tri/fleet.t27","summary":{"en":"`tri fleet` -- is the hardware this plan assumes actually attached?","ru":"`tri fleet` -- действительно ли подключено оборудование, которое предполагает этот план?"},"typecheckOk":true,"variant":"Commands::Fleet","whenToUse":"`tri fleet` -- is the hardware this plan assumes actually attached?","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Fmt (cli/tri/src/main.rs)","actions":[],"agents":[],"args":[{"about":"One package instead of the whole workspace.","name":"--package"},{"about":"Report what is dirty and whether a workflow formats, and stop.","name":"--dry-run"}],"command":"tri fmt","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Type names with more than one definition in the spec tree. Run the formatter and restore every file it rewrote that you had not touched.","ABOUT_SOURCE":"clap /// doc on Commands::Fmt (cli/tri/src/main.rs)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":["--package: One package instead of the whole workspace.","--dry-run: Report what is dirty and whether a workflow formats, and stop."],"COMMAND":"tri fmt","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/fmt","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/fmt","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Fmt","WHEN_TO_USE":"Type names with more than one definition in the spec tree. Run the formatter and restore every file it rewrote that you had not touched.","WITNESS":"source-parse"},"health":"ok","id":"tri/fmt","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_fmt","name":{"en":"tri fmt"},"qualifiedId":"gHashTag/t27:tri/fmt","repo":"gHashTag/t27","schema":2,"searchText":"tri/fmt tri fmt type names with more than one definition in the spec tree. run the formatter and restore every file it rewrote that you had not touched. type names with more than one definition in the spec tree. run the formatter and restore every file it rewrote that you had not touched.","sha256":"83e694d0156e30877c9a0d898b194667571fbc64181ff7c99dc0f7647a6f3452","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/fmt.t27","summary":{"en":"Type names with more than one definition in the spec tree. Run the formatter and restore every file it rewrote that you had not touched.","ru":"Имена типов с более чем одним определением в дереве спеков. Запускает форматтер и восстанавливает каждый переписанный им файл, которого вы не трогали."},"typecheckOk":true,"variant":"Commands::Fmt","whenToUse":"Type names with more than one definition in the spec tree. Run the formatter and restore every file it rewrote that you had not touched.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Fpga (cli/tri/src/main.rs; module cli/tri/src/fpga.rs)","actions":[{"about":"Read and print the JTAG IDCODE of the attached DLC10 cable target.","name":"idcode"},{"about":"Read the configuration IDCODE register via the Type-1 CFG_IN/CFG_OUT protocol. On a healthy XC7A100T this must return 0x13631093 (same as the JTAG IDCODE). If 0x00000000 is returned while `idcode` works, the read_cfg_reg implementation is broken.","name":"idcode-cfg"},{"about":"Program FPGA SRAM (volatile -- lost on power-cycle).","name":"sram"},{"about":"Program the on-board SPI flash (non-volatile / persistent).","name":"program"},{"about":"Read the SPI flash JEDEC ID via the JTAG-to-SPI bridge.","name":"flash-id"},{"about":"Read the raw CFG_OUT status register.","name":"status"},{"about":"Decode 7-series configuration registers for DONE=LOW diagnosis.","name":"debug"},{"about":"Load a bitstream into FPGA SRAM using openFPGALoader with a Digilent FTDI cable. This is the canonical path for the QMTech Wukong V1 / XC7A200T board because the in-tree `dlc10` driver only supports Xilinx DLC10 cables (VID=0x03FD), not the attached Digilent cable (VID=0x0403:0x6014).","name":"load-sram"},{"about":"Read and decode the FPGA STAT register via openFPGALoader.","name":"stat"},{"about":"Read the FPGA XADC sensors (temperature, VCCINT, VCCAUX) via openFPGALoader and print a JSON object. The board must be powered and connected through a supported cable such as `digilent_hs2`.","name":"read-xadc"},{"about":"Synthesize the GF16 4x4 matrix design through the openXC7 toolchain. Output is written to `/gf16_matmul4x4_top.bit`.","name":"synth-gf16"},{"about":"Program the on-board SPI flash (non-volatile) using openFPGALoader's JTAG-to-SPI bridge. Requires a matching `spiOverJtag` bitstream for the exact FPGA package; the XC7A200T-FGG676 bridge is present in recent openFPGALoader distributions but flash boot may still depend on board mode pins (see docs/reports/FPGA_LOOP_EVIDENCE_2026-07-04.md).","name":"program-flash"},{"about":"Dump SPI flash contents to a file via openFPGALoader's JTAG-to-SPI bridge.","name":"dump-flash"},{"about":"Parse the .bit header and print the configuration registers that affect Master SPI boot (COR0, COR1, WBSTAR, TIMER, CTL0, CTL1, IDCODE, BSPI).","name":"bit-config"},{"about":"Program the given .bit to SPI flash, dump the same region back, and compare the dumped bytes against the bitstream payload. This verifies the openFPGALoader write path is bit-perfect for the raw bitstream.","name":"round-trip-verify"},{"about":"Guided cold-POR boot experiment. Programs flash, asks the user to physically power-cycle the board, then captures STAT without a JTAG reset and prints a decision-tree diagnosis.","name":"boot-log"},{"about":"Deterministic cold-POR boot experiment with optional relay control. With `--relay-port MOCK` the command writes a deterministic, clearly labeled mock boot log so CI can exercise the cold-POR JSON path without touching hardware. Real relay ports are reserved for Variant A/B.","name":"cold-por"},{"about":"Board-less smoke gate for the FPGA path. Runs `tri fpga bit-config` on the GF16 demo bitstream and, if yosys is available, a synthesis smoke check on the demo Verilog. Requires no physical board.","name":"smoke-gate"},{"about":"Print or interactively confirm the cold-POR boot protocol. This is the standalone version of the instructions embedded in `boot-log` and `cclk-sweep`; use it to verify the operator steps before a physical power-cycle.","name":"boot-protocol"},{"about":"Patch the raw OSCFSEL field (COR0[22:17]) of a 7-series .bit file.","name":"patch-cor0"},{"about":"Generate a set of OSCFSEL variants from a single input .bit file. Outputs one file per requested value to the given directory.","name":"cclk-variants"},{"about":"Automated cold-POR CCLK sweep. Generates OSCFSEL variants, programs each to flash, prompts for the physical power-cycle, captures STAT, and writes JSON logs. The only manual step is disconnecting/reconnecting the cable and power-cycling the board.","name":"cclk-sweep"},{"about":"Read all `build/fpga/boot-log-*.json` files and produce a sweep report identifying the first working CCLK variant.","name":"sweep-report"},{"about":"Print DSLogic / oscilloscope instructions for measuring the FPGA CCLK output during Master SPI configuration. Optionally parse a DSView CSV export or run a live capture via `sigrok-cli` with a connected logic analyzer (e.g., the Digilent FTDI cable as `ftdi-la`).","name":"measure-cclk"},{"about":"Read the SPI flash status register via openFPGALoader's JTAG-to-SPI bridge. Decodes WIP, WEL, and QE bits to help diagnose boot-from-flash failures.","name":"flash-status"},{"about":"Diagnostic: load *only* the proxy bridge bitstream (or any other bitstream) into FPGA SRAM, report STAT, leave TAP in RTI. Does NOT touch SPI flash. Useful for verifying the bridge actually reaches DONE=HIGH before debugging SPI semantics.","name":"proxy-load"},{"about":"Diagnostic: read IDCODE + STAT *without* touching the FPGA. Run this immediately after `tri fpga proxy-load` to confirm the bridge is alive. Also confirms IR=USER1 select is accepted.","name":"proxy-status"},{"about":"Diagnostic: shift raw hex bytes through the USER1 BSCAN as a single SPI transaction. Reads `--rx N` MISO bytes after the TX stream. Requires the proxy bridge to be already loaded (`tri fpga proxy-load` first).","name":"spi-raw"},{"about":"Diagnostic: probe the IR capture pattern after selecting an IR. A healthy 7-series TAP always captures `0b000001` into the IR shift register. Anything else means the JTAG chain is broken or the cable is mis-driving TMS.","name":"ir-probe"},{"about":"Diagnostic: drive the full JEDEC-read flow end-to-end with maximum instrumentation, **including** the 0xAB Release-Power-down and 0x66+0x99 software-reset recovery attempts. Equivalent to `flash-id --verbose` plus auto-recovery.","name":"flash-id-debug"},{"about":"Build the QMTech XC7A100T-FGG676 JTAG-to-SPI proxy bitstream via the openXC7 open-source toolchain (yosys + nextpnr-himbaechel + prjxray). Requires `yosys`, `nextpnr-himbaechel`, `fasm2frames.py` and `xc7frames2bit` on PATH. With `--install`, the produced `.bit` is copied to `fpga/tools/bscan_spi_xc7a100t.bit` so the embedded `BSCAN_SPI_XC7A100T` constant picks it up on the next rebuild.","name":"build-proxy"},{"about":"Clone the openXC7 `nextpnr-xilinx` repo and build a chipdb (`.bba`) for the requested 7-series part, then install it into `~/.local/share/nextpnr/himbaechel-xilinx/`.","name":"setup-openxc7-chipdb"},{"about":"Generate a Lean 4 theorem from a `tri fpga measure-cclk --json` output. The theorem proves that the measured `(frequency, duty)` pair satisfies `measured_cclk_satisfies_flash_spec` and links it to `transaction_satisfies_flash_spec`. Useful for turning a real capture into a machine-checked proof without manual copy-paste.","name":"measured-to-lean"},{"about":"Print the PVT-derated N25Q128_3V SCK low/high bound for a supplied operating context. Also prints the margin over the nominal 6 ns bound and warns if the context is outside the documented operating envelope.","name":"pvt-envelope"},{"about":"Build the QMTech XC7A100T-FGG676 proxy bitstream via a Docker container running Xilinx Vivado. Clones our `openFPGALoader` fork (`feat/qmtech-xc7a100t-board`) into `target/openfpgaloader-fork/` and runs `make` inside `spiOverJtag/`. On Apple Silicon (arm64), the container runs under x86_64 emulation via `--platform linux/amd64`. With `--install`, the produced `bscan_spi_xc7a100tfgg676.bit.gz` is decompressed and copied to `fpga/tools/bscan_spi_xc7a100t.bit` and its SHA256 is printed.","name":"build-proxy-docker"}],"agents":[],"args":[],"command":"tri fpga","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"FPGA programming via the in-tree DLC10 driver (pure Rust).","ABOUT_SOURCE":"clap /// doc on Commands::Fpga (cli/tri/src/main.rs; module cli/tri/src/fpga.rs)","ACTIONS":["idcode","idcode-cfg","sram","program","flash-id","status","debug","load-sram","stat","read-xadc","synth-gf16","program-flash","dump-flash","bit-config","round-trip-verify","boot-log","cold-por","smoke-gate","boot-protocol","patch-cor0","cclk-variants","cclk-sweep","sweep-report","measure-cclk","flash-status","proxy-load","proxy-status","spi-raw","ir-probe","flash-id-debug","build-proxy","setup-openxc7-chipdb","measured-to-lean","pvt-envelope","build-proxy-docker"],"ACTIONS_ABOUT":["Read and print the JTAG IDCODE of the attached DLC10 cable target.","Read the configuration IDCODE register via the Type-1 CFG_IN/CFG_OUT protocol. On a healthy XC7A100T this must return 0x13631093 (same as the JTAG IDCODE). If 0x00000000 is returned while `idcode` works, the read_cfg_reg implementation is broken.","Program FPGA SRAM (volatile -- lost on power-cycle).","Program the on-board SPI flash (non-volatile / persistent).","Read the SPI flash JEDEC ID via the JTAG-to-SPI bridge.","Read the raw CFG_OUT status register.","Decode 7-series configuration registers for DONE=LOW diagnosis.","Load a bitstream into FPGA SRAM using openFPGALoader with a Digilent FTDI cable. This is the canonical path for the QMTech Wukong V1 / XC7A200T board because the in-tree `dlc10` driver only supports Xilinx DLC10 cables (VID=0x03FD), not the attached Digilent cable (VID=0x0403:0x6014).","Read and decode the FPGA STAT register via openFPGALoader.","Read the FPGA XADC sensors (temperature, VCCINT, VCCAUX) via openFPGALoader and print a JSON object. The board must be powered and connected through a supported cable such as `digilent_hs2`.","Synthesize the GF16 4x4 matrix design through the openXC7 toolchain. Output is written to `/gf16_matmul4x4_top.bit`.","Program the on-board SPI flash (non-volatile) using openFPGALoader's JTAG-to-SPI bridge. Requires a matching `spiOverJtag` bitstream for the exact FPGA package; the XC7A200T-FGG676 bridge is present in recent openFPGALoader distributions but flash boot may still depend on board mode pins (see docs/reports/FPGA_LOOP_EVIDENCE_2026-07-04.md).","Dump SPI flash contents to a file via openFPGALoader's JTAG-to-SPI bridge.","Parse the .bit header and print the configuration registers that affect Master SPI boot (COR0, COR1, WBSTAR, TIMER, CTL0, CTL1, IDCODE, BSPI).","Program the given .bit to SPI flash, dump the same region back, and compare the dumped bytes against the bitstream payload. This verifies the openFPGALoader write path is bit-perfect for the raw bitstream.","Guided cold-POR boot experiment. Programs flash, asks the user to physically power-cycle the board, then captures STAT without a JTAG reset and prints a decision-tree diagnosis.","Deterministic cold-POR boot experiment with optional relay control. With `--relay-port MOCK` the command writes a deterministic, clearly labeled mock boot log so CI can exercise the cold-POR JSON path without touching hardware. Real relay ports are reserved for Variant A/B.","Board-less smoke gate for the FPGA path. Runs `tri fpga bit-config` on the GF16 demo bitstream and, if yosys is available, a synthesis smoke check on the demo Verilog. Requires no physical board.","Print or interactively confirm the cold-POR boot protocol. This is the standalone version of the instructions embedded in `boot-log` and `cclk-sweep`; use it to verify the operator steps before a physical power-cycle.","Patch the raw OSCFSEL field (COR0[22:17]) of a 7-series .bit file.","Generate a set of OSCFSEL variants from a single input .bit file. Outputs one file per requested value to the given directory.","Automated cold-POR CCLK sweep. Generates OSCFSEL variants, programs each to flash, prompts for the physical power-cycle, captures STAT, and writes JSON logs. The only manual step is disconnecting/reconnecting the cable and power-cycling the board.","Read all `build/fpga/boot-log-*.json` files and produce a sweep report identifying the first working CCLK variant.","Print DSLogic / oscilloscope instructions for measuring the FPGA CCLK output during Master SPI configuration. Optionally parse a DSView CSV export or run a live capture via `sigrok-cli` with a connected logic analyzer (e.g., the Digilent FTDI cable as `ftdi-la`).","Read the SPI flash status register via openFPGALoader's JTAG-to-SPI bridge. Decodes WIP, WEL, and QE bits to help diagnose boot-from-flash failures.","Diagnostic: load *only* the proxy bridge bitstream (or any other bitstream) into FPGA SRAM, report STAT, leave TAP in RTI. Does NOT touch SPI flash. Useful for verifying the bridge actually reaches DONE=HIGH before debugging SPI semantics.","Diagnostic: read IDCODE + STAT *without* touching the FPGA. Run this immediately after `tri fpga proxy-load` to confirm the bridge is alive. Also confirms IR=USER1 select is accepted.","Diagnostic: shift raw hex bytes through the USER1 BSCAN as a single SPI transaction. Reads `--rx N` MISO bytes after the TX stream. Requires the proxy bridge to be already loaded (`tri fpga proxy-load` first).","Diagnostic: probe the IR capture pattern after selecting an IR. A healthy 7-series TAP always captures `0b000001` into the IR shift register. Anything else means the JTAG chain is broken or the cable is mis-driving TMS.","Diagnostic: drive the full JEDEC-read flow end-to-end with maximum instrumentation, **including** the 0xAB Release-Power-down and 0x66+0x99 software-reset recovery attempts. Equivalent to `flash-id --verbose` plus auto-recovery.","Build the QMTech XC7A100T-FGG676 JTAG-to-SPI proxy bitstream via the openXC7 open-source toolchain (yosys + nextpnr-himbaechel + prjxray). Requires `yosys`, `nextpnr-himbaechel`, `fasm2frames.py` and `xc7frames2bit` on PATH. With `--install`, the produced `.bit` is copied to `fpga/tools/bscan_spi_xc7a100t.bit` so the embedded `BSCAN_SPI_XC7A100T` constant picks it up on the next rebuild.","Clone the openXC7 `nextpnr-xilinx` repo and build a chipdb (`.bba`) for the requested 7-series part, then install it into `~/.local/share/nextpnr/himbaechel-xilinx/`.","Generate a Lean 4 theorem from a `tri fpga measure-cclk --json` output. The theorem proves that the measured `(frequency, duty)` pair satisfies `measured_cclk_satisfies_flash_spec` and links it to `transaction_satisfies_flash_spec`. Useful for turning a real capture into a machine-checked proof without manual copy-paste.","Print the PVT-derated N25Q128_3V SCK low/high bound for a supplied operating context. Also prints the margin over the nominal 6 ns bound and warns if the context is outside the documented operating envelope.","Build the QMTech XC7A100T-FGG676 proxy bitstream via a Docker container running Xilinx Vivado. Clones our `openFPGALoader` fork (`feat/qmtech-xc7a100t-board`) into `target/openfpgaloader-fork/` and runs `make` inside `spiOverJtag/`. On Apple Silicon (arm64), the container runs under x86_64 emulation via `--platform linux/amd64`. With `--install`, the produced `bscan_spi_xc7a100tfgg676.bit.gz` is decompressed and copied to `fpga/tools/bscan_spi_xc7a100t.bit` and its SHA256 is printed."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri fpga","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/fpga","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/fpga","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/fpga.rs","VARIANT":"Commands::Fpga","WHEN_TO_USE":"FPGA programming via the in-tree DLC10 driver (pure Rust).","WITNESS":"source-parse"},"health":"ok","id":"tri/fpga","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/fpga.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_fpga","name":{"en":"tri fpga"},"qualifiedId":"gHashTag/t27:tri/fpga","repo":"gHashTag/t27","schema":2,"searchText":"tri/fpga tri fpga fpga programming via the in-tree dlc10 driver (pure rust). fpga programming via the in-tree dlc10 driver (pure rust). idcode read and print the jtag idcode of the attached dlc10 cable target. idcode-cfg read the configuration idcode register via the type-1 cfg_in/cfg_out protocol. on a healthy xc7a100t this must return 0x13631093 (same as the jtag idcode). if 0x00000000 is returned while `idcode` works, the read_cfg_reg implementation is broken. sram program fpga sram (volatile -- lost on power-cycle). program program the on-board spi flash (non-volatile / persistent). flash-id read the spi flash jedec id via the jtag-to-spi bridge. status read the raw cfg_out status register. debug decode 7-series configuration registers for done=low diagnosis. load-sram load a bitstream into fpga sram using openfpgaloader with a digilent ftdi cable. this is the canonical path for the qmtech wukong v1 / xc7a200t board because the in-tree `dlc10` driver only supports xilinx dlc10 cables (vid=0x03fd), not the attached digilent cable (vid=0x0403:0x6014). stat read and decode the fpga stat register via openfpgaloader. read-xadc read the fpga xadc sensors (temperature, vccint, vccaux) via openfpgaloader and print a json object. the board must be powered and connected through a supported cable such as `digilent_hs2`. synth-gf16 synthesize the gf16 4x4 matrix design through the openxc7 toolchain. output is written to `/gf16_matmul4x4_top.bit`. program-flash program the on-board spi flash (non-volatile) using openfpgaloader's jtag-to-spi bridge. requires a matching `spioverjtag` bitstream for the exact fpga package; the xc7a200t-fgg676 bridge is present in recent openfpgaloader distributions but flash boot may still depend on board mode pins (see docs/reports/fpga_loop_evidence_2026-07-04.md). dump-flash dump spi flash contents to a file via openfpgaloader's jtag-to-spi bridge. bit-config parse the .bit header and print the configuration registers that affect master spi boot (cor0, cor1, wbstar, timer, ctl0, ctl1, idcode, bspi). round-trip-verify program the given .bit to spi flash, dump the same region back, and compare the dumped bytes against the bitstream payload. this verifies the openfpgaloader write path is bit-perfect for the raw bitstream. boot-log guided cold-por boot experiment. programs flash, asks the user to physically power-cycle the board, then captures stat without a jtag reset and prints a decision-tree diagnosis. cold-por deterministic cold-por boot experiment with optional relay control. with `--relay-port mock` the command writes a deterministic, clearly labeled mock boot log so ci can exercise the cold-por json path without touching hardware. real relay ports are reserved for variant a/b. smoke-gate board-less smoke gate for the fpga path. runs `tri fpga bit-config` on the gf16 demo bitstream and, if yosys is available, a synthesis smoke check on the demo verilog. requires no physical board. boot-protocol print or interactively confirm the cold-por boot protocol. this is the standalone version of the instructions embedded in `boot-log` and `cclk-sweep`; use it to verify the operator steps before a physical power-cycle. patch-cor0 patch the raw oscfsel field (cor0[22:17]) of a 7-series .bit file. cclk-variants generate a set of oscfsel variants from a single input .bit file. outputs one file per requested value to the given directory. cclk-sweep automated cold-por cclk sweep. generates oscfsel variants, programs each to flash, prompts for the physical power-cycle, captures stat, and writes json logs. the only manual step is disconnecting/reconnecting the cable and power-cycling the board. sweep-report read all `build/fpga/boot-log-*.json` files and produce a sweep report identifying the first working cclk variant. measure-cclk print dslogic / oscilloscope instructions for measuring the fpga cclk output during master spi configuration. optionally parse a dsview csv export or run a live capture via `sigrok-cli` with a connected logic analyzer (e.g., the digilent ftdi cable as `ftdi-la`). flash-status read the spi flash status register via openfpgaloader's jtag-to-spi bridge. decodes wip, wel, and qe bits to help diagnose boot-from-flash failures. proxy-load diagnostic: load *only* the proxy bridge bitstream (or any other bitstream) into fpga sram, report stat, leave tap in rti. does not touch spi flash. useful for verifying the bridge actually reaches done=high before debugging spi semantics. proxy-status diagnostic: read idcode + stat *without* touching the fpga. run this immediately after `tri fpga proxy-load` to confirm the bridge is alive. also confirms ir=user1 select is accepted. spi-raw diagnostic: shift raw hex bytes through the user1 bscan as a single spi transaction. reads `--rx n` miso bytes after the tx stream. requires the proxy bridge to be already loaded (`tri fpga proxy-load` first). ir-probe diagnostic: probe the ir capture pattern after selecting an ir. a healthy 7-series tap always captures `0b000001` into the ir shift register. anything else means the jtag chain is broken or the cable is mis-driving tms. flash-id-debug diagnostic: drive the full jedec-read flow end-to-end with maximum instrumentation, **including** the 0xab release-power-down and 0x66+0x99 software-reset recovery attempts. equivalent to `flash-id --verbose` plus auto-recovery. build-proxy build the qmtech xc7a100t-fgg676 jtag-to-spi proxy bitstream via the openxc7 open-source toolchain (yosys + nextpnr-himbaechel + prjxray). requires `yosys`, `nextpnr-himbaechel`, `fasm2frames.py` and `xc7frames2bit` on path. with `--install`, the produced `.bit` is copied to `fpga/tools/bscan_spi_xc7a100t.bit` so the embedded `bscan_spi_xc7a100t` constant picks it up on the next rebuild. setup-openxc7-chipdb clone the openxc7 `nextpnr-xilinx` repo and build a chipdb (`.bba`) for the requested 7-series part, then install it into `~/.local/share/nextpnr/himbaechel-xilinx/`. measured-to-lean generate a lean 4 theorem from a `tri fpga measure-cclk --json` output. the theorem proves that the measured `(frequency, duty)` pair satisfies `measured_cclk_satisfies_flash_spec` and links it to `transaction_satisfies_flash_spec`. useful for turning a real capture into a machine-checked proof without manual copy-paste. pvt-envelope print the pvt-derated n25q128_3v sck low/high bound for a supplied operating context. also prints the margin over the nominal 6 ns bound and warns if the context is outside the documented operating envelope. build-proxy-docker build the qmtech xc7a100t-fgg676 proxy bitstream via a docker container running xilinx vivado. clones our `openfpgaloader` fork (`feat/qmtech-xc7a100t-board`) into `target/openfpgaloader-fork/` and runs `make` inside `spioverjtag/`. on apple silicon (arm64), the container runs under x86_64 emulation via `--platform linux/amd64`. with `--install`, the produced `bscan_spi_xc7a100tfgg676.bit.gz` is decompressed and copied to `fpga/tools/bscan_spi_xc7a100t.bit` and its sha256 is printed.","sha256":"aaf7d2d4ae26d149b68e8c50d010bcda79b6ba3bf30c782194ca37bd60f8c7b6","skills":[],"source":"cli/tri/src/fpga.rs","specPath":"specs/tools/tri/fpga.t27","summary":{"en":"FPGA programming via the in-tree DLC10 driver (pure Rust).","ru":"Программирование FPGA через встроенный драйвер DLC10 (чистый Rust)."},"typecheckOk":true,"variant":"Commands::Fpga","whenToUse":"FPGA programming via the in-tree DLC10 driver (pure Rust).","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Gates (cli/tri/src/main.rs; module cli/tri/src/gates.rs)","actions":[{"about":"Classify the compiler's own warnings. `rustc` already answers \"is this value ever read\" and \"does anything call this\" for the whole crate; the answer only helps if somebody reads it.","name":"warnings"},{"about":"Run every gate script and its negative control; name the ones with none.","name":"sweep"},{"about":"Break each gate's failure path and demand its control notices.","name":"mutate"},{"about":"Open pull requests whose path-filtered CI never ran.","name":"prs"},{"about":"What the tree says is required, against what the ruleset requires.","name":"preview"},{"about":"Which interpreter each gate step is handed to, and who says so.","name":"shell"},{"about":"Gate steps whose PASS is reachable with the thing they check absent.","name":"quiet"},{"about":"Every bounded GitHub fetch in this crate, and whether it can tell a page from a total.","name":"fetches"},{"about":"Run every gate CI runs, in an EMPTY tree, and report what still passes.","name":"empty"},{"about":"","name":"required"},{"about":"List active workflows whose lifetime success count is zero.","name":"dead"},{"about":"Workflows with no recent run on the default branch: their green is about frequency, not health.","name":"tests"},{"about":"","name":"unmeasured"}],"agents":[],"args":[],"command":"tri gates","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Find workflows that have never once succeeded.","ABOUT_SOURCE":"clap /// doc on Commands::Gates (cli/tri/src/main.rs; module cli/tri/src/gates.rs)","ACTIONS":["warnings","sweep","mutate","prs","preview","shell","quiet","fetches","empty","required","dead","tests","unmeasured"],"ACTIONS_ABOUT":["Classify the compiler's own warnings. `rustc` already answers \"is this value ever read\" and \"does anything call this\" for the whole crate; the answer only helps if somebody reads it.","Run every gate script and its negative control; name the ones with none.","Break each gate's failure path and demand its control notices.","Open pull requests whose path-filtered CI never ran.","What the tree says is required, against what the ruleset requires.","Which interpreter each gate step is handed to, and who says so.","Gate steps whose PASS is reachable with the thing they check absent.","Every bounded GitHub fetch in this crate, and whether it can tell a page from a total.","Run every gate CI runs, in an EMPTY tree, and report what still passes.","","List active workflows whose lifetime success count is zero.","Workflows with no recent run on the default branch: their green is about frequency, not health.",""],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri gates","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/gates","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/gates","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/gates.rs","VARIANT":"Commands::Gates","WHEN_TO_USE":"Find workflows that have never once succeeded.","WITNESS":"source-parse"},"health":"ok","id":"tri/gates","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/gates.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_gates","name":{"en":"tri gates"},"qualifiedId":"gHashTag/t27:tri/gates","repo":"gHashTag/t27","schema":2,"searchText":"tri/gates tri gates find workflows that have never once succeeded. find workflows that have never once succeeded. warnings classify the compiler's own warnings. `rustc` already answers \"is this value ever read\" and \"does anything call this\" for the whole crate; the answer only helps if somebody reads it. sweep run every gate script and its negative control; name the ones with none. mutate break each gate's failure path and demand its control notices. prs open pull requests whose path-filtered ci never ran. preview what the tree says is required, against what the ruleset requires. shell which interpreter each gate step is handed to, and who says so. quiet gate steps whose pass is reachable with the thing they check absent. fetches every bounded github fetch in this crate, and whether it can tell a page from a total. empty run every gate ci runs, in an empty tree, and report what still passes. required dead list active workflows whose lifetime success count is zero. tests workflows with no recent run on the default branch: their green is about frequency, not health. unmeasured","sha256":"de8489f65be8b1db66b2c9bf3abe96643c580d39e4b856cd6a9a3511e404975d","skills":[],"source":"cli/tri/src/gates.rs","specPath":"specs/tools/tri/gates.t27","summary":{"en":"Find workflows that have never once succeeded.","ru":"Находит воркфлоу, которые ни разу не завершались успешно."},"typecheckOk":true,"variant":"Commands::Gates","whenToUse":"Find workflows that have never once succeeded.","witness":"source-parse"},{"aboutSource":"tri-mcp tool tri_gen description (cli/tri-mcp/src/main.rs); handler cmd_gen runs t27c gen-verilog, gen-c, gen-rust (cli/tri/src/main.rs:862)","actions":[],"agents":[{"letter":"C","ok":true},{"letter":"T","ok":true}],"args":[{"about":"","name":""}],"command":"tri gen","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Generates backends from a .t27 spec file using t27c.","ABOUT_SOURCE":"tri-mcp tool tri_gen description (cli/tri-mcp/src/main.rs); handler cmd_gen runs t27c gen-verilog, gen-c, gen-rust (cli/tri/src/main.rs:862)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":["C","T"],"AGENTS_NOTE":".claude/agents/agent-c-compiler.md:40 (tri gen -- Generate code from specs; trigger On tri gen command, line 7); .claude/agents/trinity.md:68 (5. Gen - Run tri gen).","ARGS":[""],"COMMAND":"tri gen","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/gen","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/gen","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Gen","WHEN_TO_USE":"Generates backends from a .t27 spec file using t27c.","WITNESS":"source-parse"},"health":"ok","id":"tri/gen","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":[],"moduleName":"tool_tri_gen","name":{"en":"tri gen"},"qualifiedId":"gHashTag/t27:tri/gen","repo":"gHashTag/t27","schema":2,"searchText":"tri/gen tri gen generates backends from a .t27 spec file using t27c. generates backends from a .t27 spec file using t27c. c t","sha256":"8739f5a9100f6f989b3558fa5c49af008fb134e3c640c67a0ca946e2880e42bb","skills":[{"id":"t27/tri","via":["SUMMARY_EN"]}],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/gen.t27","summary":{"en":"Generates backends from a .t27 spec file using t27c.","ru":"Генерирует бэкенды из файла спецификации .t27 через t27c."},"typecheckOk":true,"variant":"Commands::Gen","whenToUse":"Generates backends from a .t27 spec file using t27c.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Harness (cli/tri/src/main.rs)","actions":[{"about":"Test binaries whose tests share one scratch directory.","name":"scratch"}],"agents":[],"args":[],"command":"tri harness","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Source files no crate root reaches, and so nothing compiles. Test-harness hygiene.","ABOUT_SOURCE":"clap /// doc on Commands::Harness (cli/tri/src/main.rs)","ACTIONS":["scratch"],"ACTIONS_ABOUT":["Test binaries whose tests share one scratch directory."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri harness","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/harness","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/harness","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Harness","WHEN_TO_USE":"Source files no crate root reaches, and so nothing compiles. Test-harness hygiene.","WITNESS":"source-parse"},"health":"ok","id":"tri/harness","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_harness","name":{"en":"tri harness"},"qualifiedId":"gHashTag/t27:tri/harness","repo":"gHashTag/t27","schema":2,"searchText":"tri/harness tri harness source files no crate root reaches, and so nothing compiles. test-harness hygiene. source files no crate root reaches, and so nothing compiles. test-harness hygiene. scratch test binaries whose tests share one scratch directory.","sha256":"67c635dcb96730ead658e8233879cc6f2b3cb56d9c6e85259629d10b9a536b9c","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/harness.t27","summary":{"en":"Source files no crate root reaches, and so nothing compiles. Test-harness hygiene.","ru":"Исходные файлы, до которых не доходит ни один корень крейта, и потому ничего не компилируется. Гигиена тестового харнесса."},"typecheckOk":true,"variant":"Commands::Harness","whenToUse":"Source files no crate root reaches, and so nothing compiles. Test-harness hygiene.","witness":"source-parse"},{"aboutSource":"tri-mcp tool tri_health description (cli/tri-mcp/src/main.rs); handler cmd_health reads .trinity/state/queen-health.json (cli/tri/src/main.rs:969)","actions":[],"agents":[],"args":[{"about":"","name":""}],"command":"tri health","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Returns queen and swarm health status from .trinity state.","ABOUT_SOURCE":"tri-mcp tool tri_health description (cli/tri-mcp/src/main.rs); handler cmd_health reads .trinity/state/queen-health.json (cli/tri/src/main.rs:969)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[""],"COMMAND":"tri health","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/health","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/health","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Health","WHEN_TO_USE":"Returns queen and swarm health status from .trinity state.","WITNESS":"source-parse"},"health":"ok","id":"tri/health","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_health","name":{"en":"tri health"},"qualifiedId":"gHashTag/t27:tri/health","repo":"gHashTag/t27","schema":2,"searchText":"tri/health tri health returns queen and swarm health status from .trinity state. returns queen and swarm health status from .trinity state.","sha256":"678ece919f8363e769be5541575ec25163565cf04481f776448b81c3fbac94c9","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/health.t27","summary":{"en":"Returns queen and swarm health status from .trinity state.","ru":"Показывает состояние здоровья королевы и роя из состояния .trinity."},"typecheckOk":true,"variant":"Commands::Health","whenToUse":"Returns queen and swarm health status from .trinity state.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Hooks (cli/tri/src/main.rs; module cli/tri/src/hooks.rs)","actions":[{"about":"Run every migrated commit-time gate in sequence (l1-check + now-gate).","name":"pre-commit"},{"about":"A pull request whose title claims a compiler fix must carry a source file.","name":"fix-carries-source"},{"about":"Ask the required NOW gate's own script whether this push adds an entry.","name":"pre-push"},{"about":"L1 TRACEABILITY over the message BEING WRITTEN, from the commit-msg hook.","name":"commit-msg"},{"about":"L1 TRACEABILITY: last commit message must reference an issue (`Closes #N` / `Fixes #N` / `Resolves #N` / `Reference #N`).","name":"l1-check"},{"about":"Verify a fresh `docs/now/-.md` entry exists.","name":"now-gate"},{"about":"Session-start guard for the Claude Code harness. Emits a one-line status string to stdout; never blocks (the Bash gate is a soft telemetry hook).","name":"session-gate"},{"about":"Which hooks git will actually run, and whose installer output is dead.","name":"status"}],"agents":[],"args":[],"command":"tri hooks","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Pure-Rust ports of repository commit / push gates.","ABOUT_SOURCE":"clap /// doc on Commands::Hooks (cli/tri/src/main.rs; module cli/tri/src/hooks.rs)","ACTIONS":["pre-commit","fix-carries-source","pre-push","commit-msg","l1-check","now-gate","session-gate","status"],"ACTIONS_ABOUT":["Run every migrated commit-time gate in sequence (l1-check + now-gate).","A pull request whose title claims a compiler fix must carry a source file.","Ask the required NOW gate's own script whether this push adds an entry.","L1 TRACEABILITY over the message BEING WRITTEN, from the commit-msg hook.","L1 TRACEABILITY: last commit message must reference an issue (`Closes #N` / `Fixes #N` / `Resolves #N` / `Reference #N`).","Verify a fresh `docs/now/-.md` entry exists.","Session-start guard for the Claude Code harness. Emits a one-line status string to stdout; never blocks (the Bash gate is a soft telemetry hook).","Which hooks git will actually run, and whose installer output is dead."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri hooks","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/hooks","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/hooks","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/hooks.rs","VARIANT":"Commands::Hooks","WHEN_TO_USE":"Pure-Rust ports of repository commit / push gates.","WITNESS":"source-parse"},"health":"ok","id":"tri/hooks","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/hooks.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_hooks","name":{"en":"tri hooks"},"qualifiedId":"gHashTag/t27:tri/hooks","repo":"gHashTag/t27","schema":2,"searchText":"tri/hooks tri hooks pure-rust ports of repository commit / push gates. pure-rust ports of repository commit / push gates. pre-commit run every migrated commit-time gate in sequence (l1-check + now-gate). fix-carries-source a pull request whose title claims a compiler fix must carry a source file. pre-push ask the required now gate's own script whether this push adds an entry. commit-msg l1 traceability over the message being written, from the commit-msg hook. l1-check l1 traceability: last commit message must reference an issue (`closes #n` / `fixes #n` / `resolves #n` / `reference #n`). now-gate verify a fresh `docs/now/-.md` entry exists. session-gate session-start guard for the claude code harness. emits a one-line status string to stdout; never blocks (the bash gate is a soft telemetry hook). status which hooks git will actually run, and whose installer output is dead.","sha256":"533eeb860d6bc3f69d612c3d2630965bf50b8533f50c4f4900b25ab42e838db2","skills":[],"source":"cli/tri/src/hooks.rs","specPath":"specs/tools/tri/hooks.t27","summary":{"en":"Pure-Rust ports of repository commit / push gates.","ru":"Порты гейтов коммита/пуша репозитория на чистом Rust."},"typecheckOk":true,"variant":"Commands::Hooks","whenToUse":"Pure-Rust ports of repository commit / push gates.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Issues (cli/tri/src/main.rs; module cli/tri/src/issues.rs)","actions":[{"about":"Open issues whose title calls a workflow red, and what it does today.","name":"stale"},{"about":"Open issues that state a COUNT in the title, and a reproducible sample.","name":"numbers"},{"about":"Open issues whose figure is ANCHORED, so re-measuring it proves nothing.","name":"dated"}],"agents":[],"args":[],"command":"tri issues","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Open issues whose headline calls a workflow red, against what that workflow concludes on master today.","ABOUT_SOURCE":"clap /// doc on Commands::Issues (cli/tri/src/main.rs; module cli/tri/src/issues.rs)","ACTIONS":["stale","numbers","dated"],"ACTIONS_ABOUT":["Open issues whose title calls a workflow red, and what it does today.","Open issues that state a COUNT in the title, and a reproducible sample.","Open issues whose figure is ANCHORED, so re-measuring it proves nothing."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri issues","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/issues","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/issues","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/issues.rs","VARIANT":"Commands::Issues","WHEN_TO_USE":"Open issues whose headline calls a workflow red, against what that workflow concludes on master today.","WITNESS":"source-parse"},"health":"ok","id":"tri/issues","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/issues.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_issues","name":{"en":"tri issues"},"qualifiedId":"gHashTag/t27:tri/issues","repo":"gHashTag/t27","schema":2,"searchText":"tri/issues tri issues open issues whose headline calls a workflow red, against what that workflow concludes on master today. open issues whose headline calls a workflow red, against what that workflow concludes on master today. stale open issues whose title calls a workflow red, and what it does today. numbers open issues that state a count in the title, and a reproducible sample. dated open issues whose figure is anchored, so re-measuring it proves nothing.","sha256":"e7b50b366482d2b8d45d2ac34d8c26df07c1834693fb3cce83c043be0509d75c","skills":[],"source":"cli/tri/src/issues.rs","specPath":"specs/tools/tri/issues.t27","summary":{"en":"Open issues whose headline calls a workflow red, against what that workflow concludes on master today.","ru":"Открытые issue, чей заголовок называет воркфлоу красным, против того, к чему этот воркфлоу приходит на master сегодня."},"typecheckOk":true,"variant":"Commands::Issues","whenToUse":"Open issues whose headline calls a workflow red, against what that workflow concludes on master today.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Jumps (cli/tri/src/main.rs; module cli/tri/src/jumps.rs)","actions":[{"about":"Name every `break`/`continue` site in the generated Verilog and say what it lowered to.","name":"census"}],"agents":[],"args":[],"command":"tri jumps","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"What happened to every `break` and `continue` the Verilog emitter had to lower?","ABOUT_SOURCE":"clap /// doc on Commands::Jumps (cli/tri/src/main.rs; module cli/tri/src/jumps.rs)","ACTIONS":["census"],"ACTIONS_ABOUT":["Name every `break`/`continue` site in the generated Verilog and say what it lowered to."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri jumps","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/jumps","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/jumps","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/jumps.rs","VARIANT":"Commands::Jumps","WHEN_TO_USE":"What happened to every `break` and `continue` the Verilog emitter had to lower? `break` was `disable fork;` and `continue` was `/* continue */;`. Both parse, both synthesise, both are no-ops -- so every instrument that asks whether the output PARSES said yes for as long as the emitter has existed. See #2988.","WITNESS":"source-parse"},"health":"ok","id":"tri/jumps","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/jumps.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_jumps","name":{"en":"tri jumps"},"qualifiedId":"gHashTag/t27:tri/jumps","repo":"gHashTag/t27","schema":2,"searchText":"tri/jumps tri jumps what happened to every `break` and `continue` the verilog emitter had to lower? what happened to every `break` and `continue` the verilog emitter had to lower? `break` was `disable fork;` and `continue` was `/* continue */;`. both parse, both synthesise, both are no-ops -- so every instrument that asks whether the output parses said yes for as long as the emitter has existed. see #2988. census name every `break`/`continue` site in the generated verilog and say what it lowered to.","sha256":"905308ea72644feb0e72d64a5d6c6edaed7e0d8e7182e7d52d8157f9951e756a","skills":[],"source":"cli/tri/src/jumps.rs","specPath":"specs/tools/tri/jumps.t27","summary":{"en":"What happened to every `break` and `continue` the Verilog emitter had to lower?","ru":"Что случилось с каждым `break` и `continue`, которые эмиттеру Verilog пришлось опустить?"},"typecheckOk":true,"variant":"Commands::Jumps","whenToUse":"What happened to every `break` and `continue` the Verilog emitter had to lower? `break` was `disable fork;` and `continue` was `/* continue */;`. Both parse, both synthesise, both are no-ops -- so every instrument that asks whether the output PARSES said yes for as long as the emitter has existed. See #2988.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Kinds (cli/tri/src/main.rs; module cli/tri/src/kinddrift.rs)","actions":[{"about":"Match arms whose comment names a construct the pattern does not cover.","name":"drift"}],"agents":[],"args":[],"command":"tri kinds","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Match arms whose own comment names a case the pattern omits.","ABOUT_SOURCE":"clap /// doc on Commands::Kinds (cli/tri/src/main.rs; module cli/tri/src/kinddrift.rs)","ACTIONS":["drift"],"ACTIONS_ABOUT":["Match arms whose comment names a construct the pattern does not cover."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri kinds","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/kinds","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/kinds","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/kinddrift.rs","VARIANT":"Commands::Kinds","WHEN_TO_USE":"Match arms whose own comment names a case the pattern omits.","WITNESS":"source-parse"},"health":"ok","id":"tri/kinds","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/kinddrift.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_kinds","name":{"en":"tri kinds"},"qualifiedId":"gHashTag/t27:tri/kinds","repo":"gHashTag/t27","schema":2,"searchText":"tri/kinds tri kinds match arms whose own comment names a case the pattern omits. match arms whose own comment names a case the pattern omits. drift match arms whose comment names a construct the pattern does not cover.","sha256":"76affd22763395ddb1ff3639130a93df72fdd0c7491275d4ef3f1cd0bc5c9377","skills":[],"source":"cli/tri/src/kinddrift.rs","specPath":"specs/tools/tri/kinds.t27","summary":{"en":"Match arms whose own comment names a case the pattern omits.","ru":"Ветви match, чей собственный комментарий называет случай, который паттерн пропускает."},"typecheckOk":true,"variant":"Commands::Kinds","whenToUse":"Match arms whose own comment names a case the pattern omits.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Lean (cli/tri/src/main.rs; module cli/tri/src/leanvac.rs)","actions":[{"about":"Completeness theorems whose model has no functions.","name":"vacuous"},{"about":"Proof files the build root does not reach, and so nothing compiles.","name":"reach"}],"agents":[],"args":[],"command":"tri lean","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Completeness theorems whose Lean model is empty.","ABOUT_SOURCE":"clap /// doc on Commands::Lean (cli/tri/src/main.rs; module cli/tri/src/leanvac.rs)","ACTIONS":["vacuous","reach"],"ACTIONS_ABOUT":["Completeness theorems whose model has no functions.","Proof files the build root does not reach, and so nothing compiles."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri lean","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/lean","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/lean","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/leanvac.rs","VARIANT":"Commands::Lean","WHEN_TO_USE":"Completeness theorems whose Lean model is empty.","WITNESS":"source-parse"},"health":"ok","id":"tri/lean","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/leanvac.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_lean","name":{"en":"tri lean"},"qualifiedId":"gHashTag/t27:tri/lean","repo":"gHashTag/t27","schema":2,"searchText":"tri/lean tri lean completeness theorems whose lean model is empty. completeness theorems whose lean model is empty. vacuous completeness theorems whose model has no functions. reach proof files the build root does not reach, and so nothing compiles.","sha256":"9e8b0319877e064acbadfcf4e2611da323f38382cee7f318b4f552e01d560898","skills":[],"source":"cli/tri/src/leanvac.rs","specPath":"specs/tools/tri/lean.t27","summary":{"en":"Completeness theorems whose Lean model is empty.","ru":"Теоремы полноты, у которых модель Lean пуста."},"typecheckOk":true,"variant":"Commands::Lean","whenToUse":"Completeness theorems whose Lean model is empty.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Ledgers (cli/tri/src/main.rs; module cli/tri/src/ledgers.rs)","actions":[{"about":"Plant a stale entry in each ledger and demand its gate fail.","name":"audit"}],"agents":[],"args":[],"command":"tri ledgers","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Does each ledger's gate notice when one of its entries stops being true?","ABOUT_SOURCE":"clap /// doc on Commands::Ledgers (cli/tri/src/main.rs; module cli/tri/src/ledgers.rs)","ACTIONS":["audit"],"ACTIONS_ABOUT":["Plant a stale entry in each ledger and demand its gate fail."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri ledgers","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/ledgers","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/ledgers","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/ledgers.rs","VARIANT":"Commands::Ledgers","WHEN_TO_USE":"Does each ledger's gate notice when one of its entries stops being true?","WITNESS":"source-parse"},"health":"ok","id":"tri/ledgers","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/ledgers.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_ledgers","name":{"en":"tri ledgers"},"qualifiedId":"gHashTag/t27:tri/ledgers","repo":"gHashTag/t27","schema":2,"searchText":"tri/ledgers tri ledgers does each ledger's gate notice when one of its entries stops being true? does each ledger's gate notice when one of its entries stops being true? audit plant a stale entry in each ledger and demand its gate fail.","sha256":"98f0c29164ca0fcd92e851d96e061e6f442a80fccab59e71f5d617f364afd7dc","skills":[],"source":"cli/tri/src/ledgers.rs","specPath":"specs/tools/tri/ledgers.t27","summary":{"en":"Does each ledger's gate notice when one of its entries stops being true?","ru":"Замечает ли гейт каждого леджера, когда одна из его записей перестаёт быть истинной?"},"typecheckOk":true,"variant":"Commands::Ledgers","whenToUse":"Does each ledger's gate notice when one of its entries stops being true?","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Loop (cli/tri/src/main.rs; module cli/tri/src/loopclaim.rs)","actions":[{"about":"Take the named claim, or say who already holds it.","name":"claim"}],"agents":[],"args":[],"command":"tri loop","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"What is failing on the default branch right now, and since when. Take a named claim so two sessions of the loop cannot pick the same task.","ABOUT_SOURCE":"clap /// doc on Commands::Loop (cli/tri/src/main.rs; module cli/tri/src/loopclaim.rs)","ACTIONS":["claim"],"ACTIONS_ABOUT":["Take the named claim, or say who already holds it."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri loop","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/loop","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/loop","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/loopclaim.rs","VARIANT":"Commands::Loop","WHEN_TO_USE":"What is failing on the default branch right now, and since when. Take a named claim so two sessions of the loop cannot pick the same task.","WITNESS":"source-parse"},"health":"ok","id":"tri/loop","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/loopclaim.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_loop","name":{"en":"tri loop"},"qualifiedId":"gHashTag/t27:tri/loop","repo":"gHashTag/t27","schema":2,"searchText":"tri/loop tri loop what is failing on the default branch right now, and since when. take a named claim so two sessions of the loop cannot pick the same task. what is failing on the default branch right now, and since when. take a named claim so two sessions of the loop cannot pick the same task. claim take the named claim, or say who already holds it.","sha256":"a204edbc1869df4b6d5953432ed6597eb23b9ba0b67d766a13c999d97499f45c","skills":[],"source":"cli/tri/src/loopclaim.rs","specPath":"specs/tools/tri/loop.t27","summary":{"en":"What is failing on the default branch right now, and since when. Take a named claim so two sessions of the loop cannot pick the same task.","ru":"Что падает на ветке по умолчанию прямо сейчас и с какого момента. Берёт именованную заявку, чтобы две сессии лупа не взяли одну задачу."},"typecheckOk":true,"variant":"Commands::Loop","whenToUse":"What is failing on the default branch right now, and since when. Take a named claim so two sessions of the loop cannot pick the same task.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Merging (cli/tri/src/main.rs; module cli/tri/src/inflight.rs)","actions":[],"agents":[],"args":[{"about":"The base this branch is supposed to carry. A ref, not a URL.","name":"--base"},{"about":"Also check the commits behind HEAD, not only HEAD itself.","name":"--depth"}],"command":"tri merging","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Is a merge in flight here, and does this branch carry the base?","ABOUT_SOURCE":"clap /// doc on Commands::Merging (cli/tri/src/main.rs; module cli/tri/src/inflight.rs)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":["--base: The base this branch is supposed to carry. A ref, not a URL.","--depth: Also check the commits behind HEAD, not only HEAD itself."],"COMMAND":"tri merging","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/merging","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/merging","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/inflight.rs","VARIANT":"Commands::Merging","WHEN_TO_USE":"Is a merge in flight here, and does this branch carry the base?","WITNESS":"source-parse"},"health":"ok","id":"tri/merging","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/inflight.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_merging","name":{"en":"tri merging"},"qualifiedId":"gHashTag/t27:tri/merging","repo":"gHashTag/t27","schema":2,"searchText":"tri/merging tri merging is a merge in flight here, and does this branch carry the base? is a merge in flight here, and does this branch carry the base?","sha256":"bb4167b8b988820e63e2e42cc9b3f1eeaea9a9caf00e15d8c3f3e0b5cd9d0cb5","skills":[],"source":"cli/tri/src/inflight.rs","specPath":"specs/tools/tri/merging.t27","summary":{"en":"Is a merge in flight here, and does this branch carry the base?","ru":"Идёт ли здесь мерж, и несёт ли эта ветка базу?"},"typecheckOk":true,"variant":"Commands::Merging","whenToUse":"Is a merge in flight here, and does this branch carry the base?","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Misread (cli/tri/src/main.rs; module cli/tri/src/misread.rs)","actions":[],"agents":[],"args":[{"about":"Root of the spec tree.","name":"--specs-dir"},{"about":"Name every spec under each shape rather than only counting.","name":"--list"}],"command":"tri misread","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"The specs the compiler reads WRONGLY. Every gate is green on them.","ABOUT_SOURCE":"clap /// doc on Commands::Misread (cli/tri/src/main.rs; module cli/tri/src/misread.rs)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":["--specs-dir: Root of the spec tree.","--list: Name every spec under each shape rather than only counting."],"COMMAND":"tri misread","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/misread","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/misread","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/misread.rs","VARIANT":"Commands::Misread","WHEN_TO_USE":"The specs the compiler reads WRONGLY. Every gate is green on them.","WITNESS":"source-parse"},"health":"ok","id":"tri/misread","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/misread.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_misread","name":{"en":"tri misread"},"qualifiedId":"gHashTag/t27:tri/misread","repo":"gHashTag/t27","schema":2,"searchText":"tri/misread tri misread the specs the compiler reads wrongly. every gate is green on them. the specs the compiler reads wrongly. every gate is green on them.","sha256":"4c27da6a18f488afac5ac4be903b614994749278742678c74490e1a74ff991a7","skills":[],"source":"cli/tri/src/misread.rs","specPath":"specs/tools/tri/misread.t27","summary":{"en":"The specs the compiler reads WRONGLY. Every gate is green on them.","ru":"Спеки, которые компилятор читает НЕВЕРНО. Все гейты на них зелёные."},"typecheckOk":true,"variant":"Commands::Misread","whenToUse":"The specs the compiler reads WRONGLY. Every gate is green on them.","witness":"source-parse"},{"aboutSource":"//! module doc, cli/tri/src/modreach.rs:1 (Commands::Mods dispatches to modreach, cli/tri/src/main.rs:1085)","actions":[{"about":"List them.","name":"orphan"}],"agents":[],"args":[],"command":"tri mods","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"`tri mods orphan` -- `.rs` files no crate root reaches.","ABOUT_SOURCE":"//! module doc, cli/tri/src/modreach.rs:1 (Commands::Mods dispatches to modreach, cli/tri/src/main.rs:1085)","ACTIONS":["orphan"],"ACTIONS_ABOUT":["List them."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri mods","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/mods","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/mods","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Mods","WHEN_TO_USE":"`tri mods orphan` -- `.rs` files no crate root reaches.","WITNESS":"source-parse"},"health":"ok","id":"tri/mods","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_mods","name":{"en":"tri mods"},"qualifiedId":"gHashTag/t27:tri/mods","repo":"gHashTag/t27","schema":2,"searchText":"tri/mods tri mods `tri mods orphan` -- `.rs` files no crate root reaches. `tri mods orphan` -- `.rs` files no crate root reaches. orphan list them.","sha256":"45754d036ee4eced4776bb6c2d85addf2cf176e7c70098f78b3fdb4db7df17c1","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/mods.t27","summary":{"en":"`tri mods orphan` -- `.rs` files no crate root reaches.","ru":"`tri mods orphan` -- файлы `.rs`, до которых не доходит ни один корень крейта."},"typecheckOk":true,"variant":"Commands::Mods","whenToUse":"`tri mods orphan` -- `.rs` files no crate root reaches.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Mutate (cli/tri/src/main.rs; module cli/tri/src/mutate.rs)","actions":[{"about":"Perturb each numeric literal in a file and report which ones the checker does not notice.","name":"run"}],"agents":[],"args":[],"command":"tri mutate","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Find the constants in a checker that nothing actually checks.","ABOUT_SOURCE":"clap /// doc on Commands::Mutate (cli/tri/src/main.rs; module cli/tri/src/mutate.rs)","ACTIONS":["run"],"ACTIONS_ABOUT":["Perturb each numeric literal in a file and report which ones the checker does not notice."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri mutate","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/mutate","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/mutate","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/mutate.rs","VARIANT":"Commands::Mutate","WHEN_TO_USE":"Find the constants in a checker that nothing actually checks.","WITNESS":"source-parse"},"health":"ok","id":"tri/mutate","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/mutate.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_mutate","name":{"en":"tri mutate"},"qualifiedId":"gHashTag/t27:tri/mutate","repo":"gHashTag/t27","schema":2,"searchText":"tri/mutate tri mutate find the constants in a checker that nothing actually checks. find the constants in a checker that nothing actually checks. run perturb each numeric literal in a file and report which ones the checker does not notice.","sha256":"163456bf9900804666e0f1f53bb7ca1bc76faa89f27e30bf34ca869f8388ea98","skills":[],"source":"cli/tri/src/mutate.rs","specPath":"specs/tools/tri/mutate.t27","summary":{"en":"Find the constants in a checker that nothing actually checks.","ru":"Находит в чекере константы, которые на деле ничем не проверяются."},"typecheckOk":true,"variant":"Commands::Mutate","whenToUse":"Find the constants in a checker that nothing actually checks.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Now (cli/tri/src/main.rs; module cli/tri/src/nownote.rs)","actions":[{"about":"Write a docs/now/ entry: title, bullets, optional issue ref.","name":"add"},{"about":"Ask the REQUIRED `check` gate its own question, before pushing.","name":"check"}],"agents":[],"args":[],"command":"tri now","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Write a docs/now/ entry without hand-writing the frame.","ABOUT_SOURCE":"clap /// doc on Commands::Now (cli/tri/src/main.rs; module cli/tri/src/nownote.rs)","ACTIONS":["add","check"],"ACTIONS_ABOUT":["Write a docs/now/ entry: title, bullets, optional issue ref.","Ask the REQUIRED `check` gate its own question, before pushing."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri now","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/now","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/now","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/nownote.rs","VARIANT":"Commands::Now","WHEN_TO_USE":"Write a docs/now/ entry without hand-writing the frame.","WITNESS":"source-parse"},"health":"ok","id":"tri/now","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/nownote.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_now","name":{"en":"tri now"},"qualifiedId":"gHashTag/t27:tri/now","repo":"gHashTag/t27","schema":2,"searchText":"tri/now tri now write a docs/now/ entry without hand-writing the frame. write a docs/now/ entry without hand-writing the frame. add write a docs/now/ entry: title, bullets, optional issue ref. check ask the required `check` gate its own question, before pushing.","sha256":"e151864300830e0cdde07121285099fdc47c1de925ec4a5e78bba71a29e6a94a","skills":[],"source":"cli/tri/src/nownote.rs","specPath":"specs/tools/tri/now.t27","summary":{"en":"Write a docs/now/ entry without hand-writing the frame.","ru":"Пишет запись docs/now/ без ручного набора рамки."},"typecheckOk":true,"variant":"Commands::Now","whenToUse":"Write a docs/now/ entry without hand-writing the frame.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::OneAway (cli/tri/src/main.rs; module cli/tri/src/oneaway.rs)","actions":[],"agents":[],"args":[{"about":"Also list every spec, not only the class tally.","name":"--names"},{"about":"Report specs with exactly this many errors. The default, 1, is the only bucket a single repair can move; `--errors 2` is the next wave.","name":"--errors"},{"about":"Stop after this many specs. Prints what was dropped -- a silent cap reads as coverage.","name":"--limit"},{"about":"Run the controls and report, changing nothing.","name":"--self-check"}],"command":"tri one-away","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Failing specs one defect from compiling, and what that defect is","ABOUT_SOURCE":"clap /// doc on Commands::OneAway (cli/tri/src/main.rs; module cli/tri/src/oneaway.rs)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":["--names: Also list every spec, not only the class tally.","--errors: Report specs with exactly this many errors. The default, 1, is the only bucket a single repair can move; `--errors 2` is the next wave.","--limit: Stop after this many specs. Prints what was dropped -- a silent cap reads as coverage.","--self-check: Run the controls and report, changing nothing."],"COMMAND":"tri one-away","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/one-away","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/one-away","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/oneaway.rs","VARIANT":"Commands::OneAway","WHEN_TO_USE":"Failing specs one defect from compiling, and what that defect is","WITNESS":"source-parse"},"health":"ok","id":"tri/one-away","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/oneaway.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_one_away","name":{"en":"tri one-away"},"qualifiedId":"gHashTag/t27:tri/one-away","repo":"gHashTag/t27","schema":2,"searchText":"tri/one-away tri one-away failing specs one defect from compiling, and what that defect is failing specs one defect from compiling, and what that defect is","sha256":"f823bbea9d121e61a27e9c8d899004d2f3712876eab334ed3982a62908fd8ab2","skills":[],"source":"cli/tri/src/oneaway.rs","specPath":"specs/tools/tri/one-away.t27","summary":{"en":"Failing specs one defect from compiling, and what that defect is","ru":"Падающие спеки, которым до компиляции один дефект, и какой именно."},"typecheckOk":true,"variant":"Commands::OneAway","whenToUse":"Failing specs one defect from compiling, and what that defect is","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Orphaned (cli/tri/src/main.rs; module cli/tri/src/orphaned.rs)","actions":[{"about":"List gate and tool sources that name an input which is not in the tree.","name":"list"}],"agents":[],"args":[],"command":"tri orphaned","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Checks whose input is not in the tree.","ABOUT_SOURCE":"clap /// doc on Commands::Orphaned (cli/tri/src/main.rs; module cli/tri/src/orphaned.rs)","ACTIONS":["list"],"ACTIONS_ABOUT":["List gate and tool sources that name an input which is not in the tree."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri orphaned","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/orphaned","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/orphaned","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/orphaned.rs","VARIANT":"Commands::Orphaned","WHEN_TO_USE":"Checks whose input is not in the tree.","WITNESS":"source-parse"},"health":"ok","id":"tri/orphaned","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/orphaned.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_orphaned","name":{"en":"tri orphaned"},"qualifiedId":"gHashTag/t27:tri/orphaned","repo":"gHashTag/t27","schema":2,"searchText":"tri/orphaned tri orphaned checks whose input is not in the tree. checks whose input is not in the tree. list list gate and tool sources that name an input which is not in the tree.","sha256":"f9808d318e75aa5ea4ea3e5b3bf33f0a667aab6a00c7c5aa91f2cc77e3e846bd","skills":[],"source":"cli/tri/src/orphaned.rs","specPath":"specs/tools/tri/orphaned.t27","summary":{"en":"Checks whose input is not in the tree.","ru":"Проверки, чей вход отсутствует в дереве."},"typecheckOk":true,"variant":"Commands::Orphaned","whenToUse":"Checks whose input is not in the tree.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Pr (cli/tri/src/main.rs; module cli/tri/src/prcheck.rs)","actions":[{"about":"Classify every failing check and say plainly whether it is safe to merge. Did this pull request's content actually reach the default branch?","name":"landed"},{"about":"","name":"ready"}],"agents":[],"args":[],"command":"tri pr","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Is this pull request actually safe to merge?","ABOUT_SOURCE":"clap /// doc on Commands::Pr (cli/tri/src/main.rs; module cli/tri/src/prcheck.rs)","ACTIONS":["landed","ready"],"ACTIONS_ABOUT":["Classify every failing check and say plainly whether it is safe to merge. Did this pull request's content actually reach the default branch?",""],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri pr","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/pr","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/pr","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/prcheck.rs","VARIANT":"Commands::Pr","WHEN_TO_USE":"Is this pull request actually safe to merge?","WITNESS":"source-parse"},"health":"ok","id":"tri/pr","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/prcheck.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_pr","name":{"en":"tri pr"},"qualifiedId":"gHashTag/t27:tri/pr","repo":"gHashTag/t27","schema":2,"searchText":"tri/pr tri pr is this pull request actually safe to merge? is this pull request actually safe to merge? landed classify every failing check and say plainly whether it is safe to merge. did this pull request's content actually reach the default branch? ready","sha256":"4909a13b33ff6128bf308132850effbdfcfc1b44bb8ccedf1c7bacc288dea720","skills":[],"source":"cli/tri/src/prcheck.rs","specPath":"specs/tools/tri/pr.t27","summary":{"en":"Is this pull request actually safe to merge?","ru":"Действительно ли этот pull request безопасно мержить?"},"typecheckOk":true,"variant":"Commands::Pr","whenToUse":"Is this pull request actually safe to merge?","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Prose (cli/tri/src/main.rs; module cli/tri/src/prose.rs)","actions":[{"about":"Which specs are blocked only by prose, and how many lines that is.","name":"report"}],"agents":[],"args":[],"command":"tri prose","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Specs a literate author left prose in, and how far that prose is from code.","ABOUT_SOURCE":"clap /// doc on Commands::Prose (cli/tri/src/main.rs; module cli/tri/src/prose.rs)","ACTIONS":["report"],"ACTIONS_ABOUT":["Which specs are blocked only by prose, and how many lines that is."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri prose","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/prose","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/prose","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/prose.rs","VARIANT":"Commands::Prose","WHEN_TO_USE":"Specs a literate author left prose in, and how far that prose is from code.","WITNESS":"source-parse"},"health":"ok","id":"tri/prose","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/prose.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_prose","name":{"en":"tri prose"},"qualifiedId":"gHashTag/t27:tri/prose","repo":"gHashTag/t27","schema":2,"searchText":"tri/prose tri prose specs a literate author left prose in, and how far that prose is from code. specs a literate author left prose in, and how far that prose is from code. report which specs are blocked only by prose, and how many lines that is.","sha256":"8689a47ee97a2588da26a7492f8c6f543dd25702b9962cbdd25ce16070129d38","skills":[],"source":"cli/tri/src/prose.rs","specPath":"specs/tools/tri/prose.t27","summary":{"en":"Specs a literate author left prose in, and how far that prose is from code.","ru":"Спеки, в которых литературный автор оставил прозу, и насколько эта проза далека от кода."},"typecheckOk":true,"variant":"Commands::Prose","whenToUse":"Specs a literate author left prose in, and how far that prose is from code.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Quantifiers (cli/tri/src/main.rs; module cli/tri/src/quant.rs)","actions":[{"about":"Every quantified clause, its binders, and the size of its domain.","name":"report"},{"about":"Every line carrying a quantifier keyword, and whether the census read it.","name":"audit"}],"agents":[],"args":[],"command":"tri quantifiers","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Every quantified clause, its binders, and the size of its domain.","ABOUT_SOURCE":"clap /// doc on Commands::Quantifiers (cli/tri/src/main.rs; module cli/tri/src/quant.rs)","ACTIONS":["report","audit"],"ACTIONS_ABOUT":["Every quantified clause, its binders, and the size of its domain.","Every line carrying a quantifier keyword, and whether the census read it."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri quantifiers","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/quantifiers","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/quantifiers","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/quant.rs","VARIANT":"Commands::Quantifiers","WHEN_TO_USE":"Every quantified clause, its binders, and the size of its domain.","WITNESS":"source-parse"},"health":"ok","id":"tri/quantifiers","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/quant.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_quantifiers","name":{"en":"tri quantifiers"},"qualifiedId":"gHashTag/t27:tri/quantifiers","repo":"gHashTag/t27","schema":2,"searchText":"tri/quantifiers tri quantifiers every quantified clause, its binders, and the size of its domain. every quantified clause, its binders, and the size of its domain. report every quantified clause, its binders, and the size of its domain. audit every line carrying a quantifier keyword, and whether the census read it.","sha256":"f6500ab3e4a78e54e2e83ed1aa6eb389ec0da64ebb735841849c788efc0e1a44","skills":[],"source":"cli/tri/src/quant.rs","specPath":"specs/tools/tri/quantifiers.t27","summary":{"en":"Every quantified clause, its binders, and the size of its domain.","ru":"Каждая квантифицированная клауза, её связанные переменные и размер её домена."},"typecheckOk":true,"variant":"Commands::Quantifiers","whenToUse":"Every quantified clause, its binders, and the size of its domain.","witness":"source-parse"},{"aboutSource":"//! module doc, cli/tri/src/red.rs:1","actions":[{"about":"Show workflows whose most recent run on the default branch failed.","name":"now"},{"about":"Which STEP each recent failure of one workflow died at, oldest first.","name":"why"}],"agents":[],"args":[],"command":"tri red","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"`tri red` -- what is failing on main right now, and since when.","ABOUT_SOURCE":"//! module doc, cli/tri/src/red.rs:1","ACTIONS":["now","why"],"ACTIONS_ABOUT":["Show workflows whose most recent run on the default branch failed.","Which STEP each recent failure of one workflow died at, oldest first."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri red","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/red","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/red","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/red.rs","VARIANT":"Commands::Red","WHEN_TO_USE":"`tri red` -- what is failing on main right now, and since when.","WITNESS":"source-parse"},"health":"ok","id":"tri/red","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/red.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_red","name":{"en":"tri red"},"qualifiedId":"gHashTag/t27:tri/red","repo":"gHashTag/t27","schema":2,"searchText":"tri/red tri red `tri red` -- what is failing on main right now, and since when. `tri red` -- what is failing on main right now, and since when. now show workflows whose most recent run on the default branch failed. why which step each recent failure of one workflow died at, oldest first.","sha256":"dbc09d850d87e9623513a9eedf77764f4b84cb299f4175c068eee278a0748a71","skills":[],"source":"cli/tri/src/red.rs","specPath":"specs/tools/tri/red.t27","summary":{"en":"`tri red` -- what is failing on main right now, and since when.","ru":"`tri red` -- что падает на main прямо сейчас и с какого момента."},"typecheckOk":true,"variant":"Commands::Red","whenToUse":"`tri red` -- what is failing on main right now, and since when.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Reseal (cli/tri/src/main.rs; module cli/tri/src/reseal.rs)","actions":[{"about":"Rewrite FROZEN_HASH from the current bytes of the sealed file.","name":"write"},{"about":"Report whether the seal matches, and exit non-zero if it does not.","name":"check"}],"agents":[],"args":[],"command":"tri reseal","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Recompute the FROZEN_HASH seal from the file it seals.","ABOUT_SOURCE":"clap /// doc on Commands::Reseal (cli/tri/src/main.rs; module cli/tri/src/reseal.rs)","ACTIONS":["write","check"],"ACTIONS_ABOUT":["Rewrite FROZEN_HASH from the current bytes of the sealed file.","Report whether the seal matches, and exit non-zero if it does not."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri reseal","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/reseal","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/reseal","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/reseal.rs","VARIANT":"Commands::Reseal","WHEN_TO_USE":"Recompute the FROZEN_HASH seal from the file it seals.","WITNESS":"source-parse"},"health":"ok","id":"tri/reseal","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/reseal.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_reseal","name":{"en":"tri reseal"},"qualifiedId":"gHashTag/t27:tri/reseal","repo":"gHashTag/t27","schema":2,"searchText":"tri/reseal tri reseal recompute the frozen_hash seal from the file it seals. recompute the frozen_hash seal from the file it seals. write rewrite frozen_hash from the current bytes of the sealed file. check report whether the seal matches, and exit non-zero if it does not.","sha256":"f4b1478122c02d2e4c50a5bb589e03e97212875c368fad659824f5f532e824d8","skills":[],"source":"cli/tri/src/reseal.rs","specPath":"specs/tools/tri/reseal.t27","summary":{"en":"Recompute the FROZEN_HASH seal from the file it seals.","ru":"Пересчитывает печать FROZEN_HASH по файлу, который она запечатывает."},"typecheckOk":true,"variant":"Commands::Reseal","whenToUse":"Recompute the FROZEN_HASH seal from the file it seals.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Rtl (cli/tri/src/main.rs; module cli/tri/src/rtl.rs)","actions":[{"about":"Run the five structural checks on a design directory.","name":"check"}],"agents":[],"args":[],"command":"tri rtl","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"The structural check t27.ai offers, run locally: five verdicts, the yosys version beside the numbers, and no claim about correctness.","ABOUT_SOURCE":"clap /// doc on Commands::Rtl (cli/tri/src/main.rs; module cli/tri/src/rtl.rs)","ACTIONS":["check"],"ACTIONS_ABOUT":["Run the five structural checks on a design directory."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri rtl","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/rtl","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/rtl","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/rtl.rs","VARIANT":"Commands::Rtl","WHEN_TO_USE":"The structural check t27.ai offers, run locally: five verdicts, the yosys version beside the numbers, and no claim about correctness.","WITNESS":"source-parse"},"health":"ok","id":"tri/rtl","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/rtl.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_rtl","name":{"en":"tri rtl"},"qualifiedId":"gHashTag/t27:tri/rtl","repo":"gHashTag/t27","schema":2,"searchText":"tri/rtl tri rtl the structural check t27.ai offers, run locally: five verdicts, the yosys version beside the numbers, and no claim about correctness. the structural check t27.ai offers, run locally: five verdicts, the yosys version beside the numbers, and no claim about correctness. check run the five structural checks on a design directory.","sha256":"656a55d5c53935a47b6bfb87528cb7eadd93b56ea60bc246f720ace506be7109","skills":[],"source":"cli/tri/src/rtl.rs","specPath":"specs/tools/tri/rtl.t27","summary":{"en":"The structural check t27.ai offers, run locally: five verdicts, the yosys version beside the numbers, and no claim about correctness.","ru":"Структурная проверка, которую предлагает t27.ai, локально: пять вердиктов, версия yosys рядом с числами и никаких заявлений о корректности."},"typecheckOk":true,"variant":"Commands::Rtl","whenToUse":"The structural check t27.ai offers, run locally: five verdicts, the yosys version beside the numbers, and no claim about correctness.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Seals (cli/tri/src/main.rs; module cli/tri/src/seals.rs)","actions":[{"about":"Is the built compiler newer than the source the seals are checked against?","name":"fresh"},{"about":"Seals whose claims no longer match what the compiler produces, and the one command that repairs them.","name":"drift"},{"about":"Specs that carry more than one seal, and which of those pairs disagree.","name":"twins"},{"about":"Copy the NEWEST seal's claims onto its twins, after a re-seal.","name":"sync-twins"},{"about":"Seals that record `gen_hash=none` -- a spec that produced no output, sealed.","name":"hollow"}],"agents":[],"args":[],"command":"tri seals","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"What `.trinity/seals` says about a spec, when it says it twice.","ABOUT_SOURCE":"clap /// doc on Commands::Seals (cli/tri/src/main.rs; module cli/tri/src/seals.rs)","ACTIONS":["fresh","drift","twins","sync-twins","hollow"],"ACTIONS_ABOUT":["Is the built compiler newer than the source the seals are checked against?","Seals whose claims no longer match what the compiler produces, and the one command that repairs them.","Specs that carry more than one seal, and which of those pairs disagree.","Copy the NEWEST seal's claims onto its twins, after a re-seal.","Seals that record `gen_hash=none` -- a spec that produced no output, sealed."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri seals","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/seals","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/seals","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/seals.rs","VARIANT":"Commands::Seals","WHEN_TO_USE":"What `.trinity/seals` says about a spec, when it says it twice.","WITNESS":"source-parse"},"health":"ok","id":"tri/seals","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/seals.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_seals","name":{"en":"tri seals"},"qualifiedId":"gHashTag/t27:tri/seals","repo":"gHashTag/t27","schema":2,"searchText":"tri/seals tri seals what `.trinity/seals` says about a spec, when it says it twice. what `.trinity/seals` says about a spec, when it says it twice. fresh is the built compiler newer than the source the seals are checked against? drift seals whose claims no longer match what the compiler produces, and the one command that repairs them. twins specs that carry more than one seal, and which of those pairs disagree. sync-twins copy the newest seal's claims onto its twins, after a re-seal. hollow seals that record `gen_hash=none` -- a spec that produced no output, sealed.","sha256":"e0932fe334d920e6591445980b99b8b9bebb845756394199bd209c13e13d0d15","skills":[],"source":"cli/tri/src/seals.rs","specPath":"specs/tools/tri/seals.t27","summary":{"en":"What `.trinity/seals` says about a spec, when it says it twice.","ru":"Что `.trinity/seals` говорит о спеке, когда говорит это дважды."},"typecheckOk":true,"variant":"Commands::Seals","whenToUse":"What `.trinity/seals` says about a spec, when it says it twice.","witness":"source-parse"},{"aboutSource":"handler cmd_serve routes and banner string (cli/tri/src/main.rs:1121)","actions":[],"agents":[],"args":[{"about":"","name":"--addr"}],"command":"tri serve","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Serve the trinity depin HTTP API over axum: POST /prove, GET /epoch-challenge, GET /health; prints trinity depin v0.1.0 -- listening on .","ABOUT_SOURCE":"handler cmd_serve routes and banner string (cli/tri/src/main.rs:1121)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":["--addr"],"COMMAND":"tri serve","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/serve","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/serve","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Serve","WHEN_TO_USE":"Serve the trinity depin HTTP API over axum: POST /prove, GET /epoch-challenge, GET /health; prints trinity depin v0.1.0 -- listening on .","WITNESS":"source-parse"},"health":"ok","id":"tri/serve","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_serve","name":{"en":"tri serve"},"qualifiedId":"gHashTag/t27:tri/serve","repo":"gHashTag/t27","schema":2,"searchText":"tri/serve tri serve serve the trinity depin http api over axum: post /prove, get /epoch-challenge, get /health; prints trinity depin v0.1.0 -- listening on . serve the trinity depin http api over axum: post /prove, get /epoch-challenge, get /health; prints trinity depin v0.1.0 -- listening on .","sha256":"0aa1373204ff6f8fd41fd8d19428f3d0754fc124578e3f1fbcc2f55c9ff55f4a","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/serve.t27","summary":{"en":"Serve the trinity depin HTTP API over axum: POST /prove, GET /epoch-challenge, GET /health; prints trinity depin v0.1.0 -- listening on .","ru":"Поднимает HTTP API trinity depin на axum: POST /prove, GET /epoch-challenge, GET /health; печатает «trinity depin v0.1.0 -- listening on »."},"typecheckOk":true,"variant":"Commands::Serve","whenToUse":"Serve the trinity depin HTTP API over axum: POST /prove, GET /epoch-challenge, GET /health; prints trinity depin v0.1.0 -- listening on .","witness":"source-parse"},{"aboutSource":"tri-mcp tools tri_skill_begin and tri_skill_end descriptions (cli/tri-mcp/src/main.rs); SkillAction enum cli/tri/src/main.rs:349","actions":[{"about":"Write a new lesson to the spool, unnumbered.","name":"add"},{"about":"Fold every spooled lesson into SKILL.md, numbering them on the way in.","name":"fold"},{"about":"Check every SKILL.md's section numbering for collisions.","name":"check"},{"about":"Sections whose body was cut short at some point in the file's history.","name":"lost"},{"about":"Every cross-reference in the skills, and whether it resolves.","name":"refs"},{"about":"Sections that state a FIGURE, and which of those a reader can re-take.","name":"claims"},{"about":"Move sections you appended to the numbers the base branch left free.","name":"renumber"},{"about":"","name":"begin"},{"about":"","name":"end"}],"agents":[],"args":[],"command":"tri skill","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Begins a new PHI LOOP skill session bound to an issue. Ends the active PHI LOOP skill session. The add/fold/check/lost/refs/claims/renumber actions carry their own clap docs (SKILL.md lesson spool).","ABOUT_SOURCE":"tri-mcp tools tri_skill_begin and tri_skill_end descriptions (cli/tri-mcp/src/main.rs); SkillAction enum cli/tri/src/main.rs:349","ACTIONS":["add","fold","check","lost","refs","claims","renumber","begin","end"],"ACTIONS_ABOUT":["Write a new lesson to the spool, unnumbered.","Fold every spooled lesson into SKILL.md, numbering them on the way in.","Check every SKILL.md's section numbering for collisions.","Sections whose body was cut short at some point in the file's history.","Every cross-reference in the skills, and whether it resolves.","Sections that state a FIGURE, and which of those a reader can re-take.","Move sections you appended to the numbers the base branch left free.","",""],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri skill","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/skill","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/skill","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Skill","WHEN_TO_USE":"Begins a new PHI LOOP skill session bound to an issue. Ends the active PHI LOOP skill session. The add/fold/check/lost/refs/claims/renumber actions carry their own clap docs (SKILL.md lesson spool).","WITNESS":"source-parse"},"health":"ok","id":"tri/skill","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_skill","name":{"en":"tri skill"},"qualifiedId":"gHashTag/t27:tri/skill","repo":"gHashTag/t27","schema":2,"searchText":"tri/skill tri skill begins a new phi loop skill session bound to an issue. ends the active phi loop skill session. the add/fold/check/lost/refs/claims/renumber actions carry their own clap docs (skill.md lesson spool). begins a new phi loop skill session bound to an issue. ends the active phi loop skill session. the add/fold/check/lost/refs/claims/renumber actions carry their own clap docs (skill.md lesson spool). add write a new lesson to the spool, unnumbered. fold fold every spooled lesson into skill.md, numbering them on the way in. check check every skill.md's section numbering for collisions. lost sections whose body was cut short at some point in the file's history. refs every cross-reference in the skills, and whether it resolves. claims sections that state a figure, and which of those a reader can re-take. renumber move sections you appended to the numbers the base branch left free. begin end","sha256":"4e19baf0ea4267dbbd23f71b8d324779c85427672378205a64726118c36a8e68","skills":[{"id":"t27/tri","via":["SUMMARY_EN"]}],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/skill.t27","summary":{"en":"Begins a new PHI LOOP skill session bound to an issue. Ends the active PHI LOOP skill session. The add/fold/check/lost/refs/claims/renumber actions carry their own clap docs (SKILL.md lesson spool).","ru":"Начинает новую сессию скилла PHI LOOP, привязанную к issue; завершает активную сессию. Действия add/fold/check/lost/refs/claims/renumber ведут спул уроков SKILL.md и описаны в своих clap-доках."},"typecheckOk":true,"variant":"Commands::Skill","whenToUse":"Begins a new PHI LOOP skill session bound to an issue. Ends the active PHI LOOP skill session. The add/fold/check/lost/refs/claims/renumber actions carry their own clap docs (SKILL.md lesson spool).","witness":"source-parse"},{"aboutSource":"tri-mcp tool tri_status description (cli/tri-mcp/src/main.rs); handler cmd_status prints === PHI LOOP STATUS === (cli/tri/src/main.rs:613)","actions":[],"agents":[],"args":[],"command":"tri status","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Returns PHI LOOP status including active skill, cell, issue binding, and uncommitted changes.","ABOUT_SOURCE":"tri-mcp tool tri_status description (cli/tri-mcp/src/main.rs); handler cmd_status prints === PHI LOOP STATUS === (cli/tri/src/main.rs:613)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri status","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/status","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/status","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Status","WHEN_TO_USE":"Returns PHI LOOP status including active skill, cell, issue binding, and uncommitted changes.","WITNESS":"source-parse"},"health":"ok","id":"tri/status","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_status","name":{"en":"tri status"},"qualifiedId":"gHashTag/t27:tri/status","repo":"gHashTag/t27","schema":2,"searchText":"tri/status tri status returns phi loop status including active skill, cell, issue binding, and uncommitted changes. returns phi loop status including active skill, cell, issue binding, and uncommitted changes.","sha256":"bacc3fad069505febf375adbbfea9a861e4dc884a6c3d98d723bc5cd22365290","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/status.t27","summary":{"en":"Returns PHI LOOP status including active skill, cell, issue binding, and uncommitted changes.","ru":"Показывает статус PHI LOOP: активный скилл, ячейку, привязку к issue и незакоммиченные изменения."},"typecheckOk":true,"variant":"Commands::Status","whenToUse":"Returns PHI LOOP status including active skill, cell, issue binding, and uncommitted changes.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Sweep (cli/tri/src/main.rs; module cli/tri/src/sweep.rs)","actions":[{"about":"Synthesise a top across values of one parameter and report the trend.","name":"area"}],"agents":[],"args":[],"command":"tri sweep","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Synthesise across a parameter and check the area actually moves.","ABOUT_SOURCE":"clap /// doc on Commands::Sweep (cli/tri/src/main.rs; module cli/tri/src/sweep.rs)","ACTIONS":["area"],"ACTIONS_ABOUT":["Synthesise a top across values of one parameter and report the trend."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri sweep","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/sweep","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/sweep","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/sweep.rs","VARIANT":"Commands::Sweep","WHEN_TO_USE":"Synthesise across a parameter and check the area actually moves.","WITNESS":"source-parse"},"health":"ok","id":"tri/sweep","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/sweep.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_sweep","name":{"en":"tri sweep"},"qualifiedId":"gHashTag/t27:tri/sweep","repo":"gHashTag/t27","schema":2,"searchText":"tri/sweep tri sweep synthesise across a parameter and check the area actually moves. synthesise across a parameter and check the area actually moves. area synthesise a top across values of one parameter and report the trend.","sha256":"7b032422cdd86d854023351e841cf5c6f6f43327cab5504b6afd61ac889614e1","skills":[],"source":"cli/tri/src/sweep.rs","specPath":"specs/tools/tri/sweep.t27","summary":{"en":"Synthesise across a parameter and check the area actually moves.","ru":"Синтез по параметру с проверкой, что площадь действительно меняется."},"typecheckOk":true,"variant":"Commands::Sweep","whenToUse":"Synthesise across a parameter and check the area actually moves.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Synth (cli/tri/src/main.rs; module cli/tri/src/synth.rs)","actions":[{"about":"Synthesise a top module and report LUT/DSP/FF/CARRY4 counts.","name":"area"}],"agents":[],"args":[],"command":"tri synth","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Synthesise a top module and report area, with the instrument named.","ABOUT_SOURCE":"clap /// doc on Commands::Synth (cli/tri/src/main.rs; module cli/tri/src/synth.rs)","ACTIONS":["area"],"ACTIONS_ABOUT":["Synthesise a top module and report LUT/DSP/FF/CARRY4 counts."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri synth","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/synth","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/synth","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/synth.rs","VARIANT":"Commands::Synth","WHEN_TO_USE":"Synthesise a top module and report area, with the instrument named.","WITNESS":"source-parse"},"health":"ok","id":"tri/synth","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/synth.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_synth","name":{"en":"tri synth"},"qualifiedId":"gHashTag/t27:tri/synth","repo":"gHashTag/t27","schema":2,"searchText":"tri/synth tri synth synthesise a top module and report area, with the instrument named. synthesise a top module and report area, with the instrument named. area synthesise a top module and report lut/dsp/ff/carry4 counts.","sha256":"51a2f2cad1da2385b6c7b16ab1e4721df80fe98918a60a3410c88fe14da4d743","skills":[],"source":"cli/tri/src/synth.rs","specPath":"specs/tools/tri/synth.t27","summary":{"en":"Synthesise a top module and report area, with the instrument named.","ru":"Синтезирует top-модуль и сообщает площадь с указанием инструмента."},"typecheckOk":true,"variant":"Commands::Synth","whenToUse":"Synthesise a top module and report area, with the instrument named.","witness":"source-parse"},{"aboutSource":"tri-mcp tool tri_test description (cli/tri-mcp/src/main.rs); handler cmd_test runs t27c test (cli/tri/src/main.rs:870)","actions":[],"agents":[{"letter":"T","ok":true},{"letter":"V","ok":true}],"args":[{"about":"","name":""}],"command":"tri test","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Runs tests for a .t27 spec file using t27c.","ABOUT_SOURCE":"tri-mcp tool tri_test description (cli/tri-mcp/src/main.rs); handler cmd_test runs t27c test (cli/tri/src/main.rs:870)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":["T","V"],"AGENTS_NOTE":".claude/agents/agent-v-verify.md:47 (tri test -- Run conformance tests); .claude/agents/trinity.md:70 (7. Verify - Run tri test).","ARGS":[""],"COMMAND":"tri test","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/test","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/test","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Test","WHEN_TO_USE":"Runs tests for a .t27 spec file using t27c.","WITNESS":"source-parse"},"health":"ok","id":"tri/test","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":[],"moduleName":"tool_tri_test","name":{"en":"tri test"},"qualifiedId":"gHashTag/t27:tri/test","repo":"gHashTag/t27","schema":2,"searchText":"tri/test tri test runs tests for a .t27 spec file using t27c. runs tests for a .t27 spec file using t27c. t v","sha256":"a960b7f1a9936d59ccf97203a7031161075c78d1ba6a0f7c78b65084d3a910a7","skills":[{"id":"t27/tri","via":["SUMMARY_EN"]}],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/test.t27","summary":{"en":"Runs tests for a .t27 spec file using t27c.","ru":"Запускает тесты для файла спецификации .t27 через t27c."},"typecheckOk":true,"variant":"Commands::Test","whenToUse":"Runs tests for a .t27 spec file using t27c.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Topic (cli/tri/src/main.rs)","actions":[],"agents":[],"args":[{"about":"Words to look for. A row matches on any; rows carrying more come first.","name":""},{"about":"How many recent commits on the base branch to read.","name":"--commits"}],"command":"tri topic","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Has anyone already done this, or are they doing it now?","ABOUT_SOURCE":"clap /// doc on Commands::Topic (cli/tri/src/main.rs)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[": Words to look for. A row matches on any; rows carrying more come first.","--commits: How many recent commits on the base branch to read."],"COMMAND":"tri topic","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/topic","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/topic","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Topic","WHEN_TO_USE":"Has anyone already done this, or are they doing it now?","WITNESS":"source-parse"},"health":"ok","id":"tri/topic","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_topic","name":{"en":"tri topic"},"qualifiedId":"gHashTag/t27:tri/topic","repo":"gHashTag/t27","schema":2,"searchText":"tri/topic tri topic has anyone already done this, or are they doing it now? has anyone already done this, or are they doing it now?","sha256":"0ca5ed85564d0231316703fb63605e962ea2cbf2fb37a273c7d9eac793a45cd5","skills":[],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/topic.t27","summary":{"en":"Has anyone already done this, or are they doing it now?","ru":"Кто-нибудь уже делал это или делает сейчас?"},"typecheckOk":true,"variant":"Commands::Topic","whenToUse":"Has anyone already done this, or are they doing it now?","witness":"source-parse"},{"aboutSource":"//! module doc, cli/tri/src/types_dup.rs:1","actions":[{"about":"Type names with more than one definition in the spec tree.","name":"dup"},{"about":"Hold the conflicted set: a new conflict fails, and a resolved one fails until it is blessed away.","name":"ratchet"},{"about":"Cross-check the written classification against what the tree says today.","name":"classified"},{"about":"Names defined more than once INSIDE ONE FILE.","name":"redef"}],"agents":[],"args":[],"command":"tri types","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"One type name, more than one definition.","ABOUT_SOURCE":"//! module doc, cli/tri/src/types_dup.rs:1","ACTIONS":["dup","ratchet","classified","redef"],"ACTIONS_ABOUT":["Type names with more than one definition in the spec tree.","Hold the conflicted set: a new conflict fails, and a resolved one fails until it is blessed away.","Cross-check the written classification against what the tree says today.","Names defined more than once INSIDE ONE FILE."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri types","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/types","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/types","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/types_dup.rs","VARIANT":"Commands::Types","WHEN_TO_USE":"One type name, more than one definition.","WITNESS":"source-parse"},"health":"ok","id":"tri/types","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/types_dup.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_types","name":{"en":"tri types"},"qualifiedId":"gHashTag/t27:tri/types","repo":"gHashTag/t27","schema":2,"searchText":"tri/types tri types one type name, more than one definition. one type name, more than one definition. dup type names with more than one definition in the spec tree. ratchet hold the conflicted set: a new conflict fails, and a resolved one fails until it is blessed away. classified cross-check the written classification against what the tree says today. redef names defined more than once inside one file.","sha256":"16ea516e67cf93e24863ebb8aabc61ac3bc67fed76d94a228f947258b5296f55","skills":[],"source":"cli/tri/src/types_dup.rs","specPath":"specs/tools/tri/types.t27","summary":{"en":"One type name, more than one definition.","ru":"Одно имя типа, больше одного определения."},"typecheckOk":true,"variant":"Commands::Types","whenToUse":"One type name, more than one definition.","witness":"source-parse"},{"aboutSource":"//! module doc, cli/tri/src/unparsed.rs:1","actions":[{"about":"Rank the constructs that stop the compiler, most specs first.","name":"report"},{"about":"For each unreadable spec, the ITEM whose presence causes the failure.","name":"locate"},{"about":"Cross-check the census against an INDEPENDENTLY built population.","name":"agree"},{"about":"Run every construct's minimal source and say which the compiler rejects.","name":"probe"}],"agents":[],"args":[],"command":"tri unparsed","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Specs the compiler cannot read, ranked by the CONSTRUCT that stops it -- and every construct backed by a live probe.","ABOUT_SOURCE":"//! module doc, cli/tri/src/unparsed.rs:1","ACTIONS":["report","locate","agree","probe"],"ACTIONS_ABOUT":["Rank the constructs that stop the compiler, most specs first.","For each unreadable spec, the ITEM whose presence causes the failure.","Cross-check the census against an INDEPENDENTLY built population.","Run every construct's minimal source and say which the compiler rejects."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri unparsed","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/unparsed","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/unparsed","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/unparsed.rs","VARIANT":"Commands::Unparsed","WHEN_TO_USE":"Specs the compiler cannot read, ranked by the CONSTRUCT that stops it -- and every construct backed by a live probe.","WITNESS":"source-parse"},"health":"ok","id":"tri/unparsed","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/unparsed.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_unparsed","name":{"en":"tri unparsed"},"qualifiedId":"gHashTag/t27:tri/unparsed","repo":"gHashTag/t27","schema":2,"searchText":"tri/unparsed tri unparsed specs the compiler cannot read, ranked by the construct that stops it -- and every construct backed by a live probe. specs the compiler cannot read, ranked by the construct that stops it -- and every construct backed by a live probe. report rank the constructs that stop the compiler, most specs first. locate for each unreadable spec, the item whose presence causes the failure. agree cross-check the census against an independently built population. probe run every construct's minimal source and say which the compiler rejects.","sha256":"6aaf39d92a0b7c5443faa32b97cd7fd74b251a8258aee8390b6965d5fee2e660","skills":[],"source":"cli/tri/src/unparsed.rs","specPath":"specs/tools/tri/unparsed.t27","summary":{"en":"Specs the compiler cannot read, ranked by the CONSTRUCT that stops it -- and every construct backed by a live probe.","ru":"Спеки, которые компилятор не может прочитать, ранжированные по КОНСТРУКЦИИ, которая его останавливает, -- и каждая конструкция, подтверждённая живой пробой."},"typecheckOk":true,"variant":"Commands::Unparsed","whenToUse":"Specs the compiler cannot read, ranked by the CONSTRUCT that stops it -- and every construct backed by a live probe.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Vectors (cli/tri/src/main.rs; module cli/tri/src/vectors.rs)","actions":[{"about":"Generate a module's Verilog and execute its registered vectors.","name":"run"},{"about":"Inventory every vector file: executed, debt, or aspirational.","name":"debt"}],"agents":[],"args":[],"command":"tri vectors","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"The executed-vector registry: run a module's vectors, or inventory which files are executed and which are only displayed.","ABOUT_SOURCE":"clap /// doc on Commands::Vectors (cli/tri/src/main.rs; module cli/tri/src/vectors.rs)","ACTIONS":["run","debt"],"ACTIONS_ABOUT":["Generate a module's Verilog and execute its registered vectors.","Inventory every vector file: executed, debt, or aspirational."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri vectors","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/vectors","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/vectors","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/vectors.rs","VARIANT":"Commands::Vectors","WHEN_TO_USE":"The executed-vector registry: run a module's vectors, or inventory which files are executed and which are only displayed.","WITNESS":"source-parse"},"health":"ok","id":"tri/vectors","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/vectors.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_vectors","name":{"en":"tri vectors"},"qualifiedId":"gHashTag/t27:tri/vectors","repo":"gHashTag/t27","schema":2,"searchText":"tri/vectors tri vectors the executed-vector registry: run a module's vectors, or inventory which files are executed and which are only displayed. the executed-vector registry: run a module's vectors, or inventory which files are executed and which are only displayed. run generate a module's verilog and execute its registered vectors. debt inventory every vector file: executed, debt, or aspirational.","sha256":"7babf01001cd4e86adfad3f717ccf6cf0772dd38e143ab71d782bd66bc455b82","skills":[],"source":"cli/tri/src/vectors.rs","specPath":"specs/tools/tri/vectors.t27","summary":{"en":"The executed-vector registry: run a module's vectors, or inventory which files are executed and which are only displayed.","ru":"Реестр исполняемых векторов: запустить векторы модуля или проинвентаризировать, какие файлы исполняются, а какие только показываются."},"typecheckOk":true,"variant":"Commands::Vectors","whenToUse":"The executed-vector registry: run a module's vectors, or inventory which files are executed and which are only displayed.","witness":"source-parse"},{"aboutSource":"tri-mcp tool tri_verdict description (cli/tri-mcp/src/main.rs); handler cmd_verdict runs t27c validate-seals, validate-phi-identity and, with --toxic, validate-toxicity (cli/tri/src/main.rs:876)","actions":[],"agents":[{"letter":"V","ok":true}],"args":[{"about":"","name":"--toxic"}],"command":"tri verdict","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Checks for toxic regressions by analyzing swarm health metrics.","ABOUT_SOURCE":"tri-mcp tool tri_verdict description (cli/tri-mcp/src/main.rs); handler cmd_verdict runs t27c validate-seals, validate-phi-identity and, with --toxic, validate-toxicity (cli/tri/src/main.rs:876)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":["V"],"AGENTS_NOTE":".claude/agents/agent-v-verify.md:49 (tri verdict -- Generate pass/fail report); docs/agents/AGENTS_ALPHABET.md:80, PHASE 5 VERDICT: V analyzes metrics, tri verdict --toxic.","ARGS":["--toxic"],"COMMAND":"tri verdict","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/verdict","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/verdict","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/main.rs","VARIANT":"Commands::Verdict","WHEN_TO_USE":"Checks for toxic regressions by analyzing swarm health metrics.","WITNESS":"source-parse"},"health":"ok","id":"tri/verdict","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/main.rs"},"messages":[],"moduleName":"tool_tri_verdict","name":{"en":"tri verdict"},"qualifiedId":"gHashTag/t27:tri/verdict","repo":"gHashTag/t27","schema":2,"searchText":"tri/verdict tri verdict checks for toxic regressions by analyzing swarm health metrics. checks for toxic regressions by analyzing swarm health metrics. v","sha256":"8afa0e665be25d336bdca685cd2369546a767678133bc86c9994d7c94da6a5c7","skills":[{"id":"t27/tri","via":["SUMMARY_EN"]}],"source":"cli/tri/src/main.rs","specPath":"specs/tools/tri/verdict.t27","summary":{"en":"Checks for toxic regressions by analyzing swarm health metrics.","ru":"Проверяет токсичные регрессии, анализируя метрики здоровья роя."},"typecheckOk":true,"variant":"Commands::Verdict","whenToUse":"Checks for toxic regressions by analyzing swarm health metrics.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Vsim (cli/tri/src/main.rs; module cli/tri/src/vsim.rs)","actions":[{"about":"Walk the corpus through `t27c icarus-simulate` and print the funnel.","name":"funnel"}],"agents":[],"args":[],"command":"tri vsim","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"How far each spec gets when its generated Verilog is actually RUN.","ABOUT_SOURCE":"clap /// doc on Commands::Vsim (cli/tri/src/main.rs; module cli/tri/src/vsim.rs)","ACTIONS":["funnel"],"ACTIONS_ABOUT":["Walk the corpus through `t27c icarus-simulate` and print the funnel."],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":[],"COMMAND":"tri vsim","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/vsim","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/vsim","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/vsim.rs","VARIANT":"Commands::Vsim","WHEN_TO_USE":"How far each spec gets when its generated Verilog is actually RUN. The one arm that can catch a defect whose nature is that it compiles, and the one arm whose gate has had no targets since #2283 -- see #2987.","WITNESS":"source-parse"},"health":"ok","id":"tri/vsim","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/vsim.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_vsim","name":{"en":"tri vsim"},"qualifiedId":"gHashTag/t27:tri/vsim","repo":"gHashTag/t27","schema":2,"searchText":"tri/vsim tri vsim how far each spec gets when its generated verilog is actually run. how far each spec gets when its generated verilog is actually run. the one arm that can catch a defect whose nature is that it compiles, and the one arm whose gate has had no targets since #2283 -- see #2987. funnel walk the corpus through `t27c icarus-simulate` and print the funnel.","sha256":"b33711b2a50bd614b706e77c813e7c31e71cd7f547489bf073c0de59c17de2fb","skills":[],"source":"cli/tri/src/vsim.rs","specPath":"specs/tools/tri/vsim.t27","summary":{"en":"How far each spec gets when its generated Verilog is actually RUN.","ru":"Как далеко доходит каждая спека, когда её сгенерированный Verilog действительно ЗАПУСКАЮТ."},"typecheckOk":true,"variant":"Commands::Vsim","whenToUse":"How far each spec gets when its generated Verilog is actually RUN. The one arm that can catch a defect whose nature is that it compiles, and the one arm whose gate has had no targets since #2283 -- see #2987.","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Window (cli/tri/src/main.rs; module cli/tri/src/window.rs)","actions":[],"agents":[],"args":[{"about":"Record `origin/master` as the base of a measurement starting now.","name":"--start"},{"about":"Report whether the recorded base is still the tip, and refuse if it is not.","name":"--check"},{"about":"The ref the measurement is against. Defaults to `origin/master`.","name":"--base"},{"about":"Run the controls and report, changing nothing.","name":"--self-check"}],"command":"tri window","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"Was the base you measured against still the tip when you reported?","ABOUT_SOURCE":"clap /// doc on Commands::Window (cli/tri/src/main.rs; module cli/tri/src/window.rs)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":["--start: Record `origin/master` as the base of a measurement starting now.","--check: Report whether the recorded base is still the tip, and refuse if it is not.","--base: The ref the measurement is against. Defaults to `origin/master`.","--self-check: Run the controls and report, changing nothing."],"COMMAND":"tri window","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/window","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/window","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/window.rs","VARIANT":"Commands::Window","WHEN_TO_USE":"Was the base you measured against still the tip when you reported?","WITNESS":"source-parse"},"health":"ok","id":"tri/window","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/window.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_window","name":{"en":"tri window"},"qualifiedId":"gHashTag/t27:tri/window","repo":"gHashTag/t27","schema":2,"searchText":"tri/window tri window was the base you measured against still the tip when you reported? was the base you measured against still the tip when you reported?","sha256":"43202aabe15b2c06b1e0709f8e0ae6fc1cb13b2cb7e5a5adee77340a1bf03ff4","skills":[],"source":"cli/tri/src/window.rs","specPath":"specs/tools/tri/window.t27","summary":{"en":"Was the base you measured against still the tip when you reported?","ru":"Была ли база, относительно которой вы мерили, всё ещё вершиной, когда вы отчитывались?"},"typecheckOk":true,"variant":"Commands::Window","whenToUse":"Was the base you measured against still the tip when you reported?","witness":"source-parse"},{"aboutSource":"clap /// doc on Commands::Worktrees (cli/tri/src/main.rs; module cli/tri/src/trees.rs)","actions":[],"agents":[],"args":[{"about":"Also measure disk usage. Off by default: `du` over 120 checkouts is slow, and the holdings answer is the one that decides anything.","name":"--size"},{"about":"Print every tree, not only those holding work or unreadable.","name":"--all"}],"command":"tri worktrees","discarded":0,"entry":"cli/tri/src/main.rs","family":"tri-cli","fields":{"ABOUT":"What the checkouts on this disk are holding. Deletes nothing.","ABOUT_SOURCE":"clap /// doc on Commands::Worktrees (cli/tri/src/main.rs; module cli/tri/src/trees.rs)","ACTIONS":[],"ACTIONS_ABOUT":[],"AGENTS":[],"AGENTS_NOTE":"No source binds an agent letter to this command: docs/agents/AGENTS_ALPHABET.md (rows, key files, phase cycle), specs/OWNERS.md and .claude/agents/*.md do not name it. creator.md and verifier.md name tri gen/test/verify but are not letter agents.","ARGS":["--size: Also measure disk usage. Off by default: `du` over 120 checkouts is slow, and the holdings answer is the one that decides anything.","--all: Print every tree, not only those holding work or unreadable."],"COMMAND":"tri worktrees","ENABLED":true,"ENTRY":"cli/tri/src/main.rs","FAMILY":"tri-cli","ID":"tri/worktrees","KIND":"tool","QUALIFIED_ID":"gHashTag/t27:tri/worktrees","REPO":"gHashTag/t27","SCHEMA":2,"SOURCE":"cli/tri/src/trees.rs","VARIANT":"Commands::Worktrees","WHEN_TO_USE":"What the checkouts on this disk are holding. Deletes nothing.","WITNESS":"source-parse"},"health":"ok","id":"tri/worktrees","inSpecCorpus":true,"links":{"config":null,"pinnedAt":"93727f733e23baf032d54505095777f16676d70b","source":"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/gHashTag/t27/blob/93727f733e23baf032d54505095777f16676d70b/cli/tri/src/trees.rs"},"messages":["no agent letter bound by a source"],"moduleName":"tool_tri_worktrees","name":{"en":"tri worktrees"},"qualifiedId":"gHashTag/t27:tri/worktrees","repo":"gHashTag/t27","schema":2,"searchText":"tri/worktrees tri worktrees what the checkouts on this disk are holding. deletes nothing. what the checkouts on this disk are holding. deletes nothing.","sha256":"1a01df4f397fe76552d278be19fd778995522fe45e9971a0ad8a017b723ca446","skills":[],"source":"cli/tri/src/trees.rs","specPath":"specs/tools/tri/worktrees.t27","summary":{"en":"What the checkouts on this disk are holding. Deletes nothing.","ru":"Что держат чекауты на этом диске. Ничего не удаляет."},"typecheckOk":true,"variant":"Commands::Worktrees","whenToUse":"What the checkouts on this disk are holding. Deletes nothing.","witness":"source-parse"}],"version":1} diff --git a/apps/website/scripts/agents-from-specs.test.mjs b/apps/website/scripts/agents-from-specs.test.mjs index d68be3a41b..a08457d61f 100644 --- a/apps/website/scripts/agents-from-specs.test.mjs +++ b/apps/website/scripts/agents-from-specs.test.mjs @@ -901,19 +901,30 @@ test('function translations come through the same i18n contract once SCOPE names assert.deepEqual(r.functions.i18n[0].coverage, { n: 1, total: 1 }) }) -test('the committed function catalog: 28 specs, every one witnessed by the manifest, five cron cards joined, four not deployed, Russian on each', async () => { +test('the committed function catalog: 33 specs, every one witnessed by the manifest, ten cron cards joined, four not deployed, Russian on each', async () => { const { generate, FUNCTIONS_MANIFEST } = await import('./agents-from-specs.mjs') const r = await generate({ generatedAt: '2026-01-01T00:00:00.000Z' }) assert.deepEqual(r.problems, []) const fns = r.functions.functions - assert.equal(fns.length, 28) - assert.equal(r.functions.counts.specPlusCode, 28) + assert.equal(fns.length, 33) + assert.equal(r.functions.counts.specPlusCode, 33) assert.deepEqual(r.functions.codeOnly, []) - assert.equal(r.functions.counts.byTrigger.cron, 5) - assert.equal(r.functions.counts.withCronSpec, 5) + assert.equal(r.functions.counts.byTrigger.cron, 10) + assert.equal(r.functions.counts.withCronSpec, 10) assert.equal(r.functions.counts.notDeployed, 4) const manifest = JSON.parse(readFileSync(join(SITE, FUNCTIONS_MANIFEST), 'utf8')) - assert.equal(manifest.functions.length, 28) + assert.equal(manifest.functions.length, 33) + // The five the site could not draw at all until 2026-09-22: they are what the + // live status endpoint answers for, they carry every failed run in the week, + // and their deployment is unread rather than false. + for (const id of ['client-telemetry-daily', 'club-invoice-abandoned-watch', 'crm-proactive-sweep', 'robokassa-unclaimed-watch', 'ton-pending-watch']) { + const f = fns.find((x) => x.id === id) + assert.ok(f, `${id}: absent from the catalog, so its card cannot be drawn`) + assert.equal(f.witness, 'spec+code') + assert.equal(f.code.deployed, null, `${id}: deployment is unread, not false`) + assert.ok(f.cronSpec, `${id}: no cron card joined`) + } + assert.equal(r.functions.counts.deployUnknown, 5) for (const f of fns) { assert.equal(f.id, f.specPath.replace(/^specs\/functions\//, '').replace(/\.t27$/, '')) assert.ok(f.summary.ru && /[\u0400-\u04ff]/.test(f.summary.ru), `${f.id}: no Russian summary`)