handshake-acknowledgement
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseHandShake Acknowledgement Generator
HandShake确认函生成工具
Generates the Somnio HandShake - Step 3 Acknowledgement PDF from raw EM notes.
Handles single or batch generation (1 to N devs in one run).
根据EM的原始笔记生成Somnio HandShake - 第三步确认函 PDF。
支持单个或批量生成(一次处理1到N位开发者)。
Context
背景
Somnio Software runs a bi-annual performance review program called HandShake (April and October/November). After conducting interviews with the PM, a dev from the team, and the Tech Lead, the EM synthesizes everything into the Acknowledgement document — a formal PDF delivered to the developer.
Somnio Software每半年开展一次名为HandShake的绩效评审项目(4月和10/11月)。在与PM、团队内的开发者以及Tech Lead完成访谈后,EM会将所有内容整合为确认函——一份正式的PDF文档,交付给对应开发者。
Input
输入
One or more ficha files (PDF, DOCX, or pasted text) per developer, containing:
- Notes from PM interview
- Notes from dev team member interview
- Notes from Tech Lead review
- EM synthesis / general feedback
- Optionally: previous Acknowledgement PDF (for comparison section)
Input is always free-form — Claude must interpret it intelligently.
每位开发者对应的一个或多个评估表文件(PDF、DOCX或粘贴的文本),包含:
- PM访谈笔记
- 团队成员访谈笔记
- Tech Lead评审笔记
- EM整理的综合反馈/通用反馈
- 可选:之前的确认函PDF(用于对比章节)
输入格式完全自由——Claude必须智能解读。
Output
输出
One PDF per developer, matching the Somnio Acknowledgement template:
- Somnio logo top-right header, gradient background, transparent footer
- Header table: Somnier, Líder, Fecha, Rol del Somnier
- Puntos abordados (standard agenda — always the same)
- Resumen del encuentro: Seniority · Rendimiento actual · Comparación anterior (if applicable)
- Objetivos acordados: Oportunidad de mejora + Continuar trabajando en
- Aclaración o comentarios generales (optional)
每位开发者对应一份PDF,匹配Somnio确认函模板:
- 右上角页眉为Somnio标志,渐变背景,透明页脚
- 页眉表格:Somnier(开发者)、Líder(负责人)、Fecha(日期)、Rol del Somnier(开发者职级)
- Puntos abordados(标准议程——固定不变)
- Resumen del encuentro(会议总结):职级 · 当前绩效 · 往期对比(如有提供)
- Objetivos acordados(议定目标):改进机会 + 持续推进事项
- Aclaración o comentarios generales(说明或通用评论)(可选)
Batch Workflow (ALWAYS follow this order)
批量工作流(严格遵循以下顺序)
Step 1 — Read all attached files
步骤1 — 读取所有附加文件
When the EM attaches one or more ficha files, read all of them before asking anything.
For each file, extract as much as possible:
- Developer name (Somnier)
- EM / Líder name
- Role
- Current seniority level
- Target level
- All feedback content
当EM附加一个或多个评估表文件时,先读取所有文件后再提问。
针对每个文件,尽可能提取以下信息:
- 开发者姓名(Somnier)
- EM/负责人姓名
- 职级
- 当前职级水平
- 目标职级
- 所有反馈内容
Step 2 — Show confirmation table
步骤2 — 展示确认表格
Present a single summary table with one row per developer. Pre-fill every field Claude could infer. Mark fields Claude could NOT determine with .
[?]Example format:
Encontré X fichas. Antes de generar, confirmá o corregí los datos:
| # | Somnier | Líder | Fecha | Rol |
|---|---------|-------|-------|-----|
| 1 | Gonzalo Sosa | Ariel Martinez | [?] | Sr Flutter Developer |
| 2 | Juan Pérez | [?] | [?] | Sr Backend Engineer |
Completá los [?] y avisame si hay algo para corregir. Una vez confirmado, genero todos los PDFs.Date format rule: Fecha must be style (abbreviated English month, no leading zero, 4-digit year). Accept any format from the EM and normalise automatically.
Dec 19, 2025Do NOT generate any PDF until the EM explicitly confirms the table.
呈现一个汇总表格,每位开发者对应一行。预填充所有可推断的字段,无法确定的字段标记为。
[?]示例格式:
找到X份评估表。生成前请确认或修正以下数据:
| # | Somnier | Líder | Fecha | Rol |
|---|---------|-------|-------|-----|
| 1 | Gonzalo Sosa | Ariel Martinez | [?] | Sr Flutter Developer |
| 2 | Juan Pérez | [?] | [?] | Sr Backend Engineer |
请补充[?]部分的内容,如有需要可修正其他信息。确认后我将生成所有PDF。日期格式规则:Fecha必须为格式(英文月份缩写,无前导零,4位年份)。接收EM提供的任何格式并自动标准化。
Dec 19, 2025在EM明确确认表格前,不得生成任何PDF。
Step 3 — Generate all PDFs
步骤3 — 生成所有PDF
Once the EM confirms (even partially, e.g. "el resto está bien"), generate all PDFs sequentially.
For each dev:
- Build the content JSON from the ficha notes
- Run the generation script
- Report progress: "✅ 1/3 — Gonzalo Sosa.pdf generado"
Deliver all files at the end together.
一旦EM确认(即使是部分确认,例如“其余内容没问题”),按顺序生成所有PDF。
针对每位开发者:
- 根据评估表笔记构建内容JSON
- 运行生成脚本
- 报告进度:"✅ 1/3 — Gonzalo Sosa.pdf已生成"
最后统一交付所有文件。
Step 4 — Deliver
步骤4 — 交付
Present all generated PDFs at once using .
Name each file:
present_filesHandshake_Acknowledgement_Firstname_Lastname.pdf使用一次性呈现所有生成的PDF。
文件命名格式:
present_filesHandshake_Acknowledgement_Firstname_Lastname.pdfContent Synthesis Guide
内容整合指南
From the raw notes, synthesize per developer:
根据原始笔记,为每位开发者整合以下内容:
Rendimiento actual
当前绩效
4–7 bullet points highlighting strengths and achievements. Extract from PM/dev/TL feedback. Reformulate cleanly — do not copy raw notes verbatim.
4–7个要点,突出优势与成就。从PM/开发者/TL反馈中提取。需清晰重构——不得直接复制原始笔记。
Comparación reunión anterior
往期会议对比
Only if a previous Acknowledgement PDF was provided. For each prior objective, assign:
- — clearly achieved
Logrado - — partial
Logrado, pero hay que seguir trabajando - — started but not there yet
En progreso - — not yet addressed
Pendiente
If no previous eval: omit this section entirely.
仅当提供了之前的确认函PDF时才包含此部分。针对每个往期目标,标记:
- (已完成)——明确达成
Logrado - (已完成,但需持续推进)——部分达成
Logrado, pero hay que seguir trabajando - (进行中)——已启动但未完成
En progreso - (未启动)——尚未开展
Pendiente
如果没有往期评估:完全省略此章节。
Oportunidad de mejora
改进机会
3–6 specific, actionable improvement areas. Extract from TL/PM criticism. Frame positively and professionally.
3–6个具体、可执行的改进方向。从TL/PM的评价中提取。需以积极、专业的方式表述。
Continuar trabajando en
持续推进事项
Grouped by category. For Flutter devs, typical categories:
- Conocimientos Técnicos
- Conocimientos Avanzados y Especialización
- Mejora Continua y Arquitectura
- Liderazgo y Comunicación
- Innovación y Uso de Inteligencia Artificial
Adapt categories to the actual role and tech stack.
按类别分组。对于Flutter开发者,典型类别包括:
- 技术知识
- 高级知识与专业化
- 持续改进与架构
- 领导力与沟通
- 创新与人工智能应用
根据实际职级和技术栈调整类别。
Running the Generation Script
运行生成脚本
bash
python3 /path/to/handshake-acknowledgement/scripts/generate_pdf.py \
--somnier "FULL NAME" \
--lider "LEADER NAME" \
--fecha "Dec 19, 2025" \
--rol "Role Title" \
--output /mnt/user-data/outputs/Handshake_Acknowledgement_Firstname_Lastname.pdf \
--content /tmp/handshake_content_firstname.jsonThe script auto-normalises the date format. See for the full content JSON structure.
scripts/generate_pdf.pybash
python3 /path/to/handshake-acknowledgement/scripts/generate_pdf.py \
--somnier "FULL NAME" \
--lider "LEADER NAME" \
--fecha "Dec 19, 2025" \
--rol "Role Title" \
--output /mnt/user-data/outputs/Handshake_Acknowledgement_Firstname_Lastname.pdf \
--content /tmp/handshake_content_firstname.json脚本会自动标准化日期格式。完整的内容JSON结构请参见。
scripts/generate_pdf.pyImportant Notes
重要说明
- Language: Spanish throughout.
- Tone: Professional, constructive, empathetic — the document is read by the developer.
- Seniority levels at Somnio: Junior → Semi-Senior → Senior Medium → Senior Advance → Tech Lead
- Puntos abordados is always the same standard agenda — never change it.
- If a section has no content (no previous eval, no dev comments), omit it entirely.
- Fonts: Nunito 11pt for content, Plus Jakarta Sans 9pt for footer. If TTF files are not present in , Liberation Sans is used as fallback. To install proper fonts, place TTF files there (see script docstring).
assets/fonts/
- 语言:全程使用西班牙语。
- 语气:专业、建设性、共情——该文档将由开发者阅读。
- Somnio的职级体系:Junior → Semi-Senior → Senior Medium → Senior Advance → Tech Lead
- Puntos abordados始终为固定的标准议程——不得修改。
- 如果某章节无内容(无往期评估、无开发者评论),完全省略该章节。
- 字体:内容使用Nunito 11pt,页脚使用Plus Jakarta Sans 9pt。如果目录下没有对应的TTF文件,将使用Liberation Sans作为 fallback。如需安装正确字体,请将TTF文件放置于该目录(参见脚本文档字符串)。
assets/fonts/