Summary
Thirteen NBI_* variables are read by the code and appear in no markdown file. Most look like deliberate internal tuning knobs rather than omissions, so this is a decision to make once rather than a straightforward gap: document them as supported, or mark them internal and accept that they are not.
The list
Read by the code, absent from every doc:
NBI_CHATBOOK_STUB
NBI_CLAUDE_AGENT_CLIENT_RESPONSE_TIMEOUT
NBI_CLAUDE_AGENT_CLIENT_RESPONSE_WAIT_TIME
NBI_CLAUDE_AGENT_CLIENT_UPDATE_WAIT_TIME
NBI_CLAUDE_AGENT_CONNECT_TIMEOUT
NBI_CLAUDE_AGENT_HEARTBEAT_INTERVAL
NBI_CLAUDE_PERF_STALL_GAP_MS
NBI_CONTEXT_PREFIX
NBI_INLINE_COMPLETION_PROVIDER_ID
NBI_MCP_CAPABILITY_RETRY_DELAY
NBI_MCP_DISCONNECT_TIMEOUT
NBI_MCP_SERVER_RESPONSE_TIMEOUT
NBI_VERSION
Generated by diffing NBI_[A-Z_0-9]+ across notebook_intelligence/**/*.py and src/**/*.ts* against every markdown file outside tests/. Nothing goes the other way: no doc references a variable the code no longer reads.
Why it is a decision and not just a gap
They are not one kind of thing:
- Test hooks.
NBI_CHATBOOK_STUB exists to make the Chatbook kernel testable. Documenting it invites use in production.
- Internal identifiers.
NBI_VERSION, NBI_CONTEXT_PREFIX, NBI_INLINE_COMPLETION_PROVIDER_ID are plumbing rather than knobs.
- Real timeouts an operator might need. The Claude agent family (
CONNECT_TIMEOUT, HEARTBEAT_INTERVAL, the three client wait times) and the MCP family are exactly the values someone debugging a slow or wedged deployment would want to reach for.
The last group is the reason to decide rather than ignore: NBI_MCP_CONNECT_TIMEOUT is documented (docs/troubleshooting.md), while its sibling NBI_MCP_DISCONNECT_TIMEOUT, added by the same change, is not. Whatever the rule is, those two should be on the same side of it. The ACP timeouts are a third case again: they are not env-overridable at all, unlike Claude's.
Suggested fix
Pick a rule and apply it: document the operator-facing timeouts in the admin guide's environment table, and leave the test hooks and internal identifiers undocumented on purpose. A one-line comment at each undocumented site saying it is internal would keep a future audit from re-raising this.
Environment
NBI main at dc59a6d (6.0.0-a2). Found while auditing docs for the 6.0 release.
Summary
Thirteen
NBI_*variables are read by the code and appear in no markdown file. Most look like deliberate internal tuning knobs rather than omissions, so this is a decision to make once rather than a straightforward gap: document them as supported, or mark them internal and accept that they are not.The list
Read by the code, absent from every doc:
NBI_CHATBOOK_STUBNBI_CLAUDE_AGENT_CLIENT_RESPONSE_TIMEOUTNBI_CLAUDE_AGENT_CLIENT_RESPONSE_WAIT_TIMENBI_CLAUDE_AGENT_CLIENT_UPDATE_WAIT_TIMENBI_CLAUDE_AGENT_CONNECT_TIMEOUTNBI_CLAUDE_AGENT_HEARTBEAT_INTERVALNBI_CLAUDE_PERF_STALL_GAP_MSNBI_CONTEXT_PREFIXNBI_INLINE_COMPLETION_PROVIDER_IDNBI_MCP_CAPABILITY_RETRY_DELAYNBI_MCP_DISCONNECT_TIMEOUTNBI_MCP_SERVER_RESPONSE_TIMEOUTNBI_VERSIONGenerated by diffing
NBI_[A-Z_0-9]+acrossnotebook_intelligence/**/*.pyandsrc/**/*.ts*against every markdown file outsidetests/. Nothing goes the other way: no doc references a variable the code no longer reads.Why it is a decision and not just a gap
They are not one kind of thing:
NBI_CHATBOOK_STUBexists to make the Chatbook kernel testable. Documenting it invites use in production.NBI_VERSION,NBI_CONTEXT_PREFIX,NBI_INLINE_COMPLETION_PROVIDER_IDare plumbing rather than knobs.CONNECT_TIMEOUT,HEARTBEAT_INTERVAL, the three client wait times) and the MCP family are exactly the values someone debugging a slow or wedged deployment would want to reach for.The last group is the reason to decide rather than ignore:
NBI_MCP_CONNECT_TIMEOUTis documented (docs/troubleshooting.md), while its siblingNBI_MCP_DISCONNECT_TIMEOUT, added by the same change, is not. Whatever the rule is, those two should be on the same side of it. The ACP timeouts are a third case again: they are not env-overridable at all, unlike Claude's.Suggested fix
Pick a rule and apply it: document the operator-facing timeouts in the admin guide's environment table, and leave the test hooks and internal identifiers undocumented on purpose. A one-line comment at each undocumented site saying it is internal would keep a future audit from re-raising this.
Environment
NBI
mainatdc59a6d(6.0.0-a2). Found while auditing docs for the 6.0 release.