@casomoltd/tooling

中文文档
0.49.1发布于 2026/11/07MITTypeScriptESM + CJS构建来源已验证近 30 天下载 3916

卡索莫共享的dev配置:ESLint,Prettier,contlint,knip & jscpd预设,dev CLIs(git hooks,可读性,截图,设计规格),并导入了构建时间数据和帮助站点(Buttondown引擎,共享组织)

中文使用文档
文档目录18 节
  1. 包括什么
  2. 出口
  3. Bin 命令
  4. 安装
  5. 外部先决条件
  6. 胡斯基钩
  7. 工具链不是 npm 的回放
  8. 标记下/ 技能插图
  9. 截图工具
  10. 设计规格
  11. 客户报告(表格)
  12. 质量门
  13. 使用量
  14. 地方发展
  15. Claude 代码技能( 插件)
  16. 钩子
  17. 探员
  18. 软件包分发

@ casomoltd/ 工具

共享林入,格式化,承诺配置,以及Casomo Ltd repos的CLI工具.

包括什么

出口

导出说明
@casomoltd/tooling/eslintcreateBaseConfig() ——ESLint平面配置与Next.js, TypeScript, SonarJS 和房屋规则(文件/日记(中文(简体) )
@casomoltd/tooling/eslint-libcreateLibConfig() —— TypeScript 库的同房规则(文件/日记(中文(简体) )
@casomoltd/tooling/prettier高级配置对象
@casomoltd/tooling/commitlint承诺配置 no-ai-attribution 插件
@casomoltd/tooling/knip未用出口/依赖的 Knip 配置
@casomoltd/tooling/jscpd复制粘贴检测配置
@casomoltd/tooling/readability页面或通讯文章的可读性评分: scoreText(), (中文(简体) ), FORMULAS (这七种公式得分), extractText() 财务报告和审定财务报表 discoverSlugs() 下一页的文本, extractMdxText() 用于 MDX 页面和 routeText() 一条路线是一起的,和 DEFAULT_MAX_GRADE, (中文(简体) ), DEFAULT_WORD_SUBS 财务报告和审定财务报表 MIN_SCORABLE_WORDS
@casomoltd/tooling/identityCASOMO_ORGANIZATION(原始内容存档于2017-03-21). the schema.org Organization包括,每个Casomo网站在其JSON-LD中作为出版商的名称; LINKEDIN以及公司的公开登记, COMPANY_REGISTER, (中文(简体) ), ICO_REGISTER 财务报告和审定财务报表 REGISTERED_OFFICE,与 COMPANY_COLOPHON各站点的台词都包含着它们 CASOMO_UTM 与 tagged(),每个 Casomo 链接和签名的值都会从(类型) (中文(简体) ). App代码在构建时导入它,所以在运行时只安装生产依赖的站点将软件包列在 dependencies
@casomoltd/tooling/buttondown使用 buttondown 命令:共享的电子邮件块和外观(createEmailBlocks, (中文(简体) ), emailBaseCss, (中文(简体) ), composeWebSkin),一个colophon作为 socials 链接或电子邮件 HTML(colophonLinks, (中文(简体) ), colophonHtml, (中文(简体) ), tokenReader(), (中文(简体) ), loadSettings() 财务报告和审定财务报表 buildPayload(),以及 EMAIL_CHROME_HIDES 财务报告和审定财务报表 WEB_CHROME_HIDES (单位:千美元)文件/按钮.md(中文(简体) )
@casomoltd/tooling/tally将Tally形式作为代码的回放:形式模型和翻译(toBlocks, (中文(简体) ), toSettings, (中文(简体) ), blockNames, (中文(简体) ), FormIndex 用来设计一个街区, blockSelectors()· ; ./tally/paths 单为代号 一个街区没有建造者; ./tally/events 用于嵌入窗体的一页:其嵌入和窗体地址,以及浏览器中嵌入内容的读取器; ./tally/frame,该表单作为下一个站点的反应组件(TallyFrame,以及 useBrowserValue 读取其隐藏的字段) (文档/tally.md(中文(简体) )
@casomoltd/tooling/attributionutmTagger(lists): 从一个站点的列表中标记与 UTM 值的链接的函数, 拒绝其中不包含的值,以及 UTM_PARAMS,它写的参数名称, 对于一个读取标记回. identity是因为 tagged() 这是卡索莫自己的名单类型(中文(简体) )
@casomoltd/tooling/signatureGmail和Outlook的电子邮件签名必须是什么GMAIL_LIMIT, (中文(简体) ), DROPPED_MARKUP, (中文(简体) ), EXPORT_SCALE, (中文(简体) ), PNG_RGB)和读者在一个网站的测试中用(imageTags, (中文(简体) ), hrefs, (中文(简体) ), attribute, (中文(简体) ), readPng, (中文(简体) ), escapeRegExp(三); signatureFaults(facts) 管理一个网站的签名和它自己的事实的每个共享检查,并列出失败之处 cacheFault(headers) 判断其图像所服务的标题; 无测试框架(类型(中文(简体) )
@casomoltd/tooling/retention正如每个网站的隐私页面所指出: TALLY_CONTACT_MESSAGE_MONTHS, (中文(简体) ), CONTACT_INBOX_DAYS, (中文(简体) ), CONVERSATION_RECORDS_MONTHS塔莉的备用窗口, TALLY_BACKUP_DAYS 与 TALLY_BACKUPS_URL (单位:千美元)类型) (中文(简体) ). 在一个时期里,只有一个站点的表格留在那个站点

Bin 命令

命令说明
check-version推前后卫——如果 package.json 版本没有改变 vs origin/main
check-tags推倒前的警卫——推动 main, 想要( 想要) push.followTags,所以版本标记船 与它的起落
check-linear预推后卫——拒绝将合并承诺推向遥控器. 历史是线性的;一个分支通过再定位赶上. 只有推力加到什么才被判断 所以合并在远程停留
pre-pushHusky 预推钩-推出门(它的运行(中文(简体) )
check-routesNext.js 站点预推闸口——开始 next start 反对建筑 check 请求中的每一页 /sitemap.xml 并遵守网站的承诺routes.links 内 casomo.config.mjs,并且每个表格 tally 如果任何最终答复不是200(或怎么样) (中文(简体) ). 运行它 "check:routes": "check-routes"· ; 为何要推来推去
pre-commit胡斯基预承诺钩-跑 npm run check
commit-msgHusky 承诺-msg 钩子——运行承诺,然后 check-listed-files
check-listed-files拒绝更改仍在列表中的文件的承诺 eslint-suppressions.json,除非 Lint-deferred: 拖车说为什么文件/日记(中文(简体) )
readability测量页面内容的读取难度
screenshot通过 Playwright 捕获一个 dev 服务器页面—— 代理的视觉反馈循环
build-report将一个 Typst 客户端报告编译为 PDF , 并附带房屋模板
render-figures将设计 spec 的美人鱼图交给静态 SVG
spec-check检查设计 spec 的锚、 内容、 数字和编号
check-private-refs在公共回购中,拒绝私人追踪器链接或以下所列名称 privateRefs 内 casomo.config.mjs
check-personal-data拒绝电子邮件、国家保险号码、联合王国手机号码、出生日期或当地拒收姓名 personalData 内 casomo.config.mjs
buttondown保留按键通讯作为代码 : diff 财务报告和审定财务报表 apply 其地块(地盘、外皮和电子邮件模板)和标记, check 皮肤相通,以物配主,并创造草本文件/按钮.md(中文(简体) )
tally保留 Tally 格式为代码 : push 一个表格,然后读回来, diff 它与活体形式相对应,并同步其样式表的标志物文档/tally.md(中文(简体) )

安装

向公众公布npm登记。 把它加进消费者的 devDependencies数字 :

npm i -D @casomoltd/tooling

软件包是公开的,所以安装不需要符号或 .npmrc编辑 files 许可列表加 verify-pack 漏出门只保留已公布的表面到配置/CLI.

安装此软件包从不安装浏览器 . 这个 screenshot 宾需要一个 build-report 需求 typst CLI,但这里也没有申报——看 外部先决条件。 。 。 .

外部先决条件

3个垃圾箱需要 npm 无法明智地交付的东西: screenshot 财务报告和审定财务报表 render-figures 需要通过 Playwright 建造铬 build-report 需求 typst CLI和IBM Plex字体. 无一被宣布为依赖者,而不是可选的同伴. 每一个都懒散地装入其先决条件,在缺少安装指令时失败了,所以一个从未运行过这些垃圾桶的消费者不会带给他们任何东西.

这个规则,对于后来添加的任何东西:一个重量级的先决条件,只有一些消费者需要在这里被记录下来,从来没有宣布. 一个可选的对等者看起来是免费的,因为 npm 没有安装它, 但一旦有东西拉进来, 它就会解入消费者的锁文件, npm 之后不会给一个满意的可选对等者推出 npm install,没有打开 npm install --package-lock-only,没有打开 npm uninstall。因此,任何针对它的咨询都能够重置从未运行过垃圾桶, 并且清除它需要发布这个包而不是每个包的固定.

胡斯基钩

软件包提供共享的钩子命令,所以所有重置都执行相同的标准. 把他们绑起来 .husky/数字 :

.husky/前承诺

pre-commit

.husky/承诺-msg

commit-msg $1

.husky/预推

pre-push

每个回波定义自己的 check 脚本在 package.json - 钩子呼叫 npm run check 进行任何需要的复选(lint、打字、拼写等).

说明: 工具回放本身在其钩子(例如. ./bin/check-version.sh因为它无法通过 node_modules/.bin。 。 。 .

工具链不是 npm 的回放

Python,Go或C++ repo仍然获得承诺规则. 它携带一个 纯 npm 层 用于宿主钩的

{
  "name": "<repo>-hooks",
  "private": true,
  "description": "Dev-only npm layer: wires the shared commit-msg gate into this repo. Not the project toolchain.",
  "scripts": { "prepare": "husky" },
  "devDependencies": {
    "@casomoltd/tooling": "^<current>",
    "@commitlint/cli": "^20.0.0",
    "husky": "^9.1.7"
  }
}

加号 commitlint.config.cjs 重新出口规则 .husky/commit-msg。无 version,因为repo版本本身带有自己的工具.

不要电线 pre-commit 或者说 pre-push 从此套件中取出 . 两个都跑 npm run check,以及 check-gates 读取 package.json 并且需要8个命名为npm的脚本——一个非npm repo不能满足并且不应该伪造的门. 写一个 .husky/pre-push 将真正的工具链称为:

uv run ruff check && uv run ruff format --check && uv run pyright && uv run pytest

如果一个房子门不会在你的回购中运行, 窃听共享的或修复这个包, 永远不会有本地副本: 拨打一个缺失的门,永远不要重写。 。 。 .

标记下/ 技能插图

bin/skills-lint.config.mjs 是一个股票注释配置( e)remark-frontmatter + 键 remark-validate-links + 键 remark-lint-frontmatter-schema验证克劳德代码技能/代理/文件树: SKILL.md 编号 : agents/*.md 拥有可解析的 YAML 前题 name + 键 description,每个相对链接和 #anchor 决定。 工具运行到 npm run check 作为 lint:md,在脚本名称的路径上 package.json ——接取断裂后取出克洛德代号的装载器静静地吞下后留下的重名或手版.

将消费者Repo的文档(link/anchor完整性)装入自己的预承诺,安装语句工具链并指向已发运的配置:

npm i -D remark-cli remark-frontmatter remark-validate-links remark-lint-frontmatter-schema
"lint:md": "remark --frail --quiet --no-stdout --rc-path node_modules/@casomoltd/tooling/bin/skills-lint.config.mjs docs"

附录 && npm run lint:md 给您的 check 剧本. 配置解析您 repo 的插件 node_modules 和与其相对的图案;前题图案只匹配 SKILL.md编号 :agents 文件,所以对于普通文件,它起到链接/锁定检查的作用。 需要一个工具版本来运送配置.

截图工具

screenshot 是编码代理的可视反馈循环 : 克劳德抓住了它刚刚改变的一页,读取了PNG的回放并检查了自己的作品. 它需要一个Chrimium 构建, 此软件包不安装( 见 外部先决条件。设置、旗帜、预设和输出位置位于 screenshot 技术.

设计规格

spec-check 读取一个 HTML 设计 spec 并报告其机械故障: 锚解决到无, 内容条目不同意其标题, 数字没有数字、 锚或标题, 数字比它所坐牌宽, 键入样式表生成一个的区号, 并标记文物主机拒绝.

render-figures 将 spec's mermaid 数字重写为静态 SVG,因此页面没有运行时间. 每个图都将其来源保存在上方的HTML注释中,运行会读取这些内容,使其被制成并冻结所计算的涂料。 它从工作目录解析 Playwright; set RENDER_FIGURES_RESOLVE_FROM 给一个从别的地方跑出来的项目.

客户报告(表格)

report/ 用于客户端的 PDF 报告: a 泰普斯特语Name 模板 (casomo-template.typ旁边有商标) build-report bin 将报表编译为 PDF . report/example.typ 是一个 lorem- ipsum 引用, 行使模板样式的每个特性。 报告如何导入模板,其中PDF登陆 外部先决条件 它需要的是在 generate-report 技术.

质量门

钩子是大门,CI是后站。 每个钩子运行,为什么 check 拥有建筑,门 每回波 check 必须包含,并且规定一个失败的检查是固定的而不是被削弱的 文件/质量门。 。 。 .

使用量

. prettierrc.js (英语)

module.exports = require('@casomoltd/tooling/prettier');

{\fn方正黑体简体\fs18\b1\bord1\shad1\3ch2f2f2f}美国海军陆战队

module.exports = require('@casomoltd/tooling/commitlint');

互联网档案馆的存檔,存档日期2013-12-02

import { createBaseConfig } from '@casomoltd/tooling/eslint';

ESLint配置使用了接收消费者已解决的进口的工厂功能来避免模块解析跨包边界的问题.

地方发展

更改工具需要推动 main 要发布(工作流程自动运行)。 重置时接取更改 npm update @casomoltd/tooling。 。 。 .

在本地编辑工具配置时使用快速迭代 npm link 以暂时链接您的本地退出 :

# in the consuming repo
npm link ../tooling

这将覆盖已公布的版本直至下一个版本 npm install,可以恢复注册版本.

Claude 代码技能( 插件)

此 repo 是 Claude 代码插件 (.claude-plugin/运输 通用公共工程标准 我们的工作 跨越三个毒剂表面 - 技能, (中文(简体) ), 钩子,以及 代理人企业特有的人生活在私人结构中,而不是在这里.

该工具服务于三个消费者: 克劳德 (编辑工作流程)-这些插件表面; CI + gi (自发) • npm bin 剧本. CLI不是为人工人类使用而设计的.

作者标准 : 创建或编辑以下技能/代理 docs/skill-agent-schema.md 接口方案(三个简介——程序技能——代理人——标准/rubric——加上前题决定表),使这些单位的结构不相重叠.

技能说明
/casomoltd:commit运行检查并做出干净的承诺( 不碰, 不推)
/casomoltd:release-versionBump – 推 → CI 发布/部署(发布尾)
/casomoltd:design-pass地图 – 审查 – 重构一个包
/casomoltd:draft-design-spec在写入代码前作者可复核的 HTML 设计 spec
/casomoltd:screenshot抓取并分析 Dev 服务器页面
/casomoltd:generate-report脚手架和编译 Typst 客户端报告,验证 PDF
/casomoltd:session-todo撰写并工作会话移交列表
casomoltd:typescriptTypeScript 数据建模和类型设计( rubric)
casomoltd:python-stylePython 代码生成样式规则( rubric)
casomoltd:docs-style技术和参考文件公约(要点)
/casomoltd:frontend-design有区别的,生产级前端UI (rubric)
/casomoltd:page-design信任内容页面结构( rubric)

启用插件, 将此重播作为市场并安装:

/plugin marketplace add casomoltd/tooling
/plugin install casomoltd@casomo-tooling

技能然后加载命名空间为 /casomoltd:<name>。 。 。 .

钩子

该插件还传送通用 使用钩子 (单位:千美元)hooks/) 警卫命令/壳意向无线或承诺钩可见: git push硬块的破坏力, npm version major,全局安装,并编辑会削弱TypeScript严格性. (他们刻意不重复 承诺/slint 已经执行的) hooks/README.md. ) (中文(简体) ). 警卫是咨询——他们要求你确认当他们不能读到一个电话的输入时,从不硬挡自己的故障. 他们要求 节点 22.18 24 (它们作为类型脚本运行) .mts 通过本地类型抽取——无建构步骤).

见 hooks/README.md 用于完整规则集、文件映射、钩子关系 settings.json 权限和技能 allowed-tools,以及 TypeScript / sparksed-types 设计原理.

探员

指定代理人( N)agents/),每个只读它检查和预先装入它所应用的房屋标准。 每个文件的前题和 范围 说它做什么,没有覆盖.

探员审查或地图
casomoltd:code-review根据房屋设计标准修改了代码
casomoltd:design-xray软件包的结构:映射、权重、重构目标
casomoltd:docs-xray文件目录:地图、参考图表、一致性
casomoltd:doc-review一个寄存器的形状
casomoltd:skill-review技能和代理简介
casomoltd:spec-reviewHTML 设计外观相对于其作者标题

design-xray 财务报告和审定财务报表 docs-xray 他们的报应,将永存于世 一个坚持提交报告的特工。 。 。 .

软件包分发

@casomoltd/tooling,与产品库(@casomoltd/paye-calc, (中文(简体) ), @casomoltd/nhs-pay),通过OIDC信任的出版方式向公众公布npm注册——安装无认证或 .npmrc。 版本标签推 (npm version patch → git push --follow-tags) 触发器 publish.yml该工作流程包含 无 npm 针:它建立在节点24上,其捆绑的npm 11.x已经是我们希望的范围——在或高于 npm >= 11.5.1 值得信赖的出版需求, 以及 npm 12 的短片, 默认时仍然拒绝非注册获取( npm 12) EALLOWREMOTE),因此不能重生一个解析中转远程柏油球的锁文件. 在移动到 npm 12 之前重新测试取取块 .

版本与发布记录

@casomoltd/tooling 共发布 65 个版本,首次发布于 2026/07/10;过去 12 个月发布了 65 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.49.1latest2026/11/071 天前
0.49.02026/11/072 天前
0.48.02026/11/062 天前
0.47.12026/11/053 天前
0.47.02026/11/054 天前
0.46.02026/11/044 天前

关于 @casomoltd/tooling 的常见问题

@casomoltd/tooling 是什么?

卡索莫共享的dev配置:ESLint,Prettier,contlint,knip & jscpd预设,dev CLIs(git hooks,可读性,截图,设计规格),并导入了构建时间数据和帮助站点(Buttondown引擎,共享组织)

如何安装 @casomoltd/tooling?

在项目目录运行 npm install @casomoltd/tooling,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:knip(>=5)、jscpd(>=4)、eslint(>=9.24)、typescript(>=5)、@commitlint/cli(>=20)、eslint-config-next(>=16)、eslint-plugin-sonarjs(>=3)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。它还提供命令行工具 tally、pre-push、buttondown、check-tags、commit-msg、pre-commit、screenshot、spec-check、check-gates、check-hooks、readability、build-report,可以用 npx tally 直接运行。

@casomoltd/tooling 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@casomoltd/tooling 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@casomoltd/tooling 可以商用吗?

@casomoltd/tooling 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@casomoltd/tooling 的下载量有多少?

根据 npm 官方下载统计,@casomoltd/tooling 在 2026/10/09 – 2026/11/07 这 30 天内被下载 3,916 次,日均约 131 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@casomoltd/tooling 还在维护吗?

最新版本 0.49.1 发布于 2026/11/07(1 天前);至今共发布 65 个版本,其中过去 12 个月发布了 65 个;首次发布于 2026/07/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。