meeting-report

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Meeting Report

会议纪要

Generate a structured French meeting report from a Microsoft Teams
.vtt
transcript, optionally enriched with a Teams
.csv
attendance report.
The skill works on any project. It auto-detects the hexagone-monorepo project and, when detected, applies project-specific rules (sub-domain classification, sub-folder routing, foundation date-only naming). On any other project, it falls back to a generic single-folder output.
从Microsoft Teams的
.vtt
转录文件生成结构化法语会议纪要,可选结合Teams的
.csv
出席报告丰富内容。
本技能适用于任意项目。它会自动检测hexagone-monorepo项目,检测到后将应用项目特定规则(子域分类、子文件夹路由、Foundation团队仅日期命名规则)。对于其他项目,则默认使用通用单文件夹输出模式。

When to Use This Skill

何时使用本技能

Activate when the user:
  • Dépose un chemin vers un fichier
    .vtt
    Teams dans le prompt
  • Dit « crée un compte-rendu de cette transcription Teams »
  • Dit « génère le compte-rendu de cette réunion »
  • Dit « transforme cette transcription en rapport »
  • Dépose en plus un fichier
    .csv
    de présence Teams (optionnel)
当用户出现以下操作时激活:
  • 在提示中提供Teams的
    .vtt
    文件路径
  • 说“为这份Teams转录创建会议纪要”
  • 说“生成这次会议的纪要”
  • 说“把这份转录转换成报告”
  • 额外提供Teams的
    .csv
    出席报告(可选)

Inputs

输入

The skill expects one or two file paths dropped in the user prompt:
  • Required:
    .vtt
    file — Teams meeting transcript in WebVTT format
  • Optional:
    .csv
    file — Teams attendance report
Detection: inspect file extensions in the user prompt. If both are present,
.vtt
is the transcript and
.csv
is the attendance report. If only one file is dropped, it must be the
.vtt
.
本技能期望用户在提示中提供一个或两个文件路径
  • 必填
    .vtt
    文件 — WebVTT格式的Teams会议转录文件
  • 可选
    .csv
    文件 — Teams出席报告
检测方式:检查用户提示中的文件扩展名。如果同时存在两个文件,
.vtt
为转录文件,
.csv
为出席报告。如果仅提供一个文件,则必须是
.vtt
文件。

Project Mode Detection

项目模式检测

Before processing, decide whether the current working directory is the hexagone-monorepo project. This sets the routing behavior for the rest of the workflow.
Run these checks (any one of them is sufficient to enter
hexagone-monorepo
mode):
  1. Folder layout
    docs/reports/foundation/
    AND
    docs/reports/interoperability/
    both exist
  2. Git remote
    git remote -v
    mentions
    hexagone-monorepo
  3. Package name — root
    package.json
    has a
    name
    containing
    hexagone-monorepo
If none match → generic mode.
The user may also explicitly override:
  • « mode générique » / « generic mode » → force generic
  • « mode hexagone » → force hexagone-monorepo (only valid if the layout exists)
State the detected mode in one short sentence to the user before producing the report (e.g. « Mode détecté : hexagone-monorepo. » or « Mode détecté : générique. »).
处理前,需判断当前工作目录是否为hexagone-monorepo项目,这将决定后续工作流的路由行为。
运行以下检查(满足任意一项即可进入hexagone-monorepo模式):
  1. 文件夹结构
    docs/reports/foundation/
    docs/reports/interoperability/
    均存在
  2. Git远程仓库
    git remote -v
    输出中包含
    hexagone-monorepo
  3. 包名称 — 根目录的
    package.json
    name
    字段包含
    hexagone-monorepo
如果均不匹配 → 通用模式
用户也可手动覆盖模式:
  • « mode générique » / « generic mode » → 强制使用通用模式
  • « mode hexagone » → 强制使用hexagone-monorepo模式(仅当对应文件夹结构存在时有效)
在生成报告前,需用一句话向用户说明检测到的模式(例如:« 检测到模式:hexagone-monorepo。» 或 « 检测到模式:通用模式。»)。

Workflow

工作流

Step 1: Locate and Read the Files

步骤1:定位并读取文件

  1. Parse the user prompt for file paths (look for
    .vtt
    and
    .csv
    extensions)
  2. Verify each file exists using Read
  3. If no
    .vtt
    is found → stop and ask the user to provide one
  4. Read the
    .vtt
    content entirely
  5. Read the
    .csv
    content if provided
  1. 解析用户提示中的文件路径(查找
    .vtt
    .csv
    扩展名)
  2. 使用Read工具验证每个文件是否存在
  3. 如果未找到
    .vtt
    文件 → 停止操作并要求用户提供该文件
  4. 完整读取
    .vtt
    文件内容
  5. 如果提供了
    .csv
    文件,则读取其内容

Step 2: Parse the Transcript

步骤2:解析转录文件

Teams
.vtt
file structure:
WEBVTT

NOTE
Meeting metadata may appear here (date, title, organizer)

00:00:01.000 --> 00:00:04.000
<v Speaker Name>Speech content</v>

00:00:05.000 --> 00:00:08.000
Anonymous speech without voice tag
Extract:
  1. Meeting date — try in this order:
    • (a)
      NOTE
      header content containing a date pattern (ISO
      YYYY-MM-DD
      or French
      DD/MM/YYYY
      )
    • (b) Filename date pattern (e.g.
      20260410_...vtt
      2026-04-10
      )
    • (c) Today's date as fallback
  2. Speakers — parse
    <v Speaker Name>...</v>
    voice tags (may be absent)
  3. Content blocks — each timestamped segment is a speaker turn
Teams
.vtt
文件结构:
WEBVTT

NOTE
会议元数据可能在此处显示(日期、标题、组织者)

00:00:01.000 --> 00:00:04.000
<v 发言人姓名>发言内容</v>

00:00:05.000 --> 00:00:08.000
无语音标签的匿名发言
提取以下信息:
  1. 会议日期 — 按以下优先级尝试获取:
    • (a)
      NOTE
      头部中包含日期格式的内容(ISO格式
      YYYY-MM-DD
      或法语格式
      DD/MM/YYYY
    • (b) 文件名中的日期格式(例如
      20260410_...vtt
      2026-04-10
    • (c) 若以上均未找到,使用当前日期作为 fallback
  2. 发言人 — 解析
    <v 发言人姓名>...</v>
    语音标签(可能不存在)
  3. 内容块 — 每个带时间戳的片段为一次发言

Step 3: Resolve Participants

步骤3:确定参会人员

Priority order:
  1. If
    .csv
    attendance report provided
    → parse it and extract the
    Name
    column. Teams attendance CSVs typically contain columns like
    Name
    ,
    First Join
    ,
    Last Leave
    ,
    Duration
    ,
    Role
    ,
    Email
    . Use names only for the
    ## Participants
    section.
  2. Else if
    <v>
    voice tags are present in the
    .vtt
    → extract unique speaker names
  3. Elsestop and ask the user to provide the participants list before continuing:
    « La transcription est anonyme et aucun fichier de présence n'est fourni. Peux-tu me donner la liste des participants ? »
优先级顺序:
  1. 如果提供了
    .csv
    出席报告
    → 解析文件并提取
    Name
    列。Teams出席CSV通常包含
    Name
    First Join
    Last Leave
    Duration
    Role
    Email
    等列。仅将姓名用于
    ## 参会人员
    部分。
  2. 否则,如果
    .vtt
    文件中存在
    <v>
    语音标签
    → 提取唯一的发言人姓名
  3. 否则停止操作并询问用户提供参会人员列表:
    « 转录文件为匿名且未提供出席报告,请提供参会人员列表。»

Step 4: Classify the Sub-Domain (hexagone-monorepo mode only)

步骤4:子域分类(仅hexagone-monorepo模式)

Skip this step in generic mode. In generic mode, there is no domain classification — the report goes to a single output folder (see Step 11).
In hexagone-monorepo mode, analyze transcript content for domain signals using the table below (case-insensitive keyword matching):
FolderSignals (French / technical keywords)
foundation/
sprint, rétro, rétrospective, point équipe, stand-up, daily, foundation, équipe foundation
core/
architecture transversale, cross-domain, LDAP, S3A, S3A settings, permissions utilisateur, rôles, authentification
interoperability/
Hexaflux, interopérabilité, interop, HL7, HL7 v2, HL7 v2.5, FHIR, IHE, PAM, ADT, segment, PID, PV1, PV2, NK1, OBX, EVN, MSH, HPK, flux, intégration, message, mapping, broker, Mirth, Rhapsody
gap/
admission, patient, venue, séjour, dossier patient, pré-admission, AMO, AMC, débiteur, couverture sociale, facturation, valorisation, portail patient, ROC, serveur d'actes, actes, urgences, Diapason
grh/
RH, ressources humaines, employé, salarié, contrat, paie, MyRHConnect, RH Dossier
gef/
pharmacie, M21, contentieux, emprunts, trésorerie, HA GHT, immobilisations, achats, fournisseurs, comptabilité générale, Hélios, export comptable
ui-ux/
design, maquette, Figma, atelier UX, atelier UI, wireframe, écran, prototype, UX/UI
Classification rule:
Classification is by project/domain, not by team org. The Hexaflux team is organizationally part of the Foundation team but works exclusively on the Hexaflux project (domain = interoperability), so their recurring meetings land in
interoperability/
, not
foundation/
. Always check project-specific signals before the generic Foundation standup rule.
  1. If the meeting is the Hexaflux team recurring meeting (mentions « Hexaflux », or a weekly/standup/rétro involving the HL7/interop scope) →
    interoperability/
  2. Else if the meeting is a Foundation team recurring meeting working on the horizontal/transverse platform (sprint, rétro, daily, point équipe, stand-up — without project-specific scope) →
    foundation/
  3. Interoperability vs. GAP disambiguation. HL7 messages carry patient data (PID, PV1, NK1, etc.) so GAP keywords (patient, admission, séjour, venue) will naturally appear. When HL7/interop signals are present alongside GAP signals, the meeting is about integration, not patient business workflows → classify as
    interoperability/
    . Only classify as
    gap/
    when the discussion is about the functional/business side (UI, portail patient, facturation, workflows métier admission) without a technical HL7/message layer.
  4. Otherwise, count keyword matches per domain folder and pick the folder with the highest count (dominant domain)
  5. On a tie, prefer the folder whose signals appear earliest in the transcript
  6. If no signals match at all → ask the user to confirm the target folder
通用模式下跳过此步骤。通用模式下无域分类,报告将输出到单个文件夹(见步骤11)。
hexagone-monorepo模式下,使用下表中的关键词(不区分大小写)分析转录内容中的域信号:
文件夹信号(法语/技术关键词)
foundation/
sprint, rétro, rétrospective, point équipe, stand-up, daily, foundation, équipe foundation
core/
architecture transversale, cross-domain, LDAP, S3A, S3A settings, permissions utilisateur, rôles, authentification
interoperability/
Hexaflux, interopérabilité, interop, HL7, HL7 v2, HL7 v2.5, FHIR, IHE, PAM, ADT, segment, PID, PV1, PV2, NK1, OBX, EVN, MSH, HPK, flux, intégration, message, mapping, broker, Mirth, Rhapsody
gap/
admission, patient, venue, séjour, dossier patient, pré-admission, AMO, AMC, débiteur, couverture sociale, facturation, valorisation, portail patient, ROC, serveur d'actes, actes, urgences, Diapason
grh/
RH, ressources humaines, employé, salarié, contrat, paie, MyRHConnect, RH Dossier
gef/
pharmacie, M21, contentieux, emprunts, trésorerie, HA GHT, immobilisations, achats, fournisseurs, comptabilité générale, Hélios, export comptable
ui-ux/
design, maquette, Figma, atelier UX, atelier UI, wireframe, écran, prototype, UX/UI
分类规则:
分类依据项目/域,而非团队组织架构。Hexaflux团队在组织上属于Foundation团队,但仅专注于Hexaflux项目(域=interoperability),因此他们的常规会议应归类到
interoperability/
,而非
foundation/
。在应用通用Foundation站会规则前,务必先检查项目特定信号。
  1. 如果会议是Hexaflux团队常规会议(提及« Hexaflux »,或涉及HL7/interop范围的每周会议/站会/回顾会)→
    interoperability/
  2. 否则,如果会议是Foundation团队专注于横向平台的常规会议(sprint、回顾会、每日站会、团队例会 — 无项目特定范围)→
    foundation/
  3. Interoperability与GAP的区分。HL7消息包含患者数据(PID、PV1、NK1等),因此GAP关键词(patient、admission、séjour、venue)会自然出现。当HL7/interop信号与GAP信号同时存在时,会议主题为集成,而非患者业务流程 → 归类为
    interoperability/
    。仅当讨论内容为功能/业务层面(UI、患者门户、计费、入院业务流程)且无HL7/消息层技术内容时,才归类为
    gap/
  4. 否则,统计每个域文件夹的关键词匹配数,选择匹配数最多的文件夹(主导域)
  5. 若出现平局,选择信号最早出现在转录文件中的文件夹
  6. 如果无匹配信号 → 询问用户确认目标文件夹

Step 5: Extract Meeting Title and Slug

步骤5:提取会议标题和Slug

  1. Read the first minutes of the transcript for explicit subject references (greetings usually mention the meeting title)
  2. Infer a clean French meeting title (e.g.
    Atelier UX/UI Recherche Patient
    )
  3. Generate a kebab-case slug from the title:
    • Lowercase, ASCII only (strip accents)
    • Replace spaces and punctuation with
      -
    • Max ~60 characters
    • Example:
      atelier-ux-ui-recherche-patient
  1. 读取转录文件开头几分钟的内容,查找明确的主题提及(问候语通常会提到会议标题)
  2. 推断清晰的法语会议标题(例如
    Atelier UX/UI Recherche Patient
  3. 根据标题生成短横线分隔的slug:
    • 小写,仅使用ASCII字符(去除重音符号)
    • -
      替换空格和标点符号
    • 最大约60个字符
    • 示例:
      atelier-ux-ui-recherche-patient

Step 6: Rewrite Content by Topic

步骤6:按主题重写内容

Style: Heavy rewrite, grouped by topic, not chronological, not verbatim.
  1. Identify the main topics discussed — cluster speaker turns into thematic groups (topic detection, not speaker order)
  2. For each topic, extract:
    • Décisions — concrete decisions made (always present as a
      ### Décisions
      subsection)
    • Point d'attention — ambiguities, unresolved items (optional
      ### Point d'attention
      subsection)
    • Problèmes identifiés — blockers, technical issues, missing dependencies (optional
      ### Problèmes identifiés
      subsection)
  3. Write in professional French:
    • Use "nous" or impersonal tone
    • Fix all missing accents aggressively — Teams French transcripts are notoriously bad with accents and punctuation
    • Remove filler words — « euh », « du coup », « en fait », repetitions, stammering
    • Use
      **bold**
      emphasis on key terms inside decision bullets
  4. Target length: 800–1500 words for the full report
  5. Number the sections:
    ## 1. <Topic>
    ,
    ## 2. <Topic>
    , etc.
  6. Do not quote speakers verbatim. The output is a synthesized report, not minutes.
风格: 大幅重写,按主题分组,按时间顺序,逐字记录。
  1. 识别讨论的主要主题 — 将发言按主题分组(主题检测,而非发言顺序)
  2. 针对每个主题,提取:
    • 决议 — 做出的具体决策(始终作为
      ### 决议
      子部分存在)
    • 注意事项 — 模糊点、未解决事项(可选
      ### 注意事项
      子部分)
    • 已识别问题 — 阻塞点、技术问题、缺失依赖(可选
      ### 已识别问题
      子部分)
  3. 使用专业法语撰写:
    • 使用“nous”或客观语气
    • 主动修复所有缺失的重音符号 — Teams法语转录文件通常存在重音和标点缺失的问题
    • 去除填充词 — « euh »、« du coup »、« en fait »、重复内容、结巴
    • 在决议项目符号中使用
      **粗体**
      强调关键术语
  4. 目标长度: 完整报告800–1500词
  5. 为章节编号:
    ## 1. <主题>
    ## 2. <主题>
  6. 不要逐字引用发言人。输出内容是综合报告,而非会议记录。

Step 7: Extract Actions

步骤7:提取行动项

Comb the transcript for action items — things to do, follow-ups, commitments, decisions requiring later implementation. Identify for each:
  • Action — the thing to do
  • Responsable — who was assigned (or « À préciser » if unclear)
  • Statut — typical values:
    À planifier
    ,
    En cours
    ,
    En attente
    ,
    Terminé
Format as a Markdown table. The
## Actions
section is always present at the end of the report. If no actions were identified, write a single row:
markdown
| Action | Responsable | Statut |
|--------|-------------|--------|
| Aucune action identifiée |||
梳理转录文件中的行动项 — 需要完成的任务、跟进事项、承诺、需后续执行的决策。为每个行动项确定:
  • 行动 — 具体任务
  • 负责人 — 被指派的人员(若不明确则为« 待确认 »)
  • 状态 — 典型值:
    待规划
    进行中
    待处理
    已完成
格式化为Markdown表格。
## 行动项
部分始终位于报告末尾。如果未识别到行动项,写入一行:
markdown
| 行动 | 负责人 | 状态 |
|--------|-------------|--------|
| 未识别到行动项 |||

Step 8: Decide Whether to Add a Mermaid Diagram

步骤8:决定是否添加Mermaid图表

Add a mermaid diagram only when the content genuinely benefits from visualization. Good triggers:
  • Multi-step workflows (e.g. a facturation 6/8/7-step process)
  • Decision trees with clear branches
  • Sequence of events between multiple actors (e.g. admission → séjour → facturation)
  • Data flow between systems
Prefer these diagram types:
  • flowchart LR
    or
    flowchart TD
    for processes and decisions
  • sequenceDiagram
    for inter-actor interactions
  • timeline
    for project phases
Place the diagram inside the relevant topic section, not at the top of the report.
Default: no diagram. When in doubt, skip it. A report without a diagram is the norm, not the exception.
仅当内容确实需要可视化时才添加Mermaid图表。适用场景:
  • 多步骤工作流(例如6/8/7步计费流程)
  • 分支清晰的决策树
  • 多角色间的事件序列(例如入院 → 住院 → 计费)
  • 系统间的数据流
优先选择以下图表类型:
  • flowchart LR
    flowchart TD
    用于流程和决策
  • sequenceDiagram
    用于角色间交互
  • timeline
    用于项目阶段
将图表放置在相关主题章节内,而非报告顶部。
默认:不添加图表。如有疑问,跳过图表。无图表是常态,而非例外。

Step 9: Assemble the Report

步骤9:组装报告

Use this exact template:
markdown
undefined
使用以下精确模板:
markdown
undefined

Compte-rendu — <Type de réunion> <Sujet>

会议纪要 — <会议类型> <主题>

Date : DD/MM/YYYY Organisateur : <Nom> (<Rôle>)
日期: DD/MM/YYYY 组织者: <姓名> (<职位>)

Participants

参会人员

<Nom1>, <Nom2>, <Nom3>, ...

<姓名1>, <姓名2>, <姓名3>, ...

1. <Topic 1>

1. <主题1>

Décisions

决议

  • <Key term> : <decision>
  • ...
  • <关键术语> : <决策内容>
  • ...

Point d'attention

注意事项

<Optional paragraph — only when there is an ambiguity or unresolved item>
<可选段落 — 仅当存在模糊点或未解决事项时>

Problèmes identifiés

已识别问题

  • <Optional bullet list — only when problems were raised>

  • <可选项目符号列表 — 仅当提出问题时>

2. <Topic 2>

2. <主题2>

Décisions

决议

  • ...

<...as many topics as needed...>
  • ...

<...根据需要添加更多主题...>

Actions

行动项

ActionResponsableStatut
.........

**Rules:**
- **No YAML front-matter**
- **Date in French format** `DD/MM/YYYY` in the body (ISO only in the filename)
- **Participants** is a single comma-separated line, not a table, no roles
- **Organisateur**: if identifiable from transcript/csv, write `**Organisateur :** Nom (Rôle)`. If not identifiable, write `**Organisateur :** À préciser`
- `---` horizontal rule separator between topics
- `## Actions` always at the very end
行动负责人状态
.........

**规则:**
- **无YAML前置元数据**
- **报告正文中使用法语日期格式** `DD/MM/YYYY`(文件名中使用ISO格式)
- **参会人员**为单行逗号分隔列表,不使用表格,不包含职位
- **组织者**:如果可从转录文件/csv中识别,写入`**组织者:** 姓名(职位)`。如果无法识别,写入`**组织者:** 待确认`
- 使用`---`水平分隔线分隔主题
- `## 行动项`始终位于报告最末尾

Step 10: Determine the Filename

步骤10:确定文件名

hexagone-monorepo mode:
  • Foundation team meetings (
    foundation/
    folder) →
    YYYY-MM-DD.md
    (date only, no slug — one standing team meeting per day maximum)
  • All other folders →
    YYYY-MM-DD-<slug>.md
Generic mode:
  • Always
    YYYY-MM-DD-<slug>.md
The filename always uses the ISO date format
YYYY-MM-DD
, different from the French
DD/MM/YYYY
used in the report body.
hexagone-monorepo模式:
  • Foundation团队会议(
    foundation/
    文件夹)→
    YYYY-MM-DD.md
    (仅日期,无slug — 每天最多一个固定团队会议)
  • 所有其他文件夹 →
    YYYY-MM-DD-<slug>.md
通用模式:
  • 始终使用
    YYYY-MM-DD-<slug>.md
文件名始终使用ISO日期格式
YYYY-MM-DD
,与报告正文中使用的法语格式
DD/MM/YYYY
不同。

Step 11: Resolve the Output Folder and Write the File

步骤11:确定输出文件夹并写入文件

hexagone-monorepo mode:
  1. Target path:
    docs/reports/<sub-domain>/<filename>.md
  2. Verify the sub-domain folder exists (
    ls docs/reports/<sub-domain>/
    ). If missing, create it.
Generic mode:
  1. Pick the first existing folder among:
    • docs/reports/
    • docs/meetings/
    • meetings/
    • reports/
  2. If none exists, create
    docs/reports/
    and use it.
  3. Target path:
    <chosen-folder>/<filename>.md
Common to both modes:
  1. Check if a file with the same name already exists — if yes, append
    -2
    ,
    -3
    , etc. before writing (do NOT overwrite)
  2. Write the file with the Write tool
hexagone-monorepo模式:
  1. 目标路径:
    docs/reports/<子域>/<文件名>.md
  2. 验证子域文件夹是否存在(
    ls docs/reports/<子域>/
    )。如果不存在,则创建该文件夹。
通用模式:
  1. 按以下顺序选择第一个存在的文件夹:
    • docs/reports/
    • docs/meetings/
    • meetings/
    • reports/
  2. 如果均不存在,创建
    docs/reports/
    并使用该文件夹。
  3. 目标路径:
    <选定文件夹>/<文件名>.md
两种模式通用规则:
  1. 检查是否存在同名文件 — 如果存在,在写入前追加
    -2
    -3
    等后缀(不要覆盖现有文件)
  2. 使用Write工具写入文件

Step 12: Report to the User

步骤12:向用户反馈

Show a concise summary:
  1. ✓ Mode:
    hexagone-monorepo
    or
    generic
  2. ✓ Target path
  3. One-line summary: (sub-domain in hexagone mode), number of topics, number of actions, number of participants
  4. Note any fallback that was triggered (no attendance CSV, no voice tags, today's date used because no date found, default folder created, etc.)
  5. Stop. Do not run
    git add
    ,
    git commit
    , or
    git push
    . The user commits the file manually after review.
显示简洁的摘要:
  1. ✓ 模式:
    hexagone-monorepo
    generic
  2. ✓ 目标路径
  3. 一行摘要:(hexagone模式下显示子域)、主题数量、行动项数量、参会人数
  4. 说明触发的任何fallback操作(无出席CSV、无语音标签、因未找到日期使用当前日期、创建默认文件夹等)
  5. 停止操作。不要执行
    git add
    git commit
    git push
    。用户需在审核后手动提交文件。

Important Notes

重要说明

  • Project-agnostic by default. Sub-domain classification and
    docs/reports/<sub-domain>/
    routing only apply when the hexagone-monorepo project is detected.
  • No redaction or pseudonymization. Team meetings are considered internal and trusted. Names and content may appear verbatim in reports.
  • No git actions. The skill writes the file and stops. Commit and push are manual.
  • Rewrite heavily — do not transcribe. The output is a thematic synthesis, not chronological minutes.
  • Fix French accents aggressively. Teams
    .vtt
    French transcripts routinely miss accents and punctuation.
  • Foundation date-only naming applies only in hexagone-monorepo mode. Generic mode always uses
    YYYY-MM-DD-<slug>.md
    .
  • Mermaid is optional, rare, and only when useful. Default is no diagram.
  • Participants fallback order:
    .csv
    first, then
    <v>
    voice tags, then ask the user. Never invent names.
  • Never overwrite an existing report. Append a numeric suffix if a file with the same name already exists.
  • 默认支持任意项目。仅当检测到hexagone-monorepo项目时,才会应用子域分类和
    docs/reports/<子域>/
    路由规则。
  • 不进行编辑或匿名化。团队会议视为内部可信内容。姓名和内容可能直接出现在报告中。
  • 不执行Git操作。本技能仅写入文件后停止。提交和推送需手动完成。
  • 大幅重写 — 不逐字转录。输出内容是主题综合报告,而非按时间顺序的会议记录。
  • 主动修复法语重音符号。Teams .vtt法语转录文件通常存在重音和标点缺失的问题。
  • Foundation仅日期命名规则仅适用于hexagone-monorepo模式。通用模式始终使用
    YYYY-MM-DD-<slug>.md
  • Mermaid图表为可选,仅在必要时添加。默认不添加图表。
  • 参会人员fallback顺序: .csv优先,其次是
    <v>
    语音标签,最后询问用户。切勿编造姓名。
  • 切勿覆盖现有报告。如果存在同名文件,追加数字后缀。

Examples

示例

Example 1: Generic project, simple meeting

示例1:通用项目,简单会议

User: crée un compte-rendu de cette transcription Teams /tmp/kickoff.vtt

→ Detection: no docs/reports/foundation/ found → generic mode
→ Skill reads the .vtt
→ Parses <v> voice tags → 5 speakers
→ Extracts date 2026-04-22
→ Picks docs/reports/ (exists) as output folder
→ Writes docs/reports/2026-04-22-kickoff-projet.md
→ Reports: « Mode détecté : générique. »
用户:为这份Teams转录创建会议纪要 /tmp/kickoff.vtt

→ 检测:未找到docs/reports/foundation/ → 通用模式
→ 技能读取.vtt文件
→ 解析<v>语音标签 → 5位发言人
→ 提取日期2026-04-22
→ 选择docs/reports/(已存在)作为输出文件夹
→ 写入docs/reports/2026-04-22-kickoff-projet.md
→ 反馈:« 检测到模式:通用模式。»

Example 2: Generic project, no docs/reports folder yet

示例2:通用项目,尚未创建docs/reports文件夹

User: génère le compte-rendu /tmp/atelier.vtt /tmp/attendees.csv

→ Detection: generic mode
→ No docs/reports/, no docs/meetings/, no meetings/, no reports/ → creates docs/reports/
→ Writes docs/reports/2026-04-15-atelier-architecture.md
→ Reports: « Mode détecté : générique. Dossier docs/reports/ créé. »
用户:生成会议纪要 /tmp/atelier.vtt /tmp/attendees.csv

→ 检测:通用模式
→ 无docs/reports/、无docs/meetings/、无meetings/、无reports/ → 创建docs/reports/
→ 写入docs/reports/2026-04-15-atelier-architecture.md
→ 反馈:« 检测到模式:通用模式。已创建docs/reports/文件夹。»

Example 3 (hexagone-monorepo): UX/UI atelier with attendance CSV

示例3(hexagone-monorepo):带出席CSV的UX/UI工作坊

User: crée un compte-rendu de cette transcription Teams /tmp/atelier_recherche_patient.vtt /tmp/attendees.csv

→ Detection: docs/reports/foundation/ + interoperability/ exist → hexagone-monorepo mode
→ Skill reads both files
→ Extracts date from .vtt NOTE header: 2026-03-18
→ Participants from .csv: Chloé Julenon, Richard Gill, Adrien Marcos, Myriam Fatoux, Damien Battistella
→ Detects ui-ux signals (atelier, écran, maquette, recherche patient)
→ Classifies as ui-ux/
→ Writes docs/reports/ui-ux/2026-03-18-atelier-recherche-patient.md
用户:为这份Teams转录创建会议纪要 /tmp/atelier_recherche_patient.vtt /tmp/attendees.csv

→ 检测:docs/reports/foundation/ 和 interoperability/ 均存在 → hexagone-monorepo模式
→ 技能读取两个文件
→ 从.vtt的NOTE头部提取日期:2026-03-18
→ 从.csv获取参会人员:Chloé Julenon, Richard Gill, Adrien Marcos, Myriam Fatoux, Damien Battistella
→ 检测到ui-ux信号(atelier、écran、maquette、recherche patient)
→ 归类为ui-ux/
→ 写入docs/reports/ui-ux/2026-03-18-atelier-recherche-patient.md

Example 4 (hexagone-monorepo): Foundation team sprint review, no CSV

示例4(hexagone-monorepo):Foundation团队sprint评审,无CSV

User: génère le compte-rendu de cette réunion /tmp/sprint_review.vtt

→ Detection: hexagone-monorepo mode
→ Parses <v Speaker> voice tags → extracts 4 speakers
→ Extracts date from NOTE header: 2026-04-10
→ Detects foundation signals (sprint, rétro, point équipe)
→ Classifies as foundation/
→ Uses date-only naming
→ Writes docs/reports/foundation/2026-04-10.md
用户:生成这次会议的纪要 /tmp/sprint_review.vtt

→ 检测:hexagone-monorepo模式
→ 解析<v 发言人>语音标签 → 提取4位发言人
→ 从NOTE头部提取日期:2026-04-10
→ 检测到foundation信号(sprint、rétro、point équipe)
→ 归类为foundation/
→ 使用仅日期命名规则
→ 写入docs/reports/foundation/2026-04-10.md

Example 5: Anonymous transcript with no CSV (any mode)

示例5:匿名转录且无CSV(任意模式)

User: transforme cette transcription en rapport /tmp/meeting.vtt

→ No <v> tags found
→ No .csv provided
→ Stops and asks: « La transcription est anonyme et aucun fichier de présence n'est fourni. Peux-tu me donner la liste des participants ? »
→ Waits for the user, then continues with the provided names
用户:把这份转录转换成报告 /tmp/meeting.vtt

→ 未找到<v>标签
→ 未提供.csv文件
→ 停止操作并询问:« 转录文件为匿名且未提供出席报告,请提供参会人员列表。»
→ 等待用户提供姓名后继续操作

Example 6 (hexagone-monorepo): Hexaflux weekly — HL7 discussion, not GAP

示例6(hexagone-monorepo):Hexaflux每周会议 — HL7讨论,非GAP

User: crée un compte-rendu /tmp/hexaflux_weekly.vtt

→ Detection: hexagone-monorepo mode
→ Detects HL7 / ADT / PID / PV1 / NK1 / OBX / segment / mapping signals
→ Patient and admission keywords are present BUT tied to HL7 message segments, not business workflows
→ Applies the interop-vs-gap disambiguation rule → picks interoperability/
→ Writes docs/reports/interoperability/2026-04-17-hexaflux-weekly.md
用户:创建会议纪要 /tmp/hexaflux_weekly.vtt

→ 检测:hexagone-monorepo模式
→ 检测到HL7 / ADT / PID / PV1 / NK1 / OBX / segment / mapping信号
→ 存在patient和admission关键词,但与HL7消息段相关,而非业务流程
→ 应用interop与gap区分规则 → 选择interoperability/
→ 写入docs/reports/interoperability/2026-04-17-hexaflux-weekly.md