Completeness Protocol (ZAKON #11)
ZAKON #11 — Completeness Protocol
NIKAD "evo cijela slika" bez POTPUNE slike.
Date: 2026-02-24 Origin: Alem repeatedly had to say "nemaš cijelu sliku" 3+ times before John gathered all data. Root cause: 67 hooks enforce code/deploy/sync verification but ZERO enforce information completeness in CEO briefings.
Rule
Before ANY briefing, status update, or email summary to CEO:
- Check ALL sources — not just the first one that returns results
- NEVER present partial data as complete — "evo šta imam do sad" ≠ "evo cijela slika"
- Explicitly state known unknowns — what you COULD NOT check and why
- Read previous session context — when CEO asks about past topics, FIRST read session logs
Briefing Completeness Checklist
Before answering ANY CEO question about status, emails, people, or follow-ups:
| # | Source | Command | Required? |
|---|---|---|---|
| 1 | Email — john | mail-native.js unread --account john + sent --account john |
YES |
| 2 | Email — info | mail-native.js unread --account info + sent --account info |
YES |
| 3 | Email — alem | mail-native.js unread --account alem + sent --account alem |
YES |
| 4 | Email — alai | mail-native.js unread --account alai + sent --account alai |
YES |
| 5 | Email — dev | mail-native.js unread --account dev + sent --account dev |
YES |
| 6 | MC tasks — Alem's | mc.js list --owner alem --status open |
YES |
| 7 | MC tasks — Blocked | mc.js list --status blocked |
YES |
| 8 | Session logs | session-search.sh topic <topic> or keyword <keyword> |
When topic-specific |
| 9 | HiveMind | hivemind.js query "<topic>" or semantic-query "<topic>" |
When topic-specific |
| 10 | Email briefing | ~/system/logs/email-briefing-latest.md |
YES |
Shortcut: node ~/system/tools/ceo-briefing.js --full runs ALL of the above.
"Known Unknowns" Protocol
EVERY briefing MUST end with a "Known Unknowns" section:
## Known Unknowns
- [source I couldn't check] — [why]
- [information gap] — [what would resolve it]
If all sources were checked: ## Known Unknowns: None — all sources checked.
Session Context Rule
When CEO asks about something from a previous session:
- FIRST run
session-search.sh topic "<topic>"orkeyword "<keyword>" - READ the relevant session file(s)
- THEN check current state (emails, MC tasks)
- Present: What we discussed → What changed since → Current state
CEO Briefing Output Format
Use the structured format from ceo-briefing.js:
# CEO Briefing — {date} {time}
## DECISIONS NEEDED (your call required)
## ACTION REQUIRED (only you can do this)
## WAITING FOR (sent, no response yet)
## COMPLETED SINCE LAST SESSION
## OPEN THREADS (context from previous sessions)
## KNOWN UNKNOWNS
Anti-Patterns (NEVER do these)
- "Provjerio sam email" → Which account? ALL accounts? Inbox AND sent?
- "Nema ništa novo" → Checked where? When? All 5 accounts?
- "Evo cijela slika" → Did you check sessions, HiveMind, MC tasks, ALL emails?
- Answering from memory → ALWAYS verify with tools. Memory is unreliable across sessions.
- Checking 1-2 accounts → ALL 5 accounts (john, info, alem, alai, dev) or explicit statement about what was skipped
Enforcement
- Hook:
briefing-completenessin universal-post-dispatcher — warns when only 1-2 email accounts checked - Tool:
ceo-briefing.js— deterministic all-source sweep - Boot: Quick context sweep runs on every session start
Ljestvica (ZAKON #1)
This is a RULE + TOOL + HOOK fix (3 layers):
- Rule: This document (behavioral standard)
- Tool:
ceo-briefing.js(makes completeness easy) - Hook:
briefing-completeness(enforcement reminder)