# Graph Report - dttb  (2026-05-06)

## Corpus Check
- 1 files · ~22,438 words
- Verdict: corpus is large enough that graph structure adds value.

## Summary
- 18 nodes · 28 edges · 4 communities (3 shown, 1 thin omitted)
- Extraction: 100% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS
- Token cost: 0 input · 0 output

## Graph Freshness
- Built from commit: `3220238c`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).

## Community Hubs (Navigation)
- [[_COMMUNITY_Community 0|Community 0]]
- [[_COMMUNITY_Community 1|Community 1]]
- [[_COMMUNITY_Community 2|Community 2]]
- [[_COMMUNITY_Community 3|Community 3]]

## God Nodes (most connected - your core abstractions)
1. `nc_request()` - 6 edges
2. `main()` - 6 edges
3. `send_message()` - 5 edges
4. `build_system_prompt()` - 4 edges
5. `get_last_message_id()` - 4 edges
6. `poll_new_messages()` - 4 edges
7. `join_room()` - 4 edges
8. `load_knowledge_base()` - 3 edges
9. `get_ai_reply()` - 3 edges
10. `Load all .md files from knowledge-base repo into context string` - 1 edges

## Surprising Connections (you probably didn't know these)
- `main()` --calls--> `build_system_prompt()`  [EXTRACTED]
  nextcloud-talk-bot.py → nextcloud-talk-bot.py  _Bridges community 2 → community 0_
- `get_last_message_id()` --calls--> `nc_request()`  [EXTRACTED]
  nextcloud-talk-bot.py → nextcloud-talk-bot.py  _Bridges community 1 → community 3_
- `poll_new_messages()` --calls--> `nc_request()`  [EXTRACTED]
  nextcloud-talk-bot.py → nextcloud-talk-bot.py  _Bridges community 1 → community 0_
- `main()` --calls--> `get_last_message_id()`  [EXTRACTED]
  nextcloud-talk-bot.py → nextcloud-talk-bot.py  _Bridges community 3 → community 0_

## Communities (4 total, 1 thin omitted)

### Community 0 - "Community 0"
Cohesion: 0.47
Nodes (5): get_ai_reply(), main(), poll_new_messages(), Long-poll for new messages after last_id, Get reply from Claude via cliproxy

### Community 1 - "Community 1"
Cohesion: 0.4
Nodes (6): join_room(), nc_request(), Join conversation as bot user, Send message as bot user, Nextcloud OCS API request, send_message()

### Community 2 - "Community 2"
Cohesion: 0.5
Nodes (4): build_system_prompt(), load_knowledge_base(), Load all .md files from knowledge-base repo into context string, Build system prompt with knowledge base

## Knowledge Gaps
- **8 isolated node(s):** `Load all .md files from knowledge-base repo into context string`, `Build system prompt with knowledge base`, `Nextcloud OCS API request`, `Get the highest message ID in the conversation`, `Long-poll for new messages after last_id` (+3 more)
  These have ≤1 connection - possible missing edges or undocumented components.
- **1 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.

## Suggested Questions
_Questions this graph is uniquely positioned to answer:_

- **Why does `nc_request()` connect `Community 1` to `Community 0`, `Community 3`?**
  _High betweenness centrality (0.176) - this node is a cross-community bridge._
- **Why does `main()` connect `Community 0` to `Community 1`, `Community 2`, `Community 3`?**
  _High betweenness centrality (0.132) - this node is a cross-community bridge._
- **Why does `send_message()` connect `Community 1` to `Community 0`?**
  _High betweenness centrality (0.129) - this node is a cross-community bridge._
- **What connects `Load all .md files from knowledge-base repo into context string`, `Build system prompt with knowledge base`, `Nextcloud OCS API request` to the rest of the system?**
  _8 weakly-connected nodes found - possible documentation gaps or missing edges._