diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f1f4bc..257c84b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ this project adheres to [Semantic Versioning](https://semver.org/). - **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). - **Slack notification refinements** (`phases/connectors/slack.md`) — two rules upstreamed from accumulated instance experience: **lead the briefing wrap-DM with a "Today's Focus" continuity line** (open with the throughline from recent work to today, before the counts — counts say *how much*, not *what to care about first*); and a **Slack-renderable link refinement** to the existing DM-legibility rule (Slack does not auto-linkify custom URL schemes like `obsidian://` / `file://` — wrap them in mrkdwn angle-bracket form ``; GFM `[label](url)` also fails for custom schemes — a clickable-link fix only lands when the link renders in the destination's markup dialect). +- **GitHub PR action-item context** (`phases/connectors/github.md`) — a rule upstreamed from accumulated instance experience: when a PR becomes an action item, the line must state **what the PR does, which project it serves, and what's blocked downstream** — never just the title and merge status. Captures the change in plain English, the project/area resolved against the KB, who's waiting / what ships on merge, and how long it's waited; a bare title + status is not enough context to act on. ## [0.7.2] - 2026-06-22 diff --git a/phases/connectors/github.md b/phases/connectors/github.md index df49894..8eb254f 100644 --- a/phases/connectors/github.md +++ b/phases/connectors/github.md @@ -70,6 +70,17 @@ gh search prs --review-requested @me --state open --json number,title,url,reposi Pull `gh pr view N --repo R --json author,headRefName,reviewRequests,isDraft` to classify. For buckets 2–3, note who requested it, which repo, how long it's waited (prioritize older), and PR size if available. +### PR Action-Item Context + +When a PR becomes an action item, the line must state **what the PR does, which project it serves, and what's blocked downstream** — never just the title and merge status. A reader seeing only "Review PR #123 — open" has to open the PR to learn whether it matters; the action item exists to spare them that. For every PR-derived item, capture: + +- **What it does** — the change in one plain-English phrase, not the raw PR title. +- **Which project/area** — resolve the repo/PR against the KB so it links to the right project entity, not just a bare repo name. +- **What's blocked** — who is waiting on it, or what ships once it merges. "Review feedback needing a response" and "approval blocking a release" are different priorities; the downstream context is what distinguishes them. +- **How long it's waited** — staleness drives ordering. + +A bare title + status is not enough context to act on. + ### New Issues Assigned ```bash