KFD · 房源整理与看房清单
为客户整理的精选房源
仅供示意,并非真实房源或已确认预约。
开始之前 · 心态建设
KFD 新人用 AI:5 个极简 Tips
不用先学会,先用起来。
不会没关系,问 AI 就会。
直接告诉它:“我是新手,请一步一步教我。”
让 AI 教你怎么用 AI。
不知道怎么问?就问它:“要完成这件事,我该怎么向你提问?”
不要追求一次问对,先开始问。
先问一句,再慢慢调整。
“从买家角度想。”“给我 3 个版本。”把真实工作交给 AI。
今天正在做什么,就让 AI 帮什么:客户回复、房源介绍、项目对比、看房准备、follow-up。
每天至少问 AI 3 次。
从今天的 3 件小事开始,边做边问,越用越顺手。
今天就开始:把一件正在做的工作交给 AI。
01 · 准备工具
使用你已有的 AI 工具
打开具有浏览网页及制作文件功能的 ChatGPT Work 或 Codex。第一次建议使用电脑。本任务不需要 GitHub 或 Vercel。
如果已跟过网站制作指南
使用同一个 ChatGPT 账号和电脑应用即可。本指南建议采用 ChatGPT Plus 或符合条件的更高方案,功能与用量因账号而异。
先测试一个链接
打开一套房源,请 AI 读取。若无法访问,改为提供房源文字、截图或获准使用的照片。贴上链接不代表 AI 一定能读取。
可选的电脑 Chrome 设置
如需 AI 使用你已打开的 Chrome 页面:在电脑应用选择 Settings → Computer Use,找到 Chrome 并按指示安装扩展。返回对话后选择 @Chrome(如有)。请检查网页权限。内置 @Browser 使用独立浏览器会话。
下载 ChatGPT ↗请打开这套房源:[贴上一个 PROPERTYGURU 房源链接]。告诉我页面实际显示的项目名称、叫价和面积。若无法读取,请直接说明,并告诉我需要提供哪些文字或截图。不要猜测。
02 · 贴上链接
收集想比较的房源链接
打开每套 PropertyGuru 房源页面,复制完整链接,在 AI 对话中每行贴一个。先从 3–5 套开始。
- 使用单套房源页面,不用搜索结果页面。
- 可以加入不同项目的房源。
- 如有自己的房源资料或照片,也可一并附上。
请只整理以下房源: [每行贴上一个 PROPERTYGURU 房源链接] 读取实际可访问的页面,依次编号 L01、L02 等。整理对比表:项目、地点、叫价(售价或月租)、房间、浴室、面积及单位、可租售状态、来源链接、待确认事项。同一项目内不同单位不要合并,疑似重复房源请标注让我核对。缺失资料写“待确认”。若链接无法读取,请向我索取房源文字或截图,不要虚构。先等我选择,再制作客户 PDF。
03 · 加入需求
告诉 AI 这份清单是给谁的
简单说明需求即可。用客户代号,不放入私人个人资料。
- 买卖或租赁、最高预算和首选地区。
- 房间数、最低面积及入住或交接时间。
- 区分必需条件与可商量的偏好。
- 可选:通勤目的地、看房日期及已确认的预约。
需求示例:租客 A 想找 D15/D16 的 2 房公寓,月租不超过 S$5,000,至少 700 sqft,下个月入住。预算和面积是必需条件,家具与靠近地铁为偏好。
请从对比表中,为 [客户代号] 整理候选清单。 需求:[买卖或租赁 / 预算 / 地区 / 房间 / 面积 / 时间]。 必需条件:[不可放宽条件]。偏好:[可商量条件]。 说明哪些符合、哪些不符合。未确认的条件不要写成已经满足。保留房源编号,列出待确认事项。由我选择最终房源。
04 · 核对与分享
选择房源,加入个人资料,再核对
选出要发给客户的房源编号,再请 AI 制作客户版。继续在同一个对话操作,可沿用已核对的资料。
请使用我选定的房源 [L01、L03、L04],为 [客户代号] 制作 [中文 / 英文] 个性化看房清单。 包括简洁对比、房源资料、准确的价格与面积单位、符合客户需求的原因及待确认事项。加入我的公开资料:[经纪姓名 / 业务电话 / CEA 注册号码]。只使用我提供或可访问且获准再使用的照片,确保与正确单位对应。不要移除水印或必要署名,缺少照片时可不放。 看房行程只使用我提供的已确认时间;否则标注“建议行程 — 预约未确认”。交通时间如有核实,注明来源与假设;否则写“待确认”。 制作适合手机阅读的 PDF,以及简短 WhatsApp 摘要。合作经纪联系方式、来源链接及内部备注另存为仅供经纪使用的记录。不要虚构缺失资料,也不要替我发送给客户。若环境不能制作 PDF,请提供完整排版文字并直接说明。
下载并打开 PDF 检查后,再由你发给客户。整理好的清单不代表房源仍然可租售。
选用 · 只需设置一次
两个技能,两种简单的开始方式
每位 KFD 成员在自己的账号安装一份。需要先找盘时用 pg-find;已有选定房源链接、想制作客户册时用 listing-cards。
pg-find
pg-find 检索近期房源,按小区分组并保留稳定编号。默认覆盖最近 7 个日历日,最多返回 20 个相关结果;等你选盘后才制卡。
listing-cards
贴上你已经选定的具体 listing 链接即可。listing-cards 可独立使用,无需先运行 pg-find;只制作这些房源,不自动找更多。
打开安装与使用指南
1. 在自己的账号安装两个技能
打开支持创建技能的 Work 或 Codex 对话。复制下面的完整指令,一次发送。内容包含两个 Skill 的全部原文,以及 listing-cards 的两个附录。等待确认两个技能都已实际安装。
阅读完整安装指令
Use @skill-creator to create and install TWO personal skills in my own account: pg-find and listing-cards. Complete both, one after the other. This step is setup only: do not search properties, open PropertyGuru or Google Maps, create client booklets, send messages or publish anything.
Use each complete SKILL.md below exactly as supplied. Preserve its name, description and entire body verbatim, including all Markdown and both listing-cards appendices. Do not rewrite, shorten, merge or add rules. The skills refer to each other by name; this is expected and is not a missing-file error. Do not modify any unrelated skills. If a skill of the same name already exists, back it up and preserve any separately saved personal settings before updating only my own copy.
Validate each skill and actually save/install both for future conversations. Show me both saved full texts for verification. Report actual installation status separately for each skill. Do not claim that a written explanation proves installation or that you have inspected my @ menu. If the environment cannot install skills, say so clearly and stop setup without pretending they are installed.
===== listing-cards / SKILL.md START =====
---
name: listing-cards
description: 将用户选定的房源 listing 链接、粘贴内容或附件制作成含小区总览、附近中文地铁站及距离、对应挂牌照片和逐套详情的可视化客户房源册,默认同时交付 PDF 和一张长图。用户给了通勤地点时,用 Google Maps 逐套算开车和公共交通时间并写进客户册。支持租盘和买盘,可独立使用,无需先搜索或生成比较表;也承接pg-find中介选盘后的制卡。用户说“这些listing做客户卡”“房源链接转卡片”,或者带客户看房前说“这几套约好了看房,做个册子发客户”时使用。不自动找更多房源、不联系中介。
---
# listing-cards:选定 listing → 客户版房源卡
本skill可以独立运行,无需安装或先运行pg-find。
## 识别选定范围
- 用户发来若干具体listing并要求“这些做客户卡”,视为已选定,按其顺序直接处理,不再要求重复选择。
- **看房行程场景**:用户说这几套已经约好看房(例如“周六下午看这四套”),同样视为已选定,按用户给的顺序排(通常就是看房顺序),可在总览表加一列「看房顺序」;用户给了看房时间就写进去,没给不编。
- 接受具体listing链接、粘贴的房源内容、用户提供的截图或文件;也接受上游已选编号及其来源映射。
- 只发链接、没有说明要做什么时,确认是否制卡;搜索结果页或项目汇总页不等于用户已选中全部房源,先列出基本候选与链接让用户选。
- 编号必须有现成映射,不能猜链接。选1套做1张,选5套做5张,不默认3套、不自动增加替代房源。
- 同一链接/ID重复可去重并说明;不同listing仅看起来相似不自行合并。
- 用户未提供客户需求时,写基于房源事实的亮点,不编造客户画像或“适合你的需求”。推荐理由需要时再询问关键偏好,不强制重做需求访谈。
- **开始制册前,如果还没有通勤地点,问一次**:「要顺便算每套到公司的开车和公共交通时间吗?给我上班地址或地铁站;回『不用』就直接做。」上游 pg-find 已经问过或已给了地点的不重复问。用户给了就按「通勤」一节逐套查;回「不用」或没回应就不算,照常制册,不因此等待。
## 客户版固定展示偏好
- **客户版和内部版是两套独立交付物。** 客户版默认是带真实照片的 PDF 加高清长图;内部版是给中介核对的来源记录。交付时必须明确标注“给客户看的”和“给你/内部看的”,不能混在一个文件里。
- **沿用既有客户册视觉,不另起模板。** 用户给过旧册、参考图或同系列样例时,以其页面方向、字体、配色、信息层级和照片网格为基准。本小班课默认视觉为 A4 横版、白底、深绿色标题、低饱和绿色辅助色、系统无衬线字体(优先 PingFang SC),总览页加逐套照片详情;不要擅自换成 A4 竖版、深蓝大色块封面或宋体/衬线字体。
- 客户 PDF 优先用 HTML/CSS 配合 Chromium/Playwright 打印,PDF 与长图使用同一份页面源。不要用 ReportLab 的 `STSong-Light` 等 CID 宋体直接绘制客户版正文;这种方式只适合内部表格,容易让中文笔画显得细、飘或倾斜。制作时优先复用 本文末尾的「附录二:样式表」。
- 地图页标题统一使用“房源位置总览”。
- 客户册页脚只保留页码。不显示“图片类别以原挂牌为准”“照片不代表家具交付清单”“家具是否包含、实际交付状态须确认”及“版式模拟 · 资料查看日期 · 非已确认看房安排;挂牌状态以最新确认为准”等通用说明,也不换一种措辞补回。资料日期及来源依据保存在内部记录。地图距离口径与非实际单位参考图等具体事实标注仍在对应位置准确表达。
- 不设置“看房前确认”区块,也不把该区块改名后重复放回客户册。内部核实和跟进事项保存在内部记录;必要的图片真实性说明或具体字段中的“待确认”仍随对应信息显示。
- 客户版不展示提醒、跟进建议、核实备注、排除原因、来源网站名称、PropertyGuru链接、listing ID、挂牌中介资料、查看日期,也不展示 Listed/Updated/Re-listed 等发布或更新日期。以上内容只放内部记录。
- 客户版文案要像中介整理好的自有房源清单,不写“页面显示”“网站写”“广告提到”“挂牌仅提供”“从PropertyGuru取得”等抓取痕迹。事实亮点统一用“房源特点”等自然标题;来源依据只放内部记录。
- 若来源偏好或要求两年租期,而客户目标是一年,客户版写“房东prefer两年,1年需商议”;不要写成红色警告、“不符合条件”或内部提醒。内部记录保留来源原文、准确要求及需要商议的事项。
- 最终交付 PDF 和一张纵向拼接的长图,两样默认都给。总览表左侧“小区”和“附近地铁”按相同小区合并单元格,每条房源的编号、月租、面积/房卫、是否有家具、最早入住时间、页码保持独立;页码单列。
- 客户版不展示完整街道地址,内部完整保存用于核实与定位。展示700米内的中文地铁站及米数,例如“丹戎加东地铁站 约420米”。只有同址或相同交通条件才共用距离;同小区不同楼栋须分别核算,不能强行合并地铁信息。
- 距离口径必须统一:有核实步行路线才写步行距离;使用楼栋和车站坐标时按直线距离计算,原始距离≤700米才纳入,并在表下注明“约直线距离,非步行距离”。不要把700米外房源资料中的距离挪入,也不能把缺失写成不存在。
- 表头使用“家具”“最早入住时间”;家具一栏按已核实资料写 Fully furnished / Partially furnished / Unfurnished,资料没写才写待确认,不加任何附注。客户版不出现“广告”“挂牌”“页面显示”等来源式措辞,来源依据保存在内部记录,必要的不确定性仍用“待确认”表达。
- 普通照片下不重复写“对应挂牌照片 · 原图署名 / 水印保留”。真实图片本身的署名/水印仍完整保留;非实际单位参考图、虚拟布置等影响理解的信息必须标明。
## 读取和核实
用当前可用且允许的浏览器或网页读取工具打开用户给出的来源;只使用读到的字段。不要把其他推荐房源或项目介绍中的泛化信息当成该单位的事实。
需要整理:项目、完整街道地址(含楼栋门牌及已知邮编,不主动加入单位房号)、区域、租买、价格及币种/单位、面积及单位、房数卫数、完工年份/楼龄、地契(买盘)、家具/租期(租盘)、交通、可入住/交房信息、关键限制、来源与查看日期。
- 价格须区分总价与月租、起价与议价;买盘psf可按已读总价/面积计算,标明计算口径。未知字段显示“待确认”或省略非必要项。
- 不从发布日期推算入住日期;已有报价不等于已成交;全家具不等于接受任何租期。
- 含露台等面积不能全部描述为室内面积;交通信息保持来源口径,冲突写待核实,不随意择优。
- 与用户硬条件冲突、listing失效或关键内容无法读取时,说明具体受影响项,确认保留带说明的卡片、跳过或补充资料;不能用其他listing替换。可继续处理其余可读取的选定房源。
- 登录或验证码阻挡房源正文时,告诉用户可以在浏览器完成后继续,或提供该listing内容/截图。不要反复重试或绕过限制。仅中介电话受限不会妨碍客户卡,因为客户卡不需要该电话。
- 用户提供模拟数据时,每张卡醒目标注“模拟练习,不是真实房源,不可发送客户”。
### 通勤(用户或上游给了通勤地点时才做)
- 对每套选定房源,用浏览器插件在用户 Chrome 里打开 Google Maps 路线页,起点用房源完整地址(内部保存的楼栋门牌,没有就用项目名加邮编),终点用通勤地点,查两次:
- 开车:`https://www.google.com/maps/dir/?api=1&origin={起点}&destination={终点}&travelmode=driving`,读第一条路线的时长和距离。
- 公共交通:同一地址把 `travelmode=transit`,读第一条方案:总时长、步行到站约几分钟、乘哪条线(写线路名或编号)、在哪站换乘、哪站下车、下车后步行约几分钟。
- 页面能设出发时间就设下一个工作日早上 8:30,并在内部记录注明;设不了就按查询时的路况,客户版写「按查询时路况,早高峰可能更长」。
- **步行段要交叉核对。** Google Maps 按门牌地址定位到路边,常常绕路,步行到地铁站的时间会比实际从小区最近出入口走多出一倍。每套把 Google 路线里「步行到第一站」的时间,和 PropertyGuru 挂牌页显示的到同一站距离与步行时间比一下:
- 差不多(相差不到 3 分钟或 200 米):直接用 Google 的总时长。
- Google 明显更长:总时长写成区间,下限 = Google 总时长 − 步行差值,上限 = Google 总时长,例如「约 29–35 分钟」;后面跟一句「小区离达科达站约 390 米,从最近出入口走更快」。内部记录写明两边的数字。
- PG 没显示距离:用 Google,不猜。
- 不要自己改短 Google 的车程;开车时间只按 Google。
- 同一楼栋多套共用一次查询;不同楼栋分别查。每次查询的 URL、时间、读到的原文存进内部来源记录。
- 读不到就写「待确认」,不用直线距离、不用别的房源的数据、不凭经验估。Google Maps 弹验证或要登录时停下来让用户处理,不反复重试。
- 通勤地点是客户自己的信息,客户版可以写简称(如「到 Raffles Place」),不写客户公司全名之外的任何个人资料。
## 制作带照片的客户房源册
具体版式与字段参考本文末尾的「附录一:客户房源册设计」,样式可复用「附录二:样式表」。客户版是统一的一份选盘资料,不是互不关联的纯文字卡片。
### 第一部分:本次小区总览
- 统计所选listing数量和不同小区数量,按小区分组;一个小区多套只建一个小区总览项,列出对应房源编号及附近地铁,完整地址仅内部保存,不能把每条listing当一个小区。
- 每个小区展示名称、附近700米内地铁站及距离、选中几套、真实挂牌照片缩略图、该组价格或价格范围;完整地址保存在内部。不同楼栋交通距离不同时分别标明。
- **买盘默认加该小区的 site plan(总平面图)**:来源依次找 PropertyGuru 的项目页、listing 相册里标 site plan 的图、开发商官网;放在小区区块里,和缩略图一样大小,标「Site plan」并保留原图署名。找不到就不放、不编、不用别的项目的图。租盘默认不放,用户要求才加。
- 接着给选定房源的紧凑概览:稳定编号、小区、附近地铁、价格、面积、房卫、租买对应的重要状态;有通勤数据时加一列「到{通勤地点简称}」,写「车 25 分 / 公交 40 分」这样的短格式。该概览是客户册的一部分,不是另行强制导出的内部CSV。
- 网页点击小区/编号可跳转详情。交通速览按来源列出MRT及距离;有核实的坐标才能制作点位地图,不能凭猜测绘制空间位置。缺坐标时可用地址地图检索链接,不把链接当作已核实定位。
### 多房源与位置地图
- 10条或更多listing仍是一份资料:静态地图/小区索引、紧凑概览、按小区组织的逐套照片详情。PDF使用固定编号和页码对应;优先在一张地图中通过标签避让排清,不默认增加密集区域放大页;不能依赖缩放或弹窗。只有明确要求网页时才使用折叠、展开等交互。保留上游选定编号,不为凑数量补房源。使用虚构模拟数据时明确标识模拟;真实房源的版式样例不增加用户已删除的通用页脚说明。
- 用户要求地图时,展示选中房源楼栋和周边MRT。新加坡地址优先通过OneMap按完整门牌、街道核实坐标;保存查询与匹配结果。多个结果须核对项目名和邮编,不能任取第一项。缓存结果,遇限流退避,不能密集重试。
- 分开统计listing、小区和楼栋点位;同址listing共用一个点,在图例/索引列出每个编号和详情页码;网页版本才使用弹窗跳转。同小区不同楼栋分别标点。不同listing疑似同套时保留记录并提示核对,不声称都是不同单位。
- MRT标注站名和线路编号,核对车站坐标;不能把车站中心称为出入口。说明房源点定位到楼栋,非具体房号。附近车站集合不冒充完整轨道网络,未经核实的直线距离不写成步行距离或时长。
- 房源点与MRT用不同形状和文字区分;静态地图直接使用经核实的中文站名,并写全“地铁站”及线路编号,例如“马林百列地铁站 · TE26”,不能只放站名或MRT缩写。地铁标签使用醒目底框,与房源编号区分。标记与标签不可遮挡;优先使用引线避让,并说明引线不是路线,不默认另加局部放大页。同址多条使用数量或编号映射;交互功能只用于用户明确要求的网页。
- 保留底图及坐标来源署名。照片内嵌不代表地图可离线使用,在线底图依赖须告知。PDF要地图时另做经过检查的静态地图页,不能打印空白交互容器。
### 第二部分:逐套照片与详情
同小区多套放在一起,仍保留各listing的编号、不同照片与价格。每套包含:
- 项目名、附近700米内地铁及距离;内部保留完整地址,不在客户版展示地址或具体房号。
- 清楚标注SGD总价或月租、面积、房数卫数;sqft转sqm须标约数。
- 已知完工年份/楼龄、地契、交通、单位配置、小区设施及关键待确认事项。
- 有通勤地点时加一行「通勤 · 到{简称}」:开车约 X 分钟(Y km);公共交通约 Z 分钟:步行 a 分钟到 A 站 → 乘 B 线到 C 站(换乘 D 线到 E 站)→ 步行 b 分钟。一行写完,不画地图。后面跟一句「按查询时路况」或「按工作日 8:30 出发」。
- 根据用户需求写1–2句取舍与亮点,没有需求则写事实亮点。
- 资料查看日期保存在内部来源记录;客户册页脚仅保留页码。
**租盘突出:** 家具、租期、可入住时间。家具一栏**只按已核实资料写**:Fully furnished / Partially furnished / Unfurnished,资料没写才写「待确认」;不要加「交付清单待确认」「以实际交付为准」「照片不代表交付」这类附注,客户版不解释。来源描述里单独出现的条件或亮点(例如新装修、带洗碗机、可养宠物、最短租期、含管理费),可整理成「房源特点:」1–3 条自然文案,不写“挂牌提到”或来源网站名称。不能只看照片有家具就判定fully furnished。来源若偏好或要求两年、客户目标为一年,按上面的固定口径写“房东prefer两年,1年需商议”。
**买盘突出:** 总价、psf、地契、完工年份、现有租约/交房安排,以及extension三态:
1. 广告明确需要:写明时长;没写多久就标时长待确认。
2. 广告明确无需:只有原文明确no extension等含义时使用。
3. 广告未说明:不能因没写extension、房源空置或写自住就推断不需要。
在内部来源记录保留extension依据的短句及链接,客户版用易懂状态呈现,不把广告表述升级为卖方确认。
### 照片是默认必需内容
- 从每个选定listing的可见相册读取实际照片链接,并通过允许的下载能力保存真实图片;按listing ID分目录或命名。不是只给图片链接,也不是用其他单位或图库照片代替。
- 客户版必须有对应房源的真实照片。若某套完全无法取得可用照片,只能交付明确标注“照片待补”的草稿或暂时移出客户版,不能把纯文字页面当成最终客户版。
- 每套默认用紧凑的三列两排展示6张不重复图片,覆盖客厅、卧室、厨房;**户型图占其中一格**(标「户型图」),其余格放照片。保留原图比例及水印,缩小间距,不靠裁图凑版面。同一listing相册的真实小区外观或设施照片可以补充,并准确标明类别;不能把其他单位照片混入。不足6张可用图时按实际数量展示,不重复、不编造;更多照片按可读性决定是否加页。
- **有户型图就收,但不单独成页**:逐条检查选定listing的Floor Plan栏目、相册及用户附件,不能只看前6张照片或凭列表页判断。找到对应户型图就下载,作为该套图片格里的一张嵌入并标「户型图」(复式上下层各占一格,最多两格),和照片一样大小;客户想细看自己放大,不另加户型图页,不因此增加页数。保留方向、尺寸、图例、比例及原有署名水印,不重绘、不套用其他户型。未找到时只在内部记录写“未发现户型图”,客户版不放空白格,也不写“没有户型图”。
- 户型图带电话或二维码时,优先寻找同一房源、同一户型的无联系方式版本;找不到时保留原图并向用户说明,不仅因电话或二维码静默漏掉必收户型图,也不声称客户册完全不含原图联系方式。普通房源照片仍按下方规则选择。
- 单位照片、小区设施、景观、户型图分清,配准确说明。来源声明虚拟布置/整理的,保持说明,不称为原状照片。若广告声明图片仅供参考、非实际单位,每张相应图片显著标注,并提示需补实际单位照片。
- 保留原图比例、署名及平台水印,不重绘、抹水印或靠裁切隐藏署名。除按上条处理的必收户型图外,优先不用带电话/二维码的照片;发现时换同一listing的其他照片,并记录排除原因。若只有这类照片,告知用户并请求可用图片,不声称已做出不含联系方式的完整客户册。
- 原图仅有作者/公司水印时保留并明确说明,不能同时声称图片已剥除全部中介信息。客户版排版文字仍不添加挂牌中介姓名、公司、电话、邮箱、佣金和内部跟进备注。
- 照片读取受阻时说明受影响listing,请用户完成访问或提供对应图片;可以给明确标记“照片待补”的草稿,不能当成最终完整成果。
- 照片须实际嵌入PDF/图片;若用户另要HTML,也应内嵌照片使单个文件可离线打开,或把相对路径图片一起打包。不得依赖容易失效的远程热链。
### 输出和来源
最终默认交付客户版完整 PDF、把全部页面按顺序纵向拼成的一张高清长图(手机能直接滑着看),以及一份分开的内部来源记录。用户只要其中一种客户格式时按要求给。不默认出逐页图片包,不出 CSV 比较表。不要求客户使用互动网页。
**长图必须高清、放大不糊:**
- 按 2 倍像素密度渲染:宽 2000 px 左右(最低 1600 px),不要用 1 倍截图再放大。
- 存 PNG;要存 JPG 时质量不低于 92。照片和户型图按原图尺寸嵌入,不先缩小再放大。
- 文字、线条放大到 200% 仍然清晰。渲染完放大看一遍标题、小字和户型图房间文字,糊的重出。
- 一张长图高度超过 20000 px 时,按区块切成 2–3 张(总览一张、每几套一张),编号 `_长图1`、`_长图2`,不要硬塞成一张手机打不开的图。
- 交付时提醒用户:WhatsApp 直接发图片会压缩,要保清晰就用「文件/文档」方式发,或发 PDF。地图、小区总览、关键资料与每套照片全部直接呈现,无需点击、展开或联网。HTML仅在用户明确要求网页时作为交付格式,否则只可作为制作中间件。按下方文件命名规则命名,保存到用户指定目录或当前工作区的交付目录。不默认导出内部比较表CSV。
### 文件命名
- 文件名简短、清楚。优先使用当前聊天中已明确的筛选条件,沿用用户熟悉的写法,例如 `2b2b_租房房源册.pdf`、`2b2b_买房房源册.pdf`;地区确实是本次筛选条件且有助区分时才加短地区名。不把全部条件堆进文件名。
- 只有房源数据共同具有某个特点,并不代表用户指定了该筛选条件;不从旧任务、推荐项或猜测中补条件。条件不明确或未提及时,用用户所在时区的生成当天日期,例如 `2026-10-02_房源册.pdf`;日期不能沿用模板或旧资料日期。无需为命名额外询问用户。
- PDF 和长图共用同一个简短主名,例如 `2b2b_租房房源册.pdf`、`2b2b_租房房源册_长图.jpg`。用户指定文件名时按用户要求。
- 客户文件名不添加“10条listing”“静态客户”“地图样例”“最终版”等制作说明,不默认累加版本号、日期和数量。来源与核实日期保存在内部记录,不必全部写入文件名。
用户自己的署名和联系方式仅在其明确要求时加入。原始listing链接、PropertyGuru链接及其他来源链接只放内部来源记录,客户版不放;地址地图链接可以放客户册。
内部保留:编号到listing/附件的映射、listing ID、完整地址、发布/更新/重发日期、查看日期、原始链接、挂牌中介资料、关键字段依据、租期原文与商议事项、提醒与跟进项、户型图是否找到、原图URL与本地文件、照片排除原因、无法核实项、每次通勤查询的 URL、时间和读到的原文。单独保存来源文件,不把内部信息嵌进客户版HTML的隐藏字段或注释。
## 版式硬规则(做 HTML 中间件时遵守,PDF 和长图都适用)
- 所有文字块高度随内容,不用固定高度、不用绝对定位叠放文字;小区标题行、总览表、逐套区块之间用固定间距隔开,表格行高随内容。
- 每个区块整体不跨页断开:小区总览区块、每套的图片格加详情各自作为一个单元,放不下就整体移到下一页,不让下一块压在上一块上。
- 文字宽度超出容器时换行,不裁切、不缩字到看不清;长项目名、长地铁站名、长「挂牌提到」都要换行显示。
- 图片格固定三列两排,每格等高,图片按比例缩放居中,不溢出格子。
- 生成后把 PDF 每一页渲染成图逐页看,长图也整张看:标题被下一块盖住、文字被裁掉、图片溢出页边、表格压到下文,任一出现就改版式重出,改好再交付,不交付有遮挡的版本。
## 检查与交付
- 对照来源核对价格、单位、面积、房卫、家具、租期、extension、日期和街道地址。核对小区分组数量、各组listing数量及编号映射对应用户选择。
- 有通勤行时,逐套核对数字来自实际的 Google Maps 查询记录,起点终点没有写反,没有把直线距离或估算写成通勤时间。
- 检查客户版没有PropertyGuru或其他来源链接、listing ID、发布/更新日期、挂牌中介资料、内部提醒和跟进项,也没有“页面显示/挂牌提到/网站来源”等抓取式措辞;逐张检查图片是否含电话/二维码,并说明保留的原图署名/水印。只有实际检查完成才说“已检查”。CSS中的`@media`不属于联系方式。
- 逐条核对有户型图的房源,户型图在图片格里、标了「户型图」、没有单独成页。
- PDF 和长图都须渲染检查:照片全部加载、比例正确、文字可读,无截断、无遮挡、无重叠;长图页与页之间顺序正确、无空白断层,宽度适合手机阅读。检查过才说「已检查」,发现遮挡先改再交付。仅明确要求网页时检查图片放大、小区跳转、手机宽度与打印版。
- 将总览页和至少一套详情页与既有样例并排检查:页面方向、无衬线字体、标题粗细、照片网格和左右栏比例应保持同一视觉体系;中文笔画发飘、像斜体或明显偏细时先修正字体与渲染方式,不把它当成正常差异交付。
- 有地图时检查坐标数量、同址分组、底图、中文地铁标签和房源编号映射。仅网页交付检查弹窗跳转、MRT开关和恢复全图,按钮函数避免与原生DOM属性重名。
- 提供客户版与内部来源记录的独立链接,提醒用户逐张核对后再使用;说明缺失项,不把页面读取当成挂牌方确认。
- 不发送给客户、不联系中介、不自动发布到网站。
---
## 附录一:客户房源册设计
先由中介选定listing,再制作统一的客户版PDF和高清长图;也支持用户直接提供选定链接。另存一份仅供中介核对的内部来源记录。具体文案及文件命名以SKILL.md的固定展示偏好和文件命名规则为准。
## 页面与信息层级
默认视觉基线沿用小班课既有样例:A4 横版、白底、深绿色无衬线标题、低饱和绿色辅助色;总览页在前,逐套详情采用左侧照片网格、右侧关键资料。用户给过旧册或参考图时优先匹配,不擅自改成竖版、深色大封面或宋体风格。客户版优先由HTML/CSS打印成PDF,再由同一PDF生成长图,确保两种交付的字体和版式一致。
1. 地图页标题为“房源位置总览”。呈现本次房源楼栋位置和附近地铁,地铁用已核实的中文站名+“地铁站”+线路编号。房源与地铁使用不同标记,标签避让,不默认添加密集区域放大图。
2. 紧凑总览表:小区|附近地铁|编号|月租|面积/房卫|是否有家具|最早入住时间|页码。买盘改用总价及交房/extension等对应字段。同小区在左侧合并单元格,单套字段独立;不同楼栋交通条件不同时分别展示。页码单列。
3. 每套详情:项目名、附近地铁、醒目价格、房卫面积;紧凑展示对应房源的真实照片和关键资料。每套尽量使用6张不重复照片,不足则按实际数量自适应排版,不放空白占位、不重复凑数。买盘和租盘都逐条检查Floor Plan栏目、完整相册及用户附件;找到对应户型图就放进同一图片格并标「户型图」,没有就只在内部记录,不在客户版写“没有户型图”,也不另加户型图页。
4. 租盘突出全家具/部分家具/无家具/待确认、租期、最早入住时间。若房东偏好或要求两年而客户目标为一年,客户版写“房东prefer两年,1年需商议”,准确依据留在内部记录。买盘突出总价、psf、地契、完工年份、现有租约/交房安排、extension明确需要/明确无需/未说明;时长只按已读取来源填写。
## 地图与地址
完整街道地址仅内部保存,用于核实楼栋坐标;客户版不展示完整地址。客户显示700米内地铁站及距离,例如“丹戎加东地铁站 约420米”。同址listing共用一个点,索引列出对应编号;同小区不同楼栋分别定位。
优先用OneMap核实完整门牌与街道,缓存匹配结果。使用车站坐标时不称为出口。坐标计算的距离标注“约直线距离,非步行距离”,按原始距离≤700米筛选,不以四舍五入后的值判断。地图保留底图与坐标来源署名,引线仅供标签定位,不表示步行路线。
## 图片与文案
照片从对应listing的可见相册下载并实际嵌入PDF/图片,客户最终版不能只有文字。同一listing相册中的小区外观/设施可以补充,并准确标注类别。原来源为参考图、非实际单位或虚拟布置的,保留具体标注。普通照片下不加重复来源/水印说明;水印本身完整保留。普通照片带电话/二维码时优先换成同listing的其他可用图;必收户型图按SKILL.md的专门规则处理,不静默排除。
客户版写成中介整理好的房源清单,不使用“广告”“挂牌”“页面显示”“网站来源”等抓取式措辞,不设置“看房前确认”区块,也不改名后重新加入。页脚仅保留页码;不展示版式模拟、资料查看日期、发布/更新日期、PropertyGuru链接、listing ID、挂牌中介资料、内部提醒、非已确认看房安排、图片类别/家具交付状态等说明。来源、查看日期、完整地址、跟进事项及缺少户型图等情况另存内部记录。具体核心字段不确定时可在对应位置写“待确认”。
## 客户版与内部版
- 给客户:PDF和高清长图,带真实照片;只呈现整理后的房源事实、客观取舍及必要的核心待确认字段。
- 给中介:独立来源记录,保留原始链接、listing ID、完整地址、发布日期/更新日期、挂牌中介资料、提醒、冲突、租期原文、需商议事项、户型图检查结果及图片来源。
- 交付时明确标注两类文件,不能把内部记录作为客户附件,也不能把内部字段藏进客户版HTML的注释或隐藏元素。
## 格式与可选网页
默认横版A4 PDF及高清长图,白底、深绿色系统无衬线标题、低饱和绿色正文,照片和地图离线可读,不依赖点击、展开或联网。优先复用 下方附录二样式表,字体优先使用 `-apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif`;不要用 `STSong-Light` 等宋体直接绘制客户版。静态版优先遵循上述布局。
仅用户明确要求网页时才增加小区锚点、图片放大和交互地图;手机详情改竖排,宽表可滚动。交互不改变客户版的地址、文案、照片数量及命名规则。网页须检查实际图片、地图加载与交互;不可将在线地图直接称为已完成的离线PDF地图。
## 附录二:样式表(customer-book.css,制作 HTML 中间件时直接复用)
```css
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#eceee9;color:#193b37;font:15px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;font-synthesis:none;text-rendering:geometricPrecision}main{max-width:1180px;margin:auto;padding:32px 28px}.page{background:#fff;padding:42px;margin:0 0 28px;border-radius:20px;box-shadow:0 5px 25px #233b3010}.eyebrow{font-size:11px;letter-spacing:.17em;color:#71847c;font-weight:700}.heading{display:flex;justify-content:space-between;align-items:start;gap:20px}h1{font-size:38px;line-height:1.2;margin:12px 0}h2{font-size:30px;line-height:1.2;margin:10px 0}h3{font-size:18px;margin:3px 0}p{margin:10px 0}.muted{color:#6e8078}.small{font-size:12px}.pill{background:#edf2ee;border-radius:30px;padding:5px 13px;font-size:12px;white-space:nowrap}.criteria{border-left:3px solid #bb9c69;padding:8px 14px;color:#6c7367;margin:22px 0}.communities{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:24px 0}.community{border:1px solid #dce5df;border-radius:12px;overflow:hidden;text-decoration:none;color:inherit}.community img{width:100%;height:162px;object-fit:contain;background:#f3f4f1;display:block}.community .inner{padding:17px}.code{color:#998154;font-size:12px;font-weight:700}.address{font-size:14px;color:#60786d}.overview{width:100%;border-collapse:collapse;font-size:13px}.overview th{font-size:11px;color:#6b8176;letter-spacing:.03em;text-align:left;border-bottom:2px solid #25493d;padding:12px 10px}.overview td{padding:15px 10px;border-bottom:1px solid #e3e9e3;vertical-align:top}.overview a{color:#24523f;font-weight:700;text-decoration:none}.good{color:#226447;background:#e9f4eb}.warn{color:#986620;background:#fbf1df}.neutral{color:#62706e;background:#edf0ef}.badge{display:inline-block;padding:4px 9px;border-radius:5px;font-size:12px}.transit{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px 0}.transit>div{padding:15px;background:#f4f6f3;border-radius:10px;font-size:12px}.transit b{display:block;font-size:14px}.transit a{color:#2b674e}.unit{scroll-margin:20px}.unit-header{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #dce5df;padding-bottom:21px;margin-bottom:26px}.price{font-size:31px;font-weight:700;white-space:nowrap}.price small{font-size:13px;font-weight:400}.unit-body{display:grid;grid-template-columns:1.3fr 1fr;gap:28px}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start}.gallery figure{margin:0;background:#f4f4ef;border-radius:9px;overflow:hidden}.gallery img{display:block;width:100%;height:188px;object-fit:contain;cursor:zoom-in}.gallery figcaption{font-size:11px;padding:5px 10px;color:#708075}.gallery.three figure:first-child{grid-column:1/-1}.gallery.three figure:first-child img{height:250px}.specs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding-bottom:19px;border-bottom:1px solid #dce5df}.specs strong{font-size:24px;display:block}.specs span{font-size:12px;color:#708075}.status{padding:17px;margin:17px 0;border-radius:10px}.status strong{display:block;font-size:19px;margin:3px 0}.facts{display:grid;grid-template-columns:78px 1fr;gap:10px;font-size:13px;margin:16px 0}.facts dt{color:#7b8a81}.facts dd{margin:0}.note{font-size:13px;background:#f9f5ed;padding:14px;border-left:3px solid #baa170;margin:18px 0}.amenities{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid #dce5df;margin-top:22px;padding-top:17px;font-size:12px}.footer{font-size:10px;color:#819088;margin-top:24px;display:flex;justify-content:space-between;gap:25px}.back{font-size:12px;color:#36604e}button{border:1px solid #b4c7b9;color:#204734;background:#fff;border-radius:7px;padding:9px 13px;cursor:pointer}dialog{border:0;border-radius:12px;max-width:94vw;max-height:95vh;padding:12px}dialog::backdrop{background:#13251bd9}dialog img{max-width:87vw;max-height:80vh;display:block;object-fit:contain}dialog button{display:block;margin:10px 0 0 auto}.footnote{font-size:11px;color:#7a877e;margin-top:20px}@media(max-width:760px){main{padding:14px}.page{padding:25px 19px}.communities,.transit{grid-template-columns:1fr}.community{display:grid;grid-template-columns:110px 1fr}.community img{height:100%;min-height:145px}.unit-body{grid-template-columns:1fr}.unit-header{display:block}.price{margin-top:16px;font-size:28px}.table-wrap{overflow-x:auto}.overview{min-width:630px}h1{font-size:29px}h2{font-size:25px}.gallery img{height:160px}.heading{display:block}.pill{display:inline-block;margin-top:12px}.footer{display:block}}@media print{@page{size:A4 landscape;margin:0}body{background:white}main{padding:0;max-width:none}.page{box-shadow:none;border-radius:0;break-after:page;margin:0}.page:last-child{break-after:auto}button,.back,dialog{display:none}.unit-body{grid-template-columns:1.3fr 1fr}.communities,.transit{grid-template-columns:repeat(3,1fr)}.gallery img{height:160px}.overview{min-width:0}}
```
===== listing-cards / SKILL.md END =====
===== pg-find / SKILL.md START =====
---
name: pg-find
description: PropertyGuru 找盘;用户未指定数量时,默认检索最近7天发布、更新或重发且符合条件的活跃 listing,自动跨页读到时间边界,按页面日期由新到旧最多返回20个;不足20个就只返回实际相关结果并如实说明最近一周的数量。候选保留稳定编号和原始 listing 链接,中介选盘后才生成客户卡。适用于按租买、地段、房型、预算、发布时间和通勤筛选房源。不发消息、不联系中介、不出 CSV 比较表。用户已有 listing 链接并要求直接制卡时用 listing-cards。
---
# pg-find:找盘 → 候选概览 → 中介选盘 → 客户卡
**搜索结果首先用于让中介选盘。默认只展示大概数据和 listing 链接,不立即交付比较表加客户卡。**
## 收条件
用户一次说全就不用问;缺少影响检索的关键条件时一次问清:
- 租或买、地区/MRT/项目、预算、房数卫数、最低面积。
- 租:入住时间;买:自住或投资、期望交房时间。
- 分清硬条件与偏好,如家具、楼龄、交通、楼层;未知项标待确认,不擅自放宽。
- **通勤地点(可选)**:客户上班地点或常去的地方,地址、大厦名或地铁站都行。用户没给时,在追问缺失条件的同一条消息里顺带问一句,标明可选,例如「如果有客户的上班地点(地址或地铁站),我可以顺便算每套的开车和公共交通时间,没有就跳过」。只问一次,不答就跳过。给了就记下来。通勤只是偏好时,候选概览先按区域与交通条件初筛,选盘后再由 listing-cards 用 Google Maps 逐套核算;通勤是硬条件或用户明确要求概览阶段比较时,只对最近7天的预选候选分批核算,不对所有原始结果逐套开地图。
- 客户需求不包含姓名、电话、证件等个人资料。
若用户直接给出具体 listing 并明确要求制卡,这些 listing 已是其选择;转入另一个单独安装的 Skill「listing-cards」,无需重新搜索或再要求选一次。
## 搜索与读取
使用浏览器工具操作用户 Chrome 的 PropertyGuru 页面;有指定标签页时使用该页,用户没指定时用 Chrome 里已打开的 PropertyGuru 标签页,没有就新开一个。**用户没有指定数量、发布时间范围、页数和是否做卡时,默认只看最近7天:以用户所在时区为准,包含搜索当天及前6个日历日。自动跨页读完这个时间窗口内符合条件且仍可打开的 listing,按页面显示日期由新到旧最多返回20个,然后停下来等用户选编号,不做卡。最近7天不足20个相关结果时只返回实际数量,不用更早或不相关的房源补足。** 同一组筛选条件下连续读取后续结果页属于这次找盘任务的正常只读步骤,不需要逐页询问用户。
- 优先把结果排序切到页面提供的最新发布、最新挂牌或最相关的新鲜度排序,并确认排序确实生效。日期字段可能写“Listed”“Updated”“Re-listed”等;逐条保留页面原标签,不把更新或重发改写成首次发布。
- 从第1页开始自动读取后续页,直到完整覆盖最近7天:在按日期由新到旧的结果中,读到早于截止日且后续结果也没有回到窗口内时停止;推荐项、置顶项或广告可能打乱顺序,不能只因单条旧记录就提前停止。结果用尽、遇到验证码或页面无法继续时也停止。
- “相关”指没有明显违反硬条件,且关键偏好、入住时间、通勤或价格没有已知的重大冲突。关键字段未显示但没有冲突时可列为“待确认”,并优先级低于信息完整的候选。
- 跨页过程中保留所有已观察到的 listing ID、规范链接、页面日期及标签、相关状态和排除原因;同一 listing 不重复计数。只有完整读到时间边界或结果用尽时,才把去重后的数量写成“最近7天共有 N 个相关活跃 listing”;若被验证码、访问限制或页面故障中断,只能写“已观察到至少 N 个”,不能假称完整总数。
- 不为凑到20个而放宽硬条件、加入低相关结果或使用早于7天的记录。最近7天实际只有6个相关 listing 就只交付6个,并明确写“最近7天只有6个相关活跃 listing”。除非用户明确要求扩大时间范围、近似备选或询问可放宽项,否则不展示不符合条件的房源。
- 通过页面筛选并复核生效的房型、预算、区域等;地址栏参数及推荐项不能代替逐条核对。
- 先读取列表页基本字段;需要解释关键冲突时再读详情,不为未选房源默认穷尽所有详情与电话。
- 验证码由用户在页面完成;保留进度,等待用户表示完成后继续,不反复重试。
- 未显示的信息写“—”或“待确认”;日期未显示且详情页也无法核实时,不计入“最近7天”精确数量。不从挂牌、更新或重发日期推断入住时间、房东急迫程度或仍可租多久,不把直线距离改写成步行距离。
- 同一个 listing ID或同一规范链接重复出现可以合并;不同ID仅因项目、门牌、房型、面积或价格相同,不能认定同一单位。标“疑似重复”并保留。
### PropertyGuru 登录与受限电话
Chrome账号登录不等于PropertyGuru登录。只有本轮需要整理联系方式,且页面明确未登录或查看电话要求登录时,提示并让用户选择:
> 部分中介电话需要登录 PropertyGuru 才能查看。你想:
> 1. **先登录再继续**:你在当前 Chrome 的 PropertyGuru 页面完成登录后告诉我,我再检查并补充可见电话。
> 2. **先继续找盘**:我继续整理房源,受限电话留空,并在内部记录备注“需登录后补充”。
优先使用可用的提问工具,等待选择;无回复不等于选择继续。已经选择过则不重复问。选择登录时保留页面与候选,等用户完成后重新检查可见性,不索要密码或验证码;登录后仍不可见的号码如实标注。选择继续则完成当前阶段,本轮不因其他同类受限号码反复打断,**也不能因此越过选盘阶段直接生成客户卡**。仅号码缺失但没有登录证据时标“未显示/待确认”,不猜测原因。仅做候选概览或客户卡、不需要电话时,不为电话单独要求登录。
## 第一阶段交付:候选概览,按小区分组,让中介选择
先说明检索条件、最近7天的起止日期、实际读取页数与条数,以及最近7天相关活跃 listing 的去重总数。若完整读到时间边界且总数超过20,写明“最近7天共有 N 个相关活跃 listing,本次按页面日期由新到旧返回前20个”;若总数不超过20,写明“最近7天只有 N 个相关活跃 listing,本次全部返回”。读取被中断时改写为“最近7天已观察到至少 N 个相关活跃 listing”,不可报精确总数。随后列出候选;不制作 CSV,不在这一步做客户版,也不倾倒不合格结果。
**每个小区一个区块:**
- 小区标题行:项目名 · 路名或区 · 最近地铁及页面显示的距离 · TOP 年份或楼龄(如有)· 本次 N 套 · 价格区间(最低–最高)· 面积区间。
- 小区共有的信息(地铁、楼龄、配套)只在标题行写一次,不在每套重复。
- 标题行下面每套一行,**每套保留自己的稳定编号**,先写页面日期及原标签,再写它和同小区其他套不同的信息:价格、面积、房卫、楼层(页面显示的高/中/低层或楼层)、家具、入住或租约、朝向或装修等差异、待确认事项,以及原始 listing 链接。
- 只有一个小区也照这个格式。
- 先排除不相关结果,再按页面日期由新到旧选前20个;同日记录再依次比较关键字段完整度、通勤或地段、入住时间契合度、预算余量。为保留按小区阅读的结构,展示时小区按其最新一套的日期由新到旧排列,小区内也按日期由新到旧;用户明确指定其他排序时按其要求。
- 编号跨小区连续(R01、R02……或 B01、B02……),编号映射到 listing ID/链接。用户修改筛选或排序后保留已有编号,新记录追加,防止选错。
- 疑似重复在同小区内标出并保留。明显不符合硬条件或相关性偏低的结果不混作候选,只统计排除数量与主要原因;只有用户明确要求近似备选时才单独列出并标明不符项。
示例版式(实际运行只填真实读到的数据):
> **Parc Esta** · Sims Avenue · EW7 Eunos 约 300 m · TOP 2022 · 本次 3 套 · S$4,800–5,000 · 700–760 sqft
> R01 · Listed 2026-10-23 · S$4,800 · 743 sqft · 2房2卫 · 高层 · 全家具 · 即可入住 · [查看 listing](原始链接)
> R02 · Updated 2026-10-22 · S$4,900 · 721 sqft · 2房2卫 · 低层 · 全家具 · 入住日待确认 · [查看 listing](原始链接)
> R03 · Re-listed 2026-10-21 · S$5,000 · 760 sqft · 2房2卫 · 中层 · 部分家具 · 疑似与 R01 同一套 · [查看 listing](原始链接)
>
> **Grand Dunman** · Dunman Road · CC8 Dakota 约 300 m · TOP 2025 · 本次 2 套 · …
- 候选阶段的数据属于初筛,不写“已确认可租/可售”。
- 可解释差异,不能默认替中介选定3套,也不能沉默即默认全选。
- 结尾明确请用户按编号或按小区回复,例如:“请选要做客户册的房源,可以按编号(R01、R04),也可以按小区(Parc Esta 的都要 / Grand Dunman 只要 R07、R09 / Sceneca 整个不看);也可以先改筛选条件。”
**解析用户的选择:** 「某小区的都要」= 该小区块里所有合格编号,不含标「不符」和「疑似重复」中被合并的那条;「某小区只要 R07、R09」= 只取这两个;「某小区整个不看」= 剔除该小区全部。小区名和逐套编号可以混用,先按小区展开再按编号增减。解析完把最终编号清单复述一遍让用户确认;**如果之前没拿到通勤地点,就在同一条消息里问一次**:「要顺便算每套到公司的开车和公共交通时间吗?给我上班地址或地铁站;回『不用』就直接做。」用户给了就带进制册阶段,回「不用」或直接说「做吧」就跳过,不再问第二次。有歧义(同名小区、编号不在清单里)先问,不猜。
- **到这里等待用户选择;未选定时不生成客户卡。** 用户只说“继续”且未指明范围时,确认要选哪些;“全部做卡”才表示全选可选候选,不包含已排除项。
- 用户明确委托“你帮我选几套并做卡”时,可按其授权范围选择并说明理由;数量按用户要求,不固定为3。
## 第二阶段:按选定 listing 制卡
1. 将用户选中的编号解析为已有listing ID和链接;有歧义先澄清,不猜测。
2. 只对选定房源补读所需详情,核对价格、面积、房数、家具、租期、入住/交房、带租约及已有报价等。标注读取日期和未确认字段。
3. 若详情揭示硬条件不符、失效或与初筛有实质差异,告知受影响编号,让用户决定保留为有明确说明的备选、移除或换盘;不擅自替换或加入其他listing。
4. 交给另一个单独安装的 Skill「listing-cards」生成统一客户房源册(默认 PDF 加一张长图):小区与附近中文地铁总览、对应listing真实照片、逐套详情(完整地址仅内部保存);租盘突出家具/租期/入住,买盘突出extension三态。买盘与租盘均逐条检查Floor Plan栏目、完整相册及附件,有对应户型图就纳入图片格并标「户型图」,没有则只记内部,不在客户版写“没有户型图”。只包含选定数量的房源。已选定且无新冲突,无需再次审批同一选择。
5. 不生成 CSV 比较表。客户版写成中介整理好的房源清单,不出现PropertyGuru链接、listing ID、发布/更新日期、挂牌中介资料、内部提醒,也不使用“页面显示/挂牌提到/网站来源”等抓取式措辞。若房东偏好或要求两年而客户目标为一年,客户版写“房东prefer两年,1年需商议”。原始链接、查看日期、发布日期、核实层级、租期原文、提醒、户型图检查结果及中介资料只保存在独立的内部来源记录。
「listing-cards」是另一个单独安装的 Skill,本 Skill 不包含它。若用户还没装 listing-cards,做完候选概览、等用户选完编号后停下,说明缺少 listing-cards,不自行制卡,也不假称已制卡。
## 输出与边界
文件保存到用户指定目录;否则用当前工作区的交付目录,客户文件名遵循listing-cards的“文件命名”规则:聊天中有明确筛选条件时用简短条件命名(如2b2b_租房房源册.pdf),否则用用户所在时区的当天日期(如2026-10-02_房源册.pdf)。将已明确的筛选条件和通勤地点(如有)随选定编号交给制卡阶段,不让制卡阶段猜测。保留选盘编号与来源映射以便后续修订。只有客户卡生成后才提醒用户逐张核对价格、面积、房数和关键条件。不发送WhatsApp或其他消息、不联系中介、不自动发布网页。
===== pg-find / SKILL.md END =====
listing-cards · 技能完整原文
---
name: listing-cards
description: 将用户选定的房源 listing 链接、粘贴内容或附件制作成含小区总览、附近中文地铁站及距离、对应挂牌照片和逐套详情的可视化客户房源册,默认同时交付 PDF 和一张长图。用户给了通勤地点时,用 Google Maps 逐套算开车和公共交通时间并写进客户册。支持租盘和买盘,可独立使用,无需先搜索或生成比较表;也承接pg-find中介选盘后的制卡。用户说“这些listing做客户卡”“房源链接转卡片”,或者带客户看房前说“这几套约好了看房,做个册子发客户”时使用。不自动找更多房源、不联系中介。
---
# listing-cards:选定 listing → 客户版房源卡
本skill可以独立运行,无需安装或先运行pg-find。
## 识别选定范围
- 用户发来若干具体listing并要求“这些做客户卡”,视为已选定,按其顺序直接处理,不再要求重复选择。
- **看房行程场景**:用户说这几套已经约好看房(例如“周六下午看这四套”),同样视为已选定,按用户给的顺序排(通常就是看房顺序),可在总览表加一列「看房顺序」;用户给了看房时间就写进去,没给不编。
- 接受具体listing链接、粘贴的房源内容、用户提供的截图或文件;也接受上游已选编号及其来源映射。
- 只发链接、没有说明要做什么时,确认是否制卡;搜索结果页或项目汇总页不等于用户已选中全部房源,先列出基本候选与链接让用户选。
- 编号必须有现成映射,不能猜链接。选1套做1张,选5套做5张,不默认3套、不自动增加替代房源。
- 同一链接/ID重复可去重并说明;不同listing仅看起来相似不自行合并。
- 用户未提供客户需求时,写基于房源事实的亮点,不编造客户画像或“适合你的需求”。推荐理由需要时再询问关键偏好,不强制重做需求访谈。
- **开始制册前,如果还没有通勤地点,问一次**:「要顺便算每套到公司的开车和公共交通时间吗?给我上班地址或地铁站;回『不用』就直接做。」上游 pg-find 已经问过或已给了地点的不重复问。用户给了就按「通勤」一节逐套查;回「不用」或没回应就不算,照常制册,不因此等待。
## 客户版固定展示偏好
- **客户版和内部版是两套独立交付物。** 客户版默认是带真实照片的 PDF 加高清长图;内部版是给中介核对的来源记录。交付时必须明确标注“给客户看的”和“给你/内部看的”,不能混在一个文件里。
- **沿用既有客户册视觉,不另起模板。** 用户给过旧册、参考图或同系列样例时,以其页面方向、字体、配色、信息层级和照片网格为基准。本小班课默认视觉为 A4 横版、白底、深绿色标题、低饱和绿色辅助色、系统无衬线字体(优先 PingFang SC),总览页加逐套照片详情;不要擅自换成 A4 竖版、深蓝大色块封面或宋体/衬线字体。
- 客户 PDF 优先用 HTML/CSS 配合 Chromium/Playwright 打印,PDF 与长图使用同一份页面源。不要用 ReportLab 的 `STSong-Light` 等 CID 宋体直接绘制客户版正文;这种方式只适合内部表格,容易让中文笔画显得细、飘或倾斜。制作时优先复用 本文末尾的「附录二:样式表」。
- 地图页标题统一使用“房源位置总览”。
- 客户册页脚只保留页码。不显示“图片类别以原挂牌为准”“照片不代表家具交付清单”“家具是否包含、实际交付状态须确认”及“版式模拟 · 资料查看日期 · 非已确认看房安排;挂牌状态以最新确认为准”等通用说明,也不换一种措辞补回。资料日期及来源依据保存在内部记录。地图距离口径与非实际单位参考图等具体事实标注仍在对应位置准确表达。
- 不设置“看房前确认”区块,也不把该区块改名后重复放回客户册。内部核实和跟进事项保存在内部记录;必要的图片真实性说明或具体字段中的“待确认”仍随对应信息显示。
- 客户版不展示提醒、跟进建议、核实备注、排除原因、来源网站名称、PropertyGuru链接、listing ID、挂牌中介资料、查看日期,也不展示 Listed/Updated/Re-listed 等发布或更新日期。以上内容只放内部记录。
- 客户版文案要像中介整理好的自有房源清单,不写“页面显示”“网站写”“广告提到”“挂牌仅提供”“从PropertyGuru取得”等抓取痕迹。事实亮点统一用“房源特点”等自然标题;来源依据只放内部记录。
- 若来源偏好或要求两年租期,而客户目标是一年,客户版写“房东prefer两年,1年需商议”;不要写成红色警告、“不符合条件”或内部提醒。内部记录保留来源原文、准确要求及需要商议的事项。
- 最终交付 PDF 和一张纵向拼接的长图,两样默认都给。总览表左侧“小区”和“附近地铁”按相同小区合并单元格,每条房源的编号、月租、面积/房卫、是否有家具、最早入住时间、页码保持独立;页码单列。
- 客户版不展示完整街道地址,内部完整保存用于核实与定位。展示700米内的中文地铁站及米数,例如“丹戎加东地铁站 约420米”。只有同址或相同交通条件才共用距离;同小区不同楼栋须分别核算,不能强行合并地铁信息。
- 距离口径必须统一:有核实步行路线才写步行距离;使用楼栋和车站坐标时按直线距离计算,原始距离≤700米才纳入,并在表下注明“约直线距离,非步行距离”。不要把700米外房源资料中的距离挪入,也不能把缺失写成不存在。
- 表头使用“家具”“最早入住时间”;家具一栏按已核实资料写 Fully furnished / Partially furnished / Unfurnished,资料没写才写待确认,不加任何附注。客户版不出现“广告”“挂牌”“页面显示”等来源式措辞,来源依据保存在内部记录,必要的不确定性仍用“待确认”表达。
- 普通照片下不重复写“对应挂牌照片 · 原图署名 / 水印保留”。真实图片本身的署名/水印仍完整保留;非实际单位参考图、虚拟布置等影响理解的信息必须标明。
## 读取和核实
用当前可用且允许的浏览器或网页读取工具打开用户给出的来源;只使用读到的字段。不要把其他推荐房源或项目介绍中的泛化信息当成该单位的事实。
需要整理:项目、完整街道地址(含楼栋门牌及已知邮编,不主动加入单位房号)、区域、租买、价格及币种/单位、面积及单位、房数卫数、完工年份/楼龄、地契(买盘)、家具/租期(租盘)、交通、可入住/交房信息、关键限制、来源与查看日期。
- 价格须区分总价与月租、起价与议价;买盘psf可按已读总价/面积计算,标明计算口径。未知字段显示“待确认”或省略非必要项。
- 不从发布日期推算入住日期;已有报价不等于已成交;全家具不等于接受任何租期。
- 含露台等面积不能全部描述为室内面积;交通信息保持来源口径,冲突写待核实,不随意择优。
- 与用户硬条件冲突、listing失效或关键内容无法读取时,说明具体受影响项,确认保留带说明的卡片、跳过或补充资料;不能用其他listing替换。可继续处理其余可读取的选定房源。
- 登录或验证码阻挡房源正文时,告诉用户可以在浏览器完成后继续,或提供该listing内容/截图。不要反复重试或绕过限制。仅中介电话受限不会妨碍客户卡,因为客户卡不需要该电话。
- 用户提供模拟数据时,每张卡醒目标注“模拟练习,不是真实房源,不可发送客户”。
### 通勤(用户或上游给了通勤地点时才做)
- 对每套选定房源,用浏览器插件在用户 Chrome 里打开 Google Maps 路线页,起点用房源完整地址(内部保存的楼栋门牌,没有就用项目名加邮编),终点用通勤地点,查两次:
- 开车:`https://www.google.com/maps/dir/?api=1&origin={起点}&destination={终点}&travelmode=driving`,读第一条路线的时长和距离。
- 公共交通:同一地址把 `travelmode=transit`,读第一条方案:总时长、步行到站约几分钟、乘哪条线(写线路名或编号)、在哪站换乘、哪站下车、下车后步行约几分钟。
- 页面能设出发时间就设下一个工作日早上 8:30,并在内部记录注明;设不了就按查询时的路况,客户版写「按查询时路况,早高峰可能更长」。
- **步行段要交叉核对。** Google Maps 按门牌地址定位到路边,常常绕路,步行到地铁站的时间会比实际从小区最近出入口走多出一倍。每套把 Google 路线里「步行到第一站」的时间,和 PropertyGuru 挂牌页显示的到同一站距离与步行时间比一下:
- 差不多(相差不到 3 分钟或 200 米):直接用 Google 的总时长。
- Google 明显更长:总时长写成区间,下限 = Google 总时长 − 步行差值,上限 = Google 总时长,例如「约 29–35 分钟」;后面跟一句「小区离达科达站约 390 米,从最近出入口走更快」。内部记录写明两边的数字。
- PG 没显示距离:用 Google,不猜。
- 不要自己改短 Google 的车程;开车时间只按 Google。
- 同一楼栋多套共用一次查询;不同楼栋分别查。每次查询的 URL、时间、读到的原文存进内部来源记录。
- 读不到就写「待确认」,不用直线距离、不用别的房源的数据、不凭经验估。Google Maps 弹验证或要登录时停下来让用户处理,不反复重试。
- 通勤地点是客户自己的信息,客户版可以写简称(如「到 Raffles Place」),不写客户公司全名之外的任何个人资料。
## 制作带照片的客户房源册
具体版式与字段参考本文末尾的「附录一:客户房源册设计」,样式可复用「附录二:样式表」。客户版是统一的一份选盘资料,不是互不关联的纯文字卡片。
### 第一部分:本次小区总览
- 统计所选listing数量和不同小区数量,按小区分组;一个小区多套只建一个小区总览项,列出对应房源编号及附近地铁,完整地址仅内部保存,不能把每条listing当一个小区。
- 每个小区展示名称、附近700米内地铁站及距离、选中几套、真实挂牌照片缩略图、该组价格或价格范围;完整地址保存在内部。不同楼栋交通距离不同时分别标明。
- **买盘默认加该小区的 site plan(总平面图)**:来源依次找 PropertyGuru 的项目页、listing 相册里标 site plan 的图、开发商官网;放在小区区块里,和缩略图一样大小,标「Site plan」并保留原图署名。找不到就不放、不编、不用别的项目的图。租盘默认不放,用户要求才加。
- 接着给选定房源的紧凑概览:稳定编号、小区、附近地铁、价格、面积、房卫、租买对应的重要状态;有通勤数据时加一列「到{通勤地点简称}」,写「车 25 分 / 公交 40 分」这样的短格式。该概览是客户册的一部分,不是另行强制导出的内部CSV。
- 网页点击小区/编号可跳转详情。交通速览按来源列出MRT及距离;有核实的坐标才能制作点位地图,不能凭猜测绘制空间位置。缺坐标时可用地址地图检索链接,不把链接当作已核实定位。
### 多房源与位置地图
- 10条或更多listing仍是一份资料:静态地图/小区索引、紧凑概览、按小区组织的逐套照片详情。PDF使用固定编号和页码对应;优先在一张地图中通过标签避让排清,不默认增加密集区域放大页;不能依赖缩放或弹窗。只有明确要求网页时才使用折叠、展开等交互。保留上游选定编号,不为凑数量补房源。使用虚构模拟数据时明确标识模拟;真实房源的版式样例不增加用户已删除的通用页脚说明。
- 用户要求地图时,展示选中房源楼栋和周边MRT。新加坡地址优先通过OneMap按完整门牌、街道核实坐标;保存查询与匹配结果。多个结果须核对项目名和邮编,不能任取第一项。缓存结果,遇限流退避,不能密集重试。
- 分开统计listing、小区和楼栋点位;同址listing共用一个点,在图例/索引列出每个编号和详情页码;网页版本才使用弹窗跳转。同小区不同楼栋分别标点。不同listing疑似同套时保留记录并提示核对,不声称都是不同单位。
- MRT标注站名和线路编号,核对车站坐标;不能把车站中心称为出入口。说明房源点定位到楼栋,非具体房号。附近车站集合不冒充完整轨道网络,未经核实的直线距离不写成步行距离或时长。
- 房源点与MRT用不同形状和文字区分;静态地图直接使用经核实的中文站名,并写全“地铁站”及线路编号,例如“马林百列地铁站 · TE26”,不能只放站名或MRT缩写。地铁标签使用醒目底框,与房源编号区分。标记与标签不可遮挡;优先使用引线避让,并说明引线不是路线,不默认另加局部放大页。同址多条使用数量或编号映射;交互功能只用于用户明确要求的网页。
- 保留底图及坐标来源署名。照片内嵌不代表地图可离线使用,在线底图依赖须告知。PDF要地图时另做经过检查的静态地图页,不能打印空白交互容器。
### 第二部分:逐套照片与详情
同小区多套放在一起,仍保留各listing的编号、不同照片与价格。每套包含:
- 项目名、附近700米内地铁及距离;内部保留完整地址,不在客户版展示地址或具体房号。
- 清楚标注SGD总价或月租、面积、房数卫数;sqft转sqm须标约数。
- 已知完工年份/楼龄、地契、交通、单位配置、小区设施及关键待确认事项。
- 有通勤地点时加一行「通勤 · 到{简称}」:开车约 X 分钟(Y km);公共交通约 Z 分钟:步行 a 分钟到 A 站 → 乘 B 线到 C 站(换乘 D 线到 E 站)→ 步行 b 分钟。一行写完,不画地图。后面跟一句「按查询时路况」或「按工作日 8:30 出发」。
- 根据用户需求写1–2句取舍与亮点,没有需求则写事实亮点。
- 资料查看日期保存在内部来源记录;客户册页脚仅保留页码。
**租盘突出:** 家具、租期、可入住时间。家具一栏**只按已核实资料写**:Fully furnished / Partially furnished / Unfurnished,资料没写才写「待确认」;不要加「交付清单待确认」「以实际交付为准」「照片不代表交付」这类附注,客户版不解释。来源描述里单独出现的条件或亮点(例如新装修、带洗碗机、可养宠物、最短租期、含管理费),可整理成「房源特点:」1–3 条自然文案,不写“挂牌提到”或来源网站名称。不能只看照片有家具就判定fully furnished。来源若偏好或要求两年、客户目标为一年,按上面的固定口径写“房东prefer两年,1年需商议”。
**买盘突出:** 总价、psf、地契、完工年份、现有租约/交房安排,以及extension三态:
1. 广告明确需要:写明时长;没写多久就标时长待确认。
2. 广告明确无需:只有原文明确no extension等含义时使用。
3. 广告未说明:不能因没写extension、房源空置或写自住就推断不需要。
在内部来源记录保留extension依据的短句及链接,客户版用易懂状态呈现,不把广告表述升级为卖方确认。
### 照片是默认必需内容
- 从每个选定listing的可见相册读取实际照片链接,并通过允许的下载能力保存真实图片;按listing ID分目录或命名。不是只给图片链接,也不是用其他单位或图库照片代替。
- 客户版必须有对应房源的真实照片。若某套完全无法取得可用照片,只能交付明确标注“照片待补”的草稿或暂时移出客户版,不能把纯文字页面当成最终客户版。
- 每套默认用紧凑的三列两排展示6张不重复图片,覆盖客厅、卧室、厨房;**户型图占其中一格**(标「户型图」),其余格放照片。保留原图比例及水印,缩小间距,不靠裁图凑版面。同一listing相册的真实小区外观或设施照片可以补充,并准确标明类别;不能把其他单位照片混入。不足6张可用图时按实际数量展示,不重复、不编造;更多照片按可读性决定是否加页。
- **有户型图就收,但不单独成页**:逐条检查选定listing的Floor Plan栏目、相册及用户附件,不能只看前6张照片或凭列表页判断。找到对应户型图就下载,作为该套图片格里的一张嵌入并标「户型图」(复式上下层各占一格,最多两格),和照片一样大小;客户想细看自己放大,不另加户型图页,不因此增加页数。保留方向、尺寸、图例、比例及原有署名水印,不重绘、不套用其他户型。未找到时只在内部记录写“未发现户型图”,客户版不放空白格,也不写“没有户型图”。
- 户型图带电话或二维码时,优先寻找同一房源、同一户型的无联系方式版本;找不到时保留原图并向用户说明,不仅因电话或二维码静默漏掉必收户型图,也不声称客户册完全不含原图联系方式。普通房源照片仍按下方规则选择。
- 单位照片、小区设施、景观、户型图分清,配准确说明。来源声明虚拟布置/整理的,保持说明,不称为原状照片。若广告声明图片仅供参考、非实际单位,每张相应图片显著标注,并提示需补实际单位照片。
- 保留原图比例、署名及平台水印,不重绘、抹水印或靠裁切隐藏署名。除按上条处理的必收户型图外,优先不用带电话/二维码的照片;发现时换同一listing的其他照片,并记录排除原因。若只有这类照片,告知用户并请求可用图片,不声称已做出不含联系方式的完整客户册。
- 原图仅有作者/公司水印时保留并明确说明,不能同时声称图片已剥除全部中介信息。客户版排版文字仍不添加挂牌中介姓名、公司、电话、邮箱、佣金和内部跟进备注。
- 照片读取受阻时说明受影响listing,请用户完成访问或提供对应图片;可以给明确标记“照片待补”的草稿,不能当成最终完整成果。
- 照片须实际嵌入PDF/图片;若用户另要HTML,也应内嵌照片使单个文件可离线打开,或把相对路径图片一起打包。不得依赖容易失效的远程热链。
### 输出和来源
最终默认交付客户版完整 PDF、把全部页面按顺序纵向拼成的一张高清长图(手机能直接滑着看),以及一份分开的内部来源记录。用户只要其中一种客户格式时按要求给。不默认出逐页图片包,不出 CSV 比较表。不要求客户使用互动网页。
**长图必须高清、放大不糊:**
- 按 2 倍像素密度渲染:宽 2000 px 左右(最低 1600 px),不要用 1 倍截图再放大。
- 存 PNG;要存 JPG 时质量不低于 92。照片和户型图按原图尺寸嵌入,不先缩小再放大。
- 文字、线条放大到 200% 仍然清晰。渲染完放大看一遍标题、小字和户型图房间文字,糊的重出。
- 一张长图高度超过 20000 px 时,按区块切成 2–3 张(总览一张、每几套一张),编号 `_长图1`、`_长图2`,不要硬塞成一张手机打不开的图。
- 交付时提醒用户:WhatsApp 直接发图片会压缩,要保清晰就用「文件/文档」方式发,或发 PDF。地图、小区总览、关键资料与每套照片全部直接呈现,无需点击、展开或联网。HTML仅在用户明确要求网页时作为交付格式,否则只可作为制作中间件。按下方文件命名规则命名,保存到用户指定目录或当前工作区的交付目录。不默认导出内部比较表CSV。
### 文件命名
- 文件名简短、清楚。优先使用当前聊天中已明确的筛选条件,沿用用户熟悉的写法,例如 `2b2b_租房房源册.pdf`、`2b2b_买房房源册.pdf`;地区确实是本次筛选条件且有助区分时才加短地区名。不把全部条件堆进文件名。
- 只有房源数据共同具有某个特点,并不代表用户指定了该筛选条件;不从旧任务、推荐项或猜测中补条件。条件不明确或未提及时,用用户所在时区的生成当天日期,例如 `2026-10-02_房源册.pdf`;日期不能沿用模板或旧资料日期。无需为命名额外询问用户。
- PDF 和长图共用同一个简短主名,例如 `2b2b_租房房源册.pdf`、`2b2b_租房房源册_长图.jpg`。用户指定文件名时按用户要求。
- 客户文件名不添加“10条listing”“静态客户”“地图样例”“最终版”等制作说明,不默认累加版本号、日期和数量。来源与核实日期保存在内部记录,不必全部写入文件名。
用户自己的署名和联系方式仅在其明确要求时加入。原始listing链接、PropertyGuru链接及其他来源链接只放内部来源记录,客户版不放;地址地图链接可以放客户册。
内部保留:编号到listing/附件的映射、listing ID、完整地址、发布/更新/重发日期、查看日期、原始链接、挂牌中介资料、关键字段依据、租期原文与商议事项、提醒与跟进项、户型图是否找到、原图URL与本地文件、照片排除原因、无法核实项、每次通勤查询的 URL、时间和读到的原文。单独保存来源文件,不把内部信息嵌进客户版HTML的隐藏字段或注释。
## 版式硬规则(做 HTML 中间件时遵守,PDF 和长图都适用)
- 所有文字块高度随内容,不用固定高度、不用绝对定位叠放文字;小区标题行、总览表、逐套区块之间用固定间距隔开,表格行高随内容。
- 每个区块整体不跨页断开:小区总览区块、每套的图片格加详情各自作为一个单元,放不下就整体移到下一页,不让下一块压在上一块上。
- 文字宽度超出容器时换行,不裁切、不缩字到看不清;长项目名、长地铁站名、长「挂牌提到」都要换行显示。
- 图片格固定三列两排,每格等高,图片按比例缩放居中,不溢出格子。
- 生成后把 PDF 每一页渲染成图逐页看,长图也整张看:标题被下一块盖住、文字被裁掉、图片溢出页边、表格压到下文,任一出现就改版式重出,改好再交付,不交付有遮挡的版本。
## 检查与交付
- 对照来源核对价格、单位、面积、房卫、家具、租期、extension、日期和街道地址。核对小区分组数量、各组listing数量及编号映射对应用户选择。
- 有通勤行时,逐套核对数字来自实际的 Google Maps 查询记录,起点终点没有写反,没有把直线距离或估算写成通勤时间。
- 检查客户版没有PropertyGuru或其他来源链接、listing ID、发布/更新日期、挂牌中介资料、内部提醒和跟进项,也没有“页面显示/挂牌提到/网站来源”等抓取式措辞;逐张检查图片是否含电话/二维码,并说明保留的原图署名/水印。只有实际检查完成才说“已检查”。CSS中的`@media`不属于联系方式。
- 逐条核对有户型图的房源,户型图在图片格里、标了「户型图」、没有单独成页。
- PDF 和长图都须渲染检查:照片全部加载、比例正确、文字可读,无截断、无遮挡、无重叠;长图页与页之间顺序正确、无空白断层,宽度适合手机阅读。检查过才说「已检查」,发现遮挡先改再交付。仅明确要求网页时检查图片放大、小区跳转、手机宽度与打印版。
- 将总览页和至少一套详情页与既有样例并排检查:页面方向、无衬线字体、标题粗细、照片网格和左右栏比例应保持同一视觉体系;中文笔画发飘、像斜体或明显偏细时先修正字体与渲染方式,不把它当成正常差异交付。
- 有地图时检查坐标数量、同址分组、底图、中文地铁标签和房源编号映射。仅网页交付检查弹窗跳转、MRT开关和恢复全图,按钮函数避免与原生DOM属性重名。
- 提供客户版与内部来源记录的独立链接,提醒用户逐张核对后再使用;说明缺失项,不把页面读取当成挂牌方确认。
- 不发送给客户、不联系中介、不自动发布到网站。
---
## 附录一:客户房源册设计
先由中介选定listing,再制作统一的客户版PDF和高清长图;也支持用户直接提供选定链接。另存一份仅供中介核对的内部来源记录。具体文案及文件命名以SKILL.md的固定展示偏好和文件命名规则为准。
## 页面与信息层级
默认视觉基线沿用小班课既有样例:A4 横版、白底、深绿色无衬线标题、低饱和绿色辅助色;总览页在前,逐套详情采用左侧照片网格、右侧关键资料。用户给过旧册或参考图时优先匹配,不擅自改成竖版、深色大封面或宋体风格。客户版优先由HTML/CSS打印成PDF,再由同一PDF生成长图,确保两种交付的字体和版式一致。
1. 地图页标题为“房源位置总览”。呈现本次房源楼栋位置和附近地铁,地铁用已核实的中文站名+“地铁站”+线路编号。房源与地铁使用不同标记,标签避让,不默认添加密集区域放大图。
2. 紧凑总览表:小区|附近地铁|编号|月租|面积/房卫|是否有家具|最早入住时间|页码。买盘改用总价及交房/extension等对应字段。同小区在左侧合并单元格,单套字段独立;不同楼栋交通条件不同时分别展示。页码单列。
3. 每套详情:项目名、附近地铁、醒目价格、房卫面积;紧凑展示对应房源的真实照片和关键资料。每套尽量使用6张不重复照片,不足则按实际数量自适应排版,不放空白占位、不重复凑数。买盘和租盘都逐条检查Floor Plan栏目、完整相册及用户附件;找到对应户型图就放进同一图片格并标「户型图」,没有就只在内部记录,不在客户版写“没有户型图”,也不另加户型图页。
4. 租盘突出全家具/部分家具/无家具/待确认、租期、最早入住时间。若房东偏好或要求两年而客户目标为一年,客户版写“房东prefer两年,1年需商议”,准确依据留在内部记录。买盘突出总价、psf、地契、完工年份、现有租约/交房安排、extension明确需要/明确无需/未说明;时长只按已读取来源填写。
## 地图与地址
完整街道地址仅内部保存,用于核实楼栋坐标;客户版不展示完整地址。客户显示700米内地铁站及距离,例如“丹戎加东地铁站 约420米”。同址listing共用一个点,索引列出对应编号;同小区不同楼栋分别定位。
优先用OneMap核实完整门牌与街道,缓存匹配结果。使用车站坐标时不称为出口。坐标计算的距离标注“约直线距离,非步行距离”,按原始距离≤700米筛选,不以四舍五入后的值判断。地图保留底图与坐标来源署名,引线仅供标签定位,不表示步行路线。
## 图片与文案
照片从对应listing的可见相册下载并实际嵌入PDF/图片,客户最终版不能只有文字。同一listing相册中的小区外观/设施可以补充,并准确标注类别。原来源为参考图、非实际单位或虚拟布置的,保留具体标注。普通照片下不加重复来源/水印说明;水印本身完整保留。普通照片带电话/二维码时优先换成同listing的其他可用图;必收户型图按SKILL.md的专门规则处理,不静默排除。
客户版写成中介整理好的房源清单,不使用“广告”“挂牌”“页面显示”“网站来源”等抓取式措辞,不设置“看房前确认”区块,也不改名后重新加入。页脚仅保留页码;不展示版式模拟、资料查看日期、发布/更新日期、PropertyGuru链接、listing ID、挂牌中介资料、内部提醒、非已确认看房安排、图片类别/家具交付状态等说明。来源、查看日期、完整地址、跟进事项及缺少户型图等情况另存内部记录。具体核心字段不确定时可在对应位置写“待确认”。
## 客户版与内部版
- 给客户:PDF和高清长图,带真实照片;只呈现整理后的房源事实、客观取舍及必要的核心待确认字段。
- 给中介:独立来源记录,保留原始链接、listing ID、完整地址、发布日期/更新日期、挂牌中介资料、提醒、冲突、租期原文、需商议事项、户型图检查结果及图片来源。
- 交付时明确标注两类文件,不能把内部记录作为客户附件,也不能把内部字段藏进客户版HTML的注释或隐藏元素。
## 格式与可选网页
默认横版A4 PDF及高清长图,白底、深绿色系统无衬线标题、低饱和绿色正文,照片和地图离线可读,不依赖点击、展开或联网。优先复用 下方附录二样式表,字体优先使用 `-apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif`;不要用 `STSong-Light` 等宋体直接绘制客户版。静态版优先遵循上述布局。
仅用户明确要求网页时才增加小区锚点、图片放大和交互地图;手机详情改竖排,宽表可滚动。交互不改变客户版的地址、文案、照片数量及命名规则。网页须检查实际图片、地图加载与交互;不可将在线地图直接称为已完成的离线PDF地图。
## 附录二:样式表(customer-book.css,制作 HTML 中间件时直接复用)
```css
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#eceee9;color:#193b37;font:15px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;font-synthesis:none;text-rendering:geometricPrecision}main{max-width:1180px;margin:auto;padding:32px 28px}.page{background:#fff;padding:42px;margin:0 0 28px;border-radius:20px;box-shadow:0 5px 25px #233b3010}.eyebrow{font-size:11px;letter-spacing:.17em;color:#71847c;font-weight:700}.heading{display:flex;justify-content:space-between;align-items:start;gap:20px}h1{font-size:38px;line-height:1.2;margin:12px 0}h2{font-size:30px;line-height:1.2;margin:10px 0}h3{font-size:18px;margin:3px 0}p{margin:10px 0}.muted{color:#6e8078}.small{font-size:12px}.pill{background:#edf2ee;border-radius:30px;padding:5px 13px;font-size:12px;white-space:nowrap}.criteria{border-left:3px solid #bb9c69;padding:8px 14px;color:#6c7367;margin:22px 0}.communities{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:24px 0}.community{border:1px solid #dce5df;border-radius:12px;overflow:hidden;text-decoration:none;color:inherit}.community img{width:100%;height:162px;object-fit:contain;background:#f3f4f1;display:block}.community .inner{padding:17px}.code{color:#998154;font-size:12px;font-weight:700}.address{font-size:14px;color:#60786d}.overview{width:100%;border-collapse:collapse;font-size:13px}.overview th{font-size:11px;color:#6b8176;letter-spacing:.03em;text-align:left;border-bottom:2px solid #25493d;padding:12px 10px}.overview td{padding:15px 10px;border-bottom:1px solid #e3e9e3;vertical-align:top}.overview a{color:#24523f;font-weight:700;text-decoration:none}.good{color:#226447;background:#e9f4eb}.warn{color:#986620;background:#fbf1df}.neutral{color:#62706e;background:#edf0ef}.badge{display:inline-block;padding:4px 9px;border-radius:5px;font-size:12px}.transit{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px 0}.transit>div{padding:15px;background:#f4f6f3;border-radius:10px;font-size:12px}.transit b{display:block;font-size:14px}.transit a{color:#2b674e}.unit{scroll-margin:20px}.unit-header{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #dce5df;padding-bottom:21px;margin-bottom:26px}.price{font-size:31px;font-weight:700;white-space:nowrap}.price small{font-size:13px;font-weight:400}.unit-body{display:grid;grid-template-columns:1.3fr 1fr;gap:28px}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start}.gallery figure{margin:0;background:#f4f4ef;border-radius:9px;overflow:hidden}.gallery img{display:block;width:100%;height:188px;object-fit:contain;cursor:zoom-in}.gallery figcaption{font-size:11px;padding:5px 10px;color:#708075}.gallery.three figure:first-child{grid-column:1/-1}.gallery.three figure:first-child img{height:250px}.specs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding-bottom:19px;border-bottom:1px solid #dce5df}.specs strong{font-size:24px;display:block}.specs span{font-size:12px;color:#708075}.status{padding:17px;margin:17px 0;border-radius:10px}.status strong{display:block;font-size:19px;margin:3px 0}.facts{display:grid;grid-template-columns:78px 1fr;gap:10px;font-size:13px;margin:16px 0}.facts dt{color:#7b8a81}.facts dd{margin:0}.note{font-size:13px;background:#f9f5ed;padding:14px;border-left:3px solid #baa170;margin:18px 0}.amenities{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid #dce5df;margin-top:22px;padding-top:17px;font-size:12px}.footer{font-size:10px;color:#819088;margin-top:24px;display:flex;justify-content:space-between;gap:25px}.back{font-size:12px;color:#36604e}button{border:1px solid #b4c7b9;color:#204734;background:#fff;border-radius:7px;padding:9px 13px;cursor:pointer}dialog{border:0;border-radius:12px;max-width:94vw;max-height:95vh;padding:12px}dialog::backdrop{background:#13251bd9}dialog img{max-width:87vw;max-height:80vh;display:block;object-fit:contain}dialog button{display:block;margin:10px 0 0 auto}.footnote{font-size:11px;color:#7a877e;margin-top:20px}@media(max-width:760px){main{padding:14px}.page{padding:25px 19px}.communities,.transit{grid-template-columns:1fr}.community{display:grid;grid-template-columns:110px 1fr}.community img{height:100%;min-height:145px}.unit-body{grid-template-columns:1fr}.unit-header{display:block}.price{margin-top:16px;font-size:28px}.table-wrap{overflow-x:auto}.overview{min-width:630px}h1{font-size:29px}h2{font-size:25px}.gallery img{height:160px}.heading{display:block}.pill{display:inline-block;margin-top:12px}.footer{display:block}}@media print{@page{size:A4 landscape;margin:0}body{background:white}main{padding:0;max-width:none}.page{box-shadow:none;border-radius:0;break-after:page;margin:0}.page:last-child{break-after:auto}button,.back,dialog{display:none}.unit-body{grid-template-columns:1.3fr 1fr}.communities,.transit{grid-template-columns:repeat(3,1fr)}.gallery img{height:160px}.overview{min-width:0}}
```
pg-find · 技能完整原文
--- name: pg-find description: PropertyGuru 找盘;用户未指定数量时,默认检索最近7天发布、更新或重发且符合条件的活跃 listing,自动跨页读到时间边界,按页面日期由新到旧最多返回20个;不足20个就只返回实际相关结果并如实说明最近一周的数量。候选保留稳定编号和原始 listing 链接,中介选盘后才生成客户卡。适用于按租买、地段、房型、预算、发布时间和通勤筛选房源。不发消息、不联系中介、不出 CSV 比较表。用户已有 listing 链接并要求直接制卡时用 listing-cards。 --- # pg-find:找盘 → 候选概览 → 中介选盘 → 客户卡 **搜索结果首先用于让中介选盘。默认只展示大概数据和 listing 链接,不立即交付比较表加客户卡。** ## 收条件 用户一次说全就不用问;缺少影响检索的关键条件时一次问清: - 租或买、地区/MRT/项目、预算、房数卫数、最低面积。 - 租:入住时间;买:自住或投资、期望交房时间。 - 分清硬条件与偏好,如家具、楼龄、交通、楼层;未知项标待确认,不擅自放宽。 - **通勤地点(可选)**:客户上班地点或常去的地方,地址、大厦名或地铁站都行。用户没给时,在追问缺失条件的同一条消息里顺带问一句,标明可选,例如「如果有客户的上班地点(地址或地铁站),我可以顺便算每套的开车和公共交通时间,没有就跳过」。只问一次,不答就跳过。给了就记下来。通勤只是偏好时,候选概览先按区域与交通条件初筛,选盘后再由 listing-cards 用 Google Maps 逐套核算;通勤是硬条件或用户明确要求概览阶段比较时,只对最近7天的预选候选分批核算,不对所有原始结果逐套开地图。 - 客户需求不包含姓名、电话、证件等个人资料。 若用户直接给出具体 listing 并明确要求制卡,这些 listing 已是其选择;转入另一个单独安装的 Skill「listing-cards」,无需重新搜索或再要求选一次。 ## 搜索与读取 使用浏览器工具操作用户 Chrome 的 PropertyGuru 页面;有指定标签页时使用该页,用户没指定时用 Chrome 里已打开的 PropertyGuru 标签页,没有就新开一个。**用户没有指定数量、发布时间范围、页数和是否做卡时,默认只看最近7天:以用户所在时区为准,包含搜索当天及前6个日历日。自动跨页读完这个时间窗口内符合条件且仍可打开的 listing,按页面显示日期由新到旧最多返回20个,然后停下来等用户选编号,不做卡。最近7天不足20个相关结果时只返回实际数量,不用更早或不相关的房源补足。** 同一组筛选条件下连续读取后续结果页属于这次找盘任务的正常只读步骤,不需要逐页询问用户。 - 优先把结果排序切到页面提供的最新发布、最新挂牌或最相关的新鲜度排序,并确认排序确实生效。日期字段可能写“Listed”“Updated”“Re-listed”等;逐条保留页面原标签,不把更新或重发改写成首次发布。 - 从第1页开始自动读取后续页,直到完整覆盖最近7天:在按日期由新到旧的结果中,读到早于截止日且后续结果也没有回到窗口内时停止;推荐项、置顶项或广告可能打乱顺序,不能只因单条旧记录就提前停止。结果用尽、遇到验证码或页面无法继续时也停止。 - “相关”指没有明显违反硬条件,且关键偏好、入住时间、通勤或价格没有已知的重大冲突。关键字段未显示但没有冲突时可列为“待确认”,并优先级低于信息完整的候选。 - 跨页过程中保留所有已观察到的 listing ID、规范链接、页面日期及标签、相关状态和排除原因;同一 listing 不重复计数。只有完整读到时间边界或结果用尽时,才把去重后的数量写成“最近7天共有 N 个相关活跃 listing”;若被验证码、访问限制或页面故障中断,只能写“已观察到至少 N 个”,不能假称完整总数。 - 不为凑到20个而放宽硬条件、加入低相关结果或使用早于7天的记录。最近7天实际只有6个相关 listing 就只交付6个,并明确写“最近7天只有6个相关活跃 listing”。除非用户明确要求扩大时间范围、近似备选或询问可放宽项,否则不展示不符合条件的房源。 - 通过页面筛选并复核生效的房型、预算、区域等;地址栏参数及推荐项不能代替逐条核对。 - 先读取列表页基本字段;需要解释关键冲突时再读详情,不为未选房源默认穷尽所有详情与电话。 - 验证码由用户在页面完成;保留进度,等待用户表示完成后继续,不反复重试。 - 未显示的信息写“—”或“待确认”;日期未显示且详情页也无法核实时,不计入“最近7天”精确数量。不从挂牌、更新或重发日期推断入住时间、房东急迫程度或仍可租多久,不把直线距离改写成步行距离。 - 同一个 listing ID或同一规范链接重复出现可以合并;不同ID仅因项目、门牌、房型、面积或价格相同,不能认定同一单位。标“疑似重复”并保留。 ### PropertyGuru 登录与受限电话 Chrome账号登录不等于PropertyGuru登录。只有本轮需要整理联系方式,且页面明确未登录或查看电话要求登录时,提示并让用户选择: > 部分中介电话需要登录 PropertyGuru 才能查看。你想: > 1. **先登录再继续**:你在当前 Chrome 的 PropertyGuru 页面完成登录后告诉我,我再检查并补充可见电话。 > 2. **先继续找盘**:我继续整理房源,受限电话留空,并在内部记录备注“需登录后补充”。 优先使用可用的提问工具,等待选择;无回复不等于选择继续。已经选择过则不重复问。选择登录时保留页面与候选,等用户完成后重新检查可见性,不索要密码或验证码;登录后仍不可见的号码如实标注。选择继续则完成当前阶段,本轮不因其他同类受限号码反复打断,**也不能因此越过选盘阶段直接生成客户卡**。仅号码缺失但没有登录证据时标“未显示/待确认”,不猜测原因。仅做候选概览或客户卡、不需要电话时,不为电话单独要求登录。 ## 第一阶段交付:候选概览,按小区分组,让中介选择 先说明检索条件、最近7天的起止日期、实际读取页数与条数,以及最近7天相关活跃 listing 的去重总数。若完整读到时间边界且总数超过20,写明“最近7天共有 N 个相关活跃 listing,本次按页面日期由新到旧返回前20个”;若总数不超过20,写明“最近7天只有 N 个相关活跃 listing,本次全部返回”。读取被中断时改写为“最近7天已观察到至少 N 个相关活跃 listing”,不可报精确总数。随后列出候选;不制作 CSV,不在这一步做客户版,也不倾倒不合格结果。 **每个小区一个区块:** - 小区标题行:项目名 · 路名或区 · 最近地铁及页面显示的距离 · TOP 年份或楼龄(如有)· 本次 N 套 · 价格区间(最低–最高)· 面积区间。 - 小区共有的信息(地铁、楼龄、配套)只在标题行写一次,不在每套重复。 - 标题行下面每套一行,**每套保留自己的稳定编号**,先写页面日期及原标签,再写它和同小区其他套不同的信息:价格、面积、房卫、楼层(页面显示的高/中/低层或楼层)、家具、入住或租约、朝向或装修等差异、待确认事项,以及原始 listing 链接。 - 只有一个小区也照这个格式。 - 先排除不相关结果,再按页面日期由新到旧选前20个;同日记录再依次比较关键字段完整度、通勤或地段、入住时间契合度、预算余量。为保留按小区阅读的结构,展示时小区按其最新一套的日期由新到旧排列,小区内也按日期由新到旧;用户明确指定其他排序时按其要求。 - 编号跨小区连续(R01、R02……或 B01、B02……),编号映射到 listing ID/链接。用户修改筛选或排序后保留已有编号,新记录追加,防止选错。 - 疑似重复在同小区内标出并保留。明显不符合硬条件或相关性偏低的结果不混作候选,只统计排除数量与主要原因;只有用户明确要求近似备选时才单独列出并标明不符项。 示例版式(实际运行只填真实读到的数据): > **Parc Esta** · Sims Avenue · EW7 Eunos 约 300 m · TOP 2022 · 本次 3 套 · S$4,800–5,000 · 700–760 sqft > R01 · Listed 2026-10-23 · S$4,800 · 743 sqft · 2房2卫 · 高层 · 全家具 · 即可入住 · [查看 listing](原始链接) > R02 · Updated 2026-10-22 · S$4,900 · 721 sqft · 2房2卫 · 低层 · 全家具 · 入住日待确认 · [查看 listing](原始链接) > R03 · Re-listed 2026-10-21 · S$5,000 · 760 sqft · 2房2卫 · 中层 · 部分家具 · 疑似与 R01 同一套 · [查看 listing](原始链接) > > **Grand Dunman** · Dunman Road · CC8 Dakota 约 300 m · TOP 2025 · 本次 2 套 · … - 候选阶段的数据属于初筛,不写“已确认可租/可售”。 - 可解释差异,不能默认替中介选定3套,也不能沉默即默认全选。 - 结尾明确请用户按编号或按小区回复,例如:“请选要做客户册的房源,可以按编号(R01、R04),也可以按小区(Parc Esta 的都要 / Grand Dunman 只要 R07、R09 / Sceneca 整个不看);也可以先改筛选条件。” **解析用户的选择:** 「某小区的都要」= 该小区块里所有合格编号,不含标「不符」和「疑似重复」中被合并的那条;「某小区只要 R07、R09」= 只取这两个;「某小区整个不看」= 剔除该小区全部。小区名和逐套编号可以混用,先按小区展开再按编号增减。解析完把最终编号清单复述一遍让用户确认;**如果之前没拿到通勤地点,就在同一条消息里问一次**:「要顺便算每套到公司的开车和公共交通时间吗?给我上班地址或地铁站;回『不用』就直接做。」用户给了就带进制册阶段,回「不用」或直接说「做吧」就跳过,不再问第二次。有歧义(同名小区、编号不在清单里)先问,不猜。 - **到这里等待用户选择;未选定时不生成客户卡。** 用户只说“继续”且未指明范围时,确认要选哪些;“全部做卡”才表示全选可选候选,不包含已排除项。 - 用户明确委托“你帮我选几套并做卡”时,可按其授权范围选择并说明理由;数量按用户要求,不固定为3。 ## 第二阶段:按选定 listing 制卡 1. 将用户选中的编号解析为已有listing ID和链接;有歧义先澄清,不猜测。 2. 只对选定房源补读所需详情,核对价格、面积、房数、家具、租期、入住/交房、带租约及已有报价等。标注读取日期和未确认字段。 3. 若详情揭示硬条件不符、失效或与初筛有实质差异,告知受影响编号,让用户决定保留为有明确说明的备选、移除或换盘;不擅自替换或加入其他listing。 4. 交给另一个单独安装的 Skill「listing-cards」生成统一客户房源册(默认 PDF 加一张长图):小区与附近中文地铁总览、对应listing真实照片、逐套详情(完整地址仅内部保存);租盘突出家具/租期/入住,买盘突出extension三态。买盘与租盘均逐条检查Floor Plan栏目、完整相册及附件,有对应户型图就纳入图片格并标「户型图」,没有则只记内部,不在客户版写“没有户型图”。只包含选定数量的房源。已选定且无新冲突,无需再次审批同一选择。 5. 不生成 CSV 比较表。客户版写成中介整理好的房源清单,不出现PropertyGuru链接、listing ID、发布/更新日期、挂牌中介资料、内部提醒,也不使用“页面显示/挂牌提到/网站来源”等抓取式措辞。若房东偏好或要求两年而客户目标为一年,客户版写“房东prefer两年,1年需商议”。原始链接、查看日期、发布日期、核实层级、租期原文、提醒、户型图检查结果及中介资料只保存在独立的内部来源记录。 「listing-cards」是另一个单独安装的 Skill,本 Skill 不包含它。若用户还没装 listing-cards,做完候选概览、等用户选完编号后停下,说明缺少 listing-cards,不自行制卡,也不假称已制卡。 ## 输出与边界 文件保存到用户指定目录;否则用当前工作区的交付目录,客户文件名遵循listing-cards的“文件命名”规则:聊天中有明确筛选条件时用简短条件命名(如2b2b_租房房源册.pdf),否则用用户所在时区的当天日期(如2026-10-02_房源册.pdf)。将已明确的筛选条件和通勤地点(如有)随选定编号交给制卡阶段,不让制卡阶段猜测。保留选盘编号与来源映射以便后续修订。只有客户卡生成后才提醒用户逐张核对价格、面积、房数和关键条件。不发送WhatsApp或其他消息、不联系中介、不自动发布网页。
2. 在新对话检查两个技能
新开对话,在支持的输入框输入 @,搜索 pg-find 和 listing-cards。也可打开侧边栏 → Plugins → Skills。若没有出现,请刷新或重新打开 Skills 页面,并确认使用同一账号;不同版本的菜单名称可能不同。只收到文字说明,不代表安装成功。
请读取我已安装的 pg-find 和 listing-cards,分别确认实际能否读取已保存的技能。说明各自用途,并确认 listing-cards 包含附录一和附录二的完整 CSS。暂时不要找房、打开网页或制作文件。缺少哪一个请直接说明,不要猜测。
3. 选择开始方式
已有选定链接?直接用 listing-cards。需要先找合适房源?先用 pg-find 查看候选,再选编号交给 listing-cards。
A · 先帮我找盘
请用 pg-find 帮我找租盘:D15/D16 公寓,月租不超过 S$5,000,2 房 2 卫,至少 700 sqft,下个月入住。预算和面积是硬条件,家具及靠近地铁是偏好。不需要计算通勤。先给候选概览,等我选编号,暂时不要制卡。
请用 listing-cards,只制作 R01 和 R04。不需要计算通勤。请输出 A4 横版客户 PDF 和高清长图,使用对应房源的真实照片及找到的匹配户型图。内部来源记录另存。
B · 我已有房源链接
请用 listing-cards,制作以下全部已选房源: [每行贴一个房源链接] 客户代号:[代号] 客户需求:[如有请填写] 输出语言:[英文 / 中文 / 中英双语] 通勤地点:[地址或地铁站 / 不需要] 看房行程:[如有已确认的日期和时间请填写] 请使用对应房源的真实照片,输出客户 PDF 和高清长图,内部来源记录另存。不要联系任何人或代我发送文件。
4. 加入自己的资料
名称是共用标签,每个账号各有自己的副本。需要在客户册显示署名时,才提供你自己的公开姓名、业务电话及 CEA 注册号码。共用指令不预填任何成员的联系方式。除非你另行设置并验证保存的个人资料,否则每次需要时在请求中提供。
仅在本次客户册加入我的公开经纪姓名 [姓名]、业务电话 [号码]、CEA 注册号码 [号码]。页首使用 KFD · KEVIN FENG DISTRICT。排版文字不要加入原挂牌经纪的联系方式;保留图片必要署名和水印。
可以复制别人分享的技能吗?
可以,前提是原作者允许分享或复用。安装在自己的账号后,可修改自己的副本。不同账号使用相同技能名,不代表共用客户资料或个人设置。本页是共用安装指南,不会自动替所有成员安装。
技能保存的是操作指令,不会自动提供浏览器访问权限、PropertyGuru 登录、照片或文件生成工具。电脑端如需浏览器工具,请先连接当前环境支持的浏览器。网页无法读取时,提供文字、截图及对应照片;登录或验证按获准的屏幕流程完成。照片或文件工具不足时,必须明确标为草稿或替代格式。发送前逐项核对。
快速开始
贴上链接,复制你的提示词。
填入已知资料即可。此页面只生成提示词,不读取 PropertyGuru、不联系经纪,也不会将资料发送给 AI。
复制到 ChatGPT Work 或 Codex。AI 会先制作对比表,等你选择后,再用第 4 步提示词制作客户 PDF。
遇到问题时
AI 打不开 PropertyGuru 链接
提供房源文字、截图和获准使用的照片,并保留链接作来源。不要让 AI 凭记忆补资料或绕过访问限制。
可以加入路线规划吗?
可以。提供日期、出发点、交通方式及已确认预约,要求附来源的交通估算和预留时间。建议顺序不会替你预约看房。
AI 可以加入房源照片吗?
仅限可访问、获准使用且能确认属于正确单位的图片。否则请上传获准照片。不要虚构房间照片或移除水印。
下次另一个客户可以重复用吗?
新客户建议新开对话,加入新的链接和需求。若想沿用风格,可附上审核过的样本,不要假设旧客户资料或偏好会正确沿用。