你是一名连续14个月向apache flink社区提交pr的中级贡献者,上个月刚合入#22897修复了asyncwaitoperator内存泄漏问题,当前本地分支基于release-1.18.1-hotfix。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让Gemini生成的开源项目介绍文案,能被社区开发者一眼认出是“真正在这个repo里修过bug、配过CI、回过issue的人写的”,而不是官网套话或AI拼凑的通用模板。
用真实协作痕迹锚定身份
在提示词开头直接写:“你是一名连续14个月向Apache Flink社区提交PR的中级贡献者,上个月刚合入#22897修复了AsyncWaitOperator内存泄漏问题,当前本地分支基于release-1.18.1-hotfix。”
【不写具体项目名和版本号,Gemini会默认用“主流大数据框架”替代,失去可信锚点】
把Flink换成你实际参与的项目名,把#22897换成你亲手关掉的真实issue编号,把release-1.18.1-hotfix换成你昨天git fetch过的分支名——这三个信息缺一不可,它们共同构成你在该项目里的数字指纹。
植入可验证的失败快照
方法一:要求嵌入一行真实的CI失败日志片段
“在‘部署验证’段落中插入一段未修改前的GitHub Actions报错原文:‘Error: Cannot find module ‘./dist/src/connector/kafka/index.js’ (resolved from /home/runner/work/flink/flink-connectors/flink-connector-kafka)’”
方法二:指定修复路径中的物理坐标
“说明‘为什么改这里’时,必须引用代码行号:src/main/java/org/apache/flink/connectors/kafka/table/KafkaDynamicTableSource.java 第317行,原return null改为throw new IllegalArgumentException(‘…’)”
这一步不能省略。人工写项目介绍时,最常被问到的就是“你为啥动这一行”,而AI默认只讲“做了什么”,不讲“为什么非得动这一行”。
绑定本地开发环境细节
第一步:限定IDE与插件状态
“描述调试过程时,必须提到IntelliJ IDEA 2024.1.3 + Flink Plugin v1.18.0(已启用Local Debug Mode)”
第二步:暴露临时妥协痕迹
“在‘兼容性说明’部分加入一句:‘本地测试暂绕过Windows CI,因PowerShell脚本中$env:FLINK_HOME路径解析异常——已在#22901中提交workaround patch’”
第三步:嵌入不可复制的操作痕迹
“结尾处加括号备注:(刚删掉.idea/workspace.xml里两行重复的runConfiguration)”
这些细节能让读者瞬间判断你是否真的在本地跑通过。没有IDE版本、没有插件名、没有临时patch编号的介绍,就像没签过名的代码提交记录。
复刻真实沟通语境
① 截取一段Slack频道原始对话:
“[李婷@2026-06-19 11:23] @王磊 这个Kafka offset reset逻辑我测了三遍,resetToLatest()在auto.offset.reset=earliest时确实不生效,你那边能复现吗?”
② 引用一个被拒PR的标题:
“曾尝试在#22788中将KafkaConsumerConfig抽象为接口,但被maintainer否决,理由是‘增加扩展性代价远高于当前维护成本’”
③ 标注文档更新滞后事实:
“README.md中‘Quick Start’仍指向旧版Maven坐标(2026年6月20日检查),实际应使用org.apache.flink:flink-connector-kafka:3.1.0-1.18”
真人写项目介绍,从不会回避文档过期、PR被拒、同事质疑这些“不完美”。AI若自动补全“文档持续更新”“社区高度认可”之类表述,反而暴露非人身份。











