mcpField
P
product-data-cleanup

product-data-cleanup

github.com/alpacalabsllc数据与数据库39645 次安装1 周前更新
代码仓库

关于 product-data-cleanup

product-data-cleanup 是整理和规范 FF&E 产品排期数据的技能,适用于需要清理产品字段并检查异常的工作。它支持预览或生成独立清理文件,库和项目排期的正式变更则交由相应所有者处理。

主要功能

  1. 01规范大小写、类别和材料
  2. 02拆分尺寸并保留单位依据
  3. 03清理语言、价格和货币格式
  4. 04标记潜在重复项供审查
  5. 05提供变更预览及清理结果

适用场景

  1. 01整理含不一致格式的 FF&E 排期
  2. 02统一产品类别、材料和颜色字段
  3. 03检查尺寸或货币信息不完整的数据
  4. 04生成独立清理文件供审阅

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alpacalabsllc/skills-for-architects --skill product-data-cleanup

安装后在 Claude Code 中输入/product-data-cleanup确认已加载。

附带文件host-contract.jsonREADME.md

详细介绍

/as:product-data-cleanup — 商品数据规范化

开始操作前,请阅读宿主契约以及本组件的声明(skill:product-data-cleanup)。仅加载共享目录中引用的模式配置文件。根据实际任务组合所需模式;声明表示要求,并不代表已获得访问权限或许可。

库的变更由 /as:product-library 负责。准备好完整的选定行/变更集及证据,然后在现有授权范围内移交原生保存操作。该负责人会验证整个批次,绑定确切的请求/预览/当前状态,并核实实际发布情况。本技能不会自行修改 product-library.csv。

宿主适配器:请阅读交付专属指南,了解调用方式、问题、目标访问权限和可选委派。

记录权威性与宿主交接

如需交接结构化证据,请阅读完整的 native product-observation owner 和 schema。对完整信封应用原生 validate/validate-batch,仅通过明确的选定项目/当前修订/字段绑定进行适配。保留精确的类型化值、来源/定位信息/时间和未知状态;将完整信封、审计观察结果、冲突和通知一并保留。现有的 null/空白/用户覆盖值均须保留。这些是尚未采纳的证据和审查提案,绝不构成编写规格的授权。

对于绑定到项目的工作,请应用原生的 context resolution,使用其已验证的项目身份,并阅读项目说明。内联或一次性来源工作无需创建项目。product-library 负责可复用 CSV 存储;master-schedule 负责已采纳的规格身份/修订,而 product-data-import 负责已接受的作业输入。不得根据目录、来源文档或交付声明推断权威性。

明确区分已采纳的项目进度表、一次性来源工作,以及可选的可复用 product-library.csv。已采纳的项目/进度表记录具有权威性;通过 /as:master-schedule 读取固定版本,并向该所有者提议变更,同时提供预期修订、证据并保留覆盖值。此技能不会独立重写规范项目/进度表记录,也不会推断审批情况。以下有关保存到库的说明仅适用于可选的 CSV 库;不会采纳或更新项目进度表。

宿主使用其可用功能读取和编辑提供的工作簿。保留原始文件、选定图片、公式、真实超链接和无关单元格。对于已采纳的进度表,通过 /as:master-schedule 处理采纳/对账、编辑前原生备份,以及经过验证的编辑前/后记录 CSV 恢复快照;另行保留宿主提取的工作簿数据和映射。对于一次性模式,宿主在作业恢复文件中保留原生备份,以及实际从工作簿提取的 CSV 快照/映射,不调用进度表快照,也不采纳记录。三方冲突和拟议删除均需明确解决。工作簿访问能力不受支持时,应提供准确的交接信息,不得谎称已完成。对于一次性工作,已接受的来源仍是任务输入,不会被隐式采纳。

对每条观察结果,保留来源身份、页面/URL 定位信息、检索时间、选定与可用配置、单位和不确定性。绝不臆造 SKU 组合、尺寸、饰面选择、价格或货币;单独的 $ 含义不明确。除非明确更改,否则保留用户选择。当前事实声明必须基于实际来源检索;无法访问的证据仍视为未知。/as:product-data-import 负责已接受的作业输入和更正;/as:product-audit 报告差异,但不会静默应用更改。/as:product-cut-sheet 和 /as:ffe-spec-book 使用共享文档模板,并在输入解析完成后由宿主渲染。

整理杂乱的 FF&E 进度表并统一所有内容:大小写、尺寸、单位、语言、材料词汇、货币格式和重复项。输出整洁、一致、可直接用于规格编制的进度表。

清理结果可以是内联预览,也可以是按明确要求生成的独立清理文件,无需采纳到库中。只有在要求更改可复用库时,才交由 product-library 处理;已采纳进度表的变更则交由 master-schedule 处理。

输入

用户通过以下任一方式提供日程:

  1. 项目库 — 位于包含 PROJECT.md 的祖先目录下最近的 product-library.csv。
  2. CSV 文件路径 — 单次清理时保留提供的架构;只有在请求导入规范库时,才验证确切的 33 列表头。
  3. 粘贴的表格 — 预览预期的输出架构;只有在请求保存到库时,才需要规范映射。

如果输入格式不明确,请询问。

清理规则

1. 大小写
字段规则示例
Collection标题式大小写cosm → Cosm
Category标题式大小写,使用单数chairs → Chair,TABLES → Table
Materials句首字母大写,其余小写MOLDED PLYWOOD, FULL GRAIN LEATHER → Molded plywood, full grain leather
Colors/Finishes每个项目使用标题式大小写walnut/black leather → Walnut / Black Leather

需保留的已知品牌缩写:HAY、USM、B&B、DWR、CB2、HBF、OFS、SitOnIt、3form、ICF

2. 类别规范化

将自由文本类别映射到 ../../schema/product-schema.md 中定义的规范词汇和别名表。阅读该文件,查看将各种变体(英语、西班牙语、旧术语)映射到规范类别名称的完整列表。

如果类别存在歧义,保留其原始值,并另行提供候选项供审核。不要发布猜测的类别,也不要在规范类别字段中放入审核标记。

3. 尺寸

拆分组合尺寸:

输入→ W→ D→ H→ Unit
32 x 24 x 30 in,来源注明 W×D×H322430in
80 × 60 × 75 cm,来源注明 W×D×H806075cm
W32 D24 H30,无单位证据———未知;保留原始值
32"W x 24"D x 30"H322430in
Ancho: 80, Prof: 60, Alto: 75 cm806075cm

尺寸规则:

  • 始终使用独立的 W、D、H 列和 Unit 列存储
  • 如果尺寸已拆分,验证其为数字(从数值中去除单位文本)
  • 将 " 解释为英寸,将 ' 解释为英尺。英尺或英尺-英寸值(2'6")没有 in/cm/mm 单位值:仅在用户要求转换时将其转换为英寸(30);否则保留原始值并标记为 [?]
  • 接受 ×、x、X、by、por 作为分隔符
  • W × D × H 是输出约定,并不能证明来源中的轴顺序。使用明确的来源标签/图例;未分配的轴保留为未知。只有在来源术语提供证据时,才将 L/B 映射到对应轴。整体尺寸、开孔尺寸和包装箱尺寸应分别保留。
  • 在证据中保留原始精度;仅在用户要求显示投影时才进行舍入。
  • 缺失的单位应保持未知,不论数值大小。不要根据家具尺寸是否合理来推断英寸或厘米。

默认保留来源单位。仅在用户要求时进行转换,并保留原始值和精确的转换依据。阅读原生尺寸语义,并在明确映射轴和单位后应用 dimension_values.normalize。支持时,应填写实际的尺寸输出列;仅将原始尺寸放入 Notes 不属于规范化输出。交接前应独立于 CSV 表头验证,对结构化观测进行验证。

4. 语言规范化

检测每个字段值的语言,除非用户另有指定,否则统一为英语。

西班牙语(乌拉圭来源中常见)→ 英语
SillaChair(类别)
MesaTable(类别)
EscritorioDesk(类别)
MaderaWood(材料)
CueroLeather(材料)
AceroSteel(材料)
VidrioGlass(材料)
TelaFabric(材料)
MármolMarble(材料)
RobleOak(材料)
NogalWalnut(材料)
BlancoWhite(颜色)
NegroBlack(颜色)
NaturalNatural(保留原样)
CromadoChrome(表面处理)

**规则:**翻译类别、材料和颜色/表面处理字段。产品名称和品牌保持原样(专有名词)。

如果用户说“保留西班牙语”或指定目标语言,请遵照要求。

5. 材料与表面处理术语

仅进行有来源依据且不改变含义的术语规范化。含义不明确的缩写应保持原样,并附上审核备注;不得添加关于成分、制造方法或表面处理的说法。语义修正建议必须有依据并获得明确授权。以下示例仅适用于来源明确表达相同含义的情况:

变体→ 标准形式
SS, Stainless, S/SStainless steel
Ply, PlywoodPlywood
Mold ply, Molded plywoodMolded plywood
MDF, Medium densityMDF
HPL, High pressure laminateHPL
Lam, LaminateLaminate
Fab, TextileFabric
COM, C.O.M.COM(Customer's Own Material)
COL, C.O.L.COL(Customer's Own Leather)
Powder coat, PC, PwdrPowder-coated
Chrm, Chrome platedChrome
Anodized alum, Anod.Anodized aluminum
Ven, VeneerVeneer
Sol. wood, SolidSolid wood
6. 价格与货币
  • 从价格数值中移除货币符号($、€、£、¥)。仅凭符号无法确定 Currency 列;请应用下方的货币检测规则
  • 移除千位分隔符(. 和 , 均可能是分隔符,需判断区域格式:1.234,56 为欧式格式,1,234.56 为美式格式)
  • 存储为普通十进制数:5695.00
  • 如果价格为“Contact”、“Quote”、“Trade”、“A consultar”或“Consultar”,则将数值价格留空(未知,绝不可填零),并在 Notes 中保留原始价格文本
  • 货币检测:单独出现 $ 不能确定货币。使用明确的来源信息或用户提供的 ISO 货币代码;否则保留为未知。仅凭网站所在地不足以确定货币。
  • 如果价格表中混有多种货币,保留每行原有的货币,并在顶部添加备注。
7. 重复项检测
  • 将产品名称和品牌均相同的行标记为潜在重复项
  • 将 URL 相同的行标记为潜在重复项;系列产品/配置器链接可能对应不同的已选商品
  • 不要自动删除;将重复项展示给用户,并询问要保留哪些
8. 空格与格式
  • 删除所有字段首尾的空格
  • 将连续多个空格合并为一个
  • 删除字段值中的换行符
  • 统一列表分隔符:wood / metal / glass → Wood, Metal, Glass(用逗号分隔)
  • 删除末尾的逗号或分号

工作流

步骤 1:加载价格表

读取输入。报告:“已加载 N 行、M 列。” 将输入列映射到规范模式。如果列映射不明确(例如,名为“Size”的列可能包含合并尺寸),请询问用户。

步骤 2:分析问题

扫描所有行并生成摘要:

## Cleanup Preview

- **Casing**: X product names need Title Case
- **Categories**: Y rows have non-standard categories (mapping: "chairs" → Chair, etc.)
- **Dimensions**: Z rows have combined dimensions to split
- **Language**: W rows have Spanish-language fields to translate
- **Materials**: V rows have non-standard material terms
- **Prices**: U rows need currency formatting cleanup
- **Duplicates**: T potential duplicate rows found
- **Empty fields**: S rows missing dimensions, R rows missing price
步骤 3:确认范围

问题摘要即为更改预览。使用先前选定的清理组和现有的明确授权;仅在必要时通过一次确认询问尚未确定的可选分组;不要先在正文中重复询问同一问题。

步骤 4:应用修正

按照当前生效的清理规则处理每一行。记录所做的所有更改。

第 5 步:展示结果

展示部分已更改行的更改前/更改后差异(最多 5 个示例)。然后展示完整的清理后表格。

报告:

## Cleanup Complete

- Rows processed: N
- Changes made: X
- Flagged for review: Y (marked with [?])
第 6 步:保存

对于明确要求的独立清理文件,保留已商定的源列和未解决的原始值,保留原件和更改报告,并遵循以下完整的原生输出保管流程。不要强行将一次性导出内容套入库架构,也不要采纳记录。

对于要求保存到可复用库的情况,请读取 ../../schema/product-schema.md 和 ../../schema/csv-conventions.md。对于多行更改,将完整的 33 列 CSV 提案实例化为临时或用户可见的审阅文件,验证该候选文件,一次性预览全部更改,并使用现有的精确授权,或仅询问一次以取得缺失的批准。获批后,将完整批次交给 product-library 的原生导入操作;该所有者会执行一次受保护的发布,而不是逐行循环处理。对于确实只涉及单条记录的编辑,可以改用其原生更新功能,但必须使用唯一匹配的稳定字段,以及精确的请求/当前状态证据。绝不要覆盖任意输入文件,也不要手动编辑 product-library.csv。

边缘情况

  • 混合语言的日程表:检测每列的主导语言,并统一为一种语言
  • 合并单元格或格式不规则:标记并询问用户如何处理
  • 架构中不存在的额外列:在独立输出中保留;保存到规范库时,先解决这些列的映射
  • 空行:在预览中列为拟删除项;仅在获批范围内删除
  • 表头检测:自动检测表头行(首个包含与已知字段名匹配文本的行)。如果无法确定,请询问。

原始产品证据

针对任务,从原始文档中检索所选制造商/产品/变体的准确事实。示例数据是合成数据,绝不能作为证据。不要将产品事实、认证、价格或供应商格式定义复制到插件中,作为可复用的参考知识。保留未解决的值,并区分代表性图片与确切选定的变体。

原生输出与所有者交接

对于要求持久保存的编写报告,使用 receive 的原生文档所有者进行基于精确坐标的放置、查询和注册;不要根据标签拼装项目文件夹。一次性报告只能使用明确获准的目标位置,且无需设置工作室/项目。规范采纳的修订和可复用库保存仍由各自所有者负责。现有的精确授权持续有效;仅获取缺失的实质范围授权或原生权限。

对于此技能实际保存或编辑的任何输出,都要对其完整受影响范围应用原生变更序列。保留所有原始字节/访问权限、源文件/身份防护、完整的准备输出以及缺失状态/前置条件;在首个发布者执行操作前,完成持久化保存,并独立重新读取所有保留/准备的内容和访问权限。保留无关数据,并在适用时保留工作簿的实际功能。重新打开每个实际目标位置,读取其完整字节以及模式/适用的所有权/ACL,并在报告完成前验证更改、源文件沿袭关系和受保护的原件。字节正确、传入创建模式参数或仅生成回执,都不足以证明完成。对于不受支持的保护机制或状态不确定的发布,必须保持阻止/待处理状态,并提供恢复证据。

使用适合所选模式的原生功能;仅当所选方法需要时才执行进程。无需使用 Arch Studio runner、下载可执行文件或重建源文件。只读/内联工作不需要写入能力。分别报告实际研究/提取、已验证的提案,以及任何经过独立验证的所有者保存;没有实际证据时,不要声称所有者交接已完成。

原生工作簿保留比较

如果已明确选定前后两个原生 .xlsx 或 .xlsm 文件,且允许进行单元格编辑,则加载完整的工作簿比较责任方,并通过实际的 ZIP/XML 检查执行原生 workbook_preservation.compare。保留完全一致的成员字节、声明的工作表/单元格属性、公式/缓存的区别以及 XML 空白规则。此只读比较不授权编辑,也不能替代任务要求的实际目标单元格回读、备份、功能检查、重新计算或视觉验证。对于提供方格式或二进制格式,以及无法达到的检查精度,均须明确标注为差距;绝不要通过重新保存/转换工作簿来掩盖这些问题。无需使用 Arch Studio 辅助工具或进程运行时。

评论

支持 Markdown