Doramagic 项目包 · 项目说明书

Moryn 项目

Moryn 是为 AI Agent 提供的个人记忆、技能与灵魂层。

项目概览与系统架构

Moryn 是一个面向多 Agent、多设备 AI 工作场景的 本地优先(local-first)、用户拥有、可审计的上下文存储与交接层。它既不是 Agent 平台,也不是向量记忆 SDK,更不是托管云服务,而是 Agent 之间的「记忆总线」:默认路径简洁,在用户或 Agent 需要审查、溯源、同步或交接历史时完全可追溯。

章节 相关页面

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

1. 项目定位与设计目标

Moryn 是一个面向多 Agent、多设备 AI 工作场景的 本地优先(local-first)、用户拥有、可审计的上下文存储与交接层。它既不是 Agent 平台,也不是向量记忆 SDK,更不是托管云服务,而是 Agent 之间的「记忆总线」:默认路径简洁,在用户或 Agent 需要审查、溯源、同步或交接历史时完全可追溯。

核心定位来源于 README.md:1-13

*"Moryn is a local-first, user-owned, auditable context store and handoff layer for multi-agent, multi-device AI work."*

当前版本为 v0.1.1(首个 npm 发布后的补丁版本),主要交付物包括:本地记忆操作、Git 同步、生命周期交接、包级冒烟测试与 stdio MCP 服务。npm 包名为 @richardyu114/moryn,安装方式为 npm install -g @richardyu114/moryn (package.json:1-3)。

2. 技术栈与运行时约束

维度取值来源
运行时Node.js >= 20package.json:53-55
语言TypeScript(ESM,"type": "module"package.json:6
核心依赖@modelcontextprotocol/sdk ^1.29.0commander ^14.0.2zod ^4.1.13package.json:39-43
测试栈vitest ^4.0.14tsx ^4.21.0package.json:45-51
许可证MITpackage.json:56-58
CLI 入口moryndist/cli.js;MCP 注册命令 moryn mcpREADME.md:29-37package.json:9-12

模块组织上,源码位于 src/,CLI 与公开库入口分别为 src/cli.tssrc/index.ts,核心领域逻辑集中在 src/core/ 下(包括 agent-lifecycle.tsagent-identity.tsautocapture-policy.tsaction-safety.ts 等)。

3. 五态记忆模型与敏感数据护栏

Moryn 将所有记录划分为五个生命周期状态,状态转换关系如下:

stateDiagram-v2
    [*] --> raw
    raw --> candidate: 初步入库
    candidate --> canonical: 升级为持久上下文
    candidate --> archived: 归档
    candidate --> quarantined: 隔离
    canonical --> archived: 归档
    canonical --> quarantined: 隔离
  • raw:源材料,默认隐藏。
  • candidate:可能有用但尚未信任。
  • canonical:默认召回返回的持久上下文。
  • archived:保留的历史,默认隐藏。
  • quarantined:敏感或不安全内容,默认隐藏 (README.md:18-30)。

privatesecretsensitive 标签的记录在 bootrecallrefreshlist-recenttimelinememory doctormemory lifecyclecapture policydogfood report 以及 Dashboard 等读路径上默认排除;仅当显式传入 --include-private 或 MCP 参数 include_private: true 时才返回。高风险 canonical 写入需要用户显式确认 (README.md:32-38)。

4. Agent 生命周期与自动化捕获

Agent 操作走「引导—启动—状态—结束—刷新」五阶段生命周期,模块入口为 src/core/agent-lifecycle.ts,对应 CLI/MCP 工具为 agent_enteragent_startagent_statusagent_finish 以及带 refresh_sinceagent_start 刷新动作。每一步都返回结构化的 next.actions 列表(含 safe_to_runrequired_fieldscommand 模板),驱动 Agent 按机器可读的契约执行 (src/core/agent-lifecycle.ts:148-160src/core/agent-lifecycle.ts:317-419)。

身份归一化在 src/core/agent-identity.ts:18-23 中预定义四类已知 Agent 家族:codexclaudekimigemini;其它客户端落入 genericunknown 等级,便于在多 Agent 场景下追溯来源。

自动捕获策略(src/core/autocapture-policy.ts)按风险分级路由:

动作安全层 src/core/action-safety.ts 为每个候选动作计算 safe_to_run、缺失字段与 runbook,区分 run / collect_required_fields / confirm_with_user / do_not_auto_run 四类后续步骤,防止 Agent 误触发本地配置写入或高风险升级 (src/core/action-safety.ts:1-60)。

5. 架构总览

下图描绘了用户、Agent、CLI/MCP 与本地 Git 存储之间的关系:

flowchart LR
    User[用户/多设备] -->|决策| Dashboard[moryn dashboard]
    Codex[Codex] -->|stdio MCP| McpServer[moryn mcp]
    Claude[Claude] -->|stdio MCP| McpServer
    Gemini[Gemini] -->|stdio MCP| McpServer
    Cursor[Cursor] -->|stdio MCP| McpServer
    Shell[Shell/脚本] -->|CLI| Cli[moryn CLI]
    McpServer --> Engine[core/engine.ts]
    Cli --> Engine
    Engine --> Store[(本地 Git 仓库<br/>Moryn Store)]
    Engine --> Lifecycle[agent-lifecycle]
    Engine --> Autocap[autocapture-policy]
    Engine --> Safety[action-safety]
    Store <-->|push/pull| GitRemote[(可选 Git Remote)]
    Dashboard --> Store

简而言之:Moryn = CLI + MCP stdio + 本地 Git 存储 + 生命周期/捕获/安全策略。Agent 不直接持有记忆,所有读写都经由 CLI 或 MCP 服务落到用户拥有的本地仓库;Dashboard 提供本地可观测性用于人工审查(v0.1.1 新增 moryn dashboard 命令)。

6. 安装与典型用法

最简启动路径(适配 Codex 等宿主) (README.md:35-44):

moryn setup --host codex --project . --apply
moryn install --host codex --project . --apply
moryn context pack --project . --agent codex
moryn capture session --project . --agent codex --summary "Finished the task and left handoff notes."

需要诊断记忆质量或生命周期时,使用只读 doctor / lifecycle 报告;需要按时间线追溯时使用 moryn timeline --record-id ... --before 5 --after 5README.md:70-105)。

See Also

来源:https://github.com/Richardyu114/Moryn / 项目说明书

Agent 生命周期、上下文包与工作流

Moryn 的 Agent 生命周期层为多 Agent 协作提供了一套可审计、可回放的"会话剧本"。它以本地 store 为中心,把一次完整的代理任务拆成 agententer → agentstart → agentstatus → agentfinish 几个阶段,并附带上下文包(context pack)、选择源路径(selection sources)以及安全护栏(...

章节 相关页面

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

概述

Moryn 的 Agent 生命周期层为多 Agent 协作提供了一套可审计、可回放的"会话剧本"。它以本地 store 为中心,把一次完整的代理任务拆成 agent_enteragent_startagent_statusagent_finish 几个阶段,并附带上下文包(context pack)、选择源路径(selection sources)以及安全护栏(guardrails),让 Codex、Claude、Cursor、Gemini、shell agent 等不同宿主能够遵循同一份语义完成启动、续接、状态发布和交接。所有写操作都要求 safe_to_run: false 直至显式确认,确保用户始终拥有最终决定权 资料来源:src/core/agent-lifecycle.ts:1-80

@richardyu114/moryn 包以 ESM 模块形式发布,主入口为 dist/index.js,CLI 二进制名为 moryn,对应实现位于 src/core/agent-lifecycle.ts 中的 agentGuideagentStartagentStatusagentFinish 等函数 资料来源:package.json:1-50。当前公开版本为 v0.1.1,已上线 moryn dashboard 等本地观测能力 资料来源:README.md:1-40

生命周期阶段与上下文包

生命周期由若干步骤(step)组成,每个步骤都返回一份"动作模板 + 上下文包"。agentGuide 默认推荐的入口是 agent_enter,并在响应中给出 startuplifecyclelifecycle_by_steprulesguardrails 五个字段,方便调用方按需选择 资料来源:src/core/agent-lifecycle.ts:120-200。常见步骤及触发条件如下:

步骤工具safe_to_run触发场景必需字段
start_or_resumeagent_starttrueAgent turn 开始、store/project/sync 上下文不确定current_task, sync_remote
publish_statusagent_statusfalse长任务中途、下次中断前、跨 Agent 协调status
finish_handoffagent_finishfalse任务结束、交接前summary
refresh_contextagent_starttrue用户要求刷新 / 收到 refresh cursorrefresh_since(可选)

agentStart 会先校验 agent 身份字段,再解析项目上下文(resolveLifecycleProjectContext),然后根据 sync_mode 决定是否自动 pull,并在 sync.before / pull / pull_error / after 中记录 Git 同步结果 资料来源:src/core/agent-lifecycle.ts:60-120。所有阶段都共用 lifecycleActionArguments 生成 CLI/MCP 调用的入参,从而保证在 startupnext.actions_by_id 中取出的命令行模板是等价的。

会话有效期通过常量 ACTIVE_SESSION_TTL_MINUTES = 120 控制,超过两小时的活动会话会被视为过期,需要重新 start_or_resume 资料来源:src/core/agent-lifecycle.ts:1-40

flowchart LR
  A[agent_enter / agentGuide] --> B[agent_start\nstart_or_resume]
  B --> C{长任务?}
  C -- 是 --> D[agent_status\npublish_status]
  C -- 否 --> E[agent_finish\nfinish_handoff]
  D --> E
  E --> F[下一个 Agent\nstart_next_session]
  F --> G[agent_start\nrefresh_context]

Agent 身份识别与选择源

Moryn 通过正则白名单识别常见 Agent:codexclaudekimigemini 被归为"已知"(confidence: known),agentclimcpmoryn 等本地通用客户端被归为"通用"(generic),其余原始字符串保留为 unknown 资料来源:src/core/agent-identity.ts:1-60normalizeAgentIdentity 同时把原始 raw_client 一并返回,方便审计。

agent_entermode: "discover_projects" 时返回 projects.projects_by_id.<project_id> 等选择源路径,调用方必须先从中挑选一个 project_id 再调用 agent_start,否则会触发 choose_discovered_project_id 步骤并标记 safe_to_run: false 资料来源:src/core/agent-lifecycle.ts:200-320DISCOVER_PROJECT_SELECTION_SOURCESGUIDE_SELECTION_SOURCES 把这些路径集中导出,确保 CLI、MCP 和 dashboard 共用一套寻址规则。

安全护栏与自动捕获策略

护栏(guardrail)以"必须避免的行为 → 风险 → 替代动作"的形式呈现:

  • choose_discovered_project:在项目上下文不明时,禁止猜测 project_id,必须走 agent_enter discovery 流程 资料来源:src/core/agent-lifecycle.ts:320-420
  • use_returned_actions_verbatim:禁止凭记忆重建命令,必须直接消费返回的 command 字符串或 arguments,仅填充 required_fields 列举的占位符 资料来源:src/core/agent-lifecycle.ts:320-420
  • publish_status_and_finish_handoff:要求在长中断前调用 agent_status,在任务结束时调用 agent_finish 留下 summary 资料来源:src/core/agent-lifecycle.ts:320-420
  • pass_sync_remote_for_cross_device_handoff:跨设备交接时必须显式传入 sync_remote 资料来源:src/core/agent-lifecycle.ts:320-420

action-safety.ts 把这些约束翻译成机器可读的运行手册(runbook),步骤包含 collect_required_inputsask_user_confirmationcall_mcpdo_not_run 四种,并暴露 missing_required_fieldsrequired_inputschoice_options 等选择源供前端回显 资料来源:src/core/action-safety.ts:1-80

autocapture-policy.ts 定义了自动捕获 handoff 的策略:当内容命中 review_risk_marker 等高风险标记时,决策为 decision: "capture"route: "review"target_state: "candidate"、并在 dashboard 的 capture_inbox 面板暴露 user_action_required: true;低风险 handoff 则走 route: "auto_capture",但仍以 candidate 状态进入存储,不会自动晋升为 canonical 资料来源:src/core/autocapture-policy.ts:1-80

失败模式与排错

常见失败点与对应错误契约均集中定义:

  • 身份字段缺失或类型错误会抛 AgentIdentityError,并附带 recovery_hint 指明 operations_by_id.agent_start 中应补齐的字段 资料来源:src/core/agent-lifecycle.ts:120-200
  • status / summary 为空字符串会抛 AgentLifecycleTextArgumentError,错误对象内嵌 retry_with.value_placeholder: "<status>" 等占位符,便于客户端提示用户重新输入 资料来源:src/core/agent-lifecycle.ts:420-520
  • Git 同步冲突时,assertSyncNotConflicted 会写入 sync.before.conflict 字段,调用方应先解决冲突再继续 agent_start 资料来源:src/core/agent-lifecycle.ts:60-120
  • 自动捕获命中敏感标记时,记录会被写入 quarantined 状态,在 bootrecalltimeline 等读取路径中被默认隐藏,需要显式 --include-private 才会出现 资料来源:README.md:40-120

参见

来源:https://github.com/Richardyu114/Moryn / 项目说明书

内存模型、安全分级与诊断工具

Moryn 的核心是本地优先、用户拥有的上下文存储与交接层。它在多 Agent、多设备的 AI 协作中扮演"记忆总线"的角色:Agent 通过 CLI 或 MCP stdio 服务读取、写入、修订、晋升并交接上下文,而所有记忆的所有权始终属于用户。围绕这一目标,Moryn 在源码层面提供了一套完整的内存状态机、敏感度分级机制、自动捕获策略以及诊断工具链,分别由 schema...

章节 相关页面

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

章节 4.1 自动捕获策略

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

章节 4.2 诊断与策略报告

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

章节 4.3 常见失败模式

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

1. 概述

Moryn 的核心是本地优先、用户拥有的上下文存储与交接层。它在多 Agent、多设备的 AI 协作中扮演"记忆总线"的角色:Agent 通过 CLI 或 MCP stdio 服务读取、写入、修订、晋升并交接上下文,而所有记忆的所有权始终属于用户。围绕这一目标,Moryn 在源码层面提供了一套完整的内存状态机、敏感度分级机制、自动捕获策略以及诊断工具链,分别由 schema.tssensitive.tsautocapture-policy.tsderived.tscapture-review.tscapture-policy-report.ts 等模块实现 README.md:1-40

本主题聚焦于:

  • 内存记录的有限状态模型与生命周期转换
  • 敏感度标签(privatesecretsensitive)的读写隔离
  • 自动捕获策略的路由规则
  • 诊断与策略报告工具的输出形态

2. 内存状态模型

Moryn 把任意一条上下文记录视为有限状态机中的一个节点,并定义了五种状态 README.md:1-20

stateDiagram-v2
    [*] --> raw
    raw --> candidate: 自动捕获
    candidate --> canonical: 用户/Agent 确认
    candidate --> archived: 判定为非关键
    candidate --> quarantined: 命中敏感或风险标记
    canonical --> archived: 降级保留
    canonical --> quarantined: 风险升级
    archived --> [*]
    quarantined --> [*]

各状态语义如下:

  • raw:原始素材,默认隐藏,不参与常规召回。
  • candidate:可能有用但尚未被信任的中间状态。
  • canonical:默认召回的稳定上下文,是用户视角下的"长期记忆"。
  • archived:仅作为历史保留,默认隐藏,便于审计与回溯。
  • quarantined:隔离区,存放含敏感或风险标记的内容,默认隐藏。

转换由 capture-review.tsautocapture-policy.ts 共同驱动,规则全部以只读策略报告的形式呈现,不会自动改写记录本身 README.md:1-15

3. 安全分级与隔离

Moryn 把 privatesecretsensitive 视为主动记录的标签,但它们在常规操作中被显式排除。被排除的接口包括 bootrecallrefreshlist-recenttimelinememory doctormemory lifecyclecapture policydogfood report 以及 Dashboard 的常规视图 README.md:1-25

要访问这些记录,必须显式声明意图:

触发方式适用场景资料来源
CLI --include-private人工排查或审计README.md:1-25
MCP include_private: trueAgent 受控检索README.md:1-25
高风险 canonical 写入需要用户显式确认README.md:1-25

src/core/sensitive.ts 负责标签的归一化与匹配,src/core/derived.ts 在派生视图(timeline、dogfood report 等)中对带标签记录做脱敏或剔除,而 agent-identity.ts 则确保每次写入都附带 clientsession_idmodeldevice_id 等可追溯身份字段 src/core/agent-identity.ts:1-30src/core/agent-lifecycle.ts:1-50

4. 自动捕获与诊断工具

4.1 自动捕获策略

src/core/autocapture-policy.ts 是路由中枢。它评估传入的捕获请求并返回 policy_idversiondecisionroutetarget_statereview_requireduser_action_required 等字段。命中 review_risk_marker 的请求会进入 Dashboard 的 capture_inbox 表面,等待批量审批;低风险交接则自动落入 candidate 状态,附带 auto-captured 标签 src/core/autocapture-policy.ts:1-60

4.2 诊断与策略报告

诊断链路由 memory doctormemory lifecycle 与只读的 capture_policy 报告组成。后者解释自动捕获、审核、归档的路由逻辑,但不会修改存储——这是 Moryn 区别于"黑盒记忆 SDK"的关键约束 README.md:1-25action-safety.ts 为每条返回的命令计算 ready_to_runblocked_byrunbook,并在写操作前给出 requires_user_confirmation 标记,保证高风险动作只能由显式意图触发 src/core/action-safety.ts:1-80

4.3 常见失败模式

5. 开发与发布检查

package.json 定义了构建、类型检查、单测与发布前自检脚本。建议在发布前运行 npm run release:check,必要时设置 MORYN_PRIVATE_GIT_REMOTE 指向专用测试仓库,以完成真实远程写入验证 package.json:1-50README.md:1-50

See Also

来源:https://github.com/Richardyu114/Moryn / 项目说明书

Dashboard、Git 同步与 MCP 可观测性

Moryn 是一个本地优先、用户拥有、可审计的上下文存储与交接层([README.md:1-10]())。v0.1.1 重点新增了 moryn dashboard 本地可观测性仪表板,使代理在工作中能够直接检查 Moryn 存储状态。可观测性主要由三块组成:本地 Dashboard 视图、Git 同步状态结构化探针,以及通过 stdio MCP 服务器暴露的只读工具。本页围...

章节 相关页面

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

章节 自动捕获策略与仪表板路由

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

概述

Moryn 是一个本地优先、用户拥有、可审计的上下文存储与交接层(README.md:1-10)。v0.1.1 重点新增了 moryn dashboard 本地可观测性仪表板,使代理在工作中能够直接检查 Moryn 存储状态。可观测性主要由三块组成:本地 Dashboard 视图、Git 同步状态结构化探针,以及通过 stdio MCP 服务器暴露的只读工具。本页围绕这三块说明其作用面、安全边界与典型失败模式。

Dashboard 本地仪表板

moryn dashboard 是面向用户与代理的本地检查入口。其核心只读视图如下表所示:

视图对应命令主要用途
Capture Inboxmoryn capture policy --project .审查需要用户决策的自动捕获 handoff
Memory Doctormoryn memory doctor --project .报告候选积压、可提升记录、烟雾测试噪声
Memory Lifecyclemoryn memory lifecycle --project .分类活跃记录为保留/陈旧/归档候选
Timelinemoryn timeline --record-id rec_...按记录/事件/查询锚定的时序邻接视图

资料来源:README.md。所有这些视图在默认情况下都隐藏 privatesecretsensitive 标签的记录,调用方必须显式传入 --include-private 才可读取(README.md:41-47)。

自动捕获策略与仪表板路由

自动捕获策略决定每条 handoff 走哪条仪表板路径,其状态机为:

stateDiagram-v2
    [*] --> raw
    raw --> candidate: low_risk_handoff_auto_capture
    raw --> review: needs_user_decision
    raw --> archive: smoke_test_marker / duplicate_text
    candidate --> canonical: 用户确认
    review --> capture_inbox: user_action_required
    archive --> archived

rawcandidatearchivedquarantined 四种状态默认在仪表板中隐藏(README.md:35-40)。capture_inbox 是仅对需要用户决策的自动捕获 handoff 起作用的人工审查路径;低风险 handoff 仍为本地自动证据,不会自动晋升为 canonical(README.md:37-39)。策略规则定义在 src/core/autocapture-policy.tsDEFAULT_AUTOCAPTURE_POLICY.rules 中,包括 smoke_test_markerduplicate_text 等归档规则(src/core/autocapture-policy.ts:17-31)。

Git 同步可观测性

Moryn 的 Git 同步由本地存储驱动,远程仓库由用户决定。在 agentStart 中同步状态被显式探测:

跨设备交接必须显式传 sync_remote;护栏规则 pass_sync_remote_for_cross_device_handoff 明确指出缺失该参数时状态与摘要将停留在本机(src/core/agent-lifecycle.ts:16-20)。

MCP stdio 可观测性

Moryn 通过真实 stdio MCP 服务器暴露工具,依赖 @modelcontextprotocol/sdk ^1.29.0package.json:11-15)。下列 MCP 工具与 CLI 命令一一对应,且全部保持只读:

MCP 工具对应 CLI安全性
health_check隐式 dashboard 状态建议动作保持只读
recall_evalmoryn eval recall不修改记录,不新增索引
capture_policymoryn capture policy不批准/拒绝/提升/归档
memory_doctormoryn memory doctor建议动作 safe_to_run: false
memory_lifecyclemoryn memory lifecycle建议归档动作 safe_to_run: false

资料来源:README.mdActionSafety 中定义的 safe_to_auto_runrequires_user_confirmationrequires_authored_input 字段(src/core/action-safety.ts:1-12)保证了这些建议在用户确认前不会被自动执行;ActionExecution.runbook 同时枚举 collect_required_inputsask_user_confirmationcall_mcpdo_not_run 四类步骤,使代理在阻塞时具有可追溯的恢复路径(src/core/action-safety.ts:14-32)。

常见失败模式

  • 误以为可见即全部:仪表板默认隐藏 private/secret/sensitive 记录,若代理据此下结论会遗漏敏感上下文(README.md:41-47)。
  • 跨设备误以为已同步:未传 sync_remote 时 handoff 仅落本机,状态摘要不会到达远端(src/core/agent-lifecycle.ts:16-20)。
  • 把只读工具当作写入工具recall_evalcapture_policymemory_doctormemory_lifecycle 均不修改存储;调用方若把它们当作执行入口会得到非预期结果(README.md)。
  • 跳过显式确认直接晋升 canonical:高风险 canonical 写入要求用户显式确认,自动跳过将违反 requires_user_confirmation 边界(src/core/action-safety.ts:1-12)。

参见

资料来源:README.md。所有这些视图在默认情况下都隐藏 privatesecretsensitive 标签的记录,调用方必须显式传入 --include-private 才可读取(README.md:41-47)。

失败模式与踩坑日记

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

medium 可能修改宿主 AI 配置

安装可能改变本机 AI 工具行为,用户需要知道写入位置和回滚方法。

medium 能力判断依赖假设

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

medium 维护活跃度未知

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

medium 存在评分风险

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

Pitfall Log / 踩坑日志

项目:Richardyu114/Moryn

摘要:发现 7 个潜在踩坑项,其中 0 个为 high/blocking;最高优先级:配置坑 - 可能修改宿主 AI 配置。

1. 配置坑 · 可能修改宿主 AI 配置

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:项目面向 Claude/Cursor/Codex/Gemini/OpenCode 等宿主,或安装命令涉及用户配置目录。
  • 对用户的影响:安装可能改变本机 AI 工具行为,用户需要知道写入位置和回滚方法。
  • 证据:capability.host_targets | https://github.com/Richardyu114/Moryn | host_targets=mcp_host, claude, cursor

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

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

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

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

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

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

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

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

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

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

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