skills/by-role/pm/meeting-to-spec-update/SKILL.md
Update a product spec from a meeting transcript — extract decisions, open questions, spec changes, and flowchart updates. Use this skill when: - A meeting discussed changes to a product spec and you need to update the local .md + wiki page - The user shares a meeting URL or transcript ID and says "update the spec" - The user says "what needs to change in the spec from this meeting" - After processing a meeting, when decisions affect a spec's content (not just action items) Trigger phrases: "update spec from meeting", "what changed in the spec", "meeting to spec", "sync meeting decisions to spec", "add meeting decisions to spec"
npx skillsauth add qa-aman/claude-skills meeting-to-spec-updateInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Update a product spec from a meeting transcript — decisions, open questions, spec text, flowcharts.
This skill focuses on spec content changes driven by meeting discussions. Pair it with a separate "process meeting" skill if you also need to capture action items and tracker tickets.
The user provides:
Multi-spec meetings: A single meeting may discuss changes to 2+ specs. If the transcript covers multiple features, identify ALL affected specs in Step 2 and run Steps 3-8 for each spec sequentially. Present a combined summary at the end. Ask the user which spec to start with if more than 3 are affected.
Always fetch BOTH the meeting summary AND the full transcript:
Never rely on summary alone. The summary may omit nuance, disagreements, or conditional agreements.
If not specified by the user:
epic-to-spec-map.yaml) and match meeting keywords to spec keywordsRead the full spec file to understand current state.
Multi-spec detection: While reading the transcript, if you encounter discussions about features NOT covered by the target spec, note the other spec(s) affected. After completing the primary spec, ask: "The meeting also discussed [feature X] which maps to [spec Y]. Want me to update that spec too?"
Go through the transcript systematically. For every point discussed, classify it as one of:
Criteria — ALL must be true:
For each confirmed decision, record:
.local/team/users.md)Criteria — ANY of these:
For each open question, record:
Criteria:
For each spec change, record:
CRITICAL RULE: Zero assumptions. Never proceed without user review.
Present these tables to the user:
Table 1: Confirmed Decisions
| # | Decision | Decided by | Confidence | Spec section |
Table 2: Open Questions
| # | Question | Clarification from | Context |
Table 3: Spec Changes
| # | Section | What changes | Source |
Table 4: Diff Preview (current → proposed)
For each spec change, show the user exactly what will change (CURRENT vs PROPOSED text blocks).
Table 5: Decision Conflict Check
Before writing decisions, check any existing decisions.md for contradictions:
| New decision | Existing decision | Conflict? |
If a conflict exists, the new decision must include **Supersedes:** D-NNN-XXX and the old decision's
status must be updated to Superseded by D-NNN-XXX.
Ask: "Please review. I'll only update the spec with items you confirm. Any corrections?"
After user confirms, make changes in this order:
# 9. Open Questions
| **ID** | **Question** | **Clarification needed from** | **Context** | **Raised on** | **Status** |
|---|---|---|---|---|---|
| OQ-001 | ... | ... | ... | DD-MM-YYYY | Open |
decisions.mdD-NNN-XXX format (NNN = spec folder number, XXX = sequential)epic-to-spec-map.yaml) to flip has_decisions_log: false → true
if this is the first decisions.md for the specAppend a new entry (newest-first) with:
<br/> between each numbered point in the change descriptionIf any confirmed decision changes expected behaviour, update the Acceptance Criteria section:
.mmd file and run
npx @mermaid-js/mermaid-cli -i <file>.mmd -o /tmp/test.png -s 2 -b white<spec-folder>/images/Check and update these index files if affected by the spec changes:
a) spec-decisions-index.md — if any confirmed decision adds, changes, or removes a business
rule, threshold, or decision: add/update entries with spec reference and section number.
b) glossary.yaml — if the meeting introduced new terminology, acronyms, or product concepts:
add new terms with definition, spec reference, and first-used date.
c) Any feature-matrix files — if the spec changes affect which variants/modules support the feature, update the feature's row accordingly.
If no updates are needed for any index file, state explicitly: "Checked [files] — no updates needed."
After spec changes are applied locally, add a comment on the linked ticket:
@name mention format (auto-resolved from the team directory)Every spec change can ripple into dependent specs. This step catches those ripples BEFORE the user asks.
How to do it:
depends_on and look for other
specs that have depends_on pointing to this spec.spec-decisions-index.md (or your equivalent) for keywords related to the changes made.| # | Affected spec | Section | What needs updating | Why |
Ask: "These specs may need updates based on today's changes. Want me to apply them?"
On confirmation:
change.md (with cross-reference to the source spec and meeting)If no cross-spec impact found: State explicitly: "No cross-spec impact found. Checked N specs."
This eval runs BEFORE presenting results. If issues are found, fix them silently and only present the fixed version.
| # | Criteria | Min | Weight | What to check | |---|----------|-----|--------|---------------| | 1 | Source fidelity | 8 | 15% | For every change made, find the exact transcript line that justifies it. If none exists, remove the change. | | 2 | Completeness | 8 | 15% | List every distinct topic discussed. Check each is captured as spec change, decision, open question, or "not relevant". | | 3 | Zero assumptions | 9 | 15% | For every statement added as fact: (a) someone explicitly said it, (b) no one said "we need to check", (c) no conditional language. | | 4 | Engineering actionability | 8 | 15% | Can a developer implement without asking a question? | | 5 | QA testability | 8 | 10% | Can QA write a test case with clear expected behaviour? | | 6 | Structure | 8 | 10% | Section numbers sequential, no duplicate headings, tables have headers, flowcharts render. | | 7 | Edge cases | 7 | 10% | Offline scenarios, conflict resolution, missing data, boundary conditions captured. | | 8 | Cross-references | 8 | 5% | All OQ-XXX and D-NNN-XXX references point to existing entries. Ticket/wiki links valid. | | 9 | Formatting | 9 | 5% | DD-MM-YYYY dates, no em-dashes, hyperlinked ticket/wiki refs, no direct quotes in spec body, numbered lists. | | 10 | @mentions everywhere | 9 | 5% | EVERY person name on the wiki uses the user-link macro — not plain text. |
For each criterion scoring below minimum:
Do NOT ask the user for permission to fix rubric failures. Fix them, then report what was fixed.
After all fixes are applied, show the rubric scores and any auto-fixes applied.
For each affected spec that was updated, run a mini-eval:
change.md updated (entry added with cross-reference to source spec)If any check fails, fix silently and report.
After user approves the local changes:
confluence-update script):
replace-section for changed sectionsadd-section for new sections (Open Questions, Decisions Log reference)add-table-row or replace-table-row for the versioning tablereplace-section HTML must NOT include the heading tag — the script keeps the original heading
and replaces only the content below it. Including the heading creates a duplicate.Auto-log this spec update to your daily work log:
Spec updated from meeting: "<Meeting Title>" (DD-MM-YYYY)
Decisions logged: X (D-NNN-001 to D-NNN-00X)
Open questions added: Y
Sections updated: §A, §B, §C
Flowcharts updated: F1, F3 (re-rendered + uploaded)
Cross-spec impact: N specs affected
Quality score: X.X/10
Auto-fixes applied: N
Files changed (primary spec):
- <spec-path>/spec.md
- <spec-path>/decisions.md (created/updated)
- <spec-path>/change.md
- <spec-path>/images/*.png (if flowcharts changed)
- epic-to-spec-map.yaml (has_decisions_log, last_reviewed)
Files changed (cross-spec impact):
- <affected-spec>/spec.md — §X updated
- <affected-spec>/change.md — entry added
Wiki:
- Page version: N → N+M
- URL: <page-url>
decisions.md uses meeting title + date only.<ol><li> for multi-item lists.<a href>.decisions.md and meeting notes.<br/> between numbered points.decisions.md, not the spec.decisions.md created/updated with meeting reference and rejected alternativeschange.md appended with section-by-section diffdevelopment
Plan a webinar end-to-end using April Dunford's Obviously Awesome positioning framework to find the topic angle that makes the webinar obviously valuable to the right audience. Produces topic positioning, abstract, speaker brief, registration page, promotion sequence, day-of run-of-show, and post-webinar follow-up. Use when the user asks to plan a webinar, virtual event, online workshop, "we need a webinar on X", host a webinar, online masterclass, or any live virtual event with promotion and follow-up. Reads ICP, services, and brand voice from knowledge/.
development
Write long-form thought leadership articles, opinion pieces, industry POV essays, and CEO/founder bylines using the Made to Stick SUCCESs framework (Chip and Dan Heath). Use when the user asks for a long-form article, executive byline, opinion piece, industry POV, manifesto, "explain our point of view on X", or wants to publish an authority-building piece (1200-2500 words). Reads brand voice and positioning from knowledge/.
development
Plan a monthly content calendar across channels using the Content Marketing Matrix (Dave Chaffey, Smart Insights) - Entertain/Inspire/Educate/Convince. Every post gets a quadrant label. The monthly calendar must hit 40% Educate, 40% Inspire+Convince, 20% Entertain. Produces a week-by-week posting schedule with topics, formats, channels, and asset links. Use when the user says "content calendar", "social calendar", "plan next month's content", "what should we post", "content plan", "editorial calendar", "schedule posts for the month", or wants a structured posting plan for LinkedIn, Twitter, email, or blog. Reads brand voice, ICP, and past learnings from knowledge/.
development
Write SEO-optimized long-form articles targeting specific keywords using the They Ask You Answer Big 5 framework (Marcus Sheridan). Articles are categorized by Big 5 type (Cost, Problems, Versus, Best/Reviews, How-To) and structured accordingly. The "answer first" rule applies to every article. Use when the user asks for an SEO article, blog post for ranking, "rank for keyword X", organic content, search-optimized post, pillar page, or content for organic traffic. Includes keyword targeting, search intent matching, internal linking suggestions, and meta tags.