--- id: wiki-2026-0508-bluf-bottom-line-up-front title: BLUF (Bottom Line Up Front) category: 10_Wiki/Topics status: verified canonical_id: self aliases: [a1b2c3d4-e5f6-4901-2e3f-4a5b6c7d8e9f, Bottom Line Up Front] duplicate_of: none source_trust_level: A confidence_score: 1.0 verification_status: applied tags: [communication, writing, devops, incident-response] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: markdown framework: none --- # BLUF (Bottom Line Up Front) ## 매 한 줄 > **"매 conclusion 을 첫 줄에 — recipient 가 더 못 읽어도 OK 하도록."**. US military origin 의 writing convention; 매 incident report, exec memo, PR description, on-call alert 의 표준 — 매 reader 의 cognitive load 를 minimize 하고 fastest decision-making 을 enable. ## 매 핵심 ### 매 Structure - **Line 1**: the conclusion / decision needed / status verdict. - **Line 2-N**: supporting evidence in priority order. - **Tail**: details, appendices, traces. ### 매 vs Narrative - Narrative: "We started X, encountered Y, debugged Z, found root cause W, fixed it." — reader waits for punchline. - BLUF: "Outage resolved. Root cause: misconfigured DNS. Restored 14:23 UTC." — punchline first. ### 매 응용 1. Incident postmortem TL;DR. 2. PR description first sentence. 3. Slack on-call escalation. 4. Email subject + first line. 5. Architecture decision record (ADR) summary. ## 💻 패턴 ### Incident Slack Alert ```markdown **[P1] Checkout API 5xx — DEGRADED** Impact: 12% of orders failing since 14:05 UTC. Action: rollback v2.4.1 in progress, ETA 5 min. Owner: @oncall-payments Thread: ↓ ``` ### Postmortem Top ```markdown # Postmortem: 2026-05-08 Checkout Outage **TL;DR**: 47-min P1 outage due to DNS TTL misconfig in v2.4.1 deploy. - Customer impact: ~3,200 failed orders (~$84k revenue) - Resolution: rollback at 14:23 UTC - Action items: 4 (see §6) ## Timeline ... ``` ### PR Description ```markdown **Adds rate limiting to /api/checkout to prevent abuse.** - New: `RateLimiter` middleware with Redis token bucket - Default: 60 req/min per IP, configurable via env - Tests: integration coverage for 429 path - Risk: low — feature-flagged behind `RATE_LIMIT_ENABLED` ## Why Spike on 05-06 saturated DB connections... ``` ### Email Template ```markdown Subject: [DECISION NEEDED by Fri] Migrate auth to OIDC — recommend Keycloak Recommendation: adopt Keycloak for SSO; deprecate legacy LDAP by Q3. Cost: $0 (OSS) + 2 SRE-weeks integration. Risk: medium (auth migration); mitigated by phased rollout. Background: ... ``` ### ADR Header ```markdown # ADR-0042: Use SQLite for local dev DB **Decision**: SQLite for local; Postgres for staging/prod. **Status**: accepted (2026-05-10) **Context**: ... (3 paragraphs below) ``` ### On-Call Status Page ```markdown 🟢 **All systems operational** — last incident 9 days ago. Recent: deploys 4 (all green) · alerts 0 · SLO budget 99.4% ``` ## 매 결정 기준 | 상황 | BLUF 적용 | |---|---| | Incident alert | YES — line 1 = severity + impact | | Postmortem | YES — TL;DR block before timeline | | Tutorial / explainer | NO — narrative 적합 | | Marketing copy | NO — hook 후 reveal | | ADR | YES — decision first | | Bug report | YES — observed vs expected first | **기본값**: ops/exec communication 은 BLUF; pedagogical/narrative 은 example-first. ## 🔗 Graph - 부모: [[Technical Writing]] - 응용: [[Postmortem]] · [[ADR]] - Adjacent: [[Pyramid Principle]] ## 🤖 LLM 활용 **언제**: ask LLM to "rewrite as BLUF" — high-quality reflow. **언제 X**: storytelling / customer-facing narrative. ## ❌ 안티패턴 - **Buried lede**: conclusion 을 §3 에 묻기. - **Over-summarize**: line 1 이 vague ("there was an issue"). - **No context for novices**: BLUF 는 expert reader 가정 — onboarding doc 에는 부적합. - **Decision-less BLUF**: "We did X" 보다 "Recommend Y" 가 actionable. ## 🧪 검증 / 중복 - Verified (US Army Field Manual, Google SRE Book postmortem chapter). - 신뢰도 A. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — full content with templates for incidents/PRs/ADRs |