Run a multi-turn knowledge-base chat. Keep the full transcript in outputs/sessions/, continue follow-up questions inside the same session, and promote stable synthesis back into outputs/answers/ and the wiki when reusable conclusions emerge.
Use this when the user wants an ongoing conversation against the knowledge base and expects follow-up questions to accumulate instead of being treated as isolated one-off /kb-qa runs.
/kb-chat How do these papers relate to each other?/kb-chat Compare the architecture tradeoffs here, then stay in session for follow-ups/kb-chat Let's reason through this codebase and keep the conversation filed back into the KBFind the nearest directory containing wiki/. If not found, tell the user to run /kb-init first.
Prefer a single active transcript note per ongoing thread:
python3 -m llm_notes.chat list --kb-root <kb-root> --status active --limit 1
python3 -m llm_notes.chat start \
--kb-root <kb-root> \
--title "<short session title>" \
--focus "<what this multi-turn discussion is trying to learn>"
python3 -m llm_notes.chat append \
--kb-root <kb-root> \
--session <session rel_path or session_id> \
--speaker user \
--content-stdin <<'EOF'
<raw user message>
EOF
Use the same navigation discipline as /kb-qa:
wiki/_index.md_index.md files/kb-search only when the question is broad, ambiguous, or cross-cutting[[wikilinks]], sibling pages, contrasts, and prerequisitesReply conversationally, but keep KB discipline:
[[wikilinks]] citations when referring to wiki pages/kb-qa:
## Main Conclusion## Knowledge Network Extension## Deep-Dive Threads## Further QuestionsAfter you draft the reply, append it to the same session transcript:
python3 -m llm_notes.chat append \
--kb-root <kb-root> \
--session <session rel_path or session_id> \
--speaker assistant \
--source-consulted wiki/category/article.md \
--source-consulted wiki/category/other-article.md \
--content-stdin <<'EOF'
<assistant reply shown to the user>
EOF
When the session reaches a durable conclusion, comparison, taxonomy, or reusable concept link:
python3 -m llm_notes.answers finalize \
--kb-root <kb-root> \
--question "<stable question distilled from the session>" \
--source-consulted wiki/category/article.md \
--source-consulted wiki/category/other-article.md \
--no-auto-file \
--body-stdin <<'EOF'
# <Distilled Question>
## Main Conclusion
...
## Knowledge Network Extension
...
## Deep-Dive Threads
...
## Further Questions
...
## Sources Consulted
...
## Gaps Identified
...
EOF
python3 -m llm_notes.chat link-answer \
--kb-root <kb-root> \
--session <session rel_path or session_id> \
--answer outputs/answers/YYYY-MM-DD-slug.md
link-answer now inspects the answer note itself:
new or enrich, it writes that recommendation and exact command into the session's Promotion QueueSaved the distilled answer and added a promotion recommendation to the session. Do you want me to file it into the wiki now?Promote when the insight is reusable. Do not promote transient chatter or purely operational turns. Only skip the confirmation step when the user explicitly asked to file the conclusion back into the wiki as part of this turn.
When the user explicitly finishes the topic, close the session:
python3 -m llm_notes.chat close \
--kb-root <kb-root> \
--session <session rel_path or session_id> \
--status closed
The goal is:
outputs/sessions/ keeps the auditable transcriptoutputs/answers/ keeps distilled synthesis noteswiki/ receives only stable, reusable knowledge