[blog-draft] How to Do Meeting Minutes in 2026: Steps + Free Template - #113
Conversation
…-to) Net-new blog draft via the KC-blogger skill, executing the broken-handoff fix (Law 7): consumes the existing SEO content-brief how-to-do-meeting-minutes.md as the SERP-steal, hardened against a live DataForSEO SERP pull (UAE/en). - keyword: "how to do meeting minutes" (1,600/mo, KD 6, UAE/en, informational, white-space — no MENA domain ranks) - intent-matched (Law 2): informational how-to; SERP is AI-Overview-led so the play is GEO citation (Law 5) - 2,682 words (beats the top-10), 7-element format table, step-by-step, copy-paste template (the intent every result + related search signals), minutes-vs-notes, honest "can AI do it", MENA/Arabic + audit angle, Odoo-task angle, common mistakes, 5 schema-ready FAQ - hreflang pair -> the shipped AR محضر page (namuthaj-mahdar-ijtimaa-ar) (Law 4) - gates pass: 0 banned words, keyword x19, exactly 5 FAQ, slug unique Product claims kept honest to POSITIONING (no retired Odoo-SH-PR claim; Odoo-task flow phrased as in-progress; Arabic = input not superiority; confirm-gate is shipped). Codex fact-flag run (judge != author); the one ship-state over-claim softened. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FkVj9JkUhTpetCHUM52hsX
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
Next review available in: 40 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
📝 WalkthroughWalkthroughA new draft Markdown document ChangesMeeting Minutes Draft Article
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Gemini-generated (gen-image.py, no MCP), Knowcap brand palette, no baked-in branding text. Hero embedded in the post body (renders via app/public/blog/<slug>/, the only per-post image path the blog system supports today). WebP, next-gen format per Law 5 image hygiene; alt text = target keyword. Note: the blog route has no per-post OG-meta wiring (publish-draft.mjs drops image frontmatter; generateMetadata sets no openGraph.images). og.webp is committed as a ready asset; wiring it into <meta og:image> is a separate small website change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FkVj9JkUhTpetCHUM52hsX
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (3)
docs/content-pipeline/drafts/how-to-do-meeting-minutes.md (3)
69-99: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueAdd language specifier to fenced code block.
The template code block lacks a language tag, triggering markdownlint MD040. Add
textto suppress the warning and ensure consistent rendering.📝 Fix
-``` +```text🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/content-pipeline/drafts/how-to-do-meeting-minutes.md` around lines 69 - 99, The fenced template block in how-to-do-meeting-minutes.md is missing a language identifier, which triggers markdownlint MD040; update the markdown fence in this draft to use the text language specifier so the meeting-minutes template renders consistently.Source: Linters/SAST tools
72-73: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueClarify date format in template placeholders.
The template uses
__/__/____which is ambiguous for the MENA target audience (DD/MM vs MM/DD). ConsiderDD / MM / YYYYor a single__________with a note, matching the explicit "29 Jun 2026" style used in the example.Also applies to: 97-97
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/content-pipeline/drafts/how-to-do-meeting-minutes.md` around lines 72 - 73, The meeting minutes template placeholders are ambiguous about date format for the MENA audience. Update the date/time placeholder in the draft template to use an explicit format such as DD / MM / YYYY or a single clear date placeholder with a note, and keep it consistent with the example’s explicit “29 Jun 2026” style. Locate the change in the meeting minutes draft content and adjust the placeholder text accordingly so the intended format is unambiguous.
17-17: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winWire
hreflang_pairthrough publishing, or remove it from the draft template.It’s documented in the draft spec, but
scripts/publish-draft.mjsdrops it from published frontmatter andapp/lib/blog.tsnever reads it, so the field has no effect on the live site.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/content-pipeline/drafts/how-to-do-meeting-minutes.md` at line 17, The draft template includes hreflang_pair, but the publishing flow and blog rendering paths ignore it, so the field is currently ineffective. Either wire hreflang_pair through the publish pipeline in scripts/publish-draft.mjs and consume it in app/lib/blog.ts, or remove it from the draft template/spec if it should not be supported. Use the hreflang_pair handling in the draft frontmatter and the publishing/blog parsing logic as the places to update.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/content-pipeline/drafts/how-to-do-meeting-minutes.md`:
- Line 109: The phrase in the meeting-minutes draft needs a compound-adjective
fix: in the draft text within the content about AI drafting meeting minutes,
change the unhyphenated “real time saver” to the hyphenated form “real-time
saver.” Locate the wording in the opening paragraph of the draft and update only
that modifier so the sentence reads naturally and consistently with standard
compound-adjective usage.
---
Nitpick comments:
In `@docs/content-pipeline/drafts/how-to-do-meeting-minutes.md`:
- Around line 69-99: The fenced template block in how-to-do-meeting-minutes.md
is missing a language identifier, which triggers markdownlint MD040; update the
markdown fence in this draft to use the text language specifier so the
meeting-minutes template renders consistently.
- Around line 72-73: The meeting minutes template placeholders are ambiguous
about date format for the MENA audience. Update the date/time placeholder in the
draft template to use an explicit format such as DD / MM / YYYY or a single
clear date placeholder with a note, and keep it consistent with the example’s
explicit “29 Jun 2026” style. Locate the change in the meeting minutes draft
content and adjust the placeholder text accordingly so the intended format is
unambiguous.
- Line 17: The draft template includes hreflang_pair, but the publishing flow
and blog rendering paths ignore it, so the field is currently ineffective.
Either wire hreflang_pair through the publish pipeline in
scripts/publish-draft.mjs and consume it in app/lib/blog.ts, or remove it from
the draft template/spec if it should not be supported. Use the hreflang_pair
handling in the draft frontmatter and the publishing/blog parsing logic as the
places to update.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 2e43c9f3-5435-4b7a-a36f-e7d3dfac9f33
📒 Files selected for processing (3)
app/public/blog/how-to-do-meeting-minutes/hero.webpapp/public/blog/how-to-do-meeting-minutes/og.webpdocs/content-pipeline/drafts/how-to-do-meeting-minutes.md
|
|
||
| ## Can AI write meeting minutes? The honest answer | ||
|
|
||
| Yes, AI can draft meeting minutes, and in 2026 most teams should let it. Tools that record and transcribe a call — including ChatGPT's record mode, Zoom, Otter, Read.ai, and others — can turn an hour of audio into a summary with decisions and action items in seconds. That is a real time saver: manual minutes take 30–45 minutes to write up; an AI draft takes 2–3 minutes to review. But there is a catch that matters most for exactly the meetings where minutes are legally or commercially serious. An AI summary is the model's best guess at what was decided. It will occasionally invent a decision, miss an owner, or soften a deadline — and it does so in confident, clean prose that reads true. So the right method is not "let AI write the minutes" but "let AI draft, and have a named human confirm each decision against the recording before it becomes the record." |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Fix compound adjective: "real-time saver".
"Real-time" modifies "saver" and needs hyphenation.
📝 Fix
-That is a real time saver: manual minutes take 30–45 minutes to write up;
+That is a real-time saver: manual minutes take 30–45 minutes to write up;📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Yes, AI can draft meeting minutes, and in 2026 most teams should let it. Tools that record and transcribe a call — including ChatGPT's record mode, Zoom, Otter, Read.ai, and others — can turn an hour of audio into a summary with decisions and action items in seconds. That is a real time saver: manual minutes take 30–45 minutes to write up; an AI draft takes 2–3 minutes to review. But there is a catch that matters most for exactly the meetings where minutes are legally or commercially serious. An AI summary is the model's best guess at what was decided. It will occasionally invent a decision, miss an owner, or soften a deadline — and it does so in confident, clean prose that reads true. So the right method is not "let AI write the minutes" but "let AI draft, and have a named human confirm each decision against the recording before it becomes the record." | |
| Yes, AI can draft meeting minutes, and in 2026 most teams should let it. Tools that record and transcribe a call — including ChatGPT's record mode, Zoom, Otter, Read.ai, and others — can turn an hour of audio into a summary with decisions and action items in seconds. That is a real-time saver: manual minutes take 30–45 minutes to write up; an AI draft takes 2–3 minutes to review. But there is a catch that matters most for exactly the meetings where minutes are legally or commercially serious. An AI summary is the model's best guess at what was decided. It will occasionally invent a decision, miss an owner, or soften a deadline — and it does so in confident, clean prose that reads true. So the right method is not "let AI write the minutes" but "let AI draft, and have a named human confirm each decision against the recording before it becomes the record." |
🧰 Tools
🪛 LanguageTool
[uncategorized] ~109-~109: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... and action items in seconds. That is a real time saver: manual minutes take 30–45 minute...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/content-pipeline/drafts/how-to-do-meeting-minutes.md` at line 109, The
phrase in the meeting-minutes draft needs a compound-adjective fix: in the draft
text within the content about AI drafting meeting minutes, change the
unhyphenated “real time saver” to the hyphenated form “real-time saver.” Locate
the wording in the opening paragraph of the draft and update only that modifier
so the sentence reads naturally and consistently with standard
compound-adjective usage.
Source: Linters/SAST tools
Was an inline ``` fenced code block in the draft (the site renderer has no fence support, so it would have shipped as mangled run-on prose). Now a generated .docx at app/public/downloads/, wired via new template_download_href/label frontmatter to the tracked download card (companion fix PR). Per Hassan: templates ship downloadable + tracked, media generation via Google Gemini (already the pipeline, confirmed).
…te downloads (#124) The hand-rolled markdown renderer (app/lib/blog.ts) had no support for ```-fenced code blocks or `| a | b |` tables — either one silently mangled into unreadable run-on prose (whitespace collapsed, literal ```/| characters left in the text). Confirmed LIVE-BROKEN on namuthaj-mahdar-ijtimaa-ar (the site's only non-brand-click-earning post) — its template section shipped as garbled text. Verified fixed via a real `next build`: the same post now statically renders a proper <pre><code> block, byte-for-byte the same source content. Also adds the capability for posts to ship a real downloadable asset (e.g. a copy-paste template as .docx) instead of relying on an inline code fence: `template_download_href`/`template_download_label` frontmatter -> new TemplateDownload component, tracked via posthog.capture('template_download', ...) + gtag on click. First consumer is the how-to-do-meeting-minutes draft (PR #113). Verified: tsc --noEmit clean, `next build` succeeds (blog/[slug] statically regenerates namuthaj-mahdar-ijtimaa-ar correctly).
Mode + why
thesis (informational intent). Net-new draft via the KC-blogger skill, executing the Law-7 broken-handoff fix: consumes the existing SEO content-brief
how-to-do-meeting-minutes.mdas the SERP-steal, hardened against a live DataForSEO SERP pull (UAE/en) since the brief's SERP was estimated.Keyword + demand
how to do meeting minutes— 1,600/mo, KD 6, UAE/en, informational, on-productWhat's in it (2,682 words, beats top-10)
7-element format table · step-by-step (before/during/after/distribute) · copy-paste template (the intent every result + related search signals) · minutes-vs-notes · honest "can AI write minutes?" · MENA/Arabic + audit-trail angle · Odoo-task angle · common mistakes · 5 schema-ready FAQ (from live PAA).
namuthaj-mahdar-ijtimaa-ar(Law 4)./for/odoo-partners,/blog/why-odoo-implementation-projects-fail...,/blog/your-audit-plan-is-only-as-strong....Gates (skill validation)
✅ 0 banned words · keyword ×19 (title + H2-1 + body) · exactly 5 FAQ H3 · slug unique · lang/dir/hreflang set · word count in 2,000–2,800 target.
Codex fact-flag (judge ≠ author)
Ran read-only vs the POSITIONING shipped-vs-aspirational matrix. Fixed: Odoo line softened ("is building for" not "gives" — vision marks that flow ~75–80% built). Kept (defensible): confirm-gate + claim-extraction + timestamp-provenance are shipped per vision; scope-creep / time-saving stats are soft + from internal research; the ChatGPT/Zoom/Otter/Read.ai summarize-in-seconds claim is generically true (undated).
Notes
app/content/blog/on merge (image-less while it's a draft is fine).Status
DRAFT for Hassan to judge & ship. Auto-publishes to
app/content/blog/on merge viapublish-blog-draft.yml. Do NOT auto-merge — the blogger loop never auto-publishes.Live URL on merge:
https://knowcap.ai/blog/how-to-do-meeting-minutes🤖 Generated with Claude Code
Summary by CodeRabbit