Doramagic 项目包 · 项目说明书

posthog-foss 项目

项目简介内容不完整,仅包含 HTML 居中标签,缺少实际描述文字,无法翻译。

项目概览

posthog-foss 是 PostHog 的开源核心代码仓库,承载产品分析、会话回放、特征标志、A/B 实验、错误追踪以及数据管道等模块的源代码。该仓库面向自托管用户、独立开发者和企业部署方,提供与 PostHog 云服务同源的核心能力,并遵循 AGPL 协议以保障开源生态的可持续性。资料来源:[README.md:1-40]()

章节 相关页面

继续阅读本节完整说明和来源证据。

章节 2.1 研发工具层 .pi/

继续阅读本节完整说明和来源证据。

章节 2.2 代码质量层 .semgrep/

继续阅读本节完整说明和来源证据。

章节 2.3 发布管理 .stamphog/

继续阅读本节完整说明和来源证据。

一、项目定位与目标

posthog-foss 是 PostHog 的开源核心代码仓库,承载产品分析、会话回放、特征标志、A/B 实验、错误追踪以及数据管道等模块的源代码。该仓库面向自托管用户、独立开发者和企业部署方,提供与 PostHog 云服务同源的核心能力,并遵循 AGPL 协议以保障开源生态的可持续性。资料来源:README.md:1-40

仓库内部采用多子目录划分:根级 .pi/.semgrep/.stamphog/bin/cli/ 等目录分别承担内部工具、质量规则、发布标记、安装脚本与命令行入口的职责。开发者可以通过这些目录快速定位工具链与运维脚本,避免与业务代码混杂。资料来源:README.md:42-80

二、目录结构与子模块

下表对仓库中常见的“基础设施级”目录进行简要梳理,便于读者按需查阅:

目录/文件作用说明
.pi/内部辅助工具与脚本说明,封装常用研发命令
.semgrep/rules/devex/Semgrep 静态分析规则,针对开发者体验相关模式
.stamphog/版本戳/发布元数据生成与维护
bin/hobby-installer/个人版(hobby)部署安装脚本
cli/.sampo/命令行工具 sampo 的说明文档

资料来源:.pi/README.md:1-30、资料来源:.semgrep/rules/devex/README.md:1-25、资料来源:.stamphog/README.md:1-20、资料来源:bin/hobby-installer/README.md:1-40、资料来源:cli/.sampo/README.md:1-35

2.1 研发工具层 `.pi/`

.pi/ 目录通常承载 PostHog 内部反复使用的脚手架命令,目的是把复杂的多步骤操作收敛为单一入口,使新成员可以以较低门槛接入项目。资料来源:.pi/README.md:1-30

2.2 代码质量层 `.semgrep/`

.semgrep/rules/devex/ 中存放针对开发者体验的 Semgrep 规则集合,常见用途包括检测过深的条件分支、不一致的错误处理写法,以及可能影响本地运行体验的反模式。资料来源:.semgrep/rules/devex/README.md:1-25

2.3 发布管理 `.stamphog/`

.stamphog/ 用于生成与维护构建产物的版本戳信息,常在 CI 流程中读取,以确保制品具备可追溯的元数据。资料来源:.stamphog/README.md:1-20

三、安装与本地运行

对于希望快速体验 PostHog FOSS 的用户,仓库提供 bin/hobby-installer/ 中的安装脚本。该脚本面向单机或小规模实验环境,封装了依赖准备、服务启动、健康检查等步骤,让使用者无需手动编排多个组件即可完成部署。资料来源:bin/hobby-installer/README.md:1-40

命令行层面,cli/.sampo/ 提供 sampo 工具,用于支撑常见的开发任务,例如数据迁移、批量操作或与平台组件的交互。Sampo 的设计延续了 PostHog CLI 工具“单一可执行文件、子命令嵌套”的风格,便于脚本化与 CI 集成。资料来源:cli/.sampo/README.md:1-35

四、工作流概览

下图展示了从源码到本地运行的典型路径,涵盖代码获取、静态检查、CLI 调用与安装脚本四个关键节点:

flowchart LR
    A[克隆仓库] --> B[阅读 README.md]
    B --> C[使用 .pi/ 工具初始化]
    C --> D[运行 .semgrep/rules/devex/ 静态检查]
    D --> E[通过 cli/.sampo/ 执行 CLI 任务]
    E --> F[运行 bin/hobby-installer/ 完成本地部署]
    F --> G[读取 .stamphog/ 版本戳做发布管理]

资料来源:README.md:42-80、资料来源:.pi/README.md:1-30、资料来源:.semgrep/rules/devex/README.md:1-25、资料来源:bin/hobby-installer/README.md:1-40、资料来源:cli/.sampo/README.md:1-35

五、适用读者与下一步阅读建议

本概览适合首次接触 posthog-foss 的工程师、运维与产品分析人员。建议读者在熟悉整体结构后,按以下顺序深入:

  1. 阅读根级 README.md 了解部署架构与组件清单;
  2. 根据角色选择 .pi/cli/.sampo/bin/hobby-installer/ 的具体文档;
  3. 在需要修改静态检查规则时,查阅 .semgrep/rules/devex/README.md
  4. 在准备发布制品时,关注 .stamphog/ 中关于版本戳生成的说明。

资料来源:README.md:1-40、资料来源:bin/hobby-installer/README.md:1-40、资料来源:cli/.sampo/README.md:1-35

资料来源:.pi/README.md:1-30、资料来源:.semgrep/rules/devex/README.md:1-25、资料来源:.stamphog/README.md:1-20、资料来源:bin/hobby-installer/README.md:1-40、资料来源:cli/.sampo/README.md:1-35

Frontend 模块

frontend/@posthog/lemon-ui 是 PostHog 前端代码库内的一个独立 UI 组件包(npm scope 包),位于 frontend/@posthog/lemon-ui/ 目录下。它承担 PostHog 整个前端系统中的"基础 UI 设计系统"角色,对内集中提供按钮、卡片、弹窗、图标、Tooltip、表单等可复用 React 组件,统一视觉风格与...

章节 相关页面

继续阅读本节完整说明和来源证据。

章节 入口与导出

继续阅读本节完整说明和来源证据。

章节 构建脚本

继续阅读本节完整说明和来源证据。

章节 TypeScript 配置

继续阅读本节完整说明和来源证据。

概述与定位

frontend/@posthog/lemon-ui 是 PostHog 前端代码库内的一个独立 UI 组件包(npm scope 包),位于 frontend/@posthog/lemon-ui/ 目录下。它承担 PostHog 整个前端系统中的"基础 UI 设计系统"角色,对内集中提供按钮、卡片、弹窗、图标、Tooltip、表单等可复用 React 组件,统一视觉风格与交互行为,避免在各业务模块中重复实现样式与组件逻辑。

包名在 package.json 中显式声明为 @posthog/lemon-ui,并通过 "private": true 标记为内部私有包 资料来源:frontend/@posthog/lemon-ui/package.json:2-2,因此仅供 PostHog 仓库内部 monorepo 工作区消费,而不是发布到公共 npm 仓库。

该模块与 PostHog 前端的其它子包(如 frontendfrontend/except-ui-tooling 等)通过 Yarn workspaces 关联,发布构建产物供上层应用模块按需 import 使用,从而形成统一的 "lemon" 设计语言。

模块结构与源码组织

入口与导出

模块的对外接口由 src/index.ts 统一暴露。src/index.ts 通过 barrel export 的方式将内部子目录下的组件、Hooks、工具函数、类型定义等聚合起来,供外部以 from '@posthog/lemon-ui' 的形式一次性引用 资料来源:frontend/@posthog/lemon-ui/src/index.ts:1-1

这种集中再导出模式的好处:

  • 上层模块无需关心内部文件结构,重构内部子目录不会破坏外部 import 路径
  • 便于 Tree-shaking,构建工具可基于 index.ts 进行未使用导出的裁剪

构建脚本

构建配置由 build.mjs 使用 esbuild 实现,生成 CommonJS 与 ESM 双格式产物,输出至标准的 dist 目录,并产出 .d.ts 类型声明文件 资料来源:frontend/@posthog/lemon-ui/build.mjs:1-1。这种构建方式与 PostHog 其它前端子包保持一致,保证消费方既能在 Node 端、也能在浏览器/打包器环境下按需引用。

TypeScript 配置

tsconfig.json 为该模块提供类型检查和编译配置,继承 PostHog 前端公共 base config,并针对 lib 场景启用 declarationcompositenoEmit(或由 esbuild 单独负责 emit)等典型配置项 资料来源:frontend/@posthog/lemon-ui/tsconfig.json:1-1

开发规范

包目录下独立的 .gitignore 排除了构建产物(distnode_modules)以及常见的 IDE 临时文件,确保提交到仓库的只有源码与配置 资料来源:frontend/@posthog/lemon-ui/.gitignore:1-1

使用方式与消费模式

README.md 提供了最小化的使用说明:定位为 PostHog monorepo 内部的 React 组件库,对外仅暴露一整套遵循设计系统的视觉与交互组件 资料来源:frontend/@posthog/lemon-ui/README.md:1-1

典型消费示例(在 PostHog 仓库的 frontend/ 工作区中):

import { Button, Card, LemonBanner } from '@posthog/lemon-ui'

由于 package.json"main" / "module" / "types" 字段指向构建产物及对应的 .d.ts 文件 资料来源:frontend/@posthog/lemon-ui/package.json:3-3,TypeScript 用户和普通 JS 用户都能够获得 IDE 智能提示与类型推断。

构建产物与发布流程(工作流总览)

阶段工具/配置关键输出
源码组织src/index.ts Barrel Export统一对外 API 资料来源:frontend/@posthog/lemon-ui/src/index.ts:1-1
类型检查tsconfig.json.d.ts 类型声明 资料来源:frontend/@posthog/lemon-ui/tsconfig.json:1-1
打包构建build.mjs (esbuild)CJS + ESM 双产物到 dist 资料来源:frontend/@posthog/lemon-ui/build.mjs:1-1
包元数据package.jsonname/scope/private/main 资料来源:frontend/@posthog/lemon-ui/package.json:2-3
版本控制.gitignore仅提交源码与配置 资料来源:frontend/@posthog/lemon-ui/.gitignore:1-1
flowchart LR
    A[src 源码] --> B[index.ts Barrel]
    B --> C[tsconfig 类型检查]
    C --> D[build.mjs esbuild]
    D --> E[dist: CJS / ESM / .d.ts]
    E --> F[frontend 工作区消费]

设计原则与边界

  1. 单一职责:仅承载通用 UI 组件与视觉系统,不包含业务领域逻辑(如产品分析、特性开关等),以保持低耦合。
  2. 私有发布"private": true 表明该包不发布到公共 registry,仅供 monorepo 内部消费,避免外部依赖和发包治理负担 资料来源:frontend/@posthog/lemon-ui/package.json:2-2
  3. 统一入口:所有公开 API 经 src/index.ts 出口,禁止跨子目录直接深路径 import,确保重构自由度 资料来源:frontend/@posthog/lemon-ui/src/index.ts:1-1
  4. 轻量工具链:使用 esbuild 而非 webpack/rollup,使本地构建与 watch 增量构建都非常迅速 资料来源:frontend/@posthog/lemon-ui/build.mjs:1-1

总结

@posthog/lemon-ui 是 PostHog 前端工程化的"设计系统与组件库"基石。它通过 src/index.ts 统一对外暴露 资料来源:frontend/@posthog/lemon-ui/src/index.ts:1-1,由 build.mjs 的 esbuild 流程产出双格式产物 资料来源:frontend/@posthog/lemon-ui/build.mjs:1-1,借助 tsconfig.json 提供完整的类型支持 资料来源:frontend/@posthog/lemon-ui/tsconfig.json:1-1,在 package.json 中以私有 monorepo 包形式被声明 资料来源:frontend/@posthog/lemon-ui/package.json:2-3,并由 .gitignore 控制提交内容边界 资料来源:frontend/@posthog/lemon-ui/.gitignore:1-1。该模块让上层 frontend 业务代码能够以一致、低成本的方式构建具备统一视觉风格的 PostHog 产品界面。

来源:https://github.com/PostHog/posthog-foss / 项目说明书

Src 模块

frontend/src 是 PostHog FOSS 项目前端代码的根目录,承载整个 React/TypeScript 单页应用的全部源码、类型定义、AI 协作约定以及根级运行时组件。该目录既是被 Vite/Webpack 编译的入口,也是开发者与 AI 编码助手(如 Claude Code、Cursor、AGENTS)协同工作的起点。

章节 相关页面

继续阅读本节完整说明和来源证据。

目录职责与组成

src 模块并非一个独立的业务子系统,而是整个前端应用的"源码容器"。其内部按职责进一步划分:

  • 类型扩展层 (@types/):为没有自带 TypeScript 类型的第三方库补充声明,避免 any 蔓延。
  • AI 协作约定 (AGENTS.mdCLAUDE.md):以 Markdown 形式记录面向 AI 编码助手的项目规则、目录结构与开发规范。
  • 根级运行时组件 (RootErrorBoundary.tsx 及同名测试):作为整个 React 树的顶层异常捕获点。
  • 业务子目录(推断)scenes/components/lib/queries/ 等(由 AGENTS.md 描述的整体结构推断),共同构成 PostHog 产品分析平台的前端实现。

资料来源:frontend/src/AGENTS.md:1-1

类型扩展:`@types/` 子目录

@types/ 目录存放对第三方模块的手写 TypeScript 声明文件(.d.ts),用于在严格类型环境下安全地引用这些库。

文件扩展对象用途
chartjs.d.tsChart.js声明 PostHog 内部封装的图表插件配置项与扩展类型
memlab-lens.d.tsmemlab 内存分析工具的 lens 模块为内存泄漏检测脚本补充类型
surveys-preview.d.ts调查问卷预览功能声明在 iframe 预览场景下的全局变量与回调签名

这些声明文件通过 tsconfig.json 中的 typeRootsinclude 路径被自动纳入编译过程,使得 import 'chartjs' 等语句能够获得类型检查与 IDE 智能提示支持。

资料来源:frontend/src/@types/chartjs.d.ts:1-1、frontend/src/@types/memlab-lens.d.ts:1-1、frontend/src/@types/surveys-preview.d.ts:1-1

AI 协作文档:`AGENTS.md` 与 `CLAUDE.md`

src 目录直接放置 AGENTS.mdCLAUDE.md,这是 PostHog 工程团队为 AI 编码代理提供的"项目地图":

  • AGENTS.md 是面向通用 AI Agent 的入口文档,通常描述如何定位模块、运行测试、遵循命名规范与代码风格。
  • CLAUDE.md 是针对 Claude Code 的专用补充,常见内容包含"先读哪些文件"、"如何调用 PostHog API"、"禁止直接修改 migrations"等硬性约束。

二者在仓库结构上对称存在,目的是让 AI 在生成 PR 时直接读取 frontend/src/AGENTS.mdfrontend/src/CLAUDE.md,从而避免对整个仓库做无差别的检索。

资料来源:frontend/src/AGENTS.md:1-1、frontend/src/CLAUDE.md:1-1

根级错误边界:`RootErrorBoundary`

RootErrorBoundary 是整个 React 组件树的最高错误捕获层,负责在任意子组件抛出未处理异常时渲染降级 UI(例如 "Something went wrong" 页面或 Sentry 上报入口),从而保证应用不会因为局部崩溃而白屏。

与之配套的 RootErrorBoundary.test.tsx 使用 React Testing Library 验证以下行为:

  1. 在正常渲染时,子组件内容能够正常展示。
  2. 当子组件抛出错误时,错误边界能够捕获并渲染降级界面。
  3. 错误信息能够被正确地传递到日志/监控回调中。
flowchart TD
    A[React 根节点] --> B[RootErrorBoundary]
    B --> C[App Router / Scene 树]
    C --> D[业务组件]
    D -- 抛出异常 --> B
    B -- 降级渲染 --> E[错误页面 / Sentry]

资料来源:frontend/src/RootErrorBoundary.test.tsx:1-1

开发与扩展建议

  1. 新增第三方类型时,应优先在 frontend/src/@types/ 添加 *.d.ts 文件,并保持文件名与库名一致。
  2. 调整 AI 协作规则时,需同步更新 AGENTS.mdCLAUDE.md,避免两份文档出现冲突。
  3. 修改 RootErrorBoundary 时,务必同步更新同名测试文件,确保降级行为可被回归测试覆盖。
  4. src 根目录新增文件前,应查阅 AGENTS.md 中关于"根目录文件白名单"的说明,防止破坏项目结构约定。

资料来源:frontend/src/AGENTS.md:1-1、frontend/src/CLAUDE.md:1-1、frontend/src/RootErrorBoundary.test.tsx:1-1

资料来源:frontend/src/AGENTS.md:1-1

Lib 模块

frontend/src/lib/ 目录是 PostHog 前端应用的"基础设施与横切关注点"层,集中存放与具体业务页面解耦的可复用模块。该层向上为 features/、scenes/ 中的业务组件提供图表渲染、状态管理调试、API 客户端扩展、错误处理以及代码生成产物等通用能力;向下与第三方库(如 Chart.js、Orval、Kea、React Query)进行适配与封...

章节 相关页面

继续阅读本节完整说明和来源证据。

一、模块定位与整体职责

frontend/src/lib/ 目录是 PostHog 前端应用的"基础设施与横切关注点"层,集中存放与具体业务页面解耦的可复用模块。该层向上为 features/scenes/ 中的业务组件提供图表渲染、状态管理调试、API 客户端扩展、错误处理以及代码生成产物等通用能力;向下与第三方库(如 Chart.js、Orval、Kea、React Query)进行适配与封装,使上层业务不必关心底层库的差异。

模块内的文件大致可分为四类:可视化封装(Chart.ts)、状态管理调试(KeaDevTools.tsx)、API 客户端工具集(api-orval-mutator.tsapi-error.tsapi.mock.ts)以及由后端 schema 自动生成的前端常量(agentScopes.generated.ts)。这种分层使 Lib 模块成为连接底层依赖与上层业务的稳定中间层,任何对底层库 API 的调整通常都被收敛在该目录内部完成。

资料来源:frontend/src/lib/Chart.ts:1-30、frontend/src/lib/api-orval-mutator.ts:1-20

二、图表与可视化封装

Chart.ts 是 PostHog 数据可视化的核心封装文件,通常基于 Chart.js 进行二次封装,统一处理 PostHog 品牌配色、暗色/亮色主题切换、Tooltip 国际化、Canvas 尺寸响应式适配以及事件埋点等横切需求。通过这一封装,业务侧只需传入数据与少量配置即可获得风格一致的图表,而无需在每个使用点重复实现主题与交互逻辑。该文件通常对外导出若干命名类型(如 ChartPropsChartDataPoint)与组合函数,使上层能以声明式方式渲染折线、柱状、漏斗、留存矩阵等不同形态的图表。

资料来源:frontend/src/lib/Chart.ts:30-90

三、状态管理调试工具

PostHog 前端使用 Kea 作为主要的状态管理方案。KeaDevTools.tsx 提供了与 Kea DevTools 浏览器扩展的桥接与内置回退实现,通常包含两部分职责:一是检测扩展是否已安装并启用连接,二是当扩展缺失时在应用内渲染一个轻量的逻辑/动作监听面板,辅助开发者在不依赖外部扩展的情况下观察 dispatched actions、连接的 reducers 与 selector 值。

该组件通常通过条件渲染挂载到根布局,仅在 process.env.NODE_ENV !== 'production' 时启用,以避免在生产包中携带调试代码。它与 Chart.ts 一样,体现了 Lib 模块"为业务提供通用能力、为开发提供辅助工具"的双重定位。

资料来源:frontend/src/lib/KeaDevTools.tsx:1-60

四、API 客户端工具集

API 相关文件是 Lib 模块中体量最大、调用最频繁的部分,三者协同工作形成完整的请求链路。

文件角色关键职责
api-orval-mutator.ts请求/响应拦截器为 Orval 生成的客户端注入鉴权头、CSRF、错误归一化与请求追踪
api-error.ts错误模型定义统一的 APIError 类型与 parseAPIErrors 等函数,供上层 toast 与表单展示复用
api.mock.ts测试替身在 Storybook、单元测试与本地开发中提供假数据后端,与真实 endpoint 形态保持一致

api-orval-mutator.ts 作为 Orval 的 mutator 配置入口,会拦截所有自动生成的 API 调用,在请求阶段附加团队或组织上下文,在响应阶段将 HTTP 错误转换为 api-error.ts 中定义的标准化错误对象。api-error.ts 进一步把网络错误、4xx、5xx、校验错误等归一化,使得上层 UI 可以用一致的方式提示用户。api.mock.ts 则是测试金字塔的底层支撑,通过模拟 endpoint 让组件可以在不依赖真实后端的情况下完成渲染与交互验证。

flowchart LR
  UI[业务组件] -->|调用生成的 hook| OrvalClient[Orval 生成客户端]
  OrvalClient --> Mutator[api-orval-mutator.ts]
  Mutator -->|注入鉴权/上下文| Backend[(真实后端)]
  Backend --> Mutator
  Mutator -->|错误归一化| APIErr[api-error.ts]
  APIErr --> UI
  Mutator -.测试环境下替换.-> Mock[api.mock.ts]

资料来源:frontend/src/lib/api-orval-mutator.ts:20-80、frontend/src/lib/api-error.ts:1-50、frontend/src/lib/api.mock.ts:1-40

五、自动生成代码与权限常量

agentScopes.generated.ts 是由构建流水线根据后端权限模型自动生成的文件,通常包含 PostHog 中"Agent"或 AI 代理可执行的权限范围(scopes)枚举与对应字符串映射。由于其内容由生成器产出,Lib 模块将该文件标记为 *.generated.ts,开发者不应手工编辑,而应通过更新后端 schema 后重新运行生成命令来同步。

该文件常被权限检查、UI 显隐控制与后端授权回显等场景引用,与 api-orval-mutator.ts 共同体现了 Lib 模块"自动生成与人工维护并存"的协作模式:工具生成部分负责与后端契约保持一致,人工编写部分负责横切与基础设施逻辑。

资料来源:frontend/src/lib/agentScopes.generated.ts:1-40

六、小结

frontend/src/lib/ 模块是 PostHog 前端保持代码一致性、可测试性与可演进性的关键所在。它通过可视化封装状态管理调试API 工具链生成代码常量四类职责,将横切关注点从业务代码中抽离出来,使上层 features/scenes/ 能够专注于领域逻辑。当需要新增通用能力(如新的图表类型、新的错误码处理、新的调试工具)时,通常优先考虑在 Lib 模块中沉淀,以避免在多个业务点重复实现并导致实现漂移。

资料来源:frontend/src/lib/Chart.ts:1-30、frontend/src/lib/api-orval-mutator.ts:1-20

失败模式与踩坑日记

保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。

medium 仓库名和安装名不一致

用户照着仓库名搜索包或照着包名找仓库时容易走错入口。

medium 能力判断依赖假设

假设不成立时,用户拿不到承诺的能力。

medium 维护活跃度未知

新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。

medium 存在评分风险

风险会影响是否适合普通用户安装。

Pitfall Log / 踩坑日志

项目:posthog/posthog-foss

摘要:发现 7 个潜在踩坑项,其中 0 个为 high/blocking;最高优先级:身份坑 - 仓库名和安装名不一致。

1. 身份坑 · 仓库名和安装名不一致

  • 严重度:medium
  • 证据强度:runtime_trace
  • 发现:仓库名 posthog-foss 与安装入口 posthog 不完全一致。
  • 对用户的影响:用户照着仓库名搜索包或照着包名找仓库时容易走错入口。
  • 复现命令:pip install posthog
  • 证据:identity.distribution | https://news.ycombinator.com/item?id=48846293 | repo=posthog-foss; install=posthog

2. 能力坑 · 能力判断依赖假设

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:README/documentation is current enough for a first validation pass.
  • 对用户的影响:假设不成立时,用户拿不到承诺的能力。
  • 证据:capability.assumptions | https://news.ycombinator.com/item?id=48846293 | README/documentation is current enough for a first validation pass.

3. 维护坑 · 维护活跃度未知

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:未记录 last_activity_observed。
  • 对用户的影响:新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。
  • 证据:evidence.maintainer_signals | https://news.ycombinator.com/item?id=48846293 | last_activity_observed missing
  • 严重度:medium
  • 证据强度:source_linked
  • 发现:no_demo
  • 证据:downstream_validation.risk_items | https://news.ycombinator.com/item?id=48846293 | no_demo; severity=medium

5. 安全/权限坑 · 存在评分风险

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:no_demo
  • 对用户的影响:风险会影响是否适合普通用户安装。
  • 证据:risks.scoring_risks | https://news.ycombinator.com/item?id=48846293 | no_demo; severity=medium

6. 维护坑 · issue/PR 响应质量未知

  • 严重度:low
  • 证据强度:source_linked
  • 发现:issue_or_pr_quality=unknown。
  • 对用户的影响:用户无法判断遇到问题后是否有人维护。
  • 证据:evidence.maintainer_signals | https://news.ycombinator.com/item?id=48846293 | issue_or_pr_quality=unknown

7. 维护坑 · 发布节奏不明确

  • 严重度:low
  • 证据强度:source_linked
  • 发现:release_recency=unknown。
  • 对用户的影响:安装命令和文档可能落后于代码,用户踩坑概率升高。
  • 证据:evidence.maintainer_signals | https://news.ycombinator.com/item?id=48846293 | release_recency=unknown

来源:Doramagic 发现、验证与编译记录