# 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:

1. **Check ALL sources** — not just the first one that returns results
2. **NEVER present partial data as complete** — "evo šta imam do sad" ≠ "evo cijela slika"
3. **Explicitly state known unknowns** — what you COULD NOT check and why
4. **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:

```markdown
## 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:

1. **FIRST** run `session-search.sh topic "<topic>"` or `keyword "<keyword>"`
2. **READ** the relevant session file(s)
3. **THEN** check current state (emails, MC tasks)
4. **Present:** What we discussed → What changed since → Current state

---

## CEO Briefing Output Format

Use the structured format from `ceo-briefing.js`:

```markdown
# 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)

1. **"Provjerio sam email"** → Which account? ALL accounts? Inbox AND sent?
2. **"Nema ništa novo"** → Checked where? When? All 5 accounts?
3. **"Evo cijela slika"** → Did you check sessions, HiveMind, MC tasks, ALL emails?
4. **Answering from memory** → ALWAYS verify with tools. Memory is unreliable across sessions.
5. **Checking 1-2 accounts** → ALL 5 accounts (john, info, alem, alai, dev) or explicit statement about what was skipped
6. **"Čeka odgovor X sati"** → Did you verify the THREAD? Subject changes ("Re: ... — new topic") prove replies exist. Inbox DB status can be stale. ALWAYS check thread chain before reporting email as unanswered. (Added 2026-03-01, ZAKON #10 violation)

---

## Enforcement

- **Hook:** `briefing-completeness` in 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)