Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ this project adheres to [Semantic Versioning](https://semver.org/).
- **Email inbound-scan hardening** (`phases/connectors/email.md`) — three rules upstreamed from accumulated instance experience: **Automated-Alert Triage** (credential/token-expiry, quota/spend-threshold, usage, billing, and maintenance alerts are 🟢 Watching by default — promoted only on imminent functional impact, never on alarm-word tone); and **Drill Active Threads — Don't Trust the Snippet** (a search snippet previews one message, often not the latest — fetch the full thread before asserting "no reply"/"awaiting X"/"unanswered"; threads tied to an open item are mandatory drills).
- **Action-items prioritization + task-query hardening** (`phases/core/action-items.md`) — two rules upstreamed from accumulated instance experience: a **Deadline-Distance Ceiling** (urgency is *capped* by deadline distance — 30+ days → 🟢 max, 7–30 → 🟡 max, <7 → eligible for 🔴, <3 → 🔴 when the next action is the user's; evaluate the real deadline, never the source's alarm-word tone; deprecation notices stay 🟢 until ~2–3 weeks out), and a **terminal-status filter on the ontology task query** (`query --type task --exclude-status "completed,cancelled"` instead of a bare query, so completed/cancelled task entities stop resurfacing as open work; documents the supported `--domain` / `--status` / `--deadline-before` filters).
- **KB-management hardening** (`phases/core/kb-management.md`) — three rules upstreamed from accumulated instance experience: **Never Guess a Name or Acronym Expansion** (cite the full form from a primary source or leave it abbreviated `[unverified]` — never invent a plausible expansion, which reads as fact and propagates); an **entity-creation trigger** (mint a new entity file when a person/org/technology recurs across 3+ independent sources — enriching existing files is not a substitute for creating missing ones); and **staleness-observability + search-depth** freshness rules (every file carries a machine-readable `last_updated:` so a scan can rank and a driver can queue stale files — opportunistic-only refresh lets the long tail rot; and don't scope completeness searches to a fixed channel set / `from:me` filters — a known-to-exist fact your scan missed is a search-depth miss, not an absence).
- **Granola deliverable-invention gate** (`phases/connectors/granola.md`) — a rule upstreamed from accumulated instance experience: a dated commitment or deliverable extracted from a transcript needs a **verbatim source quote** or it's dropped — never attach an urgency marker ("due Friday", "committed to X") the transcript doesn't literally contain; ship without the marker or route to the review queue. Guards two invention traps: topic conflation (don't fuse two adjacent meeting topics into one dated item) and one-off-as-standing (a single mention is not a recurring cadence).

## [0.7.2] - 2026-06-22

Expand Down
8 changes: 8 additions & 0 deletions phases/connectors/granola.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,14 @@ Every action item extracted from a transcript is a **candidate** that must be ve

**Never write a transcript-sourced action item directly to the action items file without cross-checking it first.**

### Deliverable-Invention Gate

A dated commitment or deliverable pulled from a transcript needs a **verbatim source quote**, or it doesn't get written. Before attaching any urgency marker — "must be done by X", "before Y", "committed to Z", "due Friday" — to an extracted item, confirm the transcript (or a post-meeting message) contains the exact sentence stating that commitment. If the quote doesn't exist verbatim, ship the item **without** the urgency marker, or route it to `review-queue.md` for {{USER_NAME}} to confirm — never synthesize the deadline.

Two traps that produce invented deliverables:
- **Topic conflation.** When two adjacent topics surface in the same meeting (e.g. a documentation deliverable and an unrelated upcoming trip), do not fuse them into one dated item. Write them separately and let {{USER_NAME}} cull.
- **One-off ≠ standing.** A single mention is not a recurring cadence. "Every Friday" / "every Monday" commitments must come from the speaker's own words, not be inferred from one occurrence.

### Extraction Gate — Content, Not Breadcrumbs

A "✅ transcript captured" / "notes available for [meeting]" line is **not** extraction — it is a breadcrumb that silently drops the meeting's substance. For every meeting {{USER_NAME}} attended where a transcript exists, you MUST produce the substantive extraction above (action items, decisions, commitments-by-others, deadlines, open questions) or an explicit "reviewed — no actionable content (reason)" note. A bare capture/availability breadcrumb is forbidden as the only output for an attended meeting.
Expand Down
Loading